2024-02-23 17:38:42 +08:00
|
|
|
import { action, observable } from "mobx";
|
|
|
|
|
import { message } from "antd";
|
|
|
|
|
import { WeaForm, WeaLogView } from "comsMobx";
|
|
|
|
|
import { WeaLocaleProvider } from "ecCom";
|
2022-02-25 09:24:56 +08:00
|
|
|
|
2024-02-23 17:38:42 +08:00
|
|
|
import * as API from "../apis"; // 引入API接口文件
|
2022-02-25 09:24:56 +08:00
|
|
|
|
2024-02-23 17:38:42 +08:00
|
|
|
const { LogStore } = WeaLogView;
|
2022-02-25 09:24:56 +08:00
|
|
|
const getLabel = WeaLocaleProvider.getLabel;
|
|
|
|
|
|
|
|
|
|
export class BaseFormStore {
|
2024-02-23 17:38:42 +08:00
|
|
|
@observable form = new WeaForm(); // 规则渲染form
|
2025-02-18 09:08:07 +08:00
|
|
|
@action("初始化form表单") initForm = () => this.form = new WeaForm();
|
|
|
|
|
@observable formExtra = new WeaForm(); // 规则渲染form
|
|
|
|
|
@action("初始化form表单") initFormExtra = () => this.formExtra = new WeaForm();
|
2022-02-25 09:24:56 +08:00
|
|
|
@observable logVisible = false; // 控制日志弹框的显影
|
|
|
|
|
|
|
|
|
|
@action // 初始化操作: 一般用来初始化获取后台数据
|
2024-02-23 17:38:42 +08:00
|
|
|
doInit = () => {
|
2022-02-25 09:24:56 +08:00
|
|
|
this.getBaseForm();
|
2024-02-23 17:38:42 +08:00
|
|
|
};
|
2022-02-25 09:24:56 +08:00
|
|
|
|
|
|
|
|
@action // 获得form配置数据
|
|
|
|
|
getBaseForm = () => {
|
|
|
|
|
API.getBaseForm().then(action(result => {
|
|
|
|
|
this.loading = false;
|
|
|
|
|
this.hasRight = result.hasRight;
|
|
|
|
|
if (result.hasRight) {
|
|
|
|
|
this.condition = result.condition;
|
|
|
|
|
this.form.initFormFields(result.condition);
|
|
|
|
|
}
|
|
|
|
|
}));
|
2024-02-23 17:38:42 +08:00
|
|
|
};
|
2022-02-25 09:24:56 +08:00
|
|
|
|
|
|
|
|
@action // 保存
|
|
|
|
|
saveForm = () => {
|
2024-02-23 17:38:42 +08:00
|
|
|
this.form.validateForm().then(action(f => { // 表单的校验: 直接使用form的validateForm方法即可
|
2022-02-25 09:24:56 +08:00
|
|
|
if (f.isValid) { // 校验听过: 走保存接口
|
|
|
|
|
this.saveLoading = true;
|
|
|
|
|
const params = this.form.getFormParams();
|
|
|
|
|
API.saveForm(params).then(action(
|
|
|
|
|
result => {
|
2024-02-23 17:38:42 +08:00
|
|
|
this.saveLoading = false;
|
|
|
|
|
if (result.api_status) { // 保存成功: 1、给出提示 2、刷新form数据
|
|
|
|
|
message.success(`${getLabel(18758, "保存成功")}`);
|
2022-02-25 09:24:56 +08:00
|
|
|
this.getBaseForm();
|
2024-02-23 17:38:42 +08:00
|
|
|
} else {
|
|
|
|
|
message.error(`${getLabel(22620, "保存失败")}`);
|
2022-02-25 09:24:56 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
));
|
|
|
|
|
} else {
|
|
|
|
|
f.showErrors();
|
|
|
|
|
}
|
|
|
|
|
}));
|
2024-02-23 17:38:42 +08:00
|
|
|
};
|
2022-02-25 09:24:56 +08:00
|
|
|
|
|
|
|
|
@action
|
2024-02-23 17:38:42 +08:00
|
|
|
setLogVisible = bool => this.logVisible = bool;
|
|
|
|
|
|
|
|
|
|
}
|