deploy.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <style type="text/css">
  4. /*.js-domain{*/
  5. /* display: none;*/
  6. /*}*/
  7. .refresh-time {
  8. color: #B2B2B2;
  9. margin-top: 10px;
  10. }
  11. .ns-form-row p {
  12. margin:8px 0 0 200px;
  13. font-size: 12px;
  14. color: #979897;
  15. }
  16. </style>
  17. {/block}
  18. {block name="main"}
  19. <div class="layui-collapse ns-tips">
  20. <div class="layui-colla-item">
  21. <h2 class="layui-colla-title">操作提示</h2>
  22. <ul class="layui-colla-content layui-show">
  23. <li>为满足不同用户的需求,方便快速搭建手机版商家端,增加以下三种部署方式供其选择,易上手难度递增。</li>
  24. <li>(难度:简单)默认部署:无需下载,一键刷新,API接口请求地址默认为当前域名,编译代码存放到mshop文件夹中。</li>
  25. <li>(难度:中等)独立部署:下载编译代码包后,放到网站根目录下运行。</li>
  26. <li>(难度:较高)源码下载:下载uni-app代码包,可进行二次开发。</li>
  27. </ul>
  28. </div>
  29. </div>
  30. <div class="layui-form ns-form">
  31. <div class="layui-form-item">
  32. <label class="layui-form-label">部署方式:</label>
  33. <div class="layui-input-block">
  34. <input type="radio" name="deploy_way" value="default" lay-filter="deploy_way" title="默认部署" data-desc="无需下载,一键刷新,API接口请求地址为当前域名,编译代码存放到mshop文件夹中" {if $config.deploy_way eq 'default'}checked{/if}/>
  35. <input type="radio" name="deploy_way" value="indep" lay-filter="deploy_way" title="独立部署" data-desc="下载编译代码包后,放到网站根目录下运行" {if $config.deploy_way eq 'indep'}checked{/if}/>
  36. <!-- {if $is_auth}<input type="radio" name="deploy_way" value="os" lay-filter="deploy_way" title="源码下载" data-desc="下载uni-app代码包,可进行二次开发"/>{/if}-->
  37. </div>
  38. <div class="ns-word-aux js-desc">
  39. {if $config.deploy_way eq 'default'}
  40. 无需下载,一键刷新,API接口请求地址为当前域名,编译代码存放到mshop文件夹中
  41. {else/}
  42. 下载编译代码包后,放到网站根目录下运行
  43. {/if}
  44. </div>
  45. </div>
  46. <div class="deploy-way default {if $config.deploy_way neq 'default'}layui-hide{/if}">
  47. <div class="layui-form-item web-url">
  48. <label class="layui-form-label">域名地址:</label>
  49. <div class="layui-input-block">
  50. <a href="{$config['domain_name_mobileshop'] ?? ''}" target="_blank" class="ns-text-color">{$config['domain_name_mobileshop']?? ''}</a>
  51. </div>
  52. </div>
  53. <div class="ns-form-row" style="margin: 0;">
  54. <label class="layui-form-label">部署操作:</label>
  55. <button class="layui-btn ns-bg-color js-save" onclick="refresh()">重新编译</button>
  56. <p>以下几种情况,需重新编译</p>
  57. <p>在线升级后,如果是默认部署,则需点击重新编译</p>
  58. <p>SSL证书变更后,由于http协议变更,则需点击重新编译</p>
  59. </div>
  60. </div>
  61. <div class="deploy-way indep {if $config.deploy_way neq 'indep'}layui-hide{/if}">
  62. <div class="layui-form-item">
  63. <label class="layui-form-label">商家端域名:</label>
  64. <div class="layui-input-block">
  65. <input type="text" name="domain" lay-verify="domain" {if $config.deploy_way eq 'indep'}value="{$config['domain_name_pc'] ?? ''}"{/if} autocomplete="off" class="layui-input
  66. ns-len-long">
  67. </div>
  68. </div>
  69. <div class="layui-form-item web-url">
  70. <label class="layui-form-label">源码下载:</label>
  71. <div class="layui-input-block">
  72. <button class="layui-btn ns-bg-color" lay-submit lay-filter="downloadindep">编译包下载</button>
  73. <button class="layui-btn ns-bg-color" onclick="window.open(ns.url('mobileshop://shop/config/downloados'));">源码包下载
  74. </button>
  75. </div>
  76. <div class="ns-word-aux">编译包下载之后直接解压到电脑端域名根目录即部署完成。</div>
  77. <div class="ns-word-aux">源码包下载之后可进行二次开发,可自行发行进行部署。</div>
  78. </div>
  79. </div>
  80. <div class="ns-form-row">
  81. <button class="layui-btn ns-bg-color js-save" lay-submit lay-filter="save">保存</button>
  82. </div>
  83. </div>
  84. {/block}
  85. {block name="script"}
  86. <script type="text/javascript">
  87. layui.use(['form'], function () {
  88. var form = layui.form,
  89. repeat_flag = false; //防重复标识;
  90. $(".js-desc").text($("input[name='deploy_way']:checked").attr("data-desc"));
  91. form.on('radio(deploy_way)', function(data){
  92. var value = $(data.elem).val();
  93. $('.deploy-way').addClass('layui-hide');
  94. $('.deploy-way.' + value).removeClass('layui-hide');
  95. var desc = $(data.elem).attr("data-desc");
  96. $(".js-desc").text(desc);
  97. })
  98. form.verify({
  99. domain: function (value, item) {
  100. var reg = /^((http:\/\/)|(https:\/\/))?\S+$/; //正则表达式验证域名
  101. if ($("input[name='deploy_way']:checked").val() == "indep") {
  102. if (value === '') {
  103. return "请输入域名地址";
  104. } else if (!(reg.test(value))) {
  105. return '请输入正确的域名地址';
  106. }
  107. }
  108. }
  109. });
  110. form.on("submit(save)", function (data) {
  111. switch (data.field.deploy_way) {
  112. case "default":
  113. if (repeat_flag) return false;
  114. repeat_flag = true;
  115. $.ajax({
  116. url: ns.url("mobileshop://shop/config/downloadcsdefault"),
  117. dataType: 'JSON',
  118. type: 'POST',
  119. success: function (res) {
  120. repeat_flag = false;
  121. layer.msg(res.message);
  122. }
  123. });
  124. break;
  125. case "indep":
  126. // console.log("data",data.field);
  127. window.open(ns.url("mobileshop://shop/config/downloadcsindep", data.field));
  128. break;
  129. case "os":
  130. window.open(ns.url("mobileshop://shop/config/downloados"));
  131. break;
  132. }
  133. });
  134. $('[name="domain"]').change(function () {
  135. var domain = $(this).val();
  136. if (repeat_flag) return false;
  137. repeat_flag = true;
  138. $.ajax({
  139. url: ns.url("mobileshop://shop/config/setMShopDomainName"),
  140. data: {
  141. domain_name: domain
  142. },
  143. dataType: 'JSON',
  144. type: 'POST',
  145. success: function (res) {
  146. repeat_flag = false;
  147. }
  148. });
  149. })
  150. });
  151. function refresh(){
  152. if (repeat_flag) return false;
  153. repeat_flag = true;
  154. $.ajax({
  155. url: ns.url("mobileshop://shop/config/downloadcsdefault"),
  156. dataType: 'JSON',
  157. type: 'POST',
  158. success: function(res){
  159. repeat_flag = false;
  160. layer.msg(res.message);
  161. }
  162. });
  163. }
  164. </script>
  165. {/block}