he wei
2023-04-19 81f3ac487af03db99d3caae55bbe4610599f9023
UA 电池实时告警 历史告警 设备实时告警 国际化
11个文件已修改
3个文件已添加
801 ■■■■■ 已修改文件
src/assets/js/api.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/config.module.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/i18n/base.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/i18n/getDevAlarm.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/tools/getDevAlarm.js 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Navbar.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarmMager/batteryrHistoryquery.vue 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarmMager/batteryrTimequery.vue 131 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarmMager/components/number-total-labels.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarmMager/components/number-total-tabs.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarmMager/deviceTimequery.vue 172 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarmMager/i18n/batteryrHistoryquery.js 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarmMager/i18n/batteryrTimequery.js 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarmMager/i18n/deviceTimequery.js 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/api.js
@@ -172,4 +172,16 @@
    method: 'GET',
    url: 'battInf/getVideoAccessToken'
  });
}
/**
 * 国际化语言切换
 */
export const serverLang = (lang) => {
  return axios({
    method: 'GET',
    url: 'server/lang',
    params: {
      lang
    }
  });
}
src/assets/js/config.module.js
@@ -77,7 +77,7 @@
     * 山西太原: 'sxty'
     * 杭州送检: 'hzsj'
     */
    name: 'sxty',
    name: '',
    value: false,
  },
  // 是否要(加验签) 安全模式
src/assets/js/i18n/base.js
@@ -6,6 +6,10 @@
    },
    form: {
      validateMsg: '存在校验未通过的数据',
      allCount: '全部(共{n}种) | 全部(共{n}种) | 全部(共{n}种)',
      selectDate: '选择日期',
      yes: '是',
      no: '否',
    },
    operate: {
      ok: '确定',
@@ -13,6 +17,8 @@
      export: '导出',
      search: '查询',
      operation: '操作',
      successMsg: '操作成功',
      failMsg: '操作失败',
    },
  },
  US: {
@@ -22,6 +28,10 @@
    },
    form: {
      validateMsg: 'Verify failed data existed',
      allCount: 'All({n}) | All({n}) | All({n})',
      selectDate: 'Select Date',
      yes: 'Yes',
      no: 'No',
    },
    operate: {
      ok: 'Ok',
@@ -29,6 +39,8 @@
      export: 'Export',
      search: 'Search',
      operation: 'Operation',
      successMsg: 'Operation Successful!',
      failMsg: 'Operation Failed!',
    },
  }
}
src/assets/js/i18n/getDevAlarm.js
New file
@@ -0,0 +1,48 @@
export default {
  messages: {
    CN: {
      119020: "通信故障",
      618501: "继电器K1告警",
      618502: "通讯告警",
      618503: "设备过温告警",
      618504: "二极管D1告警",
      618505: "干接点告警",
      618506: "异常核容或养护终止告警",
      119023: "续航不足告警",
      119024: "基站停电告警",
      119025: "基站发电告警",
      119026: "基站掉站告警",
      119027: "基站开门告警",
      119028: "设备高温告警",
      119032: "设备SD卡故障",
      119033: "采集线告警",
      119034: "停电电流均衡告警",
      level1: '一级告警',
      level2: '二级告警',
      level3: '三级告警',
      level4: '四级告警',
    },
    US: {
      119020: "Comm Error",
      618501: "Relay K1 Alarm",
      618502: "Communication Alarm",
      618503: "Device Overheat Alarm",
      618504: "Diode D1 Alarm",
      618505: "Dry Contact Alarm",
      618506: "Abnormal Capacity Check or maintenance termination alarm",
      119023: "Insufficient Battery Life Alarm",
      119024: "Base Station Power Outage Alarm",
      119025: "Base Station Power Generating Alarm",
      119026: "Base Station Power Off Alarm",
      // 119027: "基站开门告警",
      119028: "Device High Temperature Alarm",
      119032: "Device SD Card Error",
      119033: "Acquisition Harness Alarm",
      119034: "Outage Current Balance Alarm",
      level1: 'Level 1 Alarm',
      level2: 'Level 2 Alarm',
      level3: 'Level 3 Alarm',
      level4: 'Level 4 Alarm',
    }
  }
}
src/assets/js/tools/getDevAlarm.js
@@ -1,87 +1,90 @@
/**
 * 修改文件需要修改上层tools目录同级目录i18n目录下的同名js文件
 */
