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

455 lines
12 KiB
JavaScript

import { observable, action, toJS } from 'mobx';
import { message } from 'antd';
import { WeaForm, WeaTableNew } from 'comsMobx';
import moment from 'moment'
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 pageInfo = {}; // 分页数据
@observable salaryArchiveTaxAgentForm = {}
@observable salaryItemChangeForm = {}
@observable taxAgentList = []
@observable salaryItemList = []
@observable singleSalaryItemList = []
@observable singleTaxAgentList = []
@observable currentId = ""
@observable editAgentVisible = false
// ** 设置导入参数 start **
@action
setPreviewDataSource = (previewDataSource) => {
this.previewDataSource = previewDataSource
}
// ** 设置导入参数 end **
// 初始化操作
@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 = {...formParams, ...params}
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;
})
this.pageInfo = res.data.pageInfo
} 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) => {
return new Promise((resolve, reject) => {
API.importSalaryArchive(params).then(res => {
if(res.status) {
// message.success("导入成功")
this.getTableDatas();
resolve(res.data)
} else {
message.error(res.errormsg || "接口异常")
reject()
}
})
})
}
// 导出档案
@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()
}
})
})
}
convertForm = (resData) => {
let salaryItemChangeForm = {}
salaryItemChangeForm.adjustReasonList = resData.salaryArchiveItemForm.adjustReasonList.map(item => {
item = {...item}
item.key = item.id;
item.showname = item.content
item.selected = false
return item
})
salaryItemChangeForm.salaryItemList = resData.salaryArchiveItemDetail.salaryItemList.map(item => {
item = {...item}
item.key = item.id;
item.showname = item.content
item.selected = false
return item
})
salaryItemChangeForm.columns = resData.salaryArchiveItemDetail.columns.map(item => {
let result = {}
result.title = item
if(item == "薪资项目") {
result.dataIndex = "salaryItem"
result.key = "salaryItem"
}
if(item == "调整前") {
result.dataIndex = "salaryBefore"
result.key = "salaryBefore"
}
if(item == "调整后") {
result.dataIndex = "adjustAfter"
result.key = "adjustAfter"
}
return result
})
salaryItemChangeForm.dataSource = resData.salaryArchiveItemDetail.list.map((item, index) => {
item = {...item}
item.key = (index + 1).toString()
return item
})
let effectiveTime = resData.salaryArchiveItemForm.effectiveTime
if(effectiveTime) {
salaryItemChangeForm.effectiveTime = moment(new Date(effectiveTime)).format("YYYY-MM-DD")
}
salaryItemChangeForm.description = resData.salaryArchiveItemForm.description
salaryItemChangeForm.adjustReason = resData.salaryArchiveItemForm.adjustReason
return salaryItemChangeForm
}
// 薪资档案-获取薪资项目调整表单
@action
getSalaryItemForm = (id) => {
return new Promise((resolve, reject) => {
API.getSalaryItemForm({salaryArchiveItemId: id}).then(res => {
if(res.status) {
this.salaryItemChangeForm = this.convertForm(res.data)
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 || "获取失败")
}
})
}
// 设置当前查看的数据id
@action
setCurrentId = (id) => this.currentId = id
// 设置编辑个税义务人修改表modal
@action
setEditAgentVisible = editAgentVisible => this.editAgentVisible = editAgentVisible;
// 通过个税义务人编辑进入列表
@action
getTaxAgentFormByTaxAgentId = (id) => {
return new Promise((resolve, reject) => {
API.getTaxAgentFormBySalaryArchiveTaxAgentId({salaryArchiveTaxAgentId: id}).then(res => {
if(res.status) {
let form = res.data.salaryArchiveTaxAgentForm
form.effectiveTime = moment(new Date(form.effectiveTime)).format("YYYY-MM-DD")
this.salaryArchiveTaxAgentForm = form
resolve(form)
} else {
message.error(res.errormsg || "获取失败")
reject()
}
})
})
}
validateSaveSalaryForm = (params) => {
if(!notNull(params.salaryArchiveId)) {
message.error("档案id不能为空")
return false
}
if(!notNull(params.effectiveTime)) {
message.error("生效日期不能为空")
return false
}
if(!notNull(params.adjustReason)) {
message.error("调整原因不能为空")
return false
}
if(!params.salaryArchiveItems || params.salaryArchiveItems.length == 0 ) {
message.error("调整明细不能为空")
return false
}
for(let i = 0; i < params.salaryArchiveItems.length; i++) {
if(!notNull(params.salaryArchiveItems[i].salaryItemId)) {
message.error("薪资项目不能为空")
return false;
}
if(!notNull(params.salaryArchiveItems[i].adjustValue)) {
message.error("调整后不能为空")
return false;
}
}
return true;
}
// 保存调薪
@action
saveSalaryItem = (params) => {
if(!this.validateSaveSalaryForm(params)) {
return
}
return new Promise((resolve, reject) => {
API.saveSalaryItem(params).then(res => {
if(res.status) {
message.success("保存成功")
resolve()
} else {
message.error(res.errormsg || "保存失败")
reject()
}
})
})
}
// 调整=薪资项目调整-获取调整前的值
@action
getSalaryItemAdjustBeforeValue = (params) => {
return new Promise((resolve, reject) => {
API.getSalaryItemAdjustBeforeValue(params).then(res => {
if(res.status) {
resolve(res.data)
} else {
message.error(res.errormsg || "获取失败")
reject(res.errormsg)
}
})
})
}
// 调整-薪资项目-编辑获取表单
@action
getSalaryItemFormByItemId = (id) => {
return new Promise((resolve, reject) => {
API.getSalaryItemFormByItemId({salaryArchiveItemId: id}).then(res => {
if(res.status) {
this.salaryItemChangeForm = this.convertForm(res.data)
resolve(this.salaryItemChangeForm)
} else {
message.error(res.errormsg || "获取失败")
reject()
}
})
})
}
}