* 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 * 细节调整
34 lines
802 B
TypeScript
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;
|