function getDevAlarm() {
    return {
        types: [
            {
                value: "119020",
                label: "通信故障"
                label: "119020"
            },
            {
                value: "618501",
                label: "继电器K1告警"
                label: "618501"
            },
            {
                value: "618502",
                label: "通讯告警"
                label: "618502"
            },
            {
                value: "618503",
                label: "设备过温告警"
                label: "618503"
            },
            {
                value: "618504",
                label: "二极管D1告警"
                label: "618504"
            },
            {
                value: "618505",
                label: "干接点告警"
                label: "618505"
            },
            {
                value: "618506",
                label: "异常核容或养护终止告警"
                label: "618506"
            },
            {
                value: "119023",
                label: "续航不足告警"
                label: "119023"
            },
            {
                value: "119024",
                label: "基站停电告警"
                label: "119024"
            },
            {
                value: "119025",
                label: "基站发电告警"
                label: "119025"
            },
            {
                value: "119026",
                label: "基站掉站告警"
                label: "119026"
            },
            {
                value: "119027",
                label: "基站开门告警"
            },
            // {
            //     value: "119027",
            //     label: "基站开门告警"
            // },
            {
                value: "119028",
                label: "设备高温告警"
                label: "119028"
            },
            {
                value: "119032",
                label: "设备SD卡故障"
                label: "119032"
            },
            {
                value: "119033",
                label: "采集线告警"
                label: "119033"
            },
            {
                value: "119034",
                label: "停电电流均衡告警"
                label: "119034"
            },
        ],
        levels: [
            {
                value: 1,
                label: '一级告警'
                label: 'level1'
            },
            {
                value: 2,
                label: '二级告警'
                label: 'level2'
            },
            {
                value: 3,
                label: '三级告警'
                label: 'level3'
            },
            {
                value: 4,
                label: '四级告警'
                label: 'level4'
            },
        ],
    };
src/layout/components/Navbar.vue
@@ -186,6 +186,7 @@
import i18n from './i18n/navbar';
import pifuI18n from './i18n/pifuList';
import { createI18nOption } from '@/assets/js/tools/i18n';
import { serverLang } from '@/assets/js/api';
const i18nMixin = createI18nOption(i18n, [[pifuI18n, 'pifu']]);
export default {
@@ -327,6 +328,21 @@
    };
  },
  methods: {
    sendLang(lang) {
      let _lang = '';
      switch (lang) {
        case 'US':
          _lang = 'en_US';
          break;
        case 'CN':
          _lang = 'zh_CN';
          break;
      }
      // 请求接口
      serverLang(_lang).catch(err => {
        console.log(err);
      });
    },
    closeUsefulTools() {
      this.usefulToolsDrawer = false;
    },
@@ -959,13 +975,15 @@
      handler(v) {
        // this.$i18n.locale = v;
        // this.$root.$i18n.locale = v;
        // 通知后台 当前语种
        this.sendLang(v);
        this.sendMessage();
      },
      immediate: true
    },
  },
  mounted() {
    console.log(this.$i18n)
    // console.log(this.$i18n)
    // 启动请求
    // this.startSearch();
src/views/alarmMager/batteryrHistoryquery.vue
@@ -9,59 +9,56 @@
        :level4="levelRes.four"></number-total-labels>
      <div class="table-layout filter-box-table">
        <div class="table-row">
          <div class="table-cell text-right">维护区:</div>
          <div class="table-cell text-right">{{ $t('MaintenanceArea') }}:</div>
          <div class="table-cell">
            <el-select
              v-model="selectValue1"
              size="small"
              @change="changeSelect1"
              :placeholder="selectPlace1"
              class="weihu"
            >
              <el-option
                v-for="(item, i) in newsHost"
                :key="'host_' + i"
                :label="item.label"
                :label="0 == i ? $tc('form.allCount', item.label) : item.label"
                :value="item.value"
              ></el-option>
            </el-select>
          </div>
          <div class="table-cell text-right">机房站点:</div>
          <div class="table-cell text-right">{{ $t('EquipmentRoomSite') }}:</div>
          <div class="table-cell">
            <el-select
              v-model="selectValue2"
              size="small"
              @change="batterJque"
              :placeholder="selectPlace2"
              class="rooms"
            >
              <el-option
                v-for="(item, i) in newSite"
                :key="'room_' + i"
                :label="item.label"
                :label="0 == i ? $tc('form.allCount', item.label) : item.label"
                :value="item.value"
              ></el-option>
            </el-select>
          </div>
          <div class="table-cell text-right">蓄电池组:</div>
          <div class="table-cell text-right">{{ $t('BatteryGroup') }}:</div>
          <div class="table-cell">
            <el-select
              v-model="selectValue3"
              size="small"
              :placeholder="selectPlace3"
              @change="historyArlm"
              class="dainchi"
            >
              <el-option :label="selectPlace3" :value="0"></el-option>
              <el-option :label="$tc('form.allCount', selectPlace3)" :value="0"></el-option>
              <el-option
                v-for="(item, i) in batterList"
                :key="'batt_' + i"
                :label="item.BattGroupName"
                :label="item.battGroupName + '-' + $tc('cells', item.monCount)"
                :value="item.battGroupId"
              ></el-option>
            </el-select>
          </div>
          <div class="table-cell text-right">告警开始日期:</div>
          <div class="table-cell text-right">{{ $t('AlarmStartDate') }}:</div>
          <div class="table-cell">
            <el-date-picker
              v-model="startDrsj"
@@ -69,7 +66,7 @@
              class="time_box"
              :picker-options="pickerOptions0"
              type="date"
              placeholder="选择日期"
              :placeholder="$t('form.selectDate')"
              value-format="yyyy-MM-dd"
            ></el-date-picker
            >-
@@ -79,7 +76,7 @@
              class="time_box"
              :picker-options="pickerOptions1"
              type="date"
              placeholder="选择日期"
              :placeholder="$t('form.selectDate')"
              value-format="yyyy-MM-dd"
            ></el-date-picker>
          </div>
@@ -89,13 +86,13 @@
      <table class="condiOpt" border="1">
        <tr class="trTitle">
          <td>
            <center>告警条件过滤</center>
            <center>{{ $t('AlarmConditionFiltering') }}</center>
          </td>
          <td>
            <center>告警阀值过滤</center>
            <center>{{ $t('AlarmThresholdFiltering') }}</center>
          </td>
          <td>
            <center>告警等级过滤</center>
            <center>{{ $t('AlarmLevelFiltering') }}</center>
          </td>
        </tr>
        <tr class="trBody">
@@ -103,44 +100,41 @@
            <ul class="inputOne">
              <li>
                <el-checkbox v-model="checkbox.usr_id.bol"
                  >在线电压</el-checkbox
                  >{{ $t('OnlineVoltage') }}</el-checkbox
                >
                <!-- <input type="checkbox" value="119002" checked="checked" v-model="" />组端电压 -->
              </li>
              <li>
                <el-checkbox v-model="checkbox.fault_type_id.bol"
                  >组端电压</el-checkbox
                  >{{ $t('StringVoltage') }}</el-checkbox
                >
                <!-- <input type="checkbox" value="119002" checked="checked" v-model="" />组端电压 -->
              </li>
              <li>
                <el-checkbox v-model="checkbox.uname.bol">漏液电压</el-checkbox>
                <!-- <input type="checkbox" value="119002" checked="checked" v-model="" />组端电压 -->
                <el-checkbox v-model="checkbox.uname.bol">{{ $t('LeakageVoltage') }}</el-checkbox>
              </li>
              <li>
                <el-checkbox v-model="checkbox.fault_level.bol"
                  >充电电流</el-checkbox
                  >{{ $t('ChargeCurrent') }}</el-checkbox
                >
              </li>
              <li>
                <el-checkbox v-model="checkbox.record_uid.bol"
                  >放电电流</el-checkbox
                  >{{ $t('DischargeCurrent') }}</el-checkbox
                >
              </li>
              <br />
              <li>
                <el-checkbox v-model="checkbox.maint_type_id.bol"
                  >单体电压</el-checkbox
                  >{{ $t('CellVoltage') }}</el-checkbox
                >
              </li>
              <li>
                <el-checkbox v-model="checkbox.maint_close.bol"
                  >单体内阻</el-checkbox
                  >{{ $t('CellResistance') }}</el-checkbox
                >
              </li>
              <li>
                <el-checkbox v-model="checkbox.maint_done.bol"
                  >单体温度</el-checkbox
                  >{{ $t('CellTemperature') }}</el-checkbox
                >
              </li>
            </ul>
@@ -149,12 +143,12 @@
            <ul class="inputOne">
              <li>
                <el-checkbox v-model="checkbox.alm_id.bol"
                  >上限告警</el-checkbox
                  >{{ $t('UpLimitAlarm') }}</el-checkbox
                >
              </li>
              <li>
                <el-checkbox v-model="checkbox.alm_signal_id.bol"
                  >下限告警</el-checkbox
                  >{{ $t('LowLimitAlarm') }}</el-checkbox
                >
              </li>
            </ul>
@@ -163,22 +157,22 @@
            <ul class="inputOne">
              <li>
                <el-checkbox v-model="checkbox.Level_one_warn.bol"
                  >一级告警</el-checkbox
                  >{{ $t('Level1Alarm') }}</el-checkbox
                >
              </li>
              <li>
                <el-checkbox v-model="checkbox.Level_two_warn.bol"
                  >二级告警</el-checkbox
                  >{{ $t('Level2Alarm') }}</el-checkbox
                >
              </li>
              <li>
                <el-checkbox v-model="checkbox.master_audit.bol"
                  >三级告警</el-checkbox
                  >{{ $t('Level3Alarm') }}</el-checkbox
                >
              </li>
              <li>
                <el-checkbox v-model="checkbox.appoint_uid.bol"
                  >四级告警</el-checkbox
                  >{{ $t('Level4Alarm') }}</el-checkbox
                >
              </li>
            </ul>
@@ -198,13 +192,13 @@
          ref="goodsDetailTable"
          tooltip-effect="light"
        >
          <el-table-column :width="50" type="index" label="编号">
          <el-table-column :width="50" type="index" :label="$t('Num')">
          </el-table-column>
          <el-table-column
            v-for="header in table.headers"
            :key="header.prop"
            :prop="header.prop"
            :label="header.label"
            :label="$t(header.label)"
            :width="header.width"
            :min-width="header.minWidth"
            align="center"
@@ -213,18 +207,18 @@
          <el-table-column
            prop="cztime"
            fixed="right"
            width="180px"
            width="200px"
            align="center"
            label="操作"
            :label="$t('operate.operation')"
          >
            <template slot-scope="scope">
              <el-button type="primary" size="mini" @click="goRealTime(scope.row)">实时</el-button>
              <el-button type="primary" size="mini" @click="goRealTime(scope.row)">{{ $t('Realtime') }}</el-button>
              <el-button
                :disabled="!isCanDel"
                type="danger"
                size="mini"
                @click="deleteUser(scope.row)"
                >删除</el-button
                >{{ $t('Delete') }}</el-button
              >
            </template>
          </el-table-column>
@@ -240,7 +234,7 @@
          round
          size="mini"
          icon="el-icon-search"
          >查询</el-button
          >{{ $t('operate.search') }}</el-button
        >
        <el-button
          type="primary"
@@ -248,7 +242,7 @@
          size="mini"
          icon="el-icon-wallet"
          @click="exportFile"
          >导出</el-button
          >{{ $t('operate.export') }}</el-button
        >
      </div>
      <el-pagination
@@ -261,7 +255,6 @@
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"
      ></el-pagination>
      <!--  <el-button type="primary" round size="mini" icon="el-icon-wallet">全部选中</el-button> -->
    </div>
  </flex-layout>
</template>
@@ -282,8 +275,13 @@
import NumberTotalLabels from "@/views/alarmMager/components/number-total-labels.vue";
import get_county_station from "@/assets/js/tools/get_county_station";
import getSearch from "@/assets/js/tools/getSearch";
import i18n from './i18n/batteryrHistoryquery';
import { createI18nOption } from '@/assets/js/tools/i18n';
const i18nMixin = createI18nOption(i18n);
export default {
  name: "batteryrHistoryquery",
  mixins: [i18nMixin],
  components: {NumberTotalLabels},
  data() {
    let permits = this.$store.state.user.permits;
@@ -408,47 +406,47 @@
        headers: [
          {
            prop: "stationNamex",
            label: "机房名称",
            label: "EquipmentRoomName",
            minWidth: 320,
          },
          {
            prop: "battGroupName",
            label: "电池组名称",
            width: 120,
            label: "BatteryGroupName",
            width: 180,
          },
          {
            prop: "alarmName",
            label: "告警名称",
            label: "AlarmName",
            width: 162,
          },
          {
            prop: "monNum",
            label: "单体编号",
            label: "CellNo",
            width: 80,
          },
          {
            prop: "almValue",
            label: "告警值",
            width: 80,
            label: "AlarmValue",
            width: 120,
          },
          {
            prop: "almLevel",
            label: "告警等级",
            label: "AlarmLevel",
            width: 120,
          },
          {
            prop: "almStartTime",
            label: "告警开始时间",
            label: "AlarmStartTime",
            width: 180,
          },
          {
            prop: "almConfirmedTime",
            label: "告警确认时间",
            label: "AlarmConfirmTime",
            width: 180,
          },
          {
            prop: "almEndTime",
            label: "告警结束时间",
            label: "almEndTime",
            width: 180,
          },
        ],
@@ -485,7 +483,7 @@
      });
      let list = this.table.datas;
      let excelData = this.formatJson(filterVal, list);
      export_json_to_excel(tHeader, excelData, "电池告警历史数据");
      export_json_to_excel(tHeader, excelData, this.$t('BatteryAlarmHistoryData'));
    },
    formatJson(filterVal, jsonData) {
      return jsonData.map((v) => filterVal.map((j) => v[j]));
@@ -503,11 +501,11 @@
        });
        let len = res.data.length;
        newsHost.unshift({
          label: `全部(共${len}种)`,
          label: len,
          value: "",
        });
        this.newsHost = newsHost;
        this.selectPlace1 = `全部(共${len}种)`;
        this.selectPlace1 = '';
      }
    },
    /*机房站点 */
