add.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <style>
  4. .layui-layout-admin .layui-body .body-content{min-height: initial;padding-top: 0;padding-bottom: 0;margin: 0;}
  5. .layui-form-label.mid{width: 100px;}
  6. .layui-form-label.mid+.layui-input-block{margin-left: 100px;}
  7. .new-mid{margin-left: -20px !important;}
  8. .poster-form{display: flex;background: #eee;}
  9. .poster-left{width: 400px;height: 800px;background: #FFFFFF;padding: 10px 30px 10px 10px;}
  10. .poster-left-header{font-size: 18px;border-bottom: 1px solid #eee;padding: 0 0 10px 0;margin: 0 0 10px 0;}
  11. .poster-left-header1{font-size: 18px;padding: 0 0 10px 0;}
  12. .poster-left-header2{font-size: 18px;padding: 0 0 10px 0;}
  13. .layui-input-block{margin-left: 0;}
  14. .poster-headimg,.poster-name{display: flex;}
  15. .poster-right{width: 360px;height: 640px;opacity: 0.9;margin: 20px 0 0 271px;background-color: #fff;}
  16. .tips{width: 153px;height: 16px;font-size: 12px;font-family: Microsoft YaHei;font-weight: 400;color: #909399;padding-left: 100px;}
  17. .album-img-select{height: 30px;line-height: 30px;margin: 0 0 5px 20px;}
  18. .upload-img-block{width: 300px;height: 100px;}
  19. .upload{top: 50% !important;height: 100px;}
  20. .form-row{padding-top: 20px;}
  21. .poster-tips{background: #fff;width: 280px;margin-left: 320px;padding: 20px 20px;border: 1px solid #e8e8e8;border-right: none;}
  22. .set-tips{font-size: 16px;font-family: Microsoft YaHei;font-weight: bolder;color: #303133;line-height: 22px;}
  23. .content{font-size: 12px;font-family: Microsoft YaHei;font-weight: 400;color: #909399;line-height: 22px;margin-top: 10px;}
  24. .goods-info{width: 340px;height: 354px;border-radius: 10px;margin: 50px 15px 20px;}
  25. .goods_name{/*border-radius: 15px;*/font-family: Microsoft YaHei;font-weight: 400;line-height: 26px;text-align: left;margin: 30px 25px;}
  26. .goods_img{border-radius: 5px;}
  27. .goods_price-info{width: 310px;height: 80px;border-radius: 10px;margin: 0 15px;padding: 15px;}
  28. .goods_price{font-size: 18px;font-family: Microsoft YaHei;font-weight: 400;color: #FF4544;display: inline-block;width: 75px;height: 20px;}
  29. .goods_market_price{font-size: 12px;font-family: Microsoft YaHei;font-weight: 400;text-decoration: line-through;color: #999999;display: inline-block;margin-top: 6px;}
  30. .layui-nav-more1{width: 7px;height: 7px;border-width: 1px;border-color: #333 #333 transparent transparent;border-style: solid;transform: rotate(135deg);top: 16px;right: 16px;margin-top: 7px;}
  31. .layui-nav-more2{width: 7px;height: 7px;border-width: 1px;border-color: #333 #333 transparent transparent;border-style: solid;transform: rotate(135deg);top: 16px;right: 16px;margin-top: 7px;}
  32. .layui-new-more1{transform: rotate(45deg);}
  33. .layui-new-more2{transform: rotate(45deg);}
  34. .layui-colorpicker{margin-left: 15px;}
  35. .form-row{position: fixed;bottom: 0px;left: 180px;width: 89.7%;background: #fff;padding: 10px 0;}
  36. .layui-colorpicker-main-input .layui-btn{padding: 0 10px;}
  37. .circle{border-radius: 50%;}
  38. .upload img{margin-top: 20px;}
  39. .img_prev{margin-top: 0 !important;}
  40. .layui-layout-admin.admin-style-2 .form-row{text-align: center;}
  41. .layui-layout-admin.admin-style-2 .layui-body .body-content{padding: 0;}
  42. </style>
  43. {/block}
  44. {block name="main"}
  45. <div class="layui-form add-poster">
  46. <div class="poster-form">
  47. <div id="view" style="display: flex;"></div>
  48. <div class="poster-tips">
  49. <div class="set-tips">海报设置说明</div>
  50. <div class="content">
  51. 1. 用户头像,用户昵称这两个元素需要空出<br>
  52. 2. 裂变海报其他部分皆可自定义设计<br>
  53. 3. 可自行拖拉设置相应元素的大小
  54. </div>
  55. </div>
  56. </div>
  57. <div class="form-row">
  58. <button class="layui-btn" lay-submit lay-filter="save_poster">保存</button>
  59. <input type="hidden" name="template_id" value='{notempty name="$template_data"}{$template_data.template_id}{/notempty}'>
  60. <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
  61. </div>
  62. </div>
  63. <script type="text/html" id="poster_left">
  64. <div class="poster-left">
  65. <div class="poster-left-header">基础设置</div>
  66. <div class="layui-form-item">
  67. <label class="layui-form-label mid"><span class="required">*</span>海报名称</label>
  68. <div class="layui-input-block mid">
  69. <input type="text" class="layui-input" lay-verify="required" placeholder="请输入海报名称" name="poster_name" value="{{d.poster_name || ''}}"/>
  70. </div>
  71. </div>
  72. <div class="layui-form-item">
  73. <label class="layui-form-label short-label mid"><span class="required">*</span>上传海报</label>
  74. <div class="layui-input-block mid">
  75. <div class="upload-img-block icon">
  76. <div class="upload-img-box {{d.background ? 'hover' : ''}}" >
  77. <div class="upload-default" id="posterImg">
  78. {{# if (d.background) { }}
  79. <div id="preview_posterImg" class="preview_img">
  80. <img layer-src src='{{ ns.img(d.background) }}' class="img_prev" data-id="qr_img"/>
  81. <p style="width: 300px;"></p>
  82. </div>
  83. {{# } else { }}
  84. <div class="upload">
  85. <i class="iconfont iconshangchuan"></i>
  86. <p>点击上传</p>
  87. </div>
  88. {{# } }}
  89. </div>
  90. <div class="operation">
  91. <div style="position: absolute; top: -10px; left: 110px;">
  92. <i title="图片预览" class="iconfont iconreview js-preview"></i>
  93. <i title="删除图片" class="layui-icon layui-icon-delete js-delete"></i>
  94. </div>
  95. <div class="replace_img js-replace">点击替换</div>
  96. </div>
  97. <input type="hidden" lay-verify="background" name="background" value='{{d.background}}' />
  98. </div>
  99. </div>
  100. </div>
  101. </div>
  102. <div class="tips">建议图片尺寸:720*1280px</div>
  103. <div class="layui-form-item poster-headimg">
  104. <div class="layui-form album-img-select">
  105. <input type="checkbox" name="switch" lay-filter="headimg" value="" lay-skin="primary" {{d.headimg_is_show == '1' ? 'checked' : ''}}>
  106. </div>
  107. <label class="layui-form-label mid" style="text-align: left;">用户头像</label>
  108. <div class="layui-input-block mid new-mid">
  109. <div class="layui-input-block">
  110. <input type="radio" lay-filter="headimg" name="shop_status" value="circle" title="圆形" {{d.headimg_shape == 'circle' ? 'checked' : ''}}>
  111. <input type="radio" lay-filter="headimg" name="shop_status" value="square" title="方形" {{d.headimg_shape == 'square' ? 'checked' : ''}}>
  112. </div>
  113. </div>
  114. </div>
  115. <div class="layui-form-item poster-name">
  116. <div class="layui-form album-img-select">
  117. <input type="checkbox" name="check[]" lay-filter="nickname" value="" lay-skin="primary" {{d.nickname_is_show == '1' ? 'checked' : ''}}>
  118. </div>
  119. <label class="layui-form-label mid" style="text-align: left;">用户昵称</label>
  120. <div class="layui-input-block mid new-mid">
  121. <div class="poster-name-box">
  122. <div class="layui-form poster-select len-short" lay-filter="poster-select">
  123. <select name="" lay-filter="nickname">
  124. {{# for (var font_index = 14; font_index <= 36; font_index++) { }}
  125. {{# if (font_index == d.nickname_font_size) { }}
  126. <option value="{{font_index}}" selected>{{font_index}}px</option>
  127. {{# } else { }}
  128. <option value="{{font_index}}">{{font_index}}px</option>
  129. {{# } }}
  130. {{# } }}
  131. </select>
  132. </div>
  133. </div>
  134. </div>
  135. <div class="layui-form poster_color_nickname">
  136. 颜色:
  137. <div>
  138. <input type="hidden" name="color" id="friendfission-all-input">
  139. <div class="friendfission-all"></div>
  140. </div>
  141. </div>
  142. </div>
  143. <div style="display: flex; justify-content: space-between; border-bottom: 1px solid #eee;">
  144. <div class="poster-left-header1">商品信息设置</div>
  145. <div class="layui-nav-more1"></div>
  146. </div>
  147. <div class="layer-form">
  148. <div class="layui-form-item poster-headimg">
  149. <div class="layui-form album-img-select">
  150. <input type="checkbox" name="check[]" lay-filter="goods_img" value="" lay-skin="primary" {{d.goods_img_is_show == '1' ? 'checked' : ''}}>
  151. </div>
  152. <label class="layui-form-label mid" style="text-align: left;">商品图</label>
  153. </div>
  154. <div class="layui-form-item poster-name">
  155. <div class="layui-form album-img-select">
  156. <input type="checkbox" name="check[]" lay-filter="goods_name" value="" lay-skin="primary" {{d.goods_name_is_show == '1' ? 'checked' : ''}}>
  157. </div>
  158. <label class="layui-form-label mid" style="text-align: left;">商品名称</label>
  159. <div class="layui-input-block mid new-mid">
  160. <div class="poster-name-box">
  161. <div class="layui-form poster-select len-short" lay-filter="poster-select">
  162. <select name="" lay-filter="goods_name">
  163. {{# for (var font_index = 14; font_index <= 36; font_index++) { }}
  164. {{# if (font_index == d.goods_name_font_size) { }}
  165. <option value="{{font_index}}" selected>{{font_index}}px</option>
  166. {{# } else { }}
  167. <option value="{{font_index}}">{{font_index}}px</option>
  168. {{# } }}
  169. {{# } }}
  170. </select>
  171. </div>
  172. </div>
  173. </div>
  174. <div class="layui-form poster_color_goods_name">
  175. 颜色:
  176. <div>
  177. <input type="hidden" name="color" id="friendfission-all-input">
  178. <div class="friendfission-all"></div>
  179. </div>
  180. </div>
  181. </div>
  182. <div class="layui-form-item poster-name">
  183. <div class="layui-form album-img-select">
  184. <input type="checkbox" name="check[]" value="" lay-filter="goods_price" lay-skin="primary" {{d.goods_price_is_show == '1' ? 'checked' : ''}}>
  185. </div>
  186. <label class="layui-form-label mid" style="text-align: left;">商品价格</label>
  187. <div class="layui-input-block mid new-mid">
  188. <div class="poster-name-box">
  189. <div class="layui-form poster-select len-short" lay-filter="poster-select">
  190. <select name="" lay-filter="goods_price">
  191. {{# for (var font_index = 14; font_index <= 36; font_index++) { }}
  192. {{# if (font_index == d.goods_price_font_size) { }}
  193. <option value="{{font_index}}" selected>{{font_index}}px</option>
  194. {{# } else { }}
  195. <option value="{{font_index}}">{{font_index}}px</option>
  196. {{# } }}
  197. {{# } }}
  198. </select>
  199. </div>
  200. </div>
  201. </div>
  202. <div class="layui-form poster_color_goods_price">
  203. 颜色:
  204. <div>
  205. <input type="hidden" name="color" id="friendfission-all-input">
  206. <div class="friendfission-all"></div>
  207. </div>
  208. </div>
  209. </div>
  210. <div class="layui-form-item poster-name">
  211. <div class="layui-form album-img-select">
  212. <input type="checkbox" name="check[]" value="" lay-filter="goods_market_price" lay-skin="primary" {{d.goods_market_price_is_show == '1' ? 'checked' : ''}}>
  213. </div>
  214. <label class="layui-form-label mid" style="text-align: left;">商品划线价</label>
  215. <div class="layui-input-block mid new-mid">
  216. <div class="poster-name-box">
  217. <div class="layui-form poster-select len-short" lay-filter="poster-select">
  218. <select name="" lay-filter="goods_market_price">
  219. {{# for (var font_index = 14; font_index <= 36; font_index++) { }}
  220. {{# if (font_index == d.goods_market_price_font_size) { }}
  221. <option value="{{font_index}}" selected>{{font_index}}px</option>
  222. {{# } else { }}
  223. <option value="{{font_index}}">{{font_index}}px</option>
  224. {{# } }}
  225. {{# } }}
  226. </select>
  227. </div>
  228. </div>
  229. </div>
  230. <div class="layui-form poster_color_goods_market_price">
  231. 颜色:
  232. <div>
  233. <input type="hidden" name="color" id="friendfission-all-input">
  234. <div class="friendfission-all"></div>
  235. </div>
  236. </div>
  237. </div>
  238. </div>
  239. <div style="display: flex; justify-content: space-between; border-bottom: 1px solid #eee;">
  240. <div class="poster-left-header2">店铺信息设置</div>
  241. <div class="layui-nav-more2"></div>
  242. </div>
  243. <div class="layer-form2">
  244. <div class="layui-form-item poster-headimg">
  245. <div class="layui-form album-img-select">
  246. <input type="checkbox" name="check[]" lay-filter="store_logo" value="" lay-skin="primary" {{d.store_logo_is_show == '1' ? 'checked' : ''}}>
  247. </div>
  248. <label class="layui-form-label mid" style="text-align: left;">店铺logo</label>
  249. </div>
  250. <div class="layui-form-item poster-name">
  251. <div class="layui-form album-img-select">
  252. <input type="checkbox" name="check[]" value="" lay-filter="store_name" lay-skin="primary" {{d.store_name_is_show == '1' ? 'checked' : ''}}>
  253. </div>
  254. <label class="layui-form-label mid" style="text-align: left;">店铺名称</label>
  255. <div class="layui-input-block mid new-mid">
  256. <div class="poster-name-box">
  257. <div class="layui-form poster-select len-short" lay-filter="poster-select">
  258. <select name="" lay-filter="store_name">
  259. {{# for (var font_index = 14; font_index <= 36; font_index++) { }}
  260. {{# if (font_index == d.store_name_font_size) { }}
  261. <option value="{{font_index}}" selected>{{font_index}}px</option>
  262. {{# } else { }}
  263. <option value="{{font_index}}">{{font_index}}px</option>
  264. {{# } }}
  265. {{# } }}
  266. </select>
  267. </div>
  268. </div>
  269. </div>
  270. <div class="layui-form poster_color_store_name">
  271. 颜色:
  272. <div>
  273. <input type="hidden" name="color" id="friendfission-all-input">
  274. <div class="friendfission-all"></div>
  275. </div>
  276. </div>
  277. </div>
  278. </div>
  279. </div>
  280. <div class="poster-right design-sketch" style="position: relative;border: 1px solid #d6d6d6;
  281. {notempty name='$template_data.background'}background-image:url({:img($template_data.background)}); background-size: 100%; background-repeat: no-repeat;{/notempty}
  282. {{# if (d.background) { }}background-image:url(/{{ d.background }});background-size: 100%;background-repeat: no-repeat;{{# } }}
  283. ">
  284. <div class="headimg {{d.headimg_is_show == '1' ? '' : 'layui-hide'}}" style="position:absolute;top: {{d.headimg_top}}px; left: {{d.headimg_left}}px; width: {{d.headimg_width}}px; height: {{d.headimg_height}}px;">
  285. <img alt="" class="{{d.headimg_shape == 'circle' ? 'circle' : ''}}" src="__STATIC__/img/caner1.png" width="100%" />
  286. </div>
  287. <div class="nickname {{d.nickname_is_show == '1' ? '' : 'layui-hide'}}" style="position:absolute;top: {{d.nickname_top}}px; left: {{d.nickname_left}}px; width: {{d.nickname_width}}px; color: {{d.nickname_color}}; font-size: {{d.nickname_font_size}}px;">
  288. <span class="design-text">用户昵称</span>
  289. </div>
  290. <div style="margin: 10px;">
  291. <div class="store_logo {{d.store_logo_is_show == '1' ? '' : 'layui-hide'}}" style="position:absolute;top: {{d.store_logo_top}}px; left: {{d.store_logo_left}}px; width: {{d.store_logo_width}}px; height: {{d.store_logo_height}}px;">
  292. <img src='{:img($site_data.logo)}' width="100%" />
  293. </div>
  294. <div class="store_name {{d.store_name_is_show == '1' ? '' : 'layui-hide'}}" style="position:absolute;top: {{d.store_name_top}}px; color: {{d.store_name_color}}; left: {{d.store_name_left}}px; width: {{d.store_name_width}}px; height: {{d.store_name_height}}px; font-size: {{d.store_name_font_size}}px;">
  295. <span class="design-text">{$site_data.site_name}</span>
  296. </div>
  297. </div>
  298. <div class="goods-info">
  299. <div class="goods_name {{d.goods_name_is_show == '1' ? '' : 'layui-hide'}}" style="top: {{d.goods_name_top}}px; color: {{d.goods_name_color}}; left: {{d.goods_name_left}}px; width: {{d.goods_name_width}}px; height: {{d.goods_name_height}}px; font-size: {{d.goods_name_font_size}}px;">
  300. <p>商品名称-商品名称-商品名称</p>
  301. </div>
  302. <div class="goods_img {{d.goods_img_is_show == '1' ? '' : 'layui-hide'}}" style="top: {{d.goods_img_top}}px; left: {{d.goods_img_left}}px; width: {{d.goods_img_width}}px; height: {{d.goods_img_height}}px;">
  303. <img src="__STATIC__/img/goods_template.png">
  304. </div>
  305. </div>
  306. <div class="price-info" style="display: flex; justify-content: space-between;">
  307. <div>
  308. <div class="goods_price {{d.goods_price_is_show == '1' ? '' : 'layui-hide'}}" style="top: {{d.goods_price_top}}px; left: {{d.goods_price_left}}px; width: {{d.goods_price_width}}px; height: {{d.goods_price_height}}px; color: {{d.goods_price_color}}; font-size: {{d.goods_price_font_size}}px;">
  309. <p>¥100.00</p>
  310. </div>
  311. <span class="goods_market_price poster_lineprice {{d.goods_market_price_is_show == '1' ? '' : 'layui-hide'}}" style="top: {{d.goods_market_price_top}}px; left: {{d.goods_market_price_left}}px; width: {{d.goods_market_price_width}}px; height: {{d.goods_market_price_height}}px; color: {{d.goods_market_price_color}}; font-size: {{d.goods_market_price_font_size}}px;">
  312. <p>¥199.00</p>
  313. </span>
  314. </div>
  315. <div class="qrcode" style="top: {{d.qrcode_top}}px; left: {{d.qrcode_left}}px; height: {{d.qrcode_height}}px; width: {{d.qrcode_width}}px;">
  316. <img alt="" src="__STATIC__/img/caner_erweima.png" width="100%" />
  317. </div>
  318. </div>
  319. </div>
  320. </script>
  321. {/block}
  322. {block name="script"}
  323. <script src="STATIC_JS/tdrag.js"></script>
  324. <script>
  325. var form, laytpl, laypage, laydate, colorpicker, repeat_flag = false;
  326. var poster_detail = JSON.parse('{:json_encode($template_info)}');
  327. layui.use(['form', 'laytpl', 'colorpicker'], function() {
  328. form = layui.form;
  329. laytpl = layui.laytpl;
  330. colorpicker = layui.colorpicker;
  331. form.render();
  332. laytpl($("#poster_left").html()).render(poster_detail, function(html) {
  333. $('#view').html(html);
  334. form.render();
  335. new Upload({
  336. elem: '#posterImg',
  337. data: {},
  338. callback: function(res) {
  339. if (res.code >= 0) {
  340. $('.poster-right').css({
  341. "background-image": `url('${ns.img(res.data.pic_path)}')`,
  342. "background-size": "100%",
  343. "background-repeat": "no-repeat"
  344. });
  345. poster_detail.background = res.data.pic_path;
  346. $("input[name='background']").val(res.data.pic_path);
  347. }
  348. },
  349. deleteCallback: function() {
  350. poster_detail.background = '';
  351. $("input[name='background']").val('')
  352. }
  353. });
  354. });
  355. //是否显示的控制
  356. var checkbox_field_arr = ['headimg', 'nickname', 'goods_img', 'goods_name', 'goods_price', 'goods_market_price', 'store_name', 'store_logo'];
  357. checkbox_field_arr.forEach(function(field_name, index){
  358. form.on('checkbox('+ field_name +')', function(data) {
  359. poster_detail[field_name + '_is_show'] = data.elem.checked ? '1' : '0';
  360. if (data.elem.checked) {
  361. $("."+ field_name).removeClass("layui-hide");
  362. } else {
  363. $("."+ field_name).addClass("layui-hide");
  364. }
  365. })
  366. });
  367. //字体大小控制
  368. var font_field_arr = ['nickname', 'goods_name', 'goods_price', 'goods_market_price', 'store_name'];
  369. font_field_arr.forEach(function(field_name, index){
  370. form.on('select('+ field_name +')', function(data) {
  371. poster_detail[field_name + '_font_size'] = data.value;
  372. $("."+ field_name).css("font-size", data.value + "px")
  373. });
  374. });
  375. //字体颜色控制
  376. var color_field_arr = ['nickname', 'goods_name', 'goods_price', 'goods_market_price', 'store_name'];
  377. color_field_arr.forEach(function(field_name, index){
  378. colorpicker.render({
  379. elem: '.poster_color_' + field_name, //绑定元素
  380. color: poster_detail[field_name + '_color'],
  381. done: function(color) {
  382. $("."+ field_name).css("color", color);
  383. poster_detail[field_name + '_color'] = color;
  384. }
  385. });
  386. });
  387. //圆角控制
  388. var shape_field_arr = ['headimg'];
  389. shape_field_arr.forEach(function(field_name, index){
  390. form.on('radio('+ field_name +')', function(data) {
  391. let shape = data.value;
  392. poster_detail[field_name + '_shape'] = shape;
  393. if(shape == 'circle'){
  394. $("."+ field_name +" img").addClass('circle');
  395. }else{
  396. $("."+ field_name +" img").removeClass('circle');
  397. }
  398. })
  399. });
  400. //拖拽控制
  401. var drag_field_arr = ['headimg', 'nickname', 'qrcode', 'goods_img', 'goods_name', 'goods_price', 'goods_market_price','store_name', 'store_logo'];
  402. drag_field_arr.forEach((field_name, index) => {
  403. $(`.${field_name}`).Tdrag({
  404. scope: '.design-sketch',
  405. cbChange: function(obj, self) {
  406. poster_detail[field_name + '_top'] = parseFloat($(self.$element).css('top'));
  407. poster_detail[field_name + '_left'] =parseFloat($(self.$element).css('left'));
  408. poster_detail[field_name + '_width'] = parseFloat($(self.$element).css('width'));
  409. poster_detail[field_name + '_height'] = parseFloat($(self.$element).css('height'));
  410. },
  411. cbEnd: function (obj, self) {
  412. poster_detail[field_name + '_top'] = parseFloat($(self.$element).css('top'));
  413. poster_detail[field_name + '_left'] =parseFloat($(self.$element).css('left'));
  414. poster_detail[field_name + '_width'] = parseFloat($(self.$element).css('width'));
  415. poster_detail[field_name + '_height'] = parseFloat($(self.$element).css('height'));
  416. }
  417. });
  418. });
  419. form.verify({
  420. background: function(value){
  421. if(!value){
  422. return '请上传海报背景';
  423. }
  424. }
  425. });
  426. /**
  427. * 监听提交
  428. */
  429. form.on('submit(save_poster)', function(data) {
  430. poster_detail.poster_name = data.field.poster_name;
  431. if (repeat_flag) return false;
  432. repeat_flag = true;
  433. $.ajax({
  434. url: ns.url("postertemplate://shop/postertemplate/"+ (poster_detail['template_id'] ? 'edit' : 'add') +"postertemplate"),
  435. data:poster_detail,
  436. dataType: 'JSON', //服务器返回json格式数据
  437. type: 'POST', //HTTP请求类型
  438. success: function(res) {
  439. repeat_flag = false;
  440. if(res.code == 0){
  441. layer.confirm(poster_detail['template_id'] ? '编辑成功' : '添加成功',{
  442. title: '操作提示',
  443. btn: ['返回列表',poster_detail['template_id'] ? '继续编辑' : '继续添加'],
  444. closeBtn: 0,
  445. yes: function() {
  446. location.href = ns.url("postertemplate://shop/postertemplate/lists");
  447. },btn2: function() {
  448. location.reload();
  449. }
  450. })
  451. } else {
  452. layer.msg(res.message);
  453. }
  454. }
  455. });
  456. });
  457. });
  458. function back() {
  459. location.href = ns.url("postertemplate://shop/postertemplate/lists");
  460. localStorage.removeItem("poster_data");
  461. }
  462. $('body').on('click', '.layui-nav-more1', function() {
  463. $(this).addClass('layui-new-more1');
  464. $('.layer-form').css("display", 'none');
  465. });
  466. $('body').on('click', '.layui-new-more1', function() {
  467. $(this).removeClass('layui-new-more1');
  468. $('.layer-form').css("display", 'block');
  469. });
  470. $('body').on('click', '.layui-nav-more2', function() {
  471. $(this).addClass('layui-new-more2');
  472. $('.layer-form2').css("display", 'none');
  473. });
  474. $('body').on('click', '.layui-new-more2', function() {
  475. $(this).removeClass('layui-new-more2');
  476. $('.layer-form2').css("display", 'block');
  477. });
  478. $('body').on('click', '.js-delete', function() {
  479. $('.poster-right').css("background-image", 'none');
  480. })
  481. </script>
  482. {/block}
  483. {block name="copyright"}{/block}