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

309 lines
8.0 KiB
JavaScript

import { observable, action, toJS } from 'mobx';
import { message } from 'antd';
import { WeaForm, WeaTableNew } from 'comsMobx';
import * as API from '../apis/archive'; // 引入API接口文件
import { notNull } from '../util/validate'
const { TableStore } = WeaTableNew;
export class salaryFileStore {
@observable tableStore = new TableStore(); // new table
@observable form = new WeaForm(); // nrew 一个form
@observable condition = []; // 存储后台得到的form数据
@observable hasRight = true; // 判断用户是有权限查看当前页面: 没有权限渲染无权限页面,有权限渲染数据
@observable showSearchAd = false; // 高级搜索面板显示
@observable loading = true; // 数据加载状态
@observable importType = [];
@observable previewColumns = [];
@observable previewDataSource = [];
@observable dataSource = [];
@observable detailForm= {}
@observable salaryArchiveTaxAgentForm = {}
@observable salaryItemChangeForm = {}
@observable taxAgentList = []
@observable salaryItemList = []
@observable singleSalaryItemList = []
@observable singleTaxAgentList = []
// 初始化操作
@action
doInit = () => {
// this.getCondition();
this.getTableDatas();
this.getImportTypes();
}
// 获取导入类型
@action
getImportTypes = () => {
API.getImportTypes().then(res => {
if(res.status) {
this.importType = res.data
} else {
message.error(res.errormsg || "获取失败")
}
})
}
// 获得高级搜索表单数据
@action
getCondition = () => {
API.getCondition().then(action(res => {
if (res.api_status) { // 接口请求成功/失败处理
this.condition = res.condition;
this.form.initFormFields(res.condition); // 渲染高级搜索form表单
} else {
message.error(res.msg || '接口调用失败!')
}
}));
}
// 渲染table数据1
@action
getTableDatas = (params) => {
this.loading = true;
const formParams = this.form.getFormParams() || {};
params = params || formParams;
API.getArchiveList(params).then(action(res => {
if (res.status) { // 接口请求成功/失败处理
this.tableStore.getDatas(res.data.dataKey.datas); // table 请求数据
this.dataSource = res.data.pageInfo.list.map(item => {
item.key = item.id
return item;
})
} else {
message.error(res.errormsg || '接口调用失败!')
}
this.loading = false;
}));
}
@action
setShowSearchAd = bool => this.showSearchAd = bool;
// 高级搜索 - 搜索
@action doSearch = () => {
this.getTableDatas();
this.showSearchAd = false;
}
// 导入预览
@action
importPreview = (params) => {
API.importPreview(params).then(res => {
if(res.status) {
let headers = res.data.headers
this.previewColumns = headers.map((item, index) => {
return {
key: index,
title: item,
dataIndex: index
}
})
let list = res.data.list;
this.previewDataSource = list.map(item => {
let result = {}
item.map((i, index) => {
result[index] = i
})
return result;
})
} else {
message.error(res.errormsg || "获取数据失败")
}
})
}
// 导入档案
@action
importSalaryArchive = (params) => {
API.importSalaryArchive(params).then(res => {
if(res.status) {
message.success("导入成功")
} else {
message.error(res.errormsg || "接口异常")
}
})
}
// 导出档案
@action
exportSalaryArchive = (ids = "") => {
API.exportSalaryArchive(ids)
}
// 获取详情
@action
getArchiveForm = (salaryArchiveId) => {
API.getArchiveForm({salaryArchiveId}).then(res => {
if(res.status) {
this.detailForm = res.data
} else {
message.error(res.errormsg || "获取失败")
}
})
}
// 个税义务人表单
valideTaxAgentForm(params) {
if(!notNull(params.effectiveTime)) {
message.warning("生效日期不能为空")
return false
}
if(!notNull(params.adjustReason)) {
message.warning("调整原因不能为空")
return false
}
if(!notNull(params.taxAgentId)) {
message.warning("调整后个税义务人不能为空")
return false
}
return true;
}
// 薪资档案-保存个税扣缴义务人调整
@action
saveTaxAgent = (params) => {
if(!this.valideTaxAgentForm(params)) {
return
}
return new Promise((resolve, reject) => {
API.saveTaxAgent(params).then(res => {
if(res.status) {
message.success("保存成功");
resolve()
} else {
message.error(res.errormsg || "保存失败")
reject()
}
})
})
}
// 调整-义务扣缴人-调整表单
@action
getTaxAgentForm = (salaryArchiveId) => {
return new Promise((resolve, reject) => {
API.getTaxAgentForm({salaryArchiveId}).then(res => {
if(res.status) {
this.salaryArchiveTaxAgentForm = res.data.salaryArchiveTaxAgentForm
resolve()
} else {
message.error(res.errormsg || "获取失败")
reject()
}
})
})
}
// 薪资档案-获取薪资项目调整表单
@action
getSalaryItemForm = (id) => {
return new Promise((resolve, reject) => {
API.getSalaryItemForm({salaryArchiveItemId: id}).then(res => {
if(res.status) {
this.salaryItemChangeForm = {}
this.salaryItemChangeForm.adjustReasonList = res.data.salaryArchiveItemForm.adjustReasonList.map(item => {
item = {...item}
item.key = item.id;
item.showname = item.content
item.selected = false
return item
})
this.salaryItemChangeForm.salaryItemList = res.data.salaryArchiveItemDetail.salaryItemList.map(item => {
item = {...item}
item.key = item.id;
item.showname = item.content
item.selected = false
return item
})
this.salaryItemChangeForm.columns = res.data.salaryArchiveItemDetail.columns.map(item => {
let result = {}
result.title = item
if(item == "薪资项目") {
result.dataIndex = "salaryItem"
result.key = "salaryItem"
}
if(item == "调整前") {
result.dataIndex = "before"
result.key = "before"
}
if(item == "调整后") {
result.dataIndex = "after"
result.key = "after"
}
return result
})
resolve()
} else {
message.error(res.errormsg || "获取失败")
reject()
}
})
})
}
// 调整记录 个税义务人调整列表
@action
adjustRecordTaxAgentList = (params) => {
API.adjustRecordTaxAgentList(params).then(res => {
if(res.status) {
this.taxAgentList = res.data
} else {
message.error(res.errormsg || "获取失败")
}
})
}
// 调整记录 薪资项目调整记录
@action
adjustRecordSalaryItemList = (params) => {
API.adjustRecordSalaryItemList(params).then(res => {
if(res.status) {
this.salaryItemList = res.data;
} else {
message.error(res.errormsg || "获取失败")
}
})
}
// slide 薪资项目列表
@action
fetchSingleSalaryItemList = (params) => {
API.singleSalaryItemList(params).then(res => {
if(res.status) {
this.singleSalaryItemList = res.data
} else {
message.error(res.errormsg || "获取失败");
}
})
}
// slide 个税义务人列表
@action
fetchSingleTaxAgentList = (params) => {
API.singleTaxAgentList(params).then(res => {
if(res.status) {
this.singleTaxAgentList = res.data
} else {
message.error(res.errormsg || "获取失败")
}
})
}
}