/** * 版本管理相关js * * @author CaiAoLin * @date 2017/7/28 * @version */ $(document).ready(function() { let isAdding = false; // 初始化数据 initVersion(); // 新增版本 $("#add-version").click(function() { try { let [name, standardBill, rationLib, standardBillString, rationLibString] = getAndValidData(); $.ajax({ url: '/version/add', type: 'post', data: {name: name,standard_bill_id: standardBill, ration_lib_id: rationLib, standard_bill: standardBillString, ration_lib: rationLibString}, error: function() { isAdding = false; }, beforeSend: function() { isAdding = true; }, success: function(response) { isAdding = false; if (response.err === 0) { window.location.reload(); } else { let msg = response.msg === undefined ? '未知错误' : response.msg; alert(msg); } } }); } catch (error) { alert(error); } }); // 选择省份后读取数据 $("select[name='standard_bill_province'],select[name='ration_lib_province']").change(function() { let name = $(this).attr('name'); let billListData = billList === undefined ? [] : JSON.parse(billList); let rationLibData = rationList === undefined ? [] : JSON.parse(rationList); if (billListData.length <= 0 || rationLibData.length <= 0) { return false; } let sourceData = name === 'standard_bill_province' ? billListData : rationLibData; let selectedId = $(this).val(); if (sourceData[selectedId] === undefined) { return false; } let defaultString = name === 'standard_bill_province' ? '请选择标准清单' : '请选择定额库'; let html = ''; for(let tmp of sourceData[selectedId]) { let tmpHtml = ''; html += tmpHtml; } // 渲染 let targetSelector = name === 'standard_bill_province' ? $("select[name='standard_bill']") : $("select[name='ration_lib']"); targetSelector.children('option').remove(); targetSelector.html(html); }); }); /** * 初始化 * * @return {void|boolean} */ function initVersion() { if (province === undefined) { alert('初始化失败!'); return false; } province = JSON.parse(province); if (province.length <= 0) { alert('省份数据加载失败!'); return false; } let billProvinceElement = $("select[name='standard_bill_province']"); let rationProvinceElement = $("select[name='ration_lib_province']"); let html = ''; for (let tmp of province) { let tmpHtml = ''; html += tmpHtml; } billProvinceElement.children('option').first().after(html); rationProvinceElement.children('option').first().after(html); } /** * 校验数据 * * @return {Array} */ function getAndValidData() { let name = $("input[name='version_name']").val(); let standardBill = $("select[name='standard_bill']").val(); let rationLib = $("select[name='ration_lib']").val(); if (name === '') { throw '版本名字不能为空'; } if (standardBill === '' || standardBill === undefined) { throw '请选择标准清单库'; } if (rationLib === '' || rationLib === undefined) { throw '请选择定额库'; } let standardBillString = $("select[name='standard_bill']").children("option:selected").text(); let rationLibString = $("select[name='ration_lib']").children("option:selected").text(); return [name, standardBill, rationLib, standardBillString, rationLibString]; }