From 0a24ffeb3eff074c8f11e9f94fdf2c2cb4929799 Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Fri, 10 Nov 2023 13:08:29 +0800 Subject: [PATCH] fix:小程序详情修改 --- uni_modules/uview-ui/libs/util/emitter.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 51 insertions(+), 0 deletions(-) diff --git a/uni_modules/uview-ui/libs/util/emitter.js b/uni_modules/uview-ui/libs/util/emitter.js new file mode 100644 index 0000000..1e64044 --- /dev/null +++ b/uni_modules/uview-ui/libs/util/emitter.js @@ -0,0 +1,51 @@ +/** + * ������������ call ������this������ + * @param componentName // ��������������������������� + * @param eventName // ������������ + * @param params // ��������������������� + */ +function broadcast(componentName, eventName, params) { + // ��������������������������������������������� ������ ������ ��������������� + this.$children.map((child) => { + if (componentName === child.$options.name) { + child.$emit.apply(child, [eventName].concat(params)) + } else { + broadcast.apply(child, [componentName, eventName].concat(params)) + } + }) +} +export default { + methods: { + /** + * ������ (������������) (������) + * @param componentName // ��������������������������� + * @param eventName // ������������ + * @param params // ��������������������� + */ + dispatch(componentName, eventName, params) { + let parent = this.$parent || this.$root// $parent ������������������������ $root ��������� + let { name } = parent.$options // ���������������������������name + // ��������������������� && ��������������� ��� ������������������������������������������������������������������������������ + // ��������������������������������������������� + while (parent && (!name || name !== componentName)) { + parent = parent.$parent + if (parent) { + name = parent.$options.name + } + } + // ������������������������������name��������������� + if (parent) { + parent.$emit.apply(parent, [eventName].concat(params)) + } + }, + /** + * ������ (������������) (������������) + * @param componentName // ��������������������������� + * @param eventName // ������������ + * @param params // ��������������������� + */ + broadcast(componentName, eventName, params) { + broadcast.call(this, componentName, eventName, params) + } + } +} -- Gitblit v1.8.0