'use strict'; /** * * * @author Zhong * @date 2018/5/29 * @version */ const billsGuidanceMain = (function () { const updateType = {create: 'create', update: 'update', delete: 'delete'}; const typeString = {1: '清单指引', 2: '清单精灵'}; let guidanceLibs = []; let curLib = null; //上一个选择的库(三次确认删除同一库时用) let preLib = null; let deleteCount = 0; //获取编办及编办下清单库 //@return {void} function getComBillsLibInfo(){ CommonAjax.post('/billsGuidance/api/getComBillsLibInfo', {}, function (rstData) { const comSels = $('#comSels'); const billsLibSels = $('#billsLibSels'); //设置编办及清单规则库选择 comSels.empty(); function setBillsLib(libs){ billsLibSels.empty(); for(let lib of libs){ let libOpt = ``; billsLibSels.append(libOpt); } } setBillsLib(rstData.billsLibs); for(let i = 0; i < rstData.compilationList.length; i++){ let compilation = rstData.compilationList[i]; let comOpt = ``; comSels.append(comOpt); } }); } //html新增库 //@param {Object}tbody {Object}lib @return {void} function addLibToView(tbody, lib){ let type = lib.type && typeString[lib.type] ? typeString[lib.type] : '' let tr = `
确认根据库“${curLib.name}”生成清单分类?
注意,原有分类数据将被清空
`) console.log(curLib); }); $('#generate-class-confirm').click(async () => { if (!curLib || !curLib.ID) { return; } $.bootstrapLoading.start(); try { await ajaxPost('/billsGuidance/api/generateClassData', { libID: curLib.ID }, 1000 * 60 * 10); $('#generate-class-modal').modal('hide'); } catch (error) { console.log(error); } finally { $.bootstrapLoading.end(); } }); //所有编辑按钮 $('.main').find('tbody').on('click', '[data-target="#edit"]', function () { let tr = $(this).parent().parent(); let selLib = existLib({k: 'ID', v: tr.attr('id')}, guidanceLibs); curLib = selLib; $('#edName').val(curLib.name); $('#edComSels').select().children('option:selected').text(curLib.compilationName); $('#edBillsLibSels').select().children('option:selected').text(curLib.billsLibName); }); //编辑确认 $('#editY').click(function(){ try{ let newName = $('#edName').val(); if(newName.trim() === curLib.name){ $('#edit').modal('hide'); return; } if(!newName || newName.trim() === ''){ throw '名称不能为空!'; } if(existLib({k: 'name', v: newName}, guidanceLibs)){ throw '该库已存在!'; } let updateData = {updateType: updateType.update, findData: {ID: curLib.ID}, updateData: {name: newName}}; CommonAjax.post('/billsGuidance/api/updateBillsGuideLib', updateData, function (rstData) { curLib.name = newName; $(`#${curLib.ID} td:first a`).text(newName); $('#edit').modal('hide'); }); } catch(err){ alert(err); $('#edName').focus(); } }); //编辑模态框 $('#edit').on('shown.bs.modal', function () { $('#edName').focus(); }); //所有删除按钮 $('.main').find('tbody').on('click', '[data-target="#del"]', function () { let tr = $(this).parent().parent(); curLib = existLib({k: 'ID', v: tr.attr('id')}, guidanceLibs); console.log(curLib); }); //删除确认 $('#delY').click(function () { try{ if(!curLib){ throw '不存在该库!'; } if(preLib && preLib.ID !== curLib.ID){ deleteCount = 0; } deleteCount++; preLib = curLib; if(deleteCount === 3){ $('#del').modal('hide'); $.bootstrapLoading.start(); let updateData = {updateType: updateType.delete, findData: {ID: curLib.ID}, updateData: {deleted: true}}; CommonAjax.post('/billsGuidance/api/updateBillsGuideLib', updateData, function (rstData) { $(`#${curLib.ID}`).remove(); curLib = null; _.remove(guidanceLibs, function (lib) { return lib.ID === updateData.findData.ID; }); $.bootstrapLoading.end(); }, function () { $.bootstrapLoading.end(); }); } } catch(err){ alert(err); } }); //删除确认窗口关闭,重新计数 $('#del').on('hidden.bs.modal', function () { deleteCount = 0; }); // 锁定、解锁 $('.main').find('tbody').on('click', '.lock', function () { lockUtil.handleLockClick($(this)); }); } return {getComBillsLibInfo, getLibs, eventListener}; })(); $(document).ready(function () { billsGuidanceMain.getComBillsLibInfo(); billsGuidanceMain.getLibs(); billsGuidanceMain.eventListener(); });