webservices.factory('vatSessionService', ['$log', 'localStorageService', function ($log, localStorageService) { 'use strict'; $log.debug('vatSessionService.ctor()...'); var date = new Date(); var month = date.getMonth(); var projectyear = date.getFullYear(); var cacheName = 'atms-vat-cache'; var propList = ['month', 'year', 'project', 'projects', 'dataChanged', 'logUser', 'userPermission', 'queryDto']; if (month <= 0) { month = 1; } var logUser = { ID: "66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", UserName: "Admin", }; var userPermission = {}; var queryDto = { searchKeyword: '', fieldId: '', filedName: 'orgName', checkedOrgs: {}, }; var cacheObj = { month: month, userPermission: {}, project: { year: 2017 }, projects: [], dataChanged: false }; //重置项目月份 var reset = function () { var date = new Date(); var m = date.getMonth(); if (m <= 0) { m = 1; } this.month = m; setProperty("month", m); }; var temp = localStorageService.get(cacheName); if (temp) { cacheObj = temp; } else { localStorageService.set(cacheName, cacheObj); }; //设置属性值 var setProperty = function (propertyName, propertyValue) { cacheObj[propertyName] = propertyValue; localStorageService.set(cacheName, cacheObj); }; //获取属性值 var getProperty = function (propertyName) { return cacheObj[propertyName]; }; // 更新project内属性 var updateObjectProperty = function (objectName, propertyPath, propertyValue) { var obj = cacheObj[objectName]; if (!_.isEmpty(obj)) { var propertyArr = propertyPath.split('.'); for (var i = 0; i < propertyArr.length - 1; i++) { if (!_.isEmpty(obj)) { obj = obj[propertyArr[i]]; } } if (!_.isEmpty(obj)) { obj[propertyArr[propertyArr.length - 1]] = propertyValue; } } localStorageService.set(cacheName, cacheObj); }; // 跳转到admin或者outputinvoice management 需要清空所选择的project,不然会影响权限 var clearSelectProject = function () { var tempProject = { year: 2017 }; setProperty('project', tempProject); }; var result = {}; var defineProp = function (propertyName) { Object.defineProperty(result, propertyName, { get: function () { var getValue = getProperty(propertyName); var year = new Date().getFullYear(); var month = new Date().getMonth(); switch (propertyName) { case "year": return getValue || year; case "month": return getValue || month - 1; case "project": return getValue || { year: year }; case "projects": return getValue || []; case "dataChanged": return getValue || false; case "logUser": return getValue || logUser; case "userPermission": return getValue || {}; case "queryDto": return getValue || queryDto; } }, set: function (val) { setProperty(propertyName, val); }, }); }; propList.forEach(function (propName) { defineProp(propName); }); result.reset = reset; result.setProperty = setProperty; result.getProperty = getProperty; result.updateObjectProperty = updateObjectProperty; result.clearSelectProject = clearSelectProject; return result; }]); webservices.factory('citSessionService', ['$log', 'localStorageService', 'enums', function ($log, localStorageService, enums) { 'use strict'; $log.debug('citSessionService.ctor()...'); var date = new Date(); var month = constant.WholeYearPeriod; var projectyear = 2017; var cacheName = 'atms-cit-cache'; var propList = ['month', 'year', 'project', 'projects', 'dataChanged', 'logUser', 'userPermission', 'queryDto']; var logUser = { ID: "66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", UserName: "Admin", }; var queryDto = { searchKeyword: '', fieldId: '', filedName: 'orgName', checkedOrgs: {}, }; var cacheObj = { month: month, userPermission: {}, project: { year: projectyear }, projects: [], dataChanged: false }; var temp = localStorageService.get(cacheName); if (temp) { cacheObj = temp; } else { localStorageService.set(cacheName, cacheObj); }; //设置属性值 var setProperty = function (propertyName, propertyValue) { cacheObj[propertyName] = propertyValue; localStorageService.set(cacheName, cacheObj); }; //获取属性值 var getProperty = function (propertyName) { return cacheObj[propertyName]; }; // 更新project内属性 var updateObjectProperty = function (objectName, propertyPath, propertyValue) { var obj = cacheObj[objectName]; if (obj) { var propertyArr = propertyPath.split('.'); for (var i = 0; i < propertyArr.length - 1; i++) { if (!_.isEmpty(obj)) { obj = obj[propertyArr[i]]; } } obj[propertyArr[propertyArr.length - 1]] = propertyValue; } localStorageService.set(cacheName, cacheObj); }; //跳转到admin或者outputinvoice management 需要清空所选择的project,不然会影响权限 var clearSelectProject = function () { var tempProject = { year: projectyear }; setProperty('project', tempProject); }; var result = {}; var defineProp = function (propertyName) { Object.defineProperty(result, propertyName, { get: function () { var getValue = getProperty(propertyName); var year = new Date().getFullYear(); switch (propertyName) { case "year": return getValue || year; case "month": return getValue || enums.wholeYearPeriod.import; case "project": return getValue || { year: year }; case "projects": return getValue || []; case "dataChanged": return getValue || false; case "logUser": return getValue || logUser; case "userPermission": return getValue || {}; case "queryDto": return getValue || queryDto; } }, set: function (val) { setProperty(propertyName, val); }, }); }; propList.forEach(function (propName) { defineProp(propName); }); result.setProperty = setProperty; result.getProperty = getProperty; result.updateObjectProperty = updateObjectProperty; result.clearSelectProject = clearSelectProject; return result; }]);