diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/compoment/@ztree/ztree_v3/css/zTreeStyle/img/icon.png b/fast-develop-web/fast-develop-editor/src/fast-develop/src/compoment/@ztree/ztree_v3/css/zTreeStyle/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..053f8a8efa214130832cb604884d5dde04b19a8b Binary files /dev/null and b/fast-develop-web/fast-develop-editor/src/fast-develop/src/compoment/@ztree/ztree_v3/css/zTreeStyle/img/icon.png differ diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/compoment/@ztree/ztree_v3/js/jquery.ztree.extend.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/compoment/@ztree/ztree_v3/js/jquery.ztree.extend.js index 8b37ed20455dd581e5f35dde138c241107b828a5..3b614b2d31aba3ae1b2ad4f39f58e530b0ab8fd9 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/compoment/@ztree/ztree_v3/js/jquery.ztree.extend.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/compoment/@ztree/ztree_v3/js/jquery.ztree.extend.js @@ -77,7 +77,8 @@ txtSelectedEnable: false, onKeyboard: false, theme: 'default', - viewMode: 'body' + viewMode: 'body', + schemaType:'' }, data: { key: { @@ -1135,7 +1136,7 @@ }, selectedNextNode(treeObj,node,setting,event){ // 选择下一个节点 // view.removeAllSelectNodes(setting.treeId) - if(node.children){ + if(node.children && node.children.length){ var nextNode = node.children[0] }else { var nextNode = node.getNextNode(); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/fastDevelop.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/fastDevelop.js index bf2a02c3e326575640b63800abbc27190e73dd14..2e89e35bdc6ff205d87429b5380a0205b1e3ce3f 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/fastDevelop.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/fastDevelop.js @@ -1,3 +1,4 @@ + window.rootPath = (function (src) { src = document.currentScript ? document.currentScript.src @@ -26,7 +27,8 @@ layui.config({ fast_config: "fast_config", // 配置 yaml: "yaml", // 配置 amis: "amis", - tab:'tab' // tabs视图 + tab:'tab', // tabs视图 + utils:'utils' }).use(['layer', 'theme'], function () { layui.theme.changeTheme(window, false); }); \ No newline at end of file diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/editor.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/editor.js index b17aa01746435d2fbc35c4c4f86e56a6a4cee65d..e05206dc8674cd4544d1584616739cd8eea49032 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/editor.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/editor.js @@ -80,24 +80,25 @@ layui.define(['element', 'edropdown', 'layer', 'util', 'form', 'fast_config', 'a appendElem(option); + resource_tree.render({ elem: "#resource", contentElem: contentElem, - enableRootPath:true, + enableRootPath:false, api: fast_config.tree.main.url, viewMode:'tabs', schemaType: fast_config.tree.main.schemaType }); - // - // resource_tree.render({ - // elem: "#workflowResource", - // contentElem: contentElem, - // enableRootPath:false, - // api: fast_config.tree.second.url, - // viewMode:'tabs', - // schemaType: fast_config.tree.second.schemaType - // }); - // + + resource_tree.render({ + elem: "#workflowResource", + contentElem: contentElem, + enableRootPath:false, + api: fast_config.tree.second.url, + viewMode:'tabs', + schemaType: fast_config.tree.second.schemaType + }); + return new editor(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 3f5c2715c695760c6c51d7b38ea9697385df7905..42993929aaeafe0eed48ab1973e9234d42c6a49e 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 @@ -1,4 +1,4 @@ -layui.define(['element', 'api', 'amis', 'schema', 'listener'], function(exports) { +layui.define(['element', 'api', 'amis', 'schema', 'listener', 'ztree'], function(exports) { "use strict"; /** @@ -10,6 +10,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener'], function(exports) amis = layui.amis, schema = layui.schema, listeners = layui.listener, + ztree = layui.ztree, metaType = null, schemaType=null ; @@ -76,7 +77,10 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener'], function(exports) amisData: opt.amisData, schemaType:opt.schemaType } - + // if(!option.schemaType){ + // var treeObj = $.fn.zTree.getZTreeObj(option.elem) + // console.log(treeObj,'treeObj') + // } metaType = option.treeNode.data.type.metaType; var resourceTypeSchema = schema.get(option.schemaType); 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 09b8832cf9685aebe6fccf646acd272599845081..d0361234e1265bbb90c7ff86deeebe48cae5c423 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,4 +1,4 @@ -layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'open_domain', 'domain_design', 'edropdown', 'form', 'schema', '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'], function(exports) { "use strict"; @@ -221,7 +221,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'open_domai var id = target.id + "_" + contextmenuData.tId; var title = target.title + "_" + contextmenuData.title - var elem = renderContentPanel(id, title); + var elem = renderContentPanel(id, title,data); open_domain.render({ elem: elem @@ -233,7 +233,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'open_domai var id = target.id + "_" + contextmenuData.tId; var title = target.title + "_" + contextmenuData.title - var elem = renderContentPanel(id, title); + var elem = renderContentPanel(id, title,data); domain_design.render({ elem: elem, @@ -429,7 +429,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'open_domai return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 }); - function renderContentPanel(id, title){ + function renderContentPanel(id, title,data){ var elem; if(viewMode === 'tabs'){ $('#fast-body').hide() @@ -444,6 +444,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'open_domai id: id }) elem = '#' + domId + sessionStorage.setItem( "content-pear-current-treeNode", JSON.stringify(data)); } else { $('#fast-body').show() $('#content').hide() @@ -465,14 +466,15 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'open_domai } function zTreeOnClick(event, treeId, treeNode) { - + var treeObj = $.fn.zTree.getZTreeObj(treeId) + var schemaType = treeObj.setting.view.schemaType; var metaType = treeNode.data.type.metaType; - var resourceTypeSchema = schema.get(schemaType); var typeSchema = resourceTypeSchema[metaType]; - + console.log(typeSchema,'typeSchema') if(typeSchema.contentPanel){ - var elem = renderContentPanel(treeNode.tId, treeNode.title) + sessionStorage.setItem('content-schemaType',JSON.stringify(schemaType)) + var elem = renderContentPanel(treeNode.tId, treeNode.title,treeNode) } resource_properties.render({ @@ -494,6 +496,8 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'open_domai }; function zTreeOnRightClick(event, treeId, treeNode) { + var treeObj = $.fn.zTree.getZTreeObj(treeId) + schemaType = treeObj.setting.view.schemaType; // 将右击事件的节点数据绑定到以下变量中 contextmenuData = treeNode; contextData.contextmenuData = contextmenuData; @@ -663,7 +667,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'open_domai contentElem = option.contentElem; elem = option.elem; schemaType = option.schemaType; - + settings.view.schemaType = option.schemaType // treeApi = option.api; registerListeners(); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/tab.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/tab.js index 2a0ca237ee342670c858d662862f92c18434c15f..ad474bfd1556da1022c5705d3abfc8c9afaf5981 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/tab.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/tab.js @@ -1,8 +1,10 @@ -layui.define(['jquery', 'element'], function(exports) { +layui.define(['jquery', 'element','resource_content','utils'], function(exports) { "use strict"; var MOD_NAME = 'tab', $ = layui.jquery, + resource_content= layui.resource_content, + utils = layui.utils, element = layui.element; var pearTab = function(opt) { @@ -64,13 +66,13 @@ layui.define(['jquery', 'element'], function(exports) { closeEvent(option); // 如果有当前激活的id则激活当前id,否则激活第一个 - if(sessionStorage.getItem(option.elem + "-pear-tab-data-current")){ - option.success(sessionStorage.getItem(option.elem + "-pear-tab-data-current")); // 渲染成功执行函数 - } else { + // if(sessionStorage.getItem(option.elem + "-pear-tab-data-current")){ + // option.success(sessionStorage.getItem(option.elem + "-pear-tab-data-current")); // 渲染成功执行函数 + // } else { var id = $(".layui-tab[lay-filter='" + option.elem + "'] .layui-tab-title li[lay-id]").eq(0).attr('lay-id') console.log(id,'idididi') element.tabChange(option.elem,id); - } + // } // 渲染tab右键下拉 $("body .layui-tab[lay-filter='" + option.elem + "'] .layui-tab-title").on("contextmenu", "li", function(e) { // 获取当前元素位置 @@ -130,6 +132,7 @@ layui.define(['jquery', 'element'], function(exports) { pearTab.prototype.click = function(callback) { //绑定点击事件 var elem = this.option.elem; var option = this.option; + console.log('0000000') element.on('tab(' + this.option.elem + ')', function(data) { var id = $("#" + elem + " .layui-tab-title .layui-this").attr("lay-id"); sessionStorage.setItem(option.elem + "-pear-tab-data-current", id); @@ -387,13 +390,14 @@ layui.define(['jquery', 'element'], function(exports) { //根据 elem id 来删除指定的 layui title li var tabTitle = $(".layui-tab[lay-filter='" + elem + "']").find(".layui-tab-title"); - + console.log(id,'id') // 删除指定 id 的 title var removeTab = tabTitle.find("li[lay-id='" + id + "']"); var nextNode = removeTab.next("li"); if (!removeTab.hasClass("layui-this")) { removeTab.remove(); - var tabContent = $(".layui-tab[lay-filter='" + elem + "']").find("iframe[id='" + id + "']").parent(); + var tabContent = $(".layui-tab[lay-filter='" + elem + "']").find("div[id='treenode_" + id + "']").parent(); + console.log('treenode_'+id,'9999999') tabContent.remove(); tabData = JSON.parse(sessionStorage.getItem(elem + "-pear-tab-data")); @@ -427,7 +431,7 @@ layui.define(['jquery', 'element'], function(exports) { removeTab.remove(); // 删除 content - var tabContent = $(".layui-tab[lay-filter='" + elem + "']").find("iframe[id='" + id + "']").parent(); + var tabContent = $(".layui-tab[lay-filter='" + elem + "']").find("div[id='treenode_" + id + "']").parent();; // 删除 tabContent.remove(); } @@ -580,6 +584,15 @@ layui.define(['jquery', 'element'], function(exports) { $("#" + option.elem + "refersh").click(function() { var currentId = contextTabDOM.attr("lay-id"); + var treeNode = JSON.parse(sessionStorage.getItem('content-pear-current-treeNode')) + var schemaType = JSON.parse(sessionStorage.getItem("content-schemaType")) + resource_content.render({ + elem:'#treenode_'+currentId, + treeNode: treeNode, + viewMode:'tabs', + amisData: utils.getGlobalEnv(treeNode.data), + schemaType:schemaType + }) layer.close(index); }) } @@ -626,7 +639,16 @@ layui.define(['jquery', 'element'], function(exports) { $("body .layui-tab[lay-filter='" + option.elem + "']").on("click", "#refersh", function() { console.log('向下箭头') var currentId = $(".layui-tab[lay-filter='" + option.elem + "'] .layui-tab-title .layui-this").attr("lay-id"); - console.log('123131') + console.log(currentId,'currentId') + var treeNode = JSON.parse(sessionStorage.getItem("content-pear-current-treeNode")) + var schemaType = JSON.parse(sessionStorage.getItem("content-schemaType")) + resource_content.render({ + elem:'#treenode_'+currentId, + treeNode: treeNode, + viewMode:'tabs', + amisData: utils.getGlobalEnv(treeNode.data), + schemaType:schemaType + }) }) } 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 new file mode 100644 index 0000000000000000000000000000000000000000..c78abe534bae5f69567eb2dad4a6d87d829989d1 --- /dev/null +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/utils.js @@ -0,0 +1,46 @@ + +layui.define(['element','fast_config','api','schema'], function(exports) { + "use strict"; + + /** + * Button component + * */ + var MOD_NAME = 'utils', + fast_config = layui.fast_config, + api = layui.api, + schema = layui.schema, + $ = layui.jquery; + + + + + var utils = { + /** + * 获取服务环境变量 + */ + getGlobalEnv:function (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; + } + } + + + + exports(MOD_NAME, utils); +}); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/ztree.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/ztree.js index 25db47946e1f430a6bba4cd81c3eec4304d948c9..61231faf68bfb9b02f1c7e8fcb113062244d820f 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/ztree.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/ztree.js @@ -43,7 +43,7 @@ layui.define(['element', 'api'], function(exports) { treeOption = option; elem = option.elem; - + debugger api.get({ enableRootPath: option.enableRootPath, url: option.api,