index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { VantComponent } from '../common/component';
  2. import { addUnit } from '../common/utils';
  3. VantComponent({
  4. relation: {
  5. name: 'grid-item',
  6. type: 'descendant',
  7. current: 'grid',
  8. },
  9. props: {
  10. square: {
  11. type: Boolean,
  12. observer: 'updateChildren'
  13. },
  14. gutter: {
  15. type: [Number, String],
  16. value: 0,
  17. observer: 'updateChildren'
  18. },
  19. clickable: {
  20. type: Boolean,
  21. observer: 'updateChildren'
  22. },
  23. columnNum: {
  24. type: Number,
  25. value: 4,
  26. observer: 'updateChildren'
  27. },
  28. center: {
  29. type: Boolean,
  30. value: true,
  31. observer: 'updateChildren'
  32. },
  33. border: {
  34. type: Boolean,
  35. value: true,
  36. observer: 'updateChildren'
  37. }
  38. },
  39. data: {
  40. viewStyle: '',
  41. },
  42. created() {
  43. const { gutter } = this.data;
  44. if (gutter) {
  45. this.setData({
  46. viewStyle: `padding-left: ${addUnit(gutter)}`
  47. });
  48. }
  49. },
  50. methods: {
  51. updateChildren() {
  52. this.children.forEach((child) => {
  53. child.updateStyle();
  54. });
  55. }
  56. }
  57. });