/** * Created by Syusuke on 2017/3/17. */ $(function () { let preDeleteId = null; let deleteCount = 0; let selCompilationId, compilationsArr = []; $('#del').on('hidden.bs.modal', function () { deleteCount = 0; }); //添加 $('#addBtn').click(function () { let compilationName = $('#compilationSels option:selected').text(); let compilationId = $('#compilationSels option:selected').val(); let gljLibName = $('#gljLibSels option:selected').text(); let gljLibId = $('#gljLibSels option:selected').val(); let libName = $('#libNameTxt').val(); if(libName.trim().length === 0){ alert('名称不可为空!'); $('#libNameTxt').val('') } else if(allNames.indexOf(libName) !== -1){ alert('此定额库已存在!'); $('#libNameTxt').val('') } else if(compilationName.trim().length === 0){ alert('编办不可为空!'); } else if(gljLibName.trim().length === 0){ alert("请选择工料机库!"); } else{ let newRationLib = {}; newRationLib.dispName = libName; newRationLib.compilationId = compilationId; newRationLib.compilationName = compilationName; newRationLib.gljLib = gljLibId; newRationLib.creator = userAccount; newRationLib.appType = "建筑"; $('#libNameTxt').val(''); createRationLib(newRationLib); } }); //重命名 $("#showArea").on("click", "[data-target = '#edit']", function(){ let renameId = $(this).parent().parent().attr("id"); $('#renameText').val($(this).parent().parent().find('td:first-child').text()); $("#renameA").attr("renameId", renameId); }); $("#renameA").click(function(){ let newName = $("#renameText").val(); let libId = $(this).attr("renameId"); let jqSel = "#" + libId + " td:first" + " a"; let orgName = $(jqSel).text(); if(newName.trim().length === 0){ alert("名称不可为空!"); $("#renameText").val(''); } else if(allNames.indexOf(newName) !== -1){ alert("该定额库已存在!"); $("#renameText").val(''); } else{ renameRationLib({ID: libId, newName: newName, orgName: orgName}); } }); $('#edit').on('shown.bs.modal', function () { setTimeout(function () { $('#renameText').focus(); }, 100); }); $('#add').on('shown.bs.modal', function () { setTimeout(function () { $('#libNameTxt').focus(); }, 100); }); $('#add').on('hidden.bs.modal', function () { $('#libNameTxt').val(''); }); //删除 $("#showArea").on("click", "[data-target = '#del']", function(){ let deleteId = $(this).parent().parent().attr("id"); $("#deleteA").attr("deleteId", deleteId); let delLibName = $(`#${deleteId}`).find('td:first').text(); $('#del').find('.modal-body h5').text(`准备删除 “${delLibName}”,会导致已引用此库的地方出错,确定要删除吗?`); }); $("#deleteA").click(function(){ let deleteId = $(this).attr("deleteId"); if(preDeleteId && preDeleteId !== deleteId){ deleteCount = 0; } preDeleteId = deleteId; deleteCount++; let jqSel = "#" + deleteId + " td:first" + " a"; let libName = $(jqSel).text(); if(deleteCount === 3){ deleteCount = 0; removeRationLib({libId: deleteId, libName: libName}); $('#del').modal('hide'); } }); //全部计算 $("#showArea").on("click", "[data-target = '#reCalcAll']", function(){ let recalcId = $(this).parent().parent().attr("id"); $("#reCalcConfirm").attr("recalcId", recalcId); }); $("#reCalcConfirm").click(function(){ $('#reCalcConfirm').addClass('disabled'); $.bootstrapLoading.start(); let recalcId = $(this).attr("recalcId"); CommonAjax.post('/rationRepository/api/reCalcAll', {rationRepId: recalcId}, function (rstData) { $.bootstrapLoading.end(); $('#reCalcAll').modal('hide'); $('#reCalcConfirm').removeClass('disabled'); }, function () { $.bootstrapLoading.end(); $('#reCalcAll').modal('hide'); $('#reCalcConfirm').removeClass('disabled') }); }); // 锁定、解锁 $('#showArea').on('click', '.lock', function () { lockUtil.handleLockClick($(this)); }); getCompilationList(function (data) { compilationsArr = data.compilation; }); // 导入原始数据按钮 let rationRepId = 0; $("#showArea").on("click", ".import-source", function () { let id = $(this).data("id"); id = parseInt(id); if (isNaN(id) || id <= 0) { return false; } rationRepId = id; $("#import").modal("show"); }); // 导入内部数据 $("#showArea").on("click", ".import-data", function () { let id = $(this).data("id"); id = parseInt(id); if (isNaN(id) || id <= 0) { return false; } rationRepId = id; $("#import2").modal("show"); }); // 导入原始数据确认 $("#source-import,#data-import").click(function() { $.bootstrapLoading.start(); const self = $(this); const type = self.is("#source-import") ? 'source_file' : 'import_data'; const dialog = type === 'source_file' ? $("#import") : $("#import2"); try { let formData = new FormData(); let file = $("input[name='"+ type +"']")[0]; if (file.files.length <= 0) { throw '请选择文件!'; } formData.append('file', file.files[0]); // 获取定额库id if (rationRepId <= 0) { return false; } formData.append('rationRepId', rationRepId); formData.append('type', type); $.ajax({ url: '/rationRepository/api/upload', type: 'POST', data: formData, cache: false, contentType: false, processData: false, beforeSend: function() { self.attr('disabled', 'disabled'); self.text('上传中...'); }, success: function(response){ self.removeAttr('disabled'); self.text('确定导入'); if (response.err === 0) { $.bootstrapLoading.end(); const message = response.msg !== undefined ? response.msg : ''; if (message !== '') { alert(message); } // 成功则关闭窗体 dialog.modal("hide"); } else { $.bootstrapLoading.end(); const message = response.msg !== undefined ? response.msg : '上传失败!'; alert(message); } }, error: function(){ $.bootstrapLoading.end(); alert("与服务器通信发生错误"); self.removeAttr('disabled'); self.text('确定导入'); } }); } catch(error) { alert(error); } }); // 导出数据 $("#showArea").on("click", ".export", function () { let id = $(this).data("id"); id = parseInt(id); if (isNaN(id) || id <= 0) { return false; } window.location.href = '/rationRepository/api/export?rationRepId=' + id; }); //设置补充定额库章节树模板 $("#showArea").on("click", ".set-comple", function () { let id = $(this).data("id"); id = parseInt(id); if (isNaN(id) || id <= 0) { return false; } rationRepId = id; $('#templateA').addClass('disabled'); $('#template').modal('show'); $('#compilations').empty(); for (let data of compilationsArr) { let $opt = $(``); $('#compilations').append($opt); } $('#compilations').change(); }); $('#compilations').change(function () { selCompilationId = $(this).select().val(); CommonAjax.get(`/rationRepository/api/sectionTemplateCount/${selCompilationId}`, function (rstData) { rstData.data.count > 0 ? $('#templateText').text('该费用定额下已有定额章节树模板数据,是否确认覆盖数据?') : $('#templateText').text('确认是否将此库的章节树设置成该费用定额下补充定额章节树模板?'); $('#templateA').removeClass('disabled'); }); }); $('#templateA').click(function () { if (rationRepId <= 0 && selCompilationId) { return false; } $.bootstrapLoading.start(); CommonAjax.post('/rationRepository/api/initSectionTemplate', {rationLibId: rationRepId, compilationId: selCompilationId}, function () { $.bootstrapLoading.end(); $('#template').modal('hide'); }, function () { $.bootstrapLoading.end(); $('#template').modal('hide'); }); }); }); function getCompilationList(callback){ $.ajax({ type: 'post', url: '/rationRepository/api/getCompilationList', dataType: 'json', success: function (result) { //addoptions for(let i = 0; i < result.data.compilation.length; i++){ let $option = $(""); $option.val( result.data.compilation[i]._id); $('#compilationSels').append($option); } //初始工料机库选项 if(result.data.compilation.length > 0 && result.data.gljLibs.length > 0){ let compilationId = result.data.compilation[0]._id; //console.log(compilationId); let gljLibOps = getGljLibOps(compilationId, result.data.gljLibs); for(let i = 0; i < gljLibOps.length; i++){ let $option = $(""); $option.val(gljLibOps[i].ID); $('#gljLibSels').append($option); } } $('#compilationSels').on("change", function () { //刷新工料机库选项 $('#gljLibSels').children().remove(); let newGljLibOps = getGljLibOps(this.selectedOptions[0].value, result.data.gljLibs); for(let i = 0; i < newGljLibOps.length; i++){ let $option = $(""); $option.val(newGljLibOps[i].ID); $('#gljLibSels').append($option); } }); callback(result.data); } }); } function getGljLibOps(compilationId, gljLibs){ let rst = []; for(let i = 0; i < gljLibs.length; i++){ if(gljLibs[i]){ if(compilationId === gljLibs[i].compilationId){ rst.push(gljLibs[i]); } } } return rst; } function createRationLib(rationObj){ $.ajax({ type: 'post', url: '/rationRepository/api/addRationRepository', data: {rationRepObj: JSON.stringify(rationObj)}, dataType: 'json', success: function (result) { window.location.href = location.href; } }) } function renameRationLib(renameObj){ $.ajax({ type: 'post', url: '/rationRepository/api/editRationLibs', data: {oprtor: userAccount, renameObj: JSON.stringify(renameObj)}, dataType: 'json', success: function (result) { if(!result.error){ let jqSel = "#" + renameObj.ID + " td:first" + " a"; $(jqSel).text(renameObj.newName); let index = allNames.indexOf(renameObj.orgName); allNames.splice(index, 1); allNames.splice(index, 0, renameObj.newName); } $('#editCancelBtn').click(); $('#renameText').val(''); } }) } function removeRationLib(delObj){ $.bootstrapLoading.start(); $.ajax({ type: 'post', url: '/rationRepository/api/deleteRationLibs', data: {oprtor: userAccount, libId: delObj.libId}, dataType: 'json', success: function (result) { if(!result.error){ var jqSel = "#"+ delObj.libId; $(jqSel).remove(); let index = allNames.indexOf(delObj.libName); allNames.splice(index, 1); $('#delCancelBtn').click(); } $.bootstrapLoading.end(); }, error: function () { alert('删除失败'); $.bootstrapLoading.end(); } }) }