diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/fast.config.yml b/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/fast.config.yml index e547e258748c7060b4fe9e15d538330c7f3cbe12..0e89fe6bfbba1f6e4a63b8e3dd2b55e7ab01d849 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/fast.config.yml +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/fast.config.yml @@ -1,14 +1,20 @@ ## 网站配置 -#api: "/builder/" -api: "/api/" -enableEnv: false +api: "/builder/" +#api: "/api/" +enableEnv: true tree: main: - schemaType: resource -# schemaType: model - url: "resource/tree" +# schemaType: resource +# url: "resource/tree" + schemaType: model + url: "http://localhost:8210/builder/api/v1/engine/development/tree" second: schemaType: wkflmodel - url: "resource/tree" + url: "http://localhost:8210/builder/api/v1/engine/workflow/tree" +domain: + initApi: "http://localhost:8210/builder/api/v1/engine/moudles/funcs/json/" + saveApi: "http://localhost:8210/builder/api/v1/engine/design/map/" + fieldClassApi: "http://localhost:8210/builder/api/v1/engine/domainmodel/getFieldClass?fieldType=" + diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/index.html b/fast-develop-web/fast-develop-editor/src/fast-develop/src/index.html index 813bc1400278cd8bd2a9908ad85214e0e246bc58..3c83cdadf6950d1512dfa99c3b63a4dc1c1fe6c0 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/index.html +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/index.html @@ -508,12 +508,17 @@ { elem: "#resource", contentElem: '#fast-body', - enableRootPath:true, + enableRootPath:false, api: fast_config.tree.main.url, viewMode:'tabs', schemaType: fast_config.tree.main.schemaType, onClickListener: function(event, treeId, treeNode){ debugger + if(treeNode.data.type.value !=='moudle'){ + $('#run').attr("disabled",true); + }else{ + $('#run').removeAttr("disabled"); + } } } ], diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design.js index 0b0948669da877633070d68fc9812effc9dd8ccc..fd58503315612cc57fb3def91e35f77e1eca63e8 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design.js @@ -1,4 +1,4 @@ -layui.define(['element', 'api', 'fast_config', 'domain_design_business', 'domain_design_default', 'amis'], function(exports) { +layui.define(['element', 'api', 'fast_config', 'domain_design_business', 'domain_design_default', 'amis', 'resource_content'], function(exports) { "use strict"; /** @@ -10,6 +10,7 @@ layui.define(['element', 'api', 'fast_config', 'domain_design_business', 'domain fast_config = layui.fast_config, domain_design_business = layui.domain_design_business, domain_design_default = layui.domain_design_default, + resource_content = layui.resource_content amis = layui.amis ; @@ -44,7 +45,7 @@ layui.define(['element', 'api', 'fast_config', 'domain_design_business', 'domain var optionApi = { enableRootPath:false, type: "POST", - url: fast_config.domain.saveApi+option.data.id, + url: fast_config.domain.saveApi+option.treeNode.id, data: JSON.stringify(formObject), contentType : 'application/json;charset=UTF-8', success: function(data){ @@ -61,7 +62,7 @@ layui.define(['element', 'api', 'fast_config', 'domain_design_business', 'domain var optionApi = { enableRootPath:false, type: "GET", - url: fast_config.domain.initApi+option.data.id, + url: fast_config.domain.initApi+option.treeNode.id, success: function(data){ if(typeof data !== 'object' ){ modelJson = JSON.parse(data); @@ -141,11 +142,32 @@ layui.define(['element', 'api', 'fast_config', 'domain_design_business', 'domain elem: opt.elem, data: opt.data, treeNode: opt.treeNode, + viewMode: opt.viewMode, + pearBody : opt.pearBody, + amisData: opt.amisData, grid_domain_design_business: null, grid_domain_design_default: null, - amisObj: null } + + resource_content.render({ + elem: option.elem, + treeNode: option.treeNode, + viewMode: option.viewMode, + pearBody : option.pearBody, + amisData: option.amisData, + mode: 'function', + function: (tabId) => { + option.elem = tabId; + render(option); + } + }) + + return new domain_design(option); + } + + function render(option){ + appendElem(option); var id = option.treeNode.tId; var modelJson = getModelData(option); @@ -652,8 +674,7 @@ layui.define(['element', 'api', 'fast_config', 'domain_design_business', 'domain }, }) - return new domain_design(option); - } + } exports(MOD_NAME, new domain_design()); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design_business.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design_business.js index eea6ebe70e8a1b6356aab840d5ceac5227c47dc5..4981741c4d86a70f29be1dd186991f8f97585007 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design_business.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design_business.js @@ -7,7 +7,8 @@ layui.define(['element', 'api', 'fast_config'], function(exports) { var MOD_NAME = 'domain_design_business', $ = layui.jquery, api = layui.api, - fast_config = layui.fast_config + fast_config = layui.fast_config, + rowIndex ; var domain_design_business = function(opt) { @@ -117,6 +118,11 @@ layui.define(['element', 'api', 'fast_config'], function(exports) { if (r != null) return unescape(r[2]); return null; //返回参数值 } + //called by delete button. + function deleteRow() { + grid.deleteRow({ rowIndx: rowIndex[0].r1 }); + } + var types = [ {"id":"basic","value":"basic","name": "基础类型"}, {"id":"dd","value":"basic", "name": "数据字典"}, @@ -127,7 +133,7 @@ layui.define(['element', 'api', 'fast_config'], function(exports) { if(option.initData){ data = option.initData; for(var field of data){ - if(field["validationTypeList"].length>0){ + if(field["validationTypeList"]!= undefined && field["validationTypeList"].length>0){ for(var vali of field["validationTypeList"]){ field[vali] = true; } @@ -173,6 +179,7 @@ layui.define(['element', 'api', 'fast_config'], function(exports) { virtualX: true, rowBorders: false, trackModel: { on: true }, //to turn on the track changes. + selectionModel: { type: 'row' }, toolbar: { items: [ @@ -185,12 +192,28 @@ layui.define(['element', 'api', 'fast_config'], function(exports) { grid.goToPage({ rowIndx: rowIndx }); grid.editFirstCellInRow({ rowIndx: rowIndx }); } + }, + { type: 'button', icon: 'ui-icon-close', label: '删除', listener: function () { + debugger + if(rowIndex !=null){ + window.confirm("确认删除?"); + grid.deleteRow({ rowIndx: rowIndex[0].r1 }); + rowIndex = null; + }else{ + window.confirm("请先选择行!"); + } + } } ] }, scrollModel: { autoFit: true }, + selectChange: function (evt, ui) { + console.log('selectChange', ui); + var selected = [],address = this.selection().address(); + rowIndex = address; + }, swipeModel: { on: false }, editor: { select: true diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design_default.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design_default.js index a96694c605b79e9775c016f68dda90d6639ef733..31a7b1db2d090bbbf464011205c5b9e95b525054 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design_default.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/domain/domain_design_default.js @@ -195,30 +195,30 @@ layui.define(['element', 'api', 'fast_config'], function(exports) { create: function(){ this.widget().pqTooltip(); }, - // dataModel:{data: data}, - dataModel:{ - location: "remote", - dataType: "JSON", - method: "GET", - recIndx: "id", - url: fast_config.api + "/meta/" + metaName, - getData:function( dataJSON, textStatus, jqXHR ){ - return { curPage: dataJSON.page.number, totalRecords: dataJSON.page.size, data: dataJSON._embedded.list }; - }, - beforeSend: function( jqXHR, settings ){ - var url = settings.url; - var pq_curpage = getUrlParam(url, 'pq_curpage'); - var pq_rpp = getUrlParam(url, 'pq_rpp'); - if(pq_curpage){ - url += '&page=' + pq_curpage; - } - if(pq_rpp){ - url += '&size=' + pq_rpp; - } - - settings.url = url; - } - }, + dataModel:{data: data}, + // dataModel:{ + // location: "remote", + // dataType: "JSON", + // method: "GET", + // recIndx: "id", + // url: fast_config.api + "/meta/" + metaName, + // getData:function( dataJSON, textStatus, jqXHR ){ + // return { curPage: dataJSON.page.number, totalRecords: dataJSON.page.size, data: dataJSON._embedded.list }; + // }, + // beforeSend: function( jqXHR, settings ){ + // var url = settings.url; + // var pq_curpage = getUrlParam(url, 'pq_curpage'); + // var pq_rpp = getUrlParam(url, 'pq_rpp'); + // if(pq_curpage){ + // url += '&page=' + pq_curpage; + // } + // if(pq_rpp){ + // url += '&size=' + pq_rpp; + // } + // + // settings.url = url; + // } + // }, }; grid = pq.grid( option.elem, obj ); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/publish.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/publish.js index b2ee48c8d0fd167c9a8eb626fb30a8bbc574d01d..aa857dda2dc19b1efdd8a88e30e5434891b88713 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/publish.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/publish.js @@ -1,4 +1,4 @@ -layui.define(['element', 'api'], function(exports) { +layui.define(['element', 'api','utils'], function(exports) { "use strict"; /** @@ -6,6 +6,7 @@ layui.define(['element', 'api'], function(exports) { * */ var MOD_NAME = 'publish', $ = layui.jquery, + utils = layui.utils, api = layui.api ; @@ -16,7 +17,7 @@ layui.define(['element', 'api'], function(exports) { function addDom(option){ var dom = `
  • - +
  • ` $(option.elem).append(dom); @@ -32,19 +33,21 @@ layui.define(['element', 'api'], function(exports) { api: opt.api, } - addDom(option); $("#run").click(function(){ - api.get({ + let treeNode = utils.getTreeNode(); + let pushApi = utils.stringformat(option.api,treeNode); + api.post({ enableRootPath: true, + url: pushApi, // url: "meta/configuration/reload", async: false, success: function(data){ layer.msg('操作成功'); } }); - + }); return new publish(option); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_content.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_content.js index d54c136d2e1287311e5aceb178cc798547a8b25a..5c8f48ca94ed5b92f47e214a76a9d2e0cf9fdd03 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_content.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_content.js @@ -187,7 +187,8 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'ztree', 'utils'], } }) }else if(contentPanel.mode === 'iframe'){ - var iframeUrl =contentPanel.url.format(option.amisData); + // var iframeUrl =contentPanel.url.format(option.amisData); + var iframeUrl = utils.stringformat(contentPanel.url,option.amisData); showIframe(iframeUrl,option.elem); } } diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_properties.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_properties.js index 6f7d1ae07d0035c8d9f4a68d75ebea5e1aea0460..f4b54ecc87328a28f14046ccfadabc58bcc1d90b 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_properties.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_properties.js @@ -183,7 +183,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'form'], function( schema: amisSchema, schemaApi: amisSchemaApi, props:{ - data:option.treeNode.data + data:option.treeNode } }) }else if(propertiesPanel.mode === 'iframe'){ diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_tree.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_tree.js index 1dbccec86c8975ae45b5a2ab9577e80fe77cd8c1..db3cdf9dab0be56fdf7b4a4e891cc6d62c6e3c0a 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_tree.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/resource_tree.js @@ -1,33 +1,33 @@ -layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', 'open_domain', 'domain_design', 'edropdown', 'form', 'resource_content', 'ztree', 'resource_properties','fast_config', 'tab'], function(exports) { +layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', 'open_domain', 'domain_design', 'edropdown', 'form', 'resource_content', 'ztree', 'resource_properties','fast_config', 'tab', 'utils'], function(exports) { "use strict"; - String.prototype.format = function() { - if(arguments.length == 0) return this; - var obj = getGlobalEnv(arguments[0]); - var s = this; - // for(var key in obj) { - // var value = JSON.stringify(obj[key]); - // if(typeof obj[key] === 'object'){ - // s = s.replace(new RegExp("\"\\$\\{" + key + "\\}\"", "g"), value); - // }else{ - // s = s.replace(new RegExp("\\$\\{" + key + "\\}", "g"), obj[key]); - // } - // } - for(var key in obj) { - var value = JSON.stringify(obj[key]); - if( typeof(obj[key])=='object'){ - s = s.replace(new RegExp("\"\\$\\{" + key + "\\}\"", "g"), value); - - var sobj = obj[key]; - for(var sk in sobj){ - s = s.replace(new RegExp("\\$\\{" + key+"\\."+sk + "\\}", "g"), sobj[sk]); - } - } - s = s.replace(new RegExp("\\$\\{" + key + "\\}", "g"), obj[key]); - } - return s; - } + // String.prototype.format = function() { + // if(arguments.length == 0) return this; + // var obj = utils.getGlobalEnv(arguments[0]); + // var s = this; + // // for(var key in obj) { + // // var value = JSON.stringify(obj[key]); + // // if(typeof obj[key] === 'object'){ + // // s = s.replace(new RegExp("\"\\$\\{" + key + "\\}\"", "g"), value); + // // }else{ + // // s = s.replace(new RegExp("\\$\\{" + key + "\\}", "g"), obj[key]); + // // } + // // } + // for(var key in obj) { + // var value = JSON.stringify(obj[key]); + // if( typeof(obj[key])=='object'){ + // s = s.replace(new RegExp("\"\\$\\{" + key + "\\}\"", "g"), value); + // + // var sobj = obj[key]; + // for(var sk in sobj){ + // s = s.replace(new RegExp("\\$\\{" + key+"\\."+sk + "\\}", "g"), sobj[sk]); + // } + // } + // s = s.replace(new RegExp("\\$\\{" + key + "\\}", "g"), obj[key]); + // } + // return s; + // } function getMetaPath(value){ @@ -225,25 +225,25 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' treeNode: treeNode, viewMode:viewMode, pearBody : pearBody, - amisData: getGlobalEnv(treeNode.data) + amisData: utils.getGlobalEnv(treeNode.data) }) } - - function designDoamin(data, target) { - resetContent(contentElem) - - var id = target.id + "_" + contextmenuData.tId; - var title = target.title + "_" + contextmenuData.title - var elem = renderContentPanel(id, title,data); + var treeNode = contextmenuData; + var id = target.id + '_' + treeNode.tId; - domain_design.render({ - elem: getTabElem(target.id), - data:data, - treeNode: contextmenuData - }) + // if( !contentDomIsExist(id)){ + domain_design.render({ + elem: id, + data:data, + treeNode: treeNode, + viewMode: viewMode, + pearBody : pearBody, + amisData: utils.getGlobalEnv(treeNode.data) + }) + // } } @@ -371,6 +371,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' viewMode, schemaType, listener = layui.listener, + utils = layui.utils, fast_config = layui.fast_config, //监听器 @@ -427,6 +428,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' function zTreeOnRightClick(event, treeId, treeNode) { + debugger var treeObj = $.fn.zTree.getZTreeObj(treeId) schemaType = treeObj.setting.view.schemaType; // 将右击事件的节点数据绑定到以下变量中 @@ -450,7 +452,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' // area:['20%','200px'], title: dialog.title, offset: '30%', - content: "
    ", + content: "
    ", shade: 0.3, btn: ['提交', '取消'] ,btn1: function(index, layero){ @@ -479,7 +481,8 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' function formatApiOptionData(optionApi, execData){ - var data = JSON.parse(JSON.stringify(optionApi.data).format(execData)); + // var data = JSON.parse(JSON.stringify(optionApi.data).format(execData)); + var data = JSON.parse(utils.stringformat(JSON.stringify(optionApi.data),execData)); if(data['&'] === '$$'){ $.extend(data, execData["mid"]); delete data['&']; @@ -490,7 +493,8 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' function formatUrl(url, contextData){ //url替换 - return url.format(contextData); + // return url.format(contextData); + return utils.stringformat(url,contextData); } function beforeExecHandle(optionApi){ @@ -502,37 +506,40 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' /** * 获取服务环境变量 + * + * 使用utils 方法 */ - function getGlobalEnv(amisData){ - if(fast_config.enableEnv){ - var env = schemas['env']; - if(!env){ - api.get({ - enableRootPath: true, - url: "api/v1/env/getAppEnvironment?appId="+amisData.mid.tenantId, - // url: "schemas/" + type, - async: false, - success: function(data){ - schema['env'] = data; - amisData = {...amisData,...data} - } - }); - }else{ - amisData = {...amisData,...env} - } - } - return amisData; - } + // function getGlobalEnv(amisData){ + // if(fast_config.enableEnv){ + // var env = schemas['env']; + // if(!env){ + // api.get({ + // enableRootPath: true, + // url: "api/v1/env/getAppEnvironment?appId="+amisData.mid.tenantId, + // // url: "schemas/" + type, + // async: false, + // success: function(data){ + // schema['env'] = data; + // amisData = {...amisData,...data} + // } + // }); + // }else{ + // amisData = {...amisData,...env} + // } + // } + // return amisData; + // } function execApi(apiOpt){ var {optionApi, execData, success} = apiOpt - var data = contextmenuData.data; + var data = contextmenuData; + // var data = contextmenuData.data; // var data = getGlobalEnv(contextmenuData.data); if(typeof optionApi === 'object'){ //模版数据替换 var apiOption = optionApi; //url替换 - apiOption.url = formatUrl(apiOption.url, data); + apiOption.url = utils.stringformat(apiOption.url, data); apiOption.data = formatApiOptionData(optionApi, execData); apiOption.success = success; @@ -540,7 +547,8 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' beforeExecHandle(optionApi); api.exec(apiOption); }else{ - optionApi = optionApi.format(data) + optionApi = utils.stringformat(optionApi,data) + // optionApi = optionApi.format(data) // var optionApiProps = optionApi.split(":"); // var method, apiUrl; // if(optionApiProps.length > 1){ @@ -642,7 +650,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' treeNode: treeNode, viewMode:viewMode, schemaType:schemaType, - amisData: getGlobalEnv(treeNode.data), + amisData: utils.getGlobalEnv(treeNode.data), pearBody : pearBody }) } @@ -716,7 +724,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' debugger // var data = contextmenuData.data; - var data = getGlobalEnv(contextmenuData.data); + var data = utils.getGlobalEnv(contextmenuData.data); if(obj.mode && obj.mode === 'listener'){ var id = obj.id; var listenerName; diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/utils.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/utils.js index c3de7b606a50dd970b618ace6e9d667e7755af7b..d74fe1b017d2aa565008b93f2e7c919d08681a9e 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/utils.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/utils.js @@ -9,16 +9,39 @@ layui.define(['element','fast_config','api','schema'], function(exports) { fast_config = layui.fast_config, api = layui.api, schema = layui.schema, - $ = layui.jquery; + $ = layui.jquery, + treeNodeData + ; - + String.prototype.format = function() { + if(arguments.length == 0) return this; + var obj = utils.getGlobalEnv(arguments[0]); + var s = this; + for(var key in obj) { + var value = JSON.stringify(obj[key]); + if( typeof(obj[key])=='object'){ + s = s.replace(new RegExp("\"\\$\\{" + key + "\\}\"", "g"), value); + var sobj = obj[key]; + for(var sk in sobj){ + s = s.replace(new RegExp("\\$\\{" + key+"\\."+sk + "\\}", "g"), sobj[sk]); + } + } + s = s.replace(new RegExp("\\$\\{" + key + "\\}", "g"), obj[key]); + } + return s; + } var utils = { /** * 获取服务环境变量 */ - getGlobalEnv:function (amisData){ + getGlobalEnv:function (obj){ + var amisData = obj; + if(obj.data != undefined){ + amisData = obj.data; + } + treeNodeData = amisData; if(fast_config.enableEnv){ var env = schemas['env']; if(!env){ @@ -36,6 +59,7 @@ layui.define(['element','fast_config','api','schema'], function(exports) { amisData = {...amisData,...env} } } + return amisData; }, contentDomIsExist : function(elem){ @@ -44,6 +68,12 @@ layui.define(['element','fast_config','api','schema'], function(exports) { bool = true } return bool + }, + stringformat: function (str,data){ + return str.format(data); + }, + getTreeNode : function (){ + return treeNodeData; } }