You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wkcrm/public/static/js/step2.js

282 lines
6.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

var form = {
databaseUrl: '127.0.0.1',
databasePort: '3306',
databaseTable: '5kcrm_',
databasePwd: '',
databaseUser: 'root'
};
var rules = {
databaseUrl: {
required: true,
regexp: /[^\u4e00-\u9fa5]+$/,
label: '数据库主机地址'
},
databaseName: {
required: true,
regexp: /[^\u4e00-\u9fa5]+$/,
label: '数据库名'
},
databasePort: {
required: true,
regexp: /^[0-9]*$/,
label: '数据库端口号'
},
databaseUser: {
required: true,
regexp: /[^\u4e00-\u9fa5]+$/,
label: '数据库用户名'
},
databasePwd: {
required: false,
regexp: null,
label: '数据库密码'
},
databaseTable: {
required: true,
regexp: /[^\u4e00-\u9fa5]+$/,
label: '数据库表前缀'
},
root: {
required: true,
regexp: /^[1][3-9][0-9]{9}$/,
label: '管理员账号'
},
pwd: {
required: true,
regexp: /^(?=.*[a-zA-Z])(?=.*\d).{6,20}$/,
label: '管理员密码(6~20位字母加数字组合)'
},
wkcode: {
required: false,
regexp: null,
label: ''
},
};
var timer = null;
var flag = true;
_initFormValue();
// 上一步
$('.prev').click(function () {
window.location = 'step1.html'
});
// 下一步
$('.next').click(function () {
// 获取form数据
// 校验form数据 true 校验通过 false 校验失败
var forms = getFormData();
var result = checkForm();
// console.log('result---', result, forms);
if (result) {
$('#cover').css('display', 'block');//显示遮罩层
setTimeout(()=>{
$.ajax({
cache: true,
type: "POST",
dataType: 'json',
url: "./step4",
data: {
form: forms
},
async: true,
timeout: 120000,
success: function (result) {
const step7 = $.ajax({
url:'./step7',
dataType:'json',
type: "POST",
data: {
form: forms
},
})
const step8 = $.ajax({
url:'./step8',
dataType:'json',
type: "POST",
data: {
form: forms
},
})
const step10 = $.ajax({
url:'./step10',
dataType:'json',
type: "POST",
data: {
form: forms
},
})
const step11 = $.ajax({
url:'./step11',
dataType:'json',
type: "POST",
data: {
form: forms
},
})
if (result.code == '200') {
Promise.all([step7,step8,step10,step11]).then(res=>{
const [step7Res,step8Res,step10Res,step11Res] =res
})
localStorage.clear();
window.location = 'step5.html';
} else if (result.code == '400') {
alert(result.error);
window.location.href = 'step6.html';
} else {
alert(result.error);
window.location.href = 'step6.html';
}
},
error: function (xhr) {
window.location.href = 'step6.html';
}
});
})
}
});
function getRes() {
if (timer) {
clearTimeout(timer);
timer = null;
}
// $.post("/admin/install/progress",function(result){
// $(".install_progress_a").show();
// $(".install_progress_a").empty();
// $(".form").hide();
// $(".control").hide();
// if(result.data.now < result.data.length ){
// $(".install_progress_a").append("<progress class='install_progress' max='"+ result.data.length+"' value='"+ result.data.now +"''></progress>");
// html ="<div class='install_pro'> 正在安装中,请稍后...</div>";
// $(".install_progress_a").append(html);
// timer = setTimeout(getRes, 1000)
// } else {
// $(".install_progress_a").append("<progress class='install_progress' max='100' value='100'></progress>");
// html ="<div class='install_pro'> 安装成功 </div>";
// $(".install_progress_a").append(html);
// clearTimeout(timer);
// timer = null;
// }
// });
$.ajax({
cache: true,
type: "POST",
dataType: 'json',
url: './progress',
data: '',
async: false,
success: function (result) {
$(".install_progress_a").show();
$(".install_progress_a").empty();
$(".form").hide();
$(".control").hide();
if (result.data.now < result.data.length) {
$(".install_progress_a").append("<progress class='install_progress' max='" + result.data.length + "' value='" + result.data.now + "''></progress>");
html = "<div class='install_pro'> 正在安装中,请稍后...</div>";
$(".install_progress_a").append(html);
timer = setTimeout(getRes, 1000)
} else {
$(".install_progress_a").append("<progress class='install_progress' max='100' value='100'></progress>");
html = "<div class='install_pro'> 安装成功 </div>";
$(".install_progress_a").append(html);
clearTimeout(timer);
timer = null;
}
}
});
}
/**
* 给 form 输入框赋初值
* @private
*/
function _initFormValue() {
$('input').each(function (index, item) {
item.value = form[item.name] || null
$(item).change(function () {
$(this).removeClass('input-error');
var borther = $(this).siblings('.error');
borther.remove();
if (borther.filter('.remind')[0]) {
borther.filter('.remind').show()
}
})
});
}
/**
* 获取 form 输入的值
* @return {form}
*/
function getFormData() {
$('.wkform').each(function (index, item) {
form[item.name] = item.value;
// 重置表单状态
$(item).removeClass('input-error');
var borther = $(item).siblings();
borther.remove('.error');
if (borther.filter('.remind')[0]) {
borther.filter('.remind').show()
}
});
return form
}
/**
* 校验表单
* @return {boolean}
*/
function checkForm() {
var result = {};
for (var key in rules) {
var rule = rules[key];
if (rule.required) {
if (!form[key] || form[key] == '') {
result[key] = rule.label + '不能为空!';
}
}
if (rule.regexp && !result[key]) {
var flag = rule.regexp.test(form[key]);
if (!flag) {
let msg = rule.label === '管理员账号' ? '手机号码' : rule.label
result[key] = '请输入正确的' + msg + '';
}
}
}
var flag = true;
if (JSON.stringify(result) !== '{}' && typeof result === 'object') {
for (var key in result) {
renderErrorMsg(key, result[key])
flag = false;
}
}
return flag
}
/**
* 渲染错误信息
* @param key
* @param msg
*/
function renderErrorMsg(key, msg) {
$('input').each(function (index, item) {
if (item.name === key) {
var remindDom = $(item).next()[0] || null;
if (remindDom) {
$(remindDom).hide()
}
$(item).parent().append('<div class="error">' + msg + '</div>');
$(item).addClass('input-error')
}
})
}