gz_car_ui/js/car_basic/child/person_form.js

245 lines
8.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}