123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361 |
- // o2.widget = o2.widget || {};
- o2.require("o2.widget.Common", null, false);
- // o2.require("o2.widget.Tree", null, false);
- o2.requireApp("process.FormDesigner", "widget.ElTreeEditor", null, false);
- MWF.xApplication.process.FormDesigner.widget.ElDropdownItemEditor = new Class({
- Extends: MWF.xApplication.process.FormDesigner.widget.ElTreeEditor,
- createContent: function(content){
- this.contentNode = new Element("div", {
- "styles": this.css.contentNode
- }).inject(this.container);
-
- this.data = content;
-
- this.resizeContentNodeSize();
-
- this.tree = new MWF.xApplication.process.FormDesigner.widget.ElDropdownItemEditor.Tree(this, this.contentNode, {"style": "editor"});
- this.tree.data = this.data;
- this.tree.load();
-
- }
- });
- MWF.xApplication.process.FormDesigner.widget.ElDropdownItemEditor.Tree = new Class({
- Extends: MWF.xApplication.process.FormDesigner.widget.ElTreeEditor.Tree,
- nodejson: {
- "label": "[none]",
- "command": "",
- "disabled": false,
- "divided": false,
- "icon":""
- },
- appendChild: function(obj){
- var treeNode = new MWF.xApplication.process.FormDesigner.widget.ElDropdownItemEditor.Tree.Node(this, obj);
-
- if (this.children.length){
- treeNode.previousSibling = this.children[this.children.length-1];
- treeNode.previousSibling.nextSibling = treeNode;
- }else{
- this.firstChild = treeNode;
- }
- treeNode.level = 0;
-
- treeNode.load();
- treeNode.node.inject(this.node);
- this.children.push(treeNode);
- return treeNode;
- }
- });
- MWF.xApplication.process.FormDesigner.widget.ElDropdownItemEditor.Tree.Node = new Class({
- Extends: MWF.xApplication.process.FormDesigner.widget.ElTreeEditor.Tree.Node,
- options: {
- "expand": true
- },
- createItemActionNode: function(){
- this.actionNode = new Element("div", {
- "styles": this.tree.css.itemActionNode
- }).inject(this.itemNode);
-
- var deleteAction = new Element("div", {
- "styles": this.tree.css.itemDeleteActionNode,
- "title": o2.LP.process.formAction["delete"],
- "events": {
- "click": function(e){
- this.deleteItem(e);
- e.stopPropagation();
- }.bind(this)
- }
- }).inject(this.actionNode);
- },
- editItemProperties: function(){
- if (this.tree.currentEditNode!=this){
- if (this.tree.currentEditNode) this.tree.currentEditNode.completeItemProperties();
- this.itemNode.setStyle("background", "#DDD");
- if (!this.propertyArea){
- this.propertyArea = new Element("div", {
- style : "border-bottom:1px solid #666"
- }).inject(this.itemNode, "after");
- this.propertyTable = new Element("table", {
- "width": "100%",
- "border": "0",
- "cellpadding":"5",
- "cellspacing":"0",
- "class": "editTable"
- }).inject(this.propertyArea);
- var tr = new Element("tr").inject(this.propertyTable);
- var td = new Element("td", { text: "文本" }).inject(tr);
- td = new Element("td").inject(tr);
- this.labelInput = new Element("input", {
- value: this.data.label || "[none]",
- events: {
- blur: function () {
- this.data.label = this.labelInput.get("value");
- this.textNode.getElement("div").set("text", this.data.label);
- this.tree.editor.fireEvent("change", [{
- compareName: "."+this.getLevelName() + ".label"
- }]);
- }.bind(this)
- }
- }).inject(td);
- tr = new Element("tr").inject(this.propertyTable);
- td = new Element("td", { text: "指令" }).inject(tr);
- td = new Element("td").inject(tr);
- this.idCommand = new Element("input", {
- value: this.data.command || "",
- events: {
- blur: function () {
- this.data.command = this.idCommand.get("value");
- this.tree.editor.fireEvent("change", [{
- compareName: "."+this.getLevelName() + ".command"
- }]);
- }.bind(this)
- }
- }).inject(td);
- tr = new Element("tr").inject(this.propertyTable);
- td = new Element("td", { text: "禁用" }).inject(tr);
- td = new Element("td").inject(tr);
- var div = new Element( "div").inject(td);
- var radio_disabled_1 = new Element( "input", {
- "type" : "radio",
- "checked" : !!this.data.disabled,
- "events" : {
- "click": function () {
- this.data.disabled = true;
- radio_disabled_2.checked = false;
- this.tree.editor.fireEvent("change", [{
- compareName: "."+this.getLevelName() + ".disabled"
- }]);
- }.bind(this)
- }
- }).inject( div );
- new Element( "span", { "text" : "是" }).inject(div);
- var radio_disabled_2 = new Element( "input", {
- "type" : "radio",
- "checked" : !this.data.disabled,
- "events" : {
- "click": function () {
- this.data.disabled = false;
- radio_disabled_1.checked = false;
- this.tree.editor.fireEvent("change", [{
- compareName: "."+this.getLevelName() + ".disabled"
- }]);
- }.bind(this)
- }
- }).inject( div );
- new Element( "span", { "text" : "否" }).inject(div);
- tr = new Element("tr").inject(this.propertyTable);
- td = new Element("td", { text: "显示分割线" }).inject(tr);
- td = new Element("td").inject(tr);
- div = new Element( "div").inject(td);
- var radio_divided_1 = new Element( "input", {
- "type" : "radio",
- "checked" : !!this.data.divided,
- "events" : {
- "click": function(){
- this.data.divided = true;
- radio_divided_2.checked = false;
- this.tree.editor.fireEvent("change", [{
- compareName: "."+this.getLevelName() + ".divided"
- }]);
- }.bind(this)
- }
- }).inject( div );
- new Element( "span", { "text" : "是" }).inject(div);
- var radio_divided_2 = new Element( "input", {
- "type" : "radio",
- "checked" : !this.data.divided,
- "events" : {
- "click": function () {
- this.data.divided = false;
- radio_divided_1.checked = false;
- this.tree.editor.fireEvent("change", [{
- compareName: "."+this.getLevelName() + ".divided"
- }]);
- }.bind(this)
- }
- }).inject( div );
- new Element( "span", { "text" : "否" }).inject(div);
- tr = new Element("tr").inject(this.propertyTable);
- td = new Element("td", { text: "图标" }).inject(tr);
- td = new Element("td").inject(tr);
- var div = new Element("div", {
- style: "overflow:hidden;height:30px;line-height:30px;"
- }).inject(td);
- this.iconNode = new Element("div",{
- class : this.data.icon,
- style: "float:left; width:30px;height:30px;font-size:20px;margin-top:2px;"
- }).inject(div);
- new Element("div",{
- text : "选择图标",
- style: "float:left; padding:0px 20px; height:24px;line-height:24px; border:1px solid #ccc; border-radius:5px;cursor:pointer",
- events: {
- click: this.loadElSelectIcon.bind(this)
- }
- }).inject(div);
- }
- this.propertyArea.setStyle("display", "block");
- this.propertyArea.scrollIntoView(false);
- this.setActionPosition();
- this.isEditProperty = true;
- this.tree.currentEditNode = this;
- }else{
- this.completeItemProperties();
- }
- },
- _loadVue: function(callback){
- if (!window.Vue){
- o2.loadAll({"css": "../o2_lib/vue/element/index.css", "js": ["vue", "elementui"]}, { "sequence": true }, callback);
- }else{
- if (callback) callback();
- }
- },
- loadElSelectIcon: function(){
- var _self = this;
- var icons = ["el-icon-platform-eleme","el-icon-eleme","el-icon-delete-solid","el-icon-delete","el-icon-s-tools","el-icon-setting","el-icon-user-solid","el-icon-user","el-icon-phone","el-icon-phone-outline","el-icon-more","el-icon-more-outline","el-icon-star-on","el-icon-star-off","el-icon-s-goods","el-icon-goods","el-icon-warning","el-icon-warning-outline","el-icon-question","el-icon-info","el-icon-remove","el-icon-circle-plus","el-icon-success","el-icon-error","el-icon-zoom-in","el-icon-zoom-out","el-icon-remove-outline","el-icon-circle-plus-outline","el-icon-circle-check","el-icon-circle-close","el-icon-s-help","el-icon-help","el-icon-minus","el-icon-plus","el-icon-check","el-icon-close","el-icon-picture","el-icon-picture-outline","el-icon-picture-outline-round","el-icon-upload","el-icon-upload2","el-icon-download","el-icon-camera-solid","el-icon-camera","el-icon-video-camera-solid","el-icon-video-camera","el-icon-message-solid","el-icon-bell","el-icon-s-cooperation","el-icon-s-order","el-icon-s-platform","el-icon-s-fold","el-icon-s-unfold","el-icon-s-operation","el-icon-s-promotion","el-icon-s-home","el-icon-s-release","el-icon-s-ticket","el-icon-s-management","el-icon-s-open","el-icon-s-shop","el-icon-s-marketing","el-icon-s-flag","el-icon-s-comment","el-icon-s-finance","el-icon-s-claim","el-icon-s-custom","el-icon-s-opportunity","el-icon-s-data","el-icon-s-check","el-icon-s-grid","el-icon-menu","el-icon-share","el-icon-d-caret","el-icon-caret-left","el-icon-caret-right","el-icon-caret-bottom","el-icon-caret-top","el-icon-bottom-left","el-icon-bottom-right","el-icon-back","el-icon-right","el-icon-bottom","el-icon-top","el-icon-top-left","el-icon-top-right","el-icon-arrow-left","el-icon-arrow-right","el-icon-arrow-down","el-icon-arrow-up","el-icon-d-arrow-left","el-icon-d-arrow-right","el-icon-video-pause","el-icon-video-play","el-icon-refresh","el-icon-refresh-right","el-icon-refresh-left","el-icon-finished","el-icon-sort","el-icon-sort-up","el-icon-sort-down","el-icon-rank","el-icon-loading","el-icon-view","el-icon-c-scale-to-original","el-icon-date","el-icon-edit","el-icon-edit-outline","el-icon-folder","el-icon-folder-opened","el-icon-folder-add","el-icon-folder-remove","el-icon-folder-delete","el-icon-folder-checked","el-icon-tickets","el-icon-document-remove","el-icon-document-delete","el-icon-document-copy","el-icon-document-checked","el-icon-document","el-icon-document-add","el-icon-printer","el-icon-paperclip","el-icon-takeaway-box","el-icon-search","el-icon-monitor","el-icon-attract","el-icon-mobile","el-icon-scissors","el-icon-umbrella","el-icon-headset","el-icon-brush","el-icon-mouse","el-icon-coordinate","el-icon-magic-stick","el-icon-reading","el-icon-data-line","el-icon-data-board","el-icon-pie-chart","el-icon-data-analysis","el-icon-collection-tag","el-icon-film","el-icon-suitcase","el-icon-suitcase-1","el-icon-receiving","el-icon-collection","el-icon-files","el-icon-notebook-1","el-icon-notebook-2","el-icon-toilet-paper","el-icon-office-building","el-icon-school","el-icon-table-lamp","el-icon-house","el-icon-no-smoking","el-icon-smoking","el-icon-shopping-cart-full","el-icon-shopping-cart-1","el-icon-shopping-cart-2","el-icon-shopping-bag-1","el-icon-shopping-bag-2","el-icon-sold-out","el-icon-sell","el-icon-present","el-icon-box","el-icon-bank-card","el-icon-money","el-icon-coin","el-icon-wallet","el-icon-discount","el-icon-price-tag","el-icon-news","el-icon-guide","el-icon-male","el-icon-female","el-icon-thumb","el-icon-cpu","el-icon-link","el-icon-connection","el-icon-open","el-icon-turn-off","el-icon-set-up","el-icon-chat-round","el-icon-chat-line-round","el-icon-chat-square","el-icon-chat-dot-round","el-icon-chat-dot-square","el-icon-chat-line-square","el-icon-message","el-icon-postcard","el-icon-position","el-icon-turn-off-microphone","el-icon-microphone","el-icon-close-notification","el-icon-bangzhu","el-icon-time","el-icon-odometer","el-icon-crop","el-icon-aim","el-icon-switch-button","el-icon-full-screen","el-icon-copy-document","el-icon-mic","el-icon-stopwatch","el-icon-medal-1","el-icon-medal","el-icon-trophy","el-icon-trophy-1","el-icon-first-aid-kit","el-icon-discover","el-icon-place","el-icon-location","el-icon-location-outline","el-icon-location-information","el-icon-add-location","el-icon-delete-location","el-icon-map-location","el-icon-alarm-clock","el-icon-timer","el-icon-watch-1","el-icon-watch","el-icon-lock","el-icon-unlock","el-icon-key","el-icon-service","el-icon-mobile-phone","el-icon-bicycle","el-icon-truck","el-icon-ship","el-icon-basketball","el-icon-football","el-icon-soccer","el-icon-baseball","el-icon-wind-power","el-icon-light-rain","el-icon-lightning","el-icon-heavy-rain","el-icon-sunrise","el-icon-sunrise-1","el-icon-sunset","el-icon-sunny","el-icon-cloudy","el-icon-partly-cloudy","el-icon-cloudy-and-sunny","el-icon-moon","el-icon-moon-night","el-icon-dish","el-icon-dish-1","el-icon-food","el-icon-chicken","el-icon-fork-spoon","el-icon-knife-fork","el-icon-burger","el-icon-tableware","el-icon-sugar","el-icon-dessert","el-icon-ice-cream","el-icon-hot-water","el-icon-water-cup","el-icon-coffee-cup","el-icon-cold-drink","el-icon-goblet","el-icon-goblet-full","el-icon-goblet-square","el-icon-goblet-square-full","el-icon-refrigerator","el-icon-grape","el-icon-watermelon","el-icon-cherry","el-icon-apple","el-icon-pear","el-icon-orange","el-icon-coffee","el-icon-ice-tea","el-icon-ice-drink","el-icon-milk-tea","el-icon-potato-strips","el-icon-lollipop","el-icon-ice-cream-square","el-icon-ice-cream-round"];
- var area = new Element("div", {
- "styles": {
- "height": "390px",
- "overflow": "auto",
- "font-size": "24px",
- "opacity": 0
- }
- }).inject($(document.body));
- icons.forEach(function(i){
- if (_self.data.icon==i){
- area.appendHTML("<i style=\"background-color: #999999; padding:5px}\" @click='selected' data-icon=\""+i+"\" class=\""+i+" mainColor_bg\"></i>");
- }else{
- area.appendHTML("<i style='cursor: pointer; padding:5px' @click='selected' data-icon=\""+i+"\" class='"+i+"'></i>");
- }
- });
- var dlg = o2.DL.open({
- "title": "选择图标",
- "isTitle": true,
- "width": 400,
- "height": 500,
- "content": area,
- "buttonList": [
- {
- "type": "ok",
- "text": "关闭",
- "action": function(){this.close();}
- }
- ],
- "onPostLoad": function () {
- area.setStyle("opacity", 1);
- this._loadVue(function(){
- new Vue({
- methods:{
- selected: function(e){
- var iNode = (e.target || e.srcElement);
- if (iNode && iNode.hasClass("mainColor_bg")){
- iNode.removeClass("mainColor_bg");
- _self.iconNode.removeClass(_self.data.icon);
- _self.data.icon = "";
- _self.tree.editor.fireEvent("change", [{
- compareName: "."+_self.getLevelName() + ".icon"
- }]);
- dlg.close()
- }else{
- this.$el.getElements("i").forEach(function(el){
- if (el.hasClass("mainColor_bg")) el.removeClass("mainColor_bg");
- });
- if (iNode){
- iNode.addClass("mainColor_bg");
- var iconName = iNode.dataset["icon"];
- _self.iconNode.removeClass(_self.data.icon).addClass(iconName);
- _self.data.icon = iconName;
- _self.tree.editor.fireEvent("change", [{
- compareName: "."+_self.getLevelName() + ".icon"
- }]);
- dlg.close();
- }
- }
- }
- }
- }).$mount(area);
- }.bind(this));
- }.bind(this)
- })
- },
- editItem: function(node, okCallBack){
- var text = node.get("text");
- node.set("html", "");
-
- var div = new Element("div", {
- "styles": this.tree.css.editInputDiv,
- });
- var input = new Element("input", {
- "styles": this.tree.css.editInput,
- "type": "text",
- "value": text
- }).inject(div);
- var w = o2.getTextSize(text+"a").x;
- input.setStyle("width", w);
- div.setStyle("width", w);
- div.inject(node);
- input.select();
-
- input.addEvents({
- "keydown": function(e){
- var x = o2.getTextSize(input.get("value")+"a").x;
- e.target.setStyle("width", x);
- e.target.getParent().setStyle("width", x);
- if (e.code==13){
- this.isEnterKey = true;
- e.target.blur();
- }
- }.bind(this),
- "blur": function(e){
- var flag = this.editItemComplate(node, e.target);
- if (okCallBack) okCallBack(flag);
- }.bind(this),
- "click": function(e){
- e.stopPropagation();
- }.bind(this)
- });
-
- },
- editItemComplate: function(node, input){
- var text = input.get("value");
- // if (node == this.keyNode){
- if (!text){
- text = "[none]";
- }
-
- this.data.label = text;
- // }
- var addNewItem = false;
- if (this.isEnterKey){
- if (this.isNewItem){
- addNewItem = true;
- }
- this.editOkAddNewItem = false;
- }
- this.isNewItem = false;
- node.set("html", text);
- if( this.labelInput )this.labelInput.set("value", text);
- this.tree.editor.fireEvent("change", [{
- compareName: "."+this.getLevelName() + ".label"
- }]);
-
- return true;
- }
- });
|