Elicon.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. MWF.xDesktop.requireApp("process.Xform", "$ElModule", null, false);
  2. /** @class Elicon 基于Element UI的图标组件。
  3. * @o2cn 图标组件
  4. * @example
  5. * //可以在脚本中获取该组件
  6. * //方法1:
  7. * var icon = this.form.get("name"); //获取组件
  8. * //方法2
  9. * var icon = this.target; //在组件事件脚本中获取
  10. * @extends MWF.xApplication.process.Xform.$Module
  11. * @o2category FormComponents
  12. * @o2range {Process|CMS|Portal}
  13. * @hideconstructor
  14. * @see {@link https://element.eleme.cn/#/zh-CN/component/icon|Element UI Icon 图标}
  15. */
  16. MWF.xApplication.process.Xform.Elicon = MWF.APPElicon = new Class(
  17. /** @lends MWF.xApplication.process.Xform.Elicon# */
  18. {
  19. Implements: [Events],
  20. Extends: MWF.APP$ElModule,
  21. _appendVueData: function(){
  22. if (!this.json.icon) this.json.icon = "el-icon-platform-eleme";
  23. if (!this.json.iconSize) this.json.iconSize = "16";
  24. if (!this.json.iconColor) this.json.iconColor = "";
  25. if (!this.json.icon) this.json.icon = "";
  26. if (!this.json.elStyles) this.json.elStyles = {};
  27. },
  28. _createElementHtml: function(){
  29. var html = "<i";
  30. html += " :class=\"icon\"";
  31. if (this.json.elProperties){
  32. Object.keys(this.json.elProperties).forEach(function(k){
  33. if (this.json.elProperties[k]) html += " "+k+"=\""+this.json.elProperties[k]+"\"";
  34. }, this);
  35. }
  36. html += " :style=\"[elStyles, {fontSize: iconSize+'px', color: iconColor}]\"";
  37. html += "></i>";
  38. return html;
  39. }
  40. // _loadVue: function(callback){
  41. // if (!window.Vue){
  42. // var vue = (o2.session.isDebugger) ? "vue_develop" : "vue";
  43. // o2.loadAll({"css": "../o2_lib/vue/element/index.css", "js": [vue, "elementui"]}, { "sequence": true }, callback);
  44. // }else{
  45. // if (callback) callback();
  46. // }
  47. // },
  48. // _queryLoaded: function(){
  49. // this._loadVue();
  50. // },
  51. // load: function(){
  52. // this._loadModuleEvents();
  53. // if (this.fireEvent("queryLoad")){
  54. // this._queryLoaded();
  55. // this._loadUserInterface();
  56. // }
  57. // },
  58. //
  59. // _loadUserInterface: function(){
  60. // this.node.appendHTML(this._createElementHtml(), "before");
  61. // var icon = this.node.getPrevious();
  62. //
  63. // this.node.destroy();
  64. // this.node = icon;
  65. // this.node.set({
  66. // "id": this.json.id,
  67. // "MWFType": this.json.type
  68. // });
  69. // this._createVueApp();
  70. // },
  71. // _createVueApp: function(){
  72. // debugger;
  73. // if (!this.vm) this._loadVue(this._mountVueApp.bind(this));
  74. // },
  75. //
  76. // _loadVue: function(callback){
  77. // if (!window.Vue){
  78. // o2.loadAll({"css": "../o2_lib/vue/element/index.css", "js": ["vue", "elementui"]}, { "sequence": true }, callback);
  79. // }else{
  80. // if (callback) callback();
  81. // }
  82. // },
  83. // _mountVueApp: function(){
  84. // if (!this.vueApp) this.vueApp = this._createVueExtend();
  85. //
  86. // /**
  87. // * @summary Vue对象实例
  88. // * @see https://vuejs.org/
  89. // * @member {VueInstance}
  90. // */
  91. // this.vm = new Vue(this.vueApp).$mount(this.node);
  92. // },
  93. //
  94. // _createVueExtend: function(){
  95. // var _self = this;
  96. // return {
  97. // data: this._createVueData(),
  98. // mounted: function(){
  99. // _self._afterMounted(this.$el);
  100. // }
  101. // };
  102. // },
  103. // _createVueData: function(){
  104. // return this.json;
  105. // },
  106. // _afterMounted: function(el){
  107. // this.node = el;
  108. // this.node.set({
  109. // "id": this.json.id,
  110. // "MWFType": this.json.type
  111. // });
  112. // this._loadDomEvents();
  113. // this._afterLoaded();
  114. // this.fireEvent("postLoad");
  115. // this.fireEvent("load");
  116. // },
  117. // _createElementHtml: function(){
  118. // var html = "<i";
  119. // html += " :class=\"icon\"";
  120. //
  121. // if (this.json.elProperties){
  122. // Object.keys(this.json.elProperties).forEach(function(k){
  123. // if (this.json.elProperties[k]) html += " "+k+"=\""+this.json.elProperties[k]+"\"";
  124. // }, this);
  125. // }
  126. //
  127. // // var styles = {};
  128. // // if (this.json.iconSize) styles["font-size"] = this.json.iconSize+"px";
  129. // // if (this.json.iconColor) styles["color"] = this.json.iconColor;
  130. // // styles = Object.merge(styles, this.json.elStyles);
  131. // //
  132. // // if (styles){
  133. // // var style = "";
  134. // // Object.keys(styles).forEach(function(k){
  135. // // if (styles[k]) style += k+":"+styles[k]+";";
  136. // // }, this);
  137. // // html += " style=\""+style+"\"";
  138. // // }
  139. //
  140. // html += " :style=\"[elStyles, {fontSize: iconSize+'px', color: iconColor}]\"";
  141. //
  142. //
  143. // html += "></i>";
  144. // return html;
  145. // }
  146. });