非系统人员管理-新功能开发

This commit is contained in:
黎永顺 2023-03-14 18:14:23 +08:00
parent eb207921cd
commit efadb541f5
10 changed files with 444 additions and 105 deletions

View File

@ -71,6 +71,17 @@ export const saveLedgerBasic = params => {
}).then(res => res.json());
};
//薪资帐套外部人员范围(包含)列表
export const getLedgerPersonRangeExtList = params => {
return fetch("/api/bs/hrmsalary/salarysob/range/ext/list", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
//薪资帐套人员范围(包含)列表
export const getLedgerPersonRangeInclude = params => {
return fetch("/api/bs/hrmsalary/salarysob/range/listInclude", {
@ -104,6 +115,28 @@ export const getLedgerPersonRangeForm = params => {
);
};
//保存薪资帐套外部人员范围
export const saveLedgerPersonExtRange = params => {
return fetch("/api/bs/hrmsalary/salarysob/ext/save", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
//删除薪资帐套外部人员范围
export const deleteLedgerPersonExtRange = params => {
return fetch("/api/bs/hrmsalary/salarysob/range/ext/delete", {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(params)
}).then(res => res.json());
};
//保存薪资帐套人员范围
export const saveLedgerPersonRange = params => {
return fetch("/api/bs/hrmsalary/salarysob/range/save", {

View File

@ -70,6 +70,18 @@ export const deleteTaxAgent = (params) => {
export const taxAgentRangeSave = (params) => {
return postFetch("/api/bs/hrmsalary/taxAgent/range/save", params);
};
//非系统人员范围查询
export const taxAgentRangelistExt = (params) => {
return postFetch("/api/bs/hrmsalary/taxAgent/range/listExt", params);
};
//非系统人员范围删除
export const taxAgentRangeExtDelete = (params) => {
return postFetch("/api/bs/hrmsalary/taxAgent/range/ext/delete", params);
};
//非系统人员范围保存
export const taxAgentRangeExtSave = (params) => {
return postFetch("/api/bs/hrmsalary/taxAgent/range/ext/save", params);
};
//人员范围删除
export const taxAgentRangeDelete = (params) => {
return postFetch("/api/bs/hrmsalary/taxAgent/range/delete", params);

View File

@ -0,0 +1,86 @@
/*
* Author: 黎永顺
* name: 外部人员添加弹框
* Description:
* Date: 2023/3/14
*/
import React, { Component } from "react";
import { WeaBrowser, WeaDialog, WeaFormItem, WeaSearchGroup } from "ecCom";
import { Button, Modal } from "antd";
class Index extends Component {
constructor(props) {
super(props);
this.state = {
targetIds: "",
targetNames: ""
};
}
handleExternalPersonSave = () => {
const { targetIds } = this.state;
const { onExternalPersonSave } = this.props;
if (!_.isEmpty(targetIds)) {
onExternalPersonSave({ targetIds: targetIds.split(",") });
} else {
Modal.warning({
title: "信息确认",
content: "必要信息不完整,红色*为必填项!"
});
}
};
render() {
const { targetIds, targetNames } = this.state;
const { onCancel, visible, loading } = this.props;
const buttons = [
<Button type="primary" onClick={this.handleExternalPersonSave} loading={loading}>确定</Button>,
<Button type="ghost" onClick={onCancel}>取消</Button>
];
return (
<WeaDialog
title="关联非系统人员"
visible={visible}
style={{ width: 600 }}
buttons={buttons}
onCancel={onCancel}
>
<WeaSearchGroup col={1} needTigger title="" showGroup center>
<WeaFormItem label="外部人员" labelCol={{ span: 6 }} wrapperCol={{ span: 18 }}>
<WeaBrowser
title="外部人员"
type={162}
viewAttr={3}
isSingle={false}
value={targetIds}
valueSpan={targetNames}
completeParams={{
type: 162,
fielddbtype: "browser.salaryExtEmp",
f_weaver_belongto_usertype: "0"
}}
conditionDataParams={{
type: "browser.salaryExtEmp",
fielddbtype: "browser.salaryExtEmp",
f_weaver_belongto_usertype: "0"
}}
dataParams={{
type: "browser.salaryExtEmp",
f_weaver_belongto_usertype: "0"
}}
destDataParams={{
type: "browser.salaryExtEmp",
f_weaver_belongto_usertype: "0"
}}
isMultCheckbox
inputStyle={{ width: 375 }}
onChange={(targetIds, targetNames) => this.setState({ targetIds, targetNames })}
/>
</WeaFormItem>
</WeaSearchGroup>
</WeaDialog>
);
}
}
export default Index;

View File

@ -21,7 +21,7 @@ class ExternalPersonManageEditSlide extends Component {
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.visible !== this.props.visible && nextProps.visible) this.detail(nextProps);
if (nextProps.visible !== this.props.visible && nextProps.visible && nextProps.id) this.detail(nextProps);
}
detail = (props) => {
@ -61,7 +61,7 @@ class ExternalPersonManageEditSlide extends Component {
};
handleSubmit = () => {
const { form, id, onCancel } = this.props;
const { form, id, onCancel, title } = this.props;
form.validateForm().then(f => {
if (f.isValid) {
const payload = _.omitBy(form.getFormParams(), _.isEmpty);
@ -70,10 +70,10 @@ class ExternalPersonManageEditSlide extends Component {
APIFOX(id ? { ...payload, id } : payload).then(({ status, errormsg }) => {
this.setState({ loading: false });
if (status) {
message.success("创建成功");
message.success(`${title}成功`);
onCancel(true);
} else {
message.error(errormsg || "创建失败");
message.error(errormsg || `${title}失败`);
}
}).catch(() => this.setState({ loading: false }));
} else {

View File

@ -11,19 +11,24 @@ import { WeaButtonIcon, WeaInputSearch, WeaTab } from "ecCom";
import PersonalScopeTable from "../../../components/PersonalScopeTable";
import PersonalScopeModal from "../../../components/PersonalScopeModal";
import {
deleteLedgerPersonExtRange,
deleteLedgerPersonRange,
getLedgerPersonRangeExclude,
getLedgerPersonRangeExtList,
getLedgerPersonRangeInclude,
salarysobRangeImportData,
salarysobRangePreview,
saveLedgerPersonExtRange,
saveLedgerPersonRange
} from "../../../apis/ledger";
import ImportModal from "../../../components/importModal";
import { importEmployColumns } from "../../taxAgent/columns";
import ExternalPersonModal from "../../../components/externalPersonModal";
const APIFox = {
listInclude: getLedgerPersonRangeInclude,
listExclude: getLedgerPersonRangeExclude
listExclude: getLedgerPersonRangeExclude,
externalList: getLedgerPersonRangeExtList
};
const APISaveFox = {
save: saveLedgerPersonRange
@ -39,6 +44,8 @@ class LedgerAssociatedPersonnel extends Component {
selectedKey: "listInclude",
rowKeys: [],
previewDataSource: [],
externalPersonModalVisible: false,
loading: false,
importParams: {
visible: false,
step: 0,
@ -52,6 +59,25 @@ class LedgerAssociatedPersonnel extends Component {
};
}
/*
* Author: 黎永顺
* Description:外部人员保存
* Params:
* Date: 2023/3/14
*/
handleSaveExternalPerson = (val) => {
const { editId: salarySobId } = this.props;
saveLedgerPersonExtRange({ ...val, salarySobId }).then(({ status, errormsg }) => {
this.setState({ loading: false });
if (status) {
message.success("保存成功");
this.setState({ externalPersonModalVisible: false });
this.personalScopeTableRef.getPersonalScopeList();
} else {
message.error(errormsg || "保存失败");
}
}).catch(() => this.setState({ loading: true }));
};
/*
* Author: 黎永顺
* Description: 删除人员范围
@ -59,23 +85,55 @@ class LedgerAssociatedPersonnel extends Component {
* Date: 2022/11/30
*/
taxAgentRangeDelete = () => {
const { selectedKey } = this.state;
Modal.confirm({
title: "信息确认",
content: "确认要删除吗?",
onOk: () => {
deleteLedgerPersonRange(this.state.rowKeys).then(({ status, errormsg }) => {
if (status) {
message.success("删除成功");
this.setState({ rowKeys: [] }, () => {
this.personalScopeTableRef.clearRowkeys();
});
} else {
message.error(errormsg || "删除失败");
}
});
return new Promise((resolve, reject) => {
return selectedKey === "externalList" ? this.deleteLedgerPersonExtRange(resolve, reject) : this.deleteLedgerPersonRange(resolve, reject);
}).catch(() => console.log("出错!"));
}
});
};
deleteLedgerPersonExtRange = (resolve, reject) => {
message.destroy();
message.loading("正在删除中...", 0);
deleteLedgerPersonExtRange(this.state.rowKeys).then(({ status, errormsg }) => {
message.destroy();
resolve();
if (status) {
message.success("删除成功");
this.setState({ rowKeys: [] }, () => {
this.personalScopeTableRef.clearRowkeys();
});
} else {
message.error(errormsg || "删除失败");
}
}).catch(() => {
message.destroy();
reject();
});
};
deleteLedgerPersonRange = (resolve, reject) => {
message.destroy();
message.loading("正在删除中...", 0);
deleteLedgerPersonRange(this.state.rowKeys).then(({ status, errormsg }) => {
message.destroy();
resolve();
if (status) {
message.success("删除成功");
this.setState({ rowKeys: [] }, () => {
this.personalScopeTableRef.clearRowkeys();
});
} else {
message.error(errormsg || "删除失败");
}
}).catch(() => {
message.destroy();
reject();
});
};
/*
* Author: 黎永顺
* Description:新增人员范围
@ -84,13 +142,17 @@ class LedgerAssociatedPersonnel extends Component {
*/
handleAddPersonal = () => {
const { personalAddModal, selectedKey } = this.state;
this.setState({
personalAddModal: {
...personalAddModal,
visible: true,
includeType: selectedKey === "listInclude" ? 1 : 0
}
});
if (selectedKey === "externalList") {
this.setState({ externalPersonModalVisible: true });
} else {
this.setState({
personalAddModal: {
...personalAddModal,
visible: true,
includeType: selectedKey === "listInclude" ? 1 : 0
}
});
}
};
/*
* Author: 黎永顺
@ -138,7 +200,9 @@ class LedgerAssociatedPersonnel extends Component {
rowKeys,
personalAddModal,
importParams,
previewDataSource
previewDataSource,
externalPersonModalVisible,
loading
} = this.state;
const { taxAgentStore: { showOperateBtn }, editId, saveSalarySobId } = this.props;
const topTab = [
@ -149,6 +213,10 @@ class LedgerAssociatedPersonnel extends Component {
{
title: "从范围中排除",
viewcondition: "listExclude"
},
{
title: "非系统人员范围",
viewcondition: "externalList"
}
];
const btns = showOperateBtn ? [
@ -192,7 +260,7 @@ class LedgerAssociatedPersonnel extends Component {
datas={topTab}
keyParam="viewcondition" //主键
selectedKey={selectedKey}
buttons={showOperateBtn && selectedKey === "listExclude" ? btns.slice(1) : btns}
buttons={showOperateBtn && selectedKey === "listInclude" ? btns : btns.slice(1)}
onChange={selectedKey => this.setState({ selectedKey })}
/>
<PersonalScopeTable
@ -234,6 +302,13 @@ class LedgerAssociatedPersonnel extends Component {
}}
/>
)}
{/*非系统人员添加*/}
<ExternalPersonModal
visible={externalPersonModalVisible}
loading={loading}
onCancel={() => this.setState({ externalPersonModalVisible: false })}
onExternalPersonSave={this.handleSaveExternalPerson}
/>
{/*新增人员范围*/}
<PersonalScopeModal
{...personalAddModal}

View File

@ -3,6 +3,7 @@ import { Button } from "antd";
import { WeaDialog, WeaFormItem, WeaSearchGroup, WeaSteps, WeaTab } from "ecCom";
import { WeaSwitch } from "comsMobx";
import PersonalScope from "./personalScope";
import "./index.less";
const titleOuter = {
display: "flex",
@ -136,6 +137,7 @@ export default class EditModal extends React.Component {
</div>
}
initLoadCss
className="taxagentModalWrapper"
visible={visible}
style={{ width: 800, height: 450 }}
hasScroll>

View File

@ -108,3 +108,46 @@
}
}
}
.taxagentModalWrapper {
.topMenuWrapper {
height: 47px;
line-height: 47px;
padding: 0 10px;
display: flex;
justify-content: space-between;
.topMenuTabWrapper {
display: flex;
align-items: center;
.menuTabItem {
height: 24px;
padding: 0 16px;
border-radius: 3px;
margin-right: 6px;
display: flex;
align-items: center;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
cursor: pointer;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
flex: 1 1 auto;
line-height: normal;
}
.menuTabItem:hover {
color: #5d9cec;
background: #e9f7ff;
}
.active {
color: #5d9cec;
background: #e9f7ff;
}
}
}
}

View File

@ -18,6 +18,7 @@ export default class PersonalScope extends Component {
constructor(props) {
super(props);
this.state = {
deleteLoading: false,
queryLoading: false,
submitLoading: false,
targetTypeList: [],
@ -46,7 +47,6 @@ export default class PersonalScope extends Component {
}
});
};
getTaxAgentRangeListInclude = (pageModule = {}) => {
const { taxAgentId } = this.props;
const { getTaxAgentRangeListInclude } = this.props.taxAgentStore;
@ -75,6 +75,35 @@ export default class PersonalScope extends Component {
}
);
};
taxAgentRangelistExt = (pageModule = {}) => {
const { taxAgentId } = this.props;
const { taxAgentRangelistExt } = this.props.taxAgentStore;
this.setState({ queryLoading: true });
taxAgentRangelistExt({ ...pageModule, taxAgentId }).then(
({ status, data }) => {
this.setState({ queryLoading: false });
if (status && !_.isEmpty(data)) {
const {
columns,
list: dataSource,
pageNum: current,
pageSize,
total
} = data;
this.setState({
columns,
dataSource,
pageObj: {
current,
pageSize,
total
}
});
}
}
);
};
getTaxAgentRangeListExclude = (pageModule = {}) => {
const { taxAgentId } = this.props;
const { getTaxAgentRangeListExclude } = this.props.taxAgentStore;
@ -105,17 +134,93 @@ export default class PersonalScope extends Component {
};
taxAgentRangeDelete = ({ ids, tab }) => {
const { taxAgentRangeDelete } = this.props.taxAgentStore;
const { pageObj } = this.state;
Modal.confirm({
title: "信息确认",
content: `确认删除该条数据吗?`,
onOk: () => {
taxAgentRangeDelete(ids).then(({ status, errorMsg }) => {
return new Promise((resolve, reject) => {
return tab == "2" ? this.taxAgentExtRangeDeleteComfirm(resolve, reject, ids) : this.taxAgentRangeDeleteComfirm(resolve, reject, ids, tab);
}).catch(() => console.log("出错!"));
}
});
};
taxAgentExtRangeDeleteComfirm = (resolve, reject, ids) => {
const { taxAgentRangeExtDelete } = this.props.taxAgentStore;
const { pageObj } = this.state;
message.destroy();
message.loading("正在删除中...", 0);
taxAgentRangeExtDelete(ids).then(({ status, errormsg }) => {
message.destroy();
resolve();
if (status) {
this.tagAgentRef.onSelectChange([]);
message.success("删除成功");
this.taxAgentRangelistExt({
current: pageObj.current,
pageSize: pageObj.pageSize
});
} else {
message.error(errormsg || "删除失败");
}
}).catch(() => {
message.destroy();
reject();
});
};
taxAgentRangeDeleteComfirm = (resolve, reject, ids, tab) => {
const { taxAgentRangeDelete } = this.props.taxAgentStore;
const { pageObj } = this.state;
message.destroy();
message.loading("正在删除中...", 0);
taxAgentRangeDelete(ids).then(({ status, errormsg }) => {
message.destroy();
resolve();
if (status) {
this.tagAgentRef.onSelectChange([]);
message.success("删除成功");
tab == "1"
? this.getTaxAgentRangeListInclude({
current: pageObj.current,
pageSize: pageObj.pageSize
})
: this.getTaxAgentRangeListExclude({
current: pageObj.current,
pageSize: pageObj.pageSize
});
} else {
message.error(errormsg || "删除失败");
}
}).catch(() => {
message.destroy();
reject();
});
};
taxAgentRangeSave = (module) => {
const { taxAgentId } = this.props;
const { pageObj } = this.state;
const { includeType } = module;
const { taxAgentRangeSave, taxAgentRangeExtSave } = this.props.taxAgentStore;
this.setState({ submitLoading: true });
if (includeType === 2) {
taxAgentRangeExtSave({ taxAgentId, ..._.pick(module, "targetIds") }).then(({ status, errormsg }) => {
this.setState({ submitLoading: false });
if (status) {
this.tagAgentRef.closeModal();
message.success("新增成功");
this.taxAgentRangelistExt({ current: pageObj.current, pageSize: pageObj.pageSize });
} else {
message.error(errormsg || "新增失败");
}
});
} else {
taxAgentRangeSave({ ...module, taxAgentId }).then(
({ status, errormsg }) => {
this.setState({ submitLoading: false });
if (status) {
this.tagAgentRef.onSelectChange([]);
message.success("删除成功");
tab == "1"
this.tagAgentRef.closeModal();
message.success("新增成功");
includeType == "1"
? this.getTaxAgentRangeListInclude({
current: pageObj.current,
pageSize: pageObj.pageSize
@ -125,41 +230,11 @@ export default class PersonalScope extends Component {
pageSize: pageObj.pageSize
});
} else {
message.error(errorMsg || "删除失败");
message.error(errormsg || "新增失败");
}
});
},
onCancel() {
}
});
};
taxAgentRangeSave = (module) => {
const { taxAgentId } = this.props;
const { pageObj } = this.state;
const { includeType } = module;
const { taxAgentRangeSave } = this.props.taxAgentStore;
this.setState({ submitLoading: true });
taxAgentRangeSave({ ...module, taxAgentId }).then(
({ status, errormsg }) => {
this.setState({ submitLoading: false });
if (status) {
this.tagAgentRef.closeModal();
message.success("新增成功");
includeType == "1"
? this.getTaxAgentRangeListInclude({
current: pageObj.current,
pageSize: pageObj.pageSize
})
: this.getTaxAgentRangeListExclude({
current: pageObj.current,
pageSize: pageObj.pageSize
});
} else {
message.error(errormsg || "新增失败");
}
}
);
);
}
};
render() {
@ -209,12 +284,14 @@ export default class PersonalScope extends Component {
onTaxAngetSearch={({ targetName, tab }) => {
tab == "1"
? this.getTaxAgentRangeListInclude({ targetName })
: this.getTaxAgentRangeListExclude({ targetName });
: tab == "0" ? this.getTaxAgentRangeListExclude({ targetName }) :
this.taxAgentRangelistExt({ targetName });
}}
onChangeTab={(tab) => {
this.tagAgentRef.onSelectChange([]);
tab == "1"
? this.getTaxAgentRangeListInclude()
: this.getTaxAgentRangeListExclude();
: tab == "0" ? this.getTaxAgentRangeListExclude() : this.taxAgentRangelistExt();
}}
/>
</div>

View File

@ -5,12 +5,14 @@ import AddTaxAgentModal from "./addTaxAgentModal";
import ImportModal from "../../components/importModal";
import { taxAgentRangeImportData, taxAgentRangePreview } from "../../apis/taxAgent";
import { importEmployColumns } from "./columns";
import ExternalPersonModal from "../../components/externalPersonModal";
import cs from "classnames";
export default class SlideTaxagentUser extends React.Component {
constructor(props) {
super(props);
this.state = {
externalPersonModalVisible: false, //外部人员关联弹框
addTaxagentModalVisible: false,
includeType: 1,
selectedRowKeys: [],
@ -42,8 +44,8 @@ export default class SlideTaxagentUser extends React.Component {
handleTabDelete = () => {
const { onDeleteTaxAgent } = this.props;
const { includeType } = this.state;
if (this.state.selectedRowKeys.length == 0) {
const { includeType, selectedRowKeys } = this.state;
if (selectedRowKeys.length === 0) {
message.warning("未选择条目");
return;
}
@ -61,9 +63,10 @@ export default class SlideTaxagentUser extends React.Component {
closeModal = () => {
this.setState({
addTaxagentModalVisible: false
addTaxagentModalVisible: false,
externalPersonModalVisible: false
}, () => {
this.addTaxRef.handleReset();
this.addTaxRef && this.addTaxRef.handleReset();
});
};
handleInitModal = () => {
@ -107,6 +110,7 @@ export default class SlideTaxagentUser extends React.Component {
selectedRowKeys,
searchValue,
addTaxagentModalVisible,
externalPersonModalVisible,
importParams,
previewDataSource
} = this.state;
@ -155,39 +159,23 @@ export default class SlideTaxagentUser extends React.Component {
return (
<div className="slideRefereUser">
<div
style={{
height: "47px",
lineHeight: "47px",
paddingLeft: "10px",
paddingRight: "10px",
display: "flex",
justifyContent: "space-between"
}}>
<div
style={{
display: "inlineBlock",
color: "#666"
}}>
<div className="topMenuWrapper">
<div className="topMenuTabWrapper">
<span
style={{
cursor: "pointer",
color: includeType == 1 ? "#4ba9f2" : "#000"
}}
onClick={() => {
this.handleTabClick(1);
}}>
className={cs("menuTabItem", { "active": includeType == 1 })}
onClick={() => this.handleTabClick(1)}>
人员范围
</span>|<span
style={{
cursor: "pointer",
color: includeType == 0 ? "#4ba9f2" : "#000"
}}
onClick={() => {
this.handleTabClick(0);
}}>
</span>
<span
className={cs("menuTabItem", { "active": includeType == 0 })}
onClick={() => this.handleTabClick(0)}>
从范围中排除
</span>
<span
className={cs("menuTabItem", { "active": includeType == 2 })}
onClick={() => this.handleTabClick(2)}>
非系统人员范围
</span>
</div>
<div>
<div
@ -211,14 +199,15 @@ export default class SlideTaxagentUser extends React.Component {
<div className="addOrDelBtn">
<Button type="primary"
size="small"
onClick={() => {
this.handleTabDelete();
}}
onClick={this.handleTabDelete}
><span className="icon-coms-form-delete-hot" title="删除"></span></Button>
<Button type="primary"
size="small"
style={{ marginRight: 10 }}
onClick={() => this.setState({ addTaxagentModalVisible: true })}
onClick={() => {
const key = includeType === 2 ? "externalPersonModalVisible" : "addTaxagentModalVisible";
this.setState({ [key]: true });
}}
><span className="icon-coms-Add-to-hot" title="添加"></span></Button>
</div>
</div>
@ -226,6 +215,7 @@ export default class SlideTaxagentUser extends React.Component {
</div>
<WeaInputSearch
style={{ marginTop: "8px", float: "right" }}
placeholder="请输入对象"
value={searchValue}
onChange={value => {
this.setState({ searchValue: value });
@ -246,7 +236,12 @@ export default class SlideTaxagentUser extends React.Component {
pagination={pagination}
/>
</div>
<ExternalPersonModal
visible={externalPersonModalVisible}
loading={submitLoading}
onCancel={() => this.setState({ externalPersonModalVisible: false })}
onExternalPersonSave={val => onTaxAgentSave({ ...val, includeType: includeType })}
/>
<AddTaxAgentModal
ref={(ref) => this.addTaxRef = ref}
loading={submitLoading}

View File

@ -4,6 +4,7 @@ import { WeaForm, WeaTableNew } from "comsMobx";
import * as API from "../apis/taxAgent"; // 引入API接口文件
import { decentralizationConditions, editConditions } from "../pages/taxAgent/editConditions";
import { taxAgentRangeExtDelete } from "../apis/taxAgent";
const { TableStore } = WeaTableNew;
@ -163,6 +164,21 @@ export class TaxAgentStore {
getTaxAgentRangeForm = params => {
return API.getTaxAgentRangeForm(params);
};
// 非系统人员范围保存
@action
taxAgentRangeExtSave = params => {
return API.taxAgentRangeExtSave(params);
};
// 非系统人员范围查询
@action
taxAgentRangelistExt = params => {
return API.taxAgentRangelistExt(params);
};
// 非系统人员范围删除
@action
taxAgentRangeExtDelete = params => {
return API.taxAgentRangeExtDelete(params);
};
// 人员范围保存
@action
taxAgentRangeSave = params => {