u-grid.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. "use strict";
  2. const common_vendor = require("../../../../common/vendor.js");
  3. const __default__ = {
  4. name: "u-grid",
  5. mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$3],
  6. data() {
  7. return {
  8. index: 0,
  9. width: 0
  10. };
  11. },
  12. watch: {
  13. // 当父组件需要子组件需要共享的参数发生了变化,手动通知子组件
  14. parentData() {
  15. if (this.children.length) {
  16. this.children.map((child) => {
  17. typeof child.updateParentData == "function" && child.updateParentData();
  18. });
  19. }
  20. }
  21. },
  22. created() {
  23. this.children = [];
  24. },
  25. computed: {
  26. // 计算父组件的值是否发生变化
  27. parentData() {
  28. return [this.hoverClass, this.col, this.size, this.border];
  29. },
  30. // 宫格对齐方式
  31. gridStyle() {
  32. let style = {};
  33. switch (this.align) {
  34. case "left":
  35. style.justifyContent = "flex-start";
  36. break;
  37. case "center":
  38. style.justifyContent = "center";
  39. break;
  40. case "right":
  41. style.justifyContent = "flex-end";
  42. break;
  43. default:
  44. style.justifyContent = "flex-start";
  45. }
  46. return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle));
  47. }
  48. },
  49. emits: ["click"],
  50. // 防止事件执行两次
  51. // 20240409发现抖音小程序如果开启virtualHost会出现严重问题,几乎所有事件包括created等生命周期事件全部失效。
  52. options: {
  53. // virtualHost: true ,//将自定义节点设置成虚拟的,更加接近Vue组件的表现。我们不希望自定义组件的这个节点本身可以设置样式、响应 flex 布局等
  54. },
  55. methods: {
  56. // 此方法由u-grid-item触发,用于在u-grid发出事件
  57. childClick(name) {
  58. this.$emit("click", name);
  59. }
  60. }
  61. };
  62. const __injectCSSVars__ = () => {
  63. common_vendor.useCssVars((_ctx) => ({
  64. "10cf4cad": _ctx.gap,
  65. "10cf3f57": _ctx.col
  66. }));
  67. };
  68. const __setup__ = __default__.setup;
  69. __default__.setup = __setup__ ? (props, ctx) => {
  70. __injectCSSVars__();
  71. return __setup__(props, ctx);
  72. } : __injectCSSVars__;
  73. const _sfc_main = __default__;
  74. function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  75. return {
  76. a: common_vendor.s($options.gridStyle),
  77. b: common_vendor.s(_ctx.__cssVars())
  78. };
  79. }
  80. const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-85602471"], ["__file", "C:/Users/Administrator/Desktop/srcaaa/node_modules/uview-plus/components/u-grid/u-grid.vue"]]);
  81. wx.createComponent(Component);