commit
e0432a21c5
|
|
@ -1,65 +1,63 @@
|
|||
import { Button, Modal,message,Row,Col, Spin} from 'antd';
|
||||
import { Button, Modal, message, Row, Col, Spin } from 'antd';
|
||||
import isEmpty from 'lodash/isEmpty'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import forEach from 'lodash/forEach'
|
||||
import { WeaAlertPage, WeaTools,WeaTableEdit,WeaSearchGroup,WeaRightMenu, WeaFormItem, WeaTab} from 'ecCom'
|
||||
import {WeaSwitch} from 'comsMobx';
|
||||
import { inject, observer} from 'mobx-react';
|
||||
import { WeaAlertPage, WeaTools, WeaTableEdit, WeaSearchGroup, WeaRightMenu, WeaFormItem, WeaTab,WeaTop } from 'ecCom'
|
||||
import { WeaSwitch } from 'comsMobx';
|
||||
import { inject, observer } from 'mobx-react';
|
||||
import * as mobx from 'mobx';
|
||||
import {i18n} from '../../public/i18n';
|
||||
import { i18n } from '../../public/i18n';
|
||||
|
||||
const toJS = mobx.toJS;
|
||||
import '../../style/common.less';
|
||||
|
||||
|
||||
@inject('companyExtend')
|
||||
@inject('company')
|
||||
@observer
|
||||
export default class CompanyExtend extends React.Component {
|
||||
|
||||
componentDidMount(){
|
||||
const {companyExtend} = this.props;
|
||||
companyExtend.setTopButtons(this.getTopButtons.bind(this));
|
||||
companyExtend.setTopRightMenus(this.getRightMenu.bind(this));
|
||||
companyExtend.setTopShowDropIcon(true);
|
||||
|
||||
componentDidMount() {
|
||||
this.init();
|
||||
}
|
||||
init = () => {
|
||||
// const {companyExtend, companyExtend, setParentRightMenu} = this.props;
|
||||
companyExtend.init();
|
||||
const { companyExtend } = this.props;
|
||||
companyExtend.init();
|
||||
// companyExtend.hrmId=hrmId;
|
||||
companyExtend.getData();
|
||||
companyExtend.getData();
|
||||
}
|
||||
|
||||
getTabChildren = () => {
|
||||
const {companyExtend} = this.props;
|
||||
let {tableInfo, isEditor, tabkey,onRowSelect,selectedRowKeys} = companyExtend;
|
||||
const { companyExtend } = this.props;
|
||||
let { tableInfo, isEditor, tabkey, onRowSelect, selectedRowKeys } = companyExtend;
|
||||
let tabChildren = [];
|
||||
tableInfo = toJS(tableInfo);
|
||||
tableInfo && tableInfo.map((t,i)=>{
|
||||
if(tabkey==i){
|
||||
tabChildren.push(
|
||||
<WeaTableEdit ecId={`${this && this.props && this.props.ecId || ''}_WeaTableEdit@b813my@${i}`}
|
||||
//ref={(ref)=>companyExtend.setPersonalEditTables(ref)}
|
||||
showTitle={isEditor}
|
||||
// title={'列表信息'}
|
||||
// addFirstRow={isEditor}
|
||||
columns={t.tabinfo.columns}
|
||||
datas={t.tabinfo.datas}
|
||||
onChange={this.tableEditChange}
|
||||
selectedRowKeys={toJS(selectedRowKeys)}
|
||||
onRowSelect={keys => onRowSelect(keys)}
|
||||
onBtnsSelect={key=>this.onBtnsSelect(key,i)}
|
||||
viewAttr={isEditor?2: 1}
|
||||
getRowSelection={isEditor? (rowSelection)=>{
|
||||
Object.assign(rowSelection,{
|
||||
getCheckboxProps: record => ({
|
||||
disabled: record.viewAttr === 1, // 配置无法勾选的列
|
||||
})
|
||||
})
|
||||
return rowSelection;
|
||||
}: ()=>null}
|
||||
/>
|
||||
);
|
||||
}
|
||||
tableInfo && tableInfo.map((t, i) => {
|
||||
if (tabkey == i) {
|
||||
tabChildren.push(
|
||||
<WeaTableEdit ecId={`${this && this.props && this.props.ecId || ''}_WeaTableEdit@b813my@${i}`}
|
||||
//ref={(ref)=>companyExtend.setPersonalEditTables(ref)}
|
||||
showTitle={isEditor}
|
||||
// title={'列表信息'}
|
||||
// addFirstRow={isEditor}
|
||||
columns={t.tabinfo.columns}
|
||||
datas={t.tabinfo.datas}
|
||||
onChange={this.tableEditChange}
|
||||
selectedRowKeys={toJS(selectedRowKeys)}
|
||||
onRowSelect={keys => onRowSelect(keys)}
|
||||
onBtnsSelect={key => this.onBtnsSelect(key, i)}
|
||||
viewAttr={isEditor ? 2 : 1}
|
||||
getRowSelection={isEditor ? (rowSelection) => {
|
||||
Object.assign(rowSelection, {
|
||||
getCheckboxProps: record => ({
|
||||
disabled: record.viewAttr === 1, // 配置无法勾选的列
|
||||
})
|
||||
})
|
||||
return rowSelection;
|
||||
} : () => null}
|
||||
/>
|
||||
);
|
||||
}
|
||||
})
|
||||
return tabChildren;
|
||||
}
|
||||
|
|
@ -76,60 +74,60 @@ export default class CompanyExtend extends React.Component {
|
|||
|
||||
const datas = tableInfo[index].tabinfo.datas;
|
||||
if (key === 'copy') {
|
||||
tableInfo[index].tabinfo.datas = datas.map( (data,i) => {
|
||||
tableInfo[index].tabinfo.datas = datas.map((data, i) => {
|
||||
if (!selectedRows[index].includes(i)) {
|
||||
data.viewAttr = 2;
|
||||
}
|
||||
return data
|
||||
})
|
||||
})
|
||||
}
|
||||
if (key === 'delete') {
|
||||
tableInfo[index].tabinfo.datas = datas.map( (data,i) => {
|
||||
if (selectedRows[index].includes(i)) {
|
||||
data.viewAttr = 1;
|
||||
}
|
||||
return data
|
||||
});
|
||||
setSelectedRowKeys(selectedRowKeys.filter(row => !selectedRows[index].includes(row)))
|
||||
tableInfo[index].tabinfo.datas = datas.map((data, i) => {
|
||||
if (selectedRows[index].includes(i)) {
|
||||
data.viewAttr = 1;
|
||||
}
|
||||
return data
|
||||
});
|
||||
setSelectedRowKeys(selectedRowKeys.filter(row => !selectedRows[index].includes(row)))
|
||||
}
|
||||
}
|
||||
|
||||
getSearchs = () => {
|
||||
const {companyExtend} = this.props;
|
||||
let {form, conditions, isEditor} = companyExtend;
|
||||
const {isFormInit} = form;
|
||||
const { companyExtend } = this.props;
|
||||
let { form, conditions, isEditor } = companyExtend;
|
||||
const { isFormInit } = form;
|
||||
let group = [];
|
||||
let tipPosition = 'bottom';
|
||||
window.e9HideFormFieldKeys = [];
|
||||
isFormInit && conditions.forEach((c, i) =>{
|
||||
let items = [];
|
||||
c.items.forEach( (field, j) => {
|
||||
if(c.hide || (!isEmpty(field.otherParams) && field.otherParams.hide)){
|
||||
window.e9HideFormFieldKeys.push(field.domkey[0]);
|
||||
}else{
|
||||
items.push({
|
||||
com:(<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@vh6j67@${j}`}
|
||||
underline={!isEditor}
|
||||
label={`${field.label}`}
|
||||
error={form.getError(field)}
|
||||
tipPosition={tipPosition}
|
||||
labelCol={{span: `${window.HrmLabelCol}`}}
|
||||
wrapperCol={{span: `${window.HrmWrapperCol}`}}>
|
||||
<WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@d4vaqk@${j}`} fieldConfig={field} form={form}/>
|
||||
</WeaFormItem>),
|
||||
colSpan: 1
|
||||
});
|
||||
}
|
||||
});
|
||||
group.push(<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@x9hby9@${i}`} className={`${isEditor?'hrm-center':''}`}
|
||||
needTigger={true} hide={c.hide} title={c.title} showGroup={c.defaultshow} items={items} />)
|
||||
isFormInit && conditions.forEach((c, i) => {
|
||||
let items = [];
|
||||
c.items.forEach((field, j) => {
|
||||
if (c.hide || (!isEmpty(field.otherParams) && field.otherParams.hide)) {
|
||||
window.e9HideFormFieldKeys.push(field.domkey[0]);
|
||||
} else {
|
||||
items.push({
|
||||
com: (<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@vh6j67@${j}`}
|
||||
underline={!isEditor}
|
||||
label={`${field.label}`}
|
||||
error={form.getError(field)}
|
||||
tipPosition={tipPosition}
|
||||
labelCol={{ span: `${field.labelcol}` }}
|
||||
wrapperCol={{ span: `${field.fieldcol}` }}>
|
||||
<WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@d4vaqk@${j}`} fieldConfig={field} form={form} />
|
||||
</WeaFormItem>),
|
||||
colSpan: 1
|
||||
});
|
||||
}
|
||||
});
|
||||
group.push(<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@x9hby9@${i}`} className={`${isEditor ? 'hrm-center' : ''}`}
|
||||
needTigger={true} hide={c.hide} title={c.title} showGroup={c.defaultshow} items={items} col={2} />)
|
||||
});
|
||||
return group;
|
||||
}
|
||||
|
||||
tableEditChange = (data) => {
|
||||
const {companyExtend} = this.props;
|
||||
let {tabkey = '0', tableInfo} = companyExtend;
|
||||
const { companyExtend } = this.props;
|
||||
let { tabkey = '0', tableInfo } = companyExtend;
|
||||
tableInfo = toJS(tableInfo);
|
||||
let d = cloneDeep(tableInfo);
|
||||
d[Number(tabkey)].tabinfo.datas = data;
|
||||
|
|
@ -137,51 +135,51 @@ export default class CompanyExtend extends React.Component {
|
|||
}
|
||||
|
||||
getRightMenu = () => {
|
||||
const {companyExtend} = this.props;
|
||||
const {isEditor, buttons} = companyExtend;
|
||||
const { companyExtend } = this.props;
|
||||
const { isEditor, buttons } = companyExtend;
|
||||
let arr = [];
|
||||
try{
|
||||
if(buttons.hasEdit){
|
||||
if (isEditor){
|
||||
arr = [{
|
||||
icon: <i className='icon-coms-common'/>,
|
||||
content: i18n.button.save(),
|
||||
key: 'save',
|
||||
onClick: key =>{
|
||||
this.saveEditCard();
|
||||
}
|
||||
}, {
|
||||
icon: <i className='icon-coms-go-back'/>,
|
||||
content: i18n.button.back(),
|
||||
key: 'back',
|
||||
onClick: key =>{
|
||||
this.backCard();
|
||||
}
|
||||
}]
|
||||
} else {
|
||||
arr = [{
|
||||
icon: <i className='icon-coms-edit'/>,
|
||||
content:i18n.button.modify(),
|
||||
key: 'editCard',
|
||||
onClick: key =>{
|
||||
this.editCard();
|
||||
}
|
||||
}
|
||||
]
|
||||
try {
|
||||
if (buttons.hasEdit) {
|
||||
if (isEditor) {
|
||||
arr = [{
|
||||
icon: <i className='icon-coms-common' />,
|
||||
content: i18n.button.save(),
|
||||
key: 'save',
|
||||
onClick: key => {
|
||||
this.saveEditCard();
|
||||
}
|
||||
}, {
|
||||
icon: <i className='icon-coms-go-back' />,
|
||||
content: i18n.button.back(),
|
||||
key: 'back',
|
||||
onClick: key => {
|
||||
this.backCard();
|
||||
}
|
||||
}]
|
||||
} else {
|
||||
arr = [{
|
||||
icon: <i className='icon-coms-edit' />,
|
||||
content: i18n.button.modify(),
|
||||
key: 'editCard',
|
||||
onClick: key => {
|
||||
this.editCard();
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}catch(e){}
|
||||
} catch (e) { }
|
||||
return arr;
|
||||
}
|
||||
|
||||
|
||||
getTopButtons = () => {
|
||||
const {companyExtend} = this.props;
|
||||
const {isEditor, buttons} = companyExtend;
|
||||
const { companyExtend } = this.props;
|
||||
const { isEditor, buttons } = companyExtend;
|
||||
const save = <Button ecId={`${this && this.props && this.props.ecId || ''}_Button@pkes6y`} type="primary" onClick={this.saveEditCard} >{i18n.button.save()}</Button>;
|
||||
const back = <Button ecId={`${this && this.props && this.props.ecId || ''}_Button@pl1fw8`} type="primary" onClick={this.backCard} >{i18n.button.back()}</Button>;
|
||||
const edit = <Button ecId={`${this && this.props && this.props.ecId || ''}_Button@vkeda5`} type="primary" onClick={this.editCard} >{i18n.button.modify()}</Button>;
|
||||
const btns = [];
|
||||
try{
|
||||
try {
|
||||
if (isEditor) {
|
||||
if (buttons.hasSave) {
|
||||
btns.push(save);
|
||||
|
|
@ -192,17 +190,17 @@ export default class CompanyExtend extends React.Component {
|
|||
btns.push(edit);
|
||||
}
|
||||
}
|
||||
}catch(e){}
|
||||
} catch (e) { }
|
||||
return btns;
|
||||
}
|
||||
|
||||
editCard = () => {
|
||||
const {companyExtend} = this.props;
|
||||
const { companyExtend } = this.props;
|
||||
companyExtend.edit();
|
||||
}
|
||||
|
||||
saveEditCard = () => {
|
||||
const {companyExtend} = this.props;
|
||||
const { companyExtend } = this.props;
|
||||
companyExtend.save();
|
||||
}
|
||||
|
||||
|
|
@ -210,10 +208,17 @@ export default class CompanyExtend extends React.Component {
|
|||
this.init();
|
||||
}
|
||||
|
||||
changeData(key) {
|
||||
const {
|
||||
companyExtend
|
||||
} = this.props;
|
||||
companyExtend.changeData(key);
|
||||
}
|
||||
|
||||
render() {
|
||||
const {companyExtend} = this.props;
|
||||
const {loading, detailSelectedKey, tabInfo} = companyExtend;
|
||||
|
||||
const { companyExtend } = this.props;
|
||||
const { loading, detailSelectedKey, tabInfo,topTab,selectedKey } = companyExtend;
|
||||
|
||||
// if(!hasRight && !loading){
|
||||
// return (
|
||||
// <WeaAlertPage ecId={`${this && this.props && this.props.ecId || ''}_WeaAlertPage@387kx5`}>
|
||||
|
|
@ -222,33 +227,51 @@ export default class CompanyExtend extends React.Component {
|
|||
// )
|
||||
// }
|
||||
|
||||
try{
|
||||
return (
|
||||
<div className='hrm-my-cardInfo' style={{height:'100%', position: 'relative'}}>
|
||||
// try {
|
||||
return (
|
||||
<div className='hrm-my-cardInfo' style={{ height: '100%', position: 'relative' }}>
|
||||
<WeaRightMenu ecId={`${this && this.props && this.props.ecId || ''}_WeaRightMenu@k6oc4u`}
|
||||
datas={this.getRightMenu()}
|
||||
>
|
||||
<WeaTop ecId={`${this && this.props && this.props.ecId || ''}_WeaTop@bj98s7`}
|
||||
loading={true}
|
||||
buttons={this.getTopButtons()}
|
||||
showDropIcon={true}
|
||||
dropMenuDatas={this.getRightMenu()}
|
||||
>
|
||||
<WeaTab ecId={`${this && this.props && this.props.ecId || ''}_WeaTab@9c3zts`}
|
||||
datas={topTab}
|
||||
keyParam="viewCondition" //主键
|
||||
selectedKey={selectedKey}
|
||||
onChange={this.changeData.bind(this)}
|
||||
/>
|
||||
<Spin ecId={`${this && this.props && this.props.ecId || ''}_Spin@4fj4z2`} spinning={loading}>
|
||||
{this.getSearchs()}
|
||||
{
|
||||
!isEmpty(tabInfo) && <div className='hrm-my-cardInfo_detial_tabs'>
|
||||
<WeaTab ecId={`${this && this.props && this.props.ecId || ''}_WeaTab@vjrq63`}
|
||||
type='card'
|
||||
keyParam='key'
|
||||
datas={toJS(tabInfo)}
|
||||
selectedKey={detailSelectedKey}
|
||||
onChange={ v => {
|
||||
companyExtend.updateDetailSelectedKey(v);
|
||||
}}
|
||||
/>
|
||||
{this.getTabChildren()}
|
||||
</div>
|
||||
}
|
||||
{this.getSearchs()}
|
||||
{
|
||||
!isEmpty(tabInfo) && <div className='hrm-my-cardInfo_detial_tabs'>
|
||||
<WeaTab ecId={`${this && this.props && this.props.ecId || ''}_WeaTab@vjrq63`}
|
||||
type='card'
|
||||
keyParam='key'
|
||||
datas={toJS(tabInfo)}
|
||||
selectedKey={detailSelectedKey}
|
||||
onChange={v => {
|
||||
companyExtend.updateDetailSelectedKey(v);
|
||||
}}
|
||||
/>
|
||||
{this.getTabChildren()}
|
||||
</div>
|
||||
}
|
||||
</Spin>
|
||||
</div>
|
||||
</WeaTop>
|
||||
</WeaRightMenu>
|
||||
|
||||
</div>
|
||||
)
|
||||
}catch(e){
|
||||
return <WeaAlertPage ecId={`${this && this.props && this.props.ecId || ''}_WeaAlertPage@h1wgnu`}>
|
||||
<div style={{ color: '#000' }}>{i18n.message.authFailed()}</div>
|
||||
</WeaAlertPage>
|
||||
}
|
||||
// } catch (e) {
|
||||
// return <WeaAlertPage ecId={`${this && this.props && this.props.ecId || ''}_WeaAlertPage@h1wgnu`}>
|
||||
// <div style={{ color: '#000' }}>{i18n.message.authFailed()}</div>
|
||||
// </WeaAlertPage>
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -822,6 +822,8 @@ export const i18n = {
|
|||
'531692': () => getLabel('531692', '说明:总部节点的人员编号设置主要用于新建分部时将总部的编号设置自动复制给新分部,不用于全局的开关控制,实际根据各分部的开关独立控制。'),
|
||||
},
|
||||
button: {
|
||||
back: () => getLabel(1290, '返回'),
|
||||
|
||||
batchOpen: () => getLabel(534249, '批量解锁'),
|
||||
collect: () => getLabel(28111, '收藏'),
|
||||
helper: () => getLabel(275, '帮助'),
|
||||
|
|
|
|||
|
|
@ -18,62 +18,15 @@ export class CompanyStore {
|
|||
@observable form2 = new WeaForm();
|
||||
@observable form = new WeaForm();
|
||||
@observable form1 = new WeaForm();
|
||||
@observable schemeName = "";
|
||||
@observable conditionNum = 2;
|
||||
@observable ids = ""; //选择行id
|
||||
@observable searchConditionLoading = true;
|
||||
@observable nEdialogTitle = "";
|
||||
@observable visible = false;
|
||||
@observable dialogLoading = true;
|
||||
@observable schemeId = "";
|
||||
@observable date = "";
|
||||
|
||||
@action
|
||||
getHasRight() {
|
||||
this.topMenu = [
|
||||
{
|
||||
isBatch: "1",
|
||||
isTop: "1",
|
||||
menuFun: "new",
|
||||
menuIcon: "icon-coms-New-Flow",
|
||||
menuName: "新建",
|
||||
type: "BTN_Addnew",
|
||||
},
|
||||
{
|
||||
isBatch: "1",
|
||||
isTop: "1",
|
||||
menuFun: "batchDelete",
|
||||
menuIcon: "icon-coms-Batch-delete",
|
||||
menuName: "批量删除",
|
||||
type: "BTN_BatchDelete",
|
||||
},
|
||||
];
|
||||
this.rightMenu = [
|
||||
{
|
||||
isBatch: "0",
|
||||
isTop: "1",
|
||||
menuFun: "new",
|
||||
menuIcon: "icon-coms-New-Flow",
|
||||
menuName: "新建",
|
||||
type: "BTN_Addnew",
|
||||
},
|
||||
{
|
||||
isBatch: "0",
|
||||
isTop: "0",
|
||||
menuFun: "log",
|
||||
menuIcon: "icon-coms-Print-log",
|
||||
menuName: "日志",
|
||||
type: "BTN_log",
|
||||
},
|
||||
{
|
||||
isBatch: "0",
|
||||
isTop: "0",
|
||||
menuFun: "custom",
|
||||
menuIcon: "icon-coms-task-list",
|
||||
menuName: "显示列定制",
|
||||
type: "BTN_COLUMN",
|
||||
},
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
updateFields(val) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -6,6 +6,8 @@ import { JobGradeStore } from "./jobgrade";
|
|||
import { OfficeManageStore } from "./officeManage";
|
||||
import { SequenceStore } from "./sequence";
|
||||
import { GroupStore } from "./group";
|
||||
import {CompanyExtendStore} from "./companyextend";
|
||||
import {CompanyStore} from "./company"
|
||||
|
||||
module.exports = {
|
||||
simpleOrgStore: new SimpleOrgStore(),
|
||||
|
|
@ -16,4 +18,6 @@ module.exports = {
|
|||
officeManageStore: new OfficeManageStore(),
|
||||
sequence: new SequenceStore(),
|
||||
group: new GroupStore(),
|
||||
companyExtend: new CompanyExtendStore(),
|
||||
company: new CompanyStore()
|
||||
};
|
||||
|
|
|
|||
|
|
@ -29,4 +29,22 @@
|
|||
padding-top: 28px;
|
||||
height: calc(100% - 47px);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
//公司、分部管理
|
||||
.hrm-my-cardInfo {
|
||||
padding-bottom: 20px;
|
||||
background: #fff;
|
||||
a {
|
||||
color: #123885;
|
||||
&:hover {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
|
||||
.hrm-center {
|
||||
.ant-col-24 .wea-form-cell {
|
||||
padding-left: 25%;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue