diff --git a/pc4mobx/organization/components/branchNumSetting/components/numberComposition.js b/pc4mobx/organization/components/branchNumSetting/components/numberComposition.js index 9a6479a..25f9140 100644 --- a/pc4mobx/organization/components/branchNumSetting/components/numberComposition.js +++ b/pc4mobx/organization/components/branchNumSetting/components/numberComposition.js @@ -2,7 +2,7 @@ * Author: 黎永顺 * Description: * Date: 2022-05-17 16:02:56 - * LastEditTime: 2022-05-18 13:46:29 + * LastEditTime: 2022-05-18 18:03:07 */ import React, { Component, Fragment } from "react"; import { Button, Modal } from "antd"; @@ -17,6 +17,7 @@ import { import Preview from "./preview"; import { i18n } from "../../../public/i18n"; import _ from "lodash"; +import "../index.less"; const dataSource = [ { @@ -324,21 +325,21 @@ class NumberComposition extends Component { hasScroll maxHeight={150} buttons={buttons}> - - { - this.setState({ numField, numFieldName }); - }} - /> - +
+ + { + this.setState({ numField, numFieldName }); + }} + /> + +
); diff --git a/pc4mobx/organization/components/branchNumSetting/index.js b/pc4mobx/organization/components/branchNumSetting/index.js index 68bdc8d..6ab1d7d 100644 --- a/pc4mobx/organization/components/branchNumSetting/index.js +++ b/pc4mobx/organization/components/branchNumSetting/index.js @@ -1,101 +1,124 @@ -/* - * Author: 黎永顺 - * Description: 分部编号设置 - * Date: 2022-05-17 14:30:57 - * LastEditTime: 2022-05-18 14:13:24 - */ -import React, { Component, Fragment } from "react"; -import { Button } from "antd"; -import { WeaTop, WeaFormItem, WeaCheckbox, WeaSearchGroup } from "ecCom"; -import StartReservedNumberSet from "./components/startReservedNumberSet"; -import NumberComposition from "./components/numberComposition"; -import { i18n } from "../../public/i18n"; -import "./index.less"; +const { inject, observer } = mobxReact; +const ProductItem = ecodeSDK.imp(ProductItem); +const ProductDialog = ecodeSDK.imp(ProductDialog); +const { toJS } = mobx; +// const { product } = ecodeSDK.imp(productDataSource); +const { WeaDialog } = ecCom; +const { createRef } = React; -const btns = []; -const dropMenuDatas = [ - { - key: "save", - disabled: false, - icon: , - content: "保存", - onClick: (key) => alert(`点击了搜索 key = ${key}`), - }, -]; -export default class BranchNumSetting extends Component { +@inject("projectStore") +@observer +class ProductIndex extends React.Component { constructor() { super(); this.state = { - checkVal: "0", + dialogParams: { + visible: false, + productId: "", + }, + dialogWidth: 1200, + dialogHeight: 100, }; + this.productRef = createRef(); + } + componentDidMount() { + window.addEventListener("resize", this.resizeWidthHeight); + this.resizeWidthHeight(); + this.init(); + } + conponentWillUnmount() { + window.removeEventListener("resize", this.resizeWidthHeight); } - componentDidMount() {} + resizeWidthHeight = () => { + requestAnimationFrame(() => { + if (!this.productRef.current) { + return; + } + const { offsetWidth, offsetHeight } = this.productRef.current; + this.setState({ + dialogWidth: offsetWidth - 100, + // offsetHeight / 2 + dialogHeight: 80, + }); + }); + }; - /** - * name:提示文本 - * return {*} - */ - helpContent = () => { - return ( -
-

开启后,可根据设置的分部编号规则自动生成分部编号,涉及场景如下:

-

1.手动新建和手动编辑分部时可选择重新生成编号和选择预留分部编号;

-

2.组织结构导入-添加新分部且分部编号列为空时,会自动生成分部编号;

-

3.导入人员-添加时,新创建的分部可自动生成分部编号;

-

【注意】开启前请先确认分部编号字段已启用!

-
- ); + init = () => { + const { + projectStore: { init }, + } = this.props; + init(); + }; + + handlePickProduct = async (productId) => { + const { + projectStore: { viewProject, init }, + } = this.props; + const { api_status } = await viewProject(productId); + if (api_status) init(); + this.setState({ + dialogParams: { ...this.state.dialogParams, visible: true, productId }, + }); }; render() { - const { checkVal } = this.state; + const { dialogParams, dialogHeight, dialogWidth } = this.state; + const { + projectStore: { product }, + } = this.props; return ( -
- } - iconBgcolor="#217346" - buttons={btns} - showDropIcon={true} - dropMenuDatas={dropMenuDatas} - /> -
-
- - this.setState({ checkVal })} - /> - -
- {/* 内容区 */} - {checkVal === "1" && ( - -
- - - +
+
+ {_.map(toJS(product), (item, index) => { + const { id, title, subTitle, products } = item; + return ( +
+ {/*

{title}

+

{subTitle}

*/} +
-
- - - -
- - )} + ); + })} + {/* + + 演示 +
+ 脚本 +
+
*/}
+ {/* 弹框 */} + {dialogParams.visible && ( + { + this.resizeWidthHeight(); + this.setState({ + dialogParams: { + ...this.state.dialogParams, + visible: false, + productId: "", + }, + }); + }} + visible={dialogParams.visible} + style={{ width: dialogWidth }}> +
+ +
+
+ )}
); } } + +ecodeSDK.exp(ProductIndex); diff --git a/pc4mobx/organization/components/deptment/index.js b/pc4mobx/organization/components/deptment/index.js new file mode 100644 index 0000000..2086465 --- /dev/null +++ b/pc4mobx/organization/components/deptment/index.js @@ -0,0 +1,268 @@ +/* + * Author: 黎永顺 + * Description: 部门管理 + * Date: 2022-05-20 08:54:59 + * LastEditTime: 2022-05-20 09:34:30 + */ +import React, { Component } from "react"; +import { inject, observer } from "mobx-react"; +import { i18n } from "../../public/i18n"; +import { Row, Col, Spin, Modal, Button, message, Switch } from "antd"; +import { + WeaTop, + WeaTab, + WeaFormItem, + WeaRightMenu, + WeaLeftRightLayout, + WeaTable, +} from "ecCom"; + +const data = [ + { + key: 1, + name: "a", + age: 32, + address: "我是a", + children: [ + { + key: 11, + name: "aa", + age: 33, + address: "我是aa", + }, + { + key: 12, + name: "ab", + age: 33, + address: "我是ab", + children: [ + { + key: 121, + name: "aba", + age: 33, + address: "我是aba", + }, + ], + }, + { + key: 13, + name: "ac", + age: 33, + address: "我是ac", + children: [ + { + key: 131, + name: "aca", + age: 33, + address: "我是aca", + children: [ + { + key: 1311, + name: "acaa", + age: 33, + address: "我是acaa", + }, + { + key: 1312, + name: "acab", + age: 33, + address: "我是acab", + }, + ], + }, + ], + }, + ], + }, + { + key: 2, + name: "b", + age: 32, + address: "我是b", + }, +]; + +@observer +class DepartmentManage extends Component { + constructor(props) { + super(props); + this.state = {}; + } + + /** + * name: 右击菜单列表 + * return {*} + */ + getDropMenuDatas = () => { + let menus = []; + [].map((item, index) => { + let obj = { + key: item.menuFun, + icon: , + content: item.menuName, + }; + if ( + item.menuFun == "collection" || + item.menuFun == "help" || + item.menuFun == "pageAddress" + ) { + obj.disabled = true; + } + menus.push(obj); + }); + return menus; + }; + /** + * name: 右键菜单点击的回调 + * param undefined + * return {*} + */ + handleMenuClick = (key) => { + // const { officeManageStore } = this.props; + // const { isPanelShow } = officeManageStore; + // isPanelShow && officeManageStore.setPanelStatus(false); + switch (key) { + case "new": + default: + break; + } + }; + /** + * name: 顶部操作按钮 + * return {*} + */ + getTopMenuBtns = () => { + let btns = [ + , + , + , + ]; + // [].map((item, i) => { + // if (item.menuFun !== "batchDelete") { + // btns.push(); + // btns.push(); + // } else { + // btns.push( + // + // ); + // } + // }); + return btns; + }; + /** + * name: 搜索面板底部按钮组 + * return {*} + */ + getTabBtn = () => { + const btn = [ + , + , + , + ]; + + return btn; + }; + /** + * name: 表格内复选框设置 + * return {*} + */ + rowSelection = () => { + return { + onChange(selectedRowKeys, selectedRows) { + console.log( + `selectedRowKeys: ${selectedRowKeys}`, + "selectedRows: ", + selectedRows + ); + }, + onSelect(record, selected, selectedRows) { + console.log(record, selected, selectedRows); + }, + onSelectAll(selected, selectedRows, changeRows) { + console.log(selected, selectedRows, changeRows); + }, + }; + }; + + render() { + const columns = [ + { + title: "姓名", + dataIndex: "name", + key: "name", + width: "40%", + }, + { + title: "年龄", + dataIndex: "age", + key: "age", + width: "30%", + }, + { + title: "住址", + dataIndex: "address", + key: "address", + width: "30%", + }, + ]; + return ( +
+ this.handleMenuClick(key)}> + } + iconBgcolor="#217346" + loading={true} + buttons={this.getTopMenuBtns()} + showDropIcon={true} + dropMenuDatas={this.getDropMenuDatas()} + onDropMenuClick={(e) => this.handleMenuClick(e)}> + console.log(bool)} + hideSearchAd={() => console.log(false)} //隐藏高级搜索回调 + searchsAd={
} //标准高级搜索条目组 + advanceHeight={Math.ceil(2 / 2) * 52 + 20} //高级搜索面板的高度 + hasMask={false} + buttonsAd={this.getTabBtn()} + onSearch={() => console.log()} //点搜索按钮时的回调 + onSearchChange={(val) => console.log(val)} //在搜索框中输入的文字改变时的回调 + /> + +
+
+
+ ); + } +} + +export default DepartmentManage; diff --git a/pc4mobx/organization/index.js b/pc4mobx/organization/index.js index 64319ae..8211664 100644 --- a/pc4mobx/organization/index.js +++ b/pc4mobx/organization/index.js @@ -9,8 +9,9 @@ import JobGrade from "./components/postionrank/JobGrade"; import Sequence from "./components/sequence/Sequence"; import Group from "./components/group/Group"; import OfficeManage from "./components/office/officeManage"; -import CompanyExtend from "./components/company/CompanyExtend" -import BranchNumSetting from "./components/branchNumSetting" +import CompanyExtend from "./components/company/CompanyExtend"; +import BranchNumSetting from "./components/branchNumSetting"; +import DepartmentManage from "./components/deptment"; import stores from "./stores"; import "./style/index"; @@ -42,7 +43,16 @@ const Routes = ( - + + ); diff --git a/pc4mobx/organization/public/i18n.js b/pc4mobx/organization/public/i18n.js index 8b8dcc0..a5c9572 100644 --- a/pc4mobx/organization/public/i18n.js +++ b/pc4mobx/organization/public/i18n.js @@ -129,6 +129,7 @@ export const i18n = { editOfficeName: () => getLabel(386247, '编辑职务信息'), newOfficeClassifyName: () => getLabel(386246, '新建职务分类信息'), branchNumSetting: () => getLabel(386246, '分部编号设置'), + departName: () => getLabel(386246, '部门管理'),