design.js 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /**
  2. * 文本导航中的属性插件
  3. */
  4. var textNavPreviewHtml = '<div v-bind:id="id" class="text-navigation">';
  5. textNavPreviewHtml += '<div v-show="data.arrangement==\'horizontal\'" v-bind:class="[data.arrangement]">';
  6. textNavPreviewHtml += '<div class="item" v-for="item in list">';
  7. textNavPreviewHtml += '<a href="javascript:;" v-bind:style="{color: data.textColor ? data.textColor : \'rgba(0,0,0,0)\', fontSize: data.fontSize+\'px\'}">{{item.text}}</a>';
  8. textNavPreviewHtml += '</div>';
  9. textNavPreviewHtml += '</div>';
  10. textNavPreviewHtml += '<div v-show="data.arrangement==\'vertical\'" v-bind:style="{ textAlign : data.textAlign }">';
  11. textNavPreviewHtml += '<a href="javascript:;" v-bind:style="{color: data.textColor ? data.textColor : \'rgba(0,0,0,0)\', fontSize: data.fontSize+\'px\'}">{{list[0].text}}</a>';
  12. textNavPreviewHtml += '<a href="javascript:;" class="second-text">{{list[0].secondText}}</a>';
  13. textNavPreviewHtml += '</div>';
  14. textNavPreviewHtml += '</div>';
  15. Vue.component("text-nav", {
  16. data: function () {
  17. return {
  18. id: "text_nav_" + ns.gen_non_duplicate(10),
  19. data: this.$parent.data,
  20. list: this.$parent.data.list
  21. }
  22. },
  23. template: textNavPreviewHtml,
  24. created: function () {
  25. if(!this.$parent.data.verify) this.$parent.data.verify = [];
  26. this.$parent.data.verify.push(this.verify);//加载验证方法
  27. },
  28. methods: {
  29. verify : function () {
  30. var res = { code : true, message : "" };
  31. return res;
  32. },
  33. },
  34. });
  35. var arrangementHtml = '<div class="layui-form-item">';
  36. arrangementHtml += '<label class="layui-form-label sm">排列方式</label>';
  37. arrangementHtml += '<div class="layui-input-block">';
  38. arrangementHtml += '<div v-bind:class="{ \'layui-unselect layui-form-select\' : true, \'layui-form-selected\' : isShowArrangement }" v-on:click="isShowArrangement=!isShowArrangement;">';
  39. arrangementHtml += '<div class="layui-select-title">';
  40. arrangementHtml += '<input type="text" placeholder="请选择" v-bind:value="($parent.data.arrangement==\'vertical\') ? \'竖排\' : \'横排\'" readonly="readonly" class="layui-input layui-unselect">';
  41. arrangementHtml += '<i class="layui-edge"></i>';
  42. arrangementHtml += '</div>';
  43. arrangementHtml += '<dl class="layui-anim layui-anim-upbit">';
  44. arrangementHtml += '<dd v-bind:class="{ \'layui-this\' : ($parent.data.arrangement==\'vertical\') }" v-on:click.stop="change(\'vertical\')">竖排</dd>';
  45. arrangementHtml += '<dd v-bind:class="{ \'layui-this\' : ($parent.data.arrangement==\'horizontal\') }" v-on:click.stop="change(\'horizontal\')">橫排</dd>';
  46. arrangementHtml += '</dl>';
  47. arrangementHtml += '</div>';
  48. arrangementHtml += '</div>';
  49. arrangementHtml += '</div>';
  50. Vue.component("arrangement", {
  51. data: function () {
  52. return {
  53. isShowArrangement: false
  54. }
  55. },
  56. created:function() {
  57. if(!this.$parent.data.verify) this.$parent.data.verify = [];
  58. this.$parent.data.verify.push(this.verify);//加载验证方法
  59. },
  60. methods: {
  61. change: function (v) {
  62. this.$parent.data.arrangement = v;
  63. if (v == "vertical") {
  64. for (var i = 1; i < this.$parent.data.list.length;) {
  65. this.$parent.data.list.splice(i, 1);
  66. i = 1;
  67. }
  68. }
  69. this.isShowArrangement = false;
  70. },
  71. verify : function () {
  72. var res = {code: true, message: ""};
  73. for (var i = 0; i < this.$parent.data.list.length; i++) {
  74. if (this.$parent.data.list[i].text == "") {
  75. res.message = "请输入导航名称";
  76. res.code = false;
  77. break;
  78. }
  79. }
  80. return res;
  81. }
  82. },
  83. template: arrangementHtml
  84. });