fastlion-amis
Version:
一种MIS页面生成工具
51 lines (45 loc) • 1.17 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;
},
reset() {
self.form = {};
self.reInitData({}, true);
},
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>;