menuVue.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. /**
  2. * [ONEMAP.M.projectController]
  3. * @return {[object]}
  4. */
  5. define(function () {
  6. var app = null
  7. $('#vue-menu').html('')
  8. var vectorFunc, rasterFunc, modelFunc;
  9. require(['modDir/layerVue/vector'], function (obj) {
  10. vectorFunc = obj;
  11. });
  12. require(['modDir/layerVue/raster'], function (obj) {
  13. rasterFunc = obj;
  14. });
  15. require(['modDir/layerVue/model'], function (obj) {
  16. modelFunc = obj;
  17. });
  18. // 目录初始化
  19. app = new Vue({
  20. el: '#vuemenu',
  21. data: {
  22. defaultProps: {
  23. children: 'children',
  24. label: 'label',
  25. isLeaf: 'leaf',
  26. disabled: function (data, node) {
  27. if (data.label == "暂无数据") {
  28. return true
  29. }
  30. }
  31. }
  32. },
  33. methods: {
  34. handleOpen() { console.log('handleOpen') },
  35. handleClose() { console.log('handleClose') },
  36. // handleNodeClick(data, node, self) {
  37. // if (data.leaf) {
  38. // if (data.layerType == "vector") {
  39. // if (data.type == 1) {
  40. // }
  41. // } else if (data.layerType == "raster") {
  42. // } else if (data.layerType == "model") {
  43. // modelFunc.add(data);
  44. // }
  45. // }
  46. // },
  47. handleCheck(data, checkedNodedObj) {
  48. // data.id
  49. // checkedNodedObj.checkedKeys
  50. if (checkedNodedObj.checkedKeys.indexOf(data.id) > -1) {
  51. // 选中
  52. if (data.layerType == "vector") {
  53. // if (data.type == 1) {
  54. // }
  55. vectorFunc.add(data, this.setTreeChecked);
  56. } else if (data.layerType == "raster") {
  57. rasterFunc.add(data, this.setTreeChecked);
  58. } else if (data.layerType == "model") {
  59. modelFunc.add(data, this.setTreeChecked);
  60. }
  61. } else {
  62. // 取消选中
  63. if (data.layerType == "vector") {
  64. // if (data.type == 1) {
  65. // }
  66. vectorFunc.remove(data);
  67. } else if (data.layerType == "raster") {
  68. rasterFunc.remove(data);
  69. } else if (data.layerType == "model") {
  70. modelFunc.remove(data);
  71. }
  72. }
  73. },
  74. setTreeChecked(id) {
  75. this.$refs.menuTree.setChecked(id, false, false);
  76. },
  77. loadNode(node, resolve) {
  78. if (node.level === 0) {
  79. return resolve([
  80. { label: '矢量数据', type: 0, layerType: "vector", id: onemapUrlConfig.columnConfig.vector.id },
  81. { label: '二维数据', type: 0, layerType: "raster", id: onemapUrlConfig.columnConfig.raster.id },
  82. { label: '三维数据', type: 0, layerType: "model", id: onemapUrlConfig.columnConfig.model.id },
  83. ]);
  84. }
  85. if (!localStorage.getItem("systemToken")) {
  86. ONEMAP.C.publisher.publish({
  87. type: 'warning',
  88. message: '用户尚未登录!'
  89. }, 'noteBar::add');
  90. return resolve([{ label: '暂无数据', leaf: true }]);
  91. }
  92. if (node.data.layerType == "vector") {
  93. $.ajax({
  94. type: "POST",
  95. headers: {
  96. token: localStorage.getItem("systemToken"),
  97. },
  98. data: {
  99. id: node.data.id,
  100. },
  101. dataType: "json",
  102. url: onemapUrlConfig.DMS_URL + '/dms/column/selectChild',
  103. success: function (result) {
  104. if (result.code == 200) {
  105. const list = result.content.map(function (item) {
  106. item.label = item.title;
  107. item.layerType = node.data.layerType;
  108. if (item.type == 1) {
  109. item.leaf = true
  110. }
  111. return item
  112. })
  113. resolve(list);
  114. } else {
  115. return resolve([{ label: '暂无数据', leaf: true }]);
  116. }
  117. }
  118. })
  119. } else {
  120. if (node.data.type == 0) {
  121. $.ajax({
  122. type: "POST",
  123. headers: {
  124. token: localStorage.getItem("systemToken"),
  125. },
  126. data: {
  127. id: node.data.id,
  128. },
  129. dataType: "json",
  130. url: onemapUrlConfig.DMS_URL + '/dms/column/selectChild',
  131. success: function (result) {
  132. if (result.code == 200) {
  133. const list = result.content.map(function (item) {
  134. item.label = item.title;
  135. item.layerType = node.data.layerType;
  136. return item
  137. })
  138. resolve(list);
  139. } else {
  140. return resolve([{ label: '暂无数据', leaf: true }]);
  141. }
  142. },
  143. error: function (result) {
  144. console.log(result);
  145. }
  146. })
  147. }
  148. if (node.data.type == 1) {
  149. $.ajax({
  150. type: "POST",
  151. headers: {
  152. token: localStorage.getItem("systemToken"),
  153. },
  154. data: {
  155. columnId: node.data.id,
  156. states: "1,2,3",
  157. pageSize: 1000,
  158. page: 0,
  159. },
  160. dataType: "json",
  161. url: onemapUrlConfig.DMS_URL + '/dms/content/selectContentList',
  162. success: function (result) {
  163. if (result.code == 200) {
  164. const list = result.content.data.map(function (item) {
  165. item.label = item.title;
  166. item.layerType = node.data.layerType;
  167. item.leaf = true
  168. return item
  169. })
  170. resolve(list);
  171. } else {
  172. return resolve([{ label: '暂无数据', leaf: true }]);
  173. }
  174. },
  175. error: function (result) {
  176. console.log(result);
  177. }
  178. })
  179. }
  180. }
  181. }
  182. },
  183. mounted() {
  184. }
  185. })
  186. return ONEMAP.M.menuVue = {
  187. vueObj: app
  188. }
  189. });