IntelligentRecognition/ah-jjsp-web/.svn/pristine/2e/2e8d67066eda359e0b9bc7f195e...

272 lines
8.3 KiB
Plaintext
Raw Permalink 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 table, deviceTable, form, per, layer;
let laypage = 1, limitSize = 50; // 默认第一页分页数量为50
let user = getUser();
layui.use(['layer', 'form', 'element', 'laypage'], function () {
layer = layui.layer; //弹层
laypage = layui.laypage; //分页
table = layui.table; //表格
form = layui.form;
setAuthBtns();
initTable();
$('#myModal_edit').on('show.bs.modal', centerModals);
})
// 设置按钮权限
function setAuthBtns() {
let html = '';
if (user.isSup === '1') {
// 管理员权限
html += '<button type="button" style="width: 90px;" class="layui-btn layui-btn-primary layui-border layui-btn-sm" onclick="modelDownload()">模版下载</button>'
html += '<button type="button" style="width: 90px;" class="layui-btn layui-btn-primary layui-border layui-btn-sm" onclick="chooseFile()">数据导入</button>'
}
$('.export').after(html);
}
//初始化表格
function initTable() {
// 执行一个 table 实例
deviceTable = table.render({
id: 'todayTaskTable',
elem: '#todayTaskTable',
height: "full-70",
url: dataUrl + 'proteam/sys/manage/getPageInfo?token=' + token,
page: {
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
groups: 5, //只显示 5 个连续页码
limits: [30, 50, 100],
limit: 50,
curr: 1
},
method: 'POST',
where: {
type: '1',
keyWord: $("#keyWord").val(),
},
title: '施工单位列表',
response: {
statusCode: 200 //重新规定成功的状态码为 200table 组件默认为 0
},
parseData: function (res) { // res 即为原始返回的数据
return {
"code": res.code,
"msg": res.msg,
"count": res.count,
"data": res.data,
"limit": res.limit,
"curr": res.curr
};
},
cols: [[ //表头
{ type: 'checkbox', fixed: 'left' },
{
title: "序号", width: 80, align: "center", templet: function (d) {
return d.LAY_NUM;
}
}
, { field: 'name', title: '施工单位名称', width: 450, align: 'center' }
, { field: 'code', title: '施工单位编码', width: 350, align: 'center' }
, { field: 'remarks', title: '备注', width: 200, align: 'center' }
, { field: 'createUser', title: '创建人', width: 200, align: 'center' }
, { field: 'createTime', title: '创建时间', width: 200, align: 'center' }
, { field: 'updateUser', title: '修改人', width: 200, align: 'center' }
, { field: 'updateTime', title: '修改时间', width: 200, align: 'center' }
, {
fixed: 'right', title: '操作', width: 200, align: 'center', templet: function (d) {
let html = '';
html += "<a style='font-size:30px;' class='layui-icon layui-icon-edit' title='编辑' onclick=\"addData('" + d.id + "')\"></a>" +
"<a style='font-size:30px;' class='layui-icon layui-icon-delete' title='删除' onclick=\"delData('" + d.id + "')\"></a>";
return html;
}
}
]],
done: function (res, curr, count) {
$(".layui-table-main tr").each(function (index, val) {
$(".layui-table-fixed").each(function () {
$($(this).find(".layui-table-body tbody tr")[index]).height($(val).height());
});
});
$(".layui-table-header tr").each(function (index, val) {
$(".layui-table-fixed").each(function () {
$($(this).find(".layui-table-header thead tr")[index]).height($(val).height());
});
});
pageNum = res.curr, limitSize = res.limit;
}
});
}
/*新增/修改监理单位信息*/
function addData(id) {
let title = '新增施工单位';
if (id) {
title = '修改施工单位';
}
let layerIndex = layer.open({
id: "addUnitInfo",
title: ['<div style="border-left: 3px solid #2F82FB;display: flex;align-items: center;height: 20px;padding: 0 10px;">' + title + '</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
type: 2,
maxmin: false,
content: 'addData.html',
area: ['664px', '444px'],
move: false,
btn: ['确定', '取消'],
success: function (layero, index) {
let iframeWin = window["layui-layer-iframe" + layerIndex];
iframeWin.setForm(id);
},
yes: function (index, leyuo) {
var body = layer.getChildFrame('body', index);
body.find('#add-data').click();
},
btn2: function () {
layer.closeAll();
}
});
}
// 删除数据
function delData(id) {
layer.confirm('确定删除吗?', { 'move': false, 'title': '操作提示' }, function () {
let loadingMsg = layer.msg('数据删除中,请稍候...', { icon: 16, scrollbar: false, time: 0 });
let url = dataUrl + 'proteam/sys/manage/deleteData';
let params = {
'keyId': id,
};
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
layer.close(loadingMsg);
if (parseInt(result.code) === 200) {
layer.msg(result.msg, { icon: 1 })
reloadData();
} else if (parseInt(result.code) === 201) {
layer.msg(result.msg, { icon: 1 })
} else if (result.code === 401) {
logout(1);
}
}, function (xhr) {
layer.close(loadingMsg);
});
})
}
// 查询/重置
function query(type) {
if (type === 2) {
$('#keyWord').val('')
}
let pattern = new RegExp("[%_<>]");
if (pattern.test($("#keyWord").val())) {
$("#keyWord").val('');
return layer.msg('关键字查询包含特殊字符,请重新输入', { icon: 2, time: 2000 });
}
layui.form.render();
reloadData();
}
// 刷新表格
function reloadData(type) {
table.reload('todayTaskTable', {
where: {
keyWord: $('#keyWord').val(),
type: '1'
},
page: {
curr: type ? pageNum : 1,
limit: limitSize,
groups: 5, //只显示 5 个连续页码
},
});
}
/*数据导入*/
function chooseFile() {
$("#import-excel").trigger("click");
}
$("#import-excel").change(function () {
if ($(this).val()) {
let files = $(this)[0].files[0];
let fileType = files.name.substring(
files.name.lastIndexOf(".") + 1,
files.name.length
);
if (fileType === "xlsx" || fileType === "xls") {
excelUpload9(this, '1', dataUrl + "proteam/sys/manage/importExcel?token=" + token)
} else {
layer.msg("仅支持上传文件格式为xlx、xlsx", { icon: 7, });
$("#import-excel").val("");
}
}
});
// 弹出模态框
function centerModals() {
$('#myModal_edit').each(function (i) {
var $clone = $(this).clone().css('display', 'block').appendTo('body');
var top = Math.round(($clone.height() - $clone.find('.modal-content').height()) / 3);
top = top > 0 ? top : 0;
$clone.remove();
$(this).find('.modal-content').css("margin-top", top);
});
};
// 施工单位导入模版下载
function modelDownload() {
let loadingMsg = layer.msg('模板下载中,请稍候...', { icon: 16, scrollbar: false, time: 0 });
let url = dataUrl + 'proteam/sys/manage/downLoadExcelModel?token=' + token;
let xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader("encrypt",
sm3(JSON.stringify({})));
xhr.onload = function () {
layer.close(loadingMsg); // 关闭提示层
if (this.status === 200) {
let 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 getParam() {
var params = "type=" + 1 + "&keyWord=" + $("#keyWord").val();
return params;
}
//导出
function exportData() {
let loadingMsg = layer.msg("数据导出中,请稍候...", { icon: 16, scrollbar: false, time: 0, });
let url = dataUrl + "proteam/sys/manage/exportDevice?" + getParam() + '&token=' + token;
let xhr = new XMLHttpRequest();
let a = document.createElement("a");
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader("encrypt", sm3(JSON.stringify(getParam())));
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
let url = window.URL.createObjectURL(new Blob([this.response]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', "施工单位台账.xlsx")
document.body.appendChild(link)
link.click()
// 释放URL对象所占资源
window.URL.revokeObjectURL(url)
// 用完即删
document.body.removeChild(link)
} else {
layer.msg("数据发生异常,请稍后重试", { icon: 16, scrollbar: false, time: 2000 });
}
};
xhr.send();
}