var proId;
var CODE_1 = 0;
var CODE_2 = 2;
var securityMaymentsFileId = '';
var boardFileId = '';
var fileExt = "";
var num = 0;
let fileNum = 0;
var layuiForm;
let addLoadingMsg;
var token = localStorage.getItem("smz-token");
$(function () {
// initTrees();
layui.use(['form', 'laydate', 'upload'], function () {
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
layuiForm = form;
var laydate = layui.laydate;
var upload1 = layui.upload;
var upload2 = layui.upload;
form.render();
form.verify({
orgName: [/^(?!-1).*$/, '请选择公司名称'],
voltageLevel: [/^(?!-1).*$/, '请选择电压等级'],
bankAccount: [/^(?!-1).*$/, '请选择工资账户所属银行'],
lon: [/^-?((0|1?[0-7]?[0-9]?)(([.][0-9]{1,4})?)|180(([.][0]{1,12})?))$/, '范围:-180.00~180.00(最大保留4位小数)'],
lat: [/^-?((0|[1-8]?[0-9]?)(([.][0-9]{1,4})?)|90(([.][0]{1,12})?))$/, '范围:-90.00~90.00(最大保留4位小数)'],
contractPrice: [/^\d+(.\d{1,4})?$/, '最大保留4位小数'],
securityPayments: [/^\d+(.\d{1,4})?$/, '最大保留4位小数'],
proLeader: [/^[\u4e00-\u9fa5_]{2,20}$/, '负责人联系⼈请输入2-20个中文真实姓名'],
labourSpecialName: [/^[\u4e00-\u9fa5_]{2,20}$/, '劳资专管员请输入2-20个中文真实姓名'],
labourSpecialPhone: [/^1[3456789]\d{9}$/, '劳资专管员电话请输入11位手机号码'],
labourSpecialIdCard: [/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, '劳资专管员身份证请输入18位身份证'],
proLeaderPhone: [/^1[3456789]\d{9}$/, '负责人联系人电话请输入11位手机号码'],
projectManager: [/^[\u4e00-\u9fa5_]{2,20}$/, '参建单位项目经理请输入2-20个中文真实姓名'],
phone: [/^1[3456789]\d{9}$/, '参建单位项目经理电话请输入11位手机号码'],
managerNumber: [/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, '参建单位项目经理身份证请输入18位身份证'],
bankName: [/^[\u4e00-\u9fa5_]{4,100}$/, '开户银行支行名称请输入4-100个中文字符'],
openBankNumber: [/^[\u4e00-\u9fa5_a-zA-Z0-9.-]{6,30}$/, '开户账号6-30位字母、数字、中划线混合的字符'],
accountBalance: [/^\d+(.\d{1,2})?$/, '最大保留2位小数']
});
//项目保险附件
//多图片上传
var uploadcom1 = upload1.render({
elem: '#test1',
url: ctxPath + '/project/savePayment', //改成您自己的上传接口
multiple: true, //是否允许多文件上传,默认未false
dataType: "json",
// data: {"pickId": id},
exts: 'jpg|png|jpeg|pdf',
//acceptMime: 'image/jpg,image/png,image/jpeg,file/pdf,file/xlsx',
auto: false, //是否自动上传 ,默认为true
number: 3, //最大上传数量
size: 1024 * 5, //最大文件大小,单位k
bindAction: '#hideUpload1', //绑定的按钮
field: 'file', //传到后台的字段名,默认file
choose: function (obj) {
CODE_1 = 1;
uploadcom1.config.elem.next()[0].value = '';
files = obj.pushFile();
obj.preview(function (index, file, result) {
console.log(index); //得到文件索引
console.log(file.name); //得到文件对象
$('#demo1').append('');
$('#' + index).bind('dblclick', function () {//双击删除指定预上传图片
delete files[index];//删除指定图片
$(this).remove();
});
var imgNum = $("#demo1 img").length;
$("#test1").text(imgNum + "个文件");
// fileExt = file.name;
});
},
before: function (obj) {
// fileExt = fileExt.split(".")[1];
this.data = {
// ext: fileExt,
proId: proId,
accessoryType: "0"
};
if ($("[name='brand']").val() == '') {
return false;
} else {
console.log(files);
var names = '';
layui.each(files, function (index, file) {
console.log(file.name)
names += file.name + ',';
});
$("[name='image']").val(names)
console.log(names);
}
return true;
},
done: function (data) {
},
allDone: function (data) {
num++;
if (num == fileNum) {
num = 0;
fileNum = 0;
top.layer.close(addLoadingMsg); //再执行关闭
top.layer.msg('文件保存成功', {icon: 1, time: 2000});
setTimeout("reloading()", 2100);
}
},
error: function (e) {
//请求异常回调
console.log(e)
}
});
//维权告示牌附件
var uploadcom2 = upload2.render({
elem: '#test2',
url: ctxPath + '/project/uploadFile', //改成您自己的上传接口
multiple: true, //是否允许多文件上传,默认未false
dataType: "json",
// data: {"pickId": id},
exts: 'jpg|png|jpeg',
//acceptMime: 'image/jpg,image/png,image/jpeg,file/pdf,file/xlsx',
auto: false, //是否自动上传 ,默认为true
number: 3, //最大上传数量
size: 1024 * 5, //最大文件大小,单位k
bindAction: '#hideUpload2', //绑定的按钮
field: 'projectInsuranceFile', //传到后台的字段名,默认file
choose: function (obj) {
CODE_2 = 3;
var suffixType = ''; //后缀类型
uploadcom2.config.elem.next()[0].value = '';
files = obj.pushFile();
obj.preview(function (index, file, result) {
console.log(index); //得到文件索引
console.log(file.name); //得到文件对象
$('#demo2').append('
');
$('#' + index).bind('dblclick', function () {//双击删除指定预上传图片
delete files[index];//删除指定图片
$(this).remove();
});
var imgNum = $("#demo2 img").length;
$("#test2").text(imgNum + "个文件");
});
},
before: function (obj) {
this.data = {
proId: proId,
accessoryType: "1"
};
if ($("[name='brand']").val() == '') {
return false;
} else {
console.log(files);
var names = '';
layui.each(files, function (index, file) {
console.log(file.name)
names += file.name + ',';
});
$("[name='image']").val(names)
console.log(names);
}
return true;
},
done: function (data) {
},
allDone: function (data) {
num++;
if (num == fileNum) {
num = 0;
fileNum = 0;
top.layer.close(addLoadingMsg); //再执行关闭
top.layer.msg('文件保存成功', {icon: 1, time: 2000});
setTimeout("reloading()", 2100);
}
},
error: function (e) {
//请求异常回调
console.log(e)
}
});
// 验证成功后才会执行下面的操作
form.on('submit(formDemo)', function (data) {
var orgId = $("#orgId").val();
if (orgId == '' || orgId == null) {
layer.msg('请选择项目部');
return false;
}else{
var id = $("#id").val();
data.field.companyId = $("#orgId").val();
if (id == '') {
addProject(data); // 新增工程
} else {
var proName = localStorage.getItem("name");
var name = $("#name").val();
if (proName == name) {
data.field.flag = false;
} else {
data.field.flag = true;
}
updateProject(data);
}
}
});
laydate.render({
elem: '#contractSigningDate' //指定元素 元素选择器
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
// , value: new Date() //初始值 今天
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
console.log(value);
console.log(date);
}
});
laydate.render({
elem: '#approachDate' //指定元素 元素选择器
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd HH:mm:ss' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
console.log(value);
console.log(date);
}
});
laydate.render({
elem: '#contractWarranty' //指定元素 元素选择器
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
console.log(value);
console.log(date);
}
});
laydate.render({
elem: '#startTime' //指定元素 元素选择器
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
$('#aTime').val(value);
$('#bTime').val(value);
var startDate = new Date($('#startTime').val());
var endDate = new Date($('#endTime').val());
if (startDate != null) {
if (endDate != null) {
if (endDate < startDate) {
parent.layer.msg('计划竣工时间不能小于计划开工时间', {icon: 2, time: 1500});
$("#endTime").val("");
}
}
}
}
});
laydate.render({
elem: '#endTime' //指定元素 元素选择器
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
var startDate = new Date($('#startTime').val());
var endDate = new Date($('#endTime').val());
if (startDate != null) {
if (endDate != null) {
if (endDate < startDate) {
parent.layer.msg('计划竣工时间不能小于计划开工时间', {icon: 2, time: 1500});
// $("#startTime").val(getNowTime);
$("#endTime").val("");
}
}
}
}
});
laydate.render({
elem: '#contractStartTime' //指定元素 元素选择器
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
var startDate = new Date($('#contractStartTime').val());
var endDate = new Date($('#contractEndTime').val());
if (startDate != null) {
if (endDate != null) {
if (endDate < startDate) {
parent.layer.msg('合同竣工时间不能小于合同开工时间', {icon: 2, time: 1500});
$("#contractEndTime").val("");
}
}
}
}
});
laydate.render({
elem: '#contractEndTime' //指定元素 元素选择器
, type: 'date' //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
, trigger: 'click'
, format: 'yyyy-MM-dd' //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
, btns: ['clear', 'now', 'confirm'] //选择框右下角显示的按钮 清除-现在-确定
, done: function (value, date) {//时间回调
var startDate = new Date($('#contractStartTime').val());
var endDate = new Date($('#contractEndTime').val());
if (startDate != null) {
if (endDate != null) {
if (endDate < startDate) {
parent.layer.msg('合同竣工时间不能小于合同开工时间', {icon: 2, time: 1500});
$("#contractEndTime").val("");
}
}
}
}
});
formValidation();
});
});
//新增工程
function addProject(formData) {
// 加载提示
addLoadingMsg = top.layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
if (CODE_1 == 0) {
parent.layer.msg("请上传项目保障金附件", {icon: 2, time: 2000});
top.layer.close(addLoadingMsg); //再执行关闭
} else {
if (CODE_2 == 2) {
parent.layer.msg("请上传维权告示牌附件", {icon: 2, time: 2000});
top.layer.close(addLoadingMsg); //再执行关闭
} else {
var formUrl = ctxPath + "/project";
$.ajax({
type: 'POST',
async: false, // 默认异步true,false表示同步
url: formUrl, // 请求地址
contentType: "application/json; charset=utf-8",
dataType: 'json', // 服务器返回数据类型
data: JSON.stringify(formData.field), //获取提交的表单字段
success: function (data) {
proId = data.obj;
if (data.resMsg == "保存成功") {
fileNum = 2;
$("#hideUpload1").trigger("click");
$("#hideUpload2").trigger("click");
} else if (data.resMsg == "保存失败") {
top.layer.close(addLoadingMsg); //再执行关闭
parent.layer.msg('保存失败', {icon: 2, time: 2000});
} else {
top.layer.close(addLoadingMsg); //再执行关闭
parent.layer.msg(data.resMsg, {icon: 2, time: 2000});
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
top.layer.close(addLoadingMsg); //再执行关闭
}
});
}
}
}
//修改工程
function updateProject(formData) {
// 加载提示
addLoadingMsg = top.layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
$("#securityMaymentsFileId").val(securityMaymentsFileId);
$("#boardFileId").val(boardFileId);
proId = $("#id").val();
// form请求地址
var formUrl = ctxPath + "/project/updateProject?securityMaymentsFileId=" + securityMaymentsFileId + "&boardFileId=" + boardFileId;
$.ajax({
type: 'POST',
async: false, // 默认异步true,false表示同步
url: formUrl, // 请求地址
date: {
proId: proId
},
contentType: "application/json; charset=utf-8",
dataType: 'json', // 服务器返回数据类型
data: JSON.stringify(formData.field), //获取提交的表单字段
success: function (data) {
if (data.resMsg == "保存成功") {
let num = 0;
$("#demo1").find("img").each(function () {
let newPhoto = $(this).attr("newPhoto");
if (newPhoto === undefined) {
num++;
}
})
$("#demo1").find("div").each(function () {
let newPhoto = $(this).attr("newFile");
if (newPhoto === undefined) {
num++;
}
})
let number = 0;
$("#demo2").find("img").each(function () {
let newPhoto = $(this).attr("newPhoto");
if (newPhoto === undefined) {
number++;
}
})
if (num > 0) {
fileNum++;
$("#hideUpload1").trigger("click");
}
if (number > 0) {
fileNum++;
$("#hideUpload2").trigger("click");
}
if(!num>0 && !number>0){
top.layer.close(addLoadingMsg);
parent.layer.msg('修改成功', {icon: 1, time: 2000});
setTimeout("reloading()", 2100);
}
} else if (data.resMsg == "保存失败") {
top.layer.close(addLoadingMsg);
parent.layer.msg('保存失败', {icon: 2, time: 2000});
} else {
top.layer.close(addLoadingMsg);
parent.layer.msg(data.resMsg, {icon: 2, time: 2000});
}
},
error: function (XMLHttpRequest, textStatus, e) {
top.layer.close(addLoadingMsg);
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
}
/**
* 获取行政区code
* */
function getRegisterAddressCodes(addressCodeId) {
$("#registerAddressCode").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/companyManager/getRegisterAddressCode',
data: {},
dataType: 'json',
success: function (data) {
if (data.length > 0) {
var html = '';
for (var i = 0; i < data.length; i++) {
if(data[i].id === addressCodeId){
html += '';
}else{
html += '';
}
}
$("#registerAddressCode").append(html);
layuiForm.render(); //这里就是我们要渲染的地方了
}
},
error: function (err) {
console.log("获取行政区code下拉列表出错:", err);
}
})
}
/**
* 获取分公司
* */
function getCompanys(orgId) {
$("#orgId").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/project/getCompanys',
data: {},
dataType: 'json',
success: function (data) {
var str = '';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (orgId == data[i].id) {
str += '';
} else {
str += '';
}
}
}
$("#orgId").append(str);
// layui.form.render('select'); //这里就是我们要渲染的地方了
}
})
}
/**
* 获取工程
* */
function getProject(orgId) {
$("#proId").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/balls/getPros',
data: {
"comId": orgId,
},
dataType: 'json',
success: function (data) {
var str = '';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
str += '';
}
}
$("#proId").append(str);
layui.form.render('select'); //这里就是我们要渲染的地方了
}
})
}
// 表单赋值
function setData(data) {
console.log(JSON.stringify(data));
$("#id").val(data.id);
localStorage.setItem("name", data.name);
// getCompanys(data.companyId); // 赋值分公司
// $("#orgName").val(data.orgName);
// // $("#orgId").val(data.orgId);
// $("#companyId").val(data.companyId);
$("#name").val(data.name); // 工程名称
$("#projectId").val(data.projectId); // 工程名称
$("#abbreviation").val(data.abbreviation); // 工程简称
// $("#proType").val(data.proType);// 工程类型
$("#proType").find('option[value=\'' + data.proType + '\']').prop("selected", "selected");//工程类型
$("#status").find('option[value=\'' + data.status + '\']').prop("selected", "selected"); // 工程状态
getLevel(data.voltageLevelId);
//$("#voltageLevel").find('option[value=\'' + data.voltageLevel + '\']').prop("selected", "selected"); // 电压
$("#powerGrid").val(data.powerGrid); // 所属电网
$("#origin").val(data.origin); // 工程地址
$("#lon").val(data.lon); // 经度
$("#lat").val(data.lat); // 纬度
$("#startTime").val(data.startTime); // 计划开工时间
$("#endTime").val(data.endTime); // 计划竣工时间
$("#contractSigningDate").val(data.contractSigningDate); // 合同签订日期
$("#contractPrice").val(data.contractPrice); // 签约价格
// $("#registerAddressCode").find('option[value=\'' + data.registerAddressCodeId + '\']').prop("selected", "selected");// 是否备案
getRegisterAddressCodes(data.registerAddressCodeId); // 行政区编码
$("#isInsurance").find('option[value=\'' + data.isInsurance + '\']').prop("selected", "selected");// 是否购买工商保险
$("#paymentType").val(data.paymentType); // 保证金类型
$("#securityPayments").val(data.securityPayments); // 项目保障金预存额
getPayDate(data.payDate); // 发薪日期
$("#labourSpecialName").val(data.labourSpecialName); // 劳资专管员姓名
$("#labourSpecialPhone").val(data.labourSpecialPhone); // 劳资专管员电话
$("#labourSpecialIdCard").val(data.labourSpecialIdCard); // 劳资专管员身份证
$("#projectManager").val(data.projectManager); // 参建单位项目经理姓名
$("#phone").val(data.phone); // 参建单位项目经理电话
$("#managerNumber").val(data.managerNumber); // 参建单位项目经理证件号码
$("#approachDate").val(data.approachDate); // 参建单位项目经理进场时间
$("#proLeader").val(data.proLeader); // 负责人联系人姓名
$("#proLeaderPhone").val(data.proLeaderPhone); //负责人 联系人电话
getBankAccount(data.bankAccountId);// 工资专户所属银行
$("#specialBankType").find('option[value=\'' + data.specialBankType + '\']').prop("selected", "selected");// 专户类型
$("#openBankType").find('option[value=\'' + data.openBankType + '\']').prop("selected", "selected");// 开户类型
$("#openBankNumber").val(data.openBankNumber);// 开户账号
$("#bankName").val(data.bankName);// 开户银行支行名称
$("#payWay").find('option[value=\'' + data.payWay + '\']').prop("selected", "selected");// 工资发放渠道
$("#accountBalance").val(data.accountBalance);// 账户余额
getCompanyIdEdit(data.gsId,'0' ,data.fgsId,data.orgId);// 公司
var securityMaymentsFilePaths = data.securityMaymentsFilePaths;
if (securityMaymentsFilePaths != '' && securityMaymentsFilePaths != null && securityMaymentsFilePaths != 'null') {
var photos = securityMaymentsFilePaths.split(",");
var fileType = data.fileType.split(",");
var html = '';
for (var i = 0; i < photos.length; i++) {
var path = '';
if (photos[i].indexOf("http") != -1) {
path = photos[i];
} else {
path = dataPath+"/" + photos[i];
}
var j = i+1;
if(fileType[i] == "0"){
html += '