wlcb-system-house/src/main/resources/templates/building/update.html

656 lines
32 KiB
HTML
Raw Normal View History

2021-09-29 15:13:30 +08:00
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<base th:href="${#request.getContextPath() + '/'}">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
<a class="close" href="javascript:void(0);">上级列表</a><span lay-separator="">/</span>
<a href="javascript:void(0);"><cite>编辑内容</cite></a>
</span>
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-form-item">
<label class="layui-form-label">小区</label>
<input type="hidden" id="residentialName" name="residentialName" class="layui-input" value="" placeholder="请输入小区名称" maxlength="36">
<div class="layui-input-block layui-form" id="residentialNameSelectTemplateBox" lay-filter="residentialNameSelectTemplateBox"></div>
<script id="residentialNameSelectTemplate" type="text/html">
<select id="residentialId" name="residentialId" lay-filter="residentialId">
<option value="">请选择小区</option>
{{# for(var i = 0, item; item = d[i++];) { }}
<option value="{{item.residentialId}}">{{item.residentialName}}</option>
{{# } }}
</select>
</script>
</div>
<div class="layui-form-item layui-row">
<div class="layui-col-lg3">
<label class="layui-form-label">楼栋编号</label>
<div class="layui-input-block">
<input type="text" id="buildingNum" name="buildingNum" class="layui-input" value="" placeholder="请输入楼栋编号" maxlength="255">
</div>
</div>
<div class="layui-col-lg3">
<label class="layui-form-label">楼宇类型</label>
<div class="layui-input-block">
<select name="buildingType" id="buildingType" lay-filter="buildingType">
<option value="">请选择楼宇类型</option>
<option value="住宅">住宅</option>
<option value="公寓">公寓</option>
<option value="办公楼">办公楼</option>
</select>
</div>
</div>
<div class="layui-col-lg3 layui-form-pane">
<label class="layui-form-label">每单元层数</label>
<div class="layui-input-block">
<input type="radio" name="floorCountForUnit" lay-filter="floorCountForUnit" value="相同" title="相同" checked>
<input type="radio" name="floorCountForUnit" lay-filter="floorCountForUnit" value="不相同" title="不相同">
</div>
</div>
<div class="layui-col-lg3" pane>
<label class="layui-form-label">每层户数</label>
<div class="layui-input-block">
<input type="radio" name="houseCountForFloor" lay-filter="houseCountForFloor" value="相同" title="相同" checked>
<input type="radio" name="houseCountForFloor" lay-filter="houseCountForFloor" value="不相同" title="不相同">
</div>
</div>
</div>
<div class="layui-form-item" id="unitCountDiv">
<label class="layui-form-label">单元数</label>
<div class="layui-input-block">
<input type="number" id="unitCount" name="unitCount" class="layui-input" value="" placeholder="请输入单元数" lay-verify="required">
</div>
</div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;margin-bottom: 20px;display: none;" id="start">
<legend>单元楼层</legend>
</fieldset>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;display: none;" id="end">
<legend>单元楼层</legend>
</fieldset>
<div class="layui-form-item layui-row" id="floorDiv">
<div class="layui-col-lg4" id="floorCountDiv">
<label class="layui-form-label">楼层数</label>
<div class="layui-input-block">
<input type="number" id="floorCount" name="floorCount" class="layui-input" value="" placeholder="请输入楼层数">
</div>
</div>
<div class="layui-col-lg4" id="houseCountDiv">
<label class="layui-form-label">每层户数</label>
<div class="layui-input-block">
<input type="number" id="houseCount" name="houseCount" class="layui-input" value="" placeholder="请输入每层户数">
</div>
</div>
<div class="layui-col-lg4" id="elevatorDiv">
<label class="layui-form-label">电梯数</label>
<div class="layui-input-block">
<input type="number" id="elevator" name="elevator" class="layui-input" value="" placeholder="请输入电梯数">
</div>
</div>
</div>
<div class="layui-form" id="floorTableDiv" style="display: none;">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>每层户数</legend>
</fieldset>
<table class="layui-table">
<colgroup>
<col width="150">
<col>
</colgroup>
<thead>
<tr>
<th>楼层</th>
<th>户数</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<div id="remake"></div>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;">
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交新增</button>
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/js/vendor/wangEditor/wangEditor.min.js"></script>
<script src="assets/js/vendor/ckplayer/ckplayer/ckplayer.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var buildingId = top.restAjax.params(window.location.href).buildingId;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
var houseCountArr = [];
var floorCountArr = [];
var unitCountArr = [];
// 初始化小区名称下拉选择
function initResidentialNameSelect(selectValue) {
top.restAjax.get(top.restAjax.path('api/residential/list', []), {}, null, function(code, data, args) {
laytpl(document.getElementById('residentialNameSelectTemplate').innerHTML).render(data, function(html) {
document.getElementById('residentialNameSelectTemplateBox').innerHTML = html;
});
form.render('select', 'residentialNameSelectTemplateBox');
var selectObj = {};
selectObj['residentialId'] = selectValue;
form.val('dataForm', selectObj);
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
// 小区名称change事件
form.on('select(residentialId)', function(data){
if(data.value) {
$('#residentialName').val($("#residentialId").find("option:selected").text())
}else {
$('#residentialName').val('');
}
});
$("#unitCount").blur(function(){
var floorCountForUnit = $('input[name="floorCountForUnit"]:checked').val();
var houseCountForFloor = $('input[name="houseCountForFloor"]:checked').val();
if('相同' == floorCountForUnit) {
if('相同' == houseCountForFloor) {
// 每单元层数相同,每层户数相同,视为标准建筑,直接生成数据即可
}else {
// 每单元层数相同,每层户数不相同,按照每层生成房屋
$('#floorCountDiv').addClass("layui-col-lg6").removeClass("layui-col-lg4");
$('#elevatorDiv').addClass("layui-col-lg6").removeClass("layui-col-lg4");
$('#houseCountDiv').hide();
creatFloor();
}
}else {
if('相同' == houseCountForFloor) {
// 每单元层数不相同,每层户数相同,按照每单元生成数据
$('#floorCountDiv').hide();
$('#elevatorDiv').addClass("layui-col-lg6").removeClass("layui-col-lg4");
$('#houseCountDiv').addClass("layui-col-lg6").removeClass("layui-col-lg4");
creatUnit();
}else {
// 每单元层数不相同,每层户数也不相同,则按照每单元每层的方式生成数据
creatUnitAndFloor();
}
}
})
// 根据楼层生成数据
function creatFloor() {
$("#floorCount").blur(function() {
var floorCount = $('#floorCount').val();
if (null != floorCount && '' != floorCount && 'undefined' != typeof (floorCount)) {
if (floorCount < 1) {
top.dialog.msg('楼层数不能小于1');
$('#floorTableDiv').hide();
return false;
}
$('#floorTableDiv').show();
$('#floorTableDiv').find('table').children('tbody').empty();
for (var i = 0; i < floorCount; i++) {
var html =
'<tr>' +
'<td>' + (i + 1) + '楼户数</td>' +
'<td><input type="number" id="houseCount_' + (i + 1) + '" name="houseCount_' + (i + 1) + '" class="layui-input" value="" placeholder="请输入' + (i + 1) + '层户数" lay-verify="required"></td>' +
'</tr>';
$('#floorTableDiv').find('table').children('tbody').append(html);
}
} else {
top.dialog.msg('请输入楼层数');
return false;
}
})
}
// 根据单元生成数据
function creatUnit() {
var unitCount = $('#unitCount').val();
if(null != unitCount && '' != unitCount && 'undefined' != typeof(unitCount)) {
if(unitCount < 1) {
$('#start').hide();
$('#end').hide();
top.dialog.msg('单元数最少为一个单元');
return false;
}
$('#start').show();
$('#end').show();
$('#start').empty();
for(var i = 0;i < unitCount;i++) {
var html =
'<div class="layui-form">' +
'<label class="layui-form-label">' + (i+1) + '单元楼层数</label>' +
'<div class="layui-input-block">' +
'<input type="number" id="floorCount_'+ (i+1) +'" name="floorCount_'+ (i+1) +'" class="layui-input floorClass" value="" placeholder="请输入' + (i+1) + '单元楼层数" lay-verify="required">' +
'</div>' +
'</div>';
$('#start').append(html);
}
}else {
$('#start').hide();
$('#end').hide();
}
}
function creatUnitAndFloor() {
var unitCount = $('#unitCount').val();
if(null != unitCount && '' != unitCount && 'undefined' != typeof(unitCount)) {
if(unitCount < 1) {
$('#start').hide();
$('#end').hide();
top.dialog.msg('单元数最少为一个单元');
return false;
}
$('#start').show();
$('#end').show();
$('#start').empty();
for(var i = 0;i < unitCount;i++) {
var html =
'<div class="layui-form">' +
'<label class="layui-form-label">' + (i+1) + '单元楼层数</label>' +
'<div class="layui-input-block">' +
'<input type="number" id="floorCount_'+ (i+1) +'" name="floorCount_'+ (i+1) +'" class="layui-input floorClass" value="" placeholder="请输入' + (i+1) + '单元楼层数" lay-verify="required">' +
'</div>' +
'<table class="layui-table" style="display: none;">' +
'<colgroup>' +
'<col width="150">' +
'<col>' +
'</colgroup>' +
'<thead>' +
'<tr>' +
'<th>楼层</th>' +
'<th>户数</th>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'</tbody>' +
'</table>' +
'</div>';
$('#start').append(html);
}
$(".floorClass").blur(function(){
var floorCount = $(this).val();
if(null != floorCount && '' != floorCount && 'undefined' != typeof(floorCount)) {
if(floorCount < 1) {
$(this).parent().parent().find('table').hide();
}
$(this).parent().parent().find('table').show();
$(this).parent().parent().find('tbody').empty();
for(var i = 0;i < floorCount;i++) {
var html =
'<tr>' +
'<td>' +(i+1)+ '楼户数</td>' +
'<td><input type="number" id="houseCount_'+ (i+1) +'" name="houseCount_'+ (i+1) +'" class="layui-input" value="" placeholder="请输入' + (i+1) + '层户数" lay-verify="required"></td>' +
'</tr>';
$(this).parent().parent().find('tbody').append(html);
}
}
})
}else {
$('#start').hide();
$('#end').hide();
}
}
function houseCountData(formData, floorCount) {
var houseCountList = [];
if(null != floorCount && '' != floorCount && 'undefined' != typeof(floorCount)) {
for (var i = 0; i < floorCount; i++) {
var houseCountObj = {};
houseCountObj['houseCount'] = $('#houseCount_' + (i + 1)).val();
houseCountList.push(houseCountObj);
}
formData.field['houseCountList'] = houseCountList;
formData.field['houseCountStr'] = houseCountList;
}else {
top.dialog.msg('楼层数不能为空');
return false;
}
}
function floorCountData(formData, unitCount) {
if(null != unitCount && '' != unitCount && 'undefined' != typeof(unitCount)) {
var floorCountList = [];
for(var i = 0;i < unitCount; i++) {
var floorCountObj = {};
floorCountObj['floorCount'] = $('#floorCount_' + (i + 1)).val();
floorCountList.push(floorCountObj);
}
formData.field['floorCountList'] = floorCountList;
formData.field['floorCountStr'] = floorCountList;
}else {
top.dialog.msg('每层户数不能为空');
return false;
}
}
function houseAndFloorData(formData, unitCount) {
var unitCountList = [];
for(var i=0;i<unitCount;i++) {
var floorOfUnit = $('#floorCount_' + (i+1)).val();
var floorOfUnitList = [];
for(var j=0;j<floorOfUnit;j++) {
var houseOfFloor = $('#floorCount_' + (i+1)).parent().parent().find('table').children('tbody').find('#houseCount_' + (j+1)).val();
var houseOfFloorObj = {};
houseOfFloorObj['houseOfFloor'] = houseOfFloor;
floorOfUnitList.push(houseOfFloorObj);
}
unitCountList.push(floorOfUnitList);
}
formData.field['unitCountList'] = unitCountList;
formData.field['unitCountStr'] = unitCountList;
}
function initFormData(data) {
var floorCountForUnit = data['floorCountForUnit'];
var houseCountForFloor = data['houseCountForFloor'];
if('相同' == floorCountForUnit) {
if('相同' == houseCountForFloor) {
// 每单元层数相同,每层户数相同,视为标准建筑,直接生成数据即可
}else {
// 每单元层数相同,每层户数不相同,按照每层生成房屋
$('#floorCountDiv').addClass("layui-col-lg6").removeClass("layui-col-lg4");
$('#elevatorDiv').addClass("layui-col-lg6").removeClass("layui-col-lg4");
$('#houseCountDiv').hide();
initHouseCountData(data['houseCountStr']);
}
}else {
if('相同' == houseCountForFloor) {
// 每单元层数不相同,每层户数相同,按照每单元生成数据
$('#floorCountDiv').hide();
$('#elevatorDiv').addClass("layui-col-lg6").removeClass("layui-col-lg4");
$('#houseCountDiv').addClass("layui-col-lg6").removeClass("layui-col-lg4");
initUnitData(data['floorCountStr']);
}else {
// 每单元层数不相同,每层户数也不相同,则按照每单元每层的方式生成数据
initUnitAndFloor(data['unitCountStr']);
}
}
}
function initHouseCountData(data) {
data = JSON.parse(data);
var floorCount = $('#floorCount').val();
if (null != floorCount && '' != floorCount && 'undefined' != typeof (floorCount)) {
if (floorCount < 1) {
top.dialog.msg('楼层数不能小于1');
$('#floorTableDiv').hide();
return false;
}
$('#floorTableDiv').show();
$('#floorTableDiv').find('table').children('tbody').empty();
for (var i = 0; i < floorCount; i++) {
var html =
'<tr>' +
'<td>' + (i + 1) + '楼户数</td>' +
'<td><input type="number" id="houseCount_' + (i + 1) + '" name="houseCount_' + (i + 1) + '" value="' +data[i].houseCount + '" class="layui-input" value="" placeholder="请输入' + (i + 1) + '层户数" lay-verify="required"></td>' +
'</tr>';
$('#floorTableDiv').find('table').children('tbody').append(html);
}
} else {
top.dialog.msg('请输入楼层数');
return false;
}
}
function initUnitData(data) {
data = JSON.parse(data);
var unitCount = $('#unitCount').val();
if(null != unitCount && '' != unitCount && 'undefined' != typeof(unitCount)) {
if(unitCount < 1) {
$('#start').hide();
$('#end').hide();
top.dialog.msg('单元数最少为一个单元');
return false;
}
$('#start').show();
$('#end').show();
$('#start').empty();
for(var i = 0;i < unitCount;i++) {
var html =
'<div class="layui-form">' +
'<label class="layui-form-label">' + (i+1) + '单元楼层数</label>' +
'<div class="layui-input-block">' +
'<input type="number" id="floorCount_'+ (i+1) +'" name="floorCount_'+ (i+1) +'" value="' +data[i].floorCount+ '" class="layui-input floorClass" value="" placeholder="请输入' + (i+1) + '单元楼层数" lay-verify="required">' +
'</div>' +
'</div>';
$('#start').append(html);
}
}else {
$('#start').hide();
$('#end').hide();
}
}
function initUnitAndFloor(data) {
data = JSON.parse(data);
var unitCount = $('#unitCount').val();
if(null != unitCount && '' != unitCount && 'undefined' != typeof(unitCount)) {
if(unitCount < 1) {
$('#start').hide();
$('#end').hide();
top.dialog.msg('单元数最少为一个单元');
return false;
}
$('#start').show();
$('#end').show();
$('#start').empty();
for(var i = 0;i < unitCount;i++) {
var html =
'<div class="layui-form">' +
'<label class="layui-form-label">' + (i+1) + '单元楼层数</label>' +
'<div class="layui-input-block">' +
'<input type="number" id="floorCount_'+ (i+1) +'" name="floorCount_'+ (i+1) +'" value="'+ data[i].length +'" class="layui-input floorClass" value="" placeholder="请输入' + (i+1) + '单元楼层数" lay-verify="required">' +
'</div>' +
'<table class="layui-table" style="display: none;">' +
'<colgroup>' +
'<col width="150">' +
'<col>' +
'</colgroup>' +
'<thead>' +
'<tr>' +
'<th>楼层</th>' +
'<th>户数</th>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'</tbody>' +
'</table>' +
'</div>';
$('#start').append(html);
var floorCount = data[i];
console.log(floorCount.length)
if(null != floorCount && '' != floorCount && 'undefined' != typeof(floorCount)) {
if(floorCount.length < 1) {
$(this).parent().parent().find('table').hide();
}
$('#floorCount_' + (i+1)).parent().parent().find('table').show();
$('#floorCount_' + (i+1)).parent().parent().find('tbody').empty();
for(var j = 0;j < floorCount.length;j++) {
var html =
'<tr>' +
'<td>' +(j+1)+ '楼户数</td>' +
'<td><input type="number" id="houseCount_'+ (j+1) +'" name="houseCount_'+ (j+1) +'" value="'+floorCount[j].houseOfFloor+'" class="layui-input" value="" placeholder="请输入' + (j+1) + '层户数" lay-verify="required"></td>' +
'</tr>';
$('#floorCount_' + (i+1)).parent().parent().find('tbody').append(html);
}
}
}
}else {
$('#start').hide();
$('#end').hide();
}
}
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
// 初始化备注富文本
function initRemakeRichText(value) {
var editor = new wangEditor('#remake');
editor.customConfig.zIndex = 1000;
editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
editor.customConfig.uploadImgMaxLength = 1;
editor.customConfig.uploadFileName = 'image';
editor.customConfig.uploadImgServer = 'api/file/wangeditorimage';
editor.customConfig.uploadImgHooks = {
fail: function (xhr, editor, result) {
top.dialog.msg('系统错误,图片上传失败');
},
error: function (xhr, editor) {
top.dialog.msg('网络异常');
},
timeout: function (xhr, editor) {
top.dialog.msg('网络请求超时');
}
};
editor.create();
editor.txt.html(value);
wangEditorObj['remake'] = editor;
}
// 初始化内容
function initData() {
var loadLayerIndex;
top.restAjax.get(top.restAjax.path('api/building/get/{buildingId}', [buildingId]), {}, null, function(code, data) {
var dataFormData = {};
for(var i in data) {
dataFormData[i] = data[i] +'';
}
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
initRemakeRichText(data['remake']);
initResidentialNameSelect(data['residentialId']);
houseCountArr = data['houseCountStr'];
floorCountArr = data['floorCountStr'];
unitCountArr = data['unitCountStr'];
initFormData(data);
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
}
initData();
// 提交表单
form.on('submit(submitForm)', function(formData) {
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
var floorCountForUnit = $('input[name="floorCountForUnit"]:checked').val();
var houseCountForFloor = $('input[name="houseCountForFloor"]:checked').val();
if('相同' == floorCountForUnit) {
if('相同' == houseCountForFloor) {
// 每单元层数相同,每层户数相同,视为标准建筑,直接生成数据即可
}else {
// 每单元层数相同,每层户数不相同,按照每层生成房屋
var floorCount = $('#floorCount').val();
if(null != floorCount && '' != floorCount && 'undefined' != typeof(floorCount)) {
houseCountData(formData, floorCount);
}else {
top.dialog.msg('楼层数不能为空');
return false;
}
}
}else {
if('相同' == houseCountForFloor) {
// 每单元层数不相同,每层户数相同,按照每单元生成数据
var unitCount = $('#unitCount').val();
if(null != unitCount && '' != unitCount && 'undefined' != typeof(unitCount)) {
floorCountData(formData, unitCount);
}else {
top.dialog.msg('楼层数不能为空');
return false;
}
}else {
// 每单元层数不相同,每层户数也不相同,则按照每单元每层的方式生成数据
var unitCount = $('#unitCount').val();
if(null != unitCount && '' != unitCount && 'undefined' != typeof(unitCount)) {
houseAndFloorData(formData, unitCount);
}else {
top.dialog.msg('楼层数不能为空');
return false;
}
}
}
formData.field['remake'] = wangEditorObj['remake'].txt.html();
top.restAjax.put(top.restAjax.path('api/building/update/{buildingId}', [buildingId]), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.updateSuccess, {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function(index) {
top.dialog.close(index);
window.location.reload();
},
btn2: function() {
closeBox();
}
});
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
return false;
});
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>