Procházet zdrojové kódy

侧边栏bug解决了

mw_666 před 4 roky
rodič
revize
ad80d3c598

+ 653 - 702
src/views/NewPages/alarm-center-1.vue

@@ -1,723 +1,674 @@
 <template>
-  <div class="alarm-center-1">
-    <div class="action-bar">
-      <div class="query mg-b-16">
-        <div class="query-items">
-          <div class="query-item">
-            <div class="lable">风场:</div>
-            <div class="search-input">
-              <el-select
-                v-model="wpvalue"
-                clearable
-                placeholder="请选择"
-                popper-class="select"
-              >
-                <el-option
-                  v-for="item in wpoptions"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">开始日期:</div>
-            <div class="search-input">
-              <el-date-picker
-                v-model="startdate"
-                type="date"
-                placeholder="选择日期"
-                popper-class="date-select"
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">结束日期:</div>
-            <div class="search-input">
-              <el-date-picker
-                v-model="enddate"
-                type="date"
-                placeholder="选择日期"
-                popper-class="date-select"
-              >
-              </el-date-picker>
-            </div>
-          </div>
-          <div class="query-item">
-            <div class="lable">规则:</div>
-            <el-cascader
-              style="width: 240px"
-              size="mini"
-              popper-class="search-select"
-              :options="cascaderOptions"
-              :props="cascaderProps"
-              v-model="cascaderSel"
-              collapse-tags
-              :clearable="true"
-            ></el-cascader>
-          </div>
-        </div>
-        <div class="query-actions">
-          <button class="btn green" @click="searchData">搜索</button>
-          <button class="btn green" @click="searchTree">筛选</button>
-		  <button class="btn green" @click="fx">分析</button>
-        </div>
-      </div>
-    </div>
-    <panel-3 class="table-panel">
-      <table-3 :data="tableData" :height="'85vh'">
-        <template v-for="(item, i) in column" :key="i" #[item]="scope">
-          <div class="bar" @click="showChart(scope)">
-            <div
-              class="bar-percent"
-              :style="{
-                width:
-                  (scope.data.count &&
-                    scope.data.count / (scope.data.count + scope.data.time)) *
-                    100 +
-                  'px',
-              }"
-            ></div>
-            <span class="value"
-              >{{ scope.data.count && scope.data.count }} 次数</span
-            >
-          </div>
-          <div class="bar" @click="showChart(scope)">
-            <div
-              class="bar-percent"
-              :style="{
-                width:
-                  (scope.data.count &&
-                    scope.data.time / (scope.data.count + scope.data.time)) *
-                    100 +
-                  'px',
-              }"
-            ></div>
-            <span class="value"
-              >{{ scope.data.count && scope.data.time }} 分钟</span
-            >
-          </div>
-        </template>
-      </table-3>
-    </panel-3>
-    <el-dialog
-      :title="dialogTitle"
-      v-model="dialogVisible"
-      width="70%"
-      top="10vh"
-      custom-class="modal"
-      :close-on-click-modal="false"
-    >
-      <div class="searchForm">
-        <div class="choose">
-          <button class="btn green">等间隔</button>
-          <!-- <button :class="chooseStatus?'btn green':'btn'" @click="switchChange(1,'original')">原始数据</button> -->
-        </div>
-        <el-select
-          v-if="!chooseStatus"
-          @change="switchChange(selectValue)"
-          class="inputs"
-          v-model="selectValue"
-          placeholder="请选择"
-        >
-          <el-option
-            v-for="item in timeoptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select>
-      </div>
-      <multiple-y-line-chart-normal
-        height="500px"
-        :list="Analysis"
-        :yAxises="AnalysisYAxises"
-        :showLegend="true"
-      />
-    </el-dialog>
-	<el-dialog :title="dialogTitleFX" v-model="dialogVisibleFX" width="70%" top="10vh" custom-class="modal" :close-on-click-modal="false" :destroy-on-close='true'>
-	  <FX :date='startdate' :wpid='wpvalue'/>
-	</el-dialog>
-  </div>
+	<div class="alarm-center-1">
+		<div class="action-bar">
+			<div class="query mg-b-16">
+				<div class="query-items">
+					<div class="query-item">
+						<div class="lable">风场:</div>
+						<div class="search-input">
+							<el-select v-model="wpvalue" clearable placeholder="请选择" popper-class="select">
+								<el-option v-for="item in wpoptions" :key="item.id" :label="item.name" :value="item.id">
+								</el-option>
+							</el-select>
+						</div>
+					</div>
+					<div class="query-item">
+						<div class="lable">开始日期:</div>
+						<div class="search-input">
+							<el-date-picker v-model="startdate" type="date" placeholder="选择日期"
+								popper-class="date-select">
+							</el-date-picker>
+						</div>
+					</div>
+					<div class="query-item">
+						<div class="lable">结束日期:</div>
+						<div class="search-input">
+							<el-date-picker v-model="enddate" type="date" placeholder="选择日期" popper-class="date-select">
+							</el-date-picker>
+						</div>
+					</div>
+					<div class="query-item">
+						<div class="lable">规则:</div>
+						<el-cascader style="width: 240px" size="mini" popper-class="search-select"
+							:options="cascaderOptions" :props="cascaderProps" v-model="cascaderSel" collapse-tags
+							:clearable="true"></el-cascader>
+					</div>
+				</div>
+				<div class="query-actions">
+					<button class="btn green" @click="searchData">搜索</button>
+					<button class="btn green" @click="searchTree">筛选</button>
+					<button class="btn green" @click="fx">分析</button>
+				</div>
+			</div>
+		</div>
+		<panel-3 class="table-panel">
+			<table-3 :data="tableData" :height="'85vh'">
+				<template v-for="(item, i) in column" :key="i" #[item]="scope">
+					<div class="bar" @click="showChart(scope)">
+						<div class="bar-percent" :style="{ width: scope?.data?.countStyle }"> </div>
+						<span class="value">{{ scope?.data?.count }} 次数</span>
+					</div>
+					
+					<div class="bar" @click="showChart(scope)">
+						<div class="bar-percent" :style="{ width: scope?.data?.timeStyle}"></div>
+						<span class="value">{{scope?.data?.time }} 分钟</span>
+					</div>
+				</template>
+			</table-3>
+		</panel-3>
+		<el-dialog :title="dialogTitle" v-model="dialogVisible" width="70%" top="10vh" custom-class="modal"
+			:close-on-click-modal="false">
+			<div class="searchForm">
+				<div class="choose">
+					<button class="btn green">等间隔</button>
+					<!-- <button :class="chooseStatus?'btn green':'btn'" @click="switchChange(1,'original')">原始数据</button> -->
+				</div>
+				<el-select v-if="!chooseStatus" @change="switchChange(selectValue)" class="inputs" v-model="selectValue"
+					placeholder="请选择">
+					<el-option v-for="item in timeoptions" :key="item.value" :label="item.label" :value="item.value">
+					</el-option>
+				</el-select>
+			</div>
+			<multiple-y-line-chart-normal height="500px" :list="Analysis" :yAxises="AnalysisYAxises"
+				:showLegend="true" />
+		</el-dialog>
+		<el-dialog :title="dialogTitleFX" v-model="dialogVisibleFX" width="70%" top="10vh" custom-class="modal"
+			:close-on-click-modal="false" :destroy-on-close='true'>
+			<FX :date='startdate' :wpid='wpvalue' />
+		</el-dialog>
+	</div>
 </template>
 
 <script>