@@ -525,11 +523,11 @@
        });
        let len = res.data.length;
        newSite.unshift({
          label: `全部(共${len}种)`,
          label: len,
          value: "",
        });
        this.newSite = newSite;
        this.selectPlace2 = `全部(共${len}种)`;
        this.selectPlace2 = '';
      }
    },
    /* 蓄电池组 */
@@ -543,12 +541,12 @@
      let res = jquerys.data;
      if (res.code) {
        let batterList = res.data.map((item) => {
          item.BattGroupName = `${item.battGroupName}-${item.monCount}节`;
          // item.BattGroupName = `${item.battGroupName}-${item.monCount}节`;
          return item;
        });
        /*  console.log("batterList", batterList); */
        this.batterList = batterList;
        this.selectPlace3 = `全部(共${batterList.length}种)`;
        this.selectPlace3 = batterList.length;
        /* console.log('this.batterList',this.batterList); */
      }
      this.historyArlm();
@@ -641,11 +639,11 @@
    /* 删除 */
    async deleteUser(value) {
      const confirmResult = await this.$confirm(
        "确定删除这条告警记录吗, 是否继续?",
        "提示",
        this.$t('deletealarmMsg'),
        this.$t('message'),
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          confirmButtonText: this.$t('operate.ok'),
          cancelButtonText: this.$t('operate.cancel'),
          type: "warning",
        }
      ).catch((err) => err);
@@ -655,7 +653,7 @@
      const ws = await hisDelet([value.num]);
      let res = ws.data;
      if (res.code) {
        this.$message.success("删除成功");
        this.$message.success(this.$t('DeleteSuccessful'));
        if (this.queryInfo.pageCurr != 1 && this.table.datas.length == 1) {
          this.queryInfo.pageCurr--;
        }
@@ -800,4 +798,4 @@
    }
  }
}
</style>
</style>
src/views/alarmMager/batteryrTimequery.vue
@@ -8,22 +8,23 @@
          <div class="table-cell text-right">{{ $t('MaintenanceArea') }}:</div>
          <div class="table-cell">
            <el-select v-model="selectValue1" :placeholder="$t('Pleaseselect')" size="small" class="weihu" @change="changeSelect1">
              <el-option v-for="item in vindicate" :key="item.label" :label="item.label" :value="item.value">
              <el-option v-for="(item, idx) in vindicate" :key="item.label" :label="0 == idx ? $tc('form.allCount', item.label) : item.label" :value="item.value">
              </el-option>
            </el-select>
          </div>
          <div class="table-cell text-right">{{ $t('EquipmentRoomSite') }}:</div>
          <div class="table-cell">
            <el-select v-model="selectValue2" @change="storageBatterys" :placeholder="$t('Pleaseselect')" size="small" class="rooms">
              <el-option v-for="(item, idx) in newRoms" :key="'newRoms_' + idx" :label="item.label"
              <el-option v-for="(item, idx) in newRoms" :key="'newRoms_' + idx" :label="0 == idx ? $tc('form.allCount', item.label) : item.label"
                :value="item.value"></el-option>
            </el-select>
          </div>
          <div class="table-cell text-right">{{ $t('BatteryGroup') }}:</div>
          <div class="table-cell">
            <el-select v-model="selectValue3" :placeholder="$t('Pleaseselect')" size="small" class="dainchi" @change="sendMessage">
              <el-option :label="selectPlace3" :value="0"></el-option>
              <el-option v-for="(item, idx) in options" :key="'BattGroup_' + idx" :label="item.BattGroupName"
              <el-option :label="$tc('form.allCount', selectPlace3)" :value="0"></el-option>
              <el-option v-for="(item, idx) in options" :key="'BattGroup_' + idx" :label="item.battGroupName + '-' + $tc('cells', item.monCount)"
                :value="item.battGroupId"></el-option>
            </el-select>
          </div>
@@ -137,15 +138,15 @@
              <el-table-column :label="$t('Num')" type="index" width="50">
              </el-table-column>
              <el-table-column v-for="header in table1.headers" :key="header.prop" :prop="header.prop"
                :label="header.label" :width="header.width" :min-width="header.minWidth" show-overflow-tooltip
                :label="$t(header.label)" :width="header.width" :min-width="header.minWidth" show-overflow-tooltip
                align="center"></el-table-column>
              <el-table-column :label="$t('ConfirmAlarm')" align="center" :width="80">
              <el-table-column :label="$t('ConfirmAlarm')" align="center" :width="140">
                <template slot-scope="scope">
                  <el-checkbox v-model="scope.row.almIsConfirmed" disabled></el-checkbox>
                  <!-- <input type="checkbox" disabled :checked="scope.row.alarm1 && scope.row.alarm1.length > 0 ? true : false"> -->
                </template>
              </el-table-column>
              <el-table-column prop="cztime" fixed="right" width="180px" align="center" :label="$t('Operation')">
              <el-table-column prop="cztime" fixed="right" width="200px" align="center" :label="$t('Operation')">
                <template slot-scope="scope">
                  <el-button type="primary" size="mini" @click="goRealTime(scope.row)">{{ $t('Realtime') }}</el-button>
                  <el-popover placement="top-start" style="margin-left: 8px;" trigger="hover">
