From 9fcf7c1b260b0f603c38e6146489a65f7215c59e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com>
Date: Wed, 30 Nov 2022 17:38:01 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E7=A8=8E=E6=89=A3=E7=BC=B4=E4=B9=89?=
=?UTF-8?q?=E5=8A=A1=E4=BA=BA=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pages/salary/components/baseSettings.js | 34 ++++
.../pages/salary/components/index.less | 33 +++-
.../pages/salary/components/personalScope.js | 136 ++++++++++++++
.../salary/components/personalScopeModal.js | 119 +++++++++++++
.../salary/components/personalScopeTable.js | 135 ++++++++++++++
.../pages/salary/components/taxAgentSlide.js | 162 +++++++++++++++++
.../pages/salary/components/taxAgentTable.js | 116 ++++++++++++
pc4mobx/hrmSalary/pages/salary/index.less | 39 +++-
pc4mobx/hrmSalary/pages/salary/taxAgent.js | 167 +++++++++++++++++-
pc4mobx/hrmSalary/stores/taxAgent.js | 6 +
pc4mobx/hrmSalary/util/index.js | 1 +
11 files changed, 939 insertions(+), 9 deletions(-)
create mode 100644 pc4mobx/hrmSalary/pages/salary/components/baseSettings.js
create mode 100644 pc4mobx/hrmSalary/pages/salary/components/personalScope.js
create mode 100644 pc4mobx/hrmSalary/pages/salary/components/personalScopeModal.js
create mode 100644 pc4mobx/hrmSalary/pages/salary/components/personalScopeTable.js
create mode 100644 pc4mobx/hrmSalary/pages/salary/components/taxAgentSlide.js
create mode 100644 pc4mobx/hrmSalary/pages/salary/components/taxAgentTable.js
diff --git a/pc4mobx/hrmSalary/pages/salary/components/baseSettings.js b/pc4mobx/hrmSalary/pages/salary/components/baseSettings.js
new file mode 100644
index 00000000..ffdd7870
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salary/components/baseSettings.js
@@ -0,0 +1,34 @@
+/*
+ * Author: 黎永顺
+ * name: 基础设置
+ * Description:
+ * Date: 2022/11/29
+ */
+import React, { Component } from "react";
+import { inject, observer } from "mobx-react";
+import { decentralizationConditions, editConditions } from "../../taxAgent/editConditions";
+import { getSearchs } from "../../../util";
+
+@inject("taxAgentStore")
+@observer
+class BaseSettings extends Component {
+
+ componentDidMount() {
+
+ }
+
+ render() {
+ const { taxAgentStore: { salarytaxAgentForm }, decentralization } = this.props;
+ return (
+
+ {
+ decentralization === "0" ?
+ getSearchs(salarytaxAgentForm, decentralizationConditions, 1, true) :
+ getSearchs(salarytaxAgentForm, editConditions, 1, true)
+ }
+
+ );
+ }
+}
+
+export default BaseSettings;
diff --git a/pc4mobx/hrmSalary/pages/salary/components/index.less b/pc4mobx/hrmSalary/pages/salary/components/index.less
index ec181e16..e1bcdfe8 100644
--- a/pc4mobx/hrmSalary/pages/salary/components/index.less
+++ b/pc4mobx/hrmSalary/pages/salary/components/index.less
@@ -17,8 +17,39 @@
line-height: 20px;
padding: 0 16px;
display: inline-block;
- p{
+
+ p {
margin: 1rem 0;
}
}
}
+
+.slideOuterWrapper {
+ .wea-slide-modal-title {
+ height: initial;
+ line-height: initial;
+ text-align: left;
+ }
+
+ .rodal-close {
+ z-index: 99;
+ top: 10px !important;
+ }
+
+}
+
+@media (min-width: 1260px) {
+ .slideOuterWrapper {
+ .reqTopWrapper .wea-new-top-req-title > div:first-child > div {
+ max-width: 100% !important;
+ }
+ }
+}
+
+@media screen and (min-width: 1060px) and (max-width: 1260px) {
+ .slideOuterWrapper {
+ .reqTopWrapper .wea-new-top-req-title > div:first-child > div {
+ max-width: calc(100% - 96px) !important;
+ }
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/salary/components/personalScope.js b/pc4mobx/hrmSalary/pages/salary/components/personalScope.js
new file mode 100644
index 00000000..7486aa81
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salary/components/personalScope.js
@@ -0,0 +1,136 @@
+/*
+ * Author: 黎永顺
+ * name: 人员范围
+ * Description:
+ * Date: 2022/11/30
+ */
+import React, { Component } from "react";
+import { message, Modal } from "antd";
+import { inject, observer } from "mobx-react";
+import { WeaButtonIcon, WeaInputSearch, WeaTab } from "ecCom";
+import { taxAgentRangeDelete } from "../../../apis/taxAgent";
+import PersonalScopeTable from "./personalScopeTable";
+import PersonalScopeModal from "./personalScopeModal";
+
+
+@inject("taxAgentStore")
+@observer
+class PersonalScope extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ searchValue: "",
+ selectedKey: "listInclude",
+ rowKeys: [],
+ personalAddModal: {
+ visible: false,
+ title: "关联人员"
+ }
+ };
+ this.personalScopeTableRef = null;
+ }
+
+ componentDidMount() {
+ const { taxAgentStore: { hasIconInTax } } = this.props;
+ hasIconInTax();
+ }
+
+ /*
+ * Author: 黎永顺
+ * Description: 删除人员范围
+ * Params:
+ * Date: 2022/11/30
+ */
+ taxAgentRangeDelete = () => {
+ Modal.confirm({
+ title: "信息确认",
+ content: "确认要删除吗?",
+ onOk: () => {
+ taxAgentRangeDelete(this.state.rowKeys).then(({ status, errormsg }) => {
+ if (status) {
+ message.success("删除成功");
+ this.setState({ rowKeys: [] }, () => {
+ this.personalScopeTableRef.clearRowkeys();
+ });
+ } else {
+ message.error(errormsg || "删除失败");
+ }
+ });
+ },
+ onCancel: () => {
+ }
+ });
+ };
+ /*
+ * Author: 黎永顺
+ * Description:新增人员范围
+ * Params:
+ * Date: 2022/11/30
+ */
+ handleAddPersonal = () => {
+ const { personalAddModal } = this.state;
+ this.setState({
+ personalAddModal: { ...personalAddModal, visible: true }
+ });
+ };
+
+ render() {
+ const { selectedKey, searchValue, rowKeys, personalAddModal } = this.state;
+ const { taxAgentStore: { hideIconInTax, showSalaryItemBtn } } = this.props;
+ const topTab = [
+ {
+ title: "管理范围",
+ viewcondition: "listInclude"
+ },
+ {
+ title: "从范围中排除",
+ viewcondition: "listExclude"
+ }
+ ];
+ const btns = (hideIconInTax || showSalaryItemBtn) ? [
+ ,
+ ,
+ this.setState({ searchValue })}
+ placeholder="请输入对象"
+ onSearch={() => this.personalScopeTableRef.getPersonalScopeList()}
+ />
+ ] : [ this.setState({ searchValue })}
+ placeholder="请输入对象"
+ onSearch={() => this.personalScopeTableRef.getPersonalScopeList()}
+ />];
+ return (
+
+
this.setState({ selectedKey })}
+ />
+ this.personalScopeTableRef = dom}
+ tabActive={selectedKey}
+ searchValue={searchValue}
+ onChangeSelectKey={rowKeys => this.setState({ rowKeys })}
+ />
+
+ this.setState({
+ personalAddModal: { ...personalAddModal, visible: false }
+ })}/>
+
+ );
+ }
+}
+
+export default PersonalScope;
diff --git a/pc4mobx/hrmSalary/pages/salary/components/personalScopeModal.js b/pc4mobx/hrmSalary/pages/salary/components/personalScopeModal.js
new file mode 100644
index 00000000..0dcaa106
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salary/components/personalScopeModal.js
@@ -0,0 +1,119 @@
+/*
+ * Author: 黎永顺
+ * name: 新增人员范围弹框
+ * Description:
+ * Date: 2022/11/30
+ */
+import React, { Component } from "react";
+import { WeaBrowser, WeaDialog, WeaFormItem, WeaSearchGroup, WeaSelect } from "ecCom";
+import { Button } from "antd";
+import { getTaxAgentRangeForm } from "../../../apis/taxAgent";
+
+class PersonalScopeModal extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ employeeStatus: [],
+ targetTypeList: [],
+ targetType: "EMPLOYEE",
+ targetTypeIds: ""
+ };
+ }
+
+ componentDidMount() {
+ this.getTaxAgentRangeForm();
+ }
+
+ getTaxAgentRangeForm = () => {
+ getTaxAgentRangeForm().then(({ status, data }) => {
+ if (status) {
+ const { employeeStatus, targetTypeList } = data;
+ this.setState({
+ targetTypeList: _.map(targetTypeList, it => ({ key: it.id, showname: it.name })),
+ employeeStatus
+ });
+ }
+ });
+ };
+ renderBrowser = () => {
+ const { targetType, targetTypeIds } = this.state;
+ let browserType = {};
+ switch (targetType) {
+ case "EMPLOYEE":
+ browserType = { ...browserType, type: 17, title: "人员选择" };
+ break;
+ case "DEPT":
+ browserType = { ...browserType, type: 57, title: "部门选择" };
+ break;
+ case "SUBCOMPANY":
+ browserType = { ...browserType, type: 164, title: "分部选择" };
+ break;
+ case "POSITION":
+ browserType = { ...browserType, type: 278, title: "岗位选择" };
+ break;
+ default:
+ break;
+ }
+ return {
+ this.setState({ ids });
+ }}
+ />;
+ };
+ handleChangeTargetType = (targetType) => {
+ this.setState({
+ targetType
+ });
+ };
+
+ render() {
+ const { onCancel, title, visible } = this.props;
+ const { employeeStatus, targetTypeList, targetType } = this.state;
+ const buttons = [
+ ,
+
+ ];
+ return (
+
+
+
+
+
+ {this.renderBrowser()}
+
+
+
+
+
+
+ );
+ }
+}
+
+export default PersonalScopeModal;
diff --git a/pc4mobx/hrmSalary/pages/salary/components/personalScopeTable.js b/pc4mobx/hrmSalary/pages/salary/components/personalScopeTable.js
new file mode 100644
index 00000000..faa84352
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salary/components/personalScopeTable.js
@@ -0,0 +1,135 @@
+/*
+ * Author: 黎永顺
+ * name: 人员范围列表数据
+ * Description:
+ * Date: 2022/11/30
+ */
+import React, { Component } from "react";
+import { WeaTable } from "ecCom";
+import { getTaxAgentRangeListExclude, getTaxAgentRangeListInclude } from "../../../apis/taxAgent";
+import "./index.less";
+import { calcPageNo } from "../../../util";
+
+const APIFox = {
+ listInclude: getTaxAgentRangeListInclude,
+ listExclude: getTaxAgentRangeListExclude
+};
+
+class PersonalScopeTable extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ loading: {
+ query: false
+ },
+ dataSource: [],
+ columns: [],
+ selectedRowKeys: [],
+ pageInfo: {
+ current: 1,
+ pageSize: 10,
+ total: 0
+ }
+ };
+ }
+
+ componentDidMount() {
+ this.getPersonalScopeList();
+ }
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (nextProps.tabActive !== this.props.tabActive) {
+ this.setState({ selectedRowKeys: [] }, () => {
+ this.getPersonalScopeList(nextProps.tabActive);
+ nextProps.onChangeSelectKey([]);
+ });
+ }
+ }
+
+ getPersonalScopeList = (tabActive = this.props.tabActive) => {
+ const { searchValue } = this.props;
+ const { pageInfo, loading } = this.state;
+ const payload = {
+ targetName: searchValue,
+ ...pageInfo
+ };
+ this.setState({ loading: { ...loading, query: true } });
+ APIFox[tabActive](payload).then(({ status, data }) => {
+ this.setState({ loading: { ...loading, query: false } });
+ if (status) {
+ const { pageNum: current, pageSize, total, columns, list: dataSource } = data;
+ this.setState({
+ pageInfo: { ...pageInfo, current, pageSize, total },
+ dataSource,
+ columns: _.map(columns, item => {
+ return {
+ ...item,
+ render: (text) => {
+ return {text};
+ }
+ };
+ })
+ });
+ }
+ }).catch(() => {
+ this.setState({ loading: { ...loading, query: false } });
+ });
+ };
+
+ /*
+ * Author: 黎永顺
+ * Description: 清空选中项
+ * Params:
+ * Date: 2022/11/30
+ */
+ clearRowkeys = () => {
+ const { pageInfo, selectedRowKeys } = this.state;
+ this.setState({
+ selectedRowKeys: [],
+ pageInfo: {
+ ...pageInfo,
+ current: calcPageNo(pageInfo.total, pageInfo.current, 10, selectedRowKeys.length)
+ }
+ }, () => {
+ this.getPersonalScopeList();
+ });
+ };
+
+ render() {
+ const { dataSource, columns, pageInfo, loading, selectedRowKeys } = this.state;
+ const { onChangeSelectKey } = this.props;
+ const pagination = {
+ ...pageInfo,
+ showTotal: total => `共 ${total} 条`,
+ showQuickJumper: true,
+ pageSizeOptions: ["10", "20", "50", "100"],
+ onChange: current => {
+ this.setState({
+ pageInfo: { ...pageInfo, current }
+ }, () => {
+ this.getPersonalScopeList();
+ });
+ }
+ };
+ const rowSelection = {
+ selectedRowKeys,
+ onChange: (selectedRowKeys) => {
+ this.setState({ selectedRowKeys }, () => {
+ onChangeSelectKey(this.state.selectedRowKeys);
+ });
+ }
+ };
+ return (
+
+ );
+ }
+}
+
+export default PersonalScopeTable;
diff --git a/pc4mobx/hrmSalary/pages/salary/components/taxAgentSlide.js b/pc4mobx/hrmSalary/pages/salary/components/taxAgentSlide.js
new file mode 100644
index 00000000..7e6259fd
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salary/components/taxAgentSlide.js
@@ -0,0 +1,162 @@
+/*
+ * Author: 黎永顺
+ * name: 新增/编辑个税扣缴义务人
+ * Description:
+ * Date: 2022/11/29
+ */
+import React, { Component } from "react";
+import { inject, observer } from "mobx-react";
+import { Button } from "antd";
+import { WeaSlideModal, WeaSteps } from "ecCom";
+import SlideModalTitle from "../../../components/slideModalTitle";
+import { decentralizationConditions, editConditions } from "../../taxAgent/editConditions";
+import BaseSettings from "./baseSettings";
+import PersonalScope from "./personalScope";
+import "./index.less";
+
+const Step = WeaSteps.Step;
+const tabs = [
+ { key: 0, title: "基础设置" },
+ { key: 1, title: "报税信息" },
+ { key: 2, title: "人员范围" }
+];
+
+@inject("taxAgentStore")
+@observer
+class TaxAgentSlide extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ current: 0
+ };
+ }
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (nextProps.visible !== this.props.visible || nextProps.decentralization !== this.props.decentralization) {
+ const { taxAgentStore: { salarytaxAgentForm }, decentralization } = nextProps;
+ decentralization === "0" ?
+ salarytaxAgentForm.setCondition(decentralizationConditions, true) :
+ salarytaxAgentForm.setCondition(editConditions, true);
+ this.setState({ current: nextProps.current });
+ }
+ }
+
+ handleSave = () => {
+ const { taxAgentStore: { salarytaxAgentForm } } = this.props;
+ // salarytaxAgentForm.updateFields({
+ // name: { value: "data.name" },
+ // description: { value: "123", hide: true },
+ // });
+ // salarytaxAgentForm.setField("adminUserIds", {
+ // hide: true
+ // });
+
+ salarytaxAgentForm.validateForm().then((f) => {
+ if (f.isValid) {
+ const formData = salarytaxAgentForm.getFormParams();
+ console.log(formData);
+ } else {
+ f.showErrors();
+ }
+ });
+ };
+ renderChildren = () => {
+ const { current } = this.state;
+ const { decentralization } = this.props;
+ let CurrentDom = null;
+ switch (current) {
+ case 0:
+ CurrentDom = ;
+ break;
+ case 2:
+ CurrentDom = ;
+ break;
+ default:
+ CurrentDom = null;
+ break;
+ }
+ return CurrentDom;
+ };
+ renderCustomOperate = () => {
+ const { taxAgentId, taxAgentStore: { showOperateBtn } } = this.props;
+ const { current } = this.state;
+ let CurrentDom = [];
+ if(showOperateBtn){
+ switch (current) {
+ case 0:
+ CurrentDom = [
+
+ ];
+ break;
+ case 1:
+ const tmpV = [];
+ const tmpJ = [
+ ,
+
+ ];
+ CurrentDom = taxAgentId ? tmpV : [...tmpV, ...tmpJ];
+ break;
+ case 2:
+ CurrentDom = !taxAgentId ? [] : [];
+ break;
+ default:
+ break;
+ }
+ }
+ return CurrentDom;
+ };
+ handleChangeSlideTab = (current) => {
+ this.setState({ current: Number(current) });
+ };
+
+ render() {
+ const { title, visible, onCancel, taxAgentId, taxAgentStore: { showOperateBtn } } = this.props;
+ const { current } = this.state;
+ return (
+ {
+ }}
+ selectedTab={current}
+ customOperate={this.renderCustomOperate()}
+ subItemChange={this.handleChangeSlideTab}
+ />
+ }
+ content={
+
+ {
+ !taxAgentId &&
+
+ {
+ _.map(tabs, item => {
+ const { key, title } = item;
+ return ;
+ })
+ }
+
+ }
+ {
+ this.renderChildren()
+ }
+
+ }
+ onClose={onCancel}
+ />
+ );
+ }
+}
+
+export default TaxAgentSlide;
diff --git a/pc4mobx/hrmSalary/pages/salary/components/taxAgentTable.js b/pc4mobx/hrmSalary/pages/salary/components/taxAgentTable.js
new file mode 100644
index 00000000..8d9b2465
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salary/components/taxAgentTable.js
@@ -0,0 +1,116 @@
+/*
+ * Author: 黎永顺
+ * name: 个税扣缴义务人列表
+ * Description:
+ * Date: 2022/11/29
+ */
+import React, { Component } from "react";
+import { WeaTable } from "ecCom";
+import * as API from "../../../apis/taxAgent";
+import "./index.less";
+
+class TaxAgentTable extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ loading: {
+ query: false
+ },
+ dataSource: [],
+ columns: [],
+ pageInfo: {
+ current: 1,
+ pageSize: 10,
+ total: 0
+ }
+ };
+ }
+
+ componentDidMount() {
+ this.getTaxAgentList();
+ }
+
+ getTaxAgentList = () => {
+ const { pageInfo, loading } = this.state;
+ const { searchValue, onOperate } = this.props;
+ const payload = {
+ name: searchValue,
+ ...pageInfo
+ };
+ this.setState({ loading: { ...loading, query: true } });
+ API.getTaxAgentList(payload).then(({ status, data }) => {
+ this.setState({ loading: { ...loading, query: false } });
+ if (status) {
+ const { pageNum: current, pageSize, total, columns, list: dataSource } = data;
+ this.setState({
+ pageInfo: { ...pageInfo, current, pageSize, total },
+ dataSource,
+ columns: _.map(columns, item => {
+ if (item.dataIndex === "employeeRange") {
+ return {
+ ...item,
+ render: (text, record) => {
+ return onOperate("edit", record.id, 2)}>{text};
+ }
+ };
+ }
+ return {
+ ...item,
+ render: (text) => {
+ return {text};
+ }
+ };
+ })
+ });
+ }
+ }).catch(() => {
+ this.setState({ loading: { ...loading, query: false } });
+ });
+ };
+
+ render() {
+ const { dataSource, columns, pageInfo, loading } = this.state;
+ const { onOperate } = this.props;
+ const pagination = {
+ ...pageInfo,
+ showTotal: total => `共 ${total} 条`,
+ showSizeChanger: true,
+ showQuickJumper: true,
+ pageSizeOptions: ["10", "20", "50", "100"],
+ onShowSizeChange: (current, pageSize) => {
+ this.setState({
+ pageInfo: { ...pageInfo, current, pageSize }
+ }, () => {
+ this.getTaxAgentList();
+ });
+ },
+ onChange: current => {
+ this.setState({
+ pageInfo: { ...pageInfo, current }
+ }, () => {
+ this.getTaxAgentList();
+ });
+ }
+ };
+ return (
+
+
+ }
+ ]}
+ />
+ );
+ }
+}
+
+export default TaxAgentTable;
diff --git a/pc4mobx/hrmSalary/pages/salary/index.less b/pc4mobx/hrmSalary/pages/salary/index.less
index b9c1951d..d77e6909 100644
--- a/pc4mobx/hrmSalary/pages/salary/index.less
+++ b/pc4mobx/hrmSalary/pages/salary/index.less
@@ -1,7 +1,40 @@
-.salaryAgentWrapper{
- .comContent{
- .wea-search-group{
+.salaryAgentWrapper {
+ .comContent {
+ .wea-search-group {
padding: 0;
}
+
+ .customTitleWrapper {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .ant-btn {
+ margin-left: 10px;
+ border-radius: 0;
+ padding: 0;
+ background: transparent;
+ border: none;
+ font-size: 20px;
+ line-height: 20px;
+ }
+
+ .ant-btn.ant-btn-primary[disabled] {
+ color: #d8d8d8;
+ }
+
+ .ant-btn.ant-btn-primary {
+ color: #55a1f8;
+ }
+ }
+
+ .tdEllipsis {
+ display: inline-block;
+ width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
}
}
diff --git a/pc4mobx/hrmSalary/pages/salary/taxAgent.js b/pc4mobx/hrmSalary/pages/salary/taxAgent.js
index eaa8fc0c..5037f0c4 100644
--- a/pc4mobx/hrmSalary/pages/salary/taxAgent.js
+++ b/pc4mobx/hrmSalary/pages/salary/taxAgent.js
@@ -1,21 +1,178 @@
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
-import { WeaSearchGroup, WeaTop } from "ecCom";
+import { Button, message, Modal } from "antd";
+import { WeaCheckbox, WeaFormItem, WeaInputSearch, WeaSearchGroup, WeaTop } from "ecCom";
import ComHint from "./components/comHint";
+import TaxAgentTable from "./components/taxAgentTable";
+import TaxAgentSlide from "./components/taxAgentSlide";
+import * as API from "../../apis/taxAgent";
import "./index.less";
@inject("taxAgentStore")
@observer
class TaxAgent extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ searchValue: "",
+ decentralization: "0", //启用分权
+ permission: {},
+ taxAgentSlideProps: {
+ visible: false,
+ title: "新增个税扣缴义务人",
+ taxAgentId: "",
+ current: 0
+ }
+ };
+ this.taxAgentTableRef = null;
+ }
+
+ componentDidMount() {
+ this.getTaxAgentBaseForm();
+ this.getPermission();
+ }
+
+ getTaxAgentBaseForm = () => {
+ API.getTaxAgentBaseForm().then(({ status, data }) => {
+ if (status) {
+ const { devolutionStatus } = data;
+ this.setState({ decentralization: String(devolutionStatus || 0) });
+ }
+ });
+ };
+ getPermission = () => {
+ const { taxAgentStore: { getPermission } } = this.props;
+ getPermission().then(({ status, data }) => {
+ if (status) {
+ this.setState({ permission: data });
+ }
+ });
+ };
+ /*
+ * Author: 黎永顺
+ * Description:开启关闭个税扣缴义务人开关
+ * Params:
+ * Date: 2022/11/29
+ */
+ taxAgentBaseSave = devolutionStatus => {
+ this.setState({ decentralization: this.state.decentralization }, () => {
+ Modal.confirm({
+ title: "信息确认",
+ content: `确认${devolutionStatus === "0" ? "停用" : "启用"}分权?`,
+ onOk: () => {
+ const paylaod = { devolutionStatus };
+ const { taxAgentStore } = this.props;
+ const { taxAgentBaseSave, setSalarytaxAgentForm } = taxAgentStore;
+ taxAgentBaseSave(paylaod).then(({ status, errormsg }) => {
+ if (status) {
+ message.success(`${devolutionStatus === "0" ? "停用" : "启用"}分权成功`);
+ this.getTaxAgentBaseForm();
+ this.getPermission();
+ this.taxAgentTableRef.getTaxAgentList();
+ setSalarytaxAgentForm();
+ } else {
+ message.error(errormsg || `${devolutionStatus === "0" ? "停用" : "启用"}分权失败`);
+ }
+ });
+ },
+ onCancel() {
+ }
+ });
+ });
+ };
+ /*
+ * Author: 黎永顺
+ * Description:
+ * Params:添加个税扣缴义务人
+ * Date: 2022/11/29
+ */
+ handleAddTaxAgent = () => {
+ this.setState({
+ taxAgentSlideProps: {
+ ...this.state.taxAgentSlideProps,
+ visible: true, current: 0
+ }
+ });
+ };
+ handelResetSlide = () => {
+ const { taxAgentStore } = this.props;
+ const { salarytaxAgentForm } = taxAgentStore;
+ this.setState({
+ taxAgentSlideProps: {
+ ...this.state.taxAgentSlideProps,
+ visible: false,
+ title: "新增个税扣缴义务人",
+ taxAgentId: "",
+ current: 0
+ }
+ }, () => salarytaxAgentForm.resetForm());
+ };
+ handleOperate = (type, itemId, current = 0) => {
+ switch (type) {
+ case "edit":
+ this.setState({
+ taxAgentSlideProps: {
+ ...this.state.taxAgentSlideProps,
+ visible: true, title: "编辑个税扣缴义务人",
+ taxAgentId: itemId, current
+ }
+ });
+ break;
+ default:
+ break;
+ }
+ };
+
render() {
+ const { searchValue, decentralization, taxAgentSlideProps, permission } = this.state;
+ const { taxAgentStore: { showOperateBtn } } = this.props;
+ const btns = [
+ ,
+ this.setState({ searchValue })}
+ placeholder="请输入个税扣缴义务人名称"
+ onSearch={() => this.taxAgentTableRef.getTaxAgentList()}
+ />
+ ];
+ const customTitle =
+ 个税扣缴义务人
+ {
+ permission.isChief &&
+
+ }
+
;
return (
-
} iconBgcolor="#F14A2D">
+
}
+ iconBgcolor="#F14A2D"
+ buttons={btns}
+ >
-
-
+ {
+ permission.isChief &&
+
+
+
+
+
+ }
+
+ this.taxAgentTableRef = dom}/>
+
-
+
+
);
diff --git a/pc4mobx/hrmSalary/stores/taxAgent.js b/pc4mobx/hrmSalary/stores/taxAgent.js
index 3a042247..1d6052c8 100644
--- a/pc4mobx/hrmSalary/stores/taxAgent.js
+++ b/pc4mobx/hrmSalary/stores/taxAgent.js
@@ -9,6 +9,10 @@ import { hasIconInTax } from "../apis/taxAgent";
const { TableStore } = WeaTableNew;
export class TaxAgentStore {
+ @observable salarytaxAgentForm = new WeaForm(); //新版个税扣缴义务人表单实体
+
+
+
@observable tableStore = new TableStore(); // new table
@observable form = new WeaForm(); //表单实体
@observable formDecentralization = new WeaForm(); //关闭分权表单
@@ -39,6 +43,8 @@ export class TaxAgentStore {
@action setSalaryItemBtn = bool => (this.showSalaryItemBtn = bool);//薪资项目权限
+ @action setSalarytaxAgentForm = () => (this.salarytaxAgentForm = new WeaForm());//薪资项目权限
+
// 初始化操作
@action
doInit = params => {
diff --git a/pc4mobx/hrmSalary/util/index.js b/pc4mobx/hrmSalary/util/index.js
index ffaa1956..d132c64e 100644
--- a/pc4mobx/hrmSalary/util/index.js
+++ b/pc4mobx/hrmSalary/util/index.js
@@ -70,6 +70,7 @@ export const getSearchs = (form, condition, col, isCenter) => {
/>
),
colSpan:1,
+ hide: fields.hide
})
});
group.push(