gz_car_ui/js/car_basic/child/driver_form.js

259 lines
8.6 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; // 是否保存并继续
let isWhiteList=0;
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;
getSupList();
form.verify({
isPhone: function (value, item) {
let pass = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/;
let flag = pass.test(value);
if (!flag) {
return "联系方式格式不正确";
}
},
});
// 监听radio选择变化
form.on('radio(isWhiteList)', function (data) {
isWhiteList=data.value;
console.log(isWhiteList);
});
form.on('submit(formData)', function (data) {
submitApply(data);
});
// 挂靠协议、行驶证正页、行驶证副页、行驶证车辆照片、车辆保险
setUpload(2);
setUpload(3);
setUpload(4);
setUpload(5);
setUpload(6);
form.render();
});
}
// 设置上传的文件
function setUpload(uploadNum) {
let exts = 'jpg|png|jpeg';
let 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 getSupList() {
let obj = {}
let params = {
encryptedData: JSON.stringify(obj)
}
let url = dataUrl + 'backstage/carSup/getSupSelected';
ajaxRequest(url, "POST", params, false, function () {
}, function (result) {
if (result.code === 200) {
setSelectData(result.data);
}
}, function (xhr, status, error) {
errorFn(xhr, status, error)
}, null);
function setSelectData(list) {
let html = '<option value="" selected>请选择所属供应商</option>';
$.each(list, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>'
})
$('#supId').empty().append(html);
}
}
// 详情
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);
}
if (typeArr.length === 0) {
return layer.msg('请上传身份证照片、驾驶证照片', { icon: 7 });
}
let flag = containsString(typeArr, 2);
if (!flag) {
return layer.msg('请上传身份证人像面', { icon: 7 });
}
let flag2 = containsString(typeArr, 3);
if (!flag2) {
return layer.msg('请上传身份证国徽面', { icon: 7 });
}
let flag3 = containsString(typeArr, 4);
if (!flag3) {
return layer.msg('请上传驾驶证正页', { icon: 7 });
}
let flag4 = containsString(typeArr, 5);
if (!flag4) {
return layer.msg('请上传驾驶证副页', { icon: 7 });
}
let url = dataUrl + 'backstage/carDriver/addDriverData';
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);
}