/** * 工料机汇总相关数据 * * @author CaiAoLin * @date 2017/9/14 * @version */ function ProjectGLJ() { this.datas = null; this.isLoading = false; } /** * 加载数据 * * @param {function} callback * @return {boolean} */ ProjectGLJ.prototype.loadData = function (callback = null) { let self = this; if (self.isLoading) { return false; } // 加载工料机数据 $.ajax({ url: '/glj/getData', type: 'post', dataType: 'json', data: {project_id: scUrlUtil.GetQueryString('project')}, error: function() { // alert('数据传输错误'); }, beforeSend: function() { self.isLoading = true; }, success: function(response) { self.isLoading = false; if (response.err === 1) { let msg = response.msg !== undefined && response.msg !== '' ? response.msg : '读取工料机数据失败!'; alert(msg); return false; } self.datas = response.data; // 回调函数 if (callback !== null) { callback(response.data); } // 存入缓存 projectObj.project.projectGLJ = self; } }); }; /** * 获取对应工料机数据 * * @param {String} code * @return {Object} */ ProjectGLJ.prototype.getDataByCode = function (code) { let result = {}; if (this.datas === null) { return result; } let gljList = this.datas.gljList; if (gljList === undefined) { return result; } for(let tmp of gljList) { if (tmp.code === code) { result = tmp; break; } } return result; }; /** * 修改工料机数据 * * @param {Number} id * @param {Object} data * @return {boolean} */ ProjectGLJ.prototype.updateData = function(id, data) { let result = false; if (this.datas === null) { return result; } let gljList = this.datas.gljList; if (gljList === undefined) { return result; } // 查找对应的index let index = -1; for(let tmp in gljList) { if (gljList[tmp].id === id) { index = tmp; break; } } if (index < 0) { return result; } // 修改数据 for(let tmpIndex in data) { if(tmpIndex.indexOf('_price') >= 0) { // 修改unit_price中的对象 this.datas.gljList[index]['unit_price'][tmpIndex] = data[tmpIndex]; } else { this.datas.gljList[index][tmpIndex] = data[tmpIndex]; } } }; /** * 加载缓存数据到spread * * @return {void} */ ProjectGLJ.prototype.loadCacheData = function() { // 加载工料机数据 let data = this.datas === null ? null : this.datas; if (data === null) { return; } jsonData = data.gljList !== undefined && data.gljList.length > 0 ? data.gljList : []; projectGLJSheet.setData(jsonData); projectGLJSpread.specialColumn(jsonData); };