design.html 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <nc-component :data="data[index]" class="top-search">
  2. <!-- 预览 -->
  3. <template slot="preview">
  4. <template v-if="nc.lazyLoad">
  5. <div :class="['preview-box',('preview-box-'+nc.searchStyle)]" :style="{background: nc.componentBgColor}">
  6. <div class="top-search-form" v-if="[1,2].includes(nc.searchStyle)">
  7. <template v-if="nc.searchStyle == 2">
  8. <img v-if="nc.iconType == 'img'" :src="changeImgUrl(nc.imageUrl)"/>
  9. <div v-if="nc.iconType == 'icon'" class="icon-box">
  10. <iconfont :icon="nc.icon" v-if="nc.icon" :value="nc.style ? nc.style : ''"></iconfont>
  11. </div>
  12. </template>
  13. <div class="top-search-box" :class="{'border-circle': nc.borderType == 2}" :style="{background: nc.elementBgColor, textAlign: nc.textAlign}">
  14. <span class="top-search-intro" :style="{color: nc.textColor ? nc.textColor : 'rgba(0,0,0,0)'}">{{ nc.title }}</span>
  15. <span class="top-search-icon"><i class="iconfont iconsousuo" :style="{color: nc.textColor ? nc.textColor : 'rgba(0,0,0,0)'}"></i></span>
  16. </div>
  17. </div>
  18. <div class="top-search-form" v-if="nc.searchStyle == 3">
  19. <div :class="[{'border-circle': nc.borderType == 2},'top-search-box']" :style="{background: nc.elementBgColor, textAlign: nc.textAlign}">
  20. <span class="top-search-icon"><i class="iconfont iconsousuo" :style="{color: nc.textColor ? nc.textColor : 'rgba(0,0,0,0)'}"></i></span>
  21. <span class="top-search-intro" :style="{color: nc.textColor ? nc.textColor : 'rgba(0,0,0,0)'}">{{ nc.title }}</span>
  22. <span class="top-search-btn" :style="{background: nc.pageBgColor}">搜索</span>
  23. </div>
  24. <img v-if="nc.iconType == 'img'" :src="changeImgUrl(nc.imageUrl)"/>
  25. <div v-if="nc.iconType == 'icon'" class="icon-box">
  26. <iconfont :icon="nc.icon" v-if="nc.icon" :value="nc.style ? nc.style : ''"></iconfont>
  27. </div>
  28. </div>
  29. </div>
  30. </template>
  31. </template>
  32. <!-- 内容编辑 -->
  33. <template slot="edit-content">
  34. <template v-if="nc.lazyLoad">
  35. <div class="template-edit-title">
  36. <h3>搜索风格</h3>
  37. <div class="layui-form-item icon-radio">
  38. <label class="layui-form-label sm">搜索风格</label>
  39. <div class="layui-input-block">
  40. <span v-for="item in nc.tempData.styleList" v-if="nc.searchStyle==item.value">{{item.label}}</span>
  41. <ul class="icon-wrap">
  42. <li v-for="(item) in nc.tempData.styleList" class="search_type_left" @click="nc.searchStyle=item.value" :class="{'text-color border-color':nc.searchStyle==item.value}">
  43. <i class="iconfont" :class="[{'text-color': nc.searchStyle==item.value}, item.icon_img]"></i>
  44. </li>
  45. </ul>
  46. </div>
  47. <div class="search_logo" v-show="[2,3].includes(nc.searchStyle)">
  48. <img-icon-upload :data="{data : nc}"></img-icon-upload>
  49. <div class="right-wrap">
  50. <div class="action-box" v-show="nc.iconType == 'icon'">
  51. <div class="action" @click="nc.tempData.methods.iconStyle($event)"><i class="iconfont iconpifu"></i></div>
  52. <div class="action" :id="'search-color-' + nc.index"><i class="iconfont iconyanse"></i></div>
  53. </div>
  54. <div class="desc">宽度自适应(最大85px),高度38px</div>
  55. </div>
  56. </div>
  57. <nc-link v-show="nc.searchStyle == 3" :data="{ field : nc.searchLink }"></nc-link>
  58. </div>
  59. <div class="layui-form-item icon-radio">
  60. <label class="layui-form-label sm">文本位置</label>
  61. <div class="layui-input-block">
  62. <span v-for="(item) in nc.tempData.textAlignList" v-if="nc.textAlign==item.value">{{item.label}}</span>
  63. <ul class="icon-wrap">
  64. <li v-for="(item) in nc.tempData.textAlignList" @click="nc.textAlign=item.value" :class="{'text-color border-color':nc.textAlign==item.value}">
  65. <i class="iconfont" :class="[{'text-color': nc.textAlign==item.value}, item.icon_img]"></i>
  66. </li>
  67. </ul>
  68. </div>
  69. </div>
  70. <div class="layui-form-item icon-radio">
  71. <label class="layui-form-label sm">显示位置</label>
  72. <div class="layui-input-block">
  73. <div v-for="(item) in nc.tempData.positionWayList" @click="nc.positionWay=item.value" :class="{ 'layui-unselect layui-form-radio' : true,'layui-form-radioed' : (nc.positionWay==item.value) }">
  74. <i class="layui-anim layui-icon">{{ nc.positionWay==item.value ? "&#xe643;" : "&#xe63f;" }}</i>
  75. <div>{{item.label}}</div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. <div class="template-edit-title">
  81. <h3>搜索内容</h3>
  82. <div class="layui-form-item">
  83. <label class="layui-form-label sm">搜索内容</label>
  84. <div class="layui-input-block">
  85. <input type="text" v-model="nc.title" :id="'title_' + index" placeholder="请输入搜索内容" class="layui-input" maxlength="20">
  86. </div>
  87. </div>
  88. </div>
  89. </template>
  90. </template>
  91. <!-- 样式编辑 -->
  92. <template slot="edit-style">
  93. <template v-if="nc.lazyLoad">
  94. <search-resource></search-resource>
  95. <div class="template-edit-title">
  96. <h3>搜索样式</h3>
  97. <div class="layui-form-item icon-radio">
  98. <label class="layui-form-label sm">框体样式</label>
  99. <div class="layui-input-block">
  100. <span v-for="item in nc.tempData.borderList" v-if="nc.borderType==item.value">{{item.label}}</span>
  101. <ul class="icon-wrap">
  102. <li v-for="(item) in nc.tempData.borderList" @click="nc.borderType=item.value" :class="{'text-color border-color':nc.borderType==item.value}">
  103. <i class="iconfont" :class="[{'text-color': nc.borderType==item.value}, item.icon_img]"></i>
  104. </li>
  105. </ul>
  106. </div>
  107. </div>
  108. <color :data="{ field : 'textColor', 'label' : '文本颜色','defaultColor': '#303133' }"></color>
  109. <color :data="{ field : 'elementBgColor', 'label' : '背景颜色' }"></color>
  110. </div>
  111. </template>
  112. </template>
  113. <!-- 资源 -->
  114. <template slot="resource">
  115. <js>
  116. var searchResourcePath = "{$resource_path}"; // http路径
  117. var searchRelativePath = "{$relative_path}"; // 相对路径
  118. </js>
  119. <css src="{$resource_path}/css/design.css"></css>
  120. <js src="{$resource_path}/js/design.js"></js>
  121. </template>
  122. </nc-component>