313 lines
7.7 KiB
JavaScript
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()
|
|
}
|
|
})
|
|
})
|
|
|
|
}
|
|
} |