TreeViewNode.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // Tree组件,需要引入css/widget/widget.css属性
  2. Vue.component('tree-view-node', function (resolve, reject) {
  3. $.get("../../js/widget/TreeViewNode.html").then(function (res) {
  4. resolve({
  5. template: res,
  6. props: ['node'],
  7. computed: {
  8. /**
  9. * 节点是否打开
  10. */
  11. isNodeOpen: function() {
  12. if(this.node.childrenDatas == undefined || this.node.childrenDatas.length == 0) {
  13. return undefined;
  14. } else {
  15. return this.node.open == true;
  16. }
  17. }
  18. },
  19. methods: {
  20. /**
  21. * 展开节点
  22. * @param {Object} node 节点数据
  23. * @return {void}
  24. */
  25. nodeExpand: function(node) {
  26. var _self = this;
  27. if(node === this.node) {
  28. node.open = !node.open;
  29. }
  30. _self.$emit("node-expand", node);
  31. },
  32. /**
  33. * 选择节点
  34. * @param {Object} node 节点数据
  35. * @return {void}
  36. */
  37. nodeSelect: function(node) {
  38. var _self = this;
  39. if(node === _self.node){
  40. if(node.selected == undefined) {
  41. _self.$set(node, "selected", false);
  42. }
  43. node.selected = !node.selected;
  44. }
  45. _self.$emit("node-select", node);
  46. },
  47. /**
  48. * 移动端点击了节点
  49. */
  50. nodeTap: function(param){
  51. var node = param.node;
  52. this.nodeSelect(node);
  53. },
  54. /**
  55. * 移动端点击了展开节点
  56. */
  57. nodeExpandTap: function(param){
  58. var node = param.node;
  59. this.nodeExpand(node);
  60. }
  61. }
  62. })
  63. });
  64. });