salary-management-front/pc4mobx/hrmSalary/stores/salaryItem.js

313 lines
7.7 KiB
JavaScript

import { observable, action, toJS } from 'mobx';
import { message } from 'antd';
import { WeaForm, WeaTableNew } from 'comsMobx';
import * as API from '../apis/item'; // 引入API接口文件
import {notNull} from '../util/validate'
const { TableStore } = WeaTableNew;
export class SalaryItemStore {
@observable tableStore = new TableStore(); // new table
@observable sysListTableStore = new TableStore();
@observable form = new WeaForm(); // nrew 一个form
@observable condition = []; // 存储后台得到的form数据
@observable hasRight = true; // 判断用户是有权限查看当前页面: 没有权限渲染无权限页面,有权限渲染数据
@observable showSearchAd = false; // 高级搜索面板显示
@observable loading = true; // 数据加载状态
@observable systemItemVisible = false;
@observable deleteTableStore = new TableStore(); // 批量删除
@observable deleteItemVisible = false; // 删除Modal
@observable editSlideVisible = false; // 新建修改设置
@observable request = {
name: '',
useDefault: 0,
useInEmployeeSalary: 0,
systemType:0,
roundingMode: 0,
pattern: 0,
valueType: 1,
dataType: "string",
description: ""
}
@observable tableDataSource = []; // 主列表
@observable tableColumns = []; // 主列表列
@observable pageInfo = {}; // 分页数据
// ** 公式 **
// 类型列表
@observable searchGroup = [];
// 字段列表
@observable searchFields = [];
// 公式详情
@observable formulaDetail = {};
// 设置字段列表
@action
setSearchFields = (searchFields) => {
this.searchFields = searchFields
}
@action
initRequest = () => this.request = {
name: '',
useDefault: 0,
useInEmployeeSalary: 0,
systemType:0,
roundingMode: 0,
pattern: 0,
valueType: "1",
dataType: "string",
description: ""
}
@action
setRequest = request => this.request = request;
@action
setEditSlideVisible = editSlideVisible => this.editSlideVisible = editSlideVisible;
@action
setDeleteItemVisible = deleteItemVisible => this.deleteItemVisible = deleteItemVisible;
@action
setSystemItemVisible = systemItemVisible => this.systemItemVisible = systemItemVisible;
// 初始化操作
@action
doInit = () => {
this.getTableDatas({});
}
// 渲染table数据
@action
getTableDatas = (params) => {
this.loading = true;
API.getItemList(params).then(action(res => {
if (res.status) { // 接口请求成功/失败处理
this.tableDataSource = res.data.list
this.tableColumns = res.data.columns
this.pageInfo = res.data
// 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;
}
// 薪资项目-系统薪资项目列表
@action
getSysItemList = (params) => {
API.getSysItemList(params).then(res => {
if (res.status) { // 接口请求成功/失败处理
this.sysListTableStore.getDatas(res.data.datas); // table 请求数据
} else {
message.error(res.errormsg || '接口调用失败!')
}
})
}
//薪资项目-添加系统薪资项目
@action
saveSysItem = () => {
let ids = toJS(this.sysListTableStore.selectedRowKeys)
if(ids.length == 0) {
message.warning("未选择任何条目");
return
}
API.saveSysItem(ids).then(res => {
if(res.status) {
this.setSystemItemVisible(false)
this.getTableDatas({});
message.success("添加成功")
} else {
message.error(res.errormsg || '添加失败')
}
})
}
//薪资项目-薪资项目详情
@action
getItemForm = (id) => {
API.getItemForm(id).then(res => {
if(res.status) {
let data = res.data;
Object.keys(data).map(key => {
if(data[key]) {
data[key] = data[key].toString()
}
})
this.request = data;
} else {
message.error(res.errormsg || '获取失败')
}
})
}
// 对象值转string
convertToString(data) {
Object.keys(data).map(k => {
if(typeof(data[k]) == "number") {
data[k] = data[k].toString();
}
})
return data;
}
//薪资项目-批量删除列表
@action
deleteItemList = (params) => {
API.deleteItemList(params).then(res => {
if(res.status) {
this.deleteTableStore.getDatas(res.data.datas)
} else {
message.error(res.errormsg || "获取失败")
}
})
}
//薪资项目-批量删除薪资项目
@action
deleteItem = () => {
let ids = toJS(this.deleteTableStore.selectedRowKeys)
if(ids.length == 0) {
message.warning("未选择任何条目");
return
}
this.deleteItemRequest(ids)
}
@action
deleteItemRequest = (ids) => {
API.deleteItem(ids).then(res => {
if(res.status) {
this.deleteItemVisible = false;
this.getTableDatas({})
message.success("删除成功")
} else {
message.error(res.errormsg || "删除失败")
}
})
}
validateForm(params) {
if(!notNull(params.name)) {
message.warning("名称不能为空")
return false;
}
if(!notNull(params.dataType)) {
message.warning("字段类型不能为空")
return false;
}
if(!notNull(params.roundingMode)) {
message.warning("舍入规则不能为空")
return false;
}
if(!notNull(params.pattern)) {
message.warning("保留小数位不能为空")
return false;
}
if(!notNull(params.valueType)) {
message.warning("取值方式不能为空")
return false;
}
return true
}
//薪资项目-新增薪资项目
@action
saveItem = (params, continueFlag, searchParams = {}) => {
if(!this.validateForm(params)) {
return
}
API.saveItem(params).then(res => {
if(res.status) {
if(!continueFlag) {
this.editSlideVisible = false;
}
this.initRequest();
this.getTableDatas(searchParams);
message.success("保存成功")
} else {
message.error(res.errormsg || "保存失败")
}
})
}
// 获取公式变量类型
@action
salaryAcctImportTemplateParam = (params = {}) => {
API.formualSearchGroup(params).then(res => {
if(res.status) {
this.searchGroup = res.data
} else {
message.error(res.errormsg || "获取失败")
}
})
}
// 获取公式变量字段
@action
formualSearchField = (sourceId, params = {}) => {
API.formualSearchField({sourceId, ...params}).then(res => {
if(res.status) {
this.searchFields = res.data
} else {
message.error(res.errormsg || "获取失败")
}
})
}
// 保存公式
@action
saveFormual = (params) => {
return new Promise((resolve, reject) => {
API.saveFormual(params).then(res => {
if(res.status) {
message.success("保存成功");
resolve(res.data)
} else {
message.error(res.errormsg || "保存失败");
reject()
}
})
})
}
// 根据id获取formual
@action
detailFormual = (formulaId) => {
return new Promise((resolve, reject) => {
API.detailFormual({formulaId}).then(res => {
if(res.status) {
this.formulaDetail = res.data
resolve(res.data)
} else {
message.error(res.errormsg || "获取失败")
reject()
}
})
})
}
}