Authored by 王涛

Merge branch 'master-mj-yuanjinpengnew' into 'master-mj'

fix:山西特色功能迁移 备份模块和基础环境管理模块儿



See merge request !1109

Too many changes to show.

To preserve performance only 18 of 18+ files are displayed.

//备份失败列表
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions','soulTable'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var session = layui.sessions
var domainName = common.domainName;
var soulTable = layui.soulTable;
//对外暴露的接口
exports("backDetailList", function (d) {
var accessToken = localStorage.getItem("accessToken");
createFailTable()
function dateForm(time) {
var unixTimestamp = new Date(time);
var commonTime = unixTimestamp.toLocaleString();
return commonTime
}
//渲染附件表格
function createFailTable() {
var failTable = table.render({
elem: '#backDetailTable',
url:common.domainName + '/api-web/collbackup/childrenList',
where: {
type:"all",
accessToken: accessToken,
startTimeDate: d.startTime,
resId: d.resId === null ? 'null' : d.resId,
resIp: d.resIp === null ? 'null' : d.resIp
},
height: 'full',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[
{
field: 'policyName', title: '策略类型', align: 'center', sort: true, width: 250, drag: false
}, {
field: 'agentType',
title: '代理类型',
align: 'center',
sort: true,
drag: false,
width: 200,
templet: `
<div>
{{#
var agentTypeEnum = {
'F': '文件',
'O': 'Oracle',
'S': 'SQLServer',
'M': 'Mysql',
'v': 'VMware',
'q': 'H3C',
'E': 'Exchange',
'C': 'ActiveDirector',
'U': 'AliCloud',
'H': 'HYPER_V',
'Q': 'QEMU',
'X': 'XEN',
'd': 'DaMeng'
};
var agentTypeStr = agentTypeEnum[d.agentType];
agentTypeStr = agentTypeStr ? agentTypeStr : d.agentType;
}}
{{agentTypeStr}}
</div>
`
}, {
field: 'level',
title: '级别',
align: 'center',
sort: true,
drag: false,
width: 200,
templet: `
<div>
{{#
var levelEnum = {
'F': '全备',
'I': '增量',
'D': '差异',
's': '文件和文件组(sqlserver)',
'L': '事务日志(sqlserver)',
'X': '全量备份(oracle级别)',
'Y': '差异增量(oracle级别)',
'Z': '累积增量(oracle级别)'
};
var levelStr = levelEnum[d.level];
levelStr = levelStr ? levelStr : d.level;
}}
{{levelStr}}
</div>
`
}, {
field: 'client', title: '客户端', align: 'center', drag: false, width: 200, sort: true
}, {
field: 'stroge', title: '存储池', align: 'center', drag: false, width: 200, sort: true
}, {
field: 'jobStatus',
title: '备份状态',
align: 'center',
drag: false,
width: 160,
sort: true,
templet: `
<div>
{{#
var jobStatusEnum = {
'A': '取消',
'T': '成功',
'N': '禁用',
'f': '<span style="color: red">失败</span>',
'E': '<span style="color: red">失败</span>',
'W': '成功有警告',
'I': '备份中',
'e': '成功有警告'
};
var jobStatusStr = jobStatusEnum[d.jobStatus];
jobStatusStr = jobStatusStr ? jobStatusStr : d.jobStatus;
}}
{{jobStatusStr}}
</div>
`
}, {
field: 'startTime', title: '开始时间', align: 'center', drag: false, sort: true, width: 160
}, {
field: 'endTime', title: '结束时间', align: 'center', drag: false, sort: true, width: 160
}, {
field: 'useTime', title: '运行时间', align: 'center', drag: false, sort: true, width: 130
}, {
field: 'speed', title: '速度', align: 'center', drag: false, sort: true, width: 110
}, {
field: 'jobFiles', title: '文件数', align: 'center', drag: false, sort: true, width: 110
}, {
field: 'jobBytesMb', title: '数据量', align: 'center', drag: false, sort: true, width: 170
}, {
field: 'storgeType', title: '存储类型', align: 'center', drag: false, sort: true, width: 110
}
]],
done: function () {
soulTable.render(this);
}
})
}
})
})
\ No newline at end of file
... ...
//备份失败列表
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var session = layui.sessions
var domainName = common.domainName;
//对外暴露的接口
exports("backFailList", function (d) {
var accessToken = localStorage.getItem("accessToken");
createFailTable()
function dateForm(time) {
var unixTimestamp = new Date(time);
var commonTime = unixTimestamp.toLocaleString();
return commonTime
}
//渲染附件表格
function createFailTable() {
var failTable = table.render({
elem: '#failTable',
url: domainName + '/api-web/backupview/findBackupViews',
where: {
accessToken: accessToken,
countTime: d.createDate,
backStatus: d.status
},
height: 'full',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[
{type: 'numbers', title: '序号'},
{
field: 'busName', title: '系统名称', align: 'center', minWith: 240,
}, {
field: 'evaluationLevel', title: '等保等级', align: 'center', minWith: 130,
}, {
field: 'resName', title: '数据库名称', align: 'center', minWith: 240,
},
{
field: 'ip', title: 'IP地址', align: 'center', minWith: 150,
},
{
field: 'platform', title: '备份平台', align: 'center', minWith: 130,
},
{
field: 'backLevel', title: '备份级别', align: 'center', minWith: 180,
},
{
field: 'backStatus', title: '备份状态', align: 'center', minWith: 120,
templet:function (d) {
var backStatus = d.backStatus
var backStatushtml = '成功';
if(/失败/.test(backStatus)){
backStatushtml = '<span style="font-size: 14px;color: red">失败</span>'
}else{
backStatushtml = '<span style="font-size: 14px;color: green">成功</span>'
}
return backStatushtml;
}
},
{
field: 'backBytes', title: '数据量(GB)', align: 'center', minWith: 130,
},
{
field: 'backSpeed', title: '速率(MB/s)', align: 'center', minWith: 130,
},
{
field: 'useTime', title: '运行时间(分)', align: 'center', minWith: 130,
},
{
field: 'startTime', title: '开始时间', align: 'center', minWith: 180,
templet:function (d) {
return dateForm(d.startTime);
}
},
{
field: 'endTime', title: '结束时间', align: 'center', minWith: 180,
templet:function (d) {
return dateForm(d.endTime);
}
},
]],
done: function () {
}
})
}
})
})
\ No newline at end of file
... ...
//备份统计
layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions','laydate', 'soulTable'], function (exports) {
var $ = layui.$;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var laydate = layui.laydate;
var soulTable = layui.soulTable;
//对外暴露的接口
var accessToken;
exports('backup', function () {
var sessions = layui.sessions;
accessToken = sessions.getToken().access_token;
//条形图周期
var period = 'today';
var sortBy = 'startTime';
var order = 'desc';
//表格周期
initCount();
initTable();
//条形图时间周期切换事件
$("#noticeCount_time_button_id button").on("click", function () {
$("#noticeCount_time_button_id button").removeClass("active");
$(this).addClass("active");
period = $(this).data("period");
initCount();
initTable();
});
var busBackupCountChart = echarts.init(document.getElementById('backup_count_bus'));
var agentTypeBackupCountChart = echarts.init(document.getElementById('backup_count_agentType'));
//初始化柱状图页面
function initCount() {
countByBus();
countByAgentType();
countByState();
}
//初始化表格
function initTable() {
// 加载表格
table.render({
elem: '#backup_table',
url: common.domainName + '/api-web/collbackup/list',
where: {
type:period,
accessToken: accessToken,
orderBy: sortBy ? sortBy + ' ' + order : ''
},
initSort: {
field: sortBy,
type: order
},
height: '500px',
cellMinWidth: 80,
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
theme: '#1E9FFF'
},
limit: common.limit,
limits:common.limits,
// initSort: {
// field: sortBy,
// type: order
// },
autoSort: false,
cols: [[{
title: '#', width: 50, childTitle: false, children: function (row) {
return [{
title: '',
url: common.domainName + '/api-web/collbackup/childrenList',
page: {layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], theme: '#1E9FFF'},
limit: 5,
where: {
type:period,
access_token: accessToken,
startTimeDate: row.startTime,
resId: row.resId === null ? 'null' : row.resId,
resIp: row.resIp === null ? 'null' : row.resIp
},
cols: [[{
field: 'policyName', title: '策略类型', align: 'center', sort: true, width: 250, drag: false
}, {
field: 'agentType',
title: '代理类型',
align: 'center',
sort: true,
drag: false,
width: 200,
templet: `
<div>
{{#
var agentTypeEnum = {
'F': '文件',
'O': 'Oracle',
'S': 'SQLServer',
'M': 'Mysql',
'v': 'VMware',
'q': 'H3C',
'E': 'Exchange',
'C': 'ActiveDirector',
'U': 'AliCloud',
'H': 'HYPER_V',
'Q': 'QEMU',
'X': 'XEN',
'd': 'DaMeng'
};
var agentTypeStr = agentTypeEnum[d.agentType];
agentTypeStr = agentTypeStr ? agentTypeStr : d.agentType;
}}
{{agentTypeStr}}
</div>
`
}, {
field: 'level',
title: '级别',
align: 'center',
sort: true,
drag: false,
width: 200,
templet: `
<div>
{{#
var levelEnum = {
'F': '全备',
'I': '增量',
'D': '差异',
's': '文件和文件组(sqlserver)',
'L': '事务日志(sqlserver)',
'X': '全量备份(oracle级别)',
'Y': '差异增量(oracle级别)',
'Z': '累积增量(oracle级别)'
};
var levelStr = levelEnum[d.level];
levelStr = levelStr ? levelStr : d.level;
}}
{{levelStr}}
</div>
`
}, {
field: 'client', title: '客户端', align: 'center', drag: false, width: 200, sort: true
}, {
field: 'stroge', title: '存储池', align: 'center', drag: false, width: 200, sort: true
}, {
field: 'jobStatus',
title: '备份状态',
align: 'center',
drag: false,
width: 160,
sort: true,
templet: `
<div>
{{#
var jobStatusEnum = {
'A': '取消',
'T': '成功',
'N': '禁用',
'f': '<span style="color: red">失败</span>',
'E': '<span style="color: red">失败</span>',
'W': '成功有警告',
'e': '成功有警告'
};
var jobStatusStr = jobStatusEnum[d.jobStatus];
jobStatusStr = jobStatusStr ? jobStatusStr : d.jobStatus;
}}
{{jobStatusStr}}
</div>
`
}, {
field: 'startTime', title: '开始时间', align: 'center', drag: false, sort: true, width: 160
}, {
field: 'endTime', title: '结束时间', align: 'center', drag: false, sort: true, width: 160
}, {
field: 'useTime', title: '运行时间', align: 'center', drag: false, sort: true, width: 130
}, {
field: 'speed', title: '速度', align: 'center', drag: false, sort: true, width: 110
}, {
field: 'jobFiles', title: '文件数', align: 'center', drag: false, sort: true, width: 110
}, {
field: 'jobBytesMb', title: '数据量', align: 'center', drag: false, sort: true, width: 170
}, {
field: 'storgeType', title: '存储类型', align: 'center', drag: false, sort: true, width: 110
}]],
done: function () {
soulTable.render(this);
}
}]
}
}, {
field: 'policyName', title: '策略类型', align: 'center', sort: true, width: 250, drag: false
}, {
field: 'agentType', title: '代理类型', align: 'center', sort: true, drag: false, width: 200, templet: `
<div>
{{#
var agentTypeEnum = {
'F': '文件',
'O': 'Oracle',
'S': 'SQLServer',
'M': 'Mysql',
'v': 'VMware',
'q': 'H3C',
'E': 'Exchange',
'C': 'ActiveDirector',
'U': 'AliCloud',
'H': 'HYPER_V',
'Q': 'QEMU',
'X': 'XEN',
'd': 'DaMeng'
};
var agentTypeStr = agentTypeEnum[d.agentType];
agentTypeStr = agentTypeStr ? agentTypeStr : d.agentType;
}}
{{agentTypeStr}}
</div>
`
}, {
field: 'level', title: '级别', align: 'center', sort: true, drag: false, width: 200, templet: `
<div>
{{#
var levelEnum = {
'F': '全备',
'I': '增量',
'D': '差异',
's': '文件和文件组(sqlserver)',
'L': '事务日志(sqlserver)',
'X': '全量备份(oracle级别)',
'Y': '差异增量(oracle级别)',
'Z': '累积增量(oracle级别)'
};
var levelStr = levelEnum[d.level];
levelStr = levelStr ? levelStr : d.level;
}}
{{levelStr}}
</div>
`
}, {
field: 'client', title: '客户端', align: 'center', drag: false, width: 200, sort: true
}, {
field: 'stroge', title: '存储池', align: 'center', drag: false, width: 200, sort: true
} , {
field: 'jobStatus',
title: '备份状态',
align: 'center',
drag: false,
width: 160,
sort: true,
templet: `
<div>
{{#
var jobStatusEnum = {
'A': '取消',
'T': '成功',
'N': '禁用',
'f': '<span style="color: red">失败</span>',
'E': '<span style="color: red">失败</span>',
'W': '成功有警告',
'e': '成功有警告'
};
var jobStatusStr = jobStatusEnum[d.jobStatus];
jobStatusStr = jobStatusStr ? jobStatusStr : d.jobStatus;
}}
{{jobStatusStr}}
</div>
`
}, {
field: 'startTime', title: '开始时间', align: 'center', drag: false, sort: true, width: 160
}, {
field: 'endTime', title: '结束时间', align: 'center', drag: false, sort: true, width: 160
}, {
field: 'jobFiles', title: '文件数', align: 'center', drag: false, sort: true, width: 110
}, {
field: 'storgeType', title: '存储类型', align: 'center', drag: false, sort: true, width: 110
}]],
done() {
soulTable.render(this);
}
});
}
//根据业务统计
function countByBus() {
$.ajax({
url: common.domainName + '/api-web/collbackup/countBackupByBus?access_token=' + accessToken + '&type=' + period,
method: 'GET',
success: function (res) {
if (res && res.success) {
if (res.names.length == 0){
res.names = ["综合办公信息系统","社保费税银子系统","社保费征收子系统","社保费信息共享平台","数字人事","出口退税审核系统"];
res.totals = [0,0,0,0,0,0];
res.successes = [0,0,0,0,0,0];
res.failures = [0,0,0,0,0,0];
}
//初始化业务子系统告警发送统计
loadCountOverChart(busBackupCountChart,res,'按业务统计','bar');
}
}
})
}
//根据业务统计
function countByAgentType() {
$.ajax({
url: common.domainName + '/api-web/collbackup/countBackupByAgentType?access_token=' + accessToken + '&type=' + period,
method: 'GET',
success: function (res) {
if (res && res.success) {
//初始化业务子系统告警发送统计
loadCountOverChart(agentTypeBackupCountChart,res,'按代理类型统计','bar');
}
}
})
}
//成功、失败统计
function countByState() {
$.ajax({
url: common.domainName + '/api-web/collbackup/countByState?access_token=' + accessToken + '&type=' + period,
method: 'GET',
success: function (res) {
if (res && res.success && res.map) {
let map = res.map;
$('#back_total').text(map.totalCount);
$('#back_success').text(map.successCount);
$('#back_fail').text(map.failCount);
}
}
})
}
//备份统计柱状图表
function loadCountOverChart(echartObject, chartData, title, type) {
//列名
var nameList = chartData.names;
//总数
var totalList = chartData.totals;
//成功
var successList = chartData.successes;
//失败
var failureList = chartData.failures;
var barSeries = [{
name: '成功',
data: successList,
barWidth: 40,
type: 'bar',
stack: 'total',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#0BAC33"
}
}, {
name: '失败',
data: failureList,
barWidth: 40,
type: 'bar',
stack: 'total',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#d81e06"
},
label: {
show: true,
position: 'top',
textStyle: {
color: '#555'
},
formatter: function (param) {
return totalList[param.dataIndex];
},
}
}];
var lineSeries = [{
name: '成功',
data: successList,
barWidth: 40,
type: 'line',
stack: 'total',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#0BAC33"
},
label: {
show: true,
position: 'top',
textStyle: {
color: '#555'
}
}
}, {
name: '失败',
data: failureList,
barWidth: 40,
type: 'line',
stack: 'total',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#d81e06"
},
label: {
show: true,
position: 'top',
textStyle: {
color: '#555'
}
}
}
]
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
extraCssText: 'width:120px;height:80px;'
},
toolbox: {
show: true,
feature: {
saveAsImage: {}
},
right: 10
},
legend: {
data: ['成功', '失败'],
selectedMode: false
},
grid: [{
top: 40,
bottom: 70,
left: 50,
right: 5
}],
xAxis: [{
type: 'category',
data: nameList,
axisLabel: {
color: '#333',
show: true,
interval: 0,
rotate: 25
},
axisLine: {
lineStyle: {
color: '#e7e7e7'
}
},
axisTick: {
lineStyle: {
color: '#e7e7e7'
}
},
zlevel: 1
}],
yAxis: [{
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
},
splitLine: {
lineStyle: {
type: 'dashed'
}
},
axisLine: {
lineStyle: {
color: '#ccc'
}
},
axisTick: {
lineStyle: {
color: '#ccc'
}
}
}],
series: type === 'bar' ? barSeries : lineSeries
}
echartObject.setOption(option)
}
});
});
... ...
//备份统计
layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions', 'laydate', 'soulTable'], function (exports) {
var $ = layui.$;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var laydate = layui.laydate;
var soulTable = layui.soulTable;
var domainName = common.domainName;
//对外暴露的接口
var accessToken;
exports('backupCount', function () {
var sessions = layui.sessions;
var accessToken = localStorage.getItem("accessToken");
var period = 'thisMonth';
initTable();
initStatusTable()
//条形图时间周期切换事件
$("#backupCount_time_button_id button").on("click", function () {
$("#backupCount_time_button_id button").removeClass("active");
$(this).addClass("active");
period = $(this).data("period");
initTable();
});
$("#btn-backcount-export-excel").on("click", function () {
var href = domainName + '/api-web/backupview/backCount/export?accessToken=' + accessToken + "&countTime=" + period;
window.open(href)
})
//初始化表格
function initTable() {
// 加载表格
table.render({
elem: '#count_table',
url: domainName + '/api-web/backupview/countBackUp',
where: {
countTime: period,
accessToken: accessToken
},
height: '800px',
cellMinWidth: 80,
autoSort: false,
cols: [[{
field: 'createDate', title: '备份时间', align: 'center', sort: true, drag: false, width: 220
}, {
field: 'shouldBack', title: '应备份数量', align: 'center', drag: false, width: 220,
}, {
field: 'success', title: '备份成功数量', align: 'center', drag: false, width: 220,
templet: '<div><span data-date="{{d.createDate}}" data-status="成功" class="layui-table-link view-failCount-collectValue" style="color: green;font-size: 14px">{{d.success}}</span></div>'
}, {
field: 'fail', title: '备份失败数量', align: 'center', drag: false, width: 220,
templet: '<div><span data-date="{{d.createDate}}" data-status="失败" class="layui-table-link view-failCount-collectValue" style="color: red;font-size: 14px">{{d.fail}}</span></div>'
}, {
field: 'inback', title: '备份中数量', align: 'center', drag: false, width: 220,
}, {
field: 'noback', title: '未备份数量', align: 'center', drag: false, width: 220,
}, {
field: 'sucRate', title: '备份成功率', align: 'center', drag: false,
}]],
done: function (res, curr, count) {
soulTable.render(this);
$('.view-failCount-collectValue').on('click', function () {
var createDate = $(this).data("date");
var status = $(this).data("status");
var title = '备份失败列表'
common.openWin('backup/failList', title, {createDate: createDate, status: status}, ['确定', '取消'])
});
}
});
}
function initStatusTable() {
var loading = layer.load(2)
var mycars = new Array();
var url = common.domainName + '/api-web/backupview/countLastHalfMonthBackStatus'
$.ajax({
url: url,
type: 'get',
data: {accessToken: accessToken},
success: function (res) {
layer.close(loading);
var data = res.data;
var tr = '<div style="line-height: 26px;padding: 15px;text-align:center;color: #999;">暂无数据</div>';
if(data.length==0){
$(".backupCountStatus-table").append(tr);
}else {
$("#status_table").find("thead").empty();
$("#status_table").find("tbody").empty();
var htr = "<tr><th>序号</th><th width='200'>系统名称</th><th>等保等级</th><th width='200'>数据库名称</th><th>IP地址</th>"
$.each(data[0].backlist[0], function (j, f) {
if (j != "resId" && j != "resName" && j != "ip") {
htr += "<th>" + j + "</th>"
}
});
htr += "</tr>"
$("#status_table").find("thead").append(htr);
$.each(data, function (i, e) {
var tr = '';
var str = '';
if (e.rowspan == 0) {
str = '<td rowspan=1>' + e.businfo.busTypeName + '</td><td rowspan=1>' + e.businfo.evaluationLevel + '</td>'
tr += '<tr data-id="' + e.businfo.busId + '">' +
'<td>' + (i + 1) + '</td>' +
str +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'</tr>'
} else {
str = '<td rowspan="' + e.rowspan + '">' + (i + 1) + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.busTypeName + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.evaluationLevel + '</td>'
tr += '<tr data-id="' + e.businfo.busId + '">' + str
$.each(e.backlist, function (j, f) {
$.each(e.backlist[j], function (h, n) {
if (h != "resId") {
if (/失败/.test(n)) {
tr += '<td><i class="layui-icon layui-icon-close" style="font-size: 30px; color: #ff252c;"></i></td>'
} else if (/成功/.test(n)) {
tr += '<td><i class="layui-icon layui-icon-ok" style="font-size: 30px; color: #1dff1c;"></i></td>'
} else if (/备份中/.test(n)) {
tr += '<td><span style="color:#ffe40e">' + n + '</span></td>'
} else if (/未备份/.test(n)) {
tr += '<td><span style="color:magenta">' + n + '</span></td>'
} else {
tr += '<td>' + n + '</td>'
}
}
});
tr += '</tr>'
});
}
$("#status_table").find("tbody").append(tr);
})
}
}
})
}
})
});
\ No newline at end of file
... ...
layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view', 'element'], function (exports) {
var $ = layui.$;
var form = layui.form;
var table = layui.table;
var element = layui.element;
var laydate = layui.laydate;
var common = layui.common;
var view = layui.view;
var admin = layui.admin;
//对外暴露的接口
exports('backupmain', function () {
var accessToken = localStorage.getItem("accessToken");
var today = new Date()
today = today.getFullYear() + "-" + (today.getMonth() >= 9 ? (today.getMonth() + 1) : "0" + (today.getMonth() + 1)) + "-" + (today.getDate() > 9 ? (today.getDate()) : "0" + (today.getDate()));
var backTime = today;
var inspIsLoad = false;
var businessIsLoad = false;
var currSelect = 0;
var period = 'today';
var tip_index;
$("#probutton").mouseover(function () {
tips_index = layer.tips('查询昨天8时到今天8时的备份', this, {time: 0});
});
$("#probutton").mouseout(function () {
layer.close(tips_index); //关闭弹出层索引
});
form.render();
var inspectioncountListTable = '';
searchEvent();//检索条件事件
//加载文档表格数据
renderinspectioncountListTable();
//检索事件
function searchEvent() {
//发送状态
form.on('select(inspectioncount_date)', function (data) {
renderinspectioncountListTable();
});
}
//日期范围选择
laydate.render({
elem: '#backTime',
min: -365,
max: 0,
value: new Date(),
done: function (value) {
backTime = value
$.each($("button.date"), function (i, e) {
var $dom = $(e);
if ($dom.hasClass("active")) {
$dom.removeClass("active")
}
})
refreshPage()
}
});
// 日期方式选择
$('#btns-insp-time button').click(function () {
$.each($("button.date"), function (i, e) {
var $dom = $(e);
if ($dom.hasClass("active")) {
$dom.removeClass("active")
}
})
$("#backTime").val('')
backTime = ''
$("#btns-insp-time button").removeClass("active");
$(this).addClass("active");
period = ($(this).data("period"))
// if (period == 'today') {
var today = new Date()
today = today.getFullYear() + "-" + (today.getMonth() >= 9 ? (today.getMonth() + 1) : "0" + (today.getMonth() + 1)) + "-" + (today.getDate() > 9 ? (today.getDate()) : "0" + (today.getDate()));
backTime = today
// } else if (period == 'yestoday') {
// var time = (new Date).getTime() - 24 * 60 * 60 * 1000;
// var yesday = new Date(time); // 获取的是前一天日期
// yesday = yesday.getFullYear() + "-" + (yesday.getMonth() > 9 ? (yesday.getMonth() + 1) : "0" + (yesday.getMonth() + 1)) + "-" + (yesday.getDate() > 9 ? (yesday.getDate()) : "0" + (yesday.getDate()));
// backTime = yesday
// }
refreshPage()
});
//根据tab页刷新页面数据
function refreshPage() {
if (currSelect == 0) {
renderinspectioncountListTable();
} else if (currSelect == 1) {
renderinspectionBusTable();
}
}
// tab页切换事件
element.on('tab(insp-tab)', function (data) {
if (data.index == 0) {
if (!inspIsLoad) {
renderinspectioncountListTable();
inspIsLoad = true;
}
} else if (data.index == 1) {
if (!businessIsLoad) {
renderinspectionBusTable();
businessIsLoad = true;
}
}
currSelect = data.index;
});
$("#btn-inspStatistics-export-excel").on('click', function () {
if (currSelect == 0) {
var href = common.domainName + '/api-web/backupview/export?accessToken=' + accessToken + "&backTime=" + backTime;
} else if (currSelect == 1) {
var href = common.domainName + '/inspection-report/report/record/inspectionBusListExport?access_token=' + accessToken + "&createTime=" + createTime + '&dateLimit=' + dateLimit + '&limit=-1';
}
window.open(href)
})
//表格数据
function renderinspectioncountListTable() {
var loading = layer.load(2)
var url = common.domainName + '/api-web/backupview/list'
$.ajax({
url: url,
type: 'get',
data: {accessToken: accessToken, backTime: backTime},
success: function (res) {
layer.close(loading);
var data = res.data;
var tr = '<div style="line-height: 26px;padding: 15px;text-align:center;color: #999;">暂无数据</div>';
if(data.length==0){
$(".layui-tab-item").append(tr);
}else {
$("#inspectioncount_table_id").find("tbody").empty();
}
$.each(data, function (i, e) {
var tr = '';
var str = '';
if (e.rowspan == 0) {
str = '<td rowspan=1>' + e.businfo.busTypeName + '</td><td rowspan=1>' + e.businfo.evaluationLevel + '</td>'
tr += '<tr data-id="' + e.businfo.busId + '">' +
'<td>' + (i + 1) + '</td>' +
str +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'</tr>'
} else {
str = '<td rowspan="' + e.rowspan + '">' + (i + 1) + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.busTypeName + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.evaluationLevel + '</td>'
tr += '<tr data-id="' + e.businfo.busId + '">' + str
$.each(e.backlist, function (j, f) {
var platform = '';
if (f.platform != null) {
platform = f.platform
}
var backLevel = '';
if (f.backLevel != null) {
backLevel = f.backLevel
}
var backStatus = '';
var backStatushtml = '';
if (f.backStatus != null) {
backStatus = f.backStatus
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" class="layui-table-link view-backstatus-collectValue" style="color: green;font-size: 14px">成功</span></div>';
if (/失败/.test(backStatus)) {
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" class="layui-table-link view-backstatus-collectValue" style="color: red;font-size: 14px">失败</span></div>';
}else if(/备份中/.test(backStatus)){
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" style="color: #ffe40e;font-size: 14px">备份中</span></div>';
}
}
var backBytes = '';
if (f.backBytes != null) {
backBytes = f.backBytes
}
var backSpeed = '';
if (f.backSpeed != null) {
backSpeed = f.backSpeed
}
var useTime = '';
if (f.useTime != null) {
useTime = f.useTime
}
var startTime = '';
if (f.startTime != null) {
startTime = dateForm(f.startTime)
}
var endTime = '';
if (f.endTime != null) {
endTime = dateForm(f.endTime)
}
var remark = '';
if (f.remark != null) {
remark = f.remark
}
var lastTime = '';
if (f.lastTime != null) {
if (f.startTime == null || f.lastTime != f.startTime) {
lastTime = '<span style="font-size: 14px;color: red">' + dateForm(f.lastTime) + '</span>'
} else {
lastTime = dateForm(f.lastTime)
}
}
var id = 0
if (f.id != null) {
id = f.id
}
if (f.backLevel != null) {
tr += '<td style="display: none" class="bizid" data-bizId = "'+e.businfo.busId+'" data-bizName = "'+ e.businfo.busTypeName+'">' + id + '</td>' +
'<td style="display: none">' + f.resId + '</td>' +
'<td>' + f.resName + '</td>' +
'<td>' + f.ip + '</td>' +
'<td>' + platform + '</td>' +
'<td>' + backLevel + '</td>' +
'<td>' + backStatushtml + '</td>' +
'<td>' + backBytes + '</td>' +
'<td>' + backSpeed + '</td>' +
'<td>' + useTime + '</td>' +
'<td>' + startTime + '</td>' +
'<td>' + endTime + '</td>' +
'<td>' + remark + '</td>' +
'<td>' + lastTime + '</td>' +
'<td><input type="button" value="编辑" class="edit" style="background-color: #1E9FFF;"/></td>' +
'</tr>'
} else {
tr += '<td style="display: none" class="bizid" data-bizId = "'+e.businfo.busId+'" data-bizName = "'+ e.businfo.busTypeName+'">' + id + '</td>' +
'<td style="display: none">' + f.resId + '</td>' +
'<td>' + f.resName + '</td>' +
'<td>' + f.ip + '</td>' +
'<td>' + platform + '</td>' +
'<td>' + backLevel + '</td>' +
'<td>' + backStatushtml + '</td>' +
'<td>' + backBytes + '</td>' +
'<td>' + backSpeed + '</td>' +
'<td>' + useTime + '</td>' +
'<td>' + startTime + '</td>' +
'<td>' + endTime + '</td>' +
'<td>' + remark + '</td>' +
'<td>' + lastTime + '</td>' +
'<td style="display:grid"><input type="button" value="编辑" class="edit" style="background-color: #1E9FFF;"/><input type="button" class="import" value="引用上次" style="background-color: #c0c4cc;margin-top: 5px"/></td>' +
'</tr>'
}
});
}
$("#inspectioncount_table_id").find("tbody").append(tr);
})
$('.view-backstatus-collectValue').on('click', function () {
var startTime = dateForm($(this).data("date"));
var resId = $(this).data("resid");
var ip = $(this).data("ip");
console.log(startTime);
var title = '多通道备份列表'
common.openWin('backup/backDetailList', title, {
startTime: startTime,
resId: resId,
resIp: ip
}, ['确定', '取消'])
});
$('#inspectioncount_table_id :button.edit').click(function () {
var toEdit = this.value == '编辑';
this.value = toEdit ? '确定' : '编辑';
var tdArr = []
var busId = $(this).closest('tr').find('td.bizid').attr("data-bizId");
var busName = $(this).closest('tr').find('td.bizid').attr("data-bizName");
var list = $(this).closest('tr').find('td').not('[rowspan]').not(':last');
$(this).closest('tr').find('td').not('[rowspan]').not(':last').each(function (t, index) {
if (toEdit) {
if (t != list.length - 1) {
this.innerHTML = '<input type="text" value="' + this.innerHTML.replace(/"/g, '&quot;').replace(/<\/?.+?>/g, '').replace(/ /g, '') + '"/>';
} else {
return;
}
} else {
if (t != list.length - 1) {
if (this.firstChild != null) {
if (this.firstChild.value != undefined) {
this.innerHTML = this.firstChild.value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
} else {
this.innerHTML = this.firstChild.data.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
} else {
this.innerHTML = this.value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
tdArr.push(this.innerHTML)
}
}
});
if (!toEdit) {
var param = {
'busId': busId,
'busName': busName,
'id': tdArr[0],
'resId': tdArr[1],
'resName': tdArr[2],
'ip': tdArr[3],
'platform': tdArr[4],
'backLevel': tdArr[5],
'backStatus': tdArr[6],
'backBytes': tdArr[7],
'backSpeed': tdArr[8],
'useTime': tdArr[9],
'startTime': tdArr[10],
'endTime': tdArr[11],
'remark': tdArr[12]
};
if (param.resName == '') {
layer.msg('数据库名称不能为空!', {icon: 1});
return;
}
else if (param.startTime == '') {
layer.msg('开始时间不能为空!', {icon: 1});
return;
}
else if (param.endTime == '') {
layer.msg('结束时间不能为空!', {icon: 1});
return;
} else {
param.startTime = new Date(param.startTime);
param.endTime = new Date(param.endTime);
var url = common.domainName + '/api-web/backupview/save?accessToken=' + accessToken
layer.load(2);
admin.req({
url: url,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(param),
success: function (response) {
layer.closeAll('loading');
if (response.success) {
layer.msg('保存成功!', {icon: 1});
renderinspectioncountListTable()
return true;
} else {
layer.msg('保存失败!', {icon: 2});
}
},
error: function () {
layer.closeAll('loading');
}
});
}
}
});
$('#inspectioncount_table_id :button.import').click(function () {
var toEdit = this.value == '引用上次';
this.value = toEdit ? '保存' : '引用上次';
var tdArr = []
var resId = $(this).closest('tr').find('td').not('[rowspan]')[1].innerHTML;
var tdlist = $(this).closest('tr').find('td').not('[rowspan]').not(':last');
var url = common.domainName + '/api-web/backupview/findLastBackup';
$.ajax({
url: url,
type: 'get',
data: {accessToken: accessToken, resId: resId},
success: function (res) {
var obj = res.object;
if (obj) {
if (toEdit) {
tdlist[0].innerHTML = '0';
tdlist[1].innerHTML = resId
tdlist[2].innerHTML = '<input class="text" type="text" value="' + obj.resName + '"/>';
tdlist[3].innerHTML = '<input class="text" type="text" value="' + obj.ip + '"/>';
tdlist[4].innerHTML = '<input class="text" type="text" value="' + obj.platform + '"/>';
tdlist[5].innerHTML = '<input class="text" type="text" value="' + obj.backLevel + '"/>';
tdlist[6].innerHTML = '<input class="text" type="text" value="' + obj.backStatus + '"/>';
tdlist[7].innerHTML = '<input class="text" type="text" value="' + obj.backBytes + '"/>';
tdlist[8].innerHTML = '<input class="text" type="text" value="' + obj.backSpeed + '"/>';
tdlist[9].innerHTML = '<input class="text" type="text" value="' + obj.useTime + '"/>';
tdlist[10].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.startTime) + '"/>';
tdlist[11].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.endTime) + '"/>';
tdlist[12].innerHTML = '<input class="text" type="text" value="' + obj.remark + '"/>';
// tdlist[13].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.lastTime) + '"/>';
} else {
$.each(tdlist, function (i, e) {
if (i > 1 && i < 13) {
if (this.firstChild) {
if (this.firstChild.value != undefined) {
this.innerHTML = this.firstChild.value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
} else {
this.innerHTML = this.firstChild.data.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
} else {
this.innerHTML = this.value.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
} else {
this.innerHTML = this.innerHTML;
}
tdArr.push(this.innerHTML)
})
var param = {
'id': tdArr[0],
'resId': tdArr[1],
'resName': tdArr[2],
'ip': tdArr[3],
'platform': tdArr[4],
'backLevel': tdArr[5],
'backStatus': tdArr[6],
'backBytes': tdArr[7],
'backSpeed': tdArr[8],
'useTime': tdArr[9],
'startTime': tdArr[10],
'endTime': tdArr[11],
'remark': tdArr[12]
};
if (param.resName == '') {
layer.msg('数据库名称不能为空!', {icon: 2});
return;
}
else if (param.startTime == '') {
layer.msg('开始时间不能为空!', {icon: 2});
return;
}
else if (param.endTime == '') {
layer.msg('结束时间不能为空!', {icon: 2});
return;
} else if (dateForm(obj.startTime) == param.startTime || dateForm(obj.endTime) == param.endTime) {
layer.msg('开始时间和结束时间不能跟上次相同!', {icon: 2});
return;
} else {
param.startTime = new Date(param.startTime);
param.endTime = new Date(param.endTime);
console.log(param)
var url = common.domainName + '/api-web/backupview/save?accessToken=' + accessToken
layer.load(2);
admin.req({
url: url,
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(param),
success: function (response) {
layer.closeAll('loading');
if (response.success) {
layer.msg('保存成功!', {icon: 1});
renderinspectioncountListTable()
return true;
} else {
layer.msg('保存失败!', {icon: 2});
}
},
error: function () {
layer.closeAll('loading');
}
});
}
}
} else {
layer.msg('没有查到备份记录!', {icon: 2});
}
},
error: function () {
layer.msg('导入失败!', {icon: 2});
}
});
});
}
})
}
function dateForm(time) {
var unixTimestamp = new Date(time);
var commonTime = unixTimestamp.toLocaleString();
return commonTime
}
Date.prototype.toLocaleString = function () {
return this.getFullYear() + "-" + (this.getMonth() >= 9 ? (this.getMonth() + 1) : "0" + (this.getMonth() + 1)) + "-" + (this.getDate() > 9 ? (this.getDate()) : "0" + (this.getDate())) + " " + (this.getHours() > 9 ? this.getHours() : "0" + this.getHours()) + ":" + (this.getMinutes() > 9 ? this.getMinutes() : "0" + this.getMinutes()) + ":" + (this.getSeconds() > 9 ? this.getSeconds() : "0" + this.getSeconds());
};
//业务报表统计数据列表
function renderinspectionBusTable() {
}
});
});
\ No newline at end of file
... ...
/** 资产维修记录查看 */
layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydate', 'element'], function (exports) {
var $ = layui.$;
var form = layui.form;
var table = layui.table;
var admin = layui.admin;
var common = layui.common;
var laydate = layui.laydate;
var element = layui.element;
exports('bizupgrade', function () {
var accessToken = localStorage.getItem("accessToken");
var domainName = common.domainName;
var timeChart = echarts.init(document.getElementById('bizupgrade-chart-time-record'));
var inspIsLoad = false;
var businessIsLoad = false;
var currSelect = 0;
var dateLimit = ""
var createTime = "month"
//日期范围选择
laydate.render({
elem: '#bizupgradedateLimit'
,range: '~',
trigger: 'click',
ready: function(date){
$("#bizupgradedateLimit").removeAttr("lay-key");
$(this).attr("lay-key","1");
},
done: function (value) {
dateLimit = value
if (dateLimit == '') {
$('[data-period="month"]').click()
} else {
$.each($("button.date"), function (i, e) {
var $dom = $(e);
if ($dom.hasClass("active")) {
$dom.removeClass("active")
}
})
reloadAllChange()
}
}
});
form.render();
renderFileupgradeListTable();
renderPatchupgradeListTable()
loadBizUpgradeChart();
loadConditionSelect();
//监听Esc事件
$(document).keyup(function (event) {
if (event.keyCode === 27) {
layer.closeAll();
}
});
// 日期方式选择
$('#btns-bizupgrade-time button').click(function () {
$.each($("button.date"), function (i, e) {
var $dom = $(e);
if ($dom.hasClass("active")) {
$dom.removeClass("active")
}
})
$("#dateLimit").val('')
dateLimit = ''
$("#btns-bizupgrade-time button").removeClass("active");
$(this).addClass("active");
createTime = ($(this).data("period"))
reloadAllChange();
});
// 回车搜索
$('[lay-filter="form-bizupgrade-condition"] input').keydown(function (e) {
if (e.keyCode === 13) {
reloadAllChange();
}
});
// 下拉框改变搜索
form.on('select(slt-bizupgrade-group)', reloadAllChange);
// 下拉框改变搜索
form.on('select(slt-bizupgrade-biz)', reloadAllChange);
// tab页切换事件
element.on('tab(bizupgrade-tab)', function (data) {
if (data.index == 0) {
if (!inspIsLoad) {
renderFileupgradeListTable();
inspIsLoad = true;
}
} else if (data.index == 1) {
if (!businessIsLoad) {
renderPatchupgradeListTable();
businessIsLoad = true;
}
}
currSelect = data.index;
});
// 加载配件更换表格
function renderFileupgradeListTable() {
var conditions = form.val('form-bizupgrade-condition');
Object.assign(conditions, {
accessToken: accessToken,
createtime: createTime,
viewMode: 'true',
dateLimit: dateLimit
});
table.render({
elem: '#fileupgrade_table_id',
url: domainName + '/api-web/machineRoom/findBizupgradeRecords?level=1',
where: conditions,
height: 'full-360',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
theme: '#1E9FFF'
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[ {
type: 'numbers', title: '序号'
}, {
field: 'title', title: '升级编号', align: 'center',
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-upgrade-title" >{{d.title}}</span></div>'
},{
field: 'busName', title: '业务名称', align: 'center',
},{
field: 'upgradeFiles', title: '升级文件', align: 'center',
},{
field: 'principal', title: '系统责任人', align: 'center',
}, {
field: 'phone', title: '联系方式', align: 'center',
}, {
field: 'upgradePerson', title: '升级人', align: 'center',
},{
field: 'manufacturerName', title: '升级人单位', align: 'center',templet: function (d) {
if(d.manufacturerId == '0'){
return '其他';
}else {
return d.manufacturerName;
}
}
},{
field: 'upgradePhone', title: '升级人电话', align: 'center',
},{
field: 'attachmentList', title: '附件', align: 'center',
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-attachment">{{d.attachmentList.length}}</span></div>'
}, {
field: 'upgradeperiod', title: '升级时间段', align: 'center'
}, {
field: 'applyTime', title: '申请时间', align: 'center'
}
]],
done: function () {
//获取线路列表
$('.view-upgrade-title').on('click', function () {
openBizupgradeForm($(this).data('id'))
})
//获取线路列表
$('.view-attachment').on('click', function () {
openBizupgradeList("attachment",$(this).data('id'))
})
}
});
}
// 加载设备出入表格
function renderPatchupgradeListTable() {
var conditions = form.val('form-bizupgrade-condition');
Object.assign(conditions, {
accessToken: accessToken,
createtime: createTime,
viewMode: 'true',
dateLimit: dateLimit
});
table.render({
elem: '#patchupgrade-table',
url: domainName + '/api-web/machineRoom/findBizupgradeRecords?level=2',
where: conditions,
height: 'full-360',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
theme: '#1E9FFF'
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[ {
type: 'numbers', title: '序号'
}, {
field: 'title', title: '升级编号', align: 'center',
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-patchupgrade-title" >{{d.title}}</span></div>'
},{
field: 'busName', title: '业务名称', align: 'center',
},{
field: 'upgradeFiles', title: '补丁版本', align: 'center',
},{
field: 'principal', title: '系统责任人', align: 'center',
}, {
field: 'phone', title: '联系方式', align: 'center',
}, {
field: 'upgradePerson', title: '升级人', align: 'center',
},{
field: 'manufacturerName', title: '升级人单位', align: 'center',templet: function (d) {
if(d.manufacturerId == '0'){
return '其他';
}else {
return d.manufacturerName;
}
}
},{
field: 'upgradePhone', title: '升级人电话', align: 'center',
},{
field: 'attachmentList', title: '附件', align: 'center',
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-patchattachment">{{d.attachmentList.length}}</span></div>'
}, {
field: 'upgradeperiod', title: '升级时间段', align: 'center'
}, {
field: 'applyTime', title: '申请时间', align: 'center'
}
]],
done: function () {
//获取线路列表
$('.view-patchupgrade-title').on('click', function () {
openBizupgradeForm($(this).data('id'))
})
//获取线路列表
$('.view-patchattachment').on('click', function () {
openBizupgradeList("attachment",$(this).data('id'))
})
}
});
}
//新增日报
$('#bizupgrade_create').on('click', function () {
openBizupgradeForm()
})
//新增/编辑表单
function openBizupgradeForm(id) {
var title = id ? '编辑' : '新增'
common.openWin('machineroom/bizupgradeAdd', title, {id: id}, ['保存', '取消'], function f() {
$("#bizupgrade-form-save-id").trigger("click");
reloadAllChange();
})
}
//查看附件/调整信息列表
function openBizupgradeList(type,id) {
var title = "附件";
common.openWin('machineroom/bizupgradeList', title, {id: id,type:type}, ['确定', '取消'])
}
// 加载查询条件下拉框
function loadConditionSelect() {
//绑定业务下拉选择数据
common.bizTypeSelect("slt-bizupgrade-biz", function () {
form.render("select");
});
admin.req({
url: domainName + '/api-web/bWorkreportGroup/findManufacturerList'
}).done(function (response) {
var options = "<option value=''>=升级单位=</option>";
$.each(response.data, function (i, v) {
options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>"
});
options += "<option value='0'>其他</option>";
$('#slt-bizupgrade-group').html(options);
form.render();
});
}
$("#bizupgrade-export-excel").on('click', function () {
if (currSelect == 0) {
var href = common.domainName + '/api-web/machineRoom/exportBizupgradeRecords?level=1&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000';
} else if (currSelect == 1) {
var href = common.domainName + '/api-web/machineRoom/exportBizupgradeRecords?level=2&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000';
}
window.open(href)
})
// 各单位维修情况
function loadBizUpgradeChart() {
var conditions = {};
Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''});
admin.req({
url: domainName + '/api-web/machineRoom/findBizupgradeRecordsForGroup',
data: conditions
}).done(function (response) {
var chartData = response.map;
var groupList = chartData.groupList;
var fileList = chartData.fileList;
var patchList = chartData.patchList;
var totalList = chartData.totalList;
var xData = [];
var groupData = [];
$.each(groupList, function (i, v) {
xData.push(v);
groupData.push({
name: v,
value: 1
});
});
var series = [{
name: '系统升级',
data: fileList,
barWidth: 20,
type: 'bar',
stack: 'alarm',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#1e9fff"
}
},{
name: '补丁升级',
data: patchList,
barWidth: 20,
type: 'bar',
stack: 'alarm',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#FF7E00"
},
label: {
show: true,
position: 'top',
textStyle: {
color: '#555'
},
formatter: function (data) {
return totalList[data.dataIndex]
}
}
}];
/**
双X轴标签对应,伪实现思路:
底部的标签也是柱状图,对应包含的区域为上方X轴条数占总数的比例,设为宽度即可
*/
var option = {
title: {
text: '系统升级和补丁升级图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
}
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
toolbox: {
show: true,
feature: {
saveAsImage: {}
},
right: 10
},
legend: {
data: ['系统升级', '补丁升级'],
selectedMode: false
},
grid: [{
top: 40,
bottom: 70,
left: 50,
right: 5
}],
xAxis: [{
type: 'category',
data: xData,
axisLabel: {
color: '#333',
show: true,
interval:0,
rotate:15
},
axisLine: {
lineStyle: {
color: '#e7e7e7'
}
},
axisTick: {
lineStyle: {
color: '#e7e7e7'
}
},
zlevel: 1
}],
yAxis: [{
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
},
splitLine: {
lineStyle: {
type: 'dashed'
}
},
axisLine: {
lineStyle: {
color: '#ccc'
}
},
axisTick: {
lineStyle: {
color: '#ccc'
}
}
}],
series: series
};
timeChart.setOption(option)
});
}
// 图表,表格重新加载
function reloadAllChange() {
renderFileupgradeListTable();
renderPatchupgradeListTable()
loadBizUpgradeChart();
loadConditionSelect()
}
});
});
\ No newline at end of file
... ...
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect', 'laydate', 'upload'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var session = layui.sessions;
var laydate = layui.laydate;
var upload = layui.upload;
var domainName = common.domainName;
var xmSelect = layui.xmSelect;
//对外暴露的接口
exports('bizupgradeAdd', function (data) {
var accessToken = localStorage.getItem("accessToken");
var userSelect = "";
var currentDate = {}
var hitDate = {}
var uploadInst = {}
var defaultUser = []
var attachmentIds = []
var id = data.id
var cols = []
var where = {}
var currentResourceType = ''
var resTypeSele
var viewType = data && data.viewType ? data.viewType : '';
//渲染表单
form.render(null, 'add-bizupgrade-form')
init()
//保存
form.on('submit(bizupgrade-form-save-id)', function (res) {
var value = $('#attachmentInput').val()
if (value != '') {
$('#upload_btn').click()
} else {
saveForm()
}
})
//保存
function saveForm() {
layer.load(2)
var data = form.val('add-bizupgrade-form')
var params = {}
params.attachmentIds = attachmentIds.toString()
delete data['file']
delete data['select']
params.bizupgrade = JSON.stringify(data)
admin.req({
url: domainName + '/api-web/machineRoom/bizupgrade/save?accessToken=' + accessToken,
data: JSON.stringify(params),
type: 'post',
contentType: "application/json; charset=utf-8",
done: function (res) {
if (res.success) {
layer.msg(res.msg, {
offset: '15px',
icon: 1,
time: 1000,
}, function () {
$("#attachment").removeAttr("disabled");
layer.closeAll()
table.reload('fileupgrade_table_id', {
where: {
accessToken: accessToken,
createtime: "month",
viewMode: 'true',
dateLimit: ""
},
});
table.reload('patchupgrade-table', {
where: {
accessToken: accessToken,
createtime: "month",
viewMode: 'true',
dateLimit: ""
},
});
})
} else {
layer.msg(res.msg, {
offset: '15px',
icon: 7,
time: 1000,
})
}
}
})
return false
}
//页面初始化
function init() {
loadSelect()
initDatePlus()
initUploadPlus()
if (viewType == 'view') {
initViewMode();
}
}
// 初始化下拉框
function loadSelect() {
//绑定业务下拉选择数据
common.bizTypeSelect("slt-biz-add", function () {
form.render("select");
});
admin.req({
url: domainName + '/api-web/bWorkreportGroup/findManufacturerList'
}).done(function (response) {
var options = "<option value=''>=工作单位=</option>";
$.each(response.data, function (i, v) {
options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>"
});
options += "<option value='0'>其他</option>";
$('#slt-upgradeadd-group').html(options);
form.render();
fromAssignment();
});
}
//初始化日期插件
function initDatePlus() {
currentDate = laydate.render({
elem: '#applyTime', //指定元素
value: new Date(),
type: 'datetime',
isInitValue: true,
});
laydate.render({
elem: '#upgradeperiod'
, range: '~',
type: 'datetime',
trigger: 'click',
ready: function (date) {
$("#upgradeperiod").removeAttr("lay-key");
$(this).attr("lay-key", "1");
},
done: function (value) {
$("#upgradeperiod").val(value);
}
});
}
//初始化上传插件
function initUploadPlus() {
var param = {"accessToken": accessToken}
var fileName = []
uploadInst = upload.render({
elem: '#attachment', //绑定元素
url: common.domainName + '/api-web/machineRoom/bizupgrade/upload?accessToken='+accessToken,
data: param,
multiple: true,
auto: false, //选择文件后不自动上传
bindAction: '#upload_btn',//指定按钮触发上传
accept: 'file',
exts: 'xls|doc|pdf|docx|xlsx|jpg|png',
choose: function (obj) {
//选择文件后回调
var files = this.files = obj.pushFile();
if(typeof(files)!=undefined){
if(Object.getOwnPropertyNames(files).length>2){
$("#attachment").attr("disabled","disabled");
layer.msg('目前最多支持上传三个文件!', {
icon: 7, time: 3000
});
}
}
obj.preview(function (index, file, result) {
fileName.push(file.name)
$('#attachmentInput').val(fileName.toString())
})
},
done: function (res) {
//单次上传成功
attachmentIds.push(res.str)
},
allDone: function (obj) {
//全部上传成功后
saveForm()
},
error: function (index, upload) {
// 上传失败
layer.msg('文件上传时发生故障,请稍后再试!', {
icon: 7, time: 3000
});
}
});
}
// 初始化查看模式
function initViewMode() {
$('form[lay-filter="add-bizupgrade-form"]').find('input, textarea').attr('readonly', true);
$('form[lay-filter="add-bizupgrade-form"]').find('select').attr('disabled', true);
$.each(xmSelect.get(), function (i, v) {
v.update({disabled: true});
});
$('#attachmentInput').parent().parent().parent().addClass('hide');
$('#table-bizupgrade-add-attachment').removeClass('hide');
//渲染附件表格
var attachmentTable = table.render({
elem: '#table-bizupgrade-add-attachment',
url: domainName + '/api-web/machineRoom/bizupgrade/getAttaById',
where: {
accessToken: accessToken,
id: data.id
},
height: 'full',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[
{type: 'numbers', title: '序号'},
{
field: 'name', title: '文件名称', align: 'center', minWith: 200,
},
{
field: 'suffix', title: '文件后缀', align: 'center', minWith: 150,
},
{
field: 'size', title: '文件大小', align: 'center', minWith: 150,
templet: function (d) {
var str = (d.size / 1000).toFixed(2)
return `<div><span>${str}KB</span></div>`
}
},
{
title: '操作', align: "center", width: 120,
templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path = "{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span></div>'
}
]],
done: function () {
$('.preview-attachment-btn').on('click', function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var filepath = $(this).data('path')
if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken
layer.open({
type: 1,
content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`,
title: '图片预览',
area: ['60%', '90%']
})
} else {
//附件为文档类型
common.fileviewer(filepath)
}
})
}
})
form.render();
}
//表单赋值
function fromAssignment() {
if (data && data.id) {
var loading =layer.load(2)
$('#add-bizupgrade-form-atta').show()
$("#level").attr("readOnly","readOnly");
//编辑表单时禁用日志类型修改和时间选择
// $('#add-repair-form').find("select[name='hitchtime']").attr("disabled", "disabled")
// $('#add-repair-form').find("input[name='createtime']").attr("disabled", "disabled")
//编辑表单时取消显示默认值
//currentDate.config.isInitValue = false
initDatePlus()
admin.req({
url: domainName + `/api-web/machineRoom/findBizupgradeByRecordId`,
data: {recordId: data.id},
async: false,
}).done(function (res) {
layer.close(loading)
form.val('add-bizupgrade-form', res.object)
if (res.object.attachmentList) {
$.each(res.object.attachmentList, function (i, v) {
writeTagsInfo(v.id, v.originalName)
})
}
})
}else{
$("#level").removeAttr("readOnly");
}
}
//写入标签内容
function writeTagsInfo(id, name) {
var tags = '<span id="tags_span_' + id + '" data-id="' + id + '"><em>' + name + '</em>' +
'<button type="button" value="' + id + '" class="tagsclose">×</button></span>';
if ($("#tags_span_" + id).length == 0) {
//拼接标签
$("#selecte_content_id").append(tags);
//绑定标签的删除事件
bindTagesDelEvent();
}
}
//删除标签事件
function bindTagesDelEvent() {
//删除已选主体的页签
$("button.tagsclose").on("click", function () {
var attachId = $(this).attr("value");
//确认提示框
layer.confirm('附件删除后将无法恢复,您确定要删除吗?', {
btn: ['确定', '取消'] //按钮
}, function () {
$.ajax({
url: domainName + `/api-web/workreport/deleteAttachment/${id}/${attachId}?accessToken=` + accessToken,
type: "get",
}).done(function (res) {
layer.msg('删除成功', {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
$("#tags_span_" + attachId).remove();
});
}).error(function (error) {
console.log(error);
});
});
});
}
})
})
\ No newline at end of file
... ...
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var session = layui.sessions
var domainName = common.domainName;
//对外暴露的接口
exports("bizupgradeList", function (d) {
var accessToken = localStorage.getItem("accessToken");
if (d.type == 'attachment') {
$('#attachmentTable').show()
createAttachmentTable()
}
//渲染附件表格
function createAttachmentTable() {
var attachmentTable = table.render({
elem: '#attachmentTable',
url: domainName + '/api-web/machineRoom/bizupgrade/getAttaById',
where: {
accessToken: accessToken,
id: d.id
},
height: 'full',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[
{type: 'numbers', title: '序号'},
{
field: 'name', title: '文件名称', align: 'center', minWith: 200,
}, {
field: 'originalName', title: '原始名称', align: 'center', minWith: 200,
}, {
field: 'suffix', title: '文件后缀', align: 'center', minWith: 150,
},
{
field: 'size', title: '文件大小', align: 'center', minWith: 150,
templet: function (d) {
var str = (d.size / 1000).toFixed(2)
return `<div><span>${str}KB</span></div>`
}
},
{
title: '操作', align: "center", width: 120,
templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path="{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span>' +
'<span data-id="{{d.id}}" data-suffix="{{d.suffix}}" class="layui-table-link attachment-download-btn" style="margin-left: 10px">下载</span></div>'
}
]],
done: function () {
$('.preview-attachment-btn').on('click', function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var filepath = $(this).data('path')
if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken
layer.open({
type: 1,
content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`,
title: '图片预览',
area: ['60%', '90%']
})
} else {
//附件为文档类型
common.fileviewer(filepath)
}
})
$('.attachment-download-btn').on('click',function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken
window.open(url)
})
}
})
}
})
})
\ No newline at end of file
... ...
... ... @@ -12,7 +12,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
var domainName = common.domainName;
//对外暴露的接口
exports('deviceAdd', function (data) {
var accessToken = session.getToken()['access_token']
var accessToken = localStorage.getItem("accessToken");
var enterTime = {};
var outTime = {};
var devicesBak = [];
... ... @@ -21,53 +21,49 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
form.render(null, 'add-device-form')
searchEvent();//检索条件事件
init()
//检索事件
function searchEvent() {
//发送状态
form.on('select(slt-docType)', function (data) {
var html = "";
if (data.value == 1) {
html += "<option value='1'>迁入</option><option value='2'>迁出</option><option value='3'>转移</option>"
$("#device_card").css("display", "block");
$("#fiting_card").css("display", "none");
devicesBak = [];
fittingsBak = [];
} else {
html += "<option value='4'>更换</option><option value='5'>新增</option><option value='6'>带走维修</option>"
$("#device_card").css("display", "none");
$("#fiting_card").css("display", "block");
devicesBak = [];
fittingsBak = [];
}
$("#slt-actionType").html(html);
form.render();
var html ="";
if(data.value==1){
html+= "<option value='1'>迁入</option><option value='2'>迁出</option><option value='3'>转移</option>"
$("#device_card").css("display","block");
$("#fiting_card").css("display","none");
devicesBak = [];
fittingsBak = [];
}else{
html+= "<option value='4'>更换</option><option value='5'>新增</option><option value='6'>带走维修</option>"
$("#device_card").css("display","none");
$("#fiting_card").css("display","block");
devicesBak = [];
fittingsBak = [];
}
$("#slt-actionType").html(html);
form.render();
});
}
//发送状态
form.on('select(slt-docType)', function (data) {
var html = "";
if (data.value == 1) {
html += "<option value='1'>迁入</option><option value='2'>迁出</option><option value='3'>转移</option>"
$("#device_card").css("display", "block");
$("#fiting_card").css("display", "none");
} else {
html += "<option value='4'>更换</option><option value='5'>新增</option><option value='6'>带走维修</option>"
$("#device_card").css("display", "none");
$("#fiting_card").css("display", "block");
var html ="";
if(data.value==1){
html+= "<option value='1'>迁入</option><option value='2'>迁出</option><option value='3'>转移</option>"
$("#device_card").css("display","block");
$("#fiting_card").css("display","none");
}else{
html+= "<option value='4'>更换</option><option value='5'>新增</option><option value='6'>带走维修</option>"
$("#device_card").css("display","none");
$("#fiting_card").css("display","block");
}
$("#slt-actionType").html(html);
form.render();
});
form.on('select(slt-actionType)', function (data) {
if (data.value == "3") {
//当迁移时,设置readOnly为false joke modify 20221121
// $("#lastPlace").removeAttribute("readOnly");
$("#lastPlace").attr("readOnly", false);
} else {
$("#lastPlace").attr("readOnly", "readOnly");
if(data.value=="3"){
$("#lastPlace").removeAttribute("readOnly");
}else {
$("#lastPlace").attr("readOnly","readOnly");
}
})
... ... @@ -93,7 +89,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
params.deviceRecord = JSON.stringify(data);
console.log(params)
admin.req({
url: domainName + '/api-room/machineRoom/machineRoomEnterDevice/save?access_token=' + accessToken,
url: domainName + '/api-web/machineRoom/machineRoomEnterDevice/save?accessToken=' + accessToken,
data: JSON.stringify(params),
type: 'post',
contentType: "application/json; charset=utf-8",
... ... @@ -105,26 +101,6 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
time: 1000,
}, function () {
layer.closeAll()
//模拟申请人回车事件,刷新父页面
var evt = $.Event('keydown', {keyCode: 13});
$('#applyUserDevice').trigger(evt);
// table.reload('enterdevice_table_id', {
// where: {
// access_token: accessToken,
// createtime: "month",
// viewMode: 'true',
// dateLimit: ""
// },
// });
// table.reload('fitting-table', {
// where: {
// access_token: accessToken,
// createtime: "month",
// viewMode: 'true',
// dateLimit: ""
// },
// });
})
} else {
layer.msg(res.msg, {
... ... @@ -139,13 +115,13 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
};
var deviceSaveCount = 0;
$("#device_card :button#device_create").on("click", function () {
if (deviceSaveCount > 0) {
if(deviceSaveCount>0){
layer.msg('请先保存一条再新增', {
icon: 7, time: 3000
});
return
}
deviceSaveCount += 1;
deviceSaveCount+=1;
var html = "<tr><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='text' class='layui-input' width='40px' lay-verify = 'required'/></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='button' value='保存' class='edit' style='background-color: #b71010;line-height: 18px'/></td></tr>"
$("#device-table").append(html);
... ... @@ -162,7 +138,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
icon: 7, time: 3000
});
tdArr = [];
deviceSaveCount -= 1;
deviceSaveCount-=1;
$(this).closest('tr').remove();
return;
}
... ... @@ -195,21 +171,21 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
'deviceModel': tdArr[2],
'brand': tdArr[3]
}
deviceSaveCount -= 1;
deviceSaveCount-=1;
devicesBak.push(deviceObj)
}
}
});
});
var fittingSaveCount = 0;
var fittingSaveCount =0;
$("#fiting_card :button#fiting_create").on("click", function () {
if (fittingSaveCount > 0) {
if(fittingSaveCount>0){
layer.msg('请先保存一条再新增', {
icon: 7, time: 3000
});
return
}
fittingSaveCount += 1;
fittingSaveCount+=1;
var html = "<tr><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' class='layui-input' width='50px' lay-verify = 'required'></td><td><input type='button' value='保存' class='edit' style='background-color: #b71010;line-height: 18px'/></td></tr>"
$("#fiting-table").append(html);
... ... @@ -225,7 +201,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
icon: 7, time: 3000
});
tdArr = [];
fittingSaveCount -= 1;
fittingSaveCount-=1;
$(this).closest('tr').remove();
return;
}
... ... @@ -251,7 +227,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
'fittingName': tdArr[2],
'deviceModel': tdArr[3]
}
fittingSaveCount -= 1;
fittingSaveCount-=1;
fittingsBak.push(fittingObj)
}
}
... ... @@ -267,7 +243,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
// 初始化下拉框
function loadSelect() {
admin.req({
url: domainName + '/api-room/machineRoom/getMachineRoomInfo'
url: domainName + '/api-web/machineRoom/getMachineRoomInfo'
}).done(function (response) {
var options = "<option value=''>=归属机房=</option>";
$.each(response.data, function (i, v) {
... ... @@ -283,6 +259,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
$.each(response.data, function (i, v) {
options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>"
});
options += "<option value='0'>其他</option>";
$('#slt-staffadd-group').html(options);
form.render();
});
... ... @@ -317,4 +294,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate'
})
})
})
\ No newline at end of file
... ...
... ... @@ -11,23 +11,20 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function
//对外暴露的接口
exports("deviceList", function (d) {
var accessToken = session.getToken()['access_token']
var accessToken = localStorage.getItem("accessToken");
createDeviceTable()
function dateForm(time) {
var unixTimestamp = new Date(time);
var commonTime = unixTimestamp.toLocaleString();
return commonTime
}
//渲染附件表格
function createDeviceTable() {
var deviceTable = table.render({
elem: '#deviceTable',
url: domainName + '/api-room/machineRoom/findDeviceByRecordId',
url: domainName + '/api-web/machineRoom/findDeviceByRecordId',
where: {
access_token: accessToken,
accessToken: accessToken,
recordId: d.id
},
height: 'full',
... ... @@ -53,4 +50,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function
}
})
})
})
\ No newline at end of file
... ...
/** 线路调整记录查看 */
layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydate', 'element'], function (exports) {
var $ = layui.$;
var form = layui.form;
var table = layui.table;
var admin = layui.admin;
var common = layui.common;
var laydate = layui.laydate;
var element = layui.element;
exports('devicehitch', function () {
var accessToken = localStorage.getItem("accessToken");
var domainName = common.domainName;
var orgChart = echarts.init(document.getElementById('chart-devicehitch-report'));
var dateLimit = "";
var createTime = "month";
//日期范围选择
laydate.render({
elem: '#hitchdateLimit'
,range: '~',
trigger: 'click',
ready: function(date){
$("#hitchdateLimit").removeAttr("lay-key");
$(this).attr("lay-key","1");
},
done: function (value) {
dateLimit = value
if (dateLimit == '') {
$('[data-period="month"]').click()
} else {
$.each($("button.date"), function (i, e) {
var $dom = $(e);
if ($dom.hasClass("active")) {
$dom.removeClass("active")
}
})
reloadAllChange()
}
}
});
form.render();
loadOrgdevicehitchChart();
loaddevicehitchTable();
loadConditionSelect();
//监听Esc事件
$(document).keyup(function (event) {
if (event.keyCode === 27) {
layer.closeAll();
}
});
// 日期方式选择
$('#btns-devicehitch-time button').click(function () {
$.each($("button.date"), function (i, e) {
var $dom = $(e);
if ($dom.hasClass("active")) {
$dom.removeClass("active")
}
})
$("#mettingdateLimit").val('')
dateLimit = ''
$("#btns-devicehitch-time button").removeClass("active");
$(this).addClass("active");
createTime = ($(this).data("period"))
reloadAllChange();
});
// 回车搜索
$('[lay-filter="form-devicehitch-condition"] input').keydown(function (e) {
if (e.keyCode === 13) {
reloadAllChange();
}
});
// 下拉框改变搜索
form.on('select(slt-devicehitch-org)', reloadAllChange);
// 下拉框改变搜索
form.on('select(slt-devicehitch-repairStatus)', reloadAllChange);
// 加载表格
function loaddevicehitchTable() {
var conditions = form.val('form-devicehitch-condition');
Object.assign(conditions, {
accessToken: accessToken,
createtime: createTime,
viewMode: 'true',
dateLimit: dateLimit
});
table.render({
elem: '#table-devicehitch-view',
url: domainName + '/api-web/machineRoom/findDevicehitchRecords',
where: conditions,
height: 'full-360',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
theme: '#1E9FFF'
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[ {
type: 'numbers', title: '序号'
}, {
field: 'title', title: '维修单编号', align: 'center',width:100,
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-devicehitch-title" >{{d.title}}</span></div>'
}, {
field: 'machineRoomName', title: '机房', align: 'center',width:100
}, {
field: 'deviceTypeName', title: '设备类型', align: 'center',width:88
}, {
field: 'deviceInfo', title: '设备名称', align: 'center',width:88
},{
field: 'hitchDiscover', title: '故障发现人', align: 'center',width:100
},{
field: 'hitchTime', title: '故障时间', align: 'center',width:88
} ,{
field: 'hitchDesc', title: '故障描述', align: 'center',width:150
},{
field: 'projectLeader', title: '设备负责人', align: 'center',width:100
}, {
field: 'phone', title: '联系方式', align: 'center',width:88
}, {
field: 'repairer', title: '维修人', align: 'center',width:80
}, {
field: 'attachmentList', title: '附件', align: 'center',width:60,
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-devicehitch-attachment">{{d.attachmentList.length}}</span></div>'
},{
field: 'repairPlan', title: '计划维修时间', align: 'center'
}, {
field: 'repairStatus', title: '维修状态', align: 'center',width:88,
templet:function (d) {
if(d.repairStatus=="0"){
return "未维修"
}else {
return "已维修"
}
}
}, {
field: 'applyTime', title: '记录时间', align: 'center',width:95
}
]],
done: function () {
//获取线路列表
$('.view-devicehitch-title').on('click', function () {
opendevicehitchForm($(this).data('id'))
})
//获取线路列表
$('.view-devicehitch-attachment').on('click', function () {
opendevicehitchList("attachment",$(this).data('id'))
})
}
});
}
$("#devicehitch-export-excel").on('click', function () {
var href = common.domainName + '/api-web/machineRoom/exporBDevicehitchRecords?accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000';
window.open(href)
})
//新增日报
$('#devicehitch_create').on('click', function () {
opendevicehitchForm()
})
//下载
$('#devicehitch_download').on('click', function () {
var id ='c24e6924b0dd11ec84cf005056a9e84c';
var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken;
window.open(url);
})
//新增/编辑表单
function opendevicehitchForm(id) {
var title = id ? '编辑' : '新增'
common.openWin('machineroom/devicehitchAdd', title, {id: id}, ['保存', '取消'], function f(){
$("#devicehitch-form-save-id").trigger("click");
reloadAllChange();
})
}
//查看附件/调整信息列表
function opendevicehitchList(type,id) {
var title = "附件";
common.openWin('machineroom/devicehitchList', title, {id: id,type:type}, ['确定', '取消'])
}
// 加载查询条件下拉框
function loadConditionSelect() {
admin.req({
url: domainName + '/api-web/bResource/getInfoByAssetsType',
}).done(function (response) {
var options = "<option value=''>=设备类型=</option>";
$.each(response.data, function (i, v) {
options += "<option value='" + v.resTypeCode + "'>" + v.resTypeName + "</option>"
});
$('#slt-devicehitch-org').html(options);
form.render();
});
}
// 各单位维修情况
function loadOrgdevicehitchChart() {
var conditions = {};
Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''});
admin.req({
url: domainName + '/api-web/machineRoom/findDevicehitchRecordsForGroup',
data: conditions
}).done(function (response) {
var chartData = response.map;
var groupList = chartData.groupList;
var norepairList = chartData.norepairList;
var repairList = chartData.repairList;
var totalList = chartData.totalList;
var xData = [];
var groupData = [];
$.each(groupList, function (i, v) {
xData.push(v);
groupData.push({
name: v,
value: 1
});
});
var series = [{
name: '未维修',
data: norepairList,
barWidth: 20,
type: 'bar',
stack: 'alarm',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#1e9fff"
}
},{
name: '已维修',
data: repairList,
barWidth: 20,
type: 'bar',
stack: 'alarm',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#FF7E00"
},
label: {
show: true,
position: 'top',
textStyle: {
color: '#555'
},
formatter: function (data) {
return totalList[data.dataIndex]
}
}
}];
/**
双X轴标签对应,伪实现思路:
底部的标签也是柱状图,对应包含的区域为上方X轴条数占总数的比例,设为宽度即可
*/
var option = {
title: {
text: '设备维修统计图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
}
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
toolbox: {
show: true,
feature: {
saveAsImage: {}
},
right: 10
},
legend: {
data: ['未维修', '已维修'],
selectedMode: false
},
grid: [{
top: 40,
bottom: 70,
left: 50,
right: 5
}],
xAxis: [{
type: 'category',
data: xData,
axisLabel: {
color: '#333',
show: true,
interval:0,
rotate:15
},
axisLine: {
lineStyle: {
color: '#e7e7e7'
}
},
axisTick: {
lineStyle: {
color: '#e7e7e7'
}
},
zlevel: 1
}],
yAxis: [{
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
},
splitLine: {
lineStyle: {
type: 'dashed'
}
},
axisLine: {
lineStyle: {
color: '#ccc'
}
},
axisTick: {
lineStyle: {
color: '#ccc'
}
}
}],
series: series
};
orgChart.setOption(option)
});
}
// 图表,表格重新加载
function reloadAllChange() {
loaddevicehitchTable();
loadOrgdevicehitchChart();
}
});
});
\ No newline at end of file
... ...
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect', 'laydate', 'upload'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var session = layui.sessions;
var laydate = layui.laydate;
var upload = layui.upload;
var domainName = common.domainName;
var xmSelect = layui.xmSelect;
//对外暴露的接口
exports('devicehitchAdd', function (data) {
var accessToken = localStorage.getItem("accessToken");
var userSelect = "";
var currentDate = {}
var applyDate = {}
var aAcknowledgingDate = {}
var bAcknowledgingDate = {}
var hitDate = {}
var uploadInst = {}
var defaultUser = []
var attachmentIds = []
var id = data.id
var cols = []
var where = {}
var currentResourceType = ''
var resTypeSele
var viewType = data && data.viewType ? data.viewType : '';
//渲染表单
form.render(null, 'add-devicehitch-form')
init()
//保存
form.on('submit(devicehitch-form-save-id)', function (res) {
$("#devicehitch-form-save-id").attr("disabled","disabled");
var value = $('#attachmentInput').val()
if (value != '') {
$('#upload_btn').click()
} else {
saveForm()
}
})
//保存
function saveForm() {
layer.load(2)
var data = form.val('add-devicehitch-form')
var params = {}
params.attachmentIds = attachmentIds.toString()
delete data['file']
delete data['select']
params.devicehitch = JSON.stringify(data)
admin.req({
url: domainName + '/api-web/machineRoom/devicehitch/save?accessToken=' + accessToken,
data: JSON.stringify(params),
type: 'post',
contentType: "application/json; charset=utf-8",
done: function (res) {
if (res.success) {
layer.msg(res.msg, {
offset: '15px',
icon: 1,
time: 1000,
}, function () {
$("#attachment").removeAttr("disabled");
$("#devicehitch-form-save-id").removeAttr("disabled");
layer.closeAll();
table.reload('table-devicehitch-view', {
where: {
accessToken: accessToken,
createtime: "month",
viewMode: 'true',
dateLimit: ""
},
});
})
} else {
layer.msg(res.msg, {
offset: '15px',
icon: 7,
time: 1000,
})
}
}
})
return false
}
//页面初始化
function init() {
loadSelect()
initDatePlus()
initUploadPlus()
if (viewType == 'view') {
initViewMode();
}
}
// 初始化下拉框
function loadSelect() {
admin.req({
url: domainName + '/api-web/bResource/getInfoByAssetsType',
}).done(function (response) {
var options = "<option value=''>=设备类型=</option>";
$.each(response.data, function (i, v) {
options += "<option value='" + v.resTypeCode + "'>" + v.resTypeName + "</option>"
});
$('#slt-devicehitch-res').html(options);
form.render();
});
admin.req({
url: domainName + '/api-web/machineRoom/getMachineRoomInfo'
}).done(function (response) {
var options = "<option value=''>=归属机房=</option>";
$.each(response.data, function (i, v) {
options += "<option value='" + v.machineRoomId + "'>" + v.machineRoomName + "</option>"
});
$('#slt-devicehitch-machine').html(options);
form.render();
fromAssignment()
});
admin.req({
url: domainName + '/api-web/bWorkreportGroup/findManufacturerList'
}).done(function (response) {
var options = "<option value=''>=工作单位=</option>";
$.each(response.data, function (i, v) {
options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>"
});
options += "<option value='0'>其他</option>";
$('#slt-discoverMfId-group').html(options);
$('#slt-repairMfId-group').html(options);
form.render();
});
}
form.on('select(slt-discoverMfId-group)', function (data) {
if (data.value == '0') {
$("#slt-discoverMfId-group").css("display", "none");
$("#discoverMfOther").css("display", "block");
} else {
$("#discoverMfOther").css("display", "none");
}
});
form.on('select(slt-repairMfId-group)', function (data) {
if (data.value == '0') {
$("#slt-repairMfId-group").css("display", "none");
$("#repairMfOther").css("display", "block");
} else {
$("#repairMfOther").css("display", "none");
}
});
//初始化日期插件
function initDatePlus() {
applyDate = laydate.render({
elem: '#applyTime', //指定元素
value: new Date(),
type: 'datetime',
isInitValue: true,
});
hitDate = laydate.render({
elem: '#hitchTime', //指定元素
value: new Date(),
type: 'datetime',
isInitValue: true,
});
aAcknowledgingDate = laydate.render({
elem: '#aAcknowledgingTime', //指定元素
value: new Date(),
type: 'datetime',
isInitValue: true,
});
bAcknowledgingDate = laydate.render({
elem: '#bAcknowledgingTime', //指定元素
value: new Date(),
type: 'datetime',
isInitValue: true,
});
laydate.render({
elem: '#repairPlan'
, range: '~',
type: 'datetime',
trigger: 'click',
ready: function (date) {
$("#repairPlan").removeAttr("lay-key");
$(this).attr("lay-key", "1");
},
done: function (value) {
$("#repairPlan").val(value);
}
});
}
//初始化上传插件
function initUploadPlus() {
var param = {"accessToken": accessToken}
var fileName = []
uploadInst = upload.render({
elem: '#attachment', //绑定元素
url: common.domainName + '/api-web/machineRoom/devicehitch/upload?accessToken='+accessToken,
data: param,
multiple: true,
auto: false, //选择文件后不自动上传
bindAction: '#upload_btn',//指定按钮触发上传
accept: 'file',
exts: 'xls|doc|pdf|docx|xlsx|jpg|png',
choose: function (obj) {
//选择文件后回调
var files = this.files = obj.pushFile();
if(typeof(files)!=undefined){
if(Object.getOwnPropertyNames(files).length>2){
$("#attachment").attr("disabled","disabled");
layer.msg('目前最多支持上传三个文件!', {
icon: 7, time: 3000
});
}
}
obj.preview(function (index, file, result) {
fileName.push(file.name)
$('#attachmentInput').val(fileName.toString())
})
},
done: function (res) {
//单次上传成功
attachmentIds.push(res.str)
},
allDone: function (obj) {
//全部上传成功后
saveForm()
},
error: function (index, upload) {
// 上传失败
layer.msg('文件上传时发生故障,请稍后再试!', {
icon: 7, time: 3000
});
}
});
}
// 初始化查看模式
function initViewMode() {
$('form[lay-filter="add-devicehitch-form"]').find('input, textarea').attr('readonly', true);
$('form[lay-filter="add-devicehitch-form"]').find('select').attr('disabled', true);
$.each(xmSelect.get(), function (i, v) {
v.update({disabled: true});
});
$('#attachmentInput').parent().parent().parent().addClass('hide');
$('#table-devicehitch-add-attachment').removeClass('hide');
//渲染附件表格
var attachmentTable = table.render({
elem: '#table-devicehitch-add-attachment',
url: domainName + '/api-web/machineRoom/devicehitch/getAttaById',
where: {
accessToken: accessToken,
id: data.id
},
height: 'full',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[
{type: 'numbers', title: '序号'},
{
field: 'name', title: '文件名称', align: 'center', minWith: 200,
},
{
field: 'suffix', title: '文件后缀', align: 'center', minWith: 150,
},
{
field: 'size', title: '文件大小', align: 'center', minWith: 150,
templet: function (d) {
var str = (d.size / 1000).toFixed(2)
return `<div><span>${str}KB</span></div>`
}
},
{
title: '操作', align: "center", width: 120,
templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path = "{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span></div>'
}
]],
done: function () {
$('.preview-attachment-btn').on('click', function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var filepath = $(this).data('path')
if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken
layer.open({
type: 1,
content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`,
title: '图片预览',
area: ['60%', '90%']
})
} else {
//附件为文档类型
common.fileviewer(filepath)
}
})
}
})
form.render();
}
//表单赋值
function fromAssignment() {
if (data && data.id) {
$('#add-devicehitch-form-atta').show()
//编辑表单时禁用日志类型修改和时间选择
// $('#add-repair-form').find("select[name='hitchtime']").attr("disabled", "disabled")
// $('#add-repair-form').find("input[name='createtime']").attr("disabled", "disabled")
//编辑表单时取消显示默认值
applyDate.config.isInitValue = false
hitDate.config.isInitValue = false
aAcknowledgingDate.config.isInitValue = false
bAcknowledgingDate.config.isInitValue = false
initDatePlus()
admin.req({
url: domainName + `/api-web/machineRoom/findDevicehitchRecordById`,
data: {recordId: data.id},
async: false,
}).done(function (res) {
form.val('add-devicehitch-form', res.object)
if(res.object.repairMfId=="0"){
$("#repairMfOther").css("display", "block");
}
if(res.object.discoverMfId=="0"){
$("#discoverMfOther").css("display", "block");
}
if (res.object.attachmentList) {
$.each(res.object.attachmentList, function (i, v) {
writeTagsInfo(v.id, v.originalName)
})
}
})
}
}
//写入标签内容
function writeTagsInfo(id, name) {
var tags = '<span id="tags_span_' + id + '" data-id="' + id + '"><em>' + name + '</em>' +
'<button type="button" value="' + id + '" class="tagsclose">×</button></span>';
if ($("#tags_span_" + id).length == 0) {
//拼接标签
$("#selecte_content_id").append(tags);
//绑定标签的删除事件
bindTagesDelEvent();
}
}
//删除标签事件
function bindTagesDelEvent() {
//删除已选主体的页签
$("button.tagsclose").on("click", function () {
var attachId = $(this).attr("value");
//确认提示框
layer.confirm('附件删除后将无法恢复,您确定要删除吗?', {
btn: ['确定', '取消'] //按钮
}, function () {
$.ajax({
url: domainName + `/api-web/workreport/deleteAttachment/${id}/${attachId}?accessToken=` + accessToken,
type: "get",
}).done(function (res) {
layer.msg('删除成功', {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
$("#tags_span_" + attachId).remove();
});
}).error(function (error) {
console.log(error);
});
});
});
}
})
})
\ No newline at end of file
... ...
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var session = layui.sessions
var domainName = common.domainName;
//对外暴露的接口
exports("devicehitchList", function (d) {
var accessToken = localStorage.getItem("accessToken");
if (d.type == 'attachment') {
$('#attachmentTable').show()
createAttachmentTable()
}
//渲染附件表格
function createAttachmentTable() {
var attachmentTable = table.render({
elem: '#attachmentTable',
url: domainName + '/api-web/machineRoom/devicehitch/getAttaById',
where: {
accessToken: accessToken,
id: d.id
},
height: 'full',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[
{type: 'numbers', title: '序号'},
{
field: 'name', title: '文件名称', align: 'center', minWith: 200,
}, {
field: 'originalName', title: '原始名称', align: 'center', minWith: 200,
}, {
field: 'suffix', title: '文件后缀', align: 'center', minWith: 150,
},
{
field: 'size', title: '文件大小', align: 'center', minWith: 150,
templet: function (d) {
var str = (d.size / 1000).toFixed(2)
return `<div><span>${str}KB</span></div>`
}
},
{
title: '操作', align: "center", width: 120,
templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path="{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span>' +
'<span data-id="{{d.id}}" data-suffix="{{d.suffix}}" class="layui-table-link attachment-download-btn" style="margin-left: 10px">下载</span></div>'
}
]],
done: function () {
$('.preview-attachment-btn').on('click', function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var filepath = $(this).data('path')
if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken
layer.open({
type: 1,
content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`,
title: '图片预览',
area: ['60%', '90%']
})
} else {
//附件为文档类型
common.fileviewer(filepath)
}
})
$('.attachment-download-btn').on('click',function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken
window.open(url)
})
}
})
}
})
})
\ No newline at end of file
... ...
/** 应急演练 */
layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydate', 'element'], function (exports) {
var $ = layui.$;
var form = layui.form;
var table = layui.table;
var admin = layui.admin;
var common = layui.common;
var laydate = layui.laydate;
var element = layui.element;
exports('emergency', function () {
var accessToken = localStorage.getItem("accessToken");
var domainName = common.domainName;
var timeChart = echarts.init(document.getElementById('emergency-chart-time-record'));
var inspIsLoad = false;
var businessIsLoad = false;
var currSelect = 0;
var dateLimit = ""
var createTime = "month"
//日期范围选择
laydate.render({
elem: '#emergencydateLimit'
, range: '~',
trigger: 'click',
ready: function (date) {
$("#emergencydateLimit").removeAttr("lay-key");
$(this).attr("lay-key", "1");
},
done: function (value) {
dateLimit = value
if (dateLimit == '') {
$('[data-period="month"]').click()
} else {
$.each($("button.date"), function (i, e) {
var $dom = $(e);
if ($dom.hasClass("active")) {
$dom.removeClass("active")
}
})
reloadAllChange()
}
}
});
form.render();
renderEmergencyPlanListTable();
renderEmergencyReportListTable()
loademergencyChart();
loadConditionSelect();
//监听Esc事件
$(document).keyup(function (event) {
if (event.keyCode === 27) {
layer.closeAll();
}
});
// 日期方式选择
$('#btns-emergency-time button').click(function () {
$.each($("button.date"), function (i, e) {
var $dom = $(e);
if ($dom.hasClass("active")) {
$dom.removeClass("active")
}
})
$("#dateLimit").val('')
dateLimit = ''
$("#btns-emergency-time button").removeClass("active");
$(this).addClass("active");
createTime = ($(this).data("period"))
reloadAllChange();
});
// 回车搜索
$('[lay-filter="form-emergency-condition"] input').keydown(function (e) {
if (e.keyCode === 13) {
reloadAllChange();
}
});
// 下拉框改变搜索
form.on('select(slt-emergency-group)', reloadAllChange);
// 下拉框改变搜索
form.on('select(slt-emergency-biz)', reloadAllChange);
// 下拉框改变搜索
form.on('select(slt-emergency-org)', reloadAllChange);
form.on('select(slt-emergency-status)', reloadAllChange);
// tab页切换事件
element.on('tab(emergency-tab)', function (data) {
if (data.index == 0) {
if (!inspIsLoad) {
renderEmergencyPlanListTable();
inspIsLoad = true;
}
} else if (data.index == 1) {
if (!businessIsLoad) {
renderEmergencyReportListTable();
businessIsLoad = true;
}
}
currSelect = data.index;
});
// 加载配件更换表格
function renderEmergencyPlanListTable() {
var conditions = form.val('form-emergency-condition');
Object.assign(conditions, {
accessToken: accessToken,
createtime: createTime,
viewMode: 'true',
dateLimit: dateLimit
});
table.render({
elem: '#emergencyPlan_table_id',
url: domainName + '/api-web/emergency/findBEmergencyRecords?docType=0',
where: conditions,
height: 'full-360',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
theme: '#1E9FFF'
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[{
type: 'numbers', title: '序号'
}, {
field: 'title', title: '预案版本', align: 'center',
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-emergencyPlan-title" >{{d.title}}</span></div>'
}, {
field: 'busTypeName', title: '业务名称', align: 'center',
}, {
field: 'orgName', title: '所属处室', align: 'center'
}, {
field: 'principal', title: '系统责任人', align: 'center',
}, {
field: 'phone', title: '联系方式', align: 'center',
}, {
field: 'operationUser', title: '运维人', align: 'center',
}, {
field: 'manufacturerName', title: '所属单位', align: 'center', templet: function (d) {
if (d.manufacturerId == '0') {
return '其他';
} else {
return d.manufacturerName;
}
}
}, {
field: 'mphone', title: '运维电话', align: 'center',
}, {
field: 'attachmentList', title: '附件', align: 'center',
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-emergencyPlan-attachment">{{d.attachmentList.length}}</span></div>'
}, {
field: 'applyTime', title: '创建时间', align: 'center'
}
]],
done: function () {
//获取线路列表
$('.view-emergencyPlan-title').on('click', function () {
openemergencyForm($(this).data('id'))
})
//获取线路列表
$('.view-emergencyPlan-attachment').on('click', function () {
openemergencyList("attachment", $(this).data('id'))
})
}
});
}
// 加载设备出入表格
function renderEmergencyReportListTable() {
var conditions = form.val('form-emergency-condition');
Object.assign(conditions, {
accessToken: accessToken,
createtime: createTime,
viewMode: 'true',
dateLimit: dateLimit
});
table.render({
elem: '#emergencyReport-table',
url: domainName + '/api-web/emergency/findBEmergencyRecords?docType=1',
where: conditions,
height: 'full-360',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
theme: '#1E9FFF'
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[{
type: 'numbers', title: '序号'
}, {
field: 'title', title: '预案版本', align: 'center',
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-emergencyReport-title" >{{d.title}}</span></div>'
}, {
field: 'busTypeName', title: '业务名称', align: 'center',
}, {
field: 'orgName', title: '所属处室', align: 'center'
}, {
field: 'principal', title: '系统责任人', align: 'center',
}, {
field: 'phone', title: '联系方式', align: 'center',
}, {
field: 'operationUser', title: '运维人', align: 'center',
}, {
field: 'manufacturerName', title: '所属单位', align: 'center', templet: function (d) {
if (d.manufacturerId == '0') {
return '其他';
} else {
return d.manufacturerName;
}
}
}, {
field: 'mphone', title: '运维电话', align: 'center',
}, {
field: 'attachmentList', title: '附件', align: 'center',
templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-emergencyReport-attachment">{{d.attachmentList.length}}</span></div>'
}, {
field: 'unitadjustperiod', title: '实施时间段', align: 'center'
}, {
field: 'applyTime', title: '创建时间', align: 'center'
}, {
field: 'status', title: '演练结果', align: 'center',
templet: '<div><span>{{d.status==0?"成功":"失败"}}</span></div>'
}
]],
done: function () {
//获取线路列表
$('.view-emergencyReport-title').on('click', function () {
openemergencyForm($(this).data('id'))
})
//获取线路列表
$('.view-emergencyReport-attachment').on('click', function () {
openemergencyList("attachment", $(this).data('id'))
})
}
});
}
//新增日报
$('#emergency_create').on('click', function () {
openemergencyForm()
})
//下载
$('#emergency_download').on('click', function (){
let id ='';
if (currSelect == 0) {
id = '62a341e759dd46d5b12b4c17ddb9db';
}else{
id = '09f4988f2fc8a785700040c49cfe5d19';
}
var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken;
window.open(url);
})
//新增/编辑表单
function openemergencyForm(id) {
var title = id ? '编辑' : '新增'
common.openWin('emergency/add', title, {id: id}, ['保存', '取消'], function f() {
$("#emergency-form-save-id").trigger("click");
reloadAllChange();
})
}
//查看附件/调整信息列表
function openemergencyList(type, id) {
var title = "附件";
common.openWin('emergency/fileList', title, {id: id, type: type}, ['确定', '取消'])
}
// 加载查询条件下拉框
function loadConditionSelect() {
admin.req({
url: domainName + '/mj/sysOrg/page?orgType=1'
}).done(function (response) {
var options = "<option value=''>=所属处室=</option>";
$.each(response.data.rows, function (i, v) {
options += "<option value='" + v.orgCode + "'>" + v.orgName + "</option>"
});
$('#slt-emergency-org').html(options);
form.render();
});
//绑定业务下拉选择数据
common.bizTypeSelect("slt-emergency-biz", function () {
form.render("select");
});
admin.req({
url: domainName + '/api-web/bWorkreportGroup/findManufacturerList'
}).done(function (response) {
var options = "<option value=''>=运维单位=</option>";
$.each(response.data, function (i, v) {
options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>"
});
options += "<option value='0'>其他</option>";
$('#slt-emergency-group').html(options);
form.render();
});
}
$("#emergency-export-excel").on('click', function () {
let href = '';
if (currSelect == 0) {
href = common.domainName + '/api-web/emergency/export?docType=0&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000';
} else if (currSelect == 1) {
href = common.domainName + '/api-web/emergency/export?docType=1&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000';
}
window.open(href)
})
// 按系统统计演练
function loademergencyChart() {
var conditions = {};
Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''});
admin.req({
url: domainName + '/api-web/emergency/findBEmergencyRecordsForGroup',
data: conditions
}).done(function (response) {
var chartData = response.map;
var groupList = chartData.groupList;
var planList = chartData.planList;
var reportList = chartData.reportList;
var totalList = chartData.totalList;
var xData = [];
var groupData = [];
$.each(groupList, function (i, v) {
xData.push(v);
groupData.push({
name: v,
value: 1
});
});
var series = [{
name: '应急预案',
data: planList,
barWidth: 20,
type: 'bar',
stack: 'alarm',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#1e9fff"
}
}, {
name: '演练报告',
data: reportList,
barWidth: 20,
type: 'bar',
stack: 'alarm',
emphasis: {
focus: 'series'
},
itemStyle: {
color: "#FF7E00"
},
label: {
show: true,
position: 'top',
textStyle: {
color: '#555'
},
formatter: function (data) {
return totalList[data.dataIndex]
}
}
}];
/**
双X轴标签对应,伪实现思路:
底部的标签也是柱状图,对应包含的区域为上方X轴条数占总数的比例,设为宽度即可
*/
var option = {
title: {
text: '应急预案和演练报告图示',
textStyle: {
color: '#00D81E06',
fontSize: 5
}
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
toolbox: {
show: true,
feature: {
saveAsImage: {}
},
right: 10
},
legend: {
data: ['应急预案', '演练报告'],
selectedMode: false
},
grid: [{
top: 40,
bottom: 70,
left: 50,
right: 5
}],
xAxis: [{
type: 'category',
data: xData,
axisLabel: {
color: '#333',
show: true,
interval: 0,
rotate: 15
},
axisLine: {
lineStyle: {
color: '#e7e7e7'
}
},
axisTick: {
lineStyle: {
color: '#e7e7e7'
}
},
zlevel: 1
}],
yAxis: [{
type: 'value',
gridIndex: 0,
axisLabel: {
color: '#333'
},
splitLine: {
lineStyle: {
type: 'dashed'
}
},
axisLine: {
lineStyle: {
color: '#ccc'
}
},
axisTick: {
lineStyle: {
color: '#ccc'
}
}
}],
series: series
};
timeChart.setOption(option)
});
}
// 图表,表格重新加载
function reloadAllChange() {
renderEmergencyPlanListTable();
renderEmergencyReportListTable()
loademergencyChart();
loadConditionSelect()
}
});
});
\ No newline at end of file
... ...
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect', 'laydate', 'upload'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var session = layui.sessions;
var laydate = layui.laydate;
var upload = layui.upload;
var domainName = common.domainName;
var xmSelect = layui.xmSelect;
//对外暴露的接口
exports('emergencyAdd', function (data) {
var accessToken = localStorage.getItem("accessToken");
var userSelect = "";
var currentDate = {}
var hitDate = {}
var uploadInst = {}
var aAcknowledgingDate = {}
var bAcknowledgingDate = {}
var defaultUser = []
var attachmentIds = []
var id = data.id
var cols = []
var where = {}
var currentResourceType = ''
var resTypeSele
var viewType = data && data.viewType ? data.viewType : '';
//渲染表单
form.render(null, 'add-emergency-form')
$("#period").hide();
searchEvent();
init()
function searchEvent(){
//通知类型
form.on('radio(docType)', function (data) {
if(data.value == '1'){
$("#period").show();
$("#backDiv").show();
$("#resultDiv").show();
}else{
$("#period").hide();
$("#backDiv").hide();
$("#resultDiv").hide();
$("#unitadjustperiod").val("");
$("#backProject").val("");
$("#resultDesc").val("");
}
});
}
//通知类型
form.on('radio(docType)', function (data) {
if(data.value == '1'){
$("#period").show();
$("#backDiv").show();
$("#resultDiv").show();
}else{
$("#period").hide();
$("#backDiv").hide();
$("#resultDiv").hide();
$("#unitadjustperiod").val("");
$("#backProject").val("");
$("#resultDesc").val("");
}
checkDocTypeIsReport(data.value)
});
//保存
form.on('submit(emergency-form-save-id)', function (res) {
var value = $('#attachmentInput').val()
if (value != '') {
$('#upload_btn').click()
} else {
saveForm()
}
})
//保存
function saveForm() {
layer.load(2)
var data = form.val('add-emergency-form');
var params = {}
params.attachmentIds = attachmentIds.toString()
delete data['file']
delete data['select']
params.emergency = JSON.stringify(data)
admin.req({
url: domainName + '/api-web/emergency/save?accessToken=' + accessToken,
data: JSON.stringify(params),
type: 'post',
contentType: "application/json; charset=utf-8",
done: function (res) {
if (res.success) {
layer.msg(res.msg, {
offset: '15px',
icon: 1,
time: 1000,
}, function () {
$("#attachment").removeAttr("disabled");
layer.closeAll()
table.reload('emergencyPlan_table_id', {
where: {
accessToken: accessToken,
createtime: "month",
viewMode: 'true',
dateLimit: ""
},
});
table.reload('emergencyReport-table', {
where: {
accessToken: accessToken,
createtime: "month",
viewMode: 'true',
dateLimit: ""
},
});
})
} else {
layer.msg(res.msg, {
offset: '15px',
icon: 7,
time: 1000,
})
}
}
})
return false
}
function checkDocTypeIsReport(data) {
var docType = "";
if(data) {
docType = data;
}
if(docType == '1'){
return 'required';
}else {
return '';
}
}
//页面初始化
function init() {
loadSelect()
initDatePlus()
initUploadPlus()
if (viewType == 'view') {
initViewMode();
}
}
// 初始化下拉框
function loadSelect() {
admin.req({
url: domainName + '/mj/sysOrg/page?orgType=1'
}).done(function (response) {
var options = "<option value=''>=所属处室=</option>";
$.each(response.data.rows, function (i, v) {
options += "<option value='" + v.orgCode + "'>" + v.orgName + "</option>"
});
$('#slt-emergencyAdd-org').html(options);
form.render();
});
//绑定业务下拉选择数据
common.bizTypeSelect("slt-biz-add", function () {
form.render("select");
fromAssignment()
});
admin.req({
url: domainName + '/api-web/bWorkreportGroup/findManufacturerList'
}).done(function (response) {
var options = "<option value=''>=运维公司=</option>";
$.each(response.data, function (i, v) {
options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>"
});
options += "<option value='0'>其他</option>";
$('#slt-emergencyadd-group').html(options);
form.render();
//fromAssignment();
});
}
//初始化日期插件
function initDatePlus() {
currentDate = laydate.render({
elem: '#applyTime', //指定元素
value: new Date(),
type: 'datetime',
isInitValue: true,
});
aAcknowledgingDate = laydate.render({
elem: '#aAcknowledgingTime', //指定元素
value: new Date(),
type: 'datetime',
isInitValue: true,
});
bAcknowledgingDate = laydate.render({
elem: '#bAcknowledgingTime', //指定元素
value: new Date(),
type: 'datetime',
isInitValue: true,
});
laydate.render({
elem: '#unitadjustperiod'
, range: '~',
type: 'datetime',
trigger: 'click',
ready: function (date) {
$("#unitadjustperiod").removeAttr("lay-key");
$(this).attr("lay-key", "1");
},
done: function (value) {
$("#unitadjustperiod").val(value);
}
});
}
//初始化上传插件
function initUploadPlus() {
var param = {"accessToken": accessToken}
var fileName = []
uploadInst = upload.render({
elem: '#attachment', //绑定元素
url: common.domainName + '/api-web/emergency/upload?accessToken='+accessToken,
data: param,
multiple: true,
auto: false, //选择文件后不自动上传
bindAction: '#upload_btn',//指定按钮触发上传
accept: 'file',
exts: 'xls|doc|pdf|docx|xlsx|jpg|png',
choose: function (obj) {
//选择文件后回调
var files = this.files = obj.pushFile();
if(typeof(files)!=undefined){
if(Object.getOwnPropertyNames(files).length>2){
$("#attachment").attr("disabled","disabled");
layer.msg('目前最多支持上传三个文件!', {
icon: 7, time: 3000
});
}
}
obj.preview(function (index, file, result) {
fileName.push(file.name)
$('#attachmentInput').val(fileName.toString())
})
},
done: function (res) {
//单次上传成功
attachmentIds.push(res.str)
},
allDone: function (obj) {
//全部上传成功后
saveForm()
},
error: function (index, upload) {
// 上传失败
layer.msg('文件上传时发生故障,请稍后再试!', {
icon: 7, time: 3000
});
}
});
}
// 初始化查看模式
function initViewMode() {
$('form[lay-filter="add-emergency-form"]').find('input, textarea').attr('readonly', true);
$('form[lay-filter="add-emergency-form"]').find('select').attr('disabled', true);
$.each(xmSelect.get(), function (i, v) {
v.update({disabled: true});
});
$('#attachmentInput').parent().parent().parent().addClass('hide');
$('#table-emergency-add-attachment').removeClass('hide');
//渲染附件表格
var attachmentTable = table.render({
elem: '#table-emergency-add-attachment',
url: domainName + '/api-web/emergency/getAttaById',
where: {
accessToken: accessToken,
id: data.id
},
height: 'full',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[
{type: 'numbers', title: '序号'},
{
field: 'name', title: '文件名称', align: 'center', minWith: 200,
},
{
field: 'suffix', title: '文件后缀', align: 'center', minWith: 150,
},
{
field: 'size', title: '文件大小', align: 'center', minWith: 150,
templet: function (d) {
var str = (d.size / 1000).toFixed(2)
return `<div><span>${str}KB</span></div>`
}
},
{
title: '操作', align: "center", width: 120,
templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path = "{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span></div>'
}
]],
done: function () {
$('.preview-attachment-btn').on('click', function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var filepath = $(this).data('path')
if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken
layer.open({
type: 1,
content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`,
title: '图片预览',
area: ['60%', '90%']
})
} else {
//附件为文档类型
common.fileviewer(filepath)
}
})
}
})
form.render();
}
//表单赋值
function fromAssignment() {
if (data && data.id) {
var loading =layer.load(2)
$('#add-emergency-form-atta').show()
//编辑表单时禁用日志类型修改和时间选择
// $('#add-repair-form').find("select[name='hitchtime']").attr("disabled", "disabled")
// $('#add-repair-form').find("input[name='createtime']").attr("disabled", "disabled")
//编辑表单时取消显示默认值
currentDate.config.isInitValue = false
initDatePlus()
admin.req({
url: domainName + `/api-web/emergency/findBEmergencyRecordByRecordId`,
data: {recordId: data.id},
async: false,
}).done(function (res) {
layer.close(loading)
form.val('add-emergency-form', res.object);
if (res.object.attachmentList) {
$.each(res.object.attachmentList, function (i, v) {
writeTagsInfo(v.id, v.originalName)
})
}
if(res.object.docType== '1'){
$("#period").show();
$("#backDiv").show();
$("#resultDiv").show();
}
$("input[type='radio'][name='docType'][value = '"+res.object.docType+"']").attr("checked",true);
$("input[type='radio'][name='docType']").attr('disabled','disabled');
})
}else{
$("input[type='radio'][name='docType']").removeAttr('disabled');
}
}
//写入标签内容
function writeTagsInfo(id, name) {
var tags = '<span id="tags_span_' + id + '" data-id="' + id + '"><em>' + name + '</em>' +
'<button type="button" value="' + id + '" class="tagsclose">×</button></span>';
if ($("#tags_span_" + id).length == 0) {
//拼接标签
$("#selecte_content_id").append(tags);
//绑定标签的删除事件
bindTagesDelEvent();
}
}
//删除标签事件
function bindTagesDelEvent() {
//删除已选主体的页签
$("button.tagsclose").on("click", function () {
var attachId = $(this).attr("value");
//确认提示框
layer.confirm('附件删除后将无法恢复,您确定要删除吗?', {
btn: ['确定', '取消'] //按钮
}, function () {
$.ajax({
url: domainName + `/api-web/workreport/deleteAttachment/${id}/${attachId}?accessToken=` + accessToken,
type: "get",
}).done(function (res) {
layer.msg('删除成功', {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
$("#tags_span_" + attachId).remove();
});
}).error(function (error) {
console.log(error);
});
});
});
}
})
})
\ No newline at end of file
... ...
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function (exports) {
var $ = layui.$;
var form = layui.form;
var layer = layui.layer;
var admin = layui.admin;
var table = layui.table;
var common = layui.common;
var session = layui.sessions
var domainName = common.domainName;
//对外暴露的接口
exports("emergencyList", function (d) {
var accessToken = localStorage.getItem("accessToken");
if (d.type == 'attachment') {
$('#attachmentTable').show()
createAttachmentTable()
}
//渲染附件表格
function createAttachmentTable() {
var attachmentTable = table.render({
elem: '#attachmentTable',
url: domainName + '/api-web/emergency/getAttaById',
where: {
accessToken: accessToken,
id: d.id
},
height: 'full',
page: {
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
, theme: '#1E9FFF'//自定义分页主题颜色
},
end: function (e) {
form.render()
},
limit: common.limit,
limits: common.limits,
even: true,
cols: [[
{type: 'numbers', title: '序号'},
{
field: 'name', title: '文件名称', align: 'center', minWith: 200,
}, {
field: 'originalName', title: '原始名称', align: 'center', minWith: 200,
}, {
field: 'suffix', title: '文件后缀', align: 'center', minWith: 150,
},
{
field: 'size', title: '文件大小', align: 'center', minWith: 150,
templet: function (d) {
var str = (d.size / 1000).toFixed(2)
return `<div><span>${str}KB</span></div>`
}
},
{
title: '操作', align: "center", width: 120,
templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path="{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span>' +
'<span data-id="{{d.id}}" data-suffix="{{d.suffix}}" class="layui-table-link attachment-download-btn" style="margin-left: 10px">下载</span></div>'
}
]],
done: function () {
$('.preview-attachment-btn').on('click', function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var filepath = $(this).data('path')
if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken
layer.open({
type: 1,
content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`,
title: '图片预览',
area: ['60%', '90%']
})
} else {
//附件为文档类型
common.fileviewer(filepath)
}
})
$('.attachment-download-btn').on('click',function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken
window.open(url)
})
}
})
}
})
})
\ No newline at end of file
... ...
... ... @@ -9,8 +9,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
var element = layui.element;
exports('enterDevice', function () {
var sessions = layui.sessions;
var accessToken = sessions.getToken().access_token;
var accessToken = localStorage.getItem("accessToken");
var domainName = common.domainName;
var timeChart = echarts.init(document.getElementById('device-chart-time-record'));
var inspIsLoad = false;
... ... @@ -23,11 +22,11 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
//日期范围选择
laydate.render({
elem: '#devicedateLimit'
, range: '~',
,range: '~',
trigger: 'click',
ready: function (date) {
ready: function(date){
$("#devicedateLimit").removeAttr("lay-key");
$(this).attr("lay-key", "1");
$(this).attr("lay-key","1");
},
done: function (value) {
dateLimit = value
... ... @@ -77,14 +76,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
});
// 回车搜索
$('[lay-filter="form-enterDevice-condition"] input').keydown(function (e) {
$('[lay-filter="form-enterStaff-condition"] input').keydown(function (e) {
if (e.keyCode === 13) {
reloadAllChange();
}
});
// 下拉框改变搜索
form.on('select(slt-device-group)', reloadAllChange);
form.on('select(slt-staff-group)', reloadAllChange);
// tab页切换事件
element.on('tab(enterdevice-tab)', function (data) {
... ... @@ -101,20 +100,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
}
currSelect = data.index;
});
// 加载配件更换表格
function renderEnterDeviceListTable() {
var conditions = form.val('form-enterDevice-condition');
var conditions = form.val('form-enterStaff-condition');
Object.assign(conditions, {
access_token: accessToken,
accessToken: accessToken,
createtime: createTime,
viewMode: 'true',
dateLimit: dateLimit
});
table.render({
elem: '#enterdevice_table_id',
url: domainName + '/api-room/machineRoom/findMachineRoomEnterDeviceRecords?docType=1',
url: domainName + '/api-web/machineRoom/findMachineRoomEnterDeviceRecords?docType=1',
where: conditions,
height: 'full-360',
page: {
... ... @@ -127,13 +125,13 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
limit: common.limit,
limits: common.limits,
even: true,
cols: [[{
cols: [[ {type: 'checkbox'},{
field: 'machineRoomName', title: '机房', align: 'center',
}, {
field: 'manufacturerName', title: '工作单位', align: 'center', templet: function (d) {
if (d.manufacturerId == '0') {
field: 'manufacturerName', title: '工作单位', align: 'center',templet: function (d) {
if(d.manufacturerId == '0'){
return d.manufacturerOther;
} else {
}else {
return d.manufacturerName;
}
}
... ... @@ -192,20 +190,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
}
});
}
// 加载设备出入表格
function renderFittingFixListTable() {
var conditions = form.val('form-enterDevice-condition');
var conditions = form.val('form-enterStaff-condition');
Object.assign(conditions, {
access_token: accessToken,
accessToken: accessToken,
createtime: createTime,
viewMode: 'true',
dateLimit: dateLimit
});
table.render({
elem: '#fitting-table',
url: domainName + '/api-room/machineRoom/findMachineRoomEnterDeviceRecords?docType=2',
url: domainName + '/api-web/machineRoom/findMachineRoomEnterDeviceRecords?docType=2',
where: conditions,
height: 'full-360',
page: {
... ... @@ -218,13 +215,13 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
limit: common.limit,
limits: common.limits,
even: true,
cols: [[{
cols: [[ {type: 'checkbox'},{
field: 'machineRoomName', title: '机房', align: 'center',
}, {
field: 'manufacturerName', title: '工作单位', align: 'center', templet: function (d) {
if (d.manufacturerId == '0') {
field: 'manufacturerName', title: '工作单位', align: 'center',templet: function (d) {
if(d.manufacturerId == '0'){
return d.manufacturerOther;
} else {
}else {
return d.manufacturerName;
}
}
... ... @@ -251,7 +248,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
{{actionTypeStr}}
</div>
`
}, {
}, {
field: 'deviceModel', title: '设备型号', align: 'center',
}, {
field: 'localPlace', title: '设备物理位置', align: 'center',
... ... @@ -283,7 +280,6 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
}
});
}
//新增日报
$('#device_create').on('click', function () {
openDeviceForm()
... ... @@ -294,7 +290,6 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
var title = id ? '编辑' : '新增'
common.openWin('machineroom/deviceAdd', title, {id: id}, ['保存', '取消'], function f() {
$("#device-form-save-id").trigger("click");
}, null, null, function done() {
reloadAllChange();
})
}
... ... @@ -304,15 +299,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
var title = '更换配件列表'
common.openWin('machineroom/fittingList', title, {id: id})
common.openWin('machineroom/fittingList', title, {id: id}, ['确定', '取消'])
}
//查看进出设备列表
function openDeviceList(id) {
var title = '出入设备列表'
common.openWin('machineroom/deviceList', title, {id: id})
common.openWin('machineroom/deviceList', title, {id: id}, ['确定', '取消'])
}
// 加载查询条件下拉框
... ... @@ -324,18 +318,54 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
$.each(response.data, function (i, v) {
options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>"
});
$('#slt-device-group').html(options);
options += "<option value='0'>其他</option>";
$('#slt-staff-group').html(options);
form.render();
});
}
$("#device-export-excel").on('click', function () {
if (currSelect == 0) {
var href = common.domainName + '/api-web/machineRoom/exportMachineRoomEnterDeviceRecords?docType=1&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000';
} else if (currSelect == 1) {
var href = common.domainName + '/api-web/machineRoom/exportMachineRoomEnterDeviceRecords?docType=2&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000';
}
window.open(href)
})
//下载
$('#device_download').on('click', function (){
var data = [];
var attachmentId ="";
var docType = "";
if (currSelect == 0) {
data = table.checkStatus('enterdevice_table_id').data;
attachmentId = '2136d6a1709811edb49f005056aae0ca';
docType = '1';
}else if (currSelect == 1) {
data = table.checkStatus('fitting-table').data;
attachmentId = '713fc12f709811edb49f005056aae0ca';
docType = '2';
}
var ids = '';
if(data.length<=0){
layer.msg("请至少选择一条下载", { offset: '15px' , icon: 7 , time: 1500 });
}else if(data.length>=1){
var arr = [];
$.each(data,function (i,e) {
arr.push(e.id)
})
ids = arr.toString();
var url = domainName + `/api-web/machineRoom/downloadWordZipforDevice?accessToken=` + accessToken+"&ids="+ids+"&attachmentId="+ attachmentId+"&docType="+docType;
window.open(url);
}
})
// 各单位维修情况
function loadEnterDeviceChart() {
var conditions = {};
Object.assign(conditions, {access_token: accessToken, createtime: createTime, viewMode: ''});
Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''});
admin.req({
url: domainName + '/api-room/machineRoom/findMachineRoomEnterDeviceRecordsForGroup',
url: domainName + '/api-web/machineRoom/findMachineRoomEnterDeviceRecordsForGroup',
data: conditions
}).done(function (response) {
var chartData = response.map;
... ... @@ -365,7 +395,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
itemStyle: {
color: "#1e9fff"
}
}, {
},{
name: '配件更换',
data: fittingList,
barWidth: 20,
... ... @@ -430,8 +460,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
axisLabel: {
color: '#333',
show: true,
interval: 0,
rotate: 15
interval:0,
rotate:15
},
axisLine: {
lineStyle: {
... ... @@ -481,4 +511,4 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
loadEnterDeviceChart();
}
});
});
});
\ No newline at end of file
... ...
... ... @@ -9,8 +9,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
var element = layui.element;
exports('enterStaff', function () {
var sessions = layui.sessions;
var accessToken = sessions.getToken().access_token;
var accessToken = localStorage.getItem("accessToken");
var domainName = common.domainName;
var timeChart = echarts.init(document.getElementById('chart-time-record'));
... ... @@ -21,11 +20,11 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
//日期范围选择
laydate.render({
elem: '#staffdateLimit'
, range: '~',
,range: '~',
trigger: 'click',
ready: function (date) {
ready: function(date){
$("#staffdateLimit").removeAttr("lay-key");
$(this).attr("lay-key", "1");
$(this).attr("lay-key","1");
},
done: function (value) {
dateLimit = value
... ... @@ -82,19 +81,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
// 下拉框改变搜索
form.on('select(slt-staff-group)', reloadAllChange);
// 加载工作汇报表格
function loadWorkReportTable() {
var conditions = form.val('form-enterStaff-condition');
Object.assign(conditions, {
access_token: accessToken,
accessToken: accessToken,
createtime: createTime,
viewMode: 'true',
dateLimit: dateLimit
});
table.render({
elem: '#table-staff-view',
url: domainName + '/api-room/machineRoom/findMachineRoomEnterRecords',
url: domainName + '/api-web/machineRoom/findMachineRoomEnterRecords',
where: conditions,
height: 'full-360',
page: {
... ... @@ -107,13 +106,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
limit: common.limit,
limits: common.limits,
even: true,
cols: [[{
cols: [[
{type: 'checkbox'},{
field: 'machineRoomName', title: '机房', align: 'center',
}, {
field: 'manufacturerName', title: '工作单位', align: 'center', templet: function (d) {
if (d.manufacturerId == '0') {
field: 'manufacturerName', title: '工作单位', align: 'center',templet: function (d) {
if(d.manufacturerId == '0'){
return d.manufacturerOther;
} else {
}else {
return d.manufacturerName;
}
}
... ... @@ -152,18 +152,36 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
}
});
}
$("#staff-export-excel").on('click', function () {
var href = common.domainName + '/api-web/machineRoom/exportMachineRoomEnterRecords?accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000';
window.open(href)
})
//新增日报
$('#staff_create').on('click', function () {
openWorkReportForm()
})
//下载
$('#report_download').on('click', function (){
var data = table.checkStatus('table-staff-view').data;
var attachmentId = '0b92a0b2705f11edb49f005056aae0ca';
var ids = '';
if(data.length<=0){
layer.msg("请至少选择一条下载", { offset: '15px' , icon: 7 , time: 1500 });
}else if(data.length>=1){
var arr = [];
$.each(data,function (i,e) {
arr.push(e.id)
})
ids = arr.toString();
var url = domainName + `/api-web/machineRoom/downloadWordZipforStaff?accessToken=` + accessToken+"&ids="+ids+"&attachmentId="+ attachmentId;
window.open(url);
}
})
//新增/编辑表单
function openWorkReportForm(id) {
var title = id ? '编辑' : '新增'
common.openWin('machineroom/staffAdd', title, {id: id}, ['保存', '取消'], function f() {
$("#staff-form-save-id").trigger("click");
}, null, null, function done() {
reloadAllChange();
})
}
... ... @@ -173,7 +191,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
var title = '进入人员列表'
common.openWin('machineroom/staffList', title, {id: id})
common.openWin('machineroom/staffList', title, {id: id}, ['确定', '取消'])
}
// 加载查询条件下拉框
... ... @@ -185,6 +203,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
$.each(response.data, function (i, v) {
options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>"
});
options += "<option value='0'>其他</option>";
$('#slt-staff-group').html(options);
form.render();
});
... ... @@ -194,9 +213,9 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
// 各单位维修情况
function loadEnterStaffChart() {
var conditions = {};
Object.assign(conditions, {access_token: accessToken, createtime: createTime, viewMode: ''});
Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''});
admin.req({
url: domainName + '/api-room/machineRoom/findMachineRoomEnterRecordsForGroup',
url: domainName + '/api-web/machineRoom/findMachineRoomEnterRecordsForGroup',
data: conditions
}).done(function (response) {
var chartData = response.map;
... ... @@ -277,8 +296,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
axisLabel: {
color: '#333',
show: true,
interval: 0,
rotate: 15
interval:0,
rotate:15
},
axisLine: {
lineStyle: {
... ... @@ -329,4 +348,4 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
}
});
});
});
\ No newline at end of file
... ...