edit.html 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. {extend name="$extend_base"/}
  2. {block name="resources"}
  3. <link rel="stylesheet" href="STATIC_EXT/colorPicker/css/colorpicker.css" />
  4. <link rel="stylesheet" href="STATIC_EXT/diyview/css/diyview.css" />
  5. {/block}
  6. {block name="main"}
  7. <div class="custom-save js-top-custom-save layui-hide">
  8. <span></span>
  9. <div class="button-group">
  10. <button class="layui-btn save-button save">保存</button>
  11. {notempty name="$diy_view_info"}
  12. <button class="layui-btn" onclick="preview()">预览</button>
  13. {/notempty}
  14. <button class="layui-btn layui-btn-primary cancel-btn">取消</button>
  15. </div>
  16. </div>
  17. <div id="diyView">
  18. <!-- 组件列表 -->
  19. <div class="component-list">
  20. <div class="tab">
  21. <span class="selected">内置组件</span>
  22. <span data-type="EXTEND">第三方组件</span>
  23. </div>
  24. <nav>
  25. {foreach name="$diy_view_utils" item="vo" key="k"}
  26. <h3 data-index="{$k}" data-type="{$vo.type}" {if $vo['type'] == 'EXTEND'}style="display:none;"{/if}><img src="__STATIC__/ext/diyview/img/component_down.png" />{$vo.type_name}</h3>
  27. <ul data-index="{$k}" data-type="{$vo.type}" {if $vo['type'] == 'EXTEND'}style="display:none;"{/if}>
  28. {if $vo['type'] == 'SYSTEM'}
  29. <li title="弹窗广告" @click='changeCurrentIndex(-98)'>
  30. <i class="iconfont icondanchuangguanggao"></i>
  31. <span>弹窗广告</span>
  32. </li>
  33. {/if}
  34. {foreach name="$vo.list" item="li" key="li_k"}
  35. <li title="{$li.title}" data-name="{$li.name}" data-max-count="{$li.max_count}" data-value='{$li.value}' data-is-delete="{$li.is_delete}" data-addon-name="{$li.addon_name}"
  36. {if condition="$li.value"} @click='addComponent({$li.value},{ name : "{$li.name}", title : "{$li.title}", max_count : {$li.max_count}, addon_name : "{$li.addon_name}", is_delete : "{$li.is_delete}" })'
  37. :class="{ 'disabled' : !checkComponentIsAdd('{$li.name}') }"
  38. {else/}class="disabled"{/if}>
  39. <i class="{$li.icon}"></i>
  40. <span>{$li.title}</span>
  41. </li>
  42. {/foreach}
  43. </ul>
  44. {/foreach}
  45. </nav>
  46. </div>
  47. <div class="preview-wrap">
  48. <div class="loading-layer">
  49. <div class="loading-anim">
  50. <div class="box item"><div class="border out item"></div></div>
  51. </div>
  52. </div>
  53. <div class="preview-restore-wrap">
  54. <div class="div-wrap">
  55. <button class="layui-btn layui-btn-primary position-page-btn" @click="changeCurrentIndex(-99)">页面设置</button>
  56. <!-- 快捷操作 -->
  57. <ul class="quick-action">
  58. <!-- <li>-->
  59. <!-- <i class="icondiy icon-system-eye-line"></i>-->
  60. <!-- <span>隐藏</span>-->
  61. <!-- </li>-->
  62. <li @click="moveUpComponent()" :class="{ disabled : ((currentIndex - 1) < 0) }">
  63. <i class="icondiy icon-system-jiantoushang"></i>
  64. <span>上移</span>
  65. </li>
  66. <li @click="moveDownComponent()" :class="{ disabled : ( currentIndex < 0 || data.length === 0 || (currentIndex + 1) === data.length) }">
  67. <i class="icondiy icon-system-jiantouxia"></i>
  68. <span>下移</span>
  69. </li>
  70. <li @click="copyComponent()" :class="{ disabled : ( currentIndex < 0) }">
  71. <i class="icondiy icon-system-file-copy-line"></i>
  72. <span>复制</span>
  73. </li>
  74. <li @click="delComponent(currentIndex)" :class="{ disabled : currentIndex < -1 }">
  75. <i class="icondiy icon-system-delete-bin-6-line"></i>
  76. <span>删除</span>
  77. </li>
  78. <li @click="resetComponent()" :class="{ disabled : ( currentIndex < 0) }">
  79. <i class="icondiy icon-system-loader-4-line"></i>
  80. <span>重置</span>
  81. </li>
  82. </ul>
  83. <div class='diy-view-wrap layui-form' :style="{ backgroundColor : global.pageBgColor,backgroundImage : 'url('+changeImgUrl(global.bgUrl)+')' }">
  84. <div class="preview-head" @click="changeCurrentIndex(-99)">
  85. <!-- 顶部tabbar风格 -->
  86. <tabbar :current-index="currentIndex" :global="global"></tabbar>
  87. <!-- 页面设置 -->
  88. <div class="page-set-wrap" :class="{ selected : currentIndex == -99 }" :data-sort="-99" v-show="data.length == 0 || currentIndex == -99">
  89. <page-set :current-index="currentIndex" :global="global" :global-lazy-load="globalLazyLoad"></page-set>
  90. </div>
  91. </div>
  92. <!-- 弹窗广告 -->
  93. <pop-window :current-index="currentIndex" :global="global" :global-lazy-load="globalLazyLoad"></pop-window>
  94. <div class="preview-block">
  95. <div v-for="(nc,index) in data" :key="nc.id" :data-index="index" :data-id="nc.id" :class="{ 'draggable-element' : true,selected : currentIndex == index }" :data-sort="index">
  96. {foreach name="$diy_view_utils" item="vo"}
  97. {foreach name="$vo.list" item="li"}
  98. <template v-if="nc.componentName == '{$li.name}'">
  99. {:event('DiyViewUtils',[ 'name' => $li['name'], 'addon_name' => $li['addon_name'] ],true)}
  100. </template>
  101. {/foreach}
  102. {/foreach}
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. <!-- 预览 -->
  110. <template slot="preview"></template>
  111. <div class="custom-save js-bottom-custom-save">
  112. <button class="layui-btn save">保存</button>
  113. {notempty name="$diy_view_info"}
  114. <button class="layui-btn" onclick="preview()">预览</button>
  115. {/notempty}
  116. <button class="layui-btn full-screen-btn">全屏</button>
  117. </div>
  118. </div>
  119. {if condition="!empty($diy_view_info)"}
  120. <input type="hidden" id="id" value="{$diy_view_info.id}">
  121. <input type="hidden" id="info" value='{$diy_view_info.value ?? ""}' />
  122. {/if}
  123. <input type="hidden" id="name" value="{$name}" />
  124. <input type="hidden" id="title" value="{$title}" />
  125. <input type="hidden" id="template_id" value="{$template_id}" />
  126. <input type="hidden" id="page_type" value="{$page_type ?? ''}" />
  127. {/block}
  128. {block name="script"}
  129. <script>
  130. var requestUrl = '{$request_url}';
  131. var baseStyle = '{$base ?? "app/shop/view/base/style2.html"}';
  132. var storeIsExit = '{$store_is_exit}';
  133. </script>
  134. <script src="STATIC_JS/vue.js"></script>
  135. <script src="STATIC_EXT/colorPicker/js/colorpicker.js"></script>
  136. <script src="STATIC_EXT/diyview/js/async_load_css.js"></script>
  137. <script src="STATIC_EXT/diyview/js/ddsort.js"></script>
  138. <script src="STATIC_EXT/ueditor/ueditor.config.js"></script>
  139. <script src="STATIC_EXT/ueditor/ueditor.all.js"> </script>
  140. <script src="STATIC_EXT/ueditor/lang/zh-cn/zh-cn.js"></script>
  141. <script src="STATIC_EXT/diyview/js/components.js"></script>
  142. <script src="STATIC_EXT/diyview/js/custom_template.js"></script>
  143. {include file="app/shop/view/diy/iconfont_component.html"/}
  144. {/block}