笔记
2024年4月13日
爬虫工具 Easy Scraper
登录鉴权服务 https://fusionauth.io/
Tailwind组件库 4244 UI elements: CSS & Tailwind (uiverse.io)
SaaS模板 ixartz/SaaS-Boilerplate
OpenAI 接口转发站 头顶冒火 (burn.hair)
Twitter的找工作平台 X (twitter.com)
AI移除图片的背景 fiama 插件 ImgGen AI - Background Remover | Figma
GitHub 文件下载代理。部署在Cloudflare Workers。 hunshcn/gh-proxy
李笑来的《人人都能用英语》 xiaolai/everyone-can-use-english:
AI移除图片背景 Background Remover
Notion like 块编辑 BlockNote
精选的 Cloudflare 工具、开源项目、指南、博客和其他资源列表。 (github.com)
一个开源React.js组件库漂亮彩色的画布 UVCanvas
old
mobx的observable变成非observ的变量
以@observable声明的变量,可以会变成普通的对象,而失去响应能力,可能是应为直接复制的操作导致的。
@observable
private rowData = []; // 这样rowData是不是observable的?
@observable
private rowData = observable([]); // 需要这样赋值才行吗?
indicatorMap需要使用observable.ref声明才能监听到。用observable声明并用replace替换的话就不能监听到了.
reaction(
() => indicatorMap,
(indicatorMap) => {
console.log(1);
},
),
8月13日review
- cellRendererFramework改成cellRender
改了cellRender以后不显示了。
- 没有AgSelect这个组件
MetadataHelper.resolveFullTitle()
列表中实现编码列跳转到编辑
实现新建页面保存后刷新列表
- 在定义路由时,将props传给presenter
easyBizForm在constructor中将props赋值给_options,其中包含 passParams ,跳转到create界面时,会存一个onSuccess在路由中,通过passParams姐可以拿到这个onSuccess了。
..renderBizForm({ entityName: EN_Customer, title: '客户', // hashPrefix: '/customer/form', createPresenter: async (props, queryParams = {}) => { const { CustomerFormPresenter } = await importCustomerForm(); return new CustomerFormPresenter({ ...props, }); }, }),
错误提示信息
什么情况会出现唯一性错误?
哪些错误需要解析?
哪些错误是没有具体error信息,只有message的?
单元测试覆盖率
jest apps/link/src/main/screens/projects/budget –coverage
jest src/main/screens/projects/budget –coverage
refer是怎么渲染出来的,怎么才能变成多选?
在编制方案中,使用了MSTFormLayout和MSTFormElement来实现project的refer。MSTFormLayout中有DataField,它根据field.type确定project是refer,然后使用了ReferField组件又Refer组件。
这个组件里根据metadata取到entity对应的参照方案。
this.referConfig = metadata.getReferConfig(entityName, referName);
参照方案内包含了是否为多选的配置 referConfig.multi
。
还可以通过参数,透传到Refer组件。
<MSTFormElement path="project" isMulti={true}>
遇到问题:需要将project的初始值改为数组 在formCreated生命周期中,进行赋值操作
this.form.select('project').value=[];
最佳实践1
projectEligibles.forEach((item, index)=>{
this.presenterApi.getEntityCRUD().deleteRowByRealIndex('projectEligibles', index);
})
newProjectItems.forEach((item) => {
this.presenterApi.getEntityCRUD().appendRow('projectEligibles', this.getProjectAttr('Project', '项目', item))
})