123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506 |
- var wsTree,
- menu,
- menu_root,
- wsHeight,
- varHeight,
- varTree,
- dialog,
- varStruTree,
- _seq = 1;// 当前页面的ID随机种子
-
- $(function() {
- // 布局
- $("#webLayout").ligerLayout({
- leftWidth : 350,
- height : '100%',
- allowLeftResize : false
- });
- // 流程变量树
- varHeight = $('#varLayout').height();
- loadVarTree();
-
- //为选择绑定类型的下拉框设置处理
- $('.table-detail').delegate("select[name=bindingType]","change",function() {
- var table = $(this).closest("table");
- $('tr[bingdingType]',table).hide();
- $('tr[bingdingType=' + $(this).val() + ']',table).show('fast');
- });
- $("#varTree").height(varHeight - 20);
- // 保存
- $("#dataFormSave").click(function(){saveWebserviceSet();});
- //如果数据库中已有该节点的映射记录,则解析到界面上
- if(bpmNodeWebServiceDocument)
- parseNodeWebservice(bpmNodeWebServiceDocument);
-
- $("#add_custom").click(function(){
- if(dialog==null){
- dialog = $.ligerDialog.open({title:'添加自定义参数',target:$("#custom_param_div"),width:400,height:250,buttons:
- [ {text : '确定',onclick: updateCustomParam},
- {text : '取消',onclick: function (item, dialog) {
- dialog.hide();
- }
- }]});
- }
- dialog.show();
- });
- });
- function updateCustomParam(item, dialog){
- var parent = $("#custom_param_div"),
- id = $("input[name='id']",parent).val(),
- name = $("input[name='name']",parent).val(),
- paramType = $("select[name='paramType']",parent).val(),
- description = $("input[name='description']",parent).val();
-
- if(!name){
- $.ligerDialog.warn('提示信息','参数名称不能为空');
- }
- var newNode = {id:id,name:name,paramType:paramType,description:description};
- newNode = varStruTree.addNodes(null, newNode);
- dialog.hide();
- }
- function getCustomParam(){
- var customParams = varStruTree.getNodes(),
- json = [];
-
- for(var i=0,c;c=customParams[i++];){
- json.push({id:c.id,name:c.name,setid:c.setid,paramType:c.paramType,description:c.description});
- }
- if(json && json.length > 0){
- return JSON2.stringify(json);
- }
- else{
- return "";
- }
- };
- //加载变量树
- function loadVarTree(){
- var setting = {
- async: {enable: false},
- data: {
- key:{name:"name"}
- },
- view: {
- selectedMulti: false
- },
- edit: {
- drag: {
- prev: true,inner: true,next: true,isMove:true
- },
- enable: true,
- showRemoveBtn: false,
- showRenameBtn: false
- }
- };
- var url=__ctx + "/platform/bpmCommonWsSet/bpmCommonWsSet/getWsParams.ht";
- var params={setId:bpmNodeWebServiceSetId};
- $.post(url,params,function(result){
- var json = eval('(' + result + ')');
- varStruTree=$.fn.zTree.init($("#varTree"), setting,json);
- varStruTree.expandAll(true);
-
- //拖拽变量树上的字段到输入、输出字段上
- $(".drag-span").dragspan({buddy : 'varTree',treeDropHandler:function(t,n){
- t = $(t);
- t.text(n.name);
- t.attr("varId",n.id);
- t.closest("tr").next().find("td").html(n.paramType);
- }});
- });
- };
- //数据库中已经有设置的记录了,此时需要回显到页面
- function parseNodeWebservice(v){
- var v = eval("("+v+")");
- addMethodNode(v,true);
- };
- //保存的处理
- function saveWebserviceSet(){
- var obj = {},
- me = $("table[zone=method]");
- if(!me)return;
- var methodInfo = me.data("methodInfo"),
- inputTable = $(".table-detail[zone=binding]"),
- alias = $("input[name='alias']",me).val();
-
- if(!alias){
- $.ligerDialog.warn('WS调用别名不能为空');
- return;
- }
-
- if(methodInfo){
- obj.inputParams = methodInfo.inputParams.children;
- }
- obj.url = $("input[var=invokeUrl]",me).val();
- 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();
- if(!param.name)continue;
- 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);
- }
- var customParams = getCustomParam(),
- wsdlUrl = $("#wsdlTxt").val();
-
- obj = JSON2.stringify(obj);
- var url = __ctx + "/platform/bpmCommonWsSet/bpmCommonWsSet/save.ht";
-
- var setObj = {};
- setObj.id = bpmNodeWebServiceSetId;
- setObj.alias = alias;
- setObj.wsdlUrl = wsdlUrl;
- setObj.document = obj;
- setObj = JSON2.stringify(setObj);
- $.post(url,{setObj:setObj,customParams:customParams},function(d){
- var result = eval("("+d+")");
- if(result.result)
- $.ligerDialog.success(result.message,"提示信息",function(){
- this.location.href = "list.ht";
- });
- else
- $.ligerDialog.error(result.message,"出错了");
- });
- };
- // 添加
- 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);
- }
- }
- };
-
- $.ligerDialog.waitting('正在加载中,请稍候...');
-
- $.ajax({
- type : "POST",
- url : __ctx + "/platform/bpm/bpmNodeWebService/get.ht",
- data : params,
- dataType : "json",
- success : function(result) {
- $.ligerDialog.closeWaitting();
- var json = eval('(' + result + ')');
- if (!json.success) {
- $.ligerDialog.warn(json.msg,"提示信息");
- return false;
- }
- var operatorField = $("table[zone='method']");// 深度克隆
- $(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++));
- var inputTreeEdit = $("[var=inputTreeEdit]", operatorField);
- // 对应的编辑处理div
- inputTreeEdit.attr("id",$inputTreeUl.attr("id") + "-edit");
- var inputParamsTree = $.fn.zTree.init($inputTreeUl, setting,json.inputParams);
- // 展开树
- inputParamsTree.expandAll(true);
- setTimeout(function(){
- //是否深度解析(当从数据库中取出有映射设置时,解析出来显示在界面上)
- if(depParse){
- var inputs = t.inputs;
- //解析输入参数绑定
- for(var i=0,c;c=inputs[i++];){
- cloneBindingTable(c,inputTreeEdit,1);
- }
- }
- },200);
- },
- error : function(msg) {
- $.ligerDialog.closeWaitting();
- $.ligerDialog.error("出错了!","提示信息");
- return;
- }
- });
- };
- function rep_list(t){
- if(!t)return t;
- return t.replace(/[\{|\}]/g,'_');
- };
- //获取参数名的全路径
- 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 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) {
- var fullPath = getFullPath(node);
- return ( fullPath && fullPath == t.fullpath);
- };
- 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) {
- $.ligerDialog.warn("还没有填写webService地址!","提示信息");
- return;
- }
- wsHeight = $('#wsLayout').height();
- $("#treeReFresh").click(function() {
- loadWsTree();
- });
- $("#treeExpand").click(function() {
- wsTree.expandAll(true);
- });
- $("#treeCollapse").click(function() {
- wsTree.expandAll(false);
- });
- // 加载树
- 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();
- }
- });
- }
|