default_picture.html 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <style>
  4. .layui-form-item {
  5. margin: 5px 0 10px 0;
  6. }
  7. </style>
  8. {/block}
  9. {block name="main"}
  10. <div class="layui-form form-wrap">
  11. <div class="layui-form-item">
  12. <label class="layui-form-label">默认商品图片:</label>
  13. <div class="layui-input-inline">
  14. <div class="upload-img-block">
  15. <div class="upload-img-box {if !empty($default_img.goods)}hover{/if}">
  16. <div class="upload-default" id="imgUploadGoods">
  17. {if empty($default_img.goods)}
  18. <div class="upload">
  19. <i class="iconfont iconshangchuan"></i>
  20. <p>点击上传</p>
  21. </div>
  22. {else/}
  23. <div id="preview_imgUploadGoods" class="preview_img">
  24. <img layer-src src="{:img($default_img.goods)}" alt="" class="img_prev">
  25. </div>
  26. {/if}
  27. </div>
  28. <div class="operation">
  29. <div>
  30. <i title="图片预览" class="iconfont iconreview js-preview" style="margin-right: 20px;"></i>
  31. <i title="删除图片" class="layui-icon layui-icon-delete js-delete"></i>
  32. </div>
  33. <div class="replace_img js-replace">点击替换</div>
  34. </div>
  35. <input type="hidden" name="goods" {if $default_img} value="{$default_img.goods}" {/if}>
  36. </div>
  37. <!-- <p id="imgUploadGoods" class=" {if condition="$default_img.goods"} replace {else/} no-replace{/if}">替换</p>
  38. <i class="del {if !empty($default_img.goods)}show{/if}">x</i> -->
  39. </div>
  40. </div>
  41. </div>
  42. <div class="word-aux">
  43. <p>说明:默认商品图针对默认商品数据的商品图片。</p>
  44. </div>
  45. <div class="layui-form-item">
  46. <label class="layui-form-label">默认会员头像:</label>
  47. <div class="layui-input-inline">
  48. <div class="upload-img-block">
  49. <div class="upload-img-box {if !empty($default_img.head)}hover{/if}">
  50. <div class="upload-default" id="imgUploadMember">
  51. {if empty($default_img.head)}
  52. <div class="upload">
  53. <i class="iconfont iconshangchuan"></i>
  54. <p>点击上传</p>
  55. </div>
  56. {else/}
  57. <div id="preview_imgUploadMember" class="preview_img">
  58. <img layer-src src="{:img($default_img.head)}" alt="" class="img_prev">
  59. </div>
  60. {/if}
  61. </div>
  62. <div class="operation">
  63. <div>
  64. <i title="图片预览" class="iconfont iconreview js-preview" style="margin-right: 20px;"></i>
  65. <i title="删除图片" class="layui-icon layui-icon-delete js-delete"></i>
  66. </div>
  67. <div class="replace_img js-replace">点击替换</div>
  68. </div>
  69. <input type="hidden" name="head" {if $default_img} value="{$default_img.head}" {/if}>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. <div class="word-aux">
  75. <p>说明:前后端没有上传头像的会员会展示该默认图。</p>
  76. </div>
  77. <div class="layui-form-item">
  78. <label class="layui-form-label">默认门店图片:</label>
  79. <div class="layui-input-inline">
  80. <div class="upload-img-block">
  81. <div class="upload-img-box {if !empty($default_img.store)}hover{/if}">
  82. <div class="upload-default" id="imgUploadStore">
  83. {if empty($default_img.store)}
  84. <div class="upload">
  85. <i class="iconfont iconshangchuan"></i>
  86. <p>点击上传</p>
  87. </div>
  88. {else/}
  89. <div id="preview_imgUploadStore" class="preview_img">
  90. <img layer-src src="{:img($default_img.store)}" alt="" class="img_prev">
  91. </div>
  92. {/if}
  93. </div>
  94. <div class="operation">
  95. <div>
  96. <i title="图片预览" class="iconfont iconreview js-preview" style="margin-right: 20px;"></i>
  97. <i title="删除图片" class="layui-icon layui-icon-delete js-delete"></i>
  98. </div>
  99. <div class="replace_img js-replace">点击替换</div>
  100. </div>
  101. <input type="hidden" name="store" {if $default_img} value="{$default_img.store}" {/if}>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. <div class="word-aux">
  107. <p>说明:如果门店未上传门店logo,那么前后端都默认展示该图片。</p>
  108. </div>
  109. <div class="layui-form-item">
  110. <label class="layui-form-label">默认文章图片:</label>
  111. <div class="layui-input-inline">
  112. <div class="upload-img-block">
  113. <div class="upload-img-box {if !empty($default_img.article)}hover{/if}">
  114. <div class="upload-default" id="imgUploadArticle">
  115. {if empty($default_img.article)}
  116. <div class="upload">
  117. <i class="iconfont iconshangchuan"></i>
  118. <p>点击上传</p>
  119. </div>
  120. {else/}
  121. <div id="preview_imgUploadArticle" class="preview_img">
  122. <img layer-src src="{:img($default_img.article)}" alt="" class="img_prev">
  123. </div>
  124. {/if}
  125. </div>
  126. <div class="operation">
  127. <div>
  128. <i title="图片预览" class="iconfont iconreview js-preview" style="margin-right: 20px;"></i>
  129. <i title="删除图片" class="layui-icon layui-icon-delete js-delete"></i>
  130. </div>
  131. <div class="replace_img js-replace">点击替换</div>
  132. </div>
  133. <input type="hidden" name="article" {if $default_img} value="{$default_img.article}" {/if}>
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. <div class="word-aux">
  139. <p>说明:文章封面图没有或者错误时展示该默认图。</p>
  140. </div>
  141. <div class="form-row">
  142. <button class="layui-btn" lay-submit lay-filter="save">保存</button>
  143. <a id="defaultGoodsImgId"></a>
  144. <a id="defaultHeadimgId"></a>
  145. <a id="defaultStoreimgId"></a>
  146. <a id="defaultArticleimgId"></a>
  147. </div>
  148. </div>
  149. {/block}
  150. {block name="script"}
  151. <script>
  152. var saveData = null;
  153. var totalUploadNum = 0;
  154. var completeUploadNum = 0;
  155. var store_upload;
  156. var goods_upload;
  157. var member_upload;
  158. var article_upload;
  159. layui.use(['form'], function() {
  160. var form = layui.form,
  161. repeat_flag = false; //防重复标识
  162. form.render();
  163. goods_upload = new Upload({
  164. elem: '#imgUploadGoods',
  165. auto:false,
  166. bindAction:'#defaultGoodsImgId',
  167. callback: function(res) {
  168. uploadComplete('goods', res.data.pic_path);
  169. }
  170. });
  171. member_upload = new Upload({
  172. elem: '#imgUploadMember',
  173. auto:false,
  174. bindAction:'#defaultHeadimgId',
  175. callback: function(res) {
  176. uploadComplete('head', res.data.pic_path);
  177. }
  178. });
  179. store_upload = new Upload({
  180. elem: '#imgUploadStore',
  181. auto:false,
  182. bindAction:'#defaultStoreimgId',
  183. callback: function(res) {
  184. uploadComplete('store', res.data.pic_path);
  185. }
  186. });
  187. article_upload = new Upload({
  188. elem: '#imgUploadArticle',
  189. auto:false,
  190. bindAction:'#defaultArticleimgId',
  191. callback: function(res) {
  192. uploadComplete('article', res.data.pic_path);
  193. }
  194. });
  195. function uploadComplete(field, pic_path) {
  196. saveData.field[field] = pic_path;
  197. completeUploadNum += 1;
  198. if(completeUploadNum == totalUploadNum){
  199. saveFunc();
  200. }
  201. }
  202. function saveFunc(){
  203. var data = saveData;
  204. $.ajax({
  205. type: "POST",
  206. url: ns.url("shop/config/defaultpicture"),
  207. data: data.field,
  208. dataType: 'JSON',
  209. success: function(res) {
  210. repeat_flag = false;
  211. if (res.code == 0) {
  212. layer.msg(res.message);
  213. location.reload();
  214. } else {
  215. layer.msg(res.message);
  216. }
  217. }
  218. });
  219. }
  220. form.on('submit(save)', function(data) {
  221. if (repeat_flag) return false;
  222. repeat_flag = true;
  223. // 删除图片
  224. if (!data.field.goods && goods_upload.path != 'public/static/img/default_img/square.png') goods_upload.delete();
  225. if (!data.field.head && member_upload.path != 'public/static/img/default_img/head.png') member_upload.delete();
  226. if (!data.field.store && store_upload.path != 'public/static/img/default_img/square.png') store_upload.delete();
  227. if (!data.field.article && article_upload.path != 'public/static/img/default_img/article.png') article_upload.delete();
  228. saveData = data;
  229. var obj = $("img.img_prev[data-prev='1']");
  230. totalUploadNum = obj.length;
  231. if(totalUploadNum > 0){
  232. obj.each(function(){
  233. var actionId = $(this).attr('data-action-id');
  234. $(actionId).click();
  235. })
  236. }else{
  237. saveFunc();
  238. }
  239. });
  240. });
  241. </script>
  242. {/block}