material.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <!doctype html>
  2. <html class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="description" content="">
  7. <meta name="keywords" content="">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  9. <title>推广素材</title>
  10. <!-- Set render engine for 360 browser -->
  11. <meta name="renderer" content="webkit">
  12. <link rel="stylesheet" href="__CDN__/assets/shop/css/amazeui.css">
  13. <link rel="stylesheet" href="__CDN__/assets/shop/css/app.css">
  14. <style>
  15. .app {
  16. font-size: 14px;
  17. text-align: left;
  18. padding: 64px 15px;
  19. }
  20. .lists {
  21. margin-top: 15px;
  22. }
  23. .lists .list-item {
  24. border: 1px solid #ccc;
  25. border-radius: 2px;
  26. background-color: #fff;
  27. margin-bottom: 15px;
  28. }
  29. .list-item .title {
  30. padding: 10px 15px;
  31. }
  32. .action {
  33. border-top: 1px solid #ccc;
  34. padding: 10px 0;
  35. text-align: center;
  36. overflow: hidden;
  37. }
  38. .action button {
  39. background-color: #666;
  40. color: #fff;
  41. border-radius: 10px;
  42. text-align: center;
  43. padding: 4px 8px;
  44. margin-right: 10px;
  45. border: none;
  46. float: right;
  47. }
  48. .albums {
  49. display: flex;
  50. text-align: center;
  51. margin-bottom: 10px;
  52. }
  53. .albums img {
  54. width: calc((100% - 60px)/3);
  55. margin-right: 15px;
  56. text-align: center;
  57. justify-content: center;
  58. }
  59. .albums img:first-child {
  60. margin-left: 15px;
  61. }
  62. </style>
  63. </head>
  64. <body>
  65. <!-- Header -->
  66. <header data-am-widget="header" class="am-header am-header-default">
  67. <div class="am-header-left am-header-nav">
  68. <a href="javascript:void(0);" onclick="javascript:history.back(-1);return false;"><i class="am-header-icon am-icon-angle-left"></i></a>
  69. </div>
  70. <h1 class="am-header-title">
  71. <a href="#title-link">推广素材</a>
  72. </h1>
  73. </header>
  74. <div class="wapper app">
  75. <div class="lists">
  76. {volist name="lists" id="v"}
  77. <div class="list-item">
  78. <div class="title">{$v.title}</div>
  79. <div class="albums" id="albums-{$v.id}">
  80. {assign name="images" value="$v.images" /}
  81. {volist name="images" id="vv"}
  82. <img src="{$vv}" alt="">
  83. {/volist}
  84. </div>
  85. <div class="action">
  86. <button onclick="copy('{$v.title}')">复制文案</button>
  87. <button onclick="savePics('{$v.id}')">保存图片</button>
  88. </div>
  89. </div>
  90. {/volist}
  91. </div>
  92. </div>
  93. </body>
  94. <script src="__CDN__/assets/shop/js/jquery.min.js"></script>
  95. <script src="__CDN__/assets/shop/js/amazeui.min.js"></script>
  96. <script src="__CDN__/assets/shop/js/app.js"></script>
  97. <script src="__CDN__/assets/libs/layer/layer.js"></script>
  98. <script>
  99. /**
  100. * 批量
  101. */
  102. function savePics(k){
  103. var $urls = $("#albums-"+k).find('img');
  104. if($urls.length <= 0){
  105. layer.msg('暂无素材图片');
  106. return false;
  107. }
  108. $urls.each(function(item,k){
  109. var url = $(this).attr('src');
  110. if(url){
  111. doenloadPic(url);
  112. }
  113. })
  114. }
  115. function copy(message) {
  116. var input = document.createElement("input");
  117. input.value = message;
  118. document.body.appendChild(input);
  119. input.select();
  120. input.setSelectionRange(0, input.value.length), document.execCommand('Copy');
  121. document.body.removeChild(input);
  122. layer.msg("{:__('复制成功')}");
  123. }
  124. /**
  125. * 下载
  126. * @param imgUrl
  127. */
  128. function doenloadPic(imgUrl){
  129. let triggerEvent = "touchstart"; //指定下载方式
  130. let blob=new Blob([''], {type:'application/octet-stream'});
  131. let url = URL.createObjectURL(blob); //创建一个字符串路径空位
  132. let a = document.createElement('a');
  133. a.href = imgUrl; //把路径赋到a标签的href上
  134. a.download = imgUrl.replace(/(.*\/)*([^.]+.*)/ig,"$2").split("?")[0];
  135. let e = new MouseEvent('click', ( true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null));
  136. a.dispatchEvent(e);
  137. //释放一个已经存在的路径(有创建createObjectURL就要释放revokeObjectURL)
  138. URL.revokeObjectURL(url);
  139. }
  140. </script>
  141. </html>