|
@@ -1,29 +1,39 @@
|
|
|
-layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'itemVarW', 'laydate'], function(exports) {
|
|
|
+layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'itemVarW', 'laydate', 'itemUtil'], function(exports) {
|
|
|
const layer = layui.layer
|
|
|
const form = layui.form
|
|
|
const table = layui.table
|
|
|
const util = layui.util
|
|
|
const sheetUtil = layui.sheetUtil
|
|
|
|
|
|
+ $(document).on('blur', '.item-val-line', function() {
|
|
|
+ if (!$(this).val()) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (layui.sheetTypew.templateReportType == 1) {
|
|
|
+ if (parseInt($(this).val()) > fn.data.dataSetting.count) {
|
|
|
+ $(this).val(fn.data.dataSetting.count)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
util.on({
|
|
|
'data-item-switch-btn': function() {
|
|
|
- const itemGroupId = $('select[name="data-item-group"]').val()
|
|
|
- if (!itemGroupId) {
|
|
|
- layer.msg('请选择数据组', {icon: 2})
|
|
|
+ const policyId = $('select[name="data-item-group"]').val()
|
|
|
+ if (!policyId) {
|
|
|
+ layer.msg('请选择策略组', {icon: 2})
|
|
|
return
|
|
|
}
|
|
|
- const itemGroupName = $('select[name="data-item-group"] option[value="'+ itemGroupId +'"]').text()
|
|
|
+ const policyName = $(`select[name="data-item-group"] option[value="${policyId}"]`).text()
|
|
|
layui.itemListw.open({
|
|
|
- itemGroupId,
|
|
|
+ policyId,
|
|
|
success: function(data, index) {
|
|
|
let itemList = data.map((item) => {
|
|
|
- const width = sheetUtil.getTextWidth('^.' + item.title + '.' + itemGroupName)
|
|
|
+ const width = sheetUtil.getTextWidth('^.' + item.title)
|
|
|
return {
|
|
|
uid: uuidv4(),
|
|
|
itemId: item.value,
|
|
|
itemName: item.title,
|
|
|
- itemGroupId,
|
|
|
- itemGroupName,
|
|
|
+ policyId,
|
|
|
+ policyName,
|
|
|
width,
|
|
|
tableId: fn.data.tableId
|
|
|
}
|
|
@@ -32,10 +42,6 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
table.reloadData('item-list-table', {
|
|
|
data: fn.data.itemList
|
|
|
})
|
|
|
- table.setRowChecked('item-list-table', {
|
|
|
- index: 'all',
|
|
|
- checked: true
|
|
|
- })
|
|
|
layer.close(index)
|
|
|
}
|
|
|
})
|
|
@@ -46,6 +52,12 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
return
|
|
|
}
|
|
|
val = parseInt(val) + 1
|
|
|
+ if (layui.sheetTypew.templateReportType == 1) {
|
|
|
+ if (val > fn.data.dataSetting.count) {
|
|
|
+ $(this).prev().val(fn.data.dataSetting.count)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
$(this).prev().val(val)
|
|
|
},
|
|
|
'item-table-num-cut': function() {
|
|
@@ -72,43 +84,25 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
})
|
|
|
},
|
|
|
'data-item-setting-btn': function() {
|
|
|
- const checkData = table.checkStatus('item-list-table')
|
|
|
- if (!checkData.data.length) {
|
|
|
+ if (!fn.data.itemList.length) {
|
|
|
layer.msg('请选择数据项!', {icon: 2})
|
|
|
return
|
|
|
}
|
|
|
layui.dataSettingw.open({
|
|
|
success: function(data, index) {
|
|
|
const type = layui.sheetTypew.templateReportType
|
|
|
- let arr = []
|
|
|
- if (!checkData.isAll) {
|
|
|
- arr = checkData.data.map(item => item.uid)
|
|
|
- }
|
|
|
- fn.data.itemList = fn.data.itemList.map((item) => {
|
|
|
- if (checkData.isAll || arr.includes(item.uid)) {
|
|
|
- let obj = {
|
|
|
- uid: item.uid,
|
|
|
- itemId: item.itemId,
|
|
|
- itemName: item.itemName,
|
|
|
- itemGroupId: item.itemGroupId,
|
|
|
- itemGroupName: item.itemGroupName,
|
|
|
- valueType: data.valueType,
|
|
|
- width: item.width,
|
|
|
- tableId: item.tableId
|
|
|
- }
|
|
|
- if (type == 1) {
|
|
|
- obj.valueTakingMode = data.valueTakingMode
|
|
|
- obj.bucketType = data.bucketType
|
|
|
- obj.bucketValue = data.bucketValue
|
|
|
- }
|
|
|
- return obj
|
|
|
- }
|
|
|
- return item
|
|
|
- })
|
|
|
+ fn.data.dataSetting = data
|
|
|
+
|
|
|
table.reloadData('item-list-table', {
|
|
|
data: fn.data.itemList
|
|
|
})
|
|
|
layer.msg('设置数据条件成功!', {icon: 1})
|
|
|
+ $('.item-val-line').val('1')
|
|
|
+ if (data.dataValueType == 0) {
|
|
|
+ $('.hand-valline').removeClass('layui-hide')
|
|
|
+ } else {
|
|
|
+ $('.hand-valline').addClass('layui-hide')
|
|
|
+ }
|
|
|
layer.close(index)
|
|
|
}
|
|
|
})
|
|
@@ -176,40 +170,7 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
})
|
|
|
|
|
|
table.on('tool(item-list-table)', function(obj) {
|
|
|
- if (obj.event == 'edit') {
|
|
|
- layui.dataSettingw.open({
|
|
|
- data: obj.data,
|
|
|
- success: function(data, index) {
|
|
|
- const type = layui.sheetTypew.templateReportType
|
|
|
- fn.data.itemList = fn.data.itemList.map((item) => {
|
|
|
- if (item.uid == obj.data.uid) {
|
|
|
- let obj = {
|
|
|
- uid: item.uid,
|
|
|
- itemId: item.itemId,
|
|
|
- itemName: item.itemName,
|
|
|
- itemGroupId: item.itemGroupId,
|
|
|
- itemGroupName: item.itemGroupName,
|
|
|
- valueType: data.valueType,
|
|
|
- width: item.width,
|
|
|
- tableId: item.tableId
|
|
|
- }
|
|
|
- if (type == 1) {
|
|
|
- obj.valueTakingMode = data.valueTakingMode
|
|
|
- obj.bucketType = data.bucketType
|
|
|
- obj.bucketValue = data.bucketValue
|
|
|
- }
|
|
|
- return obj
|
|
|
- }
|
|
|
- return item
|
|
|
- })
|
|
|
- table.reloadData('item-list-table', {
|
|
|
- data: fn.data.itemList
|
|
|
- })
|
|
|
- layer.msg('编辑数据条件成功!', {icon: 1})
|
|
|
- layer.close(index)
|
|
|
- }
|
|
|
- })
|
|
|
- } else if (obj.event == 'del') {
|
|
|
+ if (obj.event == 'del') {
|
|
|
layer.confirm('是否确认删除该数据项?', {
|
|
|
btn: ['确定', '取消']
|
|
|
}, function() {
|
|
@@ -222,23 +183,13 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
-
|
|
|
- form.on('select(data-item-group)', function(data) {
|
|
|
- const type = layui.sheetTypew.templateReportType
|
|
|
- if (type == 2) {
|
|
|
- if ($('#condition-txt').data('itemgroupid') != data.value) {
|
|
|
- layui.api.getTableItemGroupById(data.value).then(json => {
|
|
|
- const itemJson = json.itemList.filter(item => {
|
|
|
- return item.isDriverItem == 1
|
|
|
- })
|
|
|
- $('#condition-txt').html((itemJson[0].describe || itemJson[0].itemReadName) + ' ' + conditionTableItems[json.data.eventMode]
|
|
|
- + ' ' + json.data.modeValue)
|
|
|
- $('#condition-txt').parent().removeClass('layui-hide')
|
|
|
- })
|
|
|
- }
|
|
|
+ form.on('radio(dataValType)', function(data) {
|
|
|
+ if (data.elem.value == 1) {
|
|
|
+ $('.data-valLine').addClass('layui-hide')
|
|
|
+ } else {
|
|
|
+ $('.data-valLine').removeClass('layui-hide')
|
|
|
}
|
|
|
})
|
|
|
-
|
|
|
form.on('radio(variableType)', function(data) {
|
|
|
if (data.elem.value == 1) {
|
|
|
$('button[lay-on="itemvar-event-2"]').addClass('layui-hide')
|
|
@@ -286,7 +237,7 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
</div>
|
|
|
<div class="layui-form-item">
|
|
|
<div class="layui-inline ${fn.data.type == 'edit'? 'layui-hide' : ''}">
|
|
|
- <label class="layui-form-label" style="width: 60px;padding-left: 0;">数据组:</label>
|
|
|
+ <label class="layui-form-label" style="width: 60px;padding-left: 0;">策略组:</label>
|
|
|
<div class="layui-input-inline">
|
|
|
<select name="data-item-group" lay-filter="data-item-group">
|
|
|
<option value=""></option>
|
|
@@ -300,7 +251,6 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
</div>
|
|
|
</div>
|
|
|
</form>
|
|
|
- ${this.conditionView()}
|
|
|
<div id="item-list-table" lay-filter="item-list-table"></div>
|
|
|
<form lay-filter="item-list-form" class="layui-form ${fn.data.type == 'edit'? 'layui-hide' : ''}" action="" style="margin-top: 30px;">
|
|
|
${this.bottomContent()}
|
|
@@ -308,19 +258,6 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
</div>
|
|
|
`
|
|
|
},
|
|
|
- conditionView: function() {
|
|
|
- const type = layui.sheetTypew.templateReportType
|
|
|
- if (type == 2) {
|
|
|
- return `
|
|
|
- <div class="layui-hide" style="padding-bottom: 15px;">
|
|
|
- <span>条件:</span>
|
|
|
- <span id="condition-txt" style="color: #a5a5a5;"></span>
|
|
|
- </div>
|
|
|
- `
|
|
|
- } else {
|
|
|
- return ''
|
|
|
- }
|
|
|
- },
|
|
|
bottomContent: function() {
|
|
|
const type = layui.sheetTypew.templateReportType
|
|
|
if (type == 0 || type == 1) {
|
|
@@ -377,11 +314,11 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
<label class="layui-form-label" style="width: 130px;">时间范围:</label>
|
|
|
<div class="layui-inline" id="hand-elem-date">
|
|
|
<div class="layui-input-inline">
|
|
|
- <input readonly type="text" autocomplete="off" id="hand-start-date" class="layui-input" placeholder="开始时间">
|
|
|
+ <input readonly type="text" autocomplete="off" id="hand-start-date" name="startDate" class="layui-input" placeholder="开始时间">
|
|
|
</div>
|
|
|
<div class="layui-form-mid">-</div>
|
|
|
<div class="layui-input-inline">
|
|
|
- <input readonly type="text" autocomplete="off" id="hand-end-date" class="layui-input" placeholder="结束时间">
|
|
|
+ <input readonly type="text" autocomplete="off" id="hand-end-date" name="endDate" class="layui-input" placeholder="结束时间">
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -402,6 +339,11 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
<input type="radio" name="valType" value="1" title="横向" checked>
|
|
|
<input type="radio" name="valType" value="2" title="纵向">
|
|
|
</div>
|
|
|
+ <div class="layui-form-item">
|
|
|
+ <label class="layui-form-label" style="width: 130px;">是否显示标题:</label>
|
|
|
+ <input type="radio" name="isTitleShow" value="0" title="显示">
|
|
|
+ <input type="radio" name="isTitleShow" value="1" title="不显示" checked>
|
|
|
+ </div>
|
|
|
<div class="layui-form-item ${layui.sheetTypew.templateReportType == 1 ? '' : 'layui-hide'}">
|
|
|
<label class="layui-form-label" style="width: 130px;">是否显示数据时间:</label>
|
|
|
<input type="radio" name="isShowDataTime" value="0" title="显示" checked>
|
|
@@ -413,14 +355,16 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
`
|
|
|
if (layui.sheetTypew.templateReportType == 1) {
|
|
|
html += `
|
|
|
- <fieldset class="hand-valline layui-elem-field">
|
|
|
+ <fieldset class="hand-valline layui-elem-field layui-hide">
|
|
|
<legend>值显示数量</legend>
|
|
|
- <div class="layui-field-box">
|
|
|
- <div class="layui-input-group">
|
|
|
+ <div class="layui-field-box" style="display:flex;">
|
|
|
+ <input type="radio" name="dataValType" value="1" title="全部" lay-filter="dataValType" checked>
|
|
|
+ <input type="radio" name="dataValType" value="2" title="指定" lay-filter="dataValType" >
|
|
|
+ <div class="layui-input-group data-valLine layui-hide">
|
|
|
<div lay-on="item-table-num-cut" class="layui-input-split layui-input-prefix" style="cursor: pointer;">
|
|
|
<i class="layui-icon layui-icon-subtraction"></i>
|
|
|
</div>
|
|
|
- <input type="text" name="valLine" placeholder="数量" class="layui-input" value="1" oninput="value=value.replace(/[^\\d]/g,'')">
|
|
|
+ <input type="text" name="valLine" placeholder="数量" class="layui-input item-val-line" value="1" oninput="value=value.replace(/[^\\d]/g,'')">
|
|
|
<div lay-on="item-table-num-add" class="layui-input-split layui-input-suffix" style="cursor: pointer;">
|
|
|
<i class="layui-icon layui-icon-addition"></i>
|
|
|
</div>
|
|
@@ -462,73 +406,84 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
})
|
|
|
},
|
|
|
renderItemHandTable: function() {
|
|
|
- table.render({
|
|
|
- elem: '#item-list-table',
|
|
|
- height: 350,
|
|
|
- cols: [[
|
|
|
+ let cols = [
|
|
|
{type: 'checkbox'},
|
|
|
{type: 'numbers', title: '序号', align: 'center'},
|
|
|
- {field: 'itemGroupName', title: '数据组名称', align: 'center'},
|
|
|
+ {field: 'policyName', title: '策略组名称', align: 'center'},
|
|
|
{field: 'itemName', title: '数据项名称', align: 'center'},
|
|
|
{field: 'valueType', title: '取值类型', align: 'center', templet: function(d) {
|
|
|
- return d.valueType ? (d.valueType == 1 ? '原始值' : '计算值') : ''
|
|
|
+ return fn.data.dataSetting.valueType ? (fn.data.dataSetting.valueType == 1 ? '计算值' : '原始值') : ''
|
|
|
}},
|
|
|
- {title: '操作', width: 130, templet: function(d) {
|
|
|
- return `
|
|
|
- <span lay-event="edit" class="layui-font-blue" style="cursor: pointer;"><i class="layui-icon layui-icon-edit"></i>编辑</span>
|
|
|
- <span lay-event="del" class="layui-font-red ${fn.data.type == 'edit'? 'layui-hide' : ''}" style="cursor: pointer;"><i class="layui-icon layui-icon-delete"></i>删除</span>
|
|
|
- `
|
|
|
- }},
|
|
|
- ]],
|
|
|
+ ]
|
|
|
+ if (fn.data.type != 'edit') {
|
|
|
+ cols.push({title: '操作', width: 130, templet: function(d) {
|
|
|
+ return `
|
|
|
+ <span lay-event="del" class="layui-font-red " style="cursor: pointer;"><i class="layui-icon layui-icon-delete"></i>删除</span>
|
|
|
+ `
|
|
|
+ }})
|
|
|
+ }
|
|
|
+ table.render({
|
|
|
+ elem: '#item-list-table',
|
|
|
+ height: 350,
|
|
|
+ cols: [cols],
|
|
|
data: fn.data.itemList
|
|
|
})
|
|
|
},
|
|
|
renderItemAutoTable: function() {
|
|
|
+ let cols = [
|
|
|
+ {type: 'checkbox'},
|
|
|
+ {type: 'numbers', title: '序号', align: 'center'},
|
|
|
+ {field: 'policyName', title: '策略组名称', align: 'center'},
|
|
|
+ {field: 'itemName', title: '数据项名称', align: 'center'},
|
|
|
+ {field: 'valueType', title: '取值类型', align: 'center', templet: function(d) {
|
|
|
+ return fn.data.dataSetting.valueType ? (fn.data.dataSetting.valueType == 1 ? '计算值' : '原始值') : ''
|
|
|
+ }},
|
|
|
+ {field: 'valueTakingMode', title: '取值模式', align: 'center', templet: function(d) {
|
|
|
+ const valueTakingMode = fn.data.dataSetting.valueTakingMode
|
|
|
+ if (valueTakingMode == 1) {
|
|
|
+ return '平均值'
|
|
|
+ } else if (valueTakingMode == 2) {
|
|
|
+ return '最大值'
|
|
|
+ } else if (valueTakingMode == 3) {
|
|
|
+ return '最小值'
|
|
|
+ } else if (valueTakingMode == 4) {
|
|
|
+ return '瞬时值'
|
|
|
+ } else if (valueTakingMode == 5) {
|
|
|
+ return '求和'
|
|
|
+ } else if (valueTakingMode == 6) {
|
|
|
+ return '计数'
|
|
|
+ } else {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+ }},
|
|
|
+ {field: 'bucketType', title: '取值时间单位', align: 'center', templet: function(d) {
|
|
|
+ const bucketType = fn.data.dataSetting.bucketType
|
|
|
+ if (bucketType == 0) {
|
|
|
+ return '月'
|
|
|
+ } else if (bucketType == 1) {
|
|
|
+ return '天'
|
|
|
+ } else if (bucketType == 2) {
|
|
|
+ return '时'
|
|
|
+ } else if (bucketType == 3) {
|
|
|
+ return '分'
|
|
|
+ } else if (bucketType == 4) {
|
|
|
+ return '秒'
|
|
|
+ } else {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+ }},
|
|
|
+ ]
|
|
|
+ if (fn.data.type != 'edit') {
|
|
|
+ cols.push({title: '操作', width: 130, templet: function(d) {
|
|
|
+ return `
|
|
|
+ <span lay-event="del" class="layui-font-red" style="cursor: pointer;"><i class="layui-icon layui-icon-delete"></i>删除</span>
|
|
|
+ `
|
|
|
+ }})
|
|
|
+ }
|
|
|
table.render({
|
|
|
elem: '#item-list-table',
|
|
|
height: 350,
|
|
|
- cols: [[
|
|
|
- {type: 'checkbox'},
|
|
|
- {type: 'numbers', title: '序号', align: 'center'},
|
|
|
- {field: 'itemGroupName', title: '数据组名称', align: 'center'},
|
|
|
- {field: 'itemName', title: '数据项名称', align: 'center'},
|
|
|
- {field: 'valueType', title: '取值类型', align: 'center', templet: function(d) {
|
|
|
- return d.valueType ? (d.valueType == 1 ? '原始值' : '计算值') : ''
|
|
|
- }},
|
|
|
- {field: 'valueTakingMode', title: '取值模式', align: 'center', templet: function(d) {
|
|
|
- if (d.valueTakingMode == 1) {
|
|
|
- return '平均值'
|
|
|
- } else if (d.valueTakingMode == 2) {
|
|
|
- return '最大值'
|
|
|
- } else if (d.valueTakingMode == 3) {
|
|
|
- return '最小值'
|
|
|
- } else if (d.valueTakingMode == 4) {
|
|
|
- return '瞬时值'
|
|
|
- } else {
|
|
|
- return ''
|
|
|
- }
|
|
|
- }},
|
|
|
- {field: 'bucketType', title: '取值时间单位', align: 'center', templet: function(d) {
|
|
|
- if (d.bucketType == 1) {
|
|
|
- return '天'
|
|
|
- } else if (d.bucketType == 2) {
|
|
|
- return '时'
|
|
|
- } else if (d.bucketType == 3) {
|
|
|
- return '分'
|
|
|
- } else if (d.bucketType == 4) {
|
|
|
- return '秒'
|
|
|
- } else {
|
|
|
- return ''
|
|
|
- }
|
|
|
- }},
|
|
|
- {field: 'bucketValue', title: '数据切换周期', align: 'center'},
|
|
|
- {title: '操作', width: 130, templet: function(d) {
|
|
|
- return `
|
|
|
- <span lay-event="edit" class="layui-font-blue" style="cursor: pointer;"><i class="layui-icon layui-icon-edit"></i>编辑</span>
|
|
|
- <span lay-event="del" class="layui-font-red ${fn.data.type == 'edit'? 'layui-hide' : ''}" style="cursor: pointer;"><i class="layui-icon layui-icon-delete"></i>删除</span>
|
|
|
- `
|
|
|
- }},
|
|
|
- ]],
|
|
|
+ cols: [cols],
|
|
|
data: fn.data.itemList
|
|
|
})
|
|
|
}
|
|
@@ -537,12 +492,14 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
const fn = {
|
|
|
data: {
|
|
|
itemList: [],
|
|
|
+ dataSetting: {},
|
|
|
tableId: ''
|
|
|
},
|
|
|
open: function(params) {
|
|
|
const _this = this
|
|
|
_this.data.type = params.type
|
|
|
_this.data.itemList = params.type == 'edit' ? params.data : []
|
|
|
+ _this.data.dataSetting = params.type == 'edit' ? params.dataSetting : {}
|
|
|
layer.open({
|
|
|
type: 1,
|
|
|
title: ['数据项配置', 'text-align: center;padding-left: 81px;'],
|
|
@@ -563,10 +520,7 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
layer.msg('请选择数据项!', {icon: 2})
|
|
|
return
|
|
|
}
|
|
|
- const arr = _this.data.itemList.filter(item => {
|
|
|
- return !item.valueType
|
|
|
- })
|
|
|
- if (arr.length) {
|
|
|
+ if (_this.data.dataSetting.valueType == null) {
|
|
|
layer.msg('请设置数据条件!', {icon: 2})
|
|
|
return
|
|
|
}
|
|
@@ -574,21 +528,72 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
event.updateCell(_this.data.itemList, index)
|
|
|
} else {
|
|
|
const type = layui.sheetTypew.templateReportType
|
|
|
- if (type == 5) {
|
|
|
- if (!$('#itemvar-name-1').attr('data-itemid') || !$('#itemvar-name-2').attr('data-itemid')
|
|
|
+ const itemForm = form.val('item-list-form')
|
|
|
+ if (type == 0) {
|
|
|
+ let dataSetting = _this.data.dataSetting
|
|
|
+ if (itemForm.isDataType == 2) {
|
|
|
+ if (!itemForm.startDate || !itemForm.endDate) {
|
|
|
+ layer.msg('请选择时间范围!', {icon: 2})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const ids = _this.data.itemList.map(item => item.itemId)
|
|
|
+ let params = {
|
|
|
+ idList: JSON.stringify(ids),
|
|
|
+ valueType: parseInt(dataSetting.valueType),
|
|
|
+ startTime: itemForm.startDate,
|
|
|
+ endTime: itemForm.endDate
|
|
|
+ }
|
|
|
+ if (itemForm.isDataNumber == 2) {
|
|
|
+ params.limit = itemForm.isDataNumberVal
|
|
|
+ }
|
|
|
+ layui.api.getPolicyHistoryDataByItemIdList(params).then(json => {
|
|
|
+ layui.itemUtil.manualReport(_this.data.itemList, json.data, itemForm, function() {
|
|
|
+ layer.close(index)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ itemForm.isShowDataTime = 1
|
|
|
+ dataSetting.dataValueType = 1
|
|
|
+ layui.itemUtil.periodicReport(_this.data.itemList, itemForm, dataSetting, _this.data.tableId, function() {
|
|
|
+ layer.close(index)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else if (type == 1) {
|
|
|
+ layui.itemUtil.periodicReport(_this.data.itemList, itemForm, _this.data.dataSetting, _this.data.tableId, function() {
|
|
|
+ layer.close(index)
|
|
|
+ })
|
|
|
+ } else if (type == 2) {
|
|
|
+ layui.itemUtil.periodicReport(_this.data.itemList, {
|
|
|
+ dataValType: 0,
|
|
|
+ valLine: layui.sheetTypew.templateEventReportNum,
|
|
|
+ isShowDataTime: 0,
|
|
|
+ isTitleShow: 0,
|
|
|
+ valType: 1
|
|
|
+ }, {
|
|
|
+ dataValueType: 0,
|
|
|
+ valueType: _this.data.dataSetting.valueType
|
|
|
+ }, _this.data.tableId, function() {
|
|
|
+ layer.close(index)
|
|
|
+ })
|
|
|
+ } else if (type == 5) {
|
|
|
+ if (!$('#itemvar-name-1').attr('data-itemid') || !$('#itemvar-name-2').attr('data-itemid')
|
|
|
|| sheetUtil.isBlank($('#itemvar-input-1').val()) || sheetUtil.isBlank($('#itemvar-input-2').val())) {
|
|
|
layer.msg('请设置设备报表条件!', {icon: 2})
|
|
|
return
|
|
|
}
|
|
|
- }
|
|
|
- const itemForm = form.val('item-list-form')
|
|
|
- if (type == 0 && itemForm.isDataType == 2) {
|
|
|
- if (!itemForm.startDate || !itemForm.endDate) {
|
|
|
- layer.msg('请选择时间范围!', {icon: 2})
|
|
|
- return
|
|
|
- }
|
|
|
- } else {
|
|
|
- event.insertCell(_this.data.itemList, index)
|
|
|
+ layui.itemUtil.deviceReport(_this.data.itemList, {
|
|
|
+ valLine: layui.sheetTypew.templateEventReportNum,
|
|
|
+ isGenCountTime: $('input[type="radio"][name="isGenCountTime"]:checked').val(),
|
|
|
+ }, {
|
|
|
+ var1: $('#itemvar-name-1').attr('data-itemid'),
|
|
|
+ var2: $('#itemvar-name-2').attr('data-itemid'),
|
|
|
+ ipt1: $('#itemvar-input-1').val(),
|
|
|
+ ipt2: $('#itemvar-input-2').val(),
|
|
|
+ isGenCountTime: $('input[type="radio"][name="isGenCountTime"]:checked').val(),
|
|
|
+ valueType: _this.data.dataSetting.valueType
|
|
|
+ }, _this.data.tableId, function() {
|
|
|
+ layer.close(index)
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -597,282 +602,18 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
}
|
|
|
|
|
|
const event = {
|
|
|
- insertCell: function(data, index) {
|
|
|
- const _this = this
|
|
|
- verify.cycle(data, {
|
|
|
- suc: function(json) {
|
|
|
- _this.insertData(data, {
|
|
|
- sr: json.sr,
|
|
|
- sc: json.sc,
|
|
|
- tr: json.tr,
|
|
|
- tc: json.tc
|
|
|
- })
|
|
|
- layer.close(index)
|
|
|
- },
|
|
|
- err: function(params) {
|
|
|
- layer.confirm('检测到新增区域含有有值单元格,请选择以下操作', {
|
|
|
- btn: ['覆盖新增', '不覆盖新增', '取消']
|
|
|
- }, function(idx) {
|
|
|
- _this.insertData(data, {
|
|
|
- sr: params.position.sr,
|
|
|
- sc: params.position.sc,
|
|
|
- tr: params.position.tr,
|
|
|
- tc: params.position.tc
|
|
|
- })
|
|
|
- layer.close(idx)
|
|
|
- layer.close(index)
|
|
|
- }, function(idx) {
|
|
|
- if (params.row) {
|
|
|
- luckysheet.insertRow(params.row.row - 1, {
|
|
|
- number: params.row.er - params.row.row + 1
|
|
|
- })
|
|
|
- }
|
|
|
- if (params.column) {
|
|
|
- luckysheet.insertColumn(params.column.column - 1, {
|
|
|
- number: params.column.ec - params.column.column + 1
|
|
|
- })
|
|
|
- }
|
|
|
- _this.insertData(data, {
|
|
|
- sr: params.position.sr,
|
|
|
- sc: params.position.sc,
|
|
|
- tr: params.position.tr,
|
|
|
- tc: params.position.tc
|
|
|
- })
|
|
|
- layer.close(idx)
|
|
|
- layer.close(index)
|
|
|
- });
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- insertData: function(data, params) {
|
|
|
- const type = layui.sheetTypew.templateReportType
|
|
|
- if (type == 0) {
|
|
|
- let itemForm = form.val('item-list-form')
|
|
|
- itemForm.valLine = 1
|
|
|
- this.insertCellData(data, params, itemForm, type)
|
|
|
- } else if (type == 1) {
|
|
|
- let itemForm = form.val('item-list-form')
|
|
|
- if (itemForm.isShowDataTime != 1 && itemForm.valType == 1) {
|
|
|
- itemForm.valLine = parseInt(itemForm.valLine) + 1
|
|
|
- }
|
|
|
- this.insertCellData(data, params, itemForm, type)
|
|
|
- } else if (type == 2 || type == 5) {
|
|
|
- const num = parseInt(layui.sheetTypew.templateEventReportNum)
|
|
|
- this.insertCellData(data, params, {valType: 1, valLine: num + 1}, type)
|
|
|
- }
|
|
|
- },
|
|
|
- insertCellData: function(data, params, itemForm, type) {
|
|
|
- let itemVarObj = {}
|
|
|
- if (type == 5) {
|
|
|
- itemVarObj = {
|
|
|
- var1: $('#itemvar-name-1').attr('data-itemid'),
|
|
|
- var2: $('#itemvar-name-2').attr('data-itemid'),
|
|
|
- ipt1: $('#itemvar-input-1').val(),
|
|
|
- ipt2: $('#itemvar-input-2').val(),
|
|
|
- isGenCountTime: $('input[type="radio"][name="isGenCountTime"]:checked').val(),
|
|
|
- tableId: fn.data.tableId,
|
|
|
- type: 'index'
|
|
|
- }
|
|
|
- }
|
|
|
- const valLine = parseInt(itemForm.valLine)
|
|
|
- let arr = []
|
|
|
- let widthArr = {}
|
|
|
- if (itemForm.valType == 1) {
|
|
|
- // 横向
|
|
|
- for (let i = 0; i < valLine; i++) {
|
|
|
- let row = []
|
|
|
- if ((type == 1 && itemForm.isShowDataTime != 1) || type == 2) {
|
|
|
- row.push({
|
|
|
- m: i == 0 ? '数据时间' : '^.datatime',
|
|
|
- v: i == 0 ? '数据时间' : JSON.stringify({
|
|
|
- tableId: fn.data.tableId,
|
|
|
- type: 'datatime'
|
|
|
- }),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- } else if (type == 5) {
|
|
|
- row.push({
|
|
|
- m: i == 0 ? '序号' : '^.index',
|
|
|
- v: i == 0 ? '序号' : JSON.stringify(itemVarObj),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- row.push({
|
|
|
- m: i == 0 ? '开始时间' : '^.starttime',
|
|
|
- v: i == 0 ? '开始时间' : JSON.stringify({
|
|
|
- tableId: fn.data.tableId,
|
|
|
- type: 'starttime'
|
|
|
- }),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- row.push({
|
|
|
- m: i == 0 ? '停止时间' : '^.stoptime',
|
|
|
- v: i == 0 ? '停止时间' : JSON.stringify({
|
|
|
- tableId: fn.data.tableId,
|
|
|
- type: 'stoptime'
|
|
|
- }),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- if ($('input[type="radio"][name="isGenCountTime"]:checked').val() == 1) {
|
|
|
- row.push({
|
|
|
- m: i == 0 ? '运行时间(分钟)' : '^.runtime',
|
|
|
- v: i == 0 ? '运行时间(分钟)' : JSON.stringify({
|
|
|
- tableId: fn.data.tableId,
|
|
|
- type: 'runtime'
|
|
|
- }),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- for (let j = 0; j < data.length; j++) {
|
|
|
- if ((type == 1 && itemForm.isShowDataTime != 1) || type == 2 || type == 5) {
|
|
|
- row.push({
|
|
|
- m: (i == 0 ? '@' : '^.') + data[j].itemGroupName + '.' + data[j].itemName,
|
|
|
- v: i == 0 ? ('@' + data[j].itemGroupName + '.' + data[j].itemName) : JSON.stringify(data[j]),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- } else {
|
|
|
- row.push({
|
|
|
- m: '^.' + data[j].itemGroupName + '.' + data[j].itemName,
|
|
|
- v: JSON.stringify(data[j]),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- }
|
|
|
- if (i == 0) {
|
|
|
- let num = 0
|
|
|
- if ((type == 1 && itemForm.isShowDataTime != 1) || type == 2) {
|
|
|
- num = 1
|
|
|
- } else {
|
|
|
- if (type == 5) {
|
|
|
- num = $('input[type="radio"][name="isGenCountTime"]:checked').val() == 1 ? 4 : 3
|
|
|
- }
|
|
|
- }
|
|
|
- widthArr[params.sc + j + num] = data[j].width
|
|
|
- }
|
|
|
- }
|
|
|
- arr.push(row)
|
|
|
- }
|
|
|
- luckysheet.setColumnWidth(widthArr)
|
|
|
- } else {
|
|
|
- let width = 0
|
|
|
- let headerRow = []
|
|
|
- for (let i = 0; i < data.length; i++) {
|
|
|
- if (data[i].width > width) {
|
|
|
- width = data[i].width
|
|
|
- }
|
|
|
- let row = []
|
|
|
- if (type == 1 && itemForm.isShowDataTime != 1) {
|
|
|
- if (i == 0) {
|
|
|
- headerRow.push({
|
|
|
- m: '数据时间',
|
|
|
- v: '数据时间',
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- }
|
|
|
- row.push({
|
|
|
- m: '@' + data[i].itemGroupName + '.' + data[i].itemName,
|
|
|
- v: '@' + data[i].itemGroupName + '.' + data[i].itemName,
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
-
|
|
|
- }
|
|
|
- for (let j = 0; j < valLine; j++) {
|
|
|
- if (i == 0 && type == 1 && itemForm.isShowDataTime != 1) {
|
|
|
- headerRow.push({
|
|
|
- m: '^.datatime',
|
|
|
- v: JSON.stringify({
|
|
|
- tableId: fn.data.tableId,
|
|
|
- type: 'datatime'
|
|
|
- }),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- }
|
|
|
- row.push({
|
|
|
- m: '^.' + data[i].itemGroupName + '.' + data[i].itemName,
|
|
|
- v: JSON.stringify(data[i]),
|
|
|
- ff: 1,
|
|
|
- ht: 0
|
|
|
- })
|
|
|
- }
|
|
|
- if (type == 1 && itemForm.isShowDataTime != 1 && i == 0) {
|
|
|
- arr.push(headerRow)
|
|
|
- }
|
|
|
- arr.push(row)
|
|
|
- }
|
|
|
- for (let j = 0; j < valLine; j++) {
|
|
|
- widthArr[params.sc + j] = width
|
|
|
- }
|
|
|
- if (type == 1 && itemForm.isShowDataTime != 1) {
|
|
|
- widthArr[params.sc + valLine] = width
|
|
|
- }
|
|
|
- }
|
|
|
- let er = params.sr + (itemForm.valType == 1 ? valLine : data.length)
|
|
|
- let ec = params.sc + (itemForm.valType == 1 ? data.length : valLine)
|
|
|
- if (type == 1) {
|
|
|
- const num = itemForm.isShowDataTime == 1 ? 0 : 1
|
|
|
- ec += num
|
|
|
- if (itemForm.valType != 1) {
|
|
|
- er += num
|
|
|
- }
|
|
|
- }else if (type == 2) {
|
|
|
- ec += 1
|
|
|
- } else if (type == 5) {
|
|
|
- ec += $('input[type="radio"][name="isGenCountTime"]:checked').val() == 1 ? 4 : 3
|
|
|
- }
|
|
|
- if (er > params.tr) {
|
|
|
- let num = er - params.tr + 20
|
|
|
- while(num > 100) {
|
|
|
- luckysheet.insertRow(params.sr, {
|
|
|
- number: 100
|
|
|
- })
|
|
|
- num = num - 100
|
|
|
- }
|
|
|
- luckysheet.insertRow(params.sr, {
|
|
|
- number: num
|
|
|
- })
|
|
|
- }
|
|
|
- if (ec > params.tc) {
|
|
|
- let num = ec - params.tc + 20
|
|
|
- while(num > 100) {
|
|
|
- luckysheet.insertColumn(params.sc, {
|
|
|
- number: 100
|
|
|
- })
|
|
|
- num = num - 100
|
|
|
- }
|
|
|
- luckysheet.insertColumn(params.sc, {
|
|
|
- number: num
|
|
|
- })
|
|
|
- }
|
|
|
- setTimeout(() => {
|
|
|
- luckysheet.setColumnWidth(widthArr)
|
|
|
- luckysheet.setRangeValue(arr, {range: {
|
|
|
- row: [params.sr, er - 1],
|
|
|
- column: [params.sc, ec - 1],
|
|
|
- }})
|
|
|
- }, 100)
|
|
|
- },
|
|
|
+
|
|
|
updateCell: function(data, index) {
|
|
|
- let obj = {}
|
|
|
- for (let i = 0; i < data.length; i++) {
|
|
|
- obj[data[i].uid] = data[i]
|
|
|
- }
|
|
|
const sheetData = luckysheet.getSheetData(0)
|
|
|
const nData = sheetData.map(arr => {
|
|
|
return arr.map(item => {
|
|
|
if (item && item.v) {
|
|
|
try {
|
|
|
const cell = JSON.parse(item.v) || {}
|
|
|
- if (cell && cell.uid && obj[cell.uid]) {
|
|
|
- item.v = JSON.stringify(obj[cell.uid])
|
|
|
+ if (cell && cell.type == 'data') {
|
|
|
+ cell.setting.valueTakingMode = fn.data.dataSetting.valueTakingMode
|
|
|
+ cell.setting.valueType = fn.data.dataSetting.valueType
|
|
|
+ item.v = JSON.stringify(cell)
|
|
|
}
|
|
|
} catch(e) {
|
|
|
}
|
|
@@ -896,121 +637,6 @@ layui.define(['layer', 'form', 'table', 'util', 'dataSettingw', 'sheetUtil', 'it
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- const verify = {
|
|
|
- cycle: function(data, params) {
|
|
|
- const type = layui.sheetTypew.templateReportType
|
|
|
- const range = luckysheet.getRange()
|
|
|
- if (type == 0) {
|
|
|
- const itemForm = form.val('item-list-form')
|
|
|
- const endRow = parseInt(itemForm.valType == 1 ? 1 : data.length) + (range[0].row)[0] - 1
|
|
|
- const endColumn = parseInt(itemForm.valType == 1 ? data.length : 1) + (range[0].column)[0] - 1
|
|
|
- this.cycleSheet(data, params, endRow, endColumn)
|
|
|
- } else if (type == 1) {
|
|
|
- const itemForm = form.val('item-list-form')
|
|
|
- const num = itemForm.isShowDataTime == 1 ? 0 : 1
|
|
|
- const endRow = parseInt(itemForm.valType == 1 ? itemForm.valLine : data.length) + (range[0].row)[0] - 1 + num
|
|
|
- const endColumn = parseInt(itemForm.valType == 1 ? data.length : itemForm.valLine) + (range[0].column)[0] - 1 + num
|
|
|
- this.cycleSheet(data, params, endRow, endColumn)
|
|
|
- } else if (type == 2) {
|
|
|
- this.cycleSheet(data, params, parseInt(layui.sheetTypew.templateEventReportNum) + (range[0].row)[0], data.length + (range[0].column)[0])
|
|
|
- } else if (type == 5) {
|
|
|
- const num = $('input[type="radio"][name="isGenCountTime"]:checked').val() == 1 ? 3 : 2
|
|
|
- this.cycleSheet(data, params, parseInt(layui.sheetTypew.templateEventReportNum) + (range[0].row)[0], data.length + (range[0].column)[0] + num)
|
|
|
- }
|
|
|
- },
|
|
|
- cycleSheet: function(data, params, endRow, endColumn) {
|
|
|
- // 验证周期报表
|
|
|
- const range = luckysheet.getRange()
|
|
|
-
|
|
|
- const arr = luckysheet.getSheetData(0)
|
|
|
- for (let i = (range[0].row)[0]; i < arr.length; i++) {
|
|
|
- if (i > endRow || i == arr.length - 1) {
|
|
|
- params.suc({
|
|
|
- sr: (range[0].row)[0],
|
|
|
- sc: (range[0].column)[0],
|
|
|
- tr: arr.length,
|
|
|
- tc: arr[0].length
|
|
|
- })
|
|
|
- break
|
|
|
- }
|
|
|
- for (let j = (range[0].column)[0]; j < arr[i].length; j++) {
|
|
|
- if (j > endColumn) {
|
|
|
- break
|
|
|
- }
|
|
|
- if (!arr[i][j]) {
|
|
|
- continue
|
|
|
- }
|
|
|
- if (arr[i][j].v && arr[i][j].m) {
|
|
|
- this.cycleSheetRow(arr, {
|
|
|
- row: i,
|
|
|
- column: j,
|
|
|
- er: endRow,
|
|
|
- ec: endColumn,
|
|
|
- sr: (range[0].row)[0],
|
|
|
- sc: (range[0].column)[0],
|
|
|
- tr: arr.length,
|
|
|
- tc: arr[0].length,
|
|
|
- callback: params.err
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- cycleSheetRow: function(arr, params) {
|
|
|
- for (let i = params.row + 1; i < arr.length; i++) {
|
|
|
- if (i > params.er) {
|
|
|
- // 插入列
|
|
|
- params.callback({
|
|
|
- column: {
|
|
|
- row: params.row,
|
|
|
- column: params.column,
|
|
|
- er: params.er,
|
|
|
- ec: params.ec
|
|
|
- },
|
|
|
- position: {
|
|
|
- sr: params.sr,
|
|
|
- sc: params.sc,
|
|
|
- tr: params.tr,
|
|
|
- tc: params.tc
|
|
|
- }
|
|
|
- })
|
|
|
- break
|
|
|
- }
|
|
|
- for (let j = params.sc; j < arr[i].length; j++) {
|
|
|
- if (j > params.column) {
|
|
|
- break
|
|
|
- }
|
|
|
- if (!arr[i][j]) {
|
|
|
- continue
|
|
|
- }
|
|
|
- if (arr[i][j].v && arr[i][j].m) {
|
|
|
- params.callback({
|
|
|
- column: {
|
|
|
- row: params.row,
|
|
|
- column: params.column,
|
|
|
- er: params.er,
|
|
|
- ec: params.ec
|
|
|
- },
|
|
|
- row: {
|
|
|
- row: i,
|
|
|
- column: j,
|
|
|
- er: params.er,
|
|
|
- ec: params.ec
|
|
|
- },
|
|
|
- position: {
|
|
|
- sr: params.sr,
|
|
|
- sc: params.sc,
|
|
|
- tr: params.tr,
|
|
|
- tc: params.tc
|
|
|
- }
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
exports('itemListTable', fn);
|
|
|
});
|