@@ -186,15 +187,15 @@
              <el-table-column :label="$t('Num')" type="index" width="50">
              </el-table-column>
              <el-table-column v-for="header in table2.headers" :key="header.prop" :prop="header.prop"
                :label="header.label" :width="header.width" :min-width="header.minWidth" show-overflow-tooltip
                :label="$t(header.label)" :width="header.width" :min-width="header.minWidth" show-overflow-tooltip
                align="center"></el-table-column>
              <el-table-column :label="$t('ConfirmAlarm')" align="center" :width="80">
              <el-table-column :label="$t('ConfirmAlarm')" align="center" :width="140">
                <template slot-scope="scope">
                  <el-checkbox v-model="scope.row.almIsConfirmed" disabled></el-checkbox>
                  <!-- <input type="checkbox" disabled :checked="scope.row.alarm1 && scope.row.alarm1.length > 0 ? true : false"> -->
                </template>
              </el-table-column>
              <el-table-column prop="cztime" fixed="right" width="180px" align="center" :label="$t('operate.operation')">
              <el-table-column prop="cztime" fixed="right" width="200px" align="center" :label="$t('operate.operation')">
                <template slot-scope="scope">
                  <el-button type="primary" size="mini" @click="goRealTime(scope.row)">{{ $t('Realtime') }}</el-button>
                  <el-popover placement="top-start" style="margin-left: 8px;" trigger="hover">
@@ -385,42 +386,42 @@
        headers: [
          {
            prop: "stationNamex",
            label: "机房名称",
            label: 'EquipmentRoomName',
            minWidth: 320,
          },
          {
            prop: "battGroupName",
            label: "电池组名称",
            width: 120,
            label: 'BatteryGroupName',
            width: 180,
          },
          {
            prop: "alarmName",
            label: "告警名称",
            label: 'AlarmName',
            width: 162,
          },
          {
            prop: "monNum",
            label: "单体编号",
            label: 'CellNo',
            width: 80,
          },
          {
            prop: "almValue",
            label: "告警值",
            width: 80,
            label: 'AlarmValue',
            width: 120,
          },
          {
            prop: "almLevel",
            label: "告警等级",
            label: 'AlarmLevel',
            width: 120,
          },
          {
            prop: "almStartTime",
            label: "告警开始时间",
            label: 'AlarmStartTime',
            width: 180,
          },
          {
            prop: "almConfirmedTime",
            label: "确认告警时间",
            label: 'AlarmConfirmTime',
            width: 180,
          },
        ],
@@ -430,42 +431,42 @@
        headers: [
          {
            prop: "stationNamex",
            label: "机房名称",
            label: 'EquipmentRoomName',
            minWidth: 320,
          },
          {
            prop: "battGroupName",
            label: "电池组名称",
            width: 120,
            label: 'BatteryGroupName',
            width: 180,
          },
          {
            prop: "alarmName",
            label: "告警名称",
            label: 'AlarmName',
            width: 162,
          },
          {
            prop: "monNum",
            label: "单体编号",
            label: 'CellNo',
            width: 80,
          },
          {
            prop: "almValue",
            label: "告警值",
            width: 80,
            label: 'AlarmValue',
            width: 120,
          },
          {
            prop: "almLevel",
            label: "告警等级",
            label: 'AlarmLevel',
            width: 120,
          },
          {
            prop: "almStartTime",
            label: "告警开始时间",
            label: 'AlarmStartTime',
            width: 180,
          },
          {
            prop: "almConfirmedTime",
            label: "确认告警时间",
            label: 'AlarmConfirmTime',
            width: 180,
          },
        ],
@@ -541,11 +542,11 @@
        tHeader.push(item.label);
        filterVal.push(item.prop);
      });
      tHeader.push("确认告警");
      tHeader.push(this.$t('ConfirmAlarm'));
      filterVal.push("almIsConfirmed1");
      let list = this.table1.datas;
      let excelData = formatJson(filterVal, list);
      export_json_to_excel(tHeader, excelData, "电池告警实时数据-未确认");
      export_json_to_excel(tHeader, excelData, this.$t('BatteryAlarmUnconfirmed'));
    },
    // 导出表格
    exportFile2() {
@@ -555,11 +556,11 @@
        tHeader.push(item.label);
        filterVal.push(item.prop);
      });
      tHeader.push("确认告警");
      tHeader.push(this.$t('ConfirmAlarm'));
      filterVal.push("almIsConfirmed1");
      let list = this.table2.datas;
      let excelData = formatJson(filterVal, list);
      export_json_to_excel(tHeader, excelData, "电池告警实时数据-已确认");
      export_json_to_excel(tHeader, excelData, this.$t('BatteryAlarmConfirmed'));
    },
    /* 维护区 */
    async vindicateData() {
@@ -575,11 +576,11 @@
        });
        let len = res.data.length;
        typeList.unshift({
          label: `全部(共${len}种)`,
          label: len,
          value: "",
        });
        this.vindicate = typeList;
        this.selectPlace1 = `全部(共${len}种)`;
        this.selectPlace1 = '';
      }
    },
    /* 机房站点 */
@@ -598,11 +599,11 @@
        });
        let len = res.data.length;
        newRoms.unshift({
          label: `全部(共${len}种)`,
          label: len,
          value: "",
        });
        this.newRoms = newRoms;
        this.selectPlace2 = `全部(共${len}种)`;
        this.selectPlace2 = '';
      }
    },
    /* 蓄电池组 */
@@ -617,11 +618,11 @@
      let res = batteryss.data;
      if (res.code) {
        let options = res.data.map((item) => {
          item.BattGroupName = `${item.battGroupName}-${item.monCount}节`;
          // item.BattGroupName = `${item.battGroupName}-${this.$tc('cells', item.monCount)}`;
          return item;
        });
        this.options = options;
        this.selectPlace3 = `全部(共${options.length}种)`;
        this.selectPlace3 = options.length;
      }
      // 查询告警信息
      this.sendMessage();
@@ -711,7 +712,7 @@
              almStartTime: item.almStartTime,
              almConfirmedTime: "",
              almIsConfirmed: false,
              almIsConfirmed1: "否",
              almIsConfirmed1: this.$t('no'),
            });
          });
        });
@@ -752,7 +753,7 @@
              almStartTime: item.almStartTime,
              almConfirmedTime: item.almConfirmedTime,
              almIsConfirmed: true,
              almIsConfirmed1: "是",
              almIsConfirmed1: this.$t('yes'),
            });
          });
        });
@@ -762,11 +763,11 @@
    /* 删除 */
    async delteTim(val, idx) {
      const confirmResult = await this.$confirm(
        "此操作将永久删除该文件, 是否继续?",
        "提示",
        this.$t('deleteMsg'),
        this.$t('message'),
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          confirmButtonText: this.$t('operate.ok'),
          cancelButtonText: this.$t('operate.cancel'),
          type: "warning",
        }
      ).catch((err) => err);
@@ -776,7 +777,7 @@
      const del = await deletionRecord({ num: val.num });
      let res = del.data;
      if (res.code) {
        this.$message.success("删除成功");
        this.$message.success(this.$t('DeleteSuccessful'));
        if (idx) {
          if (this.queryInfo2.pagenum != 1 && this.table2.datas.length == 1) {
            this.queryInfo2.pagenum--;
@@ -789,7 +790,7 @@
        /* 重新获取用户列表数据*/
        this.sendMessage();
      } else {
        this.$message.error("删除失败");
        this.$message.error(this.$t('DeleteFailed'));
      }
    },
    goRealTime(data) {
@@ -805,11 +806,11 @@
    /*确认告警 */
    async okAlarm(vlas) {
      const confirmResult = await this.$confirm(
        "确定这条告警记录, 是否继续?",
        "提示",
        this.$t('EnsurealarmMsg'),
        this.$t('message'),
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          confirmButtonText: this.$t('operate.ok'),
          cancelButtonText: this.$t('operate.cancel'),
          type: "warning",
        }
      ).catch((err) => err);
@@ -822,19 +823,19 @@
      let res = wk.data;
      if (res.code) {
        this.sendMessage();
        this.$message.success("确认成功");
        this.$message.success(this.$t('operate.successMsg'));
      } else {
        this.$message.error("确认失败");
        this.$message.error(this.$t('operate.failMsg'));
      }
    },
    /* 取消告警 */
    async deleteUser(vla) {
      const confirmResult = await this.$confirm(
        "确定取消这条告警记录吗, 是否继续?",
        "提示",
        this.$t('cancelalarmMsg'),
        this.$t('message'),
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          confirmButtonText: this.$t('operate.ok'),
          cancelButtonText: this.$t('operate.cancel'),
          type: "warning",
        }
      ).catch((err) => err);
@@ -847,9 +848,9 @@
      let res = wkk.data;
      if (res.code) {
        this.sendMessage();
        this.$message.success("操作成功");
        this.$message.success(this.$t('operate.successMsg'));
      } else {
        this.$message.error("操作失败");
        this.$message.error(this.$t('operate.failMsg'));
      }
    },
    //selectValue1改变事件
