index.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports["default"] = void 0;
  5. var _babelHelperVueJsxMergeProps = _interopRequireDefault(require("@vue/babel-helper-vue-jsx-merge-props"));
  6. var _utils = require("../utils");
  7. var _functional = require("../utils/functional");
  8. var _icon = _interopRequireDefault(require("../icon"));
  9. var _use = (0, _utils.use)('tree-select'),
  10. sfc = _use[0],
  11. bem = _use[1];
  12. function TreeSelect(h, props, slots, ctx) {
  13. var height = props.height,
  14. items = props.items,
  15. mainActiveIndex = props.mainActiveIndex,
  16. activeId = props.activeId;
  17. var selectedItem = items[mainActiveIndex] || {};
  18. var subItems = selectedItem.children || [];
  19. return h("div", (0, _babelHelperVueJsxMergeProps["default"])([{
  20. "class": bem(),
  21. "style": {
  22. height: height + "px"
  23. }
  24. }, (0, _functional.inherit)(ctx)]), [h("div", {
  25. "class": bem('nav')
  26. }, [items.map(function (item, index) {
  27. return h("div", {
  28. "key": index,
  29. "class": ['van-ellipsis', bem('nitem', {
  30. active: mainActiveIndex === index,
  31. disabled: item.disabled
  32. })],
  33. "on": {
  34. "click": function click() {
  35. if (!item.disabled) {
  36. (0, _functional.emit)(ctx, 'navclick', index);
  37. }
  38. }
  39. }
  40. }, [item.text]);
  41. })]), h("div", {
  42. "class": bem('content')
  43. }, [subItems.map(function (item) {
  44. return h("div", {
  45. "key": item.id,
  46. "class": ['van-ellipsis', bem('item', {
  47. active: activeId === item.id,
  48. disabled: item.disabled
  49. })],
  50. "on": {
  51. "click": function click() {
  52. if (!item.disabled) {
  53. (0, _functional.emit)(ctx, 'itemclick', item);
  54. }
  55. }
  56. }
  57. }, [item.text, activeId === item.id && h(_icon["default"], {
  58. "attrs": {
  59. "name": "checked",
  60. "size": "16px"
  61. },
  62. "class": bem('selected')
  63. })]);
  64. })])]);
  65. }
  66. TreeSelect.props = {
  67. items: Array,
  68. mainActiveIndex: Number,
  69. activeId: {
  70. type: [Number, String],
  71. "default": 0
  72. },
  73. height: {
  74. type: Number,
  75. "default": 300
  76. }
  77. };
  78. var _default = sfc(TreeSelect);
  79. exports["default"] = _default;