123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494 |
- var wsTree,
- menu,
- menu_root,
- wsHeight,
- varHeight,
- varTree,
- _seq = 1;// 当前页面的ID随机种子
-
- $(function() {
- // 布局
- $("#webLayout").ligerLayout({
- leftWidth : 350,
- height : '100%',
- allowLeftResize : false
- });
- // wsdl查询框
- $('#wsdlTxt').bind('focus', function(event) {
- var defaultVal = '请输入地址查询';
- $('#wsdlTxt')[0].defaultValue = defaultVal;
- if($('#wsdlTxt').val()==defaultVal)
- $('#wsdlTxt').val('');
- }).bind('blur', function() {
- var txtValue = $('#wsdlTxt').val();
- if ($.trim(txtValue).length < 1) {
- $('#wsdlTxt').val($('#wsdlTxt')[0].defaultValue);
- }
- });
- // 流程变量树
- varHeight = $('#varLayout').height();
- loadVarTree();
- //拖拽变量树上的字段到输入、输出字段上
- $(".drag-span").dragspan({buddy : 'varTree',treeDropHandler:function(t,n){
- t = $(t);
- t.text(n.varKey);
- t.attr("varId",n.id);
- t.closest("tr").next().find("td").html(n.type);
- }});
- //为选择绑定类型的下拉框设置处理
- $('.table-detail').delegate("select[name=bindingType]","change",function() {
- var table = $(this).closest("table");
- $('tr[bingdingType]',table).hide();
- $('tr[bingdingType=' + $(this).val() + ']',table).show('fast');
- });
- // 保存
- $("#dataFormSave").click(function(){saveWebserviceSet();});
- //如果数据库中已有该节点的映射记录,则解析到界面上
- if(bpmNodeWebServiceDocument)
- parseNodeWebservice(bpmNodeWebServiceDocument);
- });
- //加载变量树
- function loadVarTree(){
- var setting = {
- async: {enable: false},
- view: {
- selectedMulti: false
- },
- edit: {
- drag: {
- prev: true,inner: true,next: true,isMove:true
- },
- enable: true,
- showRemoveBtn: false,
- showRenameBtn: false
- }
- };
- var url=__ctx + "/platform/bpm/bpmDefVar/getTree.ht";
- var params={defId:defId};
- $.post(url,params,function(result){
- var json = eval('(' + result + ')');
- varStruTree=$.fn.zTree.init($("#varTree"), setting,json);
- varStruTree.expandAll(true);
- $("#varTree").height(varHeight-20);
- });
- };
- //数据库中已经有设置的记录了,此时需要回显到页面
- function parseNodeWebservice(v){
- var v = eval("("+v+")");
- for(var i=0,c;c=v[i++];){
- addMethodNode(c,true);
- }
- };
- //保存的处理
- function saveWebserviceSet(){
- var json = [];
- $("fieldset[zone=method]").each(function(){
- var me = $(this),
- methodInfo = me.data("methodInfo"),
- inputDiv = $("div[var=inputTreeEdit]",me),
- ouputDIv = $("div[var=outputTreeEdit]",me),
- inputTable = $(".table-detail[zone=binding]",inputDiv),
- outputTable = $(".table-detail[zone=binding]",ouputDIv)
- obj = {};
-
- if(methodInfo){
- obj.inputParams = methodInfo.inputParams.children;
- obj.outputParams = methodInfo.outputParams.children;
- }
- obj.url = $("input[var=invokeUrl]",me).val();
- if(!obj.url)return true;
- obj.serviceName = $("input[var=serviceName]",me).val();
- obj.soapaction = $("input[var=soapaction]",me).val();
- obj.method = $("td[var=method]",me).text();
- obj.namespace = $("td[var=namespace]",me).text();
- obj.inputs = [];
- //遍历所有的入参设定
- for(var i=0,c;c=inputTable[i++];){
- var param = {};
-
- param.name = $("span[var=name]",c).text();
- param.fullpath = $("input[var=fullpath]",c).val();
- param.soapType = $("td[var=type]",c).text();
- param.bindingType = $("select[name=bindingType]",c).val();
-
- var binding = $("[name='defValue" + param.bindingType +"']",c);
- param.bindingVal = binding.val()?binding.val():binding.text();
- param.bindingVal = param.bindingVal.jsonEscape();
- param.javaType = javaType = $("[name=javaType]",c).text();
- obj.inputs.push(param);
- }
- obj.outputs = [];
- //遍历所有的出参设定
- for(var i=0,c;c=outputTable[i++];){
- var param = {};
-
- param.name = $("span[var=name]",c).text();
- param.fullpath = $("input[var=fullpath]",c).val();
- param.soapType = $("td[var=type]",c).text();
- param.bindingType = $("select[name=bindingType]",c).val();
-
- var binding = $("[name='defValue" + param.bindingType +"']",c);
-
- param.bindingVal = binding.val()?binding.val():binding.text();
- param.bindingVal = param.bindingVal.jsonEscape();
- param.javaType = javaType = $("[name=javaType]",c).text();
- obj.outputs.push(param);
- }
- json.push(obj);
- });
- json = JSON2.stringify(json);
- var url = __ctx + "/platform/bpm/bpmNodeWebService/save.ht";
- $.post(url,{setId:bpmNodeWebServiceSetId,json:json,nodeId:nodeId,actDefId:actDefId},function(d){
- var result = eval("("+d+")");
- if(result.success)
- $.ligerDialog.success(result.msg,"提示信息",function(){
- window.close();
- });
- else
- $.ligerDialog.error(result.msg,"出错了");
- });
- };
- // 添加
- var addMethodNode = function(t,depParse) {
- var params = {
- wsdlUrl : t.url,
- nodeName : t.method,
- serviceName : t.serviceName
- };
- var setting = {
- view : {
- addDiyDom : function(treeId, treeNode) {
- var type = treeNode.type;
- var aObj = $("#" + treeNode.tId + "_a");
- aObj.append('<span style="margin-left:5px;">(' + type+ ')</span>');
- },
- selectedMulti : false
- },
- check : {
- enable : true,
- chkboxType : {
- "Y" : "",
- "N" : ""
- }
- },
- callback : {
- beforeCheck : function(treeId, treeNode) {
- if (!treeNode.type) {
- return true;
- }
- if (treeNode.checked) {
- if (confirm("是否取消当前参数[" + treeNode.name + "]的绑定配置?")) {
- var $div = $('#' + treeId + "-edit");
- if ($div.length < 1) {
- return;
- }
- $("#" + treeNode.name + "_" + rep_list(treeNode.type) +"-edit", $div).remove();
-
- return true;
- } else {
- return false;
- }
- }
- return true;
- },
- onCheck : function(event, treeId, treeNode) {// 选中事件
- var $div = $('#' + treeId + "-edit");
- if ($div.length < 1) {
- return;
- }
- if (!treeNode.type) {
- return;
- }
- if (treeNode.checked) {// 选中
- $('#' + treeNode.tId + '_a').click();
- } else {
- var $editTable = $("#" + treeNode.tId + "-edit", $div);
- $editTable.remove();
- }
- },
- onClick : function(event, treeId, treeNode) {// 单击事件
- // 没有选中,则不需要处理
- if (!treeNode.checked) {
- return;
- }
- var $div = $('#' + treeId + "-edit");
- cloneBindingTable(treeNode,$div);
- }
- }
- };
- $.ajax({
- type : "POST",
- url : __ctx + "/platform/bpm/bpmNodeWebService/get.ht",
- data : params,
- dataType : "json",
- success : function(result) {
- var json = eval('(' + result + ')');
- if (!json.success) {
- $.ligerDialog.warn(json.msg,"提示信息");
- return false;
- }
- var operatorField = $("#editField [zone=method]").clone(true, true);// 深度克隆
- $(operatorField).data("methodInfo",json);
- $("[var=wsdl]", operatorField).html(json.wsdl);
- $("[var=method]", operatorField).html(json.method);
- $("[var=namespace]", operatorField).html(json.namespace);
- $("[var=soapaction]", operatorField).val(json.soapaction);
- $("[var=invokeUrl]", operatorField).val(json.invokeUrl);
- $("[var=serviceName]",operatorField).val(params.serviceName);
- $("[var=del]", operatorField).unbind();// 删除所有事件
- $("[var=del]", operatorField).click(function(e) {
- $.ligerDialog.confirm("删除当前方法[" + json.method
- + "]?","提示信息", function(rtn) {
- if (rtn) {
- operatorField.fadeOut(500, function() {
- $(this).remove();
- });
- }
- });
- });
- var $inputTreeUl = $("[var=inputTree]", operatorField);
- $inputTreeUl.attr("id", "inputtree" + (_seq++));
- // 对应的编辑处理div
- $("[var=inputTreeEdit]", operatorField).attr("id",$inputTreeUl.attr("id") + "-edit");
- var inputParamsTree = $.fn.zTree.init($inputTreeUl, setting,json.inputParams);
- var $outputTreeUl = $("[var=outputTree]", operatorField);
- $outputTreeUl.attr("id", "outputtree" + (_seq++));
- // 对应的编辑处理div
- $("[var=outputTreeEdit]", operatorField).attr("id",$outputTreeUl.attr("id") + "-edit");
- var outputParamsTree = $.fn.zTree.init($outputTreeUl, setting,json.outputParams);
- operatorField.hide();
- $("#webservice").prepend(operatorField);
- operatorField.fadeIn();// 弄点效果提醒一下
- // 展开树
- inputParamsTree.expandAll(true);
- outputParamsTree.expandAll(true);
- setTimeout(function(){
- //是否深度解析(当从数据库中取出有映射设置时,解析出来显示在界面上)
- if(depParse){
- var inputs = t.inputs,
- outputs = t.outputs;
- //解析输入参数绑定
- for(var i=0,c;c=inputs[i++];){
- cloneBindingTable(c,$("[var=inputTreeEdit]", operatorField),1);
- }
- //解析输出参数绑定
- for(var i=0,c;c=outputs[i++];){
- cloneBindingTable(c,$("[var=outputTreeEdit]", operatorField),1);
- }
- }
- },200);
- },
- error : function(msg) {
- $.ligerDialog.error("出错了!","提示信息");
- return;
- }
- });
- };
- //获取参数名的全路径
- function getFullPath(node){
- if(node.fullpath)return node.fullpath;
- var level = node.level,
- pathAry = [node.name];
- while(level>1){
- node = node.getParentNode();
- level = node.level;
- pathAry.push(node.name);
- }
- var path,
- newPathAry = [];
- while(path=pathAry.pop()){
- newPathAry.push(path);
- }
- return newPathAry.join('.');
- };
- function rep_list(t){
- if(!t)return t;
- return t.replace(/[\{|\}]/g,'_');
- };
- //克隆绑定映射表
- function cloneBindingTable(t,d,depParse){
- if (d.length < 1) {
- return;
- }
- $('table', d).hide();// 所有table隐藏
- if (!t.type&&!t.soapType) {
- return;
- }
- var $editTable = $("#" + t.name + "_" + rep_list(t.type) +"-edit", d),
- divType = d.attr("var");
-
- if ($editTable.length < 1) {
- $editTable = $("#editField [zone=binding]").clone(true,true);// 深度克隆
- $('input[var=fullpath]', $editTable).val(getFullPath(t));
- $('span[var=name]', $editTable).text(t.name);
- //是否从数据库中取出的数据显示到界面上
- if(depParse){
- $('[var=type]', $editTable).html(t.soapType);
- $("select[name=bindingType]",$editTable).val(t.bindingType);
- $editTable.attr("id", t.name + "_" + rep_list(t.soapType) + "-edit");
- }
- else{
- $('[var=type]', $editTable).html(t.type);
- $editTable.attr("id", t.name + "_" + rep_list(t.type) + "-edit");
- }
- //如果是输出参数,则移除固定值的选项
- if("outputTreeEdit"==divType){
- $("a.tipinfo",$editTable).removeClass("hidden");
- $("select[name=bindingType]",$editTable).find("option").each(function(){
- if($(this).val()=="1")
- $(this).remove();
- });
- }
- d.append($editTable);
- $editTable.hide();
- }
- $editTable.fadeIn(function(){
- if(depParse){
- $("select[name=bindingType]",$editTable).trigger("change");
- setTimeout(function(){
- var bindingVal = $("[name='defValue"+t.bindingType+"']",$editTable);
- if(t.bindingType==1)
- bindingVal.val(t.bindingVal);
- else
- bindingVal.text(t.bindingVal.jsonUnescape());
- $("[name=javaType]",$editTable).text(t.javaType);
- var treeId = $("ul",d.siblings()).attr("id"),
- paramTree = $.fn.zTree.getZTreeObj(treeId);
-
- if(paramTree){
- var filter = function(node) {
- return (node.name == t.name && node.type == t.soapType);
- };
- var curNode =paramTree.getNodesByFilter(filter, true);
- if(curNode)
- paramTree.checkNode(curNode, true, true);
- }
- },200);
- }
- });
- };
- // 通过WSDL地址查找数据
- function getByWsdlUrl() {
- var wsdlUrl = $('#wsdlTxt').val();
- if ($.trim(wsdlUrl).length < 1 || $('#wsdlTxt')[0].defaultValue == wsdlUrl) {
- $.ligerDialog.warn("还没有填写webService地址!","提示信息");
- return;
- }
- wsHeight = $('#wsLayout').height();
- $("#treeReFresh").click(function() {
- loadWsTree();
- });
- $("#treeExpand").click(function() {
- wsTree.expandAll(true);
- });
- $("#treeCollapse").click(function() {
- wsTree.expandAll(false);
- });
- // 菜单
- // getMenu();
- // 加载树
- loadWsTree();
- $("#wsTree").height(wsHeight - 65);
- }
- // 加载webservice树
- function loadWsTree() {
- var setting = {
- data : {
- key : {
- name : "name",
- wsdlUrl : "wsdlUrl"
- }
- },
- view : {
- selectedMulti : false
- },
- callback : {
- onDblClick : zTreeOnDblClick
- }
- };
- $.ligerDialog.waitting('正在查询中,请稍候...');
- $.ajax({
- type : "POST",
- url : __ctx + "/platform/bpm/bpmNodeWebService/getTreeData.ht",
- data : {
- 'wsdlUrl' : $('#wsdlTxt').val()
- },
- dataType : "json",
- success : function(result) {
- $.ligerDialog.closeWaitting();
- var json = eval('(' + result + ')');
- wsTree = $.fn.zTree.init($("#wsTree"), setting, json);
- wsTree.expandAll(true);
- },
- error : function(msg) {
- $.ligerDialog.closeWaitting();
- $.ligerDialog.error("输入WebService地址是否错误或者链接异常,请检查!","提示信息");
- return;
- }
- });
- };
- /**
- * 双击webservice事件
- *
- * @param {}
- * e
- * @param {}
- * treeId
- * @param {}
- * treeNode
- */
- function zTreeOnDblClick(e, treeId, treeNode) {
- wsTree.selectNode(treeNode);
- if (treeNode.level == 0) {
- return;
- } else {
- if (wsTree == null) {
- $.ligerDialog.warn("请先查询出webservice的方法","提示信息");
- return;
- }
- var treeNode = getSelectNode();
- if (treeNode && treeNode.level == 0) {
- $.ligerDialog.warn("请选择webservice的方法","提示信息");
- return;
- }
- treeNode.serviceName = treeNode.getParentNode().name;
- treeNode.url = treeNode.getParentNode().wsdlUrl;
- treeNode.method = treeNode.name;
- addMethodNode(treeNode);
- }
- }
- // 选中的节点
- function getSelectNode() {
- wsTree = $.fn.zTree.getZTreeObj("wsTree");
- var nodes = wsTree.getSelectedNodes();
- return nodes[0];
- }
- // 关闭窗口
- function closeWin() {
- $.ligerDialog.confirm("是否关闭当前窗口?","提示信息", function(rtn) {
- if (rtn) {
- window.close();
- }
- });
- }
|