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( '
' + '

x

' + handleFileType(index, file, result, uploadNum) + '
' ); 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 ''; } html += '
' + '' + '

' + file.name + '

' + '
'; 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 = ''; $.each(list, function (index, item) { html += '' }) $('#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); }