gz_car_ui/js/car_basic/child/person_form.js

245 lines
8.7 KiB
JavaScript
Raw Normal View History

let form, layer, laydate, fileList = new Array(), imgListUp = new Array();;
let objParam; // 是否保存并继续
function setParams(obj) {
objParam = JSON.parse(obj);
layui.use(['form', 'layer', 'laydate', 'upload'], function () {
form = layui.form;
layer = layui.layer;
laydate = layui.laydate;
upload = layui.upload;
laydate.render({
elem: '#bxDay'
});
form.verify({
phone: function (value, item) {
if (value) {
let pass = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/;
let flag = pass.test(value);
if (!flag) {
return "联系电话格式不正确";
}
}
},
isIdNumber: function (value, item) {
if (!value) {
return "身份证号不能为空";
}
// 身份证号码正则表达式
const idRegex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/;
if (!idRegex.test(value)) {
return "身份证号格式不正确";
} else {
// 校验码验证
let weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
let checkCodes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
let sum = 0;
for (let i = 0; i < value.length - 1; i++) {
sum += parseInt(value[i], 10) * weights[i];
}
let mod = sum % 11;
let checkCode = checkCodes[mod];
if (checkCode.toUpperCase() !== value[value.length - 1].toUpperCase()) {
return "身份证号校验码不正确";
}
}
return true;
}
});
form.on('submit(formData)', function (data) {
submitApply(data);
});
// 挂靠协议、行驶证正页、行驶证副页、行驶证车辆照片、车辆保险
// setUpload(2);
setUpload(6);
form.render();
});
}
// 设置上传的文件
function setUpload(uploadNum) {
let exts = 'jpg|png|jpeg|doc|docx|pdf|xlsx|xls';
let exacceptMimes = 'image/jpg,image/png,image/jpeg,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
if (uploadNum !== 6) {
exts = 'jpg|png|jpeg';
exacceptMimes = 'image/jpg,image/png,image/jpeg'
}
let uploadObj = upload.render({
elem: '#test' + uploadNum,
multiple: true,
dataType: "json",
exts: exts,
acceptMime: exacceptMimes,
number: 1, //最大上传数量
size: 1024 * 10, //最大文件大小单位k
auto: false, //是否自动上传 默认为true
bindAction: '#hideUpload', //绑定的按钮
choose: function (obj) {
let length = $('#uploader-list' + uploadNum + '>.file-iteme').length;
if (uploadNum === 6 && length >= 5) {
return layer.msg('最多上传5个其他附件', { icon: 7 });
}
uploadObj.config.elem.next()[0].value = '';
let num = 0;
let style = "";
if (uploadNum === 4 || uploadNum === 5) {
style = "margin:0";
}
obj.preview(function (index, file, result) {
num++;
if (num <= (uploadNum === 6 ? (5 - length) : (1 - length))) {
$('#uploader-list' + (uploadNum) + '').append(
'<div id="" class="file-iteme" style=' + style + '>' +
'<div class="handle"><p>x</p></div>' +
handleFileType(index, file, result, uploadNum) +
'</div>'
);
let map = new Map();//将选择的图片索引和图片写成对象存入集合
map.index = index;
map.file = file;
map.type = uploadNum;
fileList.push(map);
if (uploadNum !== 6) {
$('#upload-box' + (uploadNum) + '').css('display', 'none');
}
}
});
}
});
}
// 设置文件类型
function handleFileType(index, file, result, uploadNum) {
let width = '159px', height = '120px';
let html = '', img = '';
if(file.ext){
file.ext = file.ext.toLowerCase();
}
if(file.name){
file.name = file.name.toLowerCase();
}
if (file.ext === 'doc' || file.ext === 'docx') {
img = '../../../images/docx.png';
} else if (file.ext === 'xls' || file.ext === 'xlsx') {
img = '../../../images/xlsx.png';
} else if (file.ext === 'pdf') {
img = '../../../images/pdf.png';
} else {
return '<img class="img" style="width: ' + width + ';height: ' + height + ';" data-index=' + index + ' data-name=' + file.name + ' src=' + result + '>';
}
html += '<div class="layout upload-file" data-index=' + index + '>' +
'<img src="' + img + '">' +
'<p style="text-align: center;font-size:12px;">' + file.name + '</p>' +
'</div>';
return html;
}
// 删除文件
$(document).on("click", ".file-iteme .handle", function (event) {
let fileType;
imgListUp.splice(0, imgListUp.length);
let index = $(this).next().attr('data-index');
$.each(fileList, function (inx, ele) {
//对比删除文件索引
//将未删除的存入新集合
if (index != ele.index) {
imgListUp.push(ele);
} else {
fileType = ele.type;
}
});
$(this).parent().remove();
//将新文件集合替换老集合
fileList.splice(0, fileList.length);
$.each(imgListUp, function (inx, ele) {
fileList.push(ele)
});
$('#upload-box' + fileType).removeAttr('style');
});
// 详情
function getSupDetails() {
let params = {
encryptedData: JSON.stringify({
id: objParam.id
})
};
let url = dataUrl + 'backstage/sup/getSupDetails';
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
if (result.code === 200) {
setFormData(result.data);
}
}, function (xhr, status, error) {
errorFn(xhr, status, error)
}, null);
function setFormData(obj) {
form.val('formInfo', obj);
}
}
// 保存
function saveData2() {
$('#formSubmit').trigger('click')
}
// 提交
function submitApply(data) {
let typeArr = [];
for (let i = 0; i < fileList.length; i++) {
typeArr.push(fileList[i].type);
}
let flag4 = containsString(typeArr, 6);
if (!flag4) {
return layer.msg('请上传其他附件', { icon: 7 });
}
let url = dataUrl + 'backstage/carPerson/addCarData';
let formData = new FormData();
//遍历最终文件集合
for (let i = 0; i < fileList.length; i++) {
formData.append("file[]", fileList[i].file)
}
data.field.types = typeArr.join('@');
formData.append('params', JSON.stringify(data.field));
let loadingMsg = layer.msg('正在提交保存,请稍等...', { icon: 16, shade: 0.01, time: '0' });
ajaxRequestByUploadFile(url, formData, function () {
$('.save').addClass("layui-btn-disabled").attr("disabled", true);
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true);
}, function (result) {
layer.close(loadingMsg);
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
if (result.code === 200) {
parent.layer.msg(result.msg, { icon: 1 });
closePage(1);
} else {
layer.msg(result.msg, { icon: 2 });
}
}, function (xhr, status, error) {
layer.close(loadingMsg); // 关闭提示层
layer.msg('服务异常,请稍后重试', { icon: 16, scrollbar: false, time: 2000 });
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
errorFn(xhr, status, error)
}, null);
}
// 判断数组中是否包含某个值
function containsString(array, stringToFind) {
return array.includes(stringToFind);
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name);
if (type === 1) {
window.parent.reloadData();
}
parent.layer.close(index);
}