refresh_h5.html 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. {block name="resources"}
  2. <style type="text/css">
  3. .refresh-time {color: #B2B2B2;margin-top: 10px;}
  4. .form-row p {margin:8px 0 0 100px !important;font-size: 12px;color: #979897;}
  5. .all-box-item{width:100%;background: #FFFFFF;height: 160px;}
  6. .all-shop-information{width: 100%;background: white;padding: 15px;box-sizing: border-box;margin-top: 15px;margin-bottom: 30px;}
  7. .all-shop-information .all-top{display: flex;align-items: center;justify-content: space-between;}
  8. .all-shop-information .all-top .title{display: flex; color:#333333;margin-bottom: 0;width: 80%;height: 16px;line-height: 16px;padding-left: 10px;border-left: 3px solid rgb(254,106,0);box-sizing: border-box;font-size: 17px;}
  9. .all-shop-information .all-top .title .prompt{font-size: 1px;}
  10. .all-shop-information .all-top .edit{cursor: pointer;}
  11. .all-shop-information .all-item{display: flex;align-items: center;}
  12. .all-shop-information .all-item{margin-bottom: 18px;}
  13. .all-shop-information .all-item p{width: 140px;text-align: right;font-size: 14px;margin-right: 10px;}
  14. .all-box-item .reason-growth{margin-left: 10px;color: #999;cursor: pointer;}
  15. </style>
  16. {/block}
  17. {block name="main"}
  18. <div class="layui-form all-box-item all-shop-information">
  19. <div class="all-top ">
  20. <div class="title ">
  21. 手机端设置
  22. <!-- <div class="prompt-block">
  23. <div class="prompt">
  24. <i class="iconfont iconwenhao1 required growth"></i>
  25. <div class="growth-box reason-box reason-growth prompt-box">
  26. <div class="prompt-con">
  27. <p>默认</p>
  28. </div>
  29. </div>
  30. </div>
  31. </div> -->
  32. </div>
  33. <span class="edit text-color" onclick="editOpenH5()">编辑</span>
  34. </div>
  35. <div class="all-content">
  36. <div class="all-item">
  37. <p>部署方式:</p>
  38. <a>
  39. {if $config.deploy_way eq 'default'}
  40. 默认部署
  41. {/if}
  42. {if $config.deploy_way eq 'separate'}
  43. 独立部署
  44. {/if}
  45. </a>
  46. </div>
  47. <div class="all-item">
  48. <p>手机端域名:</p>
  49. {if $config.deploy_way eq 'default'}
  50. <a class="text-color" href="{$root_url}/h5" target="_blank">
  51. {$root_url}/h5
  52. </a>
  53. {/if}
  54. {if $config.deploy_way eq 'separate'}
  55. <a class="text-color" href="{$config.domain_name_h5 ?? ''}" target="_blank">
  56. {$config.domain_name_h5 ?? ''}
  57. </a>
  58. {/if}
  59. </div>
  60. </div>
  61. </div>
  62. {/block}
  63. {block name="script"}
  64. <script type="text/html" id="contentH5">
  65. <div class="layui-collapse tips-wrap">
  66. <div class="layui-colla-item">
  67. <h2 class="layui-colla-title">操作提示</h2>
  68. <ul class="layui-colla-content layui-show">
  69. <li>为满足不同用户的需求,方便快速搭建手机端,增加以下三种部署方式供其选择,易上手难度递增。</li>
  70. <li>(难度:简单)默认部署:无需下载,一键刷新,API接口请求地址默认为当前域名,编译代码存放到h5文件夹中。</li>
  71. <li>(难度:中等)独立部署:下载编译代码包后,放到网站根目录下运行。</li>
  72. <li>(难度:较高)独立部署:下载uniapp代码包,可进行二次开发。</li>
  73. </ul>
  74. </div>
  75. </div>
  76. <div class="layui-form form-wrap">
  77. <div class="layui-form-item">
  78. <label class="layui-form-label">部署方式:</label>
  79. <div class="layui-input-block">
  80. <input type="radio" name="deploy_way" value="default" lay-filter="deploy_way" title="默认部署" data-desc="无需下载,一键刷新,API接口请求地址为当前域名,编译代码存放到h5文件夹中" {if $config.deploy_way eq 'default'}checked{/if} />
  81. <input type="radio" name="deploy_way" value="separate" lay-filter="deploy_way" title="独立部署" data-desc="可下载编译包或源码包进行独立部署" {if $config.deploy_way eq 'separate'}checked{/if}/>
  82. </div>
  83. <div class="word-aux js-desc">
  84. {if $config.deploy_way eq 'default'}
  85. 无需下载,一键刷新,API接口请求地址为当前域名,编译代码存放到h5文件夹中
  86. {else/}
  87. 可下载编译包或源码包进行独立部署
  88. {/if}
  89. </div>
  90. </div>
  91. <div class="deploy-way default {if $config.deploy_way neq 'default'}layui-hide{/if}">
  92. <div class="layui-form-item web-url">
  93. <label class="layui-form-label">手机端域名:</label>
  94. <div class="layui-input-block">
  95. <a href="{$root_url}/h5" target="_blank" class="text-color">{$root_url}/h5</a>
  96. </div>
  97. </div>
  98. <div class="form-row" style="margin: 0;">
  99. <label class="layui-form-label">部署操作:</label>
  100. <button class="layui-btn js-save" onclick="refreshh5()">重新编译</button>
  101. <p>以下几种情况,需重新编译</p>
  102. <p>在线升级后,如果是默认部署,则需点击重新编译</p>
  103. <p>SSL证书变更后,由于http协议变更,则需点击重新编译</p>
  104. </div>
  105. </div>
  106. <div class="deploy-way separate {if $config.deploy_way neq 'separate'}layui-hide{/if}">
  107. <div class="layui-form-item">
  108. <label class="layui-form-label">手机端域名:</label>
  109. <div class="layui-input-block">
  110. <input type="text" name="domain" lay-verify="domain" {if $config.deploy_way eq 'separate'}value="{$config['domain_name_h5'] ?? ''}"{/if} autocomplete="off" class="layui-input len-long">
  111. </div>
  112. <div class="word-aux">域名必须以http://或https://为开头</div>
  113. </div>
  114. <div class="layui-form-item web-url">
  115. <label class="layui-form-label">源码下载:</label>
  116. <div class="layui-input-block">
  117. <button class="layui-btn" lay-submit lay-filter="downloadseparate">H5编译包下载</button>
  118. {if $is_auth}
  119. <button class="layui-btn" onclick="window.open(ns.url('shop/h5/downloaduniapp'));">UNIAPP源码包下载</button>
  120. {/if}
  121. </div>
  122. <div class="word-aux">H5编译包下载之后直接解压到手机端域名根目录即部署完成。</div>
  123. <div class="word-aux">UNIAPP源码包下载之后可进行二次开发,可自行发行H5进行部署。</div>
  124. </div>
  125. </div>
  126. <div class="form-row all-box-left">
  127. <button class="layui-btn js-save" lay-submit lay-filter="h5Save">保存</button>
  128. </div>
  129. </div>
  130. </script>
  131. <script type="text/javascript">
  132. var form,h5Popup;
  133. layui.use(['form'], function() {
  134. form = layui.form,
  135. repeat_flag = false; //防重复标识;
  136. form.render();
  137. $(".js-desc").text($("input[name='deploy_way']:checked").attr("data-desc"));
  138. form.on('radio(deploy_way)', function(data){
  139. var value = $(data.elem).val();
  140. $('.deploy-way').addClass('layui-hide');
  141. $('.deploy-way.' + value).removeClass('layui-hide');
  142. var desc = $(data.elem).attr("data-desc");
  143. $(".js-desc").text(desc);
  144. refreshArea(h5Popup)
  145. });
  146. form.verify({
  147. domain : function(value, item) {
  148. var reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/; //正则表达式验证域名
  149. if($("input[name='deploy_way']:checked").val() == "separate") {
  150. if (value === '') {
  151. return "请输入域名地址";
  152. } else if (!(reg.test(value))) {
  153. return '请输入正确的域名地址';
  154. }
  155. }
  156. }
  157. });
  158. form.on("submit(h5Save)",function(data){
  159. if (repeat_flag) return false;
  160. repeat_flag = true;
  161. $.ajax({
  162. url: ns.url("shop/h5/h5domainname"),
  163. data: data.field,
  164. dataType: 'JSON',
  165. type: 'POST',
  166. success: function(res){
  167. repeat_flag = false;
  168. layer.msg(res.message);
  169. if(res.code >= 0){
  170. location.reload();
  171. }
  172. }
  173. });
  174. });
  175. form.on("submit(downloadseparate)",function(data){
  176. window.open(ns.url('shop/h5/downloadseparate', {domain: data.field.domain}));
  177. })
  178. });
  179. function refreshh5(){
  180. if (repeat_flag) return false;
  181. repeat_flag = true;
  182. $.ajax({
  183. url: ns.url("shop/h5/refreshh5"),
  184. dataType: 'JSON',
  185. type: 'POST',
  186. success: function(res){
  187. repeat_flag = false;
  188. layer.msg(res.message);
  189. }
  190. });
  191. }
  192. //打开手机端编辑弹窗
  193. function editOpenH5(){
  194. h5Popup = layer.open({
  195. title:'手机端设置',
  196. type:1,
  197. area: 'auto',
  198. maxWidth:700,
  199. maxHeight:540,
  200. content:$('#contentH5').html(),
  201. success:function(res){
  202. form.render()
  203. }
  204. })
  205. }
  206. </script>
  207. {/block}