From becf4f10f57c9acfeabd12aa41af362c600c3901 Mon Sep 17 00:00:00 2001 From: tiansai Date: Tue, 30 Aug 2022 16:41:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=89=93=E5=BC=80=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E8=A7=84=E5=88=99=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/fast-develop/src/js/fastDevelop.js | 4 + .../src/js/module/brms/brms_design.js | 158 +++++++++ .../src/js/module/brms/fact_design.js | 325 ++++++++++++++++++ .../src/js/module/brms/object_design.js | 224 ++++++++++++ .../src/js/module/editor/action_executer.js | 11 +- .../src/js/module/editor/resource_tree.js | 27 +- .../src/fast-develop/src/js/module/utils.js | 10 + 7 files changed, 753 insertions(+), 6 deletions(-) create mode 100644 fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js create mode 100644 fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js create mode 100644 fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/object_design.js 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 c8e6dc9..4eda7f6 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 @@ -34,6 +34,10 @@ layui.config({ domain_design_business: "domain/domain_design_business", domain_design_default: "domain/domain_design_default", domain_design_vo: "domain/domain_design_vo", + brms_design: "brms/brms_design", + fact_design: "brms/fact_design", + object_design:"brms/object_design", + open_domain: "editor/open_domain", resource_properties: "editor/resource_properties", jqgrid: "jqgrid", // jq表格组件 diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js new file mode 100644 index 0000000..85fb2e5 --- /dev/null +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js @@ -0,0 +1,158 @@ +layui.define(['element', 'api', 'fast_config', 'fact_design', 'amis', 'utils'], function(exports) { + "use strict"; + + /** + * Button component + * */ + var MOD_NAME = 'brms_design', + $ = layui.jquery, + api = layui.api, + fast_config = layui.fast_config, + fact_design = layui.fact_design, + utils = layui.utils, + amis = layui.amis + ; + + var brms_design = function(opt) { + this.option = opt; + }; + + function saveDesign(option){ + var grid_domain_vo_fields = option.grid_fact_design.option.grid.getData(); + var formObject = {}; + + for(var field of grid_domain_vo_fields){ + var validation=[]; + if(field["Keyword"]){ + validation.push("Keyword"); + } + if(field["Repeat"]){ + validation.push("Repeat"); + } + if(field["NotEmpty"]){ + validation.push("NotEmpty"); + } + field["validationTypeList"] = validation; + } + + formObject["fieldList"] = grid_domain_vo_fields; + formObject["scope"] = "app"; + formObject["modelType"] = "vo"; + + var optionApi = { + enableRootPath:true, + type: "POST", + url: fast_config.moudle.domain.saveApi.format({nodeid:option.treeNode.id}), + data: JSON.stringify(formObject), + contentType : 'application/json;charset=UTF-8', + success: function(data){ + layer.msg('操作成功'); + if(option.callback && option.callback.reloadtree && typeof option.callback.reloadtree === 'function'){ + option.callback.reloadtree(data); + } + } + }; + + api.exec(optionApi) + } + + function getModelData(option){ + var modelJson=null; + var optionApi = { + enableRootPath:true, + type: "GET", + url: fast_config.moudle.domain.initApi.format({nodeid:option.treeNode.id}), + success: function(data){ + if(typeof data !== 'object' ){ + modelJson = JSON.parse(data); + } + } + }; + + api.exec(optionApi); + + return modelJson; + } + + function appendElem(option){ + + //debugger + var id = option.treeNode.tId; + var domainContainerId = 'domainContainer_' + id; + var saveId = "saveDesignVo_" + id; + + var domainContainer = ` +
+
+
    +
  • 基础字段
  • + + + +
+
+
+
+
+
+
+
+ +
+ `; + + $(option.elem).append(domainContainer); + + $('#' + saveId).click(function(){ + saveDesign(option); + }); + } + + function getDomainVoFields(option){ + var id = option.treeNode.tId; + return 'domainVoFields_' + id; + } + + /** + * Button start loading + * */ + brms_design.prototype.render = function(opt) { + + var option = { + elem: opt.elem, + data: opt.data, + treeNode: opt.treeNode, + viewMode: opt.viewMode, + pearBody : opt.pearBody, + amisData: opt.amisData, + callback: opt.callback, + grid_fact_design: null + } + + render(option); + + return new brms_design(option); + } + + function render(option){ + + appendElem(option); + var id = option.treeNode.tId; + var modelJson = getModelData(option); + // debugger + + var initVoFields; + if(modelJson !=null){ + initVoFields = modelJson.fieldList; + } + + // grid; + option.grid_fact_design = fact_design.render({ + elem: '#' + getDomainVoFields(option), + initData: initVoFields + }); + } + + exports(MOD_NAME, new brms_design()); + +}); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js new file mode 100644 index 0000000..e33d01f --- /dev/null +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js @@ -0,0 +1,325 @@ +layui.define(['element', 'api', 'fast_config','object_design','utils','form'], function(exports) { + "use strict"; + + /** + * Button component + * */ + var MOD_NAME = 'fact_design', + $ = layui.jquery, + api = layui.api, + fast_config = layui.fast_config, + object_design = layui.object_design, + form = layui.form, + utils = layui.utils, + rowIndex + ; + + var fact_design = function(opt) { + this.option = opt; + }; + + var initFieldDate = function(option) { + option.fields = {}; + } + + function openModel(rowIndx,rowdata,grid){ + // console.log("aaa",rowdata); + layer.open({ + type:1, + title: "设置", + offset: '30%', + zIndex: 100, + success: function (){ + form.render(null,'myForm'); + }, + content: ` +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ `, + shade: 0.3, + btn: ['提交', '取消'], + btn1:function (index, layero) { + let formData = form.val('myForm'); + rowdata = {...rowdata,...formData} + // let upIndx = rowIndx-1; + grid.deleteRow({rowIndx:rowIndx}); + grid.addRow({newRow:rowdata,rowIndx:rowIndx}) + grid.getData(); + layer.closeAll(); + }, + btn2: function(){ + layer.closeAll(); + }, + cancel: function(layero,index){ + layer.closeAll(); + } + }); + } + + layui.use(['form'], function() { + form=layui.form; + form.on('select(type)', function(data){ + var val=data.value; + console.info(val); + + $("#dval").html(""); + + if(val == "Constant" || val == "EL"){ + $("#dval").append(``); + } + if(val == "Sequence"){ + + let seqhtml = ``; + let op = ''; + api.exec({ + enableRootPath:true, + type: "GET", + url: utils.stringformat(fast_config.app.seqApi), + success: function(data){ + for(let i=0;i${data[i].seq}`; + } + } + }); + + $("#dval").append(seqhtml); + + $("#seqval").append(op); + } + + form.render('select'); + }); + }); + + /** + * Button start loading + * */ + fact_design.prototype.render = function(opt) { + + var option = { + elem: opt.elem, + initData:opt.initData, + grid: null + } + + initFieldDate(option); + + var grid; + var parentContextData = window.parent.window.contextData; + // var path = parentContextData.contextmenuData.data.path; + var metaName; + + //called when save changes button is clicked. + function saveChanges() { + + //attempt to save editing cell. + if (grid.saveEditCell() === false) { + return false; + } + + if ( grid.isDirty() && grid.isValidChange({ focusInvalid: true }).valid ) { + + var changes = grid.getChanges({ format: "byVal" }); + + //post changes to server + api.post({ + enableRootPath: true, + dataType: "json", + type: "POST", + async: true, + beforeSend: function (jqXHR, settings) { + grid.showLoading(); + }, + url: "/meta/" + metaName + "/batch", + // contextT + data: JSON.stringify(changes), + headers:{'Content-Type':'application/json;charset=utf8'}, + success: function (changes) { + grid.commit({ type: 'add', rows: changes.addList }); + grid.commit({ type: 'update', rows: changes.updateList }); + grid.commit({ type: 'delete', rows: changes.deleteList }); + + grid.history({ method: 'reset' }); + }, + complete: function () { + grid.hideLoading(); + } + }); + } + } + + var types = [ + {"id":"basic","value":"basic","name": "基础类型"}, + {"id":"dd","value":"basic", "name": "数据字典"}, + {"id":"mdm","value":"basic", "name": "基础数据"} + ]; + + var data=[]; + if(option.initData){ + data = option.initData; + for(var field of data){ + if(field["validationTypeList"]!= undefined && field["validationTypeList"].length>0){ + for(var vali of field["validationTypeList"]){ + field[vali] = true; + } + } + field.pq_rowselect = undefined; + field.state = false; + field["validationTypeList"] = null; + } + } + + function getFieldClass(type){ + if(!option.fields[type]){ + api.exec({ + enableRootPath:true, + type: "GET", + // url: fast_config.domain.fieldClassApi+type, + url: fast_config.moudle.domain.fieldClassApi.format({type:type}), + success: function(data){ + // console.log("data",JSON.parse(data)); + option.fields[type] = data; + } + }); + } + + return option.fields[type]; + } + + var fieldClass = function (ui){ + let type=ui.rowData.fieldType; + if(type==''){ + type = "basic"; + } + return getFieldClass(type); + } + + grid = object_design.render({ + elem: option.elem, + initData:data, + grid: null, + gridSetting:{ + colModel: [ + { dataIndx: "state", maxWidth: 30, minWidth: 30, align: "center", resizable: false, + type: 'checkBoxSelection', cls: 'ui-state-default', sortable: false, editor: false, + dataType: 'bool', + cb: { + all: true, + header: true, + select: true + } + }, + { title: "名称", width: 200, dataType: "string", dataIndx: "fieldComment", + validations: [{ type: 'minLen', value: "1", msg: "必填"}] + }, + { title: "英文名", width: 200, dataType: "string", dataIndx: "fieldName", + validations: [{ type: 'minLen', value: "1", msg: "必填"}] + }, + { title: "表字段", width: 200, dataType: "string", dataIndx: "columnName"}, + { title: "类别", width: 220, dataIndx: "fieldType", + editor: { + type: "select", + labelIndx: "name", + valueIndx: "id", + prepend: { "": "" }, + options: types + }, + // validations: [{ type: 'minLen', value: "1", msg: "必填"}], + render : function (ui) { + var rowData = ui.rowData, + dataIndx = ui.dataIndx; + + rowData.pq_cellcls = rowData.pq_cellcls || {}; + + let name = null; + $.each(types,function(index,obj){ + if(rowData[dataIndx] == obj.id){ + name = obj.name + return true; + } + }); + return name; + } + }, + { title: "字段类型", dataIndx: "fieldClass", width: 220, + editor: { + type: "select", + labelIndx: "name", + valueIndx: "code", + prepend: { "": "" }, + options: fieldClass + }, + // validations: [{ type: 'minLen', value: "1", msg: "必填"}], + render : function (ui) { + var rowData = ui.rowData, + dataIndx = ui.dataIndx; + + rowData.pq_cellcls = rowData.pq_cellcls || {}; + + let type=ui.rowData.fieldType; + if(type==''){ + type = "basic"; + } + let fcls = getFieldClass(type) + + let name = null; + $.each(fcls,function(index,obj){ + if(rowData[dataIndx] == obj.code){ + name = obj.name + return true; + } + }); + return name; + } + }, + { title: "长度", width: 100, dataType: "integer", dataIndx: "length"}, + { title: "关键字", width: 100, dataType: "bool", align: "center", dataIndx: "Keyword", + editor: false, + type: 'checkbox' + }, + { title: "唯一", width: 100, dataType: "bool", align: "center", dataIndx: "Repeat", + editor: false, + type: 'checkbox' + }, + { title: "非空", width: 100, dataType: "bool", align: "center", dataIndx: "NotEmpty", + editor: false, + type: 'checkbox' + }, + { title: "可导出", width: 100, dataType: "bool", align: "center", dataIndx: "canExcel", + editor: false, + type: 'checkbox', + validations: [{ type: 'nonEmpty', msg: "Required"}] + }, + { title: "隐藏参数", width: 100, dataType: "bool", align: "center", dataIndx: "apiHide", + editor: false, + type: 'checkbox', + validations: [{ type: 'nonEmpty', msg: "Required"}] + } + ] + } + }); + + option.grid = grid.option.grid; + + return new fact_design(option); + } + + exports(MOD_NAME, new fact_design()); +}); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/object_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/object_design.js new file mode 100644 index 0000000..a469c29 --- /dev/null +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/object_design.js @@ -0,0 +1,224 @@ +layui.define(['element', 'api', 'fast_config','utils','form'], function(exports) { + "use strict"; + + /** + * Button component + * */ + var MOD_NAME = 'object_design', + $ = layui.jquery, + api = layui.api, + fast_config = layui.fast_config, + form = layui.form, + utils = layui.utils, + rowIndex + ; + + var object_design = function(opt) { + this.option = opt; + }; + + /** + * Button start loading + * */ + object_design.prototype.render = function(opt) { + + var option = { + elem: opt.elem, + initData:opt.initData, + grid: null, + gridSetting:{ + colModel: opt.gridSetting.colModel + + } + } + + var grid; + var metaName; + var colums=[],defaultRowData={}; + + var operationCol = { title: "操作", editable: false, width: 220, sortable: false, + render: function (ui) { + // debugger + if(ui.rowIndx==0){ + return `复制 | 下移`; + } + if(ui.rowIndx==option.initData.length-1){ + return `复制 | 上移`; + } + if(ui.rowIndx>0 && ui.rowIndx复制 | 上移 | 下移`; + // return `\\ + // `; + } + }, + postRender: function (ui) { + + let copyData = {...{},...ui.rowData}, + copyIndx=ui.rowIndx+1, + grid = this, + $cell = grid.getCell(ui); + copyData.fieldComment = copyData.fieldComment+"copy"; + copyData.fieldName = copyData.fieldName+"copy"; + + if(copyData.columnName !== undefined && copyData.columnName !== "" ){ + copyData.columnName = copyData.columnName+"copy"; + } + copyData.pq_rowselect=undefined;copyData.state=false; + + //copy button + $cell.find(".copy_btn") + // .button({ icons: { primary: 'ui-icon-copy'} }) + .bind("click", function (evt) { + grid.addRow({ newRow: copyData, rowIndx: copyIndx }); + }); + + //up button + $cell.find(".up_btn") + // .button({ icons: { primary: 'ui-icon-arrowthick-1-n'} }) + .bind("click", function (evt) { + // debugger + let upIndx = ui.rowIndx-1,cruIndx = ui.rowIndx, + upData = grid.getRowData({rowIndx: upIndx}); + grid.deleteRow({rowIndx: upIndx}); + grid.addRow({newRow:upData,rowIndx:cruIndx}) + + }); + //down button + $cell.find(".down_btn") + // .button({ icons: { primary: 'ui-icon-arrowthick-1-s'} }) + .bind("click", function (evt) { + let downIndx = ui.rowIndx+1,cruIndx = ui.rowIndx, + downData = grid.getRowData({rowIndx: cruIndx}); + grid.deleteRow({rowIndx: cruIndx}); + grid.addRow({newRow:downData,rowIndx:downIndx}) + }); + } + } + + if(option.gridSetting.colModel.length>0 && option.gridSetting.colModel[option.gridSetting.colModel.length-1].title!=='操作'){ + option.gridSetting.colModel[option.gridSetting.colModel.length-1] = operationCol; + colums = option.gridSetting.colModel; + } + for(let i=0;i"+metaName+"", + history: function (evt, ui) { + var $tb = this.toolbar(); + if (ui.canUndo != null) { + $("button.changes", $tb).button("option", { disabled: !ui.canUndo }); + } + if (ui.canRedo != null) { + $("button:contains('Redo')", $tb).button("option", "disabled", !ui.canRedo); + } + $("button:contains('Undo')", $tb).button("option", { label: 'Undo (' + ui.num_undo + ')' }); + $("button:contains('Redo')", $tb).button("option", { label: 'Redo (' + ui.num_redo + ')' }); + }, + colModel: colums, + postRenderInterval: -1, //call postRender synchronously. + // pageModel: { type: "remote", rPP: 20 }, + create: function(){ + this.widget().pqTooltip(); + }, + dataModel:{data: option.initData} + }; + + var gridModel = function (){ + var self = this + self.editRow = function( rd ){ + self.reset(); + }; + + self.reset = function(){ + copy( master, self.company); + self.focus(true); + }; + } + + grid = pq.grid( option.elem, obj ); + + option.grid = grid; + + return new object_design(option); + } + + + exports(MOD_NAME, new object_design()); +}); diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/action_executer.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/action_executer.js index eb175ff..99911db 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/action_executer.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/editor/action_executer.js @@ -45,9 +45,12 @@ layui.define(['element', 'api', 'listener', 'amis', 'utils'], function(exports) } function exec(option){ - var actionType = option.schema.actionType; - var args = option.schema.args; - var script = option.schema.script; + var data = option.data; + var schema = utils.formatSchema(option.schema, data); + + var actionType = schema.actionType; + var args = schema.args; + var script = schema.script; if(actionType === 'url'){ var {url, params, blank} = args; @@ -57,8 +60,6 @@ layui.define(['element', 'api', 'listener', 'amis', 'utils'], function(exports) }else{ location.href = url; } - }else if(actionType === 'action'){ - } } 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 228dfc0..9bd103e 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,5 +1,5 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', 'open_domain', -'domain_design', 'domain_design_vo','edropdown', 'form', 'resource_content', 'ztree', 'resource_properties','fast_config', 'utils', 'schema_render', 'resource_tabs' +'domain_design', 'domain_design_vo','brms_design','edropdown', 'form', 'resource_content', 'ztree', 'resource_properties','fast_config', 'utils', 'schema_render', 'resource_tabs' ], function(exports) { "use strict"; @@ -273,6 +273,25 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' }) } + function designBrms(data, target) { + var treeNode = contextmenuData; + var id = target.id; + + brms_design.render({ + elem: utils.getTabElem(id), + data:data, + treeNode: treeNode, + viewMode: viewMode, + pearBody : pearBody, + amisData: utils.getGlobalEnv(treeNode.data), + callback: { + reloadtree: function reloadCallback(data){ + selectedNode(data); + } + } + }) + } + function getFilePath(value){ var path; @@ -389,6 +408,10 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' designVo(data, target) } + function designBrmsListener(data,target){ + designBrms(data,target) + } + function createFolderListener(data) { createFolder() } @@ -412,6 +435,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' open_domain = layui.open_domain, domain_design = layui.domain_design, domain_design_vo = layui.domain_design_vo, + brms_design = layui.brms_design, edropdown = layui.edropdown, form = layui.form, laytpl = layui.laytpl, @@ -453,6 +477,7 @@ layui.define(['element', 'api', 'amis', 'schema', 'listener', 'api', 'jqgrid', ' designDomainListener:designDomainListener, designVoListener:designVoListener, openDomainListener:openDomainListener, + designBrmsListener:designBrmsListener, } ; 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 9aae748..09312db 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 @@ -99,6 +99,16 @@ layui.define(['element','api','schema','fast_config'], function(exports) { return elem; }, + formatSchema: function (schema, data){ + // var data = JSON.parse(JSON.stringify(optionApi.data).format(execData)); + var formatSchema = JSON.parse(utils.stringformat(JSON.stringify(schema),data)); + if(formatSchema['&'] === '$$'){ + $.extend(formatSchema, data["mid"]); + delete formatSchema['&']; + } + $.extend(formatSchema, data); + return formatSchema + }, //执行表达式 evalExpression: function(expression, data){ var {...__} = data; -- Gitee From 6d6048d03a81d89692c2b20ee547c3cf8f1e5b2d Mon Sep 17 00:00:00 2001 From: tiansai Date: Wed, 31 Aug 2022 16:30:01 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fact=20=E5=AF=B9=E8=B1=A1=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/config/application-gs-dev.yml | 4 + .../src/js/module/brms/brms_design.js | 57 +++----- .../src/js/module/brms/fact_design.js | 128 +----------------- .../src/js/module/brms/object_design.js | 2 +- .../module/domain/domain_design_business.js | 4 +- 5 files changed, 33 insertions(+), 162 deletions(-) diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/application-gs-dev.yml b/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/application-gs-dev.yml index 440c4ec..a27369a 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/application-gs-dev.yml +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/application-gs-dev.yml @@ -32,4 +32,8 @@ moudle: saveApi: ${platformUrl}/api/v1/engine/design/map/${nodeid} fieldClassApi: ${platformUrl}/api/v1/engine/domainmodel/getFieldClass?fieldType=${type} + brms: +# initApi: ${platformUrl}/api/v1/engine/brms/models/json/${nodeid} + saveApi: ${platformUrl}/api/v1/engine/brms/models/json/${nodeid} + diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js index 85fb2e5..ee918a2 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js @@ -21,28 +21,12 @@ layui.define(['element', 'api', 'fast_config', 'fact_design', 'amis', 'utils'], var grid_domain_vo_fields = option.grid_fact_design.option.grid.getData(); var formObject = {}; - for(var field of grid_domain_vo_fields){ - var validation=[]; - if(field["Keyword"]){ - validation.push("Keyword"); - } - if(field["Repeat"]){ - validation.push("Repeat"); - } - if(field["NotEmpty"]){ - validation.push("NotEmpty"); - } - field["validationTypeList"] = validation; - } - formObject["fieldList"] = grid_domain_vo_fields; - formObject["scope"] = "app"; - formObject["modelType"] = "vo"; var optionApi = { enableRootPath:true, type: "POST", - url: fast_config.moudle.domain.saveApi.format({nodeid:option.treeNode.id}), + url: fast_config.moudle.brms.saveApi.format({nodeid:option.treeNode.id}), data: JSON.stringify(formObject), contentType : 'application/json;charset=UTF-8', success: function(data){ @@ -52,27 +36,26 @@ layui.define(['element', 'api', 'fast_config', 'fact_design', 'amis', 'utils'], } } }; - api.exec(optionApi) } - function getModelData(option){ - var modelJson=null; - var optionApi = { - enableRootPath:true, - type: "GET", - url: fast_config.moudle.domain.initApi.format({nodeid:option.treeNode.id}), - success: function(data){ - if(typeof data !== 'object' ){ - modelJson = JSON.parse(data); - } - } - }; - - api.exec(optionApi); - - return modelJson; - } + // function getModelData(option){ + // var modelJson=null; + // var optionApi = { + // enableRootPath:true, + // type: "GET", + // url: fast_config.moudle.brms.initApi.format({nodeid:option.treeNode.id}), + // success: function(data){ + // if(typeof data !== 'object' ){ + // modelJson = JSON.parse(data); + // } + // } + // }; + // + // api.exec(optionApi); + // + // return modelJson; + // } function appendElem(option){ @@ -137,8 +120,8 @@ layui.define(['element', 'api', 'fast_config', 'fact_design', 'amis', 'utils'], function render(option){ appendElem(option); - var id = option.treeNode.tId; - var modelJson = getModelData(option); + // var id = option.treeNode.tId; + var modelJson = JSON.parse(option.treeNode.data.design); // debugger var initVoFields; diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js index e33d01f..8090b92 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js @@ -22,92 +22,6 @@ layui.define(['element', 'api', 'fast_config','object_design','utils','form'], f option.fields = {}; } - function openModel(rowIndx,rowdata,grid){ - // console.log("aaa",rowdata); - layer.open({ - type:1, - title: "设置", - offset: '30%', - zIndex: 100, - success: function (){ - form.render(null,'myForm'); - }, - content: ` -
-
- -
- -
-
-
- -
- -
-
-
- `, - shade: 0.3, - btn: ['提交', '取消'], - btn1:function (index, layero) { - let formData = form.val('myForm'); - rowdata = {...rowdata,...formData} - // let upIndx = rowIndx-1; - grid.deleteRow({rowIndx:rowIndx}); - grid.addRow({newRow:rowdata,rowIndx:rowIndx}) - grid.getData(); - layer.closeAll(); - }, - btn2: function(){ - layer.closeAll(); - }, - cancel: function(layero,index){ - layer.closeAll(); - } - }); - } - - layui.use(['form'], function() { - form=layui.form; - form.on('select(type)', function(data){ - var val=data.value; - console.info(val); - - $("#dval").html(""); - - if(val == "Constant" || val == "EL"){ - $("#dval").append(``); - } - if(val == "Sequence"){ - - let seqhtml = ``; - let op = ''; - api.exec({ - enableRootPath:true, - type: "GET", - url: utils.stringformat(fast_config.app.seqApi), - success: function(data){ - for(let i=0;i${data[i].seq}`; - } - } - }); - - $("#dval").append(seqhtml); - - $("#seqval").append(op); - } - - form.render('select'); - }); - }); - /** * Button start loading * */ @@ -122,7 +36,7 @@ layui.define(['element', 'api', 'fast_config','object_design','utils','form'], f initFieldDate(option); var grid; - var parentContextData = window.parent.window.contextData; + // var parentContextData = window.parent.window.contextData; // var path = parentContextData.contextmenuData.data.path; var metaName; @@ -167,22 +81,18 @@ layui.define(['element', 'api', 'fast_config','object_design','utils','form'], f var types = [ {"id":"basic","value":"basic","name": "基础类型"}, - {"id":"dd","value":"basic", "name": "数据字典"}, - {"id":"mdm","value":"basic", "name": "基础数据"} + {"id":"dd","value":"dd", "name": "数据字典"}, + {"id":"mdm","value":"mdm", "name": "基础数据"}, + {"id":"object","value":"object", "name": "对象"}, + {"id":"array","value":"array", "name": "集合"} ]; var data=[]; if(option.initData){ data = option.initData; for(var field of data){ - if(field["validationTypeList"]!= undefined && field["validationTypeList"].length>0){ - for(var vali of field["validationTypeList"]){ - field[vali] = true; - } - } field.pq_rowselect = undefined; - field.state = false; - field["validationTypeList"] = null; + field.state = false } } @@ -191,10 +101,8 @@ layui.define(['element', 'api', 'fast_config','object_design','utils','form'], f api.exec({ enableRootPath:true, type: "GET", - // url: fast_config.domain.fieldClassApi+type, url: fast_config.moudle.domain.fieldClassApi.format({type:type}), success: function(data){ - // console.log("data",JSON.parse(data)); option.fields[type] = data; } }); @@ -232,7 +140,6 @@ layui.define(['element', 'api', 'fast_config','object_design','utils','form'], f { title: "英文名", width: 200, dataType: "string", dataIndx: "fieldName", validations: [{ type: 'minLen', value: "1", msg: "必填"}] }, - { title: "表字段", width: 200, dataType: "string", dataIndx: "columnName"}, { title: "类别", width: 220, dataIndx: "fieldType", editor: { type: "select", @@ -288,29 +195,6 @@ layui.define(['element', 'api', 'fast_config','object_design','utils','form'], f }); return name; } - }, - { title: "长度", width: 100, dataType: "integer", dataIndx: "length"}, - { title: "关键字", width: 100, dataType: "bool", align: "center", dataIndx: "Keyword", - editor: false, - type: 'checkbox' - }, - { title: "唯一", width: 100, dataType: "bool", align: "center", dataIndx: "Repeat", - editor: false, - type: 'checkbox' - }, - { title: "非空", width: 100, dataType: "bool", align: "center", dataIndx: "NotEmpty", - editor: false, - type: 'checkbox' - }, - { title: "可导出", width: 100, dataType: "bool", align: "center", dataIndx: "canExcel", - editor: false, - type: 'checkbox', - validations: [{ type: 'nonEmpty', msg: "Required"}] - }, - { title: "隐藏参数", width: 100, dataType: "bool", align: "center", dataIndx: "apiHide", - editor: false, - type: 'checkbox', - validations: [{ type: 'nonEmpty', msg: "Required"}] } ] } diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/object_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/object_design.js index a469c29..d610c67 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/object_design.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/object_design.js @@ -96,7 +96,7 @@ layui.define(['element', 'api', 'fast_config','utils','form'], function(exports) } if(option.gridSetting.colModel.length>0 && option.gridSetting.colModel[option.gridSetting.colModel.length-1].title!=='操作'){ - option.gridSetting.colModel[option.gridSetting.colModel.length-1] = operationCol; + option.gridSetting.colModel[option.gridSetting.colModel.length] = operationCol; colums = option.gridSetting.colModel; } for(let i=0;i Date: Wed, 31 Aug 2022 20:36:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=8C=E5=96=84fact=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E5=85=B3=E8=81=94=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/config/application-gs-dev.yml | 1 + .../src/js/module/brms/brms_design.js | 7 +++--- .../src/js/module/brms/fact_design.js | 22 ++++++++++++++++++- .../src/js/module/brms/object_design.js | 2 +- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/application-gs-dev.yml b/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/application-gs-dev.yml index a27369a..1618c8e 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/application-gs-dev.yml +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/config/application-gs-dev.yml @@ -35,5 +35,6 @@ moudle: brms: # initApi: ${platformUrl}/api/v1/engine/brms/models/json/${nodeid} saveApi: ${platformUrl}/api/v1/engine/brms/models/json/${nodeid} + modelsApi: ${platformUrl}/api/v1/engine/brms/models/list?projectId=${projectId}&modelType=${type.value} diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js index ee918a2..a3355f1 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/brms_design.js @@ -21,7 +21,7 @@ layui.define(['element', 'api', 'fast_config', 'fact_design', 'amis', 'utils'], var grid_domain_vo_fields = option.grid_fact_design.option.grid.getData(); var formObject = {}; - formObject["fieldList"] = grid_domain_vo_fields; + formObject["fields"] = grid_domain_vo_fields; var optionApi = { enableRootPath:true, @@ -126,13 +126,14 @@ layui.define(['element', 'api', 'fast_config', 'fact_design', 'amis', 'utils'], var initVoFields; if(modelJson !=null){ - initVoFields = modelJson.fieldList; + initVoFields = modelJson.fields; } // grid; option.grid_fact_design = fact_design.render({ elem: '#' + getDomainVoFields(option), - initData: initVoFields + initData: initVoFields, + treeData: option.treeNode.data }); } diff --git a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js index 8090b92..49d1aaf 100644 --- a/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js +++ b/fast-develop-web/fast-develop-editor/src/fast-develop/src/js/module/brms/fact_design.js @@ -20,6 +20,23 @@ layui.define(['element', 'api', 'fast_config','object_design','utils','form'], f var initFieldDate = function(option) { option.fields = {}; + api.exec({ + enableRootPath:true, + type: "GET", + url: fast_config.moudle.brms.modelsApi.format(option.treeData), + success: function(data){ + let arr=[]; + for(let i=0;i"+metaName+"", history: function (evt, ui) { -- Gitee