榆钱落尽槿花稀 448712ece5 feat: 添加积分申请系统基础功能与UI组件
本次提交主要包含以下内容:

1. 新增积分申请系统核心功能:
   - 添加登录页面及API接口
   - 实现积分申请记录查看功能
   - 集成微信小程序分享功能
   - 添加请求管理工具类

2. 引入Tuniao UI组件库:
   - 添加时间线、折叠面板、表格等UI组件
   - 集成头像组、单选框组等交互组件
   - 配置全局样式和主题颜色

3. 基础架构搭建:
   - 配置项目manifest和pages.json路由
   - 添加状态管理store
   - 实现自定义导航栏适配
   - 添加工具函数(加解密、数字处理等)

4. 静态资源:
   - 添加项目logo和背景图片
   - 配置uni.scss全局样式变量

本次提交为系统基础功能搭建,后续将进一步完善积分申请流程和审批功能。
2025-05-27 16:40:02 +08:00

55 lines
1.8 KiB
JavaScript

/**
* 递归使用call方式 this指向
*
* @param {String} componentName 需要查找的组件的名称
* @param {String} eventName 事件名称
* @param {Object} 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 {Object} componentName 需要查找的组件的名称
* @param {Object} eventName 事件名称
* @param {Object} params 需要传递的参数
*/
dispatch(componentName, eventName, params) {
// 找到最近父节点 $root 根节点
let parent = this.$parent || this.$root
// 获取当前实例的名称
let name = parent.$options.name
// 当前存在节点并且当前节点没有名称或者名称不等于我们要查找的节点名称,则继续遍历
while (parent && (!name || name !== componentName)) {
parent = parent.$parent
if (parent) {
name = parent.$options.name
}
}
// 如果有节点则表示找到
if (parent) {
parent.$emit.apply(parent, [eventName].concat(params))
}
},
/**
* 广播 向下查找多个
* @param {Object} componentName 需要查找的组件的名称
* @param {Object} eventName 事件名称
* @param {Object} params 需要传递的参数
*/
broadcast(componentName, eventName, params) {
broadcast.call(this, componentName, eventName, params)
}
}
}