model_base.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. export function save(target: any, keyName: string) {
  2. let arr = model_base.classMap.get(target.constructor);
  3. if (arr === undefined) {
  4. arr = [];
  5. model_base.classMap.set(target.constructor, arr);
  6. }
  7. arr.push(keyName);
  8. }
  9. export default class model_base {
  10. public static classMap: Map<Function, any[]> = new Map();
  11. public getData(): object {
  12. let data = {}
  13. let savepars = model_base.classMap.get(this.constructor)
  14. for (let i = 0; i < savepars.length; ++i) {
  15. data[savepars[i]] = this[savepars[i]];
  16. }
  17. return data;
  18. }
  19. public setData(data: any) {
  20. //初始化下数据
  21. if (!data) return;
  22. let savepars = model_base.classMap.get(this.constructor)
  23. for (let i = 0; i < savepars.length; ++i) {
  24. const element = data[savepars[i]];
  25. if (element != null || element != undefined) {
  26. if (Object.prototype.toString.call(element) == "[object Object]") {
  27. for (const key in element) {
  28. this[savepars[i]][key] = element[key];
  29. }
  30. }
  31. else
  32. this[savepars[i]] = element;
  33. }
  34. }
  35. }
  36. }