operaterLog_frm.html 20.6 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: "A相功率因数"  ,paramSign: "aglys"},
          {paramsTitle: "B相功率因数"  ,paramSign: "bglys"},
          {paramsTitle: "C相功率因数"  ,paramSign: "cglys"},
          {paramsTitle: "系统功率因数"  ,paramSign: "sysglys"},
          {paramsTitle: "系统频率"  ,paramSign: "syspl"},
          {paramsTitle: "系统总有功功率"  ,paramSign: "sysyggl"},
          {paramsTitle: "A相无功功率"  ,paramSign: "awggl"},
          {paramsTitle: "B相无功功率"  ,paramSign: "bwggl"},
          {paramsTitle: "T1温度"  ,paramSign: "t1wendu"},
          {paramsTitle: "T2温度"  ,paramSign: "t2wendu"},
          {paramsTitle: "T3温度"  ,paramSign: "t3wendu"},
          {paramsTitle: "T4温度"  ,paramSign: "t4wendu"},
          {paramsTitle: "总无功电能"  ,paramSign: "syswgdn"},
          {paramsTitle: "C相无功功率"  ,paramSign: "cwggl"},
          {paramsTitle: "漏电流值"  ,paramSign: "ldl"},
          {paramsTitle: "系统总无功功率"  ,paramSign: "syswggl"},
          {paramsTitle: "A相视在功率"  ,paramSign: "aszgl"},
          {paramsTitle: "B相视在功率"  ,paramSign: "bszgl"},
          {paramsTitle: "系统总视在功率"  ,paramSign: "sysszgl"},
          {paramsTitle: "反向有功电能"  ,paramSign: "fxygdn"},
          {paramsTitle: "正向无功电能"  ,paramSign: "zxwgdn"},
          {paramsTitle: "反向无功电能"  ,paramSign: "fxwgdn"},
          {paramsTitle: "总有功电能"  ,paramSign: "sysygdn"},
          {paramsTitle: "总视在电能"  ,paramSign: "sysszdn"},
          {paramsTitle: "A相有功功率"  ,paramSign: "ayggl"},
          {paramsTitle: "B相有功功率"  ,paramSign: "byggl"},
          {paramsTitle: "C相有功功率"  ,paramSign: "cyggl"},
          {paramsTitle: "设备代码"  ,paramSign: "code"},
          {paramsTitle: "程序版本号年"  ,paramSign: "year"},
          {paramsTitle: "程序版本号月日"  ,paramSign: "month"},
          {paramsTitle: "时钟日时远程设置"  ,paramSign: "w_day_hour"},
          {paramsTitle: "时钟分秒远程设置"  ,paramSign: "w_mintue_second"},
          {paramsTitle: "运行状态"  ,paramSign: "status"},
          {paramsTitle: "报警类型"  ,paramSign: "alarm_type"},
          {paramsTitle: "自诊断类型"  ,paramSign: "auto_diagnosis"},
          {paramsTitle: "系统时钟年月"  ,paramSign: "r_sys_year_month"},
          {paramsTitle: "系统时钟日时"  ,paramSign: "r_sys_day_hour"},
          {paramsTitle: "系统时钟分秒"  ,paramSign: "r_sys_minute_second"},
          {paramsTitle: "T3温度报警使能开关"  ,paramSign: "rw_t3wendusn_switch"},
          {paramsTitle: "T2温度报警使能开关"  ,paramSign: "rw_t2wendusn_switch"},
          {paramsTitle: "漏电报警使能开关"  ,paramSign: "rw_ldsn_switch"},
          {paramsTitle: "报警总模式"  ,paramSign: "rw_alarm_mode"},
          {paramsTitle: "过载报警使能开关"  ,paramSign: "rw_overloadsn_switch"},
          {paramsTitle: "功率报警使能开关"  ,paramSign: "rw_powersn_switch"},
          {paramsTitle: "过压报警使能开关"  ,paramSign: "rw_gysn_switch"},
          {paramsTitle: "欠压报警使能开关"  ,paramSign: "rw_qysn_switch"},
          {paramsTitle: "联动1报警使能开关"  ,paramSign: "rw_dl1sn_switch"},
          {paramsTitle: "联动2报警使能开关"  ,paramSign: "rw_dl2sn_switch"},
          {paramsTitle: "C相视在功率"  ,paramSign: "cszgl"},
          {paramsTitle: "时钟年月远程设置"  ,paramSign: "w_year_month"},
          {paramsTitle: "A相相电压"  ,paramSign: "uan"},
          {paramsTitle: "B相相电压"  ,paramSign: "ubn"},
          {paramsTitle: "C相相电压"  ,paramSign: "ucn"},
          {paramsTitle: "A相线电压"  ,paramSign: "uab"},
          {paramsTitle: "B相线电压"  ,paramSign: "ubc"},
          {paramsTitle: "C相线电压"  ,paramSign: "uca"},
          {paramsTitle: "A相电流"  ,paramSign: "adl"},
          {paramsTitle: "C相电流"  ,paramSign: "cdl"},
          {paramsTitle: "T1温度报警使能开关"  ,paramSign: "rw_t1wendusn_switch"},
          {paramsTitle: "T4温度报警使能开关"  ,paramSign: "rw_t4wendusn_switch"},
          {paramsTitle: "不平衡(缺相)报警使能开关"  ,paramSign: "rw_qxsn_switch"},
          {paramsTitle: "漏电报警值"  ,paramSign: "rw_lddl"},
          {paramsTitle: "T1温度报警值"  ,paramSign: "rw_wendu1cw"},
          {paramsTitle: "T2温度报警值"  ,paramSign: "rw_wendu2cw"},
          {paramsTitle: "T3温度报警值"  ,paramSign: "rw_wendu3cw"},
          {paramsTitle: "T4温度报警值"  ,paramSign: "rw_wendu4cw"},
          {paramsTitle: "过压报警值"  ,paramSign: "rw_gysd"},
          {paramsTitle: "功率报警值"  ,paramSign: "rw_glbh"},
          {paramsTitle: "过载报警值"  ,paramSign: "rw_gzdl"},
          {paramsTitle: "A相电流系数"  ,paramSign: "rw_adlxs"},
          {paramsTitle: "B相电流系数"  ,paramSign: "rw_bdlxs"},
          {paramsTitle: "C相电流系数"  ,paramSign: "rw_cdlxs"},
          {paramsTitle: "漏电流系数"  ,paramSign: "rw_ldlxs"},
          {paramsTitle: "A相电压系数"  ,paramSign: "rw_adyxs"},
          {paramsTitle: "B相电压系数"  ,paramSign: "rw_bdyxs"},
          {paramsTitle: "C相电压系数"  ,paramSign: "rw_cdyxs"},
          {paramsTitle: "Uab线电压系数"  ,paramSign: "rw_uabdyxs"},
          {paramsTitle: "Ubc线电压系数"  ,paramSign: "rw_ubcdyxs"},
          {paramsTitle: "Uca线电压系数"  ,paramSign: "rw_ucadyxs"},
          {paramsTitle: "A相功率因数系数"  ,paramSign: "rw_aglysxs"},
          {paramsTitle: "B相功率因数系数"  ,paramSign: "rw_bglysxs"},
          {paramsTitle: "C相功率因数系数"  ,paramSign: "rw_cglysxs"},
          {paramsTitle: "漏电线圈断线阈值设置"  ,paramSign: "rw_ldxqfzsz"},
          {paramsTitle: "NB、4G模组IMEI"  ,paramSign: "r_nbimei"},
          {paramsTitle: "程序升级控制寄存器"  ,paramSign: "w_update"},
          {paramsTitle: "DO1功能设置"  ,paramSign: "rw_do1sz"},
          {paramsTitle: "DO2功能设置"  ,paramSign: "rw_do2sz"},
          {paramsTitle: "额定电流"  ,paramSign: "rw_eddl"},
          {paramsTitle: "空载电流零点校准值"  ,paramSign: "rw_kzdlxzz"},
          {paramsTitle: "不平衡报警值"  ,paramSign: "rw_dybph"},
          {paramsTitle: "液晶背光开关"  ,paramSign: "rw_yjbg_switch"},
          {paramsTitle: "系统参数设置"  ,paramSign: "rw_sys_params_sz"},
          {paramsTitle: "上报模式"  ,paramSign: "rw_sbmode"},
          {paramsTitle: "上报时间间隔"  ,paramSign: "rw_sbsjjg"},
          {paramsTitle: "RS485通讯地址"  ,paramSign: "rw_txdz"},
          {paramsTitle: "RS485通讯波特率"  ,paramSign: "rw_txbtl"},
          {paramsTitle: "NB、4G模组CIMI"  ,paramSign: "r_simimei"},
          {paramsTitle: "欠压报警值"  ,paramSign: "rw_qysd"},
          {paramsTitle: "B相电流"  ,paramSign: "bdl"},
          {paramsTitle: "设备远程控制寄存器"  ,paramSign: "w_device_remote"},
          {paramsTitle: "T1温度报警返回值"  ,paramSign: "rw_T1_val"},
          {paramsTitle: "T2温度报警返回值"  ,paramSign: "rw_T2_val"},
          {paramsTitle: "T4温度报警返回值"  ,paramSign: "rw_T4_val"},
          {paramsTitle: "功率保护返回值"  ,paramSign: "rw_power_val"},
          {paramsTitle: "漏电电流返回值"  ,paramSign: "rw_leakage_val"},
          {paramsTitle: "过压报警返回值"  ,paramSign: "rw_overvol_val"},
          {paramsTitle: "T3温度报警返回值"  ,paramSign: "rw_T3_val"},
          {paramsTitle: "不平衡报警返回值"  ,paramSign: "rw_imbala_val"},
          {paramsTitle: "电能脉冲常数"  ,paramSign: "rw_ele_constant"},
          {paramsTitle: "是否使用标准PT"  ,paramSign: "rw_isuse_PT"},
          {paramsTitle: "PT一次值"  ,paramSign: "rw_first_PT"},
          {paramsTitle: "PT二次值"  ,paramSign: "rw_second_PT"},
          {paramsTitle: "是否使用标准CT"  ,paramSign: "rw_isuse_CT"},
          {paramsTitle: "CT一次值"  ,paramSign: "rw_first_CT"},
          {paramsTitle: "CT二次值"  ,paramSign: "rw_second_CT"},
          {paramsTitle: "NB、4G模组SIM卡ICCID"  ,paramSign: "r_sim_iccid"},
          {paramsTitle: "AP_IP[4]WIFI模块AP-IP地址"  ,paramSign: "r_ap_ip"},
          {paramsTitle: "AP_MAC[4]WIFI模块AP-MAC地址"  ,paramSign: "r_ap_mac"},
          {paramsTitle: "STA_IP[4]WIFI模块STA-IP地址"  ,paramSign: "r_sta_ip"},
          {paramsTitle: "STA _MAC[4]WIFI模块STA-MAC地址"  ,paramSign: "r_sta_mac"},
          {paramsTitle: "网络信号强度"  ,paramSign: "r_net_signal"},
          {paramsTitle: "IOT平台端口号"  ,paramSign: "rw_iot_port"},
          {paramsTitle: "IOT模组类型"  ,paramSign: "rw_iot_module"},
          {paramsTitle: "IOT协议类型"  ,paramSign: "rw_iot_agree"},
          {paramsTitle: "IOT模组通讯波特率"  ,paramSign: "rw_iot_baud"},
          {paramsTitle: "过载电流返回值"  ,paramSign: "rw_overcurrent_val"},
          {paramsTitle: "IOT平台IP地址[4]"  ,paramSign: "rw_iot_ip"},
          {paramsTitle: "正向有功电能"  ,paramSign: "zxygdn"},
          {paramsTitle: "欠压报警返回值"  ,paramSign: "rw_undervol_val"},
          {paramsTitle: "T1温度报警时间"  ,paramSign: "rw_T1_time"},
          {paramsTitle: "T2温度报警时间"  ,paramSign: "rw_T2_time"},
          {paramsTitle: "T3温度报警时间"  ,paramSign: "rw_T3_time"},
          {paramsTitle: "T4温度报警时间"  ,paramSign: "rw_T4_time"},
          {paramsTitle: "过载报警时间"  ,paramSign: "rw_overcurr_time"},
          {paramsTitle: "功率报警时间"  ,paramSign: "rw_power_time"},
          {paramsTitle: "过压报警时间"  ,paramSign: "rw_overvol_time"},
          {paramsTitle: "欠压报警时间"  ,paramSign: "rw_undervol_time"},
          {paramsTitle: "不平衡报警时间"  ,paramSign: "rw_imbala_time"},
          {paramsTitle: "漏电电流动作时间"  ,paramSign: "rw_leakage_time"},
          {paramsTitle: "分闸脉冲宽度"  ,paramSign: "rw_off_width"},
          {paramsTitle: "合闸脉冲宽度"  ,paramSign: "rw_on_width"},

          ]

      
      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_) {
                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)
                  }
                });
              }else {
                // addAlert('网络错误!');
                api.toast({
                  msg: '暂无数据',
                  duration: 2000,
                  location: 'bottom'
                });
              }
            }
          }
        })
      };
  </script>
</html>