amis
Version:
一种MIS页面生成工具
47 lines (41 loc) • 1.08 kB
text/typescript
import {ServiceStore} from './service';
import {types, SnapshotIn, Instance, isAlive} from 'mobx-state-tree';
import {createObject} from '../utils/helper';
export const ModalStore = ServiceStore.named('ModalStore')
.props({
form: types.frozen(),
entered: false,
resizeCoord: 0,
schema: types.frozen()
})
.views(self => {
return {
get formData() {
return createObject(self.data, self.form);
}
};
})
.actions(self => {
return {
setEntered(value: boolean) {
self.entered = value;
},
setFormData(obj: any) {
self.form = obj;
},
setResizeCoord(value: number) {
self.resizeCoord = value;
},
setSchema(schema: any) {
if (schema && schema.then) {
schema.then(
(value: any) => isAlive(self) && (self as any).setSchema(value)
);
return;
}
self.schema = schema;
}
};
});
export type IModalStore = Instance<typeof ModalStore>;
export type SModalStore = SnapshotIn<typeof ModalStore>;