whycwx
2020-09-24 15478f1d643e8c0e4914a33648bde908393d0a46
添加历史数据管理
1个文件已修改
432 ■■■■■ 已修改文件
src/pages/dataMager/historyInfoMager.vue 432 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/dataMager/historyInfoMager.vue
@@ -1,13 +1,437 @@
<template>
    <div>历史数据管理</div>
  <flex-layout class="">
    <!-- <content-Box> -->
      <!-- <div>电池关注管理 显示与隐藏查询条件</div> -->
      <div class="table-layout filter-box-table" slot="header">
        <div class="table-row">
                <div class="table-cell text-right">维护区:</div>
                <div class="table-cell">
                    <el-select v-model="UDepartment"  size="small" placeholder="请选择维护区" @change="queryStationName">
                        <el-option
                        v-for="item in UDepartmentList"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                        </el-option>
                    </el-select>
                </div>
                <div class="table-cell text-right">机房站点:</div>
                <div class="table-cell">
                    <el-select v-model="StationName"  size="small" placeholder="请选择机房站点" @change="queryBattGroupId">
                        <el-option
                        v-for="item in StationNameList"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                        </el-option>
                    </el-select>
                </div>
                <div class="table-cell text-right">蓄电池组:</div>
                <div class="table-cell">
                    <el-select v-model="BattGroupId"  size="small" placeholder="请选择蓄电池组">
                        <el-option
                        v-for="item in BattGroupIdList"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                        </el-option>
                    </el-select>
                </div>
        </div>
        <div class="table-row">
            <div class="table-cell text-right">电池测试记录:</div>
                <div class="table-cell">
                <el-select v-model="test_type"  size="small" placeholder="请选择电池测试记录" @change="typeSelectChange(test_type)">
                    <el-option value="3" label="有放电记录"></el-option>
                    <el-option value="2" label="有充电记录"></el-option>
                    <el-option value="3000" label="有放电或充电记录"></el-option>
                    <el-option value="9" label="有在线监测记录"></el-option>
                    <el-option value="5000" label="有电阻/电导记录"></el-option>
                </el-select>
            </div>
            <div class="table-cell text-right">操作记录时间段:</div>
            <div class="table-cell">
                <el-date-picker v-model="startDrsj" size="small" class="time_box" :picker-options="pickerOptions0" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
                - <el-date-picker v-model="endDrsj" size="small" class="time_box" :picker-options="pickerOptions1" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
            </div>
            <div class="table-cell text-right">放电类型:</div>
                <div class="table-cell">
                <el-select v-model="test_starttype"  size="small" placeholder="请选择放电类型" :disabled="test_type == '9'|| test_type == '5000'">
                    <el-option value="0" label="全部 (共3种)"></el-option>
                    <el-option value="1" label="停电放电"></el-option>
                    <el-option value="2" label="假负载放电"></el-option>
                    <el-option value="3" label="节能放电"></el-option>
                </el-select>
            </div>
        </div>
      </div>
      <div class="flex-page-content">
          <!-- 表单 -->
          <el-table border size="small" :data="table.datas" height="100%" class="tableCent">
            <el-table-column
              v-for="header in table.headers"
              :key="header.prop"
              :prop="header.prop"
              :label="header.label"
              :width="header.width"
              :show-overflow-tooltip="true"
              align="center"
            ></el-table-column>
          </el-table>
      </div>
      <!-- 底部 -->
      <div class="flex-page-footer" slot="footer">
          <!-- 底部分页 -->
          <div class="el-pagination-btns">
              <el-button type="primary"  round size="mini" @click="querySubmit" icon="el-icon-search">查询</el-button>
              <!-- <el-button type="primary" round size="mini" icon="el-icon-wallet">导出</el-button> -->
              <!-- <el-button type="primary" round size="mini" icon="el-icon-wallet">表格选项</el-button> -->
          </div>
          <el-pagination
            class="pagess"
            :current-page="pageCurr"
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
            :page-sizes="[10, 20, 30, 50, 100]"
            :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total"
          ></el-pagination>
      </div>
  </flex-layout>
