material.html 4.5 KB

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