455 lines
12 KiB
JavaScript
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()
|
|
}
|
|
})
|
|
})
|
|
|
|
}
|
|
} |