Merge branch 'hotfix/2.8.3.2307.01' into release/2.8.3.2307.01

# Conflicts:
#	pc4mobx/hrmSalary/pages/socialSecurityBenefits/archives/index.js
This commit is contained in:
黎永顺 2023-07-11 10:11:58 +08:00
commit 986e2d7f4a
17 changed files with 598 additions and 79 deletions

View File

@ -26,7 +26,7 @@ export default class CalculateDetail extends React.Component {
departmentIds: "", departmentIds: "",
positionIds: "", positionIds: "",
subcompanyIds: "", subcompanyIds: "",
status: "", statuses: "",
consolidatedTaxation: "0" consolidatedTaxation: "0"
}, },
selectedKey: "0", selectedKey: "0",
@ -115,7 +115,7 @@ export default class CalculateDetail extends React.Component {
); );
}; };
Select = (value, key) => { Select = (value, key) => {
const { status } = this.state.searchItemsValue; const { statuses } = this.state.searchItemsValue;
return ( return (
<WeaFormItem <WeaFormItem
label={value} label={value}
@ -123,10 +123,13 @@ export default class CalculateDetail extends React.Component {
wrapperCol={{ span: 18 }} wrapperCol={{ span: 18 }}
> >
<WeaSelect <WeaSelect
value={status} multiple
value={statuses}
options={[ options={[
{ key: "", showname: "" }, { key: "ALL", showname: "全部" }, { key: "0", showname: "试用" }, { key: "1", showname: "正式" },
{ key: "NORMAL", showname: "在职" }, { key: "UNAVAILABLE", showname: "离职" } { key: "2", showname: "临时" }, { key: "3", showname: "试用延期" },
{ key: "4", showname: "解雇" }, { key: "5", showname: "离职" },
{ key: "6", showname: "退休" }
]} ]}
onChange={(val) => this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } })}/> onChange={(val) => this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } })}/>
</WeaFormItem> </WeaFormItem>
@ -338,7 +341,7 @@ export default class CalculateDetail extends React.Component {
workcode: "", workcode: "",
departmentIds: "", departmentIds: "",
positionIds: "", positionIds: "",
status: "", statuses: "",
consolidatedTaxation: "0" consolidatedTaxation: "0"
} }
})}> })}>
@ -356,7 +359,7 @@ export default class CalculateDetail extends React.Component {
{ com: this.Browser("分部", "subcompanyIds") }, { com: this.Browser("分部", "subcompanyIds") },
{ com: this.Browser("部门", "departmentIds") }, { com: this.Browser("部门", "departmentIds") },
{ com: this.Browser("岗位", "positionIds") }, { com: this.Browser("岗位", "positionIds") },
{ com: this.Select("状态", "status") }, { com: this.Select("状态", "statuses") },
{ com: this.Checkbox("合并计税", "consolidatedTaxation") } { com: this.Checkbox("合并计税", "consolidatedTaxation") }
]; ];
return <WeaSearchGroup title={"基本信息"} items={searchItems} showGroup/>; return <WeaSearchGroup title={"基本信息"} items={searchItems} showGroup/>;

View File

@ -17,7 +17,7 @@ export default class UserSure extends React.Component {
workcode: "", workcode: "",
departmentIds: "", departmentIds: "",
positionIds: "", positionIds: "",
status: "" statuses: ""
}, },
selectedKey: "0", selectedKey: "0",
selectedRowKeys: [], // table 选中项 selectedRowKeys: [], // table 选中项
@ -78,7 +78,7 @@ export default class UserSure extends React.Component {
); );
}; };
Select = (value, key) => { Select = (value, key) => {
const { status } = this.state.searchItemsValue; const { statuses } = this.state.searchItemsValue;
return ( return (
<WeaFormItem <WeaFormItem
label={value} label={value}
@ -86,10 +86,13 @@ export default class UserSure extends React.Component {
wrapperCol={{ span: 18 }} wrapperCol={{ span: 18 }}
> >
<WeaSelect <WeaSelect
value={String(status)} multiple
value={String(statuses)}
options={[ options={[
{ key: "", showname: "" }, { key: "ALL", showname: "全部" }, { key: "0", showname: "试用" }, { key: "1", showname: "正式" },
{ key: "NORMAL", showname: "在职" }, { key: "UNAVAILABLE", showname: "离职" } { key: "2", showname: "临时" }, { key: "3", showname: "试用延期" },
{ key: "4", showname: "解雇" }, { key: "5", showname: "离职" },
{ key: "6", showname: "退休" }
]} ]}
onChange={(val) => this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } })}/> onChange={(val) => this.setState({ searchItemsValue: { ...this.state.searchItemsValue, [key]: val } })}/>
</WeaFormItem> </WeaFormItem>
@ -342,7 +345,7 @@ export default class UserSure extends React.Component {
employeeName: "", employeeName: "",
departmentIds: "", departmentIds: "",
positionIds: "", positionIds: "",
status: "" statuses: ""
} }
})}> })}>
重置 重置
@ -358,7 +361,7 @@ export default class UserSure extends React.Component {
{ com: this.Input("工号", "workcode") }, { com: this.Input("工号", "workcode") },
{ com: this.Browser("部门", "departmentIds") }, { com: this.Browser("部门", "departmentIds") },
{ com: this.Browser("岗位", "positionIds") }, { com: this.Browser("岗位", "positionIds") },
{ com: this.Select("状态", "status") } { com: this.Select("状态", "statuses") }
]; ];
return <WeaSearchGroup title={"基本信息"} items={searchItems} showGroup/>; return <WeaSearchGroup title={"基本信息"} items={searchItems} showGroup/>;
}; };

View File

@ -2,12 +2,12 @@
.accumulated { .accumulated {
.wea-form-cell-wrapper { .wea-form-cell-wrapper {
& > div:first-child { & > div:first-child {
width: 10% !important; height: 46px !important;
line-height: 46px; line-height: 46px;
} }
& > div:nth-child(2) { & > div:nth-child(2) {
width: 40% !important; //width: 40% !important;
.wea-form-item-wrapper { .wea-form-item-wrapper {
display: flex !important; display: flex !important;
@ -20,7 +20,7 @@
} }
& > div:last-child { & > div:last-child {
width: 40% !important; //width: 40% !important;
} }
} }
} }

View File

@ -18,6 +18,7 @@ class TableRecord extends Component {
loading: { loading: {
query: false query: false
}, },
width: 0,
dataSource: [], dataSource: [],
columns: [], columns: [],
selectedRowKeys: [], selectedRowKeys: [],
@ -37,13 +38,23 @@ class TableRecord extends Component {
} }
componentDidMount() { componentDidMount() {
this.setState({ width: window.innerWidth });
this.convertData(this.props); this.convertData(this.props);
window.addEventListener("resize", this.resizeWidth);
}
componentWillUnmount() {
window.removeEventListener("resize", this.resizeWidth);
} }
componentWillReceiveProps(nextProps, nextContext) { componentWillReceiveProps(nextProps, nextContext) {
this.convertData(nextProps); this.convertData(nextProps);
} }
resizeWidth = (e) => {
this.setState({ width: e.target.innerWidth });
};
convertData = (props) => { convertData = (props) => {
const { recordPayload } = this.state; const { recordPayload } = this.state;
const { record, screenParams } = props; const { record, screenParams } = props;
@ -116,7 +127,7 @@ class TableRecord extends Component {
render() { render() {
const { className, screenParams, taxAgentOption, record } = this.props; const { className, screenParams, taxAgentOption, record } = this.props;
const { columns, dataSource, loading, selectedRowKeys, pageInfo, recordPayload } = this.state; const { columns, dataSource, loading, selectedRowKeys, pageInfo, recordPayload, width } = this.state;
const rowSelection = { const rowSelection = {
selectedRowKeys, selectedRowKeys,
onChange: (selectedRowKeys) => this.setState({ selectedRowKeys }) onChange: (selectedRowKeys) => this.setState({ selectedRowKeys })
@ -172,7 +183,7 @@ class TableRecord extends Component {
<div className="tableRecordWrapper"> <div className="tableRecordWrapper">
{ {
!_.isEmpty(screenParams) && !_.isEmpty(screenParams) &&
<WeaSearchGroup className={className} showGroup needTigger={false} items={items} col={3}/> <WeaSearchGroup className={className} showGroup needTigger={false} items={items} col={width > 1280 ? 3 : 2}/>
} }
<UnifiedTable <UnifiedTable
rowKey="id" rowKey="id"

View File

@ -399,66 +399,73 @@ export const dataCollectCondition = [
{ {
items: [ items: [
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpChildEducation"], domkey: ["addUpChildEducation"],
fieldcol: 14, fieldcol: 14,
label: "累计子女教育", label: "累计子女教育",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpContinuingEducation"], domkey: ["addUpContinuingEducation"],
fieldcol: 14, fieldcol: 14,
label: "累计继续教育", label: "累计继续教育",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpHousingLoanInterest"], domkey: ["addUpHousingLoanInterest"],
fieldcol: 14, fieldcol: 14,
label: "累计住房贷款利息", label: "累计住房贷款利息",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpHousingRent"], domkey: ["addUpHousingRent"],
fieldcol: 14, fieldcol: 14,
label: "累计住房租金", label: "累计住房租金",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpSupportElderly"], domkey: ["addUpSupportElderly"],
fieldcol: 14, fieldcol: 14,
label: "累计赡养老人", label: "累计赡养老人",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpIllnessMedical"], domkey: ["addUpIllnessMedical"],
fieldcol: 14, fieldcol: 14,
label: "累计大病医疗", label: "累计大病医疗",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpInfantCare"], domkey: ["addUpInfantCare"],
fieldcol: 14, fieldcol: 14,
label: "累计婴幼儿照护", label: "累计婴幼儿照护",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
} }
], ],

View File

@ -69,156 +69,173 @@ export const dataCollectCondition = [
{ {
items: [ items: [
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpIncome"], domkey: ["addUpIncome"],
fieldcol: 14, fieldcol: 14,
label: "累计收入额", label: "累计收入额",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpSubtraction"], domkey: ["addUpSubtraction"],
fieldcol: 14, fieldcol: 14,
label: "累计减除费用", label: "累计减除费用",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpSocialSecurityTotal"], domkey: ["addUpSocialSecurityTotal"],
fieldcol: 14, fieldcol: 14,
label: "累计社保个人合计", label: "累计社保个人合计",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpAccumulationFundTotal"], domkey: ["addUpAccumulationFundTotal"],
fieldcol: 14, fieldcol: 14,
label: "累计公积金个人合计", label: "累计公积金个人合计",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpChildEducation"], domkey: ["addUpChildEducation"],
fieldcol: 14, fieldcol: 14,
label: "累计子女教育", label: "累计子女教育",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpContinuingEducation"], domkey: ["addUpContinuingEducation"],
fieldcol: 14, fieldcol: 14,
label: "累计继续教育", label: "累计继续教育",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpHousingLoanInterest"], domkey: ["addUpHousingLoanInterest"],
fieldcol: 14, fieldcol: 14,
label: "累计住房贷款利息", label: "累计住房贷款利息",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpHousingRent"], domkey: ["addUpHousingRent"],
fieldcol: 14, fieldcol: 14,
label: "累计住房租金", label: "累计住房租金",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpSupportElderly"], domkey: ["addUpSupportElderly"],
fieldcol: 14, fieldcol: 14,
label: "累计赡养老人", label: "累计赡养老人",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpIllnessMedical"], domkey: ["addUpIllnessMedical"],
fieldcol: 14, fieldcol: 14,
label: "累计大病医疗", label: "累计大病医疗",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpEnterpriseAndOther"], domkey: ["addUpEnterpriseAndOther"],
fieldcol: 14, fieldcol: 14,
label: "累计企业(职业)年金及其他福利", label: "累计企业(职业)年金及其他福利",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpOtherDeduction"], domkey: ["addUpOtherDeduction"],
fieldcol: 14, fieldcol: 14,
label: "累计其他免税扣除", label: "累计其他免税扣除",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpTaxExemptIncome"], domkey: ["addUpTaxExemptIncome"],
fieldcol: 14, fieldcol: 14,
label: "累计免税收入", label: "累计免税收入",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpAllowedDonation"], domkey: ["addUpAllowedDonation"],
fieldcol: 14, fieldcol: 14,
label: "累计准予扣除的捐赠额", label: "累计准予扣除的捐赠额",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpTaxSavings"], domkey: ["addUpTaxSavings"],
fieldcol: 14, fieldcol: 14,
label: "累计减免税额", label: "累计减免税额",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpAdvanceTax"], domkey: ["addUpAdvanceTax"],
fieldcol: 14, fieldcol: 14,
label: "累计已预扣预缴税额", label: "累计已预扣预缴税额",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["addUpInfantCare"], domkey: ["addUpInfantCare"],
fieldcol: 14, fieldcol: 14,
label: "累计婴幼儿照护", label: "累计婴幼儿照护",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
} }
], ],

View File

@ -69,48 +69,53 @@ export const dataCollectCondition = [
{ {
items: [ items: [
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["businessHealthyInsurance"], domkey: ["businessHealthyInsurance"],
fieldcol: 14, fieldcol: 14,
label: "商业健康保险", label: "商业健康保险",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["taxDelayEndowmentInsurance"], domkey: ["taxDelayEndowmentInsurance"],
fieldcol: 14, fieldcol: 14,
label: "税延养老保险", label: "税延养老保险",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["otherDeduction"], domkey: ["otherDeduction"],
fieldcol: 14, fieldcol: 14,
label: "其他", label: "其他",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["deductionAllowedDonation"], domkey: ["deductionAllowedDonation"],
fieldcol: 14, fieldcol: 14,
label: "准予扣除的捐赠额", label: "准予扣除的捐赠额",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["privatePension"], domkey: ["privatePension"],
fieldcol: 14, fieldcol: 14,
label: "个人养老金", label: "个人养老金",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
} }
], ],

View File

@ -2,66 +2,73 @@ export const condition = [
{ {
items: [ items: [
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["childrenEducation"], domkey: ["childrenEducation"],
fieldcol: 14, fieldcol: 14,
label: "子女教育", label: "子女教育",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["continuingEducation"], domkey: ["continuingEducation"],
fieldcol: 14, fieldcol: 14,
label: "继续教育", label: "继续教育",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["housingLoanInterest"], domkey: ["housingLoanInterest"],
fieldcol: 14, fieldcol: 14,
label: "住房贷款利息", label: "住房贷款利息",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["housingRent"], domkey: ["housingRent"],
fieldcol: 14, fieldcol: 14,
label: "住房租金", label: "住房租金",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["supportingElder"], domkey: ["supportingElder"],
fieldcol: 14, fieldcol: 14,
label: "赡养老人", label: "赡养老人",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["seriousIllnessTreatment"], domkey: ["seriousIllnessTreatment"],
fieldcol: 14, fieldcol: 14,
label: "大病医疗", label: "大病医疗",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
}, },
{ {
conditionType: "INPUT", conditionType: "INPUTNUMBER",
domkey: ["infantCare"], domkey: ["infantCare"],
fieldcol: 14, fieldcol: 14,
label: "婴幼儿照护", label: "婴幼儿照护",
labelcol: 8, labelcol: 8,
value: "", value: "",
precision: 2,
viewAttr: 2 viewAttr: 2
} }
], ],

View File

@ -304,7 +304,7 @@ export default class SlideBaseForm extends React.Component {
<WeaCheckbox <WeaCheckbox
value={true} value={true}
viewAttr={1} viewAttr={1}
content="【入职日期≤薪资周期止】且【离职日期≥薪资周期起】" content="【起薪日期≤薪资周期止】且【最后发薪日期≥薪资周期起】"
/> />
</Col> </Col>
</Row> </Row>

View File

@ -184,7 +184,7 @@ class LedgerBaseSetting extends Component {
type === "CHECKBOX" ? type === "CHECKBOX" ?
<React.Fragment> <React.Fragment>
<WeaCheckbox value={true} viewAttr={1} <WeaCheckbox value={true} viewAttr={1}
content="【入职日期≤薪资周期止】且【离职日期≥薪资周期起】"/> content="【起薪日期≤薪资周期止】且【最后发薪日期≥薪资周期起】"/>
<WeaHelpfulTip width={200} title="提示:最后发薪日期为空,默认为无穷大" placement="topLeft"/> <WeaHelpfulTip width={200} title="提示:最后发薪日期为空,默认为无穷大" placement="topLeft"/>
</React.Fragment> : </React.Fragment> :
type === "SELECT" ? type === "SELECT" ?

View File

@ -23,7 +23,7 @@ export default class LedgerSalaryItemPreviewModal extends React.Component {
}; };
}) })
}; };
columns.push(columnItem); columnItem.children.length > 0 && columns.push(columnItem);
}); });
return { columns }; return { columns };
}; };

View File

@ -19,7 +19,7 @@ class WatermarkPreview extends Component {
salaryBillBaseSetPreviewWaterMark = (payload) => { salaryBillBaseSetPreviewWaterMark = (payload) => {
salaryBillBaseSetPreviewWaterMark(payload).then(({ status, data }) => { salaryBillBaseSetPreviewWaterMark(payload).then(({ status, data }) => {
if (status) { if (status) {
const { wmHeight: height, wmWidth: width, wmNoTransparent, wmRotate } = payload; const { wmSetting: { wmHeight: height, wmWidth: width, wmNoTransparent, wmRotate } } = payload;
watermark({ watermark({
text: data, text: data,
src: "", src: "",

View File

@ -70,7 +70,7 @@ class Index extends Component {
workcode: "", workcode: "",
departmentIds: "", departmentIds: "",
positionIds: "", positionIds: "",
userstatus: "", statuses: "",
// archiveStatus: "EFFICIENT", // archiveStatus: "EFFICIENT",
taxAgentId: "", taxAgentId: "",
subcompanyIds: "" subcompanyIds: ""
@ -128,7 +128,7 @@ class Index extends Component {
}; };
Select = (value, key) => { Select = (value, key) => {
const { taxAgentStore } = this.props; const { taxAgentStore } = this.props;
const { userstatus, archiveStatus, taxAgentId } = this.state.searchItemsValue; const { statuses, archiveStatus, taxAgentId } = this.state.searchItemsValue;
const { archiveStatusList, userStatusList } = this.state; const { archiveStatusList, userStatusList } = this.state;
const { taxAgentAdminOption } = taxAgentStore; const { taxAgentAdminOption } = taxAgentStore;
return ( return (
@ -138,8 +138,9 @@ class Index extends Component {
wrapperCol={{ span: 18 }} wrapperCol={{ span: 18 }}
> >
<WeaSelect <WeaSelect
value={key === "userstatus" ? userstatus : key === "taxAgentId" ? taxAgentId : archiveStatus} multiple={key === "statuses"}
options={key === "userstatus" ? userStatusList : key === "taxAgentId" ? [{ value={key === "statuses" ? statuses : key === "taxAgentId" ? taxAgentId : archiveStatus}
options={key === "statuses" ? userStatusList : key === "taxAgentId" ? [{
key: "", key: "",
showname: "" showname: ""
}, ...taxAgentAdminOption] : archiveStatusList} }, ...taxAgentAdminOption] : archiveStatusList}
@ -218,10 +219,7 @@ class Index extends Component {
key: String(it.value), key: String(it.value),
showname: it.defaultLabel showname: it.defaultLabel
}))], }))],
userStatusList: [{ userStatusList: [..._.map(userStatusList, it => ({
key: "",
showname: ""
}, ..._.map(userStatusList, it => ({
key: String(it.value), key: String(it.value),
showname: it.defaultLabel showname: it.defaultLabel
}))], }))],
@ -690,7 +688,7 @@ class Index extends Component {
{ com: this.Browser("分部", "subcompanyIds") }, { com: this.Browser("分部", "subcompanyIds") },
{ com: this.Browser("部门", "departmentIds") }, { com: this.Browser("部门", "departmentIds") },
{ com: this.Browser("岗位", "positionIds") }, { com: this.Browser("岗位", "positionIds") },
{ com: this.Select("人员状态", "userstatus") }, { com: this.Select("人员状态", "statuses") },
// { com: this.Select("档案状态", "archiveStatus") }, // { com: this.Select("档案状态", "archiveStatus") },
{ com: this.Select("个税扣缴义务人", "taxAgentId") }, { com: this.Select("个税扣缴义务人", "taxAgentId") },
{ com: this.Input("工号", "workcode") } { com: this.Input("工号", "workcode") }
@ -715,7 +713,7 @@ class Index extends Component {
workcode: "", workcode: "",
departmentIds: "", departmentIds: "",
positionIds: "", positionIds: "",
userstatus: "", statuses: "",
archiveStatus: "" archiveStatus: ""
} }
})}> 重置 </Button>, })}> 重置 </Button>,

View File

@ -0,0 +1,451 @@
import { WeaLocaleProvider } from "ecCom";
import { format_with_regex } from "../../../util";
const { getLabel } = WeaLocaleProvider;
export const condition = [
{
items: [
{
colSpan: 2,
checkbox: false,
checkboxValue: false,
conditionType: "SELECT",
domkey: ["taxAgent"],
fieldcol: 18,
label: getLabel(111, "个税扣缴义务人"),
labelcol: 6,
options: [],
multiple: true,
viewAttr: 2
},
{
browserConditionParam: {
completeParams: {},
conditionDataParams: {},
dataParams: {},
destDataParams: {},
hasAddBtn: false,
hasAdvanceSerach: true,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: false,
linkUrl: "",
pageSize: 10,
quickSearchName: "",
replaceDatas: [],
title: getLabel(111, "分部"),
type: "164",
viewAttr: 2
},
colSpan: 2,
conditionType: "BROWSER",
domkey: ["subCompany"],
fieldcol: 18,
isQuickSearch: false,
label: getLabel(111, "分部"),
labelcol: 6,
viewAttr: 2
},
{
browserConditionParam: {
completeParams: {},
conditionDataParams: {},
dataParams: {},
destDataParams: {},
hasAddBtn: false,
hasAdvanceSerach: true,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: false,
linkUrl: "",
pageSize: 10,
quickSearchName: "",
replaceDatas: [],
title: getLabel(111, "部门"),
type: "57",
viewAttr: 2
},
colSpan: 2,
conditionType: "BROWSER",
domkey: ["department"],
fieldcol: 18,
isQuickSearch: false,
label: getLabel(111, "部门"),
labelcol: 6,
viewAttr: 2
},
// {
// browserConditionParam: {
// completeParams: {},
// conditionDataParams: {},
// dataParams: {},
// destDataParams: {},
// hasAddBtn: false,
// hasAdvanceSerach: true,
// idSeparator: ",",
// isAutoComplete: 1,
// isDetail: 0,
// isMultCheckbox: false,
// isSingle: false,
// linkUrl: "",
// pageSize: 10,
// quickSearchName: "",
// replaceDatas: [],
// title: getLabel(111, "岗位"),
// type: "278",
// viewAttr: 2
// },
// colSpan: 2,
// conditionType: "BROWSER",
// domkey: ["position"],
// fieldcol: 18,
// isQuickSearch: false,
// label: getLabel(111, "岗位"),
// labelcol: 6,
// viewAttr: 2
// },
{
browserConditionParam: {
completeParams: {},
conditionDataParams: {},
dataParams: {},
destDataParams: {},
hasAddBtn: false,
hasAdvanceSerach: true,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: false,
linkUrl: "",
pageSize: 10,
quickSearchName: "",
replaceDatas: [],
title: getLabel(111, "人员"),
type: "17",
viewAttr: 2
},
colSpan: 2,
conditionType: "BROWSER",
domkey: ["employee"],
fieldcol: 18,
isQuickSearch: false,
label: getLabel(111, "人员"),
labelcol: 6,
viewAttr: 2
},
{
colSpan: 2,
conditionType: "RANGEPICKER",
domkey: ["hiredate1", "hiredate2"],
fieldcol: 18,
label: getLabel(111, "入职日期"),
labelcol: 6,
viewAttr: 2
}
],
title: "",
defaultshow: true
}
];
const colorList = [
"#709DF7", "#73DEB3", "#7585A2", "#F7C739", "#5FC3E3", "#AEE279", "#FF7F81", "#709DF7", "#73DEB3", "#7585A2", "#F7C739", "#5FC3E3", "#AEE279", "#FF7F81",
"#709DF7", "#73DEB3", "#7585A2", "#F7C739", "#5FC3E3", "#AEE279", "#FF7F81", "#709DF7", "#73DEB3", "#7585A2", "#F7C739", "#5FC3E3", "#AEE279", "#FF7F81",
"#709DF7", "#73DEB3", "#7585A2", "#F7C739", "#5FC3E3", "#AEE279", "#FF7F81", "#709DF7", "#73DEB3", "#7585A2", "#F7C739", "#5FC3E3", "#AEE279", "#FF7F81"
];
export const mapBarOptions = (params) => ({
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow"
},
backgroundColor: "#FFF",
borderColor: "#FFF",
borderWidth: "1",
borderRadius: "5",
textStyle: {
color: "#333"
},
formatter: function (params) {
let str = params[0].axisValue + "<br>";
for (let item of params) {
str += `<div>${item.marker}${item.seriesName}<span style='display:inline-block;width: 10px'></span><span style='font-weight: bold'>${format_with_regex(item.value)}</span></div>`;
}
return str;
}
},
legend: {
type: "scroll",
icon: "rect",
top: "0%",
right: "center",
itemGap: 10,
textStyle: {
fontSize: 12,//字体大小
color: "#B8B8B8"//字体颜色
}
},
grid: {
top: "10%",
right: "0%",
left: "5%",
bottom: "0%",
containLabel: true
},
xAxis: params.xAxis.map((item, index) => {
const data = Array(params.xAxis.length).fill("");
data[index] = item;
return {
type: "category",
position: "bottom",
data: data,
axisTick: {
alignWithLabel: true,
show: false
},
axisLabel: {
interval: 0,
margin: 10,
textStyle: {
fontSize: 11
}
}
};
}),
yAxis: {
name: params.name,
type: "value",
axisLabel: {
padding: [3, 0, 0, 0],
formatter: "{value}",
color: "#666",
textStyle: {
fontSize: 11
}
},
nameTextStyle: {
color: "#787E95",
fontSize: 12
},
axisLine: {
show: true,
lineStyle: {
color: "transparent"
}
},
axisTick: {
show: false // 不显示坐标轴刻度线
},
splitLine: {
show: false,
lineStyle: {
color: "rgba(66, 192, 255, 0.1)"
}
}
},
series: params.data.map(item => {
return [...dealBar(_.map(item.data, (it) => parseFloat(it.replace(/,/g, ""))), item.name)];
}).reduce((acc, cur) => acc.concat(cur), [])
});
export const mapLineOptions = (params) => ({
tooltip: {
// 坐标轴指示器,坐标轴触发有效
trigger: "axis",
axisPointer: {
// 默认为直线,可选为:'line' | 'shadow'
type: "line"
}
},
legend: {
type: "scroll",
icon: "circle",
top: "0%",
right: "center",
itemGap: 20,
textStyle: {
fontSize: 12,//字体大小
color: "#787E95"//字体颜色
}
},
grid: {
top: "10%",
left: "3%",
right: "2%",
bottom: "3%",
containLabel: true
},
xAxis: [
{
type: "category",
boundaryGap: false,
data: params.xAxis,
axisTick: {
alignWithLabel: true,
show: false
},
// 修改坐标值样式
axisLabel: {
color: "#B8B8B8",
fontSize: 12,
show: true
},
axisLine: {
show: false
}
}
],
yAxis: [
{
type: "value",
// 修改坐标值样式
axisLabel: {
color: "#787E95",
fontSize: 14
},
nameTextStyle: {
color: "#787E95",
fontSize: 16
},
// 修改坐标轴线样式
axisLine: {
show: true,
lineStyle: {
color: "transparent"
}
},
axisTick: {
show: false // 不显示坐标轴刻度线
},
splitLine: {
lineStyle: {
color: "rgba(93,126,158,1)"
}
}
}
],
series: _.map(params.data, (item, index) => {
return {
name: item.name,
data: _.map(item.data, (it) => it.replace(/,/g, "")),
type: "line",
itemStyle: {
normal: {
color: function (params) {
return colorList[params.seriesIndex] || colorList[Math.floor((Math.random() * colorList.length))];
},
lineStyle: {
color: colorList[index] || colorList[Math.floor((Math.random() * colorList.length))]
}
}
}
};
})
});
export const mapPieOptions = (params) => ({
tooltip: {
show: true,
formatter: function (params) {
let str = params.seriesName + "<br>";
str += params.marker + params.name + ":" + format_with_regex(params.value) + "(" + params.percent + "%" + ")" + "<br>";
return str;
}
},
legend: {
type: "scroll",
icon: "rect",
top: "0%",
left: "2%",
orient: "vertical",
itemGap: 10,
textStyle: {
fontSize: 12,//字体大小
color: "#787E95"//字体颜色
}
},
series: _.map(params.data, item => {
return {
name: item.name,
data: _.map(item.data, (it) => ({ ...it, value: it.value.replace(/,/g, "") })),
type: "pie",
radius: "60%",
avoidLabelOverlap: true,
animation: false,
labelLine: {
show: true,
normal: {
length: 5,
align: "center"
}
},
itemStyle: {
normal: {
color: function (colors) {
return colorList[colors.dataIndex] || colorList[Math.floor((Math.random() * colorList.length))];
}
}
}
};
})
});
const dealBar = (arr, name) => {
const bar = [];
arr.forEach((item, index) => {
const data = [];
for (let i = 0; i < index; i++) {
data.push("");
}
if (item) {
data.push(item);
bar.push({
name,
type: "bar",
xAxisIndex: index,
barWidth: 32,
data,
itemStyle: {
normal: {
color: function (params) {
return colorList[params.seriesIndex] || colorList[Math.floor((Math.random() * colorList.length))];
}
}
},
label: {
show: true,
position: "insideBottom",
distance: 15,
align: "left",
verticalAlign: "middle",
rotate: "90",
formatter: function (params) {
if (parseInt(params.value) === 0) {
return ``;
} else {
return [
`{a|${format_with_regex(params.value)}} {b|${params.seriesName}}`
];
}
},
rich: {
a: {
fontWeight: "bold",
fontSize: 14,
color: "#333",
marginRight: 10
},
b: {
fontSize: 12,
color: "#333"
}
}
}
});
}
});
return bar;
};

View File

@ -176,6 +176,7 @@ export const mapBarOptions = (params) => ({
} }
}, },
legend: { legend: {
type: "scroll",
icon: "rect", icon: "rect",
top: "0%", top: "0%",
right: "center", right: "center",
@ -188,8 +189,8 @@ export const mapBarOptions = (params) => ({
grid: { grid: {
top: "10%", top: "10%",
right: "0%", right: "0%",
left: "2%", left: "5%",
bottom: "0%", bottom: "10%",
containLabel: true containLabel: true
}, },
xAxis: { xAxis: {
@ -209,6 +210,7 @@ export const mapBarOptions = (params) => ({
}, },
yAxis: { yAxis: {
name: params.name, name: params.name,
type: "value",
axisLabel: { axisLabel: {
padding: [3, 0, 0, 0], padding: [3, 0, 0, 0],
formatter: "{value}", formatter: "{value}",
@ -241,6 +243,7 @@ export const mapBarOptions = (params) => ({
return { return {
name: item.name, name: item.name,
barWidth: "32", barWidth: "32",
barGap: "0%",
data: _.map(item.data, (it) => it.replace(/,/g, "")), data: _.map(item.data, (it) => it.replace(/,/g, "")),
type: "bar", type: "bar",
itemStyle: { itemStyle: {
@ -280,7 +283,18 @@ export const mapBarOptions = (params) => ({
} }
} }
}; };
}) }),
dataZoom: [
{
type: "inside"
},
{
type: "slider",
show: true,
bottom: 20,
}
]
}); });
export const mapLineOptions = (params) => ({ export const mapLineOptions = (params) => ({
tooltip: { tooltip: {
@ -360,7 +374,7 @@ export const mapLineOptions = (params) => ({
series: _.map(params.data, (item, index) => { series: _.map(params.data, (item, index) => {
return { return {
name: item.name, name: item.name,
data: _.map(item.data, (it) => it.replace(/,/g, "")), data: _.map(item.data, (it) => parseFloat(it.replace(/,/g, ""))),
type: "line", type: "line",
itemStyle: { itemStyle: {
normal: { normal: {
@ -385,6 +399,7 @@ export const mapPieOptions = (params) => ({
} }
}, },
legend: { legend: {
type: "scroll",
icon: "rect", icon: "rect",
top: "0%", top: "0%",
left: "2%", left: "2%",

View File

@ -14,6 +14,7 @@ import * as API from "../../../apis/welfareArchive";
import ImportModal from "../../../components/importModal"; import ImportModal from "../../../components/importModal";
import TipLabel from "../../../components/TipLabel"; import TipLabel from "../../../components/TipLabel";
import UnifiedTable from "../../../components/UnifiedTable"; import UnifiedTable from "../../../components/UnifiedTable";
import { convertToUrlString } from "../../../util/url";
import { salaryArchiveDelete } from "../../../apis/payrollFiles"; import { salaryArchiveDelete } from "../../../apis/payrollFiles";
import "./index.less"; import "./index.less";
@ -611,16 +612,16 @@ export default class Archives extends React.Component {
let url = `${window.location.origin}/api/bs/hrmsalary/scheme/export?ids=`; let url = `${window.location.origin}/api/bs/hrmsalary/scheme/export?ids=`;
switch (selectedKey) { switch (selectedKey) {
case "pending": case "pending":
url = `${url}&runStatuses=1`; url = `${url}&runStatuses=1&${convertToUrlString(form.getFormParams())}`;
break; break;
case "fixed": case "fixed":
url = `${url}&runStatuses=2,3`; url = `${url}&runStatuses=2,3&${convertToUrlString(form.getFormParams())}`;
break; break;
case "suspend": case "suspend":
url = `${url}&runStatuses=3`; url = `${url}&runStatuses=3&${convertToUrlString(form.getFormParams())}`;
break; break;
default: default:
url = `${url}&runStatuses=4,5`; url = `${url}&runStatuses=4,5&${convertToUrlString(form.getFormParams())}`;
break; break;
} }
window.open(url, "_self"); window.open(url, "_self");

View File

@ -1,7 +1,7 @@
import { action, observable } from "mobx"; import { action, observable } from "mobx";
import { WeaTableNew } from "comsMobx"; import { WeaTableNew } from "comsMobx";
import * as API from "../apis/payrollFiles"; import * as API from "../apis/payrollFiles";
import { statisticsEmployeeDetailList, getDataPerspective } from "../apis/statistics"; import { getDataPerspective, statisticsEmployeeDetailList } from "../apis/statistics";
const { TableStore } = WeaTableNew; const { TableStore } = WeaTableNew;
@ -14,11 +14,12 @@ export class PayrollFilesStore {
@action("薪资档案-列表查询") @action("薪资档案-列表查询")
queryList = (payload = {}, searchItemsValue = {}, url = "") => { queryList = (payload = {}, searchItemsValue = {}, url = "") => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const { departmentIds, positionIds, subcompanyIds, ...extra } = searchItemsValue; const { departmentIds, positionIds, subcompanyIds, statuses, ...extra } = searchItemsValue;
API.queryList({ API.queryList({
departmentIds: departmentIds ? departmentIds.split(",") : [], departmentIds: departmentIds ? departmentIds.split(",") : [],
positionIds: positionIds ? positionIds.split(",") : [], positionIds: positionIds ? positionIds.split(",") : [],
subcompanyIds: subcompanyIds ? subcompanyIds.split(",") : [], subcompanyIds: subcompanyIds ? subcompanyIds.split(",") : [],
statuses: statuses ? statuses.split(",") : [],
...payload, ...extra, url ...payload, ...extra, url
}).then(res => { }).then(res => {
const { data, status } = res; const { data, status } = res;