GmAlert icon indicating copy to clipboard operation
GmAlert copied to clipboard

关于GmAlert的建议

Open ssuyoungwu opened this issue 2 years ago • 1 comments

作者您好,我在使用GmAlert时(html+js+css,非vue)发现了一些问题: 1、“README”文档中均是“Gmal”对象,但我查看gmalert.min.js源码中发现应该是“GmAlert”对象,且实际使用时用“Gmal”对象会报错; image

2、各模块弹出后遮罩层应该完全遮住底层元素,禁止底层元素的点击和选中等操作,以“Alert”模块为例,现在我(开发者)希望用户跟随弹窗做下一步操作,而不希望用户还能点页面上的其他按钮。我觉得您可以参考layui的layer弹层组件(https://layui.dev/docs/2/layer) image

3、Message模块的弹层大小太小了,如果能调大一点、与Alert的大小差不多就好了 image

4、“README”文档我认为还不够完善和便于阅读理解,不完善的地方在于没有“Close”方法,当我(开发者)使用GmAlert.alert("加载中", "loading")显示等待框后,是需要我(开发者)在合适的时机手动关闭它,而文档中并没有有关“Close”方法的说明,我也是在gmalert.min.js源码中找到这个方法的;不够便于阅读理解的地方是在于参数描述不够简单明了,如下面一段: `type?: 'success' | 'error' | 'warn' | 'info' | 'loading'

option?: { timeout?: number // 消失的时间 // 关闭后的回调 // @param status 0: 用户点击关闭或取消按钮, 1: 用户点确认, -1: 超时自动关闭, // -2 | undefined : 被强制关闭,一般是因为超出了maxCount onClosed?: (status: number) => void }` 参数描述和使用方式柔和在一起,确实不便于阅读和理解,我建议您像layui的layer弹层组件文档一样(https://layui.dev/docs/2/layer),将参数说明和使用方法分开说明 image

5、链式语法不够精简,例如GmAlert.alert("加载中", "loading")这一句,我认为可以继续改进为GmAlert.alert.loading("加载中"),因为每种模块中的类型是固定的,完全可以去掉“Gmal.模块([message], [type?], [option?]) ”中这个“type”参数

以上几点均出自我个人使用感受,有错误的地方望见谅

ssuyoungwu avatar Jan 05 '24 06:01 ssuyoungwu

感谢建议

  • 1.3.0版本后修改为了Gmal
  • Alert模块的backdrop将在下一更新中体现
  • Message模块主要参考了QMsg的样式,因为需要堆叠,所以设计的尽可能小
  • Readme确实不够完善,我也建立了一个文档站点,不过也还没有完善(我太懒了),后续会进一步完善的
  • 我不是很喜欢很长的链式调用,type主要是控制样式,除了loading,其他的基本大差不差,分离为成员函数就显得很冗余(实际上原始的测试版本是这么做的,但由于多模块的引入,我取消了这个设计)

g-mero avatar Jan 05 '24 06:01 g-mero

V2 版本发布

g-mero avatar May 12 '24 16:05 g-mero