-import Panel3 from "../../components/coms/panel/panel3.vue";
-import Table3 from "../../components/coms/table/table3.vue";
-import MultipleYLineChartNormal from "./multiple-y-line-chart-normal.vue";
-import FX from "./alarm-center-yjfx.vue";
-import BASE from '@tools/basicTool.js';
-export default {
-  components: { Panel3, Table3, MultipleYLineChartNormal,FX },
-  data() {
-    return {
-		dialogTitleFX: "",
-		dialogVisibleFX: false,
-      dialogTitle: "",
-      chooseStatus: false,
-      dialogVisible: false,
-      chooseTime: [],
-      wpvalue: "",
-      wpid: "",
-      wtId: "",
-      descName: "",
-      AnalysisName: "",
-      AnalysisUnit: "",
-      Analysis: [
-        {
-          title: "",
-          yAxisIndex: 0, // 使用单位
-          value: [],
-        },
-      ],
-      AnalysisYAxises: [
-        {
-          name: "",
-          min: "",
-          max: "",
-          unit: "",
-          position: "left",
-        },
-        {
-          name: "",
-          min: "",
-          max: "",
-          unit: "",
-          position: "right",
-        },
-      ],
-      selectValue: "60",
-      timeoptions: [
-        {
-          value: "60",
-          label: "一分钟",
-        },
-        {
-          value: "300",
-          label: "五分钟",
-        },
-        {
-          value: "600",
-          label: "十分钟",
-        },
-        {
-          value: "1800",
-          label: "三十分钟",
-        },
-        {
-          value: "3600",
-          label: "一小时",
-        },
-        {
-          value: "86400",
-          label: "一天",
-        },
-      ],
-      wpoptions: "",
-      options: [],
-      cascaderOptions: [],
-      cascaderSel: [],
-      cascaderProps: { multiple: true },
-      column: [
-        "风机偏航过程震动",
-        "齿轮箱轴承温升超过40度",
-        "三相电流不平衡",
-        "断轴或联轴器打滑",
-        "风速突变",
-      ],
-      columnObj: [
-        {
-          name: "风机编号",
-          field: "name",
-          width: "100px",
-          minWidth: "100px",
-        },
-        {
-          name: "风机偏航过程震动",
-          field: "风机偏航过程震动",
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-        {
-          name: "齿轮箱轴承温升超过40度",
-          field: "齿轮箱轴承温升超过40度",
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-        {
-          name: "三相电流不平衡",
-          field: "三相电流不平衡",
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-        {
-          name: "断轴或联轴器打滑",
-          field: "断轴或联轴器打滑",
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-        {
-          name: "风速突变",
-          align: "left",
-          field: "风速突变",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        },
-      ],
-      startdate: new Date(
-        new Date(new Date().setDate(new Date().getDate() - 1))
-      ).formatDate("yyyy-MM-dd"),
-      enddate: new Date(new Date()).formatDate("yyyy-MM-dd"),
-      tableData: {
-        column: [
-          { name: "风机编号", field: "name" },
-          {
-            name: "主轴温度温差大于8度",
-            field: "v1",
-            align: "left",
-            slot: true,
-          },
-          { name: "浆叶角过小", field: "v2", align: "left", slot: true },
-        ],
-        data: [{ name: "MG01_01", v1: { count: 12, time: 0 } }],
-      },
-    };
-  },
-  created() {
-    this.$nextTick(() => {
-      this.search();
-    });
-  },
-  methods: {
-    //对比
-    showChart(column) {
-		console.log(column.column.name)
-      let that = this;
-      that.dialogTitle = column.column.name;
-      that.wtId = column.row.name;
-      that.descName = column.column.name;
-      
-      that.requestDetailData(
-        that.wpvalue,
-        that.startdate,
-        that.enddate,
-        60,
-        column.row.name,
-        column.column.name
-      );
-    },
-    requestDetailData(station, startTs, endTs, interval, wtId, name) {
-      let that = this;
-      BASE.showLoading();
-      that.API.requestData({
-        method: "GET",
-        subUrl: "/analysis/detail",
-        data: {
-          // station: that.wpvalue,
-          // startTs: new Date(that.startdate).getTime(),
-          // endTs: new Date(that.enddate).getTime(),
-          // // interval: 360,
-          // interval:1,
-          // wtId: column.row.name,
-          // name: column.column.name,
-          station: station,
-          startTs: new Date(new Date(startTs).formatDate("yyyy/MM/dd")).getTime(),
-          endTs: new Date(new Date(endTs).formatDate("yyyy/MM/dd")).getTime(),
-          interval: interval,
-          wtId: wtId,
-          name: name,
-        },
-        success(res) {
-          if (res.data.length == 1) {
-            that.dialogVisible = true;
-            BASE.closeLoading();
-            let yaxises = [
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "left",
-              },
-            ];
-            // yaxises.name = res.data[0].name;
-            yaxises.unit = res.data[0].unit;
-            that.AnalysisYAxises = yaxises;
-            let aKey1 = ["doubleValue"];
-            let aList1 = [
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-            ];
-            aKey1.forEach((keyEle, keyIndex) => {
-              aList1[keyIndex].title = res.data[keyIndex].name;
-              res.data[keyIndex].data.forEach((rEle) => {
-                aList1[keyIndex].value.push({
-                  text: new Date(rEle.ts).formatDate("hh:mm"),
-                  value: rEle.doubleValue,
-                });
-              });
-            });
-            that.Analysis = aList1;
-          } else if (res.data.length == 2) {
-            that.dialogVisible = true;
-            BASE.closeLoading();
-            let aKey2 = ["doubleValue", "doubleValue"];
-            let aList2 = [
-              {
-                title: "",
-                //  yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-            ];
-            let yaxises1 = [
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "left",
-              },
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "right",
-              },
-            ];
-            yaxises1.forEach((aEle, aIndex) => {
-              res.data.forEach((rEle) => {
-                // aEle.name = rEle.name;
-                aEle.unit = rEle.unit;
-              });
-            });
-            that.AnalysisYAxises = yaxises1;
-            aKey2.forEach((keyEle, keyIndex) => {
-              aList2[keyIndex].title = res.data[keyIndex].name;
-              res.data[keyIndex].data.forEach((rEle) => {
-                aList2[keyIndex].value.push({
-                  text: new Date(rEle.ts).formatDate("hh:mm"),
-                  value: rEle.doubleValue,
-                });
-              });
-            });
-            // res.data.forEach((rEle,rIndex)=>{
-            // })
-            // aKey2.forEach((keyEle, keyIndex) => {
-            //   res.data.forEach((rEle) => {
-            //     // alist2[keyIndex].yAxisIndex = keyIndex;
-            //     aList2[keyIndex].title = res.data[keyIndex].name;
-            //     rEle.data.forEach((tEle,tIndex) => {
-            //       aList2[keyIndex].value.push({
-            //         text: new Date(tEle.ts).formatDate("hh:mm"),
-            //         // value: tEle[keyEle],
-            //         // value:res.data[keyIndex].data[tIndex].doubleValue
+	import Panel3 from "../../components/coms/panel/panel3.vue";
+	import Table3 from "../../components/coms/table/table3.vue";
+	import MultipleYLineChartNormal from "./multiple-y-line-chart-normal.vue";
+	import FX from "./alarm-center-yjfx.vue";
+	import BASE from '@tools/basicTool.js';
+	export default {
+		components: {
+			Panel3,
+			Table3,
+			MultipleYLineChartNormal,
+			FX
+		},
+		data() {
+			return {
+				dialogTitleFX: "",
+				dialogVisibleFX: false,
+				dialogTitle: "",
+				chooseStatus: false,
+				dialogVisible: false,
+				chooseTime: [],
+				wpvalue: "",
+				wpid: "",
+				wtId: "",
+				descName: "",
+				AnalysisName: "",
+				AnalysisUnit: "",
+				Analysis: [{
+					title: "",
+					yAxisIndex: 0, // 使用单位
+					value: [],
+				}, ],
+				AnalysisYAxises: [{
+						name: "",
+						min: "",
+						max: "",
+						unit: "",
+						position: "left",
+					},
+					{
+						name: "",
+						min: "",
+						max: "",
+						unit: "",
+						position: "right",
+					},
+				],
+				selectValue: "60",
+				timeoptions: [{
+						value: "60",
+						label: "一分钟",
+					},
+					{
+						value: "300",
+						label: "五分钟",
+					},
+					{
+						value: "600",
+						label: "十分钟",
+					},
+					{
+						value: "1800",
+						label: "三十分钟",
+					},
+					{
+						value: "3600",
+						label: "一小时",
+					},
+					{
+						value: "86400",
+						label: "一天",
+					},
+				],
+				wpoptions: "",
+				options: [],
+				cascaderOptions: [],
+				cascaderSel: [],
+				cascaderProps: {
+					multiple: true
+				},
+				column: [
+					"风机偏航过程震动",
+					"齿轮箱轴承温升超过40度",
+					"三相电流不平衡",
+					"断轴或联轴器打滑",
+					"风速突变",
+				],
+				columnObj: [{
+						name: "风机编号",
+						field: "name",
+						width: "100px",
+						minWidth: "100px",
+					},
+					{
+						name: "风机偏航过程震动",
+						field: "风机偏航过程震动",
+						align: "left",
+						slot: true,
+						sortable: true,
+						minWidth: "200px",
+					},
+					{
+						name: "齿轮箱轴承温升超过40度",
+						field: "齿轮箱轴承温升超过40度",
+						align: "left",
+						slot: true,
+						sortable: true,
+						minWidth: "200px",
+					},
+					{
+						name: "三相电流不平衡",
+						field: "三相电流不平衡",
+						align: "left",
+						slot: true,
+						sortable: true,
+						minWidth: "200px",
+					},
+					{
+						name: "断轴或联轴器打滑",
+						field: "断轴或联轴器打滑",
+						align: "left",
+						slot: true,
+						sortable: true,
+						minWidth: "200px",
+					},
+					{
+						name: "风速突变",
+						align: "left",
+						field: "风速突变",
+						slot: true,
+						sortable: true,
+						minWidth: "200px",
+					},
+				],
+				startdate: new Date(
+					new Date(new Date().setDate(new Date().getDate() - 1))
+				).formatDate("yyyy-MM-dd"),
+				enddate: new Date(new Date()).formatDate("yyyy-MM-dd"),
+				tableData: {
+					column: [{
+							name: "风机编号",
+							field: "name"
+						},
+						{
+							name: "主轴温度温差大于8度",
+							field: "v1",
+							align: "left",
+							slot: true,
+						},
+						{
+							name: "浆叶角过小",
+							field: "v2",
+							align: "left",
+							slot: true
+						},
+					],
+					data: [{
+						name: "MG01_01",
+						v1: {
+							count: 12,
+							time: 0
+						}
+					}],
+				},
+			};
+		},
+		created() {
+			
+			this.$nextTick(() => {
+				this.search();
+			});
+		},
+		methods: {
+			//对比
+			showChart(column) {
+				let that = this;
+				that.dialogTitle = column.column.name;
+				that.wtId = column.row.name;
+				that.descName = column.column.name;
 
-            //       });
-            //     });
-            //   });
-            // });
+				that.requestDetailData(
+					that.wpvalue,
+					that.startdate,
+					that.enddate,
+					60,
+					column.row.name,
+					column.column.name
+				);
+			},
+			requestDetailData(station, startTs, endTs, interval, wtId, name) {
+				let that = this;
+				BASE.showLoading();
+				that.API.requestData({
+					method: "GET",
+					subUrl: "/analysis/detail",
+					data: {
+						// station: that.wpvalue,
+						// startTs: new Date(that.startdate).getTime(),
+						// endTs: new Date(that.enddate).getTime(),
+						// // interval: 360,
+						// interval:1,
+						// wtId: column.row.name,
+						// name: column.column.name,
+						station: station,
+						startTs: new Date(new Date(startTs).formatDate("yyyy/MM/dd")).getTime(),
+						endTs: new Date(new Date(endTs).formatDate("yyyy/MM/dd")).getTime(),
+						interval: interval,
+						wtId: wtId,
+						name: name,
+					},
+					success(res) {
+						if (res.data.length == 1) {
+							that.dialogVisible = true;
+							BASE.closeLoading();
+							let yaxises = [{
+								name: "",
+								min: 0,
+								max: null,
+								unit: "",
+								position: "left",
+							}, ];
+							// yaxises.name = res.data[0].name;
+							yaxises.unit = res.data[0].unit;
+							that.AnalysisYAxises = yaxises;
+							let aKey1 = ["doubleValue"];
+							let aList1 = [{
+								title: "",
+								// yAxisIndex:"",
+								smooth: true,
+								value: [],
+							}, ];
+							aKey1.forEach((keyEle, keyIndex) => {
+								aList1[keyIndex].title = res.data[keyIndex].name;
+								res.data[keyIndex].data.forEach((rEle) => {
+									aList1[keyIndex].value.push({
+										text: new Date(rEle.ts).formatDate("hh:mm"),
+										value: rEle.doubleValue,
+									});
+								});
+							});
+							that.Analysis = aList1;
+						} else if (res.data.length == 2) {
+							that.dialogVisible = true;
+							BASE.closeLoading();
+							let aKey2 = ["doubleValue", "doubleValue"];
+							let aList2 = [{
+									title: "",
+									//  yAxisIndex:"",
+									smooth: true,
+									value: [],
+								},
+								{
+									title: "",
+									// yAxisIndex:"",
+									smooth: true,
+									value: [],
+								},
+							];
+							let yaxises1 = [{
+									name: "",
+									min: 0,
+									max: null,
+									unit: "",
+									position: "left",
+								},
+								{
+									name: "",
+									min: 0,
+									max: null,
+									unit: "",
+									position: "right",
+								},
+							];
+							yaxises1.forEach((aEle, aIndex) => {
+								res.data.forEach((rEle) => {
+									// aEle.name = rEle.name;
+									aEle.unit = rEle.unit;
+								});
+							});
+							that.AnalysisYAxises = yaxises1;
+							aKey2.forEach((keyEle, keyIndex) => {
+								aList2[keyIndex].title = res.data[keyIndex].name;
+								res.data[keyIndex].data.forEach((rEle) => {
+									aList2[keyIndex].value.push({
+										text: new Date(rEle.ts).formatDate("hh:mm"),
+										value: rEle.doubleValue,
+									});
+								});
+							});
+							// res.data.forEach((rEle,rIndex)=>{
+							// })
+							// aKey2.forEach((keyEle, keyIndex) => {
+							//   res.data.forEach((rEle) => {
+							//     // alist2[keyIndex].yAxisIndex = keyIndex;
+							//     aList2[keyIndex].title = res.data[keyIndex].name;
+							//     rEle.data.forEach((tEle,tIndex) => {
+							//       aList2[keyIndex].value.push({
+							//         text: new Date(tEle.ts).formatDate("hh:mm"),
+							//         // value: tEle[keyEle],
+							//         // value:res.data[keyIndex].data[tIndex].doubleValue
 
-            that.Analysis = aList2;
-          } else if (res.data.length == 4) {
-            that.dialogVisible = true;
-            BASE.closeLoading();
-            let aKey4 = [
-              "doubleValue",
-              "doubleValue",
-              "doubleValue",
-              "doubleValue",
-            ];
-            let aList4 = [
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-              {
-                title: "",
-                // yAxisIndex:"",
-                smooth: true,
-                value: [],
-              },
-            ];
-            let yaxises2 = [
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "left",
-              },
-              {
-                name: "",
-                min: 0,
-                max: null,
-                unit: "",
-                position: "right",
-              },
-            ];
-            yaxises2.forEach((aEle, aIndex) => {
-              res.data.forEach((rEle) => {
-                // aEle.name = rEle.name;
-                aEle.unit = rEle.unit;
-              });
-            });
-            that.AnalysisYAxises = yaxises2;
-            aKey4.forEach((keyEle, keyIndex) => {
-              aList4[keyIndex].title = res.data[keyIndex].name;
-              res.data[keyIndex].data.forEach((rEle) => {
-                aList4[keyIndex].value.push({
-                  text: new Date(rEle.ts).formatDate("hh:mm"),
-                  value: rEle.doubleValue,
-                });
-              });
-            });
-            that.Analysis = aList4;
-          } else if (res.data.length == 0) {
-            that.dialogVisible = false;
-            BASE.closeLoading();
-            that.BASE.showMsg({
-              type: "warning",
-              msg: "暂无数据",
-            });
-          }
-        },
-      });
-    },
-    //切换数据类型
-    switchChange(interval,status) {
-      if(status === 'interval') {
-        this.chooseStatus = false
-        this.selectValue = '60'
-      }else if(status === 'original'){
-        this.chooseStatus = true
-      }
-      this.requestDetailData(
-          this.wpvalue,
-          this.startdate,
-          this.enddate,
-          interval,
-          this.wtId,
-          this.descName
-        );
-    },
+							//       });
+							//     });
+							//   });
+							// });
 
-    async search() {
-      const { data } = await this.API.requestData({
-        subUrl: "powercompare/windfarmAjax",
-      });
-      this.wpoptions = data.data;
-      this.wpvalue = data.data[0].id;
-      this.searchData();
-    },
+							that.Analysis = aList2;
+						} else if (res.data.length == 4) {
+							that.dialogVisible = true;
+							BASE.closeLoading();
+							let aKey4 = [
+								"doubleValue",
+								"doubleValue",
+								"doubleValue",
+								"doubleValue",
+							];
+							let aList4 = [{
+									title: "",
+									// yAxisIndex:"",
+									smooth: true,
+									value: [],
+								},
+								{
+									title: "",
+									// yAxisIndex:"",
+									smooth: true,
+									value: [],
+								},
+								{
+									title: "",
+									// yAxisIndex:"",
+									smooth: true,
+									value: [],
+								},
+								{
+									title: "",
+									// yAxisIndex:"",
+									smooth: true,
+									value: [],
+								},
+							];
+							let yaxises2 = [{
+									name: "",
+									min: 0,
+									max: null,
+									unit: "",
+									position: "left",
+								},
+								{
+									name: "",
+									min: 0,
+									max: null,
+									unit: "",
+									position: "right",
+								},
+							];
+							yaxises2.forEach((aEle, aIndex) => {
+								res.data.forEach((rEle) => {
+									// aEle.name = rEle.name;
+									aEle.unit = rEle.unit;
+								});
+							});
+							that.AnalysisYAxises = yaxises2;
+							aKey4.forEach((keyEle, keyIndex) => {
+								aList4[keyIndex].title = res.data[keyIndex].name;
+								res.data[keyIndex].data.forEach((rEle) => {
+									aList4[keyIndex].value.push({
+										text: new Date(rEle.ts).formatDate("hh:mm"),
+										value: rEle.doubleValue,
+									});
+								});
+							});
+							that.Analysis = aList4;
+						} else if (res.data.length == 0) {
+							that.dialogVisible = false;
+							BASE.closeLoading();
+							that.BASE.showMsg({
+								type: "warning",
+								msg: "暂无数据",
+							});
+						}
+					},
+				});
+			},
+			//切换数据类型
+			switchChange(interval, status) {
+				if (status === 'interval') {
+					this.chooseStatus = false
+					this.selectValue = '60'
+				} else if (status === 'original') {
+					this.chooseStatus = true
+				}
+				this.requestDetailData(
+					this.wpvalue,
+					this.startdate,
+					this.enddate,
+					interval,
+					this.wtId,
+					this.descName
+				);
+			},
 
-    async searchTree() {
-      let arr = [];
-      let columnObj = [
-        {
-          name: "风机编号",
-          field: "name",
-          minWidth: "100px",
-        },
-      ];
-      this.cascaderSel.forEach((e) => {
-        let obj = {
-          name: e[1],
-          field: e[1],
-          align: "left",
-          slot: true,
-          sortable: true,
-          minWidth: "200px",
-        };
-        columnObj.push(obj);
+			async search() {
+				const {
+					data
+				} = await this.API.requestData({
+					subUrl: "powercompare/windfarmAjax",
+				});
+				this.wpoptions = data.data;
+				this.wpvalue = data.data[0].id;
+				this.searchData();
+			},
 
-        arr.push(e[1]);
-      });
-      this.columnObj = columnObj;
-      this.column = arr;
-      this.searchData();
-    },
+			async searchTree() {
+				let arr = [];
+				let columnObj = [{
+					name: "风机编号",
+					field: "name",
+					minWidth: "100px",
+				}, ];
+				this.cascaderSel.forEach((e) => {
+					let obj = {
+						name: e[1],
+						field: e[1],
+						align: "left",
+						slot: true,
+						sortable: true,
+						minWidth: "200px",
+					};
+					columnObj.push(obj);
 
-    async searchData() {
-      const { data } = await this.API.requestData({
-        baseURL: "http://192.168.1.18:8075/",
-        subUrl: "alarm/count/query/new2",
-        data: {
-          stationid: this.wpvalue,
-          startdate: new Date(this.startdate).formatDate("yyyy-MM-dd"),
-          enddate: new Date(this.enddate).formatDate("yyyy-MM-dd"),
-        },
-      });
-      ////////
-      const resData = data.data;
-      // const resData =this.resdata;
-      const column = this.columnObj;
-      let dataAll = []; // 总数据集合
-      resData.forEach((e) => {
-        let obj = {
-          name: Object.keys(e)[0],
-        };
-        let wpid = Object.keys(e)[0];
-        this.wpid = wpid;
+					arr.push(e[1]);
+				});
+				this.columnObj = columnObj;
+				this.column = arr;
+				this.searchData();
+			},
 
-        e[wpid].forEach((k) => {
-          column.forEach((c) => {
-            if (k.alertText == c.name) {
-              let obj1 = {
-                count: k.count,
-                time: k.time,
-              };
-              obj[k.alertText] = obj1;
-            }
-          });
-        });
-        dataAll.push(obj);
-      });
-      this.tableData.column = column;
-      this.tableData.data = dataAll;
-      ///////////////////// 获取规则list
-      const map = {};
-      var windNum = [];
-      for (let i in resData) {
-        for (let k in resData[i]) {
-          map[k] = resData[i][k];
-        }
-      }
-      // nmap为新的map 整理数据结构
-      const nmap = {};
-      for (let kv in map) {
-        var nchildMap = {};
-        var childrenMap = map[kv];
-        for (var ckv in childrenMap) {
-          var cckey = childrenMap[ckv].alertText;
-          var ccvalue = childrenMap[ckv];
-          nchildMap[cckey] = ccvalue;
-        }
-        nmap[kv] = nchildMap;
-      }
-      windNum = Object.keys(nmap);
-      var cascaderOptions = [];
-      var root = {}; // 原始根节点
-      var clumnsOnes = nmap[windNum[0]];
-      for (let k in clumnsOnes) {
-        let f = clumnsOnes[k].relatePartsText
-          ? clumnsOnes[k].relatePartsText
-          : "其他";
-        let fvalue = clumnsOnes[k].relateParts ? clumnsOnes[k].relateParts : "";
+			async searchData() {
+				const {
+					data
+				} = await this.API.requestData({
+					showLoading:true,
+					baseURL: "http://192.168.1.18:8075/",
+					subUrl: "alarm/count/query/new2",
+					data: {
+						stationid: this.wpvalue,
+						startdate: new Date(this.startdate).formatDate("yyyy-MM-dd"),
+						enddate: new Date(this.enddate).formatDate("yyyy-MM-dd"),
+					},
+				});
+				////////
+				this.tableData = [];
+				const resData = data.data;
+				// const resData =this.resdata;
+				const column = this.columnObj;
+				let dataAll = []; // 总数据集合
+				resData.forEach((e) => {
+					let obj = {
+						name: Object.keys(e)[0],
+					};
+					let wpid = Object.keys(e)[0];
+					this.wpid = wpid;
 
-        if (root[f]) {
-          // 已经存在此子节点
-          if (!root[f].children[k]) {
-            // 不存在子节点
-            root[f].children[k] = {};
-            root[f].children[k].value = root[f].children[k].label = k;
-            root[f].fobj.children.push(root[f].children[k]);
-          }
-        } // 不存在子节点
-        else {
-          root[f] = {};
-          // root[f].value = fvalue;
-          // root[f].label = f;
-          root[f].children = {};
-          root[f].children[k] = {};
-          root[f].children[k].value = root[f].children[k].label = k;
+					e[wpid].forEach((k) => {
+						column.forEach((c) => {
+							if (k.alertText == c.name) {
+								let obj1 = {
+									count: k.count,
+									countStyle:((k.count / (k.count + k.time)) * 100) + 'px',
+									time: k.time,
+									timeStyle:((k.time / (k.count + k.time)) * 100) + 'px'
+								};
+								obj[k.alertText] = obj1;
+							}
+						});
+					});
+					dataAll.push(obj);
+				});
+				
+				this.tableData.column = column;
+				this.tableData.data = dataAll;
+				
+				///////////////////// 获取规则list
+				const map = {};
+				var windNum = [];
+				for (let i in resData) {
+					for (let k in resData[i]) {
+						map[k] = resData[i][k];
+					}
+				}
+				// nmap为新的map 整理数据结构
+				const nmap = {};
+				for (let kv in map) {
+					var nchildMap = {};
+					var childrenMap = map[kv];
+					for (var ckv in childrenMap) {
+						var cckey = childrenMap[ckv].alertText;
+						var ccvalue = childrenMap[ckv];
+						nchildMap[cckey] = ccvalue;
+					}
+					nmap[kv] = nchildMap;
+				}
+				windNum = Object.keys(nmap);
+				var cascaderOptions = [];
+				var root = {}; // 原始根节点
+				var clumnsOnes = nmap[windNum[0]];
+				for (let k in clumnsOnes) {
+					let f = clumnsOnes[k].relatePartsText ?
+						clumnsOnes[k].relatePartsText :
+						"其他";
+					let fvalue = clumnsOnes[k].relateParts ? clumnsOnes[k].relateParts : "";
 
-          // 将对象放入 cascaderOptions
-          let childrenArray = [];
-          childrenArray.push(root[f].children[k]);
-          let fobj = {};
-          fobj.value = fvalue;
-          fobj.label = f;
-          fobj.children = childrenArray;
-          cascaderOptions.push(fobj);
-          root[f].fobj = fobj;
-        }
-      }
-      this.cascaderOptions = cascaderOptions;
-    },
-	fx(){
-		this.startdate=new Date(this.startdate).formatDate("yyyy-MM-dd");
-		this.dialogTitleFX= "预警分析";
-		this.dialogVisibleFX= true;
-	}
-  },
-};
+					if (root[f]) {
+						// 已经存在此子节点
+						if (!root[f].children[k]) {
+							// 不存在子节点
+							root[f].children[k] = {};
+							root[f].children[k].value = root[f].children[k].label = k;
+							root[f].fobj.children.push(root[f].children[k]);
+						}
+					} // 不存在子节点
+					else {
+						root[f] = {};
+						// root[f].value = fvalue;
+						// root[f].label = f;
+						root[f].children = {};
+						root[f].children[k] = {};
+						root[f].children[k].value = root[f].children[k].label = k;
+
+						// 将对象放入 cascaderOptions
+						let childrenArray = [];
+						childrenArray.push(root[f].children[k]);
+						let fobj = {};
+						fobj.value = fvalue;
+						fobj.label = f;
+						fobj.children = childrenArray;
+						cascaderOptions.push(fobj);
+						root[f].fobj = fobj;
+					}
+				}
+				this.cascaderOptions = cascaderOptions;
+			},
+			fx() {
+				this.startdate = new Date(this.startdate).formatDate("yyyy-MM-dd");
+				this.dialogTitleFX = "预警分析";
+				this.dialogVisibleFX = true;
+			}
+		},
+	};
 </script>
 
 <style lang="less">
-.alarm-center-1 {
-  .action-bar {
-    display: flex;
+	.alarm-center-1 {
+		.action-bar {
+			display: flex;
+
+			.query {
+				justify-content: flex-start;
+			}
+		}
 
-    .query {
-      justify-content: flex-start;
-    }
-  }
+		.table-panel {
+			width: 100%;
+			background: transparent;
+			padding: 0;
 
-  .table-panel {
-    width: 100%;
-    background: transparent;
-    padding: 0;
+			.bar {
+				display: flex;
+				align-items: center;
+				height: 16px;
+				margin: 8px 0;
 
-    .bar {
-      display: flex;
-      align-items: center;
-      height: 16px;
-      margin: 8px 0;
+				.bar-percent {
+					height: 100%;
+					background: @green;
+					margin-right: 8px;
+				}
+			}
+		}
 
-      .bar-percent {
-        height: 100%;
-        background: @green;
-        margin-right: 8px;
-      }
-    }
-  }
-  .searchForm {
-    display: flex;
-    margin-left: 36px;
-    flex-direction: row-reverse;
-    .inputs {
-      width: 15%;
-      margin-right: 18px;
-    }
-  }
-}
+		.searchForm {
+			display: flex;
+			margin-left: 36px;
+			flex-direction: row-reverse;
+
+			.inputs {
+				width: 15%;
+				margin-right: 18px;
+			}
+		}
+	}
 </style>

+ 5 - 18
src/views/NewPages/alarm-center-2.vue

@@ -39,26 +39,12 @@
       <table-2 :data="tableData" :height="'88vh'">
         <template v-for="(item, i) in column" :key="i" #[item]="scope">
           <div class="bar">
-            <div class="bar-percent" :style="{
-                width:
-                  (scope.data.count &&
-                    scope.data.count / (scope.data.count + scope.data.time)) *
-                    100 +
-                  'px',
-              }"></div>
-            <span class="value">{{
-              scope.data.count && scope.data.count
-              }}</span>
+          	<div class="bar-percent" :style="{ width: scope?.data?.countStyle }"> </div>
+          	<span class="value">{{ scope?.data?.count }} 次数</span>
           </div>
           <div class="bar">
-            <div class="bar-percent" :style="{
-                width:
-                  (scope.data.count &&
-                    scope.data.time / (scope.data.count + scope.data.time)) *
-                    100 +
-                  'px',
-              }"></div>
-            <span class="value">{{ scope.data.count && scope.data.time }}</span>
+          	<div class="bar-percent" :style="{ width: scope?.data?.timeStyle}"></div>
+          	<span class="value">{{scope?.data?.time }} 分钟</span>
           </div>
         </template>
       </table-2>
@@ -210,6 +196,7 @@ export default {
     },
     async searchData () {
       const { data } = await this.API.requestData({
+		  showLoading:true,
         baseURL: "http://192.168.1.18:8075/",
         subUrl: "shutdown/list",
         data: {

+ 1 - 1
src/views/singleAnalysis/index.vue

@@ -43,7 +43,7 @@
       <ComTable height="78vh" :data="tableData">
         <template v-slot:tr v-if="tableData.data.length > 0">
           <tr>
-            <td v-for="(item, index) in tableData.column" key="index">
+            <td v-for="(item, index) in tableData.column" :key="index">
               {{ tableDataEnd[item.field] }}
             </td>
           </tr>