design.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <nc-component :data="data[index]" class="image-ads">
  2. <!-- 预览 -->
  3. <template slot="preview">
  4. <template v-if="nc.lazyLoad">
  5. <image-ads-carouse></image-ads-carouse>
  6. <div class="image-ads-warp" :style="{
  7. backgroundColor: nc.componentBgColor,
  8. borderTopLeftRadius: (nc.componentAngle == 'round' ? nc.topAroundRadius + 'px' : 0),
  9. borderTopRightRadius: (nc.componentAngle == 'round' ? nc.topAroundRadius + 'px' : 0),
  10. borderBottomLeftRadius: (nc.componentAngle == 'round' ? nc.bottomAroundRadius + 'px' : 0),
  11. borderBottomRightRadius: (nc.componentAngle == 'round' ? nc.bottomAroundRadius + 'px' : 0)
  12. }">
  13. <div class="image-ads-content">
  14. <template v-for="(item,index) in nc.list">
  15. <div v-if="item.imageUrl" :style="{height: nc.tempData.swiperHeight + 'px'}" :class="['image-ads-item',{'layui-hide': nc.tempData.carouselIndex != index}]">
  16. <nc-image :src="changeImgUrl(item.imageUrl)" :mode="item.imageMode"></nc-image>
  17. </div>
  18. <div v-else :style="{backgroundImage: 'url(' + changeImgUrl('public/static/img/default_img/figure.png') + ')',height: nc.tempData.swiperHeight + 'px'}" :class="['image-ads-item',{'layui-hide': nc.tempData.carouselIndex != index}]"></div>
  19. </template>
  20. </div>
  21. <div class="carousel-btn" v-if="nc.list.length > 1">
  22. <div class="arrows">
  23. <i class="iconfont iconback_light" @click="nc.tempData.carouselIndex = (nc.tempData.carouselIndex ? nc.tempData.carouselIndex-1 : nc.tempData.carouselIndex)"></i>
  24. <i class="iconfont iconyoujiantou" @click="nc.tempData.carouselIndex = [nc.tempData.carouselIndex < nc.list.length-1 ? +nc.tempData.carouselIndex+1 : nc.list.length-1]"></i>
  25. </div>
  26. <div :class="['dot-wrap',nc.indicatorLocation,nc.carouselStyle]">
  27. <i v-for="(numItem,numIndex) in nc.list.length" :class="{'active': nc.tempData.carouselIndex == numIndex}" :style="[nc.tempData.carouselIndex == numIndex && {'backgroundColor': nc.indicatorColor}]" @click="nc.tempData.carouselIndex = numIndex"></i>
  28. </div>
  29. </div>
  30. </div>
  31. </template>
  32. </template>
  33. <!-- 内容编辑 -->
  34. <template slot="edit-content">
  35. <template v-if="nc.lazyLoad">
  36. <div class="template-edit-title">
  37. <h3>图片设置</h3>
  38. <image-ads-list></image-ads-list>
  39. <div class="image-ad-list">
  40. <p class="word-aux">建议上传尺寸相同的图片,推荐尺寸750*350</p>
  41. <ul class="navigation-set-list">
  42. <li v-for="(item,index) in nc.list" :data-sort="index" :data-index="index" :key="item.id">
  43. <img-upload :data="{ data: item}" data-disabled="1"></img-upload>
  44. <div class="content-block">
  45. <nc-link :data="{ field : item.link }"></nc-link>
  46. <nc-image-mode :data="item"></nc-image-mode>
  47. </div>
  48. <div class="error-msg"></div>
  49. <i class="del" @click="nc.tempData.methods.deleteItem(index)" data-disabled="1">x</i>
  50. <div class="iconfont icontuodong"></div>
  51. </li>
  52. </ul>
  53. <div class="add-item text-color" v-if="nc.list.length < 10" @click="nc.tempData.methods.addItem()">
  54. <p>
  55. <i>+</i>
  56. <span>添加一个图片广告</span>
  57. </p>
  58. </div>
  59. </div>
  60. </div>
  61. </template>
  62. </template>
  63. <!-- 样式编辑 -->
  64. <template slot="edit-style">
  65. <template v-if="nc.lazyLoad">
  66. <div class="template-edit-title" v-if="nc.list.length > 1">
  67. <h3>指示器设置</h3>
  68. <div class="layui-form-item checkbox-wrap">
  69. <label class="layui-form-label sm">展示开关</label>
  70. <div class="layui-input-block">
  71. <span v-if="nc.indicatorIsShow == true">显示</span>
  72. <span v-else>隐藏</span>
  73. <div v-if="nc.indicatorIsShow == true" @click="nc.indicatorIsShow = false" class="layui-unselect layui-form-checkbox layui-form-checked" lay-skin="primary"><i class="layui-icon layui-icon-ok"></i></div>
  74. <div v-else @click="nc.indicatorIsShow = true" class="layui-unselect layui-form-checkbox" lay-skin="primary"><i class="layui-icon layui-icon-ok"></i></div>
  75. </div>
  76. <div class="word-aux diy-word-aux">此处控制当前页面导航栏是否显示</div>
  77. </div>
  78. <div class="layui-form-item icon-radio">
  79. <label class="layui-form-label sm banner-sm">样式</label>
  80. <div class="layui-input-block">
  81. <span v-for="(item) in nc.tempData.imgAdsCarousel" :class="[item.value == nc.carouselStyle ? '' : 'layui-hide']">{{item.text}}</span>
  82. <ul class="icon-wrap">
  83. <li v-for="(item) in nc.tempData.imgAdsCarousel" :class="[item.value == nc.carouselStyle ? 'text-color border-color' : '']" @click="nc.carouselStyle=item.value">
  84. <i class="iconfont" :class="[{'text-color': item.value == nc.carouselStyle}, item.src]"></i>
  85. </li>
  86. </ul>
  87. </div>
  88. </div>
  89. <text-align :data="{ field : 'indicatorLocation', 'label' : '位置' }"></text-align>
  90. <color :data="{ field : 'indicatorColor', 'label' : '颜色' }"></color>
  91. </div>
  92. </template>
  93. </template>
  94. <!-- 资源 -->
  95. <template slot="resource">
  96. <js>
  97. var imageAdsResourcePath = "{$resource_path}"; // http路径
  98. var imageAdsRelativePath = "{$relative_path}"; // 相对路径
  99. </js>
  100. <css src="{$resource_path}/css/design.css"></css>
  101. <js src="{$resource_path}/js/design.js"></js>
  102. </template>
  103. </nc-component>