");
if (contractStatus == 0) {
moreOptions.append(buttonScopeAdjustView(id, proId, "", pers));
moreOptions.append(buttonContentAdjustView(id, "", pers));
moreOptions.append(buttonPeriodAdjustView(id, "", pers));
moreOptions.append(buttonPriceAdjustView(id, "", pers));
moreOptions.append(buttonProtocolTerminateView(id, "", pers));
moreOptions.append(buttonDelView(id, "", pers));
}
moreOptions.append(buttonAdjustRecordView(id, "", pers));
$btn.after(moreOptions); // 插入到 .more-btn 后面
// 更新当前状态
currentMenu = moreOptions;
currentBtn = $btn;
});
// 点击文档空白处关闭菜单
$(document).on('click', function (e) {
if (!$(e.target).closest('.more-btn, .more-options').length && currentMenu) {
currentMenu.remove();
currentMenu = null;
currentBtn = null;
}
});
// 更多按钮悬停效果
/*$(document).on('mouseenter', '.more-btn', function () {
var $btn = $(this);
var id = $btn.data('id');
var proId = $btn.data('proId');
var contractStatus = $btn.data('contractStatus');
// 清除之前的定时器
if (moreOptionsTimeout) clearTimeout(moreOptionsTimeout);
// 如果已经存在就不重复创建
if ($btn.next('.more-options').length === 0) {
var moreOptions = $("
");
// 添加各个功能按钮
moreOptions.append(buttonScopeAdjustView(id,proId, "", pers));
moreOptions.append(buttonContentAdjustView(id, "", pers));
moreOptions.append(buttonPeriodAdjustView(id, "", pers));
moreOptions.append(buttonPriceAdjustView(id, "", pers));
moreOptions.append(buttonAdjustRecordView(id, "", pers));
if(contractStatus == 0){
moreOptions.append(buttonProtocolTerminateView(id, "", pers));
}
moreOptions.append(buttonDelView(id, "", pers));
$btn.after(moreOptions); // 插到 .more-btn 后面
}
});
$(document).on('mouseleave', '.more-btn', function () {
var $btn = $(this);
startHideTimer($btn.next('.more-options'));
});
// 鼠标进入 下拉菜单:不关闭
$(document).on('mouseenter', '.more-options', function () {
if (moreOptionsTimeout) clearTimeout(moreOptionsTimeout);
});
// 鼠标离开 下拉菜单:准备关闭
$(document).on('mouseleave', '.more-options', function () {
startHideTimer($(this));
});*/
// 开始计时器用于关闭菜单
function startHideTimer($menu) {
if (moreOptionsTimeout) clearTimeout(moreOptionsTimeout);
moreOptionsTimeout = setTimeout(function () {
$menu.remove();
}, 200);
}
});
});
//重置
$("#resetBt").click(function () {
$("#proId").val("");
$("#contractCode").val("");
$("#subName").val("");
$("#partyUser").val("");
$("#teamName").val("");
// 重新渲染 select 下拉框
layui.form.render("select");
example.ajax.reload();
});
//查询
function init() {
example =
$('#dt-table').DataTable({
"searching": false,
"processing": true, //加载数据时显示进度状态
"serverSide": true,
"pagingType": "full_numbers", //首页|尾页
"language": {
"url": ctxPath + "/js/plugin/datatables/Chinese.lang"
},
"ajax": {
"url": ctxPath + "/teamSmallBagDryTreaty/getList",
"type": "post",
"data": function (d) {
d.proId = $("#proId").val();
d.contractCode = $("#contractCode").val();
d.subName = $("#subName").val();
d.partyUser = $("#partyUser").val();
d.teamName = $("#teamName").val();
},
"error": function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
console.log(msg);
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
layer.msg("token过期,请先登录", {shift: -1, time: 1000}, function () {
location.href = ctxPath + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
console.log('系统错误:' + message);
}
}
},
"lengthMenu": [[10, 20, 50], [10, 20, 50]], // 设置每页显示数据量选项
"drawCallback": function () {
// alert( '表格重绘了' );
var thisDataTable = $('#dt-table').DataTable();
$(".pagination").append("
" +
"到 页" +
"确认");
//点击按钮跳转指定页数
$('#dataTable-btn').click(function (e) {
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw('page');
});
//敲击回车键跳转指定页数
$("#changePage").keypress(function (e) {
if (event.keyCode == 13) {
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw('page');
}
});
},
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>><'dt-table-length'l>",
"columns": [
{
"width": "5%",
"orderable": false,
data: function (row, type, set, meta) {
var c = meta.settings._iDisplayStart + meta.row + 1;
return c;
}
},
{"data": "contractCode", "orderable": false, "defaultContent": ""},
{"data": "proName", "orderable": false, "defaultContent": ""},
{"data": "subName", "orderable": false, "defaultContent": ""},
{"data": "teamName", "orderable": false, "defaultContent": ""},
{"data": "partyUser", "orderable": false, "defaultContent": ""},
{
"data": "", "orderable": false, "defaultContent": "",
"render": function (data, type, row) {
var planStartTime = row['planStartTime'];
var planEndTime = row['planEndTime'];
return planStartTime + "~" + planEndTime;
}
},
{"data": "contractMoney", "orderable": false, "defaultContent": ""},
{"data": "contractDate", "orderable": false, "defaultContent": ""},
{
"data": "", "orderable": false, "defaultContent": "",
"render": function (data, type, row) {
var contractStatus = row['contractStatus'];
if (contractStatus == 1) {
return "已终止";
} else if (contractStatus == 0) {
return "生效中";
}
}
},
{
"data": "",
"defaultContent": "",
"orderable": false,
"width": "10%",
"render": function (data, type, row) {
var id = row['id'];
var proId = row['proId'];
var contractStatus = row['contractStatus'];
var html = '';
html += buttonDetailView(id, "", pers);
html += buttonMoreView(id,proId,contractStatus, "", pers);
return html;
}
},
],
"order": [] //在栏目列上显示排序功能
});
}
//添加数据
function insertTeamPackageload() {
let index = layer.open({
title: ['包干合同模版预览', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'teamPackageManageForm.html',
area: ['90%', '90%'],
maxmin: false,
});
}
// 详情按钮
function buttonDetailView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
/**
* 详情
* */
function detailView(id) {
layer.open({
title: ['详情', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'teamPackageManageDetailForm.html',
area: ['90%', '90%'],
maxmin: false,
btn: ['关闭'],
success: function (layero, index) {
var myIframe = window[layero.find('iframe')[0]['name']];
myIframe.selectDetail(id); //aaa()为子页面的方法
},
});
}
// 更多按钮
function buttonMoreView(id,proId,contractStatus, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
/**
* 删除工程
* */
function delView(id) {
closeView()
layer.confirm("确定删除吗?", function () {
$.ajax({
type: 'post',
url: ctxPath + '/teamSmallBagDryTreaty/delData',
data: {contractId: id},
dataType: 'json',
success: function (data) {
if (data.resMsg == "操作成功") {
layer.alert('删除成功', {icon: 1});
example.ajax.reload(); // 刷新页面
} else {
layer.msg(data.resMsg, {icon: 2});
example.ajax.reload(); // 刷新页面
}
}
})
})
}
/**
* 获取工程
* */
function getPro() {
$("#proId").html("");
$.ajax({
type: 'post',
url: ctxPath + '/totalProWorkloadManage/getProName',
data: {},
async: false,
success: function (data) {
var html = '
';
for (var i = 0; i < data.data.length; i++) {
html += '
';
}
$("#proId").html(html);
form.render(); //这里就是我们要渲染的地方了
}
})
}
//导出excel表格
function exportTeamPackage() {
var proId = $("#proId").val();
var contractCode = $("#contractCode").val();
var subName = $("#subName").val();
var partyUser = $("#partyUser").val();
var teamName = $("#teamName").val();
var token = localStorage.getItem("token");
var loadingMsg = layer.msg('下载中,请稍候...', {icon: 16, scrollbar: false, time: 0});
var url = ctxPath + "/teamSmallBagDryTreaty/downloadExcel?proId=" + proId + "&contractCode=" + contractCode + "&subName=" + subName + "&partyUser=" + partyUser + "&teamName=" + teamName + "&token=" + token;
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
var blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = "班组小包干合作协议管理信息.xlsx"; // 文件名
} else {
layer.msg('发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000});
}
a.click()
window.URL.revokeObjectURL(url)
};
xhr.send();
}
// 作业范围调整按钮
function buttonScopeAdjustView(id,proId, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
// 作业内容调整按钮
function buttonContentAdjustView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
// 作业期限调整按钮
function buttonPeriodAdjustView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
// 协议价调整按钮
function buttonPriceAdjustView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
// 调整记录按钮
function buttonAdjustRecordView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
// 协议终止按钮
function buttonProtocolTerminateView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
// 删除按钮
function buttonDelView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("
");
return btn.prop("outerHTML");
}
// 作业范围调整
function scopeAdjustView(id,proId) {
closeView()
localStorage.setItem("lumpSumContractId", id)
localStorage.setItem("lumpSumProId", proId)
localStorage.setItem("lumpSumType", "2")
layer.open({
title: ['作业范围调整', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'lumpSumAddList.html',
area: ['90%', '90%'],
maxmin: false,
btn: ['确定','关闭'],
yes: function (index, layero) {
var formSubmit = layer.getChildFrame('form', index);
var submitBtn = formSubmit.find("button[lay-filter='formDemo']");
if (submitBtn.length === 0) {
console.error("未找到提交按钮");
return;
}
// 触发 click
submitBtn.click();
},
});
}
// 作业内容调整
function contentAdjustView(id) {
closeView()
layer.open({
title: ['作业内容调整', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'contentAdjustForm.html',
area: ['90%', '70%'],
maxmin: false,
btn: ['确定','关闭'],
success: function (layero, index) {
var myIframe = window[layero.find('iframe')[0]['name']];
myIframe.contentAdjustDetail(id); //aaa()为子页面的方法
},
yes: function (index, layero) {
var formSubmit = layer.getChildFrame('form', index);
var submited = formSubmit.find('button')[0];
submited.click();
},
});
}
// 作业期限调整
function periodAdjustView(id) {
closeView()
layer.open({
title: ['作业期限调整', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'periodAdjustForm.html',
area: ['50%', '60%'],
maxmin: false,
btn: ['确定','关闭'],
success: function (layero, index) {
var myIframe = window[layero.find('iframe')[0]['name']];
myIframe.periodAdjustDetail(id); //aaa()为子页面的方法
},
yes: function (index, layero) {
var formSubmit = layer.getChildFrame('form', index);
var submited = formSubmit.find('button')[0];
submited.click();
},
});
}
// 协议价调整
function priceAdjustView(id) {
closeView()
layer.open({
title: ['协议价调整', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'priceAdjustForm.html',
area: ['50%', '60%'],
maxmin: false,
btn: ['确定','关闭'],
success: function (layero, index) {
var myIframe = window[layero.find('iframe')[0]['name']];
myIframe.priceAdjustDetail(id); //aaa()为子页面的方法
},
yes: function (index, layero) {
var formSubmit = layer.getChildFrame('form', index);
var submited = formSubmit.find('button')[0];
submited.click();
},
});
}
// 调整记录
function adjustRecordView(id) {
closeView()
localStorage.setItem("adjustRecordId", id)
layer.open({
title: ['调整记录', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'adjustRecordForm.html',
area: ['90%', '90%'],
maxmin: false,
btn: ['关闭'],
});
}
// 协议终止
function protocolTerminateView(id) {
closeView()
layer.confirm("确定终止协议吗?", function () {
$.ajax({
type: 'post',
url: ctxPath + '/teamSmallBagDryTreaty/terminationData',
data: {contractId: id},
dataType: 'json',
success: function (data) {
if (data.resMsg == "操作成功") {
layer.alert('操作成功', {icon: 1});
example.ajax.reload(); // 刷新页面
} else {
layer.msg(data.resMsg, {icon: 2});
example.ajax.reload(); // 刷新页面
}
}
});
});
}
function closeView() {
$('.more-options').remove(); // 或者使用 currentMenu.remove();
currentMenu = null;
currentBtn = null;
}