diff --git a/pc4mobx/organization/components/branchNumSetting/components/numberComposition.js b/pc4mobx/organization/components/branchNumSetting/components/numberComposition.js new file mode 100644 index 0000000..42f5943 --- /dev/null +++ b/pc4mobx/organization/components/branchNumSetting/components/numberComposition.js @@ -0,0 +1,212 @@ +/* + * Author: 黎永顺 + * Description: + * Date: 2022-05-17 16:02:56 + * LastEditTime: 2022-05-17 18:30:57 + */ +import React, { Component, Fragment } from "react"; +import { Button } from "antd"; +import { + WeaTableEdit, + WeaDialog, + WeaMoreButton, + WeaFormItem, + WeaSelect, +} from "ecCom"; +import { i18n } from "../../../public/i18n"; +import _ from "lodash"; + +const columns = [ + { + title: "", + dataIndex: "numFieldName", + key: "numFieldName", + colSpan: 1, + com: [{ label: "", type: "TEXT" }], + width: "20%", + }, + { + title: "", + dataIndex: "value", + useRecord: true, + key: "value", + com: [{ label: "", type: "INPUT", viewAttr: 2, key: "value" }], + colSpan: 1, + width: "70%", + }, +]; +const dataSource = [ + // { + // com: { + // value: [{ key: "value", label: "", type: "TEXT" }], + // }, + // value: "", + // numFieldName: "字符串", + // numField: "string", + // }, + { + value: "", + numFieldName: "字符串", + numField: "string", + }, + { value: "3", numFieldName: "流水号位数", numField: "number" }, +]; + +const options = [ + { + key: "string", + showname: "字符串", + }, + { + key: "year", + showname: "当前年份", + }, + { + key: "month", + showname: "当前月份", + }, + { + key: "day", + showname: "当前日期", + }, +]; +class NumberComposition extends Component { + constructor() { + super(); + this.state = { + visible: false, + numField: "string", + numFieldName: "字符串", + dataSource, + }; + } + + getRowSelection = (rowSelection) => { + const sel = { ...rowSelection }; + sel.getCheckboxProps = (record) => { + return { disabled: record.numField === "number" }; + }; + return sel; + }; + + handleAddTable = () => { + this.setState({ + visible: true, + }); + }; + handleSave = () => { + const { numField, numFieldName, dataSource } = this.state; + + const objWrite = { + value: "", + numFieldName, + numField, + }; + const objView = { + com: { + value: [{ key: numField, label: "", type: "TEXT" }], + }, + [numField]: "", + numFieldName, + numField, + }; + this.setState({ + visible: false, + numField: "string", + numFieldName: "字符串", + dataSource: + numField === "year" || numField === "month" || numField === "day" + ? [...dataSource, objView] + : [...dataSource, objWrite], + }); + }; + handleDeleteTable = (keys, datas) => { + console.log("handleDeleteTable", keys, datas); + }; + + render() { + const { visible, numField, dataSource } = this.state; + const buttons = [ + , + , + ]; + const stringRow = _.map( + _.filter(dataSource, (it) => it.numField === "string"), + (item, index) => { + return { + ...item, + numFieldName: `${item.numFieldName}${index + 1}`, + }; + } + ); + const yearRow = _.filter(dataSource, (it) => it.numField === "year"); + const monthRow = _.filter(dataSource, (it) => it.numField === "month"); + const dayRow = _.filter(dataSource, (it) => it.numField === "day"); + const disableRow = _.filter(dataSource, (it) => it.numField === "number"); + + return ( + + + {/* 新增弹框 */} + + this.setState({ + visible: false, + }) + } + icon="icon-coms-hrm" + iconBgcolor="#217346" + title={i18n.label.addNumberField()} + visible={visible} + hasScroll + maxHeight={150} + buttons={buttons}> + + { + this.setState({ numField, numFieldName }); + }} + /> + + + + ); + } +} + +export default NumberComposition; diff --git a/pc4mobx/organization/components/branchNumSetting/components/startReservedNumberSet.js b/pc4mobx/organization/components/branchNumSetting/components/startReservedNumberSet.js new file mode 100644 index 0000000..b5cd812 --- /dev/null +++ b/pc4mobx/organization/components/branchNumSetting/components/startReservedNumberSet.js @@ -0,0 +1,31 @@ +/* + * Author: 黎永顺 + * Description: 起始编号及预留编号设置 + * Date: 2022-05-17 15:51:41 + * LastEditTime: 2022-05-17 16:01:33 + */ +import React, { Component, Fragment } from "react"; +import { WeaFormItem } from "ecCom"; + +class StartReservedNumberSet extends Component { + render() { + return ( + + + + + + + + + ); + } +} + +export default StartReservedNumberSet; diff --git a/pc4mobx/organization/components/branchNumSetting/index.js b/pc4mobx/organization/components/branchNumSetting/index.js new file mode 100644 index 0000000..6f3aa56 --- /dev/null +++ b/pc4mobx/organization/components/branchNumSetting/index.js @@ -0,0 +1,94 @@ +/* + * Author: 黎永顺 + * Description: 分部编号设置 + * Date: 2022-05-17 14:30:57 + * LastEditTime: 2022-05-17 17:18:36 + */ +import React, { Component } 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 btns = []; +const dropMenuDatas = [ + { + key: "save", + disabled: false, + icon: , + content: "保存", + onClick: (key) => alert(`点击了搜索 key = ${key}`), + }, +]; +export default class BranchNumSetting extends Component { + constructor() { + super(); + this.state = { + checkVal: "0", + }; + } + + componentDidMount() {} + + /** + * name:提示文本 + * return {*} + */ + helpContent = () => { + return ( +
+

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

+

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

+

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

+

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

+

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

+
+ ); + }; + + render() { + const { checkVal } = this.state; + return ( +
+ } + iconBgcolor="#217346" + buttons={btns} + showDropIcon={true} + dropMenuDatas={dropMenuDatas} + /> +
+
+ + this.setState({ checkVal })} + /> + +
+ {/* 内容区 */} +
+ + + +
+
+ + + +
+
+
+ ); + } +} diff --git a/pc4mobx/organization/components/branchNumSetting/index.less b/pc4mobx/organization/components/branchNumSetting/index.less new file mode 100644 index 0000000..d1ac961 --- /dev/null +++ b/pc4mobx/organization/components/branchNumSetting/index.less @@ -0,0 +1,26 @@ +.branch-wapper { + height: 100%; + display: flex; + flex-direction: column; + + .branch-content { + flex: 1; + + .switch-wrapper { + width: 100%; + padding: 20px 20% 40px 30%; + } + + .numberComposition .ant-table-thead { + background: #f7fbfe; + } + + .startReservedNumberSet { + .icon-coms-Flow-setting { + font-size: 16px; + cursor: pointer; + line-height: 30px; + } + } + } +} \ No newline at end of file diff --git a/pc4mobx/organization/index.js b/pc4mobx/organization/index.js index a89f3ba..64319ae 100644 --- a/pc4mobx/organization/index.js +++ b/pc4mobx/organization/index.js @@ -10,6 +10,7 @@ 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 stores from "./stores"; import "./style/index"; @@ -41,6 +42,7 @@ const Routes = ( + ); diff --git a/pc4mobx/organization/public/i18n.js b/pc4mobx/organization/public/i18n.js index aae8001..692e234 100644 --- a/pc4mobx/organization/public/i18n.js +++ b/pc4mobx/organization/public/i18n.js @@ -128,6 +128,7 @@ export const i18n = { newOfficeName: () => getLabel(386246, '新建职务信息'), editOfficeName: () => getLabel(386247, '编辑职务信息'), newOfficeClassifyName: () => getLabel(386246, '新建职务分类信息'), + branchNumSetting: () => getLabel(386246, '分部编号设置'),