diff --git a/README.md b/README.md index b57f570..7a50321 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,22 @@ 掌上教务处作为工业大学的社区开源项目,自从2017年开始已有近5年岁月,在无数同学的贡献之下,为大家打造便捷的校园服务。 +__*!!!注意!!!*__ + +请在主仓库提交代码,而非镜像仓库! + +主仓库: http://git.mrkbear.com/MrKBear/mini-dlpu-v3 + +镜像仓库: https://github.com/Mr-k-bear/mini-dlpu-v3 + +## 目录 + +- [社区介绍](#小程序社区) +- [项目设计](#第三代小程序) +- [贡献规范](#社区贡献规范) +- [入门文档(等待撰写)](#第三代掌上教务处小程序) +- [设计架构(等待撰写)](#第三代掌上教务处小程序) + ## 小程序社区 掌上教务处小程序诞生于2017年中旬,此时微信小程序刚刚公测。 @@ -48,12 +64,39 @@ 3. 更好的拓展性,加入更多大家喜欢的功能 +新功能: + +1. 正在讨论设计,等待你的建议... + ## 社区贡献规范 +请仔细阅读! +### 项目贡献流程 + 请先邮件联系 ```mrkbear@mrkbear.com``` 获得 Gitea 平台账号 -在仓库中创建自己的分支,分支命名规范为 ```dev-你的昵称``` +在仓库中创建自己的分支,分支命名规范为 ```dev-你的昵称```,例如 ```dev-mrkbear``` -克隆此储库,在本地 ```checkout``` 到自己的分支 +克隆此储库,在本地 ```git checkout dev-你的昵称``` 到自己的分支,进行改动。 -开发完成后 ```push``` 到自己的远程分支,并发起合并请求,等待 review +开发完成后 ```git push``` 到自己的远程分支,并发起合并请求到 ```master``` 分支 + +发起合并请求时,需要指派给 ```MrKBear``` 进行代码审核,审核通过后,代码将完成合并。 + +### 注意事项 + +1. ```master``` 分支处于保护状态,仅通过合并请求进行修改 + +2. 代码提交时,请使用清晰明确的 ```message``` + +正例: ```Add timetable page``` 反例: ```阿巴阿巴阿巴阿巴``` + +3. 请勿将任何个人隐私信息以任何方式,放入代码中 + +4. 为保证 CI/CD,提交代码前必须保证编译可以通过 + +5. 一个文件不要超过 1000 行代码,尽量保证代码可读性 + +## 贡献者 + +@MrKBear (熊鲜森) \ No newline at end of file diff --git a/miniprogram/core/Api.ts b/miniprogram/core/Api.ts index 66b4e8e..d0027ef 100644 --- a/miniprogram/core/Api.ts +++ b/miniprogram/core/Api.ts @@ -181,7 +181,7 @@ class API extends Emitter extends Emitter>; + public wait(callBack?: ICallBack): this; + public wait(callBack?: ICallBack): Promise> | this { + + // 存在 callback 使用传统回调 + if (callBack) { + callBack.success && this.on("success", callBack.success); + callBack.fail && this.on("fail", callBack.fail); + callBack.complete && this.on("complete", callBack.complete); + return this; + } + + // 不存在 callback 使用 Promise 对象 + else { + return new Promise((r) => { + this.on("success", r); + this.on("fail", r); + }); + } + } +} + +/** + * 自动响应数据 + */ +type IRespondData = Partial["success"]> & IAPIEvent["fail"]; + +/** + * 回调对象 + */ +interface ICallBack { + success?: (data: IAPIEvent<{}, O>["success"]) => any; + fail?: (data: IAPIEvent<{}, O>["fail"]) => any; + complete?: (data: IAPIEvent<{}, O>["complete"]) => any; } /** @@ -515,4 +553,4 @@ enum HTTPMethod { } export default API; -export { API, IParamSetting, IAppAPIParam, HTTPMethod, RequestPolicy } \ No newline at end of file +export { API, IParamSetting, IAppAPIParam, ICallBack, HTTPMethod, RequestPolicy } \ No newline at end of file diff --git a/miniprogram/pages/Timetable/TestCore.ts b/miniprogram/pages/Timetable/TestCore.ts index 94d768c..f405248 100644 --- a/miniprogram/pages/Timetable/TestCore.ts +++ b/miniprogram/pages/Timetable/TestCore.ts @@ -42,7 +42,7 @@ implements Partial { public constructor() { super(); - this.initLabel("TestApi"); + this.initDebugLabel("TestApi"); } } @@ -53,7 +53,11 @@ implements Partial { info: { data: "abc" } - }).request(); + }).request().wait({ + success: (d) => console.log(d) + }).wait({ + success: (d) => console.log(d) + }); } }