查看情况(样式扩展)

功能目标

  • 根据当前人是否查看异常记录,改变【查看情况】字段的颜色

前提准备

使用绑定集团的账号,设置【未查看】为其默认值。为方便修改历史记录,将【查看记录】暂时放出来

图 1

图 2

通过点击编码,将历史数据的【查看情况】修改为未查看

图 3

图 4

将【异常记录】的未查看隐藏,一般这个字段应该默认不能进行修改

图 5

图 6

知识点

表格设置数据源后事件

let gridModel = viewModel.getGridModel();
gridModel.on('afterSetDataSource', (data) => {


});

操作DOM元素

//设置未查看颜色
var selected = document.querySelectorAll("div[title='未查看']");
if(null!=selected){
   selected.forEach((data)=>{
     data.style = data.style.cssText + '; color:red';
   })
}

功能实现

后端功能实现

新增api函数

图 7

后端功能实现

let AbstractAPIHandler = require('AbstractAPIHandler');
  class MyAPIHandler extends AbstractAPIHandler {
   execute(request){
      var rows = request.data;
     //获取当前用户的身份信息-----------
     var currentUser = JSON.parse(AppContext()).currentUser;  //通过上下文获取当前的用户信息
     var sysId="diwork";
     var tenantId = currentUser.tenantId;
     var userids = [currentUser.id];
     var result = listOrgAndDeptByUserIds(sysId,tenantId,userids); //获取当前用户的组织和部门信息
     var resultJSON = JSON.parse(result);
     var userid;
     if("1"==resultJSON.status&&resultJSON.data!=null){
       //根据当前用户信息去查询员工表
       var userData = resultJSON.data;
       //业务系统员工id
       userid = userData[currentUser.id].id; //员工id
     }else{
       throw new Error("获取员工信息异常");
     }
      var abnormalevent = [];
      rows.forEach((row)=>{
        abnormalevent.push(row.id);
      })
      var object = abnormalevent.join("','");
      var sql = "select abnormalevent from GT10261AT179.GT10261AT179.looklog where abnormalevent in('"+object+"') and StaffNew='"+userid+"'";
      var res = ObjectStore.queryByYonQL(sql);
      var result = [];
      res.forEach((data)=>{
        result.push(data.abnormalevent);
      })
   return {res:result};
 }
}
exports({"entryPoint":MyAPIHandler});

前端功能实现

图 8

进入【异常记录列表】初始化函数

图 9

图 10


let gridModel = viewModel.getGridModel();
gridModel.on('afterSetDataSource', (data) => {
    if(undefined==data||data.length==0)return;
    //获取到表格当前页的数据
    var change_data = JSON.parse(JSON.stringify(data));
    //开启同步块
    var promiseCh = new cb.promise();
    //请求调用后端API函数---【根据页面数据获取当前人的阅读信息】
    cb.rest.invokeFunction("32de814b6db5410fa9d4a197dc7c05bc", {data:change_data},
        function(err, res) {
          if(err!=null){
            cb.utils.alert('获取统计数据异常');
            return false;
          }else{
            var lookResMy = res.res;
            for(j = 0; j < change_data.length; j++) {
              if(lookResMy.indexOf(change_data[j].id)>-1){
                gridModel.setCellValue(j, "look_situation_m", "2");
              }else{
              gridModel.setCellValue(j, "look_situation_m", "1");
              }
            } 
            //设置未查看颜色
            var selected = document.querySelectorAll("div[title='未查看']");
            if(null!=selected){
              selected.forEach((data)=>{
                data.style = data.style.cssText + '; color:red';
              })
            }
          return promiseCh.resolve();
        }
    })

  });

测试

图 11

Copyright © 用友客户成功部 2020 all right reserved,powered by Gitbook修订时间: 2020-12-22 11:24:45

results matching ""

    No results matching ""