ViewportModel.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. Ext.define('school.view.viewport.ViewportModel', {
  2. extend: 'Ext.app.ViewModel',
  3. alias: 'viewmodel.viewport',
  4. data: {
  5. account: null
  6. },
  7. formulas: {
  8. avatarUrl: function (get) {
  9. var account = get('account');
  10. return (account && account.avatarUrl) || 'resources/images/default/user-icon.png'
  11. }
  12. },
  13. stores: {
  14. store_navigationMenu: {
  15. autoLoad: true,
  16. fields: ['text', 'iconCls'],
  17. proxy: {
  18. type: 'ajax',
  19. url: 'resources/json/navigation.json',
  20. reader: {
  21. type: 'json'
  22. }
  23. }
  24. },
  25. store_gradeclass: {
  26. type: 'tree',
  27. autoLoad: false,
  28. // model: 'school.model.Grade',
  29. fields: [{
  30. name: 'text'
  31. }],
  32. proxy: {
  33. type: 'ajax',
  34. // url: 'http://10.1.80.47:9560/grade/read/1',
  35. url: '/api/school/grade/read/1',
  36. reader: {
  37. transform: {
  38. fn: function(data) {
  39. let grades = data.data.children;
  40. grades.map(function(s) {
  41. s._id = s.id;
  42. s.id = 'grade-' + s.id;
  43. let classes = s.children;
  44. let d = classes.map(function(c) {
  45. c._id = c.id;
  46. c.id = 'class-' + c.id;
  47. return c;
  48. });
  49. return s;
  50. });
  51. return grades;
  52. },
  53. scope: this
  54. }
  55. }
  56. },
  57. root: {
  58. text: '全年级',
  59. type: 'SCHOOL',
  60. expanded: true
  61. },
  62. listeners: {
  63. load: function(store, records) {
  64. let classData = [];
  65. let gradeData = records.map(function(r) {
  66. let d = r.data;
  67. let c = d.children.map(function(h) {
  68. return {
  69. value: h._id,
  70. name: h.text,
  71. gradeId: d._id,
  72. gradeName: d.text
  73. }
  74. });
  75. classData = classData.concat(c);
  76. return {
  77. value: d._id,
  78. name: d.text,
  79. }
  80. })
  81. Ext.StoreMgr.get('store_grade').loadData(gradeData);
  82. Ext.StoreMgr.get('store_class').loadData(classData);
  83. }
  84. }
  85. }
  86. }
  87. });