import { observable, action, toJS } from 'mobx'; import { message } from 'antd'; import { WeaForm, WeaTableNew } from 'comsMobx'; import * as API from '../apis/welfareScheme'; // 引入API接口文件 import * as CumAPI from '../apis/cumDeduct' import { notNull } from '../util/validate'; const { TableStore } = WeaTableNew; export class ProgrammeStore { @observable tableStore = new TableStore(); // new table @observable condition = []; // 存储后台得到的form数据 @observable hasRight = true; // 判断用户是有权限查看当前页面: 没有权限渲染无权限页面,有权限渲染数据 @observable showSearchAd = false; // 高级搜索面板显示 @observable loading = true; // 数据加载状态 @observable selectedKey = "SOCIAL_SECURITY"; @observable customSelectkey = "" @observable defaultPersonDataSource = []; // 默认新增列表DataSource @observable defaultCompanyDataSource = []; @observable requestParams = { schemeName: "", remarks: "", paymentArea: "1" } @observable form = new WeaForm(); @observable formCondition = []; // 存储后台得到的form数据 @observable customNewVisible = false; @observable customRequest = {} // 福利方案列表 @observable tableDataSource = []; @observable tableColumns = []; @observable tablePageInfo = {}; @action setCustomSelectkey = customSelectkey => this.customSelectkey = customSelectkey @action setCustomRequest = customRequest => this.customRequest = customRequest @action setCustomNewVisible = customNewVisible => this.customNewVisible = customNewVisible; @action setRequestParams = requestParams => this.requestParams = requestParams; @action setDefaultPersonDataSource = defaultPersonDataSource => this.defaultPersonDataSource = defaultPersonDataSource; @action setDefaultCompanyDataSource = defaultCompanyDataSource => this.defaultCompanyDataSource = defaultCompanyDataSource; @action initSlideParms = () => { this.requestParams = { schemeName: "", remarks: "", paymentType: "SCHEME_TOWN" } this.defaultPersonDataSource = []; this.defaultCompanyDataSource = []; } @action setSelectedKey = selectedKey => this.selectedKey = selectedKey; // 初始化操作 @action doInit = () => { this.getTableDatas(); // this.getCustomCategoryList(); } // 获得高级搜索表单数据 // @action // getCondition = () => { // API.getForm().then(action(res => { // if (res.status) { // 接口请求成功/失败处理 // this.condition = res.condition; // this.form.initFormFields(res.condition); // 渲染高级搜索form表单 // } else { // message.error(res.msg || '接口调用失败!') // } // })); // } // 渲染table数据 @action getTableDatas = (selectKey = "SOCIAL_SECURITY", params) => { this.loading = true; const formParams = this.form.getFormParams() || {}; params = params || formParams; params.welfareTypeEnum = selectKey API.getTable(params).then(action(res => { if (res.status) { // 接口请求成功/失败处理 // this.tableStore.getDatas(res.data.datas); // table 请求数据 this.tableDataSource = res.data.list ? res.data.list : []; this.tableColumns = res.data.columns; this.tablePageInfo = res.data; } else { message.error(res.errormsg || '接口调用失败!') } this.loading = false; })); } // 渲染自定义福利 @action getCustomCategoryList = (selectKey = "", params) => { this.loading = true; const formParams = this.form.getFormParams() || {}; params = params || formParams; params.welfareTypeEnum = selectKey API.getCustomCategoryList(params).then(action(res => { if (res.status) { // 接口请求成功/失败处理 this.tableStore.getDatas(res.data.datas); // table 请求数据 } else { message.error(res.errormsg || '接口调用失败!') } this.loading = false; })); } @action setShowSearchAd = bool => this.showSearchAd = bool; // 高级搜索 - 搜索 @action doSearch = () => { this.getTableDatas(); this.showSearchAd = false; } // 获取form, 获取获取详情 @action getForm = (params) => { API.getForm(params).then(res => { if(res.status) { let resultList = res.data.form.schemeDetailList; this.defaultPersonDataSource = resultList.filter(item => item.paymentScope == "个人") this.defaultCompanyDataSource = resultList.filter(item => item.paymentScope == "公司") let defaultRequest = { schemeName: "", remarks: "", paymentArea: "1" } this.requestParams = {...defaultRequest, ...res.data.form.schemeBatch} } }) } valideForm(params) { if(!notNull(params.insuranceScheme.paymentType)) { message.warning("缴纳类型不能为空") return false } if(!notNull(params.insuranceScheme.schemeName)) { message.warning("方案名称不能为空") return false } return true; } @action createScheme = (params) => { params.insuranceScheme.paymentArea = params.insuranceScheme.paymentType; if(!this.valideForm(params)) { return } console.log("params:", params); API.createScheme(params).then(res => { if(res.status) { message.success("新建成功"); this.getTableDatas(this.selectedKey); } else { message.error(res.errormsg || "新建失败") } }) } @action updateScheme = (params) => { params.insuranceScheme.paymentArea = params.insuranceScheme.paymentType; if(!this.valideForm(params)) { return } console.log("params:", params); API.updateScheme(params).then(res => { if(res.status) { message.success("更新成功"); this.getTableDatas(this.selectedKey); } else { message.error(res.errormsg || "更新失败") } }) } @action copyScheme = (params) => { API.copyScheme(params).then(res => { if(res.status) { message.success("复制成功") this.getTableDatas(this.selectedKey); } else { message.error(res.errormsg || "复制失败") } }) } @action getCustomForm = (params) => { API.getCustomCategoryForm(params).then(res => { if(res.status) { let condition = res.data.item; let items = Object.keys(condition).map(item => { return condition[item] }) let fieldCondtion = items this.formCondition = fieldCondtion; } else { message.error(res.errormsg || "获取失败") } }) } validateCustomRequest() { let flag = true; this.formCondition.forEach(item => { if(item.rules == "required") { if(!notNull(this.customRequest[item.domkey[0]])) { message.warning(item.label + "不能为空") flag = false } } }) return flag; } // 新增自定义福利 @action createSICategory = (params) => { if(!this.validateCustomRequest()) { return } return new Promise((resolve, reject) => { API.createSICategory(params).then(res => { if(res.status) { message.success("新增成功") resolve() this.getCustomCategoryList() } else { reject() message.error(res.errormsg || "新增失败") } }) }) } // 自定义福利启用、停用 @action updateCustomCategoryStatus = (id, isUse) => { let params = { id, isUse: isUse ? 1 : 0 } API.updateCustomCategoryStatus(params).then(res => { if(res.status) { message.success("修改成功") this.getCustomCategoryList() } else { message.error(res.errormsg || "修改失败") } }) } // 自定义福利编辑 @action updateCustomCategory = (params) => { return new Promise((resolve, reject) => { API.updateCustomCategory(params).then(res => { if(res.status) { message.success("编辑成功") resolve() this.getCustomCategoryList() } else { reject() message.error(res.errormsg || "编辑失败") } }) }) } }