step-3.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <style>
  4. .install-content-procedure .content-procedure-item:first-of-type{
  5. background: url("INSTALL_IMG/complete_two.png") no-repeat center / contain;
  6. color: #fff;
  7. }
  8. .install-content-procedure .content-procedure-item:nth-child(2){
  9. background: url("INSTALL_IMG/complete_four.png") no-repeat center / contain;
  10. color: #fff;
  11. }
  12. .install-content-procedure .content-procedure-item:nth-child(3){
  13. background: url("INSTALL_IMG/conduct.png") no-repeat center / contain;
  14. color: #fff;
  15. }
  16. </style>
  17. {/block}
  18. {block name="main"}
  19. <div id='postloader' class='waitpage'></div>
  20. <form class="layui-form" >
  21. <div class="testing parameter">
  22. <div class="testing-item">
  23. <h3>数据库设定</h3>
  24. <table border="0" align="center" cellpadding="0" cellspacing="0" class="twbox">
  25. <tr>
  26. <td class="onetd"><span class="required">*</span>数据库主机:</td>
  27. <td>
  28. <input name="dbhost" id="dbhost" type="text" lay-verify="empty" placeholder="请输入数据库主机" value="" class="input-txt" onChange="testDb()" />
  29. <small>一般为localhost</small>
  30. </td>
  31. </tr>
  32. <tr>
  33. <td class="onetd"><span class="required">*</span>Mysql端口:</td>
  34. <td>
  35. <input name="dbport" id="dbport" type="text" value="3306" class="input-txt" lay-verify="empty" placeholder="请输入Mysql端口"/>
  36. <small>一般为3306</small>
  37. </td>
  38. </tr>
  39. <tr>
  40. <td class="onetd"><span class="required">*</span>数据库用户:</td>
  41. <td>
  42. <input name="dbuser" id="dbuser" type="text" value="" class="input-txt" onChange="testDb()" lay-verify="empty" placeholder="请输入数据库用户"/>
  43. <small>默认root</small>
  44. </td>
  45. </tr>
  46. <tr>
  47. <td class="onetd"><span class="required">*</span>数据库密码:</td>
  48. <td>
  49. <div style='float:left;margin-right:3px;'>
  50. <input name="dbpwd" id="dbpwd" type="text" class="input-txt" onChange="testDb()" lay-verify="empty" placeholder="请输入数据库密码" />
  51. </div>
  52. <div style='float:left' class="mysql-message" id='dbpwdsta'></div>
  53. </td>
  54. </tr>
  55. <tr>
  56. <td class="onetd"><span class="required">*</span>数据库名称:</td>
  57. <td>
  58. <div style='float:left;margin-right:3px;'><input name="dbname" id="dbname" type="text" value="" class="input-txt" onChange="haveDB()" lay-verify="empty" placeholder="请输入数据库名称" /></div>
  59. <div style='float:left' class="mysql-message" id='havedbsta'></div>
  60. </td>
  61. </tr>
  62. <tr>
  63. <td class="onetd">数据表前缀:</td>
  64. <td>
  65. <div style='float:left;margin-right:3px;'><input name="dbprefix" id="dbprefix" type="text" value="" class="input-txt" placeholder="请输入数据表前缀"/></div>
  66. </td>
  67. </tr>
  68. <tr>
  69. <td class="onetd">数据库编码:</td>
  70. <td>
  71. <label class="install-code">UTF8</label>
  72. </td>
  73. </tr>
  74. </table>
  75. </div>
  76. <div class="testing-item">
  77. <h3>网站设定</h3>
  78. <table border="0" align="center" cellpadding="0" cellspacing="0" class="twbox">
  79. <tr>
  80. <td class="onetd"><span class="required">*</span><strong>网站标题:</strong></td>
  81. <td><input name="site_name" id="site_name" type="text" value="" class="input-txt" lay-verify="empty" placeholder="请输入网站标题"/>
  82. <small id="mess_site_name">网站标题 必填</small></td>
  83. </tr>
  84. <tr>
  85. <td class="onetd"><span class="required">*</span><strong>管理员用户名:</strong></td>
  86. <td><input name="username" id="username" type="text" value="" class="input-txt" lay-verify="empty" placeholder="请输入平台用户名"/>
  87. <small id="mess_username">管理员用户名 必填</small></td>
  88. </tr>
  89. <tr>
  90. <td class="onetd"><span class="required">*</span><strong>管理员密码:</strong></td>
  91. <td><input name="password" id="password" type="password" value="" class="input-txt" lay-verify="empty" placeholder="请输入平台密码"/>
  92. <small id="mess_password">密码 必填</small></td>
  93. </tr>
  94. <tr>
  95. <td class="onetd"><span class="required">*</span><strong>确认密码:</strong></td>
  96. <td><input name="password2" id="password2" type="password" value="" class="input-txt" lay-verify="empty" placeholder="请输入平台确认密码"/>
  97. <small id="mess_password2">确认密码 必填</small></td>
  98. </tr>
  99. <tr>
  100. <td class="onetd"><strong>演示数据:</strong></td>
  101. <td><input type="checkbox" name="yanshi" id="yanshi" title="" value="1" lay-skin="primary">
  102. <small id="mess_yanshi" style="margin-left: 0;">勾选后将添加演示数据</small></td>
  103. </tr>
  104. </table>
  105. </div>
  106. <div class="btn-box"></div>
  107. <div class="btn-box">
  108. <input type="button" class="btn-back" value="后退" onclick="window.location.href='{$root_url}/install.php/index/index?step=2'" />
  109. <input type="button" class="btn-next" lay-submit lay-filter="install"value="开始安装" id="form_submit">
  110. </div>
  111. </div>
  112. </form>
  113. {/block}
  114. {block name='script'}
  115. <script language="javascript" type="text/javascript">
  116. ControlContent(2);
  117. var is_existdb = 1;//数据库是否存在
  118. var message = '数据库账号或密码不能为空';
  119. var is_install = false;
  120. function inputBoxPointer(id){
  121. return document.getElementById(id);
  122. }
  123. layui.use('form', function(){
  124. var form = layui.form;
  125. form.verify({
  126. empty: function(value, item){ //value:表单的值、item:表单的DOM对象
  127. if(value == ''){
  128. var msg = $(item).attr("placeholder");
  129. return msg;
  130. }
  131. }
  132. });
  133. form.on('submit(install)', function(data){
  134. if(is_existdb == 2){
  135. layer.confirm('数据库存在,系统将覆盖数据库!', {
  136. btn: ['继续','取消'] //按钮
  137. }, function(){
  138. layer.closeAll(); //疯狂模式,关闭所有层
  139. install(data.field);
  140. }, function(){
  141. layer.closeAll(); //疯狂模式,关闭所有层
  142. return false;
  143. });
  144. }else{
  145. install(data.field);
  146. }
  147. return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
  148. });
  149. function install(data){
  150. if(is_install){
  151. return false;
  152. }
  153. document.getElementById('form_submit').disabled= true;
  154. $("#form_submit").val("正在安装...");
  155. $("#form_submit").addClass("installimg-btn");
  156. var index = layer.load(2);
  157. is_install = true;
  158. $.ajax({
  159. url: "{$root_url}/install.php/index/index?step=4",
  160. data: data,
  161. dataType: 'json',
  162. type: 'post',
  163. success : function(data) {
  164. layer.close(index);
  165. if(data.code < 0){
  166. error(data.message);
  167. is_install = false;
  168. document.getElementById('form_submit').disabled= false;
  169. $("#form_submit").val("开始安装");
  170. $("#form_submit").removeClass("installimg-btn");
  171. }else{
  172. window.location.href = '{$root_url}/install.php/index/installSuccess';
  173. }
  174. }
  175. })
  176. }
  177. });
  178. //数据库连接测试
  179. function testDb()
  180. {
  181. var dbhost = inputBoxPointer('dbhost').value;
  182. var dbuser = inputBoxPointer('dbuser').value;
  183. var dbpwd = inputBoxPointer('dbpwd').value;
  184. var dbport = inputBoxPointer('dbport').value;
  185. inputBoxPointer('dbpwdsta').innerHTML='<img src="INSTALL_IMG/ajax-loader.gif">';
  186. $.ajax({ //post也可
  187. url: '{$root_url}/install.php/index/testdb',
  188. data: { dbhost: dbhost, dbport : dbport, dbuser:dbuser, dbpwd:dbpwd},
  189. type: "post",
  190. dataType: 'json',
  191. success: function(data){
  192. if(data.code >= 0){
  193. inputBoxPointer('dbpwdsta').innerHTML = data.data.message;
  194. is_existdb = data.data.status;
  195. message = data.data.message;
  196. }else{
  197. is_existdb = -1;
  198. }
  199. }
  200. });
  201. }
  202. /**
  203. *验证数据库是否存在
  204. */
  205. function haveDB()
  206. {
  207. var dbhost = inputBoxPointer('dbhost').value;
  208. var dbname = inputBoxPointer('dbname').value;
  209. var dbuser = inputBoxPointer('dbuser').value;
  210. var dbpwd = inputBoxPointer('dbpwd').value;
  211. var dbport = inputBoxPointer('dbport').value;
  212. inputBoxPointer('havedbsta').innerHTML='<img src="INSTALL_IMG/ajax-loader.gif">';
  213. $.ajax({ //post也可
  214. url: '{$root_url}/install.php/index/testdb',
  215. data: { dbhost: dbhost, dbport : dbport, dbuser:dbuser, dbpwd:dbpwd,dbname:dbname},
  216. type: "post",
  217. dataType: 'json',
  218. success: function(data){
  219. if(data.code >= 0){
  220. inputBoxPointer('havedbsta').innerHTML = data.data.message;
  221. is_existdb = data.data.status;
  222. message = data.data.message;
  223. }else{
  224. is_existdb = -1;
  225. }
  226. }
  227. });
  228. }
  229. </script>
  230. {/block}