</template>
<script>
import { searchProvince } from '../../assets/js/api'
import { computerSite , storageBattery } from '../../assets/js/dataAdmian/batteryMager.js'
import { dataSeachroms } from '../../assets/js/dataAdmian/dataAmian.js'
import { GetMonomerCap,GetHourRate} from "../../assets/js/tools";
export default {
  components: {
    
}
  },
  data() {
    return {
        test_type:'3',
        startDrsj:'2000-01-01',
        endDrsj:'2020-09-23',
        test_starttype:'0',
        pickerOptions0: {
            disabledDate: (time) => {
                let vm = this;
                if (vm.endDrsj) {
                    return new Date(time.getTime()) > new Date(vm.endDrsj);
                } else {
                    // return time.getTime() > Date.now();
                }
            }
        },
        pickerOptions1: {
            disabledDate: (time) => {
                return new Date(time.getTime()+24*60*60*1000) < new Date(this.startDrsj);
            }
        },
        total:0,
        pageCurr:1,
        pageSize:10,
        UDepartment:'',
        UDepartmentList:[],
        StationName:'',
        StationNameList:[],
        BattGroupId:'',
        BattGroupIdList:[],
        // MonNum:'',
        // MonNumList:[],
        value: "",
        /* 表单 */
        table: {
            headers: [
                {
                    prop: "StationName",
                    label: "机房名称",
                    width: "200"
                },
                {
                    prop: "BattGroupName",
                    label: "电池组名称",
                    width: "120"
                },
                {
                    prop: "test_starttime",
                    label: "测试日期",
                    width: "100"
                },
                {
                    prop: "test_starttypeHex",
                    label: "测试仪表类型",
                    width: "100"
                },
                {
                    prop: "test_curr",
                    label: "测试电流",
                    width: ""
                },
                {
                    prop: "test_cap",
                    label: "测试容量",
                    width: ""
                },
                {
                    prop: "sum",
                    label: "落后单体数量",
                    width: "100"
                },
                {
                    prop: "msgN",
                    label: "落后单体编号",
                    width: "200"
                },
                {
                    prop: "msgV",
                    label: "落后单体电压",
                    width: "200"
                },
                {
                    prop: "lowRH",
                    label: "平均截止电压",
                    width: "100"
                },
                {
                    prop: "min_monnum",
                    label: "最低单体编号",
                    width: "100"
                },
                {
                    prop: "min_monvol",
                    label: "最低单体电压",
                    width: "100"
                },
                {
                    prop: "realCap",
                    label: "实际容量",
                    width: ""
                },
                {
                    prop: "rest",
                    label: "剩余容量",
                    width: ""
                },
                {
                    prop: "realCappercent",
                    label: "容量百分比",
                    width: "100"
                },
            ],
            datas: []
        }
    };
  },
  created() {
    let vm = this;
        vm.queryList();
        vm.queryWhq();
  },
  methods: {
    //电池测试记录变化时改变放电类型
    typeSelectChange:function(value){
        let vm = this;
        if(value == '9' || value == '5000'){
            vm.test_starttype = '0';
        }
    },
    // 展示数据数量
    handleSizeChange(val) {
      let vm = this;
          vm.pageSize = val;
          vm.queryList();
    },
    // 翻页
    handleCurrentChange(val) {
      let vm = this;
          vm.pageCurr = val;
          vm.queryList();
    },
    // 点击查询
    querySubmit:function(){
      let vm = this;
          vm.queryList();
    },
    // 查询列表
    queryList:function(){
      let vm = this;
      let loading = this.$layer.loading(1);
      let data = {
            page:{
              pageCurr:vm.pageCurr,
              pageSize:vm.pageSize
            },
            binf:{
              StationName1:vm.UDepartment,//维护区
              StationName:vm.StationName,//机房类型
              BattGroupId:vm.BattGroupId || 0,//电池组名称ID
            },
            tdata:{
                test_type:vm.test_type,
                record_time:vm.startDrsj + ' 00:00:00',
                record_time1:vm.endDrsj + " 23:59:59",
                test_starttype:vm.test_starttype || '0'
            }
          }
          dataSeachroms(data).then((res)=>{
            let result = JSON.parse(res.data.result);
                // 关闭等待框
                this.$layer.close(loading);
                if(result.code == 1 || result.length>0){
                  let params = result.map((item,index)=>{
                      if(index == result.length - 1){
                        vm.total = item.data.page.pageAll;
                      }
                        let obj = {};
                        let binf = item.data.binf;
                        let tdata = item.data.tdata
                            for(let o in binf){
                                obj[o] = (item.data.binf)[o];
                            }
                            for(let j in tdata){
                                obj[j] = (item.data.tdata)[j];
                            }
                            if(item.smodel.code==1){
                                obj.sum = item.smodel.sum;                   //落后单体数量
                                obj.msgN = item.smodel.msgN;                //落后单体编号
                                obj.msgV = item.smodel.msgV;                //落后单体电压
                                obj.lowRH = item.smodel.lowRH.toFixed(3);        //平均截止电压
                            }else{
                                obj.sum = '0';                   //落后单体数量
                                obj.msgN = '';                //落后单体编号
                                obj.msgV = '';                //落后单体电压
                                obj.lowRH = '';        //平均截止电压
                            }
                        let avg_curr = obj.test_timelong>0?obj.test_cap*3600/obj.test_timelong:obj.test_curr;
                        let realCap=GetMonomerCap(obj.MonCapStd,GetHourRate(obj.MonCapStd,avg_curr),obj.test_cap,obj.max_monvol,obj.min_monvol,obj.MonVolStd,0);        //实际容量
                        let rest=GetMonomerCap(obj.MonCapStd,GetHourRate(obj.MonCapStd,avg_curr),obj.test_cap,obj.max_monvol,obj.min_monvol,obj.MonVolStd,1);        //剩余容量
                            obj.realCap = realCap.toFixed(0);
                            obj.rest = rest.toFixed(0);
                            obj.test_curr = obj.test_curr.toFixed(1);
                            obj.test_cap = obj.test_cap.toFixed(1);
                            obj.min_monvol = obj.min_monvol.toFixed(3);
                            obj.lowRH = Number(obj.lowRH).toFixed(3);
                        let realCappercent = (realCap*100/obj.MonCapStd).toFixed(0);
                            obj.realCappercent = realCappercent + "%";
                        return obj
                      })
                    vm.table.datas = params;
                }else{
                    vm.table.datas = [];
                }
          }).catch((err)=>{
          })
    },
    // 查询维护区
    queryWhq:function(){
        let vm = this;
        searchProvince().then(res=>{
            let rs = JSON.parse(res.data.result);
            let params = [];
                if(rs.code == 1) {
                    rs.data.forEach(list => {
                        let obj = {
                            label:list,
                            value:list
                        }
                        params.push(obj);
                    });
                  params.unshift({
                    label:'全部 (共'+ params.length + '种)',
                    value:''
                  })
                  vm.UDepartmentList = params;
                  vm.queryStationName(1);
            }
        }).catch(err=>{
        })
    },
    // 查询机房站点
    queryStationName:function(){
      let vm = this;
      let data = {
            UNote:vm.UDepartment
          }
          computerSite(data).then((res)=>{
              let result = JSON.parse(res.data.result);
                  if(result.code == 1){
                    let params = result.data.map(item=>{
                            let obj = {
                                  label:item,
                                  value:item
                                }
                                return obj
                        });
                        params.unshift({
                          label:'全部 (共'+ params.length + '种)',
                          value:''
                        })
                        vm.StationNameList = params;
                        if(params.length>0){
                          vm.StationName = params[0].value;
                        }
                        vm.queryBattGroupId();
                  }
          }).catch((err)=>{
          })
    },
    // 蓄电池组
    queryBattGroupId:function(){
      let vm = this;
      let data = {
            UNote:vm.UDepartment,
            UName:vm.StationName
          }
          storageBattery(data).then((res)=>{
              let result = JSON.parse(res.data.result);
                  if(result.code == 1){
                    let params = result.data.map((item)=>{
                    let obj = {
                              label:item.BattGroupName,
                              value:item.BattGroupId
                            }
                            return obj;
                        })
                        params.unshift({
                          label:'全部 (共'+ params.length + '种)',
                          value:''
                        })
                        vm.BattGroupIdList = params;
                        if(params.length>0){
                          vm.BattGroupId = params[0].value;
                        }
                  }
          }).catch((err)=>{
          })
    },
  }//methods
};
</script>
<style scoped>
<style lang="less" scoped>
.time_box{
    width: 48.6%;
}
</style>