HnRealNameBmwWeb/js/work/smallSubManagement/adjustRecordForm.js

238 lines
11 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.

var example = null;
var pers = null;
var form = null;
var contractId = localStorage.getItem("adjustRecordId")
layui.use(['layer', 'laydate', 'form'], function () {
form = layui.form;
form.render();
form.verify();
pers = checkPermission();
$(document).ready(function () {
init(); // 初始化表格
});
});
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/getUpdateRecordList",
"type": "post",
"data": function (d) {
d.contractId = contractId;
},
"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("<li>" +
"<a class='paginate_button' style='padding:4px;' href='#' tabindex='0'>到 <input style='margin:0px;width:40px;' id='changePage'> 页</a>" +
"<a class='paginate_button' style='margin-bottom:1px' href='#' tabindex='0' id='dataTable-btn'>确认</a></li>");
//点击按钮跳转指定页数
$('#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": "", "orderable": false, "defaultContent": "", width: "130px",
"render": function (data, type, row) {
var type = row['type'];
if (type == 1) {
return "作业范围调整";
} else if (type == 2) {
return "作业内容调整";
} else if (type == 3) {
return "作业期限调整";
} else if (type == 4) {
return "协议价调整";
}
}
},
{
"data": "",
"orderable": false,
"defaultContent": "",
"render": function (data, type, row) {
try {
const beforeData = JSON.parse(row.beforeData || '{}');
const t = row.type;
if (t == 2 && beforeData.gxInfo) {
// 作业内容 - 更改前
return beforeData.gxInfo.replace(/\n/g, '<br>');
} else if (t == 3 && isValidTimestamp(beforeData.plan_start_time) && isValidTimestamp(beforeData.plan_end_time)) {
// 作业期限 - 更改前
return `开始时间: ${timestampToDateString(beforeData.plan_start_time)}<br>结束时间: ${timestampToDateString(beforeData.plan_end_time)}`;
} else if (t == 4 && beforeData.contract_money) {
// 协议价 - 更改前
return `小写金额: ${beforeData.contract_money}<br>大写金额: ${beforeData.contract_money_max || ''} `;
} else if (t == 1 && Array.isArray(beforeData.gxList)) {
// 工序桩位 - 更改前
let html = '';
beforeData.gxList.forEach(item => {
html += `包干工序: ${item.gxName}<br>桩位: ${item.gxZw}<br><br>`;
});
return html || '无变更';
} else {
return '暂无数据';
}
} catch (e) {
console.error("beforeData 解析失败", e);
return '解析失败';
}
}
},
{
"data": "",
"orderable": false,
"defaultContent": "",
"render": function (data, type, row) {
try {
const afterData = JSON.parse(row.afterData || '{}');
const t = row.type;
if (t == 2 && afterData.gxInfo) {
// 作业内容 - 更改后
return afterData.gxInfo.replace(/\n/g, '<br>');
} else if (t == 3 && afterData.plan_start_time && afterData.plan_end_time) {
// 作业期限 - 更改后
return `开始时间: ${timestampToDateString(afterData.plan_start_time)}<br>结束时间: ${timestampToDateString(afterData.plan_end_time)}`;
} else if (t == 4 && afterData.contract_money) {
// 协议价 - 更改后
return `小写金额: ${afterData.contract_money}<br>大写金额: ${afterData.contract_money_max || ''}`;
} else if (t == 1 && Array.isArray(afterData.gxList)) {
// 工序桩位 - 更改后
let html = '';
afterData.gxList.forEach(item => {html += `包干工序: ${item.gxName}<br>桩位: ${item.gxZw}<br><br>`;});
return html || '无变更';
} else {
return '暂无数据';
}
} catch (e) {
console.error("afterData 解析失败", e);
return '解析失败';
}
}
},
{"data": "operUser", "orderable": false, "defaultContent": ""},
{"data": "operTime", "orderable": false, "defaultContent": ""},
{
"data": "",
"defaultContent": "",
"orderable": false,
"width": "10%",
"render": function (data, type, row) {
var id = row['id'];
var html = '';
html += buttonBeforeView(id, "", pers);
html += buttonAfterView(id, "", pers);
return html;
}
},
],
"order": [] //在栏目列上显示排序功能
});
}
// 判断是否为有效时间戳数字且大于0
function isValidTimestamp(ts) {
return typeof ts === 'number' && ts > 0 && !isNaN(ts);
}
// 时间戳转 yyyy-MM-dd 字符串
function timestampToDateString(timestamp) {
const date = new Date(parseInt(timestamp));
const year = date.getFullYear();
const month = ('0' + (date.getMonth() + 1)).slice(-2);
const day = ('0' + date.getDate()).slice(-2);
return `${year}-${month}-${day}`;
}
function buttonBeforeView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='更改前' onclick='downloadContract(\"" + id + "\",\"" + 2 + "\")'>更改前</button>");
return btn.prop("outerHTML");
}
function buttonAfterView(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='更改后' onclick='downloadContract(\"" + id + "\",\"" + 3 + "\")'>更改后</button>");
return btn.prop("outerHTML");
}
function downloadContract(id,downloadType){
var url = ctxPath + "/teamSmallBagDryTreaty/downloadContract?updateId=" + id + "&downloadType="+ downloadType + "&token=" + token;
var link = document.createElement("a");
link.href = url;
link.download ; // 设置文件名并指定为 .pdf
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}