tachybase_todo/packages/plugin-full-collections/src/models/view.ts
chenos 6c39ac3538
Develop (#68)
* refactor: fields/views/pages...

* update

* update

* update

* updates

* updates

* add yarn.lock

* updates

* updates

* updates

* updates

* updates

* updates

* updates

* updates

* updates

* developerMode

* 一大波更新

* bugfix

* fix: hide the sorting settings

* fix: reload menu when menu is updated

* 页面重构

* modify text

* 补充细节

* system settings

* 继续更新补充

* fix: 多级菜单支持

* 无限嵌套

* fix: icon

* 省市区参数调整

* 表单描述、文案调整

* 支持草稿

* 邮箱登录

* 细节补充

* 菜单页面权限初步

* 详情页打开方式

* 菜单父级、草稿问题

* 描述文字

* 详情分组显示

* 状态改为 radio

* 菜单权限

* 跳过省市区 api

* 修复权限数据范围

* onDraft

* 页面跳转

* 修改文案

* 注册、登录

* fix: 权限过滤问题

* 微调上传组件样式

* 0.4.0-alpha.0

* father-build

* remove father-build

* 细节调整
2021-03-16 14:31:54 +08:00

34 lines
802 B
TypeScript

import _ from 'lodash';
import BaseModel from './base';
import { interfaces } from '../interfaces';
import has from 'just-has';
export class ViewModel extends BaseModel {
get(key?: any, options?: any) {
if (typeof key !== 'string') {
const data = super.get(key);
const { type } = data;
if (type && interfaces.has(type)) {
const { properties = {} } = interfaces.get(type);
Object.keys(properties).forEach(name => {
if (has(data, name)) {
const value = _.get(data, name);
_.set(data, `x-${type}-props.${name}`, value);
}
});
}
return data;
}
return super.get(key, options);
}
async getOptions(): Promise<any> {
return {
...this.get(),
};
}
}
export default ViewModel;