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

This commit is contained in:
黎永顺 2023-03-13 10:43:25 +08:00
parent a94c534f76
commit a6cf191c29
7 changed files with 334 additions and 1 deletions

View File

@ -32,6 +32,7 @@ import SysConfig from "./pages/sysConfig";
import RuleConfig from "./pages/ruleConfig";
import Appconfig from "./pages/appConfig";
import FieldManagement from "./pages/fieldManagement";
import ExternalPersonManage from "./pages/externalPersonManage";
import stores from "./stores";
import "./style/index";
@ -78,6 +79,7 @@ const DataAcquisition = (props) => props.children;
// sysconfig-1 规则配置
// appconfig 应用配置
// fieldManagement 字段管理
// externalPersonManage 非系统人员管理
const Routes = (
<Route
@ -150,6 +152,7 @@ const Routes = (
<Route key="sysconfig-1" path="sysconfig-1" component={RuleConfig}/>
<Route key="appconfig" path="appconfig" component={Appconfig}/>
<Route key="fieldManagement" path="fieldManagement" component={FieldManagement}/>
<Route key="externalPersonManage" path="externalPersonManage" component={ExternalPersonManage}/>
</Route>
);

View File

@ -0,0 +1,40 @@
/*
* Author: 黎永顺
* name: 非系统人员管理表单项
* Description:
* Date: 2023/3/13
*/
import React, { Component } from "react";
import { WeaSlideModal } from "ecCom";
import SlideModalTitle from "../../../components/slideModalTitle";
class ExternalPersonManageEditSlide extends Component {
render() {
const { visible, title, onCancel, showOperateBtn } = this.props;
return (
<WeaSlideModal
className="slideOuterWrapper"
visible={visible}
top={0}
measureT="%"
width={800}
measureX="px"
height={100}
measureY="%"
direction="right"
title={
<SlideModalTitle
subtitle={title}
editable={true}
showOperateBtn={showOperateBtn}
onSave={() => console.log(111)}
/>
}
content={null}
onClose={onCancel}
/>
);
}
}
export default ExternalPersonManageEditSlide;

View File

@ -0,0 +1,185 @@
export const searchCondition = [
{
items: [
{
colSpan: 2,
conditionType: "INPUT",
domkey: ["username"],
fieldcol: 16,
label: "姓名",
labelcol: 8,
value: "",
viewAttr: 2,
}
],
defaultshow: true,
},
];
export const condition = [
{
items: [
{
colSpan: 1,
conditionType: "INPUT",
domkey: ["username"],
rules: "required|string",
fieldcol: 18,
label: "姓名",
labelcol: 6,
value: "",
viewAttr: 3,
},
{
browserConditionParam: {
completeParams: {},
conditionDataParams: {},
dataParams: {},
destDataParams: {},
hasAddBtn: false,
hasAdvanceSerach: false,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: true,
icon: "icon-coms-hrm",
linkUrl: "",
pageSize: 10,
quickSearchName: "",
replaceDatas: [],
title: "部门",
type: "57",
viewAttr: 2,
},
colSpan: 1,
conditionType: "BROWSER",
domkey: ["departmentId"],
fieldcol: 18,
label: "部门",
labelcol: 6,
viewAttr: 2,
},
{
browserConditionParam: {
completeParams: {},
conditionDataParams: {},
dataParams: {},
destDataParams: {},
hasAddBtn: false,
hasAdvanceSerach: false,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: true,
icon: "icon-coms-hrm",
linkUrl: "",
pageSize: 10,
quickSearchName: "",
replaceDatas: [],
title: "分部",
type: "164",
viewAttr: 2,
},
colSpan: 1,
conditionType: "BROWSER",
domkey: ["subcompanyId"],
fieldcol: 18,
label: "分部",
labelcol: 6,
viewAttr: 2,
},
{
browserConditionParam: {
completeParams: {},
conditionDataParams: {},
dataParams: {},
destDataParams: {},
hasAddBtn: false,
hasAdvanceSerach: false,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: true,
icon: "icon-coms-hrm",
linkUrl: "",
pageSize: 10,
quickSearchName: "",
replaceDatas: [],
title: "岗位",
type: "24",
viewAttr: 2,
},
colSpan: 1,
conditionType: "BROWSER",
domkey: ["jobtitleId"],
fieldcol: 18,
label: "岗位",
labelcol: 6,
viewAttr: 2,
},
{
colSpan: 1,
conditionType: "DATEPICKER",
domkey: ["companystartdate"],
fieldcol: 18,
label: "入职日期",
labelcol: 6,
value: "",
viewAttr: 2,
},
{
colSpan: 1,
conditionType: "INPUT",
domkey: ["mobil"],
fieldcol: 18,
label: "手机",
labelcol: 6,
value: "",
viewAttr: 2,
},
{
colSpan: 1,
conditionType: "INPUT",
domkey: ["workcode"],
fieldcol: 18,
label: "工号",
labelcol: 6,
value: "",
viewAttr: 2,
},
{
colSpan: 1,
conditionType: "INPUT",
domkey: ["idNo"],
fieldcol: 18,
label: "身份证号码",
labelcol: 6,
value: "",
viewAttr: 2,
},
{
colSpan: 1,
conditionType: "INPUT",
domkey: ["bankCardNum"],
fieldcol: 18,
label: "本人开户的银行卡卡号",
labelcol: 6,
value: "",
viewAttr: 2,
},
{
colSpan: 1,
conditionType: "INPUT",
domkey: ["bankName"],
fieldcol: 18,
label: "本人开户的银行卡开户支行全称",
labelcol: 6,
value: "",
viewAttr: 2,
},
],
defaultshow: true,
},
];

View File

@ -0,0 +1,89 @@
/*
* Author: 黎永顺
* name: 非系统人员管理
* Description:
* Date: 2023/3/13
*/
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { WeaTab, WeaTop } from "ecCom";
import ExternalPersonManageEditSlide from "./components/externalPersonManageEditSlide";
import { Button } from "antd";
import { getSearchs } from "../../util";
import { condition, searchCondition } from "./conditions";
import "./index.less";
@inject("externalPersonManageStore", "taxAgentStore")
@observer
class Index extends Component {
constructor(props) {
super(props);
this.state = {
showSearchAd: false,
externalPersonManagePayload: {
visible: false, title: "新建"
}
};
}
componentDidMount() {
const { externalPersonManageStore: { form, addForm } } = this.props;
form.initFormFields(searchCondition);
addForm.initFormFields(condition);
}
handleCancel = () => {
const { externalPersonManagePayload } = this.state;
const { externalPersonManageStore: { addForm } } = this.props;
addForm.resetForm();
this.setState({
externalPersonManagePayload: {
...externalPersonManagePayload,
visible: false, title: "新建"
}
});
};
handleAdd = () => {
const { externalPersonManagePayload } = this.state;
this.setState({
externalPersonManagePayload: {
...externalPersonManagePayload,
visible: true
}
});
};
render() {
const { showSearchAd, externalPersonManagePayload } = this.state;
const { externalPersonManageStore: { form, addForm }, taxAgentStore: { showOperateBtn } } = this.props;
return (
<div className="externalPerWrapper">
<WeaTop
title="非系统人员管理" icon={<i className="icon-coms-fa"/>}
iconBgcolor="#F14A2D" showDropIcon={false}
>
<div className="externalPerCont">
<WeaTab
buttons={[
<Button type="primary" onClick={this.handleAdd}>新建</Button>
]}
searchType={["base", "advanced"]} showSearchAd={showSearchAd}
setShowSearchAd={(showSearchAd) => this.setState({ showSearchAd })}
searchsAd={getSearchs(form, searchCondition, 2)}
searchsBasePlaceHolder="请输入姓名"
onSearchChange={username => form.updateFields({ username })}
searchsBaseValue={form.getFormParams().username}
/>
<ExternalPersonManageEditSlide
showOperateBtn={showOperateBtn} form={addForm}
onCancel={this.handleCancel} {...externalPersonManagePayload}
/>
</div>
</WeaTop>
</div>
);
}
}
export default Index;

View File

@ -0,0 +1,7 @@
.externalPerWrapper{
width: 100%;
height: 100%;
.externalPerCont{
height: 100%;
}
}

View File

@ -0,0 +1,7 @@
import { observable } from "mobx";
import { WeaForm } from "comsMobx";
export class ExternalPersonManageStore {
@observable form = new WeaForm();
@observable addForm = new WeaForm();
}

View File

@ -18,6 +18,7 @@ import { DeclareStore } from "./declare";
import { StandingBookStore } from "./StandingBook";
import { PayrollFilesStore } from "./payrollFiles";
import { SpecialAddStore } from "./specialAdd";
import { ExternalPersonManageStore } from "./externalPersonManage";
module.exports = {
baseFormStore: new BaseFormStore(),
@ -39,5 +40,6 @@ module.exports = {
declareStore: new DeclareStore(),
standingBookStore: new StandingBookStore(),
payrollFilesStore: new PayrollFilesStore(),
specialAddStore: new SpecialAddStore()
specialAddStore: new SpecialAddStore(),
externalPersonManageStore: new ExternalPersonManageStore()
};