operaterLog_frm.html 18.1 KB
<!DOCTYPE html>
<html>
  <head>
      <meta charset="utf-8">
      <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
      <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
      <meta name="referrer" content="no-referrer">
      <title>操作日志_frm</title>
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/api.css"/>
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/aui.css"/>
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/home.css"/>
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/element.css"/>
      <link rel="stylesheet" type="text/css" href="http://iot.uccc.cc:9090/app/css/style.css"/>

      <style>
          html,
          body{
            background-color: #F4F6F9;
          }
      </style>
  </head>
  <body>
    <div id="app">
      <template>
        <div class="store01001-operate-log-protect-panel" id="operater_panel" v-for="(list_d, list_i) in list">
          <div v-if="list.length > 0" class="store01001-operate-log-protect-list">
            <div class="store01001-operate-log-info-panel">
              <div class="aui-row aui-row-flex store01001-operate-log-top-14">
                  <div class="aui-col aui-col-span-2 aui-row-flex-start">
                      <div class="store01001-operate-log-number-id">{{ list_i+1 }}</div>
                  </div>
                  <div class="aui-col aui-col-span-10 aui-row-flex-start">
                      <span class="store01001-operate-log-operator" id="operator">操作者:<span style="color:#5B7FF8;">{{ list_d.userName }}</span></span>
                  </div>
                  <div class="aui-col aui-col-span-12 aui-row-flex-end">
                    <div class="aui-row aui-row-flex">
                      <div class="aui-col aui-col-span-12 aui-row-flex-start">
                        <div v-if="list_d.downResult === '1'" class="store01001-operate-log-operater-status">发送成功</div>
                        <div v-if="list_d.downResult === '0'" class="store01001-operate-log-operater-status store01001-operate-log-err-status">发送失败</div>
                        <div v-if="list_d.downResult != '0' && list_d.downResult !='1'" class="store01001-operate-log-operater-status">发送中</div>
                      </div>
                      <div class="aui-col aui-col-span-12 aui-row-flex-end">
                        <div v-if="list_d.upResult === '1'" class="store01001-operate-log-operater-status">接收成功</div>
                        <div v-if="list_d.upResult === '0'" class="store01001-operate-log-operater-status store01001-operate-log-err-status">接收失败</div>
                        <div v-if="list_d.upResult != '0' && list_d.upResult != '1'" class="store01001-operate-log-operater-status">接收中</div>
                      </div>
                    </div>
                  </div>
              </div>
              <div class="store01001-operate-log-list-line"></div>
              <div class="aui-row aui-row-flex">
                  <div class="aui-col aui-col-span-12 aui-row-flex-start">
                    <div class="store01001-operate-log-operater-dot"></div>
                    <div class="store01001-operate-log-operater-cmd">&nbsp;操作指令</div>
                  </div>
                  <div class="aui-col aui-col-span-12 aui-row-flex-end">
                    <div class="store01001-operate-log-operater-cmd-value">{{ list_d.value | commandFilter }}</div>
                  </div>
              </div>
              <div v-if="list_d.value != '' || list_d.retValue != ''" class="aui-row aui-row-flex">
                  <div class="aui-col aui-col-span-12 aui-row-flex-start">
                    <div class="store01001-operate-log-operater-dot"></div>
                    <div class="store01001-operate-log-operater-cmd">&nbsp;参数</div>
                  </div>
                  <div class="aui-col aui-col-span-12 aui-row-flex-end">
                    <div class="store01001-operate-log-operater-cmd-value"> {{ list_d.value | valueFilter }}</div>
                  </div>
              </div>
              <div class="aui-row aui-row-flex" style="margin-top:0px;">
                <div class="aui-col aui-col-span-12 aui-row-flex-start">
                  <div class="store01001-operate-log-operater-dot"></div>
                  <div class="store01001-operate-log-operater-cmd">&nbsp;操作时间</div>
                </div>
                <div class="aui-col aui-col-span-12 aui-row-flex-end">
                  <div class="store01001-operate-log-operater-cmd-value">{{ parseTime(list_d.createdAt,'{y}-{m}-{d} {h}:{i}:{s}') }}</div>
                </div>
            </div>
              <div style="height:7px;"></div>
            </div>
          </div>
        </div>
        <div style="margin-top:50px;"></div>
      </template>
    </div>
  </body>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/api.js"></script>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/jquery-3.3.1.min.js"></script>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/vue.min.js"></script>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/common.js"></script>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/element.js"></script>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/ctrl.js"></script>
  <script type="text/javascript" src="http://iot.uccc.cc:9090/app/js/fastclick.js "></script>
  <script type="text/javascript">
      var vm,
          that;
          var setParamList= [
            {paramsTitle: "合相有功功率"  ,paramSign: "r_hxyggl"},
            {paramsTitle: "A相无功功率测量"  ,paramSign: "r_axwgglcl"},
            {paramsTitle: "B相无功功率测量"  ,paramSign: "r_bxwgglcl"},
            {paramsTitle: "相电压V1"  ,paramSign: "r_xdy1"},
            {paramsTitle: "相电压V2"  ,paramSign: "r_xdy2"},
            {paramsTitle: "相电压V3"  ,paramSign: "r_xdy3"},
            {paramsTitle: "C相无功功率测量"  ,paramSign: "r_cxwgglcl"},
            {paramsTitle: "合相无功功率"  ,paramSign: "r_hxwggl"},
            {paramsTitle: "A相视在功率测量"  ,paramSign: "r_axszglcl"},
            {paramsTitle: "B相视在功率测量"  ,paramSign: "r_bxszglcl"},
            {paramsTitle: "C相视在功率测量"  ,paramSign: "r_cxszglcl"},
            {paramsTitle: "合相视在功率"  ,paramSign: "r_hxszgl"},
            {paramsTitle: "脉冲电能"  ,paramSign: "rw_mcdn"},
            {paramsTitle: "当前开关状态"  ,paramSign: "r_current_status"},
            {paramsTitle: "软件版本号"  ,paramSign: "r_version"},
            {paramsTitle: "当前故障标志位"  ,paramSign: "r_current_fault_flag"},
            {paramsTitle: "当前故障所在相"  ,paramSign: "r_current_fault_szx"},
            {paramsTitle: "当前故障延时时间"  ,paramSign: "r_current_fault_delay_time"},
            {paramsTitle: "当前故障时的A相母排温度"  ,paramSign: "r_current_fault_axmpwendu"},
            {paramsTitle: "当前故障时的B相母排温度"  ,paramSign: "r_current_fault_bxmpwendu"},
            {paramsTitle: "当前故障时的C相母排温度"  ,paramSign: "r_current_fault_cxmpwendu"},
            {paramsTitle: "A相功率因数"  ,paramSign: "r_axglyz"},
            {paramsTitle: "正向有功电能"  ,paramSign: "r_zxygdn"},
            {paramsTitle: "正向无功电能"  ,paramSign: "r_zxwgdn"},
            {paramsTitle: "反向无功电能"  ,paramSign: "r_fxwgdn"},
            {paramsTitle: "当前故障时的A相电压"  ,paramSign: "r_current_fault_axdy"},
            {paramsTitle: "当前故障时的B相电压"  ,paramSign: "r_current_fault_bxdy"},
            {paramsTitle: "当前故障时的C相电压"  ,paramSign: "r_current_fault_cxdy"},
            {paramsTitle: "故障漏电电流整定"  ,paramSign: "rw_fault_loudiandlzd"},
            {paramsTitle: "故障过载电流整定"  ,paramSign: "rw_fault_gzdlzd"},
            {paramsTitle: "故障过电压整定"  ,paramSign: "rw_fault_gdyzd"},
            {paramsTitle: "故障欠电压整定"  ,paramSign: "rw_fault_qdyzd"},
            {paramsTitle: "过载时间整定"  ,paramSign: "rw_gztimezd"},
            {paramsTitle: "故障温度整定值"  ,paramSign: "rw_fault_wenduzdz"},
            {paramsTitle: "A相母排温度"  ,paramSign: "r_axmpwendu"},
            {paramsTitle: "B相母排温度"  ,paramSign: "r_bxmpwendu"},
            {paramsTitle: "C相母排温度"  ,paramSign: "r_cxmpwendu"},
            {paramsTitle: "A相有功功率测量"  ,paramSign: "r_axygglcl"},
            {paramsTitle: "B相有功功率测量"  ,paramSign: "r_bxygglcl"},
            {paramsTitle: "C相有功功率测量"  ,paramSign: "r_cxygglcl"},
            {paramsTitle: "瞬时短路整定倍数"  ,paramSign: "rw_ssdlzdbs"},
            {paramsTitle: "短延时短路整定倍数"  ,paramSign: "rw_dysdlzdbs"},
            {paramsTitle: "分合闸处理"  ,paramSign: "w_fhz_handle"},
            {paramsTitle: "保护动作标志位"  ,paramSign: "rw_bhaction_flag"},
            {paramsTitle: "心跳时间整定"  ,paramSign: "rw_keepalive_time_zd"},
            {paramsTitle: "电能脉冲个数整定"  ,paramSign: "rw_dnmcnumzd"},
            {paramsTitle: "拉弧动作整定值"  ,paramSign: "rw_lhaction_zd_val"},
            {paramsTitle: "拉弧动作延时时间"  ,paramSign: "rw_lhaction_delay_time"},
            {paramsTitle: "反向有功电能"  ,paramSign: "r_fxygdn"},
            {paramsTitle: "漏电"  ,paramSign: "r_loudian"},
            {paramsTitle: "重合闸闭锁时间"  ,paramSign: "rw_chzbs_time"},
            {paramsTitle: "远程自锁"  ,paramSign: "w_remote_zs"},
            {paramsTitle: "远程漏电自检"  ,paramSign: "w_remote_ldzj"},
            {paramsTitle: "系统时钟年月"  ,paramSign: "rw_year_month"},
            {paramsTitle: "系统时钟日时"  ,paramSign: "rw_day_hours"},
            {paramsTitle: "系统时钟分秒"  ,paramSign: "rw_minutes_seconds"},
            {paramsTitle: "负载个数"  ,paramSign: "rw_fzgs"},
            {paramsTitle: "定时合闸时秒整定"  ,paramSign: "rw_dsfzsmzd"},
            {paramsTitle: "定时分闸时间"  ,paramSign: "rw_dsfzfmzd"},
            {paramsTitle: "负载值整定"  ,paramSign: "rw_fzzzd"},
            {paramsTitle: "缺相延时时间"  ,paramSign: "rw_qxyssj"},
            {paramsTitle: "输入量DI功能整定" ,paramSign: "rw_srldignzd"},
            {paramsTitle: "预存电量(高16位)"  ,paramSign: "rw_yucundl"},
            {paramsTitle: "定时合闸时间"  ,paramSign: "rw_dshzsfzd"},
            {paramsTitle: "数脉冲计数个数" ,paramSign: "r_smcjsnum"},
            {paramsTitle: "相电流I1"  ,paramSign: "r_xdl1"},
            {paramsTitle: "相电流I2"  ,paramSign: "r_xdl2"},
            {paramsTitle: "相电流I3"  ,paramSign: "r_xdl3"},
            {paramsTitle: "B相功率因数"  ,paramSign: "r_bxglys"},
            {paramsTitle: "C相功率因数"  ,paramSign: "r_cxglys"},
            {paramsTitle: "合相功率因数"  ,paramSign: "r_hxglys"},
            {paramsTitle: "频率测量"  ,paramSign: "r_plcl"},
            {paramsTitle: "A相拉弧值"  ,paramSign: "r_axlhz"},
            {paramsTitle: "B相拉弧值"  ,paramSign: "r_bxlhz"},
            {paramsTitle: "C相拉弧值"  ,paramSign: "r_cxlhz"},
            {paramsTitle: "当前故障时的A相电流"  ,paramSign: "r_current_fault_axdl"},
            {paramsTitle: "当前故障时的B相电流"  ,paramSign: "r_current_fault_bxdl"},
            {paramsTitle: "当前故障时的C相电流"  ,paramSign: "r_current_fault_cxdl"},
            {paramsTitle: "当前故障时的漏电电流"  ,paramSign: "r_current_fault_loudiandl"},
            {paramsTitle: "重合闸延时时间"  ,paramSign: "rw_chz_delay_time"},
            {paramsTitle: "定时器使能标志位"  ,paramSign: "rw_time"},
            {paramsTitle: "定时器1合闸时分"  ,paramSign: "rw_time_1_close"},
            {paramsTitle: "定时器1分闸时分"  ,paramSign: "rw_time_1_open"},
            {paramsTitle: "定时器2合闸时分"  ,paramSign: "rw_time_2_close"},
            {paramsTitle: "定时器2分闸时分"  ,paramSign: "rw_time_2_open"},
            {paramsTitle: "定时器3合闸时分"  ,paramSign: "rw_time_3_close"},
            {paramsTitle: "定时器3分闸时分"  ,paramSign: "rw_time_3_open"},
            {paramsTitle: "定时器4合闸时分"  ,paramSign: "rw_time_4_close"},
            {paramsTitle: "定时器4分闸时分"  ,paramSign: "rw_time_4_open"},
            {paramsTitle: "环境温度使能"  ,paramSign: "rw_envir_temp_sign"},
            {paramsTitle: "环境温度上限值"  ,paramSign: "rw_envir_temp_up"},
            {paramsTitle: "环境温度下限值"  ,paramSign: "rw_envir_temp_down"},
          ]


      apiready = function(){
        api.parseTapmode();
        $(function() {
          FastClick.attach(document.body);
        });

        //---------初始化vue
        vm = new Vue({
          el: '#app',
          data: {
            page: 1,
            limit: 10,
            hasNext: true,
            imei: api.pageParam.imei,
            productId: api.pageParam.productId,
            token: api.getPrefs({sync: true,key: 'userToken'}),
            userId: api.getPrefs({sync: true,key: 'userId'}),
            time: "",
            type: 'set',
            list: [],

          },
          mounted() {
            //window.chooseProduct = this.chooseProduct;
          },
          created() {
            that = this
            /**上拉加载 */
            api.addEventListener({
              name: 'scrolltobottom',
              extra: {
                  threshold: 0
              }
            }, function(ret, err) {
              if (that.hasNext) {
                that.page += 1;
              }
              that.getLogList();
            });
            api.addEventListener({
              name: 'changeOperaterType4Log'
            }, function(ret, err){
                if( ret && ret.value.curName ){
                  that.type = ret.value.curCmd
                  that.page = 1
                  that.hasNext = true
                  that.list = []
                  that.getLogList()
                }
            });
            api.addEventListener({
                name: 'chanegOperateSearchDate'
            }, function(ret, err){
                if( ret && ret.value.selected_time ){
                  that.time = ret.value.selected_time
                  that.page = 1
                  that.hasNext = true
                  that.list = []
                  that.getLogList()
                }
            });
            /** 下拉刷新 */
            api.setRefreshHeaderInfo({
                loadingImg:'../../image/alpha0.png',
                bgColor: 'rgba(255,255,255,0)',
                textColor: '#AEB8CE',
                textDown: '刷新操作日志列表...',
                textUp: '松开刷新...'
            }, function(ret, err) {
              that.page = 1;
              that.time = '';
              that.hasNext = true;
              that.list = []
              //-----
              api.sendEvent({
                  name: 'cleanOperaterCondition',
              });
              that.getLogList()
              api.refreshHeaderLoadDone();
            });
            that.getLogList()
          },
          filters: {
            valueFilter(v) {
              let params_ = JSON.parse(v).params
              let params = ''
              for (var val in params_) {
                setParamList.forEach(d => {
                  if (d.paramSign === 'rw_envir_temp_sign' && params_[val] === '1') {
                    params += '开启 '
                  }else if (d.paramSign === 'rw_envir_temp_sign' && params_[val] === '0') {
                    params += '关闭 '
                  }
                });
                if (!params_.rw_envir_temp_sign) {
                  params += params_[val] + ' '  
                }
              }
              return params
            },
            commandFilter(v) {
              let params_ = JSON.parse(v).params
              let params = ''
              for (var val in params_) {
                setParamList.forEach(d => {
                  if (d.paramSign === val) {
                    if (d.paramSign === 'w_fhz_handle' && params_[val] === '392') {
                      params += '指令合闸 '
                    }else if (d.paramSign === 'w_fhz_handle' && params_[val] === '665') {
                      params += '指令分闸 '
                    }else {
                      params += d.paramsTitle + ' '
                    }
                  }
                });
              }
              return params
            }
          },
          methods: {
            async getLogList() {
              if (!this.hasNext) {
                return;
              }
              let params = {
                imei: this.imei,
                limit: this.limit,
                page: this.page,
                token: this.token,
                type: this.type
              }
              if (this.time != '') {
                params.time = this.time
              }

              let listRes = await get_ty_operate_log_list(params)
              if (listRes.code === 0 && listRes.data.rows.length > 0) {
                let listD = listRes.data.rows
                listD.forEach(d => {
                  let count = 0
                  for(var key in JSON.parse(d.value).params){
                    if (key === 'rw_year_month' || key === 'rw_day_hours' || key === 'rw_minutes_seconds') {
                      count+=1
                    }
                  }
                  if (count === 0) {
                    this.list.push(d)
                  }
                });
                console.log(JSON.stringify(this.list));
              }else {
                // addAlert('网络错误!');
                api.toast({
                  msg: '暂无数据',
                  duration: 2000,
                  location: 'bottom'
                });
              }
            }
          }
        })
      };
  </script>
</html>