@@ -988,6 +989,14 @@
      this.skinActive = localStorage.getItem("activeSkin");
      this.changeSkin();
    },
    "$store.state.settings.lang": {
      handler(v) {
        // this.$i18n.locale = v;
        // this.$root.$i18n.locale = v;
        this.sendMessage();
      },
      immediate: true
    },
  },
  computed: {
    alarmTotal() {
@@ -1122,4 +1131,4 @@
  background-color: #FFFFFF;
  padding: 8px;
}
</style>
</style>
src/views/alarmMager/components/number-total-labels.vue
@@ -1,31 +1,36 @@
<template>
  <div class="number-total-labels">
    <div class="item-block">
      <span class="item-label">总告警数:</span>
      <span class="item-label">{{ $t('all') }}: </span>
      <span class="item-value">{{ total }}</span>
    </div>
    <div class="item-block">
      <span class="item-label">一级告警数:</span>
      <span class="item-label">{{ $t('Level1Alarm') }}: </span>
      <span class="item-value">{{ level1 }}</span>
    </div>
    <div class="item-block">
      <span class="item-label">二级告警数:</span>
      <span class="item-label">{{ $t('Level2Alarm') }}: </span>
      <span class="item-value">{{ level2 }}</span>
    </div>
    <div class="item-block">
      <span class="item-label">三级告警数:</span>
      <span class="item-label">{{ $t('Level3Alarm') }}: </span>
      <span class="item-value">{{ level3 }}</span>
    </div>
    <div class="item-block">
      <span class="item-label">四级告警数:</span>
      <span class="item-label">{{ $t('Level4Alarm') }}: </span>
      <span class="item-value">{{ level4 }}</span>
    </div>
  </div>
</template>
<script>
import i18n from '../i18n/batteryrTimequery';
import { createI18nOption } from '@/assets/js/tools/i18n';
const i18nMixin = createI18nOption(i18n);
export default {
  name: "number-total-labels",
  mixins: [i18nMixin],
  props: {
    total: {
      type: Number,
src/views/alarmMager/components/number-total-tabs.vue
@@ -1,31 +1,36 @@
<template>
  <div class="number-total-tabs">
    <div class="item-tab" :class="{active: key=='total'}" @click="changeHandle('total')">
      <span class="item-label">全部</span>
      <span class="item-label">{{ $t('all') }}: </span>
      <span class="item-value">{{ total }}</span>
    </div>
    <div class="item-tab red" :class="{active: key=='level1'}" @click="changeHandle('level1')">
      <span class="item-label">一级告警</span>
      <span class="item-label">{{ $t('Level1Alarm') }}: </span>
      <span class="item-value">{{ level1 }}</span>
    </div>
    <div class="item-tab orange" :class="{active: key=='level2'}" @click="changeHandle('level2')">
      <span class="item-label">二级告警</span>
      <span class="item-label">{{ $t('Level2Alarm') }}: </span>
      <span class="item-value">{{ level2 }}</span>
    </div>
    <div class="item-tab yellow" :class="{active: key=='level3'}" @click="changeHandle('level3')">
      <span class="item-label">三级告警</span>
      <span class="item-label">{{ $t('Level3Alarm') }}: </span>
      <span class="item-value">{{ level3 }}</span>
    </div>
    <div class="item-tab grey" :class="{active: key=='level4'}" @click="changeHandle('level4')">
      <span class="item-label">四级告警</span>
      <span class="item-label">{{ $t('Level4Alarm') }}: </span>
      <span class="item-value">{{ level4 }}</span>
    </div>
  </div>
</template>
<script>
import i18n from '../i18n/batteryrTimequery';
import { createI18nOption } from '@/assets/js/tools/i18n';
const i18nMixin = createI18nOption(i18n);
export default {
  name: "number-total-tabs",
  mixins: [i18nMixin],
  props: {
    total: {
      type: Number,
src/views/alarmMager/deviceTimequery.vue
@@ -5,55 +5,55 @@
        :level4="levelRes.four" @change="totalTabChange"></number-total-tabs>
      <div class="table-layout filter-box-table">
        <div class="table-row">
          <div class="table-cell text-right">维护区:</div>
          <div class="table-cell text-right">{{ $t('MaintenanceArea') }}:</div>
          <div class="table-cell">
            <el-select v-model="selectValue1" @change="changeSelect1" :placeholder="this.selectPlace1" class="weihu"
            <el-select v-model="selectValue1" @change="changeSelect1" class="weihu"
              size="small">
              <el-option v-for="item in newDevie" :key="item.value" :label="item.label" :value="item.value"></el-option>
              <el-option v-for="(item, idx) in newDevie" :key="item.value" :label="0 == idx ? $tc('form.allCount', item.label) : item.label" :value="item.value"></el-option>
            </el-select>
          </div>
          <div class="table-cell text-right">机房名称:</div>
          <div class="table-cell text-right">{{ $t('EquipmentRoomName') }}:</div>
          <div class="table-cell">
            <el-select v-model="selectValue2" @change="sendMessage" class="rooms" size="small">
              <el-option v-for="(item, idx) in sesionsNews" :key="'station_' + idx" :label="item.label"
              <el-option v-for="(item, idx) in sesionsNews" :key="'station_' + idx" :label="0 == idx ? $tc('form.allCount', item.label) : item.label"
                :value="item.value"></el-option>
            </el-select>
          </div>
          <div class="table-cell text-right">告警类型:</div>
          <div class="table-cell text-right">{{ $t('AlarmType') }}:</div>
          <div class="table-cell">
            <el-select placeholder="全部" class="dainchi" v-model="value" size="small">
              <el-option :label="'全部(共' + options.length + '种)'" value="0"></el-option>
              <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
            <el-select class="dainchi" v-model="value" size="small">
              <el-option :label="$tc('form.allCount', options.length)" value="0"></el-option>
              <el-option v-for="item in options" :key="item.value" :label="$t('alarm.' + item.label)" :value="item.value"></el-option>
            </el-select>
          </div>
        </div>
      </div>
    </div>
    <el-tabs v-model="acTabs" type="border-card" class="flex-layout noborder" @tab-click="tabClick">
      <el-tab-pane label="未确认告警" name="unconfirmed">
      <el-tab-pane :label="$t('Unconfirmed')" name="unconfirmed">
        <flex-layout>
          <!-- 表单 -->
          <div class="flex-page-content">
            <el-table stripe size="small" tooltip-effect="light" :data="table1.datas" height="100%">
              <el-table-column type="index" label="编号" width="50">
              <el-table-column type="index" :label="$t('Num')" width="50">
              </el-table-column>
              <el-table-column v-for="header in table1.headers" :key="header.prop" :prop="header.prop"
                :label="header.label" :width="header.width" :min-width="header.minWidth" align="center"
                :label="$t(header.label)" :width="header.width" :min-width="header.minWidth" align="center"
                show-overflow-tooltip>
              </el-table-column>
              <el-table-column label="确认告警" width="80px" align="center">
              <el-table-column :label="$t('ConfirmAlarm')" width="140px" align="center">
                <template slot-scope="scope">
                  <el-checkbox v-model="scope.row.isalarm1" disabled></el-checkbox>
                  <!-- <input type="checkbox" :checked='scope.row.alm_is_confirmed ===1?true:false' disabled> -->
                </template>
              </el-table-column>
              <el-table-column prop="cztime" fixed="right" width="257px" align="center" label="操作">
              <el-table-column prop="cztime" fixed="right" width="337px" align="center" :label="$t('operate.operation')">
                <template slot-scope="scope">
                  <el-button :disabled="!isCanConfirm" type="primary" size="mini" @click="okAlarm(scope.row)">确认告警
                  <el-button :disabled="!isCanConfirm" type="primary" size="mini" @click="okAlarm(scope.row)">{{ $t('ConfirmAlarm') }}
                  </el-button>
                  <el-button :disabled="!isCanQuit" type="success" size="mini" @click="cancesWa(scope.row)">取消告警
                  <el-button :disabled="!isCanQuit" type="success" size="mini" @click="cancesWa(scope.row)">{{ $t('CancelAlarm') }}
                  </el-button>
                  <el-button :disabled="!isCanDel" type="danger" size="mini" @click="deviceDelete(scope.row)">删除
                  <el-button :disabled="!isCanDel" type="danger" size="mini" @click="deviceDelete(scope.row)">{{ $t('Delete') }}
                  </el-button>
                </template>
              </el-table-column>
@@ -62,9 +62,9 @@
          <!-- 底部分页 -->
          <div class="flex-page-footer" slot="footer">
            <div class="el-pagination-btns">
              <el-button type="primary" round size="mini" @click="sendMessage" icon="el-icon-search">查询
              <el-button type="primary" round size="mini" @click="sendMessage" icon="el-icon-search">{{ $t('operate.search') }}
              </el-button>
              <el-button type="primary" round size="mini" icon="el-icon-wallet" @click="exportFile1">导出
              <el-button type="primary" round size="mini" icon="el-icon-wallet" @click="exportFile1">{{ $t('operate.export') }}
              </el-button>
            </div>
            <el-pagination class="pagess" @size-change="handleSizeChange1" @current-change="handleCurrentChange1"
@@ -73,29 +73,29 @@
          </div>
        </flex-layout>
      </el-tab-pane>
      <el-tab-pane label="已确认告警" name="confirmed">
      <el-tab-pane :label="$t('Confirmed')" name="confirmed">
        <flex-layout>
          <!-- 表单 -->
          <div class="flex-page-content">
            <el-table stripe size="small" :data="table2.datas" tooltip-effect="light" height="100%">
              <el-table-column type="index" label="编号" width="50"></el-table-column>
              <el-table-column type="index" :label="$t('Num')" width="50"></el-table-column>
              <el-table-column v-for="header in table2.headers" :key="header.prop" :prop="header.prop"
                :label="header.label" :width="header.width" :min-width="header.minWidth" align="center"
                :label="$t(header.label)" :width="header.width" :min-width="header.minWidth" align="center"
                show-overflow-tooltip>
              </el-table-column>
              <el-table-column label="确认告警" width="80px" align="center">
              <el-table-column :label="$t('ConfirmAlarm')" width="140px" align="center">
                <template slot-scope="scope">
                  <el-checkbox v-model="scope.row.isalarm1" disabled></el-checkbox>
                  <!-- <input type="checkbox" :checked='scope.row.alm_is_confirmed ===1?true:false' disabled> -->
                </template>
              </el-table-column>
              <el-table-column prop="cztime" fixed="right" width="257px" align="center" label="操作">
              <el-table-column prop="cztime" fixed="right" width="337px" align="center" :label="$t('operate.operation')">
                <template slot-scope="scope">
                  <el-button :disabled="!isCanConfirm" type="primary" size="mini" @click="okAlarm(scope.row)">确认告警
                  <el-button :disabled="!isCanConfirm" type="primary" size="mini" @click="okAlarm(scope.row)">{{ $t('ConfirmAlarm') }}
                  </el-button>
                  <el-button :disabled="!isCanQuit" type="success" size="mini" @click="cancesWa(scope.row)">取消告警
                  <el-button :disabled="!isCanQuit" type="success" size="mini" @click="cancesWa(scope.row)">{{ $t('CancelAlarm') }}
                  </el-button>
                  <el-button :disabled="!isCanDel" type="danger" size="mini" @click="deviceDelete(scope.row)">删除
                  <el-button :disabled="!isCanDel" type="danger" size="mini" @click="deviceDelete(scope.row)">{{ $t('Delete') }}
                  </el-button>
                </template>
              </el-table-column>
@@ -104,9 +104,9 @@
          <!-- 底部分页 -->
          <div class="flex-page-footer" slot="footer">
            <div class="el-pagination-btns">
              <el-button type="primary" round size="mini" @click="sendMessage" icon="el-icon-search">查询
              <el-button type="primary" round size="mini" @click="sendMessage" icon="el-icon-search">{{ $t('operate.search') }}
              </el-button>
              <el-button type="primary" round size="mini" icon="el-icon-wallet" @click="exportFile2">导出
              <el-button type="primary" round size="mini" icon="el-icon-wallet" @click="exportFile2">{{ $t('operate.export') }}
              </el-button>
            </div>
            <el-pagination class="pagess" @size-change="handleSizeChange2" @current-change="handleCurrentChange2"
@@ -137,10 +137,14 @@
import NumberTotalTabs from "@/views/alarmMager/components/number-total-tabs.vue";
import get_county_station from "@/assets/js/tools/get_county_station";
const WSMixin = createWs("devAlarmData");
import i18n from './i18n/deviceTimequery';
import { createI18nOption } from '@/assets/js/tools/i18n';
import i18nGetDevAlarm from '@/assets/js/i18n/getDevAlarm';
const i18nMixin = createI18nOption(i18n, [[i18nGetDevAlarm, 'alarm']]);
export default {
  name: "deviceTimequery",
  components: { NumberTotalTabs },
  mixins: [WSMixin],
  mixins: [WSMixin, i18nMixin],
  data() {
    let permits = this.$store.state.user.permits;
    let isCanConfirm = isHasPermit("dev_alm_confirm_permit", permits);
@@ -180,42 +184,42 @@
        headers: [
          {
            prop: "devId",
            label: "设备ID",
            label: "devId",
            width: 120,
          },
          {
            prop: "devName",
            label: "设备名",
            label: "devName",
            width: 160,
          },
          {
            prop: "devIp",
            label: "设备IP",
            label: "devIp",
            width: 160,
          },
          {
            prop: "stationNamex",
            label: "机房名称",
            label: "stationNamex",
            minWidth: 220,
          },
          {
            prop: "almTypeName",
            label: "告警事件",
            label: "almTypeName",
            width: 200,
          },
          {
            prop: "alarmLevelName",
            label: "告警等级",
            label: "alarmLevelName",
            width: 120,
          },
          {
            prop: "almStartTime",
            label: "告警开始时间",
            label: "almStartTime",
            width: 180,
          },
          {
            prop: "almConfirmedTime",
            label: "告警确认时间",
            label: "almConfirmedTime",
            width: 180,
          },
        ],
@@ -225,42 +229,42 @@
        headers: [
          {
            prop: "devId",
            label: "设备ID",
            label: "devId",
            width: 120,
          },
          {
            prop: "devName",
            label: "设备名",
            label: "devName",
            width: 160,
          },
          {
            prop: "devIp",
            label: "设备IP",
            label: "devIp",
            width: 160,
          },
          {
            prop: "stationNamex",
            label: "机房名称",
            label: "stationNamex",
            minWidth: 220,
          },
          {
            prop: "almTypeName",
            label: "告警事件",
            label: "almTypeName",
            width: 200,
          },
          {
            prop: "alarmLevelName",
            label: "告警等级",
            label: "alarmLevelName",
            width: 120,
          },
          {
            prop: "almStartTime",
            label: "告警开始时间",
            label: "almStartTime",
            width: 180,
          },
          {
            prop: "almConfirmedTime",
            label: "告警确认时间",
            label: "almConfirmedTime",
            width: 180,
          },
        ],
@@ -286,6 +290,14 @@
      }
      this.sendMessage();
    },
    "$store.state.settings.lang": {
        handler(v) {
          // this.$i18n.locale = v;
          // this.$root.$i18n.locale = v;
          this.sendMessage();
        },
        immediate: true
      },
  },
  mounted() {
    let query = this.$route.query;
@@ -310,7 +322,7 @@
      // 告警等级
      let alarmLevel = this.$route.query.alarmLevel;
      if (alarmLevel) {
        console.log(alarmLevel, '====act?')
        // console.log(alarmLevel, '====act?')
        this.$refs.levels.changeHandle(alarmLevel);
      }
    },
@@ -330,11 +342,11 @@
        tHeader.push(item.label);
        filterVal.push(item.prop);
      });
      tHeader.push("确认告警");
      tHeader.push(this.$t('ConfirmAlarm'));
      filterVal.push("isalarm2");
      let list = this.table1.datas;
      let excelData = formatJson(filterVal, list);
      export_json_to_excel(tHeader, excelData, "设备告警实时数据-未确认");
      export_json_to_excel(tHeader, excelData, this.$t('DeviceAlarmUnconfirmed'));
    },
    // 导出表格
    exportFile2() {
@@ -344,11 +356,11 @@
        tHeader.push(item.label);
        filterVal.push(item.prop);
      });
      tHeader.push("确认告警");
      tHeader.push(this.$t('ConfirmAlarm'));
      let list = this.table2.datas;
      filterVal.push("isalarm2");
      let excelData = formatJson(filterVal, list);
      export_json_to_excel(tHeader, excelData, "设备告警实时数据-已确认");
      export_json_to_excel(tHeader, excelData, this.$t('DeviceAlarmconfirmed'));
    },
    /* 维护区 */
    async deviceTime() {
@@ -363,11 +375,11 @@
        });
        let len = res.data.length;
        newDevie.unshift({
          label: `全部(共${len}种)`,
          label: len,
          value: "",
        });
        this.newDevie = newDevie;
        this.selectPlace1 = `全部(共${len}种)`;
        this.selectPlace1 = '';
      }
    },
    /* 机房名称  */
