个税对接-人员信息报送详情页
This commit is contained in:
parent
9cb47f784c
commit
c628b482f9
|
|
@ -7,20 +7,51 @@
|
||||||
import React, { Component } from "react";
|
import React, { Component } from "react";
|
||||||
import { WeaLocaleProvider } from "ecCom";
|
import { WeaLocaleProvider } from "ecCom";
|
||||||
import { getQueryString } from "../../../util/url";
|
import { getQueryString } from "../../../util/url";
|
||||||
|
import EmployeeDeclareDetailCalcDialog from "./employeeDeclareDetailCalcDialog";
|
||||||
|
|
||||||
const { getLabel } = WeaLocaleProvider;
|
const { getLabel } = WeaLocaleProvider;
|
||||||
|
|
||||||
class BaseInfo extends Component {
|
class BaseInfo extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
declareCalcDialog: {
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
handleOpenFailDialog = () => {
|
||||||
|
this.setState({
|
||||||
|
declareCalcDialog: {
|
||||||
|
visible: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
const { declareCalcDialog } = this.state;
|
||||||
return (
|
return (
|
||||||
<div className="base-info">
|
<div className="base-info">
|
||||||
<div className="left"><span>{getLabel(537996, "个税扣缴义务人")}:{getQueryString("taxName")}</span></div>
|
<div className="left"><span>{getLabel(537996, "个税扣缴义务人")}:{getQueryString("taxName")}</span></div>
|
||||||
<div className="right">
|
<div className="right">
|
||||||
<div className="header-declare-info">
|
<div className="header-declare-info">
|
||||||
<a href="javascript:void(0);" className="fail">{getLabel(111, "报送失败")}: 0</a>
|
<a href="javascript:void(0);" className="fail"
|
||||||
|
onClick={this.handleOpenFailDialog}>{getLabel(111, "报送失败")}: 0</a>
|
||||||
<span className="not">{getLabel(111, "未报送")}: 0</span>
|
<span className="not">{getLabel(111, "未报送")}: 0</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{/*报送失败数据查看*/}
|
||||||
|
<EmployeeDeclareDetailCalcDialog
|
||||||
|
{...declareCalcDialog}
|
||||||
|
onCancel={() => {
|
||||||
|
this.setState({
|
||||||
|
declareCalcDialog: {
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Author: 黎永顺
|
||||||
|
* name: 报送信息-失败查看弹框
|
||||||
|
* Description:
|
||||||
|
* Date: 2023/8/14
|
||||||
|
*/
|
||||||
|
import React, { Component } from "react";
|
||||||
|
import { WeaDialog, WeaLocaleProvider, WeaTable } from "ecCom";
|
||||||
|
import { Button, Col, Row } from "antd";
|
||||||
|
|
||||||
|
const { getLabel } = WeaLocaleProvider;
|
||||||
|
|
||||||
|
class EmployeeDeclareDetailCalcDialog extends Component {
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<WeaDialog
|
||||||
|
{...this.props}
|
||||||
|
scalable hasScroll className="declareCalcDialog" initLoadCss
|
||||||
|
title={(<Row className="declareCalcDialogTitle" type="flex">
|
||||||
|
<Col span={12} className="declareCalcDialogTitle-left">
|
||||||
|
<span className="title">{getLabel(111, "报送失败数据详情")}</span>
|
||||||
|
</Col>
|
||||||
|
<Col span={12} className="declareCalcDialogTitle-right">
|
||||||
|
<Button type="primary" onClick={this.handleSubmit}>{getLabel(81272, "导出全部")}</Button>
|
||||||
|
</Col>
|
||||||
|
</Row>)}
|
||||||
|
style={{
|
||||||
|
width: 1150,
|
||||||
|
height: 606.6,
|
||||||
|
minHeight: 200,
|
||||||
|
minWidth: 380,
|
||||||
|
maxHeight: "90%",
|
||||||
|
maxWidth: "90%",
|
||||||
|
overflow: "hidden",
|
||||||
|
transform: "translate(0px, 0px)"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div className="declareCalcDialogContent">
|
||||||
|
<WeaTable
|
||||||
|
columns={[{ dataIndex: "opt", title: "操作" }]}
|
||||||
|
dataSource={[]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</WeaDialog>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default EmployeeDeclareDetailCalcDialog;
|
||||||
|
|
@ -7,11 +7,37 @@
|
||||||
import React, { Component } from "react";
|
import React, { Component } from "react";
|
||||||
import { WeaLocaleProvider, WeaSlideModal } from "ecCom";
|
import { WeaLocaleProvider, WeaSlideModal } from "ecCom";
|
||||||
import { Button, Col, Row } from "antd";
|
import { Button, Col, Row } from "antd";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
|
import { declareConditions } from "../constants";
|
||||||
|
import { getSearchs } from "../../../util";
|
||||||
|
|
||||||
const { getLabel } = WeaLocaleProvider;
|
const { getLabel } = WeaLocaleProvider;
|
||||||
|
|
||||||
|
@inject("employeeDeclareStore")
|
||||||
|
@observer
|
||||||
class EmployeeDeclareDetailSchemaEditDialog extends Component {
|
class EmployeeDeclareDetailSchemaEditDialog extends Component {
|
||||||
|
componentDidMount() {
|
||||||
|
const { employeeDeclareStore: { declareForm } } = this.props;
|
||||||
|
declareForm.initFormFields(declareConditions);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillReceiveProps(nextProps, nextContext) {
|
||||||
|
}
|
||||||
|
|
||||||
|
handleSubmit = () => {
|
||||||
|
const { employeeDeclareStore: { declareForm: form } } = this.props;
|
||||||
|
form.validateForm().then(f => {
|
||||||
|
if (f.isValid) {
|
||||||
|
const payload = form.getFormParams();
|
||||||
|
console.log(payload);
|
||||||
|
} else {
|
||||||
|
f.showErrors();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
const { employeeDeclareStore: { declareForm: form } } = this.props;
|
||||||
return (
|
return (
|
||||||
<WeaSlideModal
|
<WeaSlideModal
|
||||||
{...this.props}
|
{...this.props}
|
||||||
|
|
@ -20,13 +46,15 @@ class EmployeeDeclareDetailSchemaEditDialog extends Component {
|
||||||
height={100} measureY="%"
|
height={100} measureY="%"
|
||||||
direction="right"
|
direction="right"
|
||||||
title={(<Row className="declareSchemeDialogTitle" type="flex">
|
title={(<Row className="declareSchemeDialogTitle" type="flex">
|
||||||
<Col span={12}>
|
<Col span={12} className="declareSchemeDialogTitle-left">
|
||||||
<i className="icon-coms-fa"/>
|
<div className="icon-circle-base"><i className="icon-coms-fa"/></div>
|
||||||
<span className="title">{getLabel(111, "本月新增数据")}</span>
|
<span className="title">{getLabel(111, "本月新增数据")}</span>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={12} style={{ textAlign: "right" }}><Button type="primary">保存</Button></Col>
|
<Col span={12} className="declareSchemeDialogTitle-right">
|
||||||
|
<Button type="primary" onClick={this.handleSubmit}>{getLabel(537558, "保存")}</Button>
|
||||||
|
</Col>
|
||||||
</Row>)}
|
</Row>)}
|
||||||
content={(<div className="declareSchemeDialog">Content</div>)}
|
content={(<div className="declareSchemeDialog">{getSearchs(form, declareConditions, 1)}</div>)}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ export const submitStatus = [
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
export const advanceConditions = [
|
export const advanceConditions = [
|
||||||
{
|
{
|
||||||
items: [
|
items: [
|
||||||
|
|
@ -185,3 +186,67 @@ export const advanceConditions = [
|
||||||
defaultshow: true
|
defaultshow: true
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
export const declareConditions = [
|
||||||
|
{
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
colSpan: 2,
|
||||||
|
fieldcol: 12,
|
||||||
|
labelcol: 6,
|
||||||
|
rules: "selectLinkageRequired",
|
||||||
|
conditionType: "SELECT_LINKAGE",
|
||||||
|
selectLinkageDatas: {
|
||||||
|
"1": {
|
||||||
|
browserConditionParam: {
|
||||||
|
completeParams: {},
|
||||||
|
conditionDataParams: {},
|
||||||
|
dataParams: {},
|
||||||
|
destDataParams: {},
|
||||||
|
hasAddBtn: false,
|
||||||
|
hasAdvanceSerach: true,
|
||||||
|
idSeparator: ",",
|
||||||
|
isAutoComplete: 1,
|
||||||
|
isDetail: 0,
|
||||||
|
isMultCheckbox: false,
|
||||||
|
isSingle: true,
|
||||||
|
linkUrl: "",
|
||||||
|
pageSize: 10,
|
||||||
|
quickSearchName: "",
|
||||||
|
replaceDatas: [],
|
||||||
|
title: "",
|
||||||
|
type: "1"
|
||||||
|
},
|
||||||
|
conditionType: "BROWSER",
|
||||||
|
domkey: ["INPUT"]
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
conditionType: "CHECKBOX",
|
||||||
|
domkey: ["CHECKBOX"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
options: [
|
||||||
|
{ key: "1", showname: "今天" },
|
||||||
|
{ key: "2", showname: "本周" }
|
||||||
|
],
|
||||||
|
domkey: ["secleve"],
|
||||||
|
label: "系统名称",
|
||||||
|
lanId: 111,
|
||||||
|
viewAttr: 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
colSpan: 1,
|
||||||
|
conditionType: "INPUT",
|
||||||
|
domkey: ["keyword"],
|
||||||
|
fieldcol: 12,
|
||||||
|
label: "证件姓名",
|
||||||
|
lanId: 111,
|
||||||
|
labelcol: 6,
|
||||||
|
value: "",
|
||||||
|
rules: "required",
|
||||||
|
viewAttr: 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
defaultshow: true
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import React, { Component } from "react";
|
||||||
import { WeaDatePicker, WeaLocaleProvider, WeaSelect, WeaTab, WeaTop } from "ecCom";
|
import { WeaDatePicker, WeaLocaleProvider, WeaSelect, WeaTab, WeaTop } from "ecCom";
|
||||||
import { Button, Dropdown, Menu, Spin } from "antd";
|
import { Button, Dropdown, Menu, Spin } from "antd";
|
||||||
import BaseInfo from "./components/baseInfo";
|
import BaseInfo from "./components/baseInfo";
|
||||||
|
import EmployeeDeclareDetailSchemaEditDialog from "./components/employeeDeclareDetailSchemaEditDialog";
|
||||||
import { advanceConditions, submitStatus } from "./constants";
|
import { advanceConditions, submitStatus } from "./constants";
|
||||||
import { getSearchs } from "../../util";
|
import { getSearchs } from "../../util";
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
|
|
@ -25,7 +26,10 @@ class Index extends Component {
|
||||||
selectedKey: "0",
|
selectedKey: "0",
|
||||||
showSearchAd: false,
|
showSearchAd: false,
|
||||||
declareStatus: "ALL",
|
declareStatus: "ALL",
|
||||||
taxCycle: new Date()
|
taxCycle: new Date(),
|
||||||
|
declareEditDialog: {
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -34,12 +38,17 @@ class Index extends Component {
|
||||||
document.title = getLabel(544289, "人员信息报送");
|
document.title = getLabel(544289, "人员信息报送");
|
||||||
advanceForm.initFormFields(advanceConditions);
|
advanceForm.initFormFields(advanceConditions);
|
||||||
window.addEventListener("message", this.handleReceive, false);
|
window.addEventListener("message", this.handleReceive, false);
|
||||||
|
this.setCss();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
window.removeEventListener("message", this.handleReceive, false);
|
window.removeEventListener("message", this.handleReceive, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setCss = () => {
|
||||||
|
$($("head")[0]).append("<style id=\"theme-style\" type=\"text/css\">" + ".ant-calendar-picker-container { right: 0 !important; left: auto !important}" + "</style>");
|
||||||
|
};
|
||||||
|
|
||||||
handleReceive = ({ data }) => {
|
handleReceive = ({ data }) => {
|
||||||
const { type, payload: { id, params } = {} } = data;
|
const { type, payload: { id, params } = {} } = data;
|
||||||
if (type === "init") {
|
if (type === "init") {
|
||||||
|
|
@ -55,9 +64,16 @@ class Index extends Component {
|
||||||
const childFrameObj = document.getElementById("atdTable");
|
const childFrameObj = document.getElementById("atdTable");
|
||||||
childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({}), "*");
|
childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({}), "*");
|
||||||
};
|
};
|
||||||
|
handleAdd = () => {
|
||||||
|
this.setState({
|
||||||
|
declareEditDialog: {
|
||||||
|
visible: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { selectedKey, showSearchAd, declareStatus, taxCycle } = this.state;
|
const { selectedKey, showSearchAd, declareStatus, taxCycle, declareEditDialog } = this.state;
|
||||||
const { taxAgentStore: { showOperateBtn }, employeeDeclareStore: { advanceForm: form } } = this.props;
|
const { taxAgentStore: { showOperateBtn }, employeeDeclareStore: { advanceForm: form } } = this.props;
|
||||||
const menu = (
|
const menu = (
|
||||||
<Menu>
|
<Menu>
|
||||||
|
|
@ -100,6 +116,7 @@ class Index extends Component {
|
||||||
advanceHeight={300} searchsAd={getSearchs(form, toJS(advanceConditions), 2)}
|
advanceHeight={300} searchsAd={getSearchs(form, toJS(advanceConditions), 2)}
|
||||||
buttons={[
|
buttons={[
|
||||||
<Dropdown.Button
|
<Dropdown.Button
|
||||||
|
onClick={this.handleAdd}
|
||||||
overlay={
|
overlay={
|
||||||
<Menu>
|
<Menu>
|
||||||
<Menu.Item key="1">{getLabel(32935, "导入")}</Menu.Item>
|
<Menu.Item key="1">{getLabel(32935, "导入")}</Menu.Item>
|
||||||
|
|
@ -126,6 +143,17 @@ class Index extends Component {
|
||||||
id="atdTable"
|
id="atdTable"
|
||||||
/>
|
/>
|
||||||
</Spin>
|
</Spin>
|
||||||
|
{/*新增编辑报送信息*/}
|
||||||
|
<EmployeeDeclareDetailSchemaEditDialog
|
||||||
|
{...declareEditDialog}
|
||||||
|
onClose={() => {
|
||||||
|
this.setState({
|
||||||
|
declareEditDialog: {
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -70,15 +70,92 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-calendar-picker-container {
|
//.ant-calendar-picker-container {
|
||||||
right: 0 !important;
|
// right: 0 !important;
|
||||||
left: auto !important;
|
// left: auto !important;
|
||||||
|
//}
|
||||||
|
|
||||||
|
.wea-slide-modal-title {
|
||||||
|
border-bottom: 1px solid #e5e5e5 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wea-slide-modal-content {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.declareSchemeDialogTitle {
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
|
||||||
|
.declareSchemeDialogTitle-left {
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 16px;
|
||||||
|
|
||||||
|
.icon-circle-base {
|
||||||
|
background: rgb(241, 74, 45);
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
color: #111;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.declareSchemeDialogTitle-right {
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 56px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.declareSchemeDialog {
|
.declareSchemeDialog {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
background: #f6f6f6;
|
||||||
|
|
||||||
|
.wea-search-group .wea-content {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wea-search-group {
|
||||||
|
border: 1px solid #e5e5e5;
|
||||||
|
border-bottom: none;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
.wea-form-item {
|
||||||
|
padding: 5px 16px;
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wea-search-group, .wea-form-cell {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.declareCalcDialog {
|
||||||
|
.declareCalcDialogTitle {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.declareCalcDialogTitle-left {
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
color: #111;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.declareCalcDialogTitle-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.declareCalcDialogContent {
|
||||||
|
height: 100%;
|
||||||
|
padding: 16px;
|
||||||
|
background: #f6f6f6;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.flex {
|
.flex {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ const { TableStore } = WeaTableNew;
|
||||||
|
|
||||||
export class EmployeeDeclareStore {
|
export class EmployeeDeclareStore {
|
||||||
@observable advanceForm = new WeaForm(); //人员信息报送详情页面,高级搜索form实例
|
@observable advanceForm = new WeaForm(); //人员信息报送详情页面,高级搜索form实例
|
||||||
|
@observable declareForm = new WeaForm(); //人员信息报送详情页面,新增编辑报送信息form实例
|
||||||
@observable tableStore = new TableStore();
|
@observable tableStore = new TableStore();
|
||||||
|
|
||||||
@action("...")
|
@action("...")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue