xinyb
2024-09-19 18ffbca9acaccd5099a7a63652f52210f59a7e40
WebRoot/js/panel.js
@@ -431,22 +431,32 @@
                  $(select2Evt).val(original).trigger('change');
               });
            }).on("select2:select", function (evt) {
               if (evt.params.data.id == -1) { //新增全部 xin 2023-6-2 14:29:54
                  $("#" + field).select2("val", [-1]); //清空其他选项
                  $("#" + field).val(allValue).trigger("change");
               var data =evt.params.data;
               if (data.id == -1) { //新增全部 xin 2023-6-2 14:29:54
                  $(this).select2("val", [-1]); //清空其他选项
                  $(this).val(allValue).trigger("change");
                  return;
               }
               var element = evt.params.data.element;
               var $element = $(element);
               $element.detach();
               $(this).append($element);
               $(this).trigger("change");
               var original = $(this).select2('val') || [];//已经被选中的值.不存在就实例化
               original.push(data.id);//添加进去
               $(this).val(original).trigger("change");
               getSelect31(field);//43控件关联31控件 xin 2022-4-1 17:06:04
               panMain[panIndex].isChange = 1;
            }).on("select2:unselect", function (evt) {
               var element = evt.params.data.element;
               var $element = $(element);
               $element.remove();
               var original = $(this).select2('val');//已经被选中的值
               if (original == null) {
                  return;
               }
               var data =evt.params.data;
               if (data.id == -1) { //新增全部 xin 2023-6-2 14:29:54
                  $(this).select2("val", [-1]); //清空其他选项
                  $(this).val([]).trigger("change");
                  return;
               }
               original = $.grep(original, function (value) {
                  return value !== data.id; // 删除值为data.id的元素
               })
               $(this).val(original).trigger("change");//
               panMain[panIndex].isChange = 1;
            });
            //这里异步加载数据回来填充 xin 2023-7-18 15:41:13
@@ -538,14 +548,16 @@
               }
               if (qianzhi) { // 强制判断
                  // if (id != col) { //注释 注释原因:在18窗体执行三点弹出过到另一个18窗体会导致获取字段在另一个18窗体查询不到 xin 2023-6-7 16:24:32
                     if (value != "") {
                        where += wais[i] + " like '" + "@~"+ value + "@~'"
                           + addFuHao;// and
                     } else {
                        $.messager.alert("操作提示", this.panInfo[col].title + "没有录入!","warning");
                        openTree = false;
                        break;
                     }
                  //    if (value != "") {//注释原因:强制判断进入时候 值是空值也进行组装,空值不应该出现页面提示 xin 2024-7-2 14:52:27
                  if (value != null) {
                     where += wais[i] + " like '" + "@~" + value + "@~'"
                        + addFuHao;// and
                  } else {
                     // $.messager.alert("操作提示", this.panInfo[col].title + "没有录入!", "warning");
                     $.messager.alert("操作提示", this.panInfo[col].title + "控件不存在,请检查。", "warning");
                     openTree = false;
                     break;
                  }
                  // } else {
                  //    // by danaus 2017-7-21 替换^
                  //    colDan = "@G@" + wais[i] + " like '" + "@~"+ value + "@~'";
@@ -748,7 +760,12 @@
            }
            // 权限控制是否能修改 xin 2018-12-9 11:23:32
            if ($('#' + key + '_expr').length > 0 && $('#' + key + '_expr').val() == '0') {
               delete item[key];
               if ($('#' + key + '_expr_val') != null) {//是加密的需要提交
                  item[key] = $('#' + key + '_expr_val').val();
                  item[key + '_expr'] = 0;
               } else {
                  delete item[key];
               }
            }
            //是单据类型窗体进入(特殊字段处理)xin 2021-3-10 10:00:26
            if (';5;8;16;496;'.indexOf(';' + formType + ';') != -1) {
@@ -1069,14 +1086,26 @@
         no_load_first = getBool;// 当然事情完了,还是还原其本来值
      },
       hasStyleCss:function(id){//处理stylecss
         let cssArray = "";
         let css = getDoc(id, ".style");// 控件样式
         if (getDoc(id + '_css', '') != null && getDoc(id + '_css', '.value') != "") {// css样式
            let css = getDoc(id, ".style");// 控件样式
            let cssz = "";
            for (var r = 0; r < css.length; r++) {
               cssz += css[r] + ":" + css[css[r]] + ";";// 组装
               cssArray += css[r] + ":" + css[css[r]] + ";";// 组装
            }
            cssz += getDoc(id + '_css', '.value');// 获取9802设置的控件样式
            setDoc(id, ".style='" + cssz + "'");// 赋值最新的控件样式css
            cssArray += getDoc(id + '_css', '.value');
            setDoc(id, ".style='" + cssArray + "'");// 赋值最新的控件样式css
         } else {
            let cssm = panMain[panIndex].panInfo[id];
            if (cssm != null) {
               cssm = cssm.stylecss;
            }
            if (cssm != null && cssm != '') {
               for (var r = 0; r < css.length; r++) {
                  cssArray += css[r] + ":" + css[css[r]] + ";";// 组装
               }
               cssArray += cssm;
               setDoc(id, ".style='" + cssArray + "'");// 赋值最新的控件样式css
            }
         }
      },
      hasIn : function(str, strs) {
@@ -1376,7 +1405,7 @@
            }
            format = info[colid].format;
            format = format == null ? "" : format;
            if(initv.indexOf("!")!=-1){
            if(initv.indexOf("!") == 0){//出现在最开头0位置就执行查询
               dat[t]=colid;
               typ[t]=type;
               t++;
@@ -2850,9 +2879,30 @@
   return boolreturn;
}
// 1.数组2.自身字段(数组值与自身字段一一匹配)3true替换,反之则为追加
function openSetValue(st, get, boo) {
//newExpr是弹出页面返回的数据,表示里面的字段内容是密文,需要根据当前页面是否需要解密做相应的处理
//格式:newExpr={"字段名称":"密文"} by danaus 2024-06-28 17:08
function openSetValue(st, get, boo,newExpr) {
   var col;
   if (st != undefined && st != null) {
      var encrypt = new JSEncrypt();
      encrypt.setPublicKey(rsakey.pubkey);
      var dataJson=null;
      if (newExpr != null &&  JSON.stringify(newExpr) !== "{}"){//&& typeof newExpr == 'object') {//有密文
         $.ajax({
            url: "/api/decrypt.do",
            type: "POST",
            data: JSON.stringify(newExpr),
            async: false,
            dataType: 'json',
            contentType: 'application/json',
            success: function (res) {
               if (res.state == 0) {
                  //获取明文
                  dataJson = res.data;
               }
            }
         })
      }
      for ( var n = 0; n < st.length; n++) {
         if (getDoc(get[n], "") == null) {
            console.log("三点弹出设置的自身字段:" + get[n] + "在页面上不存在!");
@@ -2882,7 +2932,15 @@
                     }
                  }
               }
               setDoc(get[n], ".value ='" +(st[n]=="undefined"?"":st[n])+ "'");
               var v = (st[n] == "undefined" ? "" : st[n]);
               if (dataJson != null) {//有解密的明文值
                  v = dataJson[get[n]];
               }
               if (getDoc(n + "_expr", ".value") != "" && getDoc(n + "_expr", ".value") == 0) {//权限控制 显示星号 xin 2024-6-24 10:22:43
                  setDoc(n + "_expr_val", ".value='" + encrypt.encrypt(v) + "'");//加密值
                  v = "******";
               }
               setDoc(get[n], ".value ='" + v + "'");
            } else {
               col = getDoc(get[n], ".value");
               if (!isHasValue(col, st[n], ",")) {// 在有的情况下不追加
@@ -2897,8 +2955,8 @@
      }
      panMain[panIndex].isChange=1;
      top.myFresh.Type=panMain[panIndex].formtypeOne;
      if(panMain[panIndex].formtypeOne==10){//10类型
         panMain[panIndex].keyDown('123','');//三点弹出返回后 再次出发回车事件 组装where条件。2014-11-14
      if(panMain[panIndex].formtypeOne==10 || panMain[panIndex].formtypeOne==20 || panMain[panIndex].formtypeOne==30){//10 20 30类型
         panMain[panIndex].keyDown('123','');//三点弹出返回后 再次触发回车事件 组装where条件。2014-11-14
           panMain[panIndex].isChange=0;//10窗体返回的值不在保存防范,所以isChange改为0
      }
   } else {
@@ -3332,19 +3390,35 @@
                     array.push((plane[auditField[a][0]] != null ? plane[auditField[a][0]] : ''));
                  }
               }
               auditJson.auditIndex = news + ',' + old + ',' + array.join(',');
               let auditType="update";
               if (isNew == 1 && doc == "") {
                  auditType = 'add';
               }
               if (typeof (type) != 'undefined' && type == '2add') {
                  auditType = "add";
               }
               auditJson.auditType = auditType;
               auditJson.usercode = '';
               auditJson.username = '';
               auditJson.fieldId = name;
               auditJson.fieldname = auditField[i][2];
               auditJson.oldvalue = old;
               auditJson.newvalue = news;
               auditJson.usercode = '';
               auditJson.username = '';
               auditJson.auditType = (typeof (type) == 'undefined' ? ((isNew == 1 && doc == "") ? "add" : "update") : (type == "2add" ? "add" : "update"));
               auditJson.formid = auditFormId;
               auditJson.doccode = doc;
               auditJson.auditIndex = ',' + news + ',' + old + ',' + array.join(',');
               auditJson.mainFormId = formId;//主功能号,在三表或多表时MainFormId取主功能号,其他情况取值和formid相同取当前功能号
               auditJson.headFlag = 0;//主表为0 从表为1
               // auditJson.fielddescr = auditField[i][2];//这个不用了
               if ($doc(name + "_expr").val() != null && $doc(name + "_expr").val() == 0) {
                  var encrypt = new JSEncrypt();
                  encrypt.setPublicKey(rsakey.pubkey);
                  news=encrypt.encrypt(news);//加密
                  auditJson.oldvalue_expr = 0;
                  auditJson.newvalue_expr = 0;
                  auditJson.oldvalue = $doc(name + "_expr_val").val();
                  auditJson.newvalue = news;
                  auditJson.auditIndex_expr = news;//处理加密
               }
               newValue.push(auditJson);
            }
         }