jeecg3.8popup添加选择后的回调事件

第一步:

项目名srcmainwebappplug-in oolscurdtools.js找到

popupClick(pobj,tablefield,inputnames,pcode,params) 方法,修改以下*括起来的加粗部分

function popupClick(pobj,tablefield,inputnames,pcode,params) {
if(inputnames==""||pcode==""){
alert($.i18n.prop('popup.param.error.msg'));
return;
}
console.log(111);
// var content = "url:cgReportController.do?popup&id="+pcode;
// if (params) content += "&" + params;
if(typeof(windowapi) == 'undefined'){
$.dialog({
content: "url:cgReportController.do?popup&id="+pcode,
zIndex: getzIndex(),
lock : true,
title:$.i18n.prop('common.select'),
800,
height: 400,
cache:false,
ok: function(){
iframe = this.iframe.contentWindow;
var selected = iframe.getSelectRows();
if (selected == '' || selected == null ){
alert($.i18n.prop('common.select.please'));
return false;
}else {
//对应数据库字段不为空的情况下,根据表单中字典TEXT的值来取popup的值
if(tablefield != "" && tablefield != null){
var fields = tablefield.split(",");
var inputfield = inputnames.split(",");
for(var i1=0;i1<fields.length;i1++){
var str = "";
$.each( selected, function(i, n){
if (i==0)
str+= n[fields[i1]];
else{
str+= ",";
str+=n[fields[i1]];
}
});
var inputname = $(pobj).attr("name");
var inputs = inputname.split(".");
//判断传入的this格式是否为 "AA[#index#].aa"的形式
if(str.indexOf("undefined")==-1){
if(inputs.length>1){
//update--begin--author:scott date:20171031 for:TASK #2385 online和代码生成器 一对多行popup多字段赋值问题解决-----------
var inpu = inputs[0]+"."+inputfield[i1];

$("input[name='"+inpu+"']").val(str);
}else{
$("input[name='"+inputfield[i1]+"']").val(str);
}
}else{
if(inputs.length>1){

var inpu = inputs[0]+"."+inputfield[i1];

$("input[name='"+inpu+"']").val("");
}else{
$("input[name='"+inputfield[i1]+"']").val("");
}
}
}
}else{
//对应数据库字段为空的情况下并且字典CODE传入多个值时,根据表单中字典CODE的值从popup中来取值
var inputfield = inputnames.split(",");
if(inputfield.length>1){
for(var i1=0;i1<inputfield.length;i1++){
var str = "";
$.each( selected, function(i, n){
if (i==0)
str+= n[inputfield[i1]];
else{
str+= ",";
str+=n[inputfield[i1]];
}
});
var inputname = $(pobj).attr("name");
var inputs = inputname.split(".");
if(str.indexOf("undefined")==-1){
if(inputs.length>1){
var inpu = inputs[i1]+"."+inputfield[i1];
$("input[name='"+inpu+"']").val(str);
}else{
$("input[name='"+inputfield[i1]+"']").val(str);
}
}else{
if(inputs.length>1){
var inpu = inputs[i1]+"."+inputfield[i1];
$("input[name='"+inpu+"']").val("");
}else{
$("input[name='"+inputfield[i1]+"']").val("");
}
}
}
}else{
//对应数据库字段为空的情况下并且字典CODE传入一个值时,根据表单中字典TEXT的值从popup中来取值
var str = "";
$.each( selected, function(i, n){
if (i==0)
str+= n[inputfield];
else
str+= ","+n[inputfield];
});
var inputname = $(pobj).attr("name");
var inputs = inputname.split(".");
if(str.indexOf("undefined")==-1){
if(inputs.length>1){

var inpu = inputs[0]+"."+inputfield[i1];

$("input[name='"+inpu+"']").val(str);
}else{
$("input[name='"+inputfield+"']").val(str);
}
}else{
if(inputs.length>1){

var inpu = inputs[0]+"."+inputfield[i1];

$("input[name='"+inpu+"']").val("");
}else{
$("input[name='"+inputfield+"']").val("");
}
}
}
}
return true;
}

},
cancelVal: $.i18n.prop('dialog.close'),
cancel: true // 为true等价于function(){}
});
}else{
$.dialog({
content: "url:cgReportController.do?popup&id="+pcode,
zIndex: getzIndex(),
lock : true,
title:$.i18n.prop('common.select'),
800,
height: 400,
parent:windowapi,
cache:false,
ok: function(){
iframe = this.iframe.contentWindow;
var selected = iframe.getSelectRows();
if (selected == '' || selected == null ){
alert($.i18n.prop('common.select.please'));
return false;
}else {
//对应数据库字段不为空的情况下,根据表单中字典TEXT的值来取popup的值
if(tablefield != "" && tablefield != null){
var fields = tablefield.split(",");
var inputfield = inputnames.split(",");
for(var i1=0;i1<fields.length;i1++){
var str = "";
$.each( selected, function(i, n){
if (i==0)
str+= n[fields[i1]];
else{
str+= ",";
str+=n[fields[i1]];
}
});
var inputname = $(pobj).attr("name");
var inputs = inputname.split(".");
//判断传入的this格式是否为 "AA[#index#].aa"的形式
if(str.indexOf("undefined")==-1){
if(inputs.length>1){
var inpu = inputs[0]+"."+inputfield[i1];
$("input[name='"+inpu+"']").val(str);
}else{
// $("input[name='"+inputfield[i1]+"']").val(str);
                  //*****************************************************************************************************************
$("input[name='"+inputfield[i1]+"']").val(str).change();//回显完调用元素的onchange事件
                  
//*****************************************************************************************************************
                            }
}else{
if(inputs.length>1){
var inpu = inputs[0]+"."+inputfield[i1];
$("input[name='"+inpu+"']").val("");
}else{
$("input[name='"+inputfield[i1]+"']").val("");
}
}
}
}else{
//对应数据库字段为空的情况下并且字典CODE传入多个值时,根据表单中字典CODE的值从popup中来取值
var inputfield = inputnames.split(",");
if(inputfield.length>1){
for(var i1=0;i1<inputfield.length;i1++){
var str = "";
$.each( selected, function(i, n){
if (i==0)
str+= n[inputfield[i1]];
else{
str+= ",";
str+=n[inputfield[i1]];
}
});
var inputname = $(pobj).attr("name");
var inputs = inputname.split(".");
if(str.indexOf("undefined")==-1){
if(inputs.length>1){
var inpu = inputs[i1]+"."+inputfield[i1];
$("input[name='"+inpu+"']").val(str);
}else{
$("input[name='"+inputfield[i1]+"']").val(str);
}
}else{
if(inputs.length>1){
var inpu = inputs[i1]+"."+inputfield[i1];
$("input[name='"+inpu+"']").val("");
}else{
$("input[name='"+inputfield[i1]+"']").val("");
}
}
}
}else{
//对应数据库字段为空的情况下并且字典CODE传入一个值时,根据表单中字典TEXT的值从popup中来取值
var str = "";
$.each( selected, function(i, n){
if (i==0)
str+= n[inputfield];
else
str+= ","+n[inputfield];
});
var inputname = $(pobj).attr("name");
var inputs = inputname.split(".");
if(str.indexOf("undefined")==-1){
if(inputs.length>1){
var inpu = inputs[i1]+"."+inputfield[i1];
$("input[name='"+inpu+"']").val(str);
}else{
$("input[name='"+inputfield+"']").val(str);
}
}else{
if(inputs.length>1){
var inpu = inputs[i1]+"."+inputfield[i1];
$("input[name='"+inpu+"']").val("");
}else{
$("input[name='"+inputfield+"']").val("");
}
}
}
}
return true;
}

},
cancelVal: $.i18n.prop('dialog.close'),
cancel: true // 为true等价于function(){}
});
}
}

第二步:
  
找到使用popup的id元素,这里是appIds,添加onchange事件
<input type="hidden" id="appIds" name="appIds" onchange="popupCallBack();"/>
<input id="ai" readonly placeholder="请点击后选择" name="ai" style=" 85%" type="text" class="form-control" datatype="*" ignore="checked" onclick="popupClick(this,'id,name','appIds,ai','app_id')"/>

第三步:
  js代码:
//popup选择应用后触发
function popupCallBack() {
  //拿到popup选择完毕后回显的id
  var appIdtemp=$("#appIds").val();
//写自己的业务逻辑

}
 
原文地址:https://www.cnblogs.com/zou-rong/p/11691880.html