From b9fadc7e22a57fe37f60a6d2598d0c159019c6c4 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 23 May 2022 15:48:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E9=80=89=E5=92=8C=E5=A4=8D=E9=80=89?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=A2=9E=E5=8A=A0=E6=AF=8F=E8=A1=8C=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E6=95=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module/Checkbox/checkbox.html | 8 +++ .../Module/Radio/radio.html | 8 +++ .../Module/Checkbox/checkbox.html | 8 +++ .../Module/Checkbox/template.json | 1 + .../Module/Radio/radio.html | 8 +++ .../Module/Radio/template.json | 1 + .../Module/Checkbox/checkbox.html | 14 +++-- .../Module/Checkbox/template.json | 1 + .../Module/Radio/radio.html | 8 +++ .../Module/Radio/template.json | 1 + .../x_component_process_FormDesigner/lp/en.js | 3 +- .../lp/zh-cn.js | 3 +- .../x_component_process_Xform/Checkbox.js | 52 ++++++++++++++++--- .../source/x_component_process_Xform/Radio.js | 28 ++++++++-- 14 files changed, 128 insertions(+), 16 deletions(-) diff --git a/o2web/source/x_component_cms_FormDesigner/Module/Checkbox/checkbox.html b/o2web/source/x_component_cms_FormDesigner/Module/Checkbox/checkbox.html index cf5bbf7011..d9b54178f3 100644 --- a/o2web/source/x_component_cms_FormDesigner/Module/Checkbox/checkbox.html +++ b/o2web/source/x_component_cms_FormDesigner/Module/Checkbox/checkbox.html @@ -20,6 +20,14 @@ {{$.lp.no}} + + {{$.lp.countPerline}}: + + +
{{$.lp.countPerlineNote}}
+ + + {{$.lp.options}}: diff --git a/o2web/source/x_component_cms_FormDesigner/Module/Radio/radio.html b/o2web/source/x_component_cms_FormDesigner/Module/Radio/radio.html index 69f4f42807..c4d23996b5 100644 --- a/o2web/source/x_component_cms_FormDesigner/Module/Radio/radio.html +++ b/o2web/source/x_component_cms_FormDesigner/Module/Radio/radio.html @@ -20,6 +20,14 @@ {{$.lp.no}} + + {{$.lp.countPerline}}: + + +
{{$.lp.countPerlineNote}}
+ + + {{$.lp.options}}: diff --git a/o2web/source/x_component_portal_PageDesigner/Module/Checkbox/checkbox.html b/o2web/source/x_component_portal_PageDesigner/Module/Checkbox/checkbox.html index 7d33b0cfbb..e4de0aece7 100644 --- a/o2web/source/x_component_portal_PageDesigner/Module/Checkbox/checkbox.html +++ b/o2web/source/x_component_portal_PageDesigner/Module/Checkbox/checkbox.html @@ -19,6 +19,14 @@ {{$.lp.yes}} {{$.lp.no}} + + + {{$.lp.countPerline}}: + + +
{{$.lp.countPerlineNote}}
+ + {{$.lp.options}}: diff --git a/o2web/source/x_component_portal_PageDesigner/Module/Checkbox/template.json b/o2web/source/x_component_portal_PageDesigner/Module/Checkbox/template.json index 434499f90b..74623ef663 100644 --- a/o2web/source/x_component_portal_PageDesigner/Module/Checkbox/template.json +++ b/o2web/source/x_component_portal_PageDesigner/Module/Checkbox/template.json @@ -5,6 +5,7 @@ "description": "", "itemType": "values", "itemValues": [], + "countPerline": "0", "compute": "create", //create, show, save "section": "no", "sectionBy": "person", diff --git a/o2web/source/x_component_portal_PageDesigner/Module/Radio/radio.html b/o2web/source/x_component_portal_PageDesigner/Module/Radio/radio.html index bdec365e45..ebb1e582c5 100644 --- a/o2web/source/x_component_portal_PageDesigner/Module/Radio/radio.html +++ b/o2web/source/x_component_portal_PageDesigner/Module/Radio/radio.html @@ -19,6 +19,14 @@ {{$.lp.yes}} {{$.lp.no}} + + + {{$.lp.countPerline}}: + + +
{{$.lp.countPerlineNote}}
+ + {{$.lp.options}}: diff --git a/o2web/source/x_component_portal_PageDesigner/Module/Radio/template.json b/o2web/source/x_component_portal_PageDesigner/Module/Radio/template.json index fde62168b0..b15b14c766 100644 --- a/o2web/source/x_component_portal_PageDesigner/Module/Radio/template.json +++ b/o2web/source/x_component_portal_PageDesigner/Module/Radio/template.json @@ -5,6 +5,7 @@ "description": "", "itemType": "values", "itemValues": [], + "countPerline": "0", "itemScript": { "code": "", "html": "" diff --git a/o2web/source/x_component_process_FormDesigner/Module/Checkbox/checkbox.html b/o2web/source/x_component_process_FormDesigner/Module/Checkbox/checkbox.html index 6e7aeb315c..1504042b19 100644 --- a/o2web/source/x_component_process_FormDesigner/Module/Checkbox/checkbox.html +++ b/o2web/source/x_component_process_FormDesigner/Module/Checkbox/checkbox.html @@ -20,11 +20,19 @@ {{$.lp.no}} + + + + + + + - {{$.lp.newline}}: + {{$.lp.countPerline}}: - {{$.lp.yes}} - {{$.lp.no}} + +
{{$.lp.countPerlineNote}}
+ diff --git a/o2web/source/x_component_process_FormDesigner/Module/Checkbox/template.json b/o2web/source/x_component_process_FormDesigner/Module/Checkbox/template.json index b73d5b0cf5..ad14391ae9 100644 --- a/o2web/source/x_component_process_FormDesigner/Module/Checkbox/template.json +++ b/o2web/source/x_component_process_FormDesigner/Module/Checkbox/template.json @@ -5,6 +5,7 @@ "description": "", "itemType": "values", "itemValues": [], + "countPerline": "0", "compute": "create", //create, show, save "section": "no", "sectionBy": "person", diff --git a/o2web/source/x_component_process_FormDesigner/Module/Radio/radio.html b/o2web/source/x_component_process_FormDesigner/Module/Radio/radio.html index b33b2f1fcc..344e3b820f 100644 --- a/o2web/source/x_component_process_FormDesigner/Module/Radio/radio.html +++ b/o2web/source/x_component_process_FormDesigner/Module/Radio/radio.html @@ -19,6 +19,14 @@ {{$.lp.yes}} {{$.lp.no}} + + + {{$.lp.countPerline}}: + + +
{{$.lp.countPerlineNote}}
+ + {{$.lp.options}}: diff --git a/o2web/source/x_component_process_FormDesigner/Module/Radio/template.json b/o2web/source/x_component_process_FormDesigner/Module/Radio/template.json index 9ef40358b5..152137b476 100644 --- a/o2web/source/x_component_process_FormDesigner/Module/Radio/template.json +++ b/o2web/source/x_component_process_FormDesigner/Module/Radio/template.json @@ -5,6 +5,7 @@ "description": "", "itemType": "values", "itemValues": [], + "countPerline": "0", "itemScript": { "code": "", "html": "" diff --git a/o2web/source/x_component_process_FormDesigner/lp/en.js b/o2web/source/x_component_process_FormDesigner/lp/en.js index 908d160e12..0e1203c4b6 100644 --- a/o2web/source/x_component_process_FormDesigner/lp/en.js +++ b/o2web/source/x_component_process_FormDesigner/lp/en.js @@ -1254,7 +1254,8 @@ MWF.xApplication.process.FormDesigner.LP = { "menuItem": "Menu Item", "dropdownDefaultText": "Dropdown Menu", "showButton": "Show Button", - "newline": "one line per option", + "countPerline": "Options per line", + "countPerlineNote": "0 means no limit", "wps" : { "config":"Config", diff --git a/o2web/source/x_component_process_FormDesigner/lp/zh-cn.js b/o2web/source/x_component_process_FormDesigner/lp/zh-cn.js index 0f572e5010..87461c5848 100644 --- a/o2web/source/x_component_process_FormDesigner/lp/zh-cn.js +++ b/o2web/source/x_component_process_FormDesigner/lp/zh-cn.js @@ -1260,7 +1260,8 @@ MWF.xApplication.process.FormDesigner.LP = { "menuItem": "菜单项", "dropdownDefaultText": "下拉菜单", "showButton": "显示按钮", - "newline": "每个选项一行", + "countPerline": "每行选项数", + "countPerlineNote": "0表示不限制", "wps" : { "config":"配置", diff --git a/o2web/source/x_component_process_Xform/Checkbox.js b/o2web/source/x_component_process_Xform/Checkbox.js index 1796b4bdd7..1c9d0390c1 100644 --- a/o2web/source/x_component_process_Xform/Checkbox.js +++ b/o2web/source/x_component_process_Xform/Checkbox.js @@ -45,7 +45,34 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class( texts.push(t); } }); - this.node.set("text", texts.join(", ")); + if( !this.isNumber(this.json.countPerline) ) { + if( this.json.newline ){ + texts.each(function(t){ + new Element("div", { "text": t }).inject(this.node) + }.bind(this)) + }else{ + this.node.set("text", texts.join(", ")); + } + }else{ + var div; + var countPerLine = this.json.countPerline.toInt(); + if( countPerLine === 0 ){ + div = new Element("div").inject( this.node ); + div.set("text", texts.join(", ")); + }else{ + var textsPerLine = []; + texts.each(function(t, i){ + if( i % countPerLine === 0){ //如果需要换行了 + if( div && textsPerLine.length )div.set("text", textsPerLine.join(",") +","); + textsPerLine = []; + div = new Element("div").inject( this.node ); + } + textsPerLine.push( t ); + }.bind(this)); + if( div && textsPerLine.length )div.set("text", textsPerLine.join(",")); + } + } + } }, _resetNodeEdit: function(){ @@ -154,23 +181,34 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class( var optionItems = this.getOptions(); this._setOptions(optionItems); }, - + isNumber : function( d ){ + return parseInt(d).toString() !== "NaN" + }, _setOptions: function(optionItems){ var p = o2.promiseAll(optionItems).then(function(radioValues){ this.moduleSelectAG = null; if (!radioValues) radioValues = []; + var node; if (o2.typeOf(radioValues)==="array"){ var flag = (new MWF.widget.UUID).toString(); - radioValues.each(function(item){ + radioValues.each(function(item, i){ var tmps = item.split("|"); var text = tmps[0]; var value = tmps[1] || text; - var node; - if( this.json.newline ){ - node = new Element("div").inject(this.node); + if( !this.isNumber(this.json.countPerline) ) { + if( this.json.newline ){ + node = new Element("div").inject(this.node); + }else{ + node = this.node; + } }else{ - node = this.node; + var countPerLine = this.json.countPerline.toInt(); + if( countPerLine === 0 && i===0 ){ + node = new Element("div").inject(this.node); + }else if( i % countPerLine === 0){ + node = new Element("div").inject(this.node); + } } var radio = new Element("input", { diff --git a/o2web/source/x_component_process_Xform/Radio.js b/o2web/source/x_component_process_Xform/Radio.js index 0f04017dff..825a965a1d 100644 --- a/o2web/source/x_component_process_Xform/Radio.js +++ b/o2web/source/x_component_process_Xform/Radio.js @@ -171,32 +171,52 @@ MWF.xApplication.process.Xform.Radio = MWF.APPRadio = new Class( var optionItems = this.getOptions(); this._setOptions(optionItems); }, - + isNumber : function( d ){ + return parseInt(d).toString() !== "NaN" + }, _setOptions: function(optionItems){ var p = o2.promiseAll(optionItems).then(function(radioValues){ this.moduleSelectAG = null; if (!radioValues) radioValues = []; + var node; if (o2.typeOf(radioValues)==="array"){ var flag = (new MWF.widget.UUID).toString(); - radioValues.each(function(item){ + radioValues.each(function(item, i){ var tmps = item.split("|"); var text = tmps[0]; var value = tmps[1] || text; + if( !this.isNumber(this.json.countPerline) ) { + if( this.json.newline ){ + node = new Element("div").inject(this.node); + }else{ + node = this.node; + } + }else{ + var countPerLine = this.json.countPerline.toInt(); + if( countPerLine === 0 && i===0 ){ + node = new Element("div").inject(this.node); + }else if( i % countPerLine === 0){ + node = new Element("div").inject(this.node); + } + } + var radio = new Element("input", { "type": "radio", "name": (this.json.properties && this.json.properties.name) ? this.json.properties.name : flag+this.json.id, "value": value, "showText": text, "styles": this.json.buttonStyles - }).inject(this.node); + }).inject(node); //radio.appendText(text, "after"); + + var textNode = new Element( "span", { "text" : text, "styles" : { "cursor" : "default" } - }).inject(this.node); + }).inject(node); textNode.addEvent("click", function( ev ){ if( this.radio.get("disabled") === true || this.radio.get("disabled") === "true" )return; this.radio.checked = true; -- GitLab