@@ -385,11 +397,11 @@
        });
        let len = res.data.length;
        sesionsNews.unshift({
          label: `全部(共${len}种)`,
          label: len,
          value: "",
        });
        this.sesionsNews = sesionsNews;
        this.selectPlace2 = `全部(共${len}种)`;
        this.selectPlace2 = '';
        if (status == 1) {
          this.sendMessage();
        }
@@ -418,10 +430,10 @@
          let isalarm1 = !!item.almIsConfirmed;
          item.stationNamex = get_county_station(item.stationName);
          item.isalarm1 = isalarm1;
          item.isalarm2 = isalarm1 ? "是" : "否";
          item.isalarm2 = isalarm1 ? this.$t('form.yes') : this.$t('form.no');
          item.almConfirmedTime = isalarm1 ? item.almConfirmedTime : "";
          item.alarmLevelName = getLabelByValue(item.almLevel, this.levels);
          item.almTypeName = getLabelByValue(item.almType, this.options);
          item.alarmLevelName = this.$t('alarm.' + getLabelByValue(item.almLevel, this.levels));
          item.almTypeName = this.$t('alarm.' + getLabelByValue(item.almType, this.options));
          return item;
        });
        this.table1.datas = alarmNes;
@@ -447,10 +459,10 @@
          let isalarm1 = !!item.almIsConfirmed;
          item.stationNamex = get_county_station(item.stationName);
          item.isalarm1 = isalarm1;
          item.isalarm2 = isalarm1 ? "是" : "否";
          item.isalarm2 = isalarm1 ? this.$t('form.yes') : this.$t('form.no');
          item.almConfirmedTime = isalarm1 ? item.almConfirmedTime : "";
          item.alarmLevelName = getLabelByValue(item.almLevel, this.levels);
          item.almTypeName = getLabelByValue(item.almType, this.options);
          item.alarmLevelName = this.$t('alarm.' + getLabelByValue(item.almLevel, this.levels));
          item.almTypeName = this.$t('alarm.' + getLabelByValue(item.almType, this.options));
          return item;
        });
        this.table2.datas = alarmNes;
@@ -502,11 +514,11 @@
    /* 删除 */
    async deviceDelete(value) {
      const confirmResult = await this.$confirm(
        "确定删除这条告警记录吗, 是否继续?",
        "提示",
        this.$t('deletealarmMsg'),
        this.$t('message'),
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          confirmButtonText: this.$t('operate.ok'),
          cancelButtonText: this.$t('operate.cancel'),
          type: "warning",
        }
      ).catch((err) => err);
@@ -518,7 +530,7 @@
      });
      let res = ws.data;
      if (res.code) {
        this.$message.success("删除成功");
        this.$message.success(this.$t('operate.successMsg'));
        if (this.currentPage !== 1) {
          if (this.table.datas.length === 1) {
            this.currentPage -= 1;
@@ -526,17 +538,17 @@
        }
        this.sendMessage();
      } else {
        this.$message.error("删除失败");
        this.$message.error(this.$t('operate.failMsg'));
      }
    },
    /* 确认告警 */
    async okAlarm(vlas) {
      const confirmResult = await this.$confirm(
        "确定告警这条告警记录吗, 是否继续?",
        "提示",
        this.$t('EnsurealarmMsg'),
        this.$t('message'),
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          confirmButtonText: this.$t('operate.ok'),
          cancelButtonText: this.$t('operate.cancel'),
          type: "warning",
        }
      ).catch((err) => err);
@@ -548,20 +560,20 @@
      });
      let res = wk.data;
      if (res.code) {
        this.$message.info("修改成功!");
        this.$message.info(this.$t('operate.successMsg'));
        this.sendMessage();
      } else {
        this.$message.info("修改失败!");
        this.$message.info(this.$t('operate.failMsg'));
      }
    },
    /* 取消警告 */
    async cancesWa(valuew) {
      const confirmResult = await this.$confirm(
        "确定取消这条告警记录吗, 是否继续?",
        "提示",
        this.$t('cancelalarmMsg'),
        this.$t('message'),
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          confirmButtonText: this.$t('operate.ok'),
          cancelButtonText: this.$t('operate.cancel'),
          type: "warning",
        }
      ).catch((err) => err);
@@ -573,10 +585,10 @@
      });
      let res = cc.data;
      if (res.code) {
        this.$message.success("操作成功!");
        this.$message.success(this.$t('operate.successMsg'));
        this.sendMessage();
      } else {
        this.$message.error("操作失败!");
        this.$message.error(this.$t('operate.failMsg'));
      }
    },
    //维护区改变
@@ -618,4 +630,4 @@
};
</script>
<style lang="less" scoped></style>
<style lang="less" scoped></style>
src/views/alarmMager/i18n/batteryrHistoryquery.js
New file
@@ -0,0 +1,86 @@
export default {
  messages: {
    CN: {
      MaintenanceArea: '维护区',
      Pleaseselect: '请选择',
      EquipmentRoomSite: '机房站点',
      BatteryGroup: '蓄电池组',
      AlarmStartDate: '告警开始日期',
      AlarmConditionFiltering: '告警条件过滤',
      AlarmThresholdFiltering: '告警阀值过滤',
      AlarmLevelFiltering: '告警等级过滤',
      all: '全部',
      Level1Alarm: '一级警告',
      Level2Alarm: '二级警告',
      Level3Alarm: '三级警告',
      Level4Alarm: '四级警告',
      OnlineVoltage: '在线电压',
      StringVoltage: '组端电压',
      LeakageVoltage: '漏液电压',
      ChargeCurrent: '充电电流',
      DischargeCurrent: '放电电流',
      CellVoltage: '单体电压',
      CellResistance: '单体内阻',
      CellTemperature: '单体温度',
      UpLimitAlarm: '上限告警',
      LowLimitAlarm: '下限告警',
      Realtime: '实时',
      Delete: '删除',
      EquipmentRoomName: '机房名称',
      BatteryGroupName: '电池组名称',
      AlarmName: '告警名称',
      CellNo: '单体编号',
      AlarmValue: '告警值',
      AlarmLevel: '告警等级',
      AlarmStartTime: '告警开始时间',
      AlarmConfirmTime: '确认告警时间',
      almEndTime: '告警结束时间',
      BatteryAlarmHistoryData: '电池告警历史数据',
      deletealarmMsg: '确定删除这条告警记录吗, 是否继续?',
      message: '提示',
      DeleteSuccessful: '删除成功',
      Num: '编号',
    },
    US: {
      MaintenanceArea: 'Maintenance Area',
      Pleaseselect: 'Please select',
      EquipmentRoomSite: 'Equipment Room Site',
      BatteryGroup: 'Battery Group',
      AlarmStartDate: 'Alarm Start Date',
      AlarmConditionFiltering: 'Alarm Condition Filtering',
      AlarmThresholdFiltering: 'Alarm Threshold Filtering',
      AlarmLevelFiltering: 'Alarm Level Filtering',
      all: 'All',
      Level1Alarm: 'Level 1 Alarm',
      Level2Alarm: 'Level 2 Alarm',
      Level3Alarm: 'Level 3 Alarm',
      Level4Alarm: 'Level 4 Alarm',
      OnlineVoltage: 'Online Voltage',
      StringVoltage: 'String Voltage',
      LeakageVoltage: 'Leakage Voltage',
      ChargeCurrent: 'Charge Current',
      DischargeCurrent: 'Discharge Current',
      CellVoltage: 'Cell Voltage',
      CellResistance: 'Cell Resistance',
      CellTemperature: 'Cell Temperature',
      UpLimitAlarm: 'Up Limit Alarm',
      LowLimitAlarm: 'Low Limit Alarm',
      Realtime: 'Real-time',
      Delete: 'Delete',
      EquipmentRoomName: 'Equipment Room Name',
      BatteryGroupName: 'Battery Group Name',
      AlarmName: 'Alarm Name',
      CellNo: 'Cell No.',
      AlarmValue: 'Alarm Value',
      AlarmLevel: 'Alarm Level',
      AlarmStartTime: 'Alarm Start Time',
      AlarmConfirmTime: 'Alarm Confirm Time',
      almEndTime: 'Alarm Finish Time',
      BatteryAlarmHistoryData: 'Battery Alarm History Data',
      deletealarmMsg: 'Confirm to delete this alarm record? Continue?',
      message: 'Message',
      DeleteSuccessful: 'Delete Successful!',
      Num: 'No.',
    }
  }
}
src/views/alarmMager/i18n/batteryrTimequery.js
@@ -9,6 +9,7 @@
      AlarmConditionFiltering: '告警条件过滤',
      AlarmThresholdFiltering: '告警阀值过滤',
      AlarmLevelFiltering: '告警等级过滤',
      all: '全部',
      Level1Alarm: '一级警告',
      Level2Alarm: '二级警告',
      Level3Alarm: '三级警告',
@@ -32,16 +33,25 @@
      Delete: '删除',
      More: '更多',
      Confirmed: '已确认告警',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      ConfirmAlarm: '操作',
      EquipmentRoomName: '机房名称',
      BatteryGroupName: '电池组名称',
      AlarmName: '告警名称',
      CellNo: '单体编号',
      AlarmValue: '告警值',
      AlarmLevel: '告警等级',
      AlarmStartTime: '告警开始时间',
      AlarmConfirmTime: '确认告警时间',
      BatteryAlarmUnconfirmed: '电池告警实时数据-未确认',
      BatteryAlarmConfirmed: '电池告警实时数据-已确认',
      cells: '{n}节 | {n}节 | {n}节',
      yes: '是',
      no: '否',
      deleteMsg: '确定删除这条告警记录吗, 是否继续?',
      message: '提示',
      DeleteSuccessful: '删除成功',
      DeleteFailed: '删除失败',
      EnsurealarmMsg: '确定这条告警记录, 是否继续?',
      cancelalarmMsg: '确定取消这条告警记录吗, 是否继续?',
    },
    US: {
      MaintenanceArea: 'Maintenance Area',
@@ -52,6 +62,7 @@
      AlarmConditionFiltering: 'Alarm Condition Filtering',
      AlarmThresholdFiltering: 'Alarm Threshold Filtering',
      AlarmLevelFiltering: 'Alarm Level Filtering',
      all: 'All',
      Level1Alarm: 'Level 1 Alarm',
      Level2Alarm: 'Level 2 Alarm',
      Level3Alarm: 'Level 3 Alarm',
@@ -75,7 +86,25 @@
      Delete: 'Delete',
      More: 'More',
      Confirmed: 'Confirmed',
      EquipmentRoomName: 'Equipment Room Name',
      BatteryGroupName: 'Battery Group Name',
      AlarmName: 'Alarm Name',
      CellNo: 'Cell No.',
      AlarmValue: 'Alarm Value',
      AlarmLevel: 'Alarm Level',
      AlarmStartTime: 'Alarm Start Time',
      AlarmConfirmTime: 'Alarm Confirm Time',
      BatteryAlarmUnconfirmed: 'Battery Alarm Real-time Data-Unconfirmed',
      BatteryAlarmConfirmed: 'Battery Alarm Real-time Data-Confirmed',
      cells: '{n}cell | {n} cell | {n} cells',
      yes: 'Yes',
      no: 'No',
      deleteMsg: 'Confirm to delete this alarm record? Continue?',
      message: 'Message',
      DeleteSuccessful: 'Delete Successful!',
      DeleteFailed: 'Delete Failed!',
      EnsurealarmMsg: 'Ensure this alarm record, continue?',
      cancelalarmMsg: 'Confirm to cancel this alarm record? Continue?',
    }
  }
}
src/views/alarmMager/i18n/deviceTimequery.js
New file
@@ -0,0 +1,58 @@
export default {
  messages: {
    CN: {
      MaintenanceArea: '维护区',
      EquipmentRoomName: '机房名称',
      AlarmType: '告警类型',
      Num: '编号',
      Unconfirmed: '未确认告警',
      ConfirmAlarm: '确认告警',
      Confirmed: '已确认告警',
      CancelAlarm: '取消告警',
      Delete: '删除',
      devId: "设备ID",
      devName: "设备名",
      devIp: "设备IP",
      stationNamex: "机房名称",
      almTypeName: "告警事件",
      alarmLevelName: "告警等级",
      almStartTime: "告警开始时间",
      almConfirmedTime: "告警确认时间",
      deletealarmMsg: '确定删除这条告警记录吗, 是否继续?',
      message: '提示',
      EnsurealarmMsg: '确定这条告警记录, 是否继续?',
      cancelalarmMsg: '确定取消这条告警记录吗, 是否继续?',
      DeviceAlarmUnconfirmed: '设备告警实时数据-未确认',
      DeviceAlarmconfirmed: '设备告警实时数据-已确认',
    },
    US: {
      MaintenanceArea: 'Maintenance Area',
      EquipmentRoomName: 'Equipment Room Name',
      AlarmType: 'Alarm Type',
      Num: 'No.',
      Unconfirmed: 'Unconfirmed',
      ConfirmAlarm: 'Confirm Alarm',
      Confirmed: 'Confirmed',
      CancelAlarm: 'Cancel Alarm',
      Delete: 'Delete',
      devId: "Device ID",
      devName: "Device Name",
      devIp: "Device IP",
      stationNamex: "Equipment Room Name",
      almTypeName: "Alarm Event",
      alarmLevelName: "Alarm Level",
      almStartTime: "Alarm Start Time",
      almConfirmedTime: "Alarm Confirm Time",
      deletealarmMsg: 'Confirm to delete this alarm record? Continue?',
      message: 'Message',
      EnsurealarmMsg: 'Ensure this alarm record, continue?',
      cancelalarmMsg: 'Confirm to cancel this alarm record? Continue?',
      DeviceAlarmUnconfirmed: 'Device Alarm Real-time Data-Unconfirmed',
      DeviceAlarmconfirmed: 'Device Alarm Real-time Data-Confirmed',
    }
  }
}