From 0f4c438bbfeecbc5acd6d8052845ffd80f9d7240 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 5 Jul 2022 18:54:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=93=8D=E4=BD=9C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/organization/apis/logview.js | 12 ++ pc4mobx/organization/components/Home.js | 24 +-- .../components/NewAndEditDialog.js | 2 +- .../organization/components/log/LogView.js | 167 ++++++++++++++++++ .../components/staff/StaffScheme.js | 5 +- pc4mobx/organization/stores/fieldDefined.js | 2 +- pc4mobx/organization/stores/index.js | 5 +- pc4mobx/organization/stores/job.js | 14 +- pc4mobx/organization/stores/jobgrade.js | 87 +++++---- pc4mobx/organization/stores/logview.js | 114 ++++++++++++ 10 files changed, 372 insertions(+), 60 deletions(-) create mode 100644 pc4mobx/organization/apis/logview.js create mode 100644 pc4mobx/organization/components/log/LogView.js create mode 100644 pc4mobx/organization/stores/logview.js diff --git a/pc4mobx/organization/apis/logview.js b/pc4mobx/organization/apis/logview.js new file mode 100644 index 0000000..887b841 --- /dev/null +++ b/pc4mobx/organization/apis/logview.js @@ -0,0 +1,12 @@ + +import { + WeaTools +} from 'ecCom' + +export const getLogList = (params) => { + return WeaTools.callApi('/api/bs/hrmorganization/hrmresource/listPage', 'GET', params); +} + +export const getAdvanceSearchCondition = (params) => { + return WeaTools.callApi('/api/bs/hrmorganization/hrmresource/getSearchCondition', 'GET', params); +} \ No newline at end of file diff --git a/pc4mobx/organization/components/Home.js b/pc4mobx/organization/components/Home.js index 244ed50..86a3b3d 100644 --- a/pc4mobx/organization/components/Home.js +++ b/pc4mobx/organization/components/Home.js @@ -12,18 +12,20 @@ const WeaLogViewComp = WeaLogView.Component; const { LogStore } = WeaLogView; +import LogView from "./log/logView"; + +import {LogViewStore} from "../stores/logview" class Home extends React.Component { constructor(props) { super(props); this.state = { - key: new Date().getTime(), + keys: new Date().getTime(), visible: false, - logStore: new LogStore(), - logType: '4', - logSmallType: '' + logViewStore: new LogViewStore() + } - window.setLogViewProps = this.setLogViewProps; + window.setLogViewProp = this.setLogViewProp; } componentDidMount(){ @@ -46,13 +48,10 @@ class Home extends React.Component { }); } - setLogViewProps = (props) => { + setLogViewProp = (props) => { this.setState({ - key: new Date().getTime(), - targetId: '', visible: true, - logType: '4', - logStore: new LogStore(), + logViewStore: new LogViewStore(), ...props }); } @@ -61,15 +60,18 @@ class Home extends React.Component { visible: false }) } + render() { //const isSingle = window.location.pathname.indexOf('/spa/hrm/engine') > -1; return (
- + + {/* */} {this.props.children} +
) } diff --git a/pc4mobx/organization/components/NewAndEditDialog.js b/pc4mobx/organization/components/NewAndEditDialog.js index cd2ba9f..f5ab0f4 100644 --- a/pc4mobx/organization/components/NewAndEditDialog.js +++ b/pc4mobx/organization/components/NewAndEditDialog.js @@ -26,7 +26,7 @@ export default class NewAndEditDialog extends React.Component { width: 700, } } - + getForm() { const { diff --git a/pc4mobx/organization/components/log/LogView.js b/pc4mobx/organization/components/log/LogView.js new file mode 100644 index 0000000..5c58323 --- /dev/null +++ b/pc4mobx/organization/components/log/LogView.js @@ -0,0 +1,167 @@ +import React from 'react' +import * as mobx from 'mobx' +import { + inject, + observer +} from 'mobx-react' +import { + WeaTop, + WeaTab, + WeaFormItem, + WeaDialog, + WeaSearchGroup +} from 'ecCom' +import { + Row, + Col, + Spin, + Modal, + Button, + message, + Switch +} from 'antd' +import { + WeaSwitch, + WeaTableNew +} from 'comsMobx' +import { + i18n +} from '../../public/i18n'; + +import '../../style/common.less'; + +const toJS = mobx.toJS; +const confirm = Modal.confirm; +const WeaTable = WeaTableNew.WeaTable; + + +export default class LogView extends React.Component { + constructor(props) { + super(props); + this.state = ({ + height: 402, + width: 1075, + dialogTitle: '日志查看', + }) + } + + componentWillMount() { + } + + + componentDidMount() { + + } + + componentWillReceiveProps(nextProps) { + if (this.props.keys !== nextProps.keys) { + nextProps.logViewStore.init(nextProps.logMoudleType); + } + } + + getPanelComponents() { + const { + logViewStore + } = this.props; + const { + searchCondition, + form, + searchConditionLoading + } = logViewStore; + + let arr = []; + let formParams = form.getFormParams(); + const { + isFormInit + } = form; + + isFormInit && searchCondition.map(c => { + c.items.map((field, index) => { + arr.push( +
+ + {} + +
+ ) + }) + }) + + if (searchConditionLoading) { + return ( +
+ +
+ ) + } else { + return { + if (e.keyCode == 13 && e.target.tagName === "INPUT") { + logViewStore.getTableInfo(); + logViewStore.setPanelStatus(false) + } + }}>{arr} + } + + } + + getTabBtn() { + const { + logViewStore + } = this.props; + const { + form + } = logViewStore; + + const btn = [ + (), + (), + (), + ]; + + return btn; + } + + + render() { + + const { + visible, onCancel, logViewStore + } = this.props, { + tableStore,isPanelShow,conditionNum + } = logViewStore, { + height, dialogTitle, width, + } = this.state; + + return ( + onCancel()} + style={{ height: height, width: width }} + > + logViewStore.setPanelStatus(bool)} + hideSearchAd={() => logViewStore.setPanelStatus(false)} + searchsAd={isPanelShow ? this.getPanelComponents() :
} + advanceHeight={Math.ceil(conditionNum / 2) * 52 + 20} + hasMask={false} + buttonsAd={this.getTabBtn()} + onSearch={() => logViewStore.getTableInfo()} + /> + +
) + } +} \ No newline at end of file diff --git a/pc4mobx/organization/components/staff/StaffScheme.js b/pc4mobx/organization/components/staff/StaffScheme.js index 0810c4d..c527d33 100644 --- a/pc4mobx/organization/components/staff/StaffScheme.js +++ b/pc4mobx/organization/components/staff/StaffScheme.js @@ -266,8 +266,9 @@ export default class StaffScheme extends React.Component { } log = () => { - window.setLogViewProps({ - logSmallType: '3010', + window.setLogViewProp({ + logMoudleType: '0', + keys: new Date().getTime(), }); } diff --git a/pc4mobx/organization/stores/fieldDefined.js b/pc4mobx/organization/stores/fieldDefined.js index 6c8affa..0a646b7 100644 --- a/pc4mobx/organization/stores/fieldDefined.js +++ b/pc4mobx/organization/stores/fieldDefined.js @@ -1,7 +1,7 @@ /** * @Author: 程亮 * @Date: 2022-06-09 10:16:00 - * @LastEditTime: 2022-06-29 17:23:37 + * @LastEditTime: 2022-07-04 15:12:06 * @Description: * @FilePath: /trunk/src4js/pc4mobx/organization/stores/fieldDefined.js */ diff --git a/pc4mobx/organization/stores/index.js b/pc4mobx/organization/stores/index.js index 9466607..4d66441 100644 --- a/pc4mobx/organization/stores/index.js +++ b/pc4mobx/organization/stores/index.js @@ -21,7 +21,8 @@ import {ResourceExtendStore} from "./resourceExtend"; import {DatasImportStore} from "./datasImport"; import {HrmImportResource} from "./importresource"; import {HrmImportCommon} from "./importCommon"; -import {HrmBasicDataImport} from "./import" +import {HrmBasicDataImport} from "./import"; + module.exports = { simpleOrgStore: new SimpleOrgStore(), @@ -47,5 +48,5 @@ module.exports = { datasImport: new DatasImportStore(), hrmImportResource:new HrmImportResource(), hrmImportCommon:new HrmImportCommon(), - hrmBasicDataImport:new HrmBasicDataImport() + hrmBasicDataImport:new HrmBasicDataImport(), }; diff --git a/pc4mobx/organization/stores/job.js b/pc4mobx/organization/stores/job.js index 0164c1e..fc23b6d 100644 --- a/pc4mobx/organization/stores/job.js +++ b/pc4mobx/organization/stores/job.js @@ -304,15 +304,11 @@ export class JobStore { } updateConditions(data) { - this.form1.updateFields({ - scheme_id: { - value: '', - }, - }); - // const label = "等级方案" - // const index = findIndex(this.condition[0].items, { label }); - // this.condition[0].items[index].browserConditionParam.replaceDatas = [{ name: data.sequence_id.valueObj[0].scheme_ids, id: "18" }]; - + const label = "等级方案" + const index = findIndex(this.condition[0].items, { label }); + this.condition[0].items[index].browserConditionParam.replaceDatas = [{ name: data.sequence_id.valueObj[0].scheme_ids, id: data.sequence_id.valueObj[0].scheme_values }]; + this.setCondition(this.condition,false); + this.form1.initFormFields(this.condition); } diff --git a/pc4mobx/organization/stores/jobgrade.js b/pc4mobx/organization/stores/jobgrade.js index ab9b623..9e098c8 100644 --- a/pc4mobx/organization/stores/jobgrade.js +++ b/pc4mobx/organization/stores/jobgrade.js @@ -51,39 +51,39 @@ export class JobGradeStore { @observable hasRight = true; @observable treeLoading = true; - @observable treeConfig = { - data: [], - selectedKeys: [], - treeExpandKeys: [], - onExpand: (keys) => { - this.treeConfig.treeExpandKeys = keys; - }, - onSelectedTreeNode: (key, count, countType) => { - this.treeConfig.selectedKeys = [key]; - this.selectedTreeNodeInfo = countType.node.props.data; - this.getTableInfo(); - } - } - //选中树节点的信息 - @observable selectedTreeNodeInfo; + @observable treeConfig = { + data: [], + selectedKeys: [], + treeExpandKeys: [], + onExpand: (keys) => { + this.treeConfig.treeExpandKeys = keys; + }, + onSelectedTreeNode: (key, count, countType) => { + this.treeConfig.selectedKeys = [key]; + this.selectedTreeNodeInfo = countType.node.props.data; + this.getTableInfo(); + } + } + //选中树节点的信息 + @observable selectedTreeNodeInfo; @action initData = () => { this.selectedTreeNodeInfo = null; - this.treeConfig.treeExpandKeys.length = 0; - Api.getTree().then(res => { - if (res.code === 200) { - if (res.data.length > 0) { - this.treeConfig.data = res.data; - this.treeConfig.selectedKeys = [res.data[0].key]; + this.treeConfig.treeExpandKeys.length = 0; + Api.getTree().then(res => { + if (res.code === 200) { + if (res.data.length > 0) { + this.treeConfig.data = res.data; + this.treeConfig.selectedKeys = [res.data[0].key]; this.treeConfig.treeExpandKeys = "-1"; - this.selectedTreeNodeInfo = res.data[0]; - this.getTableInfo(); + this.selectedTreeNodeInfo = res.data[0]; + this.getTableInfo(); this.setTreeLoading(false); - } - } else { - message.error(res.msg); - } - }, error => { }) + } + } else { + message.error(res.msg); + } + }, error => { }) } @@ -108,7 +108,7 @@ export class JobGradeStore { if (res.code === 200) { this.setHasRight(res.data.hasRight); res.data.datas && this.tableStore.getDatas(res.data.datas, 1); - + } else { message.warning(res.msg); } @@ -255,7 +255,7 @@ export class JobGradeStore { @action - getHasRight() { + getHasRight() { Api.getHasRight().then(res => { if (res.code === 200) { res.data.rightMenu && this.setRightMenu(res.data.rightMenu); @@ -278,15 +278,34 @@ export class JobGradeStore { updateConditions(val) { let currenttime = Date.now(); - let key = `schemId_${currenttime}`; + let key = `scheme_id_${currenttime}`; const lastKey = this.key; - Reflect.deleteProperty(this.condition[0].items[4].browserConditionParam.dataParams,lastKey) + Reflect.deleteProperty(this.condition[0].items[4].browserConditionParam.completeParams, lastKey); + Reflect.deleteProperty(this.condition[0].items[4].browserConditionParam.conditionDataParams, lastKey); + Reflect.deleteProperty(this.condition[0].items[4].browserConditionParam.dataParams, lastKey); + Reflect.deleteProperty(this.condition[0].items[4].browserConditionParam.destDataParams, lastKey); this.setKey(key); + this.condition[0].items[4].browserConditionParam.completeParams = { + [key]: val, + ...this.condition[0].items[4].browserConditionParam.completeParams, + currenttime: currenttime + } + this.condition[0].items[4].browserConditionParam.conditionDataParams = { + [key]: val, + ...this.condition[0].items[4].browserConditionParam.conditionDataParams, + currenttime: currenttime + } this.condition[0].items[4].browserConditionParam.dataParams = { - [key]:val, + [key]: val, ...this.condition[0].items[4].browserConditionParam.dataParams, currenttime: currenttime } + this.condition[0].items[4].browserConditionParam.destDataParams = { + [key]: val, + ...this.condition[0].items[4].browserConditionParam.destDataParams, + currenttime: currenttime + } + this.form.updateFields({ levelId: { value: '' @@ -396,7 +415,7 @@ export class JobGradeStore { this.rightMenu = rightMenu; } - setKey (key) { + setKey(key) { this.key = key; } diff --git a/pc4mobx/organization/stores/logview.js b/pc4mobx/organization/stores/logview.js new file mode 100644 index 0000000..88cef75 --- /dev/null +++ b/pc4mobx/organization/stores/logview.js @@ -0,0 +1,114 @@ +import { + observable, + action +} from 'mobx'; +import * as mobx from 'mobx'; +import * as Api from '../apis/logview'; +import { + WeaForm +} from 'comsMobx'; +import { + WeaTableNew +} from 'comsMobx'; +import { + Modal, + message, +} from 'antd' +import { + i18n +} from '../public/i18n'; + +const toJS = mobx.toJS; +const { + TableStore +} = WeaTableNew; + +export class LogViewStore { + @observable tableStore = new TableStore(); + @observable searchCondition = []; + @observable isPanelShow = false; //高级搜索面板 + @observable form = new WeaForm(); + @observable conditionNum = 20; + @observable searchConditionLoading = true; + @observable visible = false; + @observable dialogLoading = false; + @observable moduleType = ""; //模块类型 + + init(logMoudleType) { + this.setModuleType(logMoudleType); + this.getTableInfo(); + this.getSearchCondition(); + } + + @action getTableInfo() { + let params = { + ...this.form.getFormParams(), + moduleType:this.moduleType + } + this.tableStore = new TableStore(); + Api.getLogList(params).then(res => { + if (res.code === 200) { + res.data.datas && this.tableStore.getDatas(res.data.datas, 1); + } else { + message.warning(res.msg); + } + }, error => { + message.warning(error.msg); + }) + } + + + + @action getSearchCondition() { + this.setDialogLoading(true); + Api.getAdvanceSearchCondition().then(res => { + if (res.code === 200) { + this.setDialogLoading(false); + res.data.conditions && this.setSearchCondition(res.data.conditions); + res.data.conditions && this.form.initFormFields(res.data.conditions); + } else { + message.warning(res.msg); + } + }, error => { + message.warning(error.msg); + }) + } + + + + setDialogLoading(bool) { + this.dialogLoading = bool; + } + + setPanelStatus(bool) { + this.isPanelShow = bool; + bool && this.getSearchCondition(); + if (!bool) { + this.scLoadingReset(); + } + } + + isEmptyObject(obj) { + for (let key in obj) { + return false; + } + return true; + } + + setSearchCondition(searchCondition) { + this.searchCondition = searchCondition; + } + + scLoadingReset() { + this.searchConditionLoading = true; + } + + setVisable(bool) { + this.visible = bool; + } + + setModuleType(moduleType) { + this.moduleType = moduleType; + } + +} \ No newline at end of file