From 2b1093ca1dd4646d3d4bf39196122a8fe879c00d Mon Sep 17 00:00:00 2001 From: liyongshun <971387674@qq.com> Date: Wed, 15 Jun 2022 11:02:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E5=8F=B7=E8=AE=BE=E7=BD=AE=E9=83=A8?= =?UTF-8?q?=E5=88=86bug=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/numberComposition.js | 76 +++--- .../components/reservedNumberSetting.js | 49 ++-- .../components/startNumberSetting.js | 128 ++++++++- .../components/startReservedNumberSet.js | 39 +-- .../numberSetting/branchNumSetting/index.js | 47 +++- .../components/numberSetting/constants.js | 6 + .../numberSetting/deptNumberSet/index.js | 222 ++++++++++----- .../numberSetting/postNumberSet/index.js | 51 +++- .../numberSetting/resourceNumberSet/index.js | 257 ++++++++++++++---- pc4mobx/organization/stores/numberSet.js | 4 +- 10 files changed, 640 insertions(+), 239 deletions(-) create mode 100644 pc4mobx/organization/components/numberSetting/constants.js diff --git a/pc4mobx/organization/components/numberSetting/branchNumSetting/components/numberComposition.js b/pc4mobx/organization/components/numberSetting/branchNumSetting/components/numberComposition.js index 277a215..3f65be5 100644 --- a/pc4mobx/organization/components/numberSetting/branchNumSetting/components/numberComposition.js +++ b/pc4mobx/organization/components/numberSetting/branchNumSetting/components/numberComposition.js @@ -2,7 +2,7 @@ * Author: 黎永顺 * Description: * Date: 2022-05-17 16:02:56 - * LastEditTime: 2022-06-08 16:35:49 + * LastEditTime: 2022-06-14 14:16:16 */ import React, { Component, Fragment } from "react"; import { Button, Modal } from "antd"; @@ -20,24 +20,6 @@ import { i18n } from "../../../../public/i18n"; import _ from "lodash"; import "../index.less"; -const options = [ - { - key: "string", - showname: "字符串", - }, - { - key: "year", - showname: "当前年份", - }, - { - key: "month", - showname: "当前月份", - }, - { - key: "day", - showname: "当前日期", - }, -]; class NumberComposition extends Component { constructor() { super(); @@ -88,20 +70,20 @@ class NumberComposition extends Component { dataSource: !_.isEmpty(tmpV) ? tmpV : [ - { - id: 1, - value: "", - strLogo: 1, - numFieldName: "字符串1", - numField: "string", - }, - { - id: 2, - value: 3, - numFieldName: "流水号位数", - numField: "number", - }, - ], + { + id: 1, + value: "", + strLogo: 1, + numFieldName: "字符串1", + numField: "string", + }, + { + id: 2, + value: 3, + numFieldName: "流水号位数", + numField: "number", + }, + ], }, () => { onChange && onChange(this.state.dataSource); @@ -141,8 +123,8 @@ class NumberComposition extends Component { const stringRow = _.filter(dataSource, (it) => it.numField === "string"); //字符串列表 const maxStrLen = !_.isEmpty(stringRow) ? _.sortBy(stringRow, function (o) { - return -o.strLogo; - })[0].strLogo + return -o.strLogo; + })[0].strLogo : 0; //字符串列表 const maxIdLen = _.sortBy(dataSource, function (o) { return -o.id; @@ -153,7 +135,17 @@ class NumberComposition extends Component { dataSource, (item) => item.numField === "string" ); - + if (numField === "subcompany" || numField === "department" || numField === "jobtitles") { + if (_.findIndex(dataSource, it => it.numField === numField) !== -1) { + Modal.warning({ + title: "信息确认", + content: `已经添加过一个${numFieldName},请选择其他编号字段!`, + onOk() { }, + okText: "确认", + }); + return; + } + } if (numField === "year" || numField === "month" || numField === "day") { const hasYearOrMonthOrDay = _.some( dataSource, @@ -166,7 +158,7 @@ class NumberComposition extends Component { Modal.warning({ title: "信息确认", content: `添加【${numFieldName}】时,请先添加【当前年份】!`, - onOk() {}, + onOk() { }, okText: "确认", }); return; @@ -175,7 +167,7 @@ class NumberComposition extends Component { Modal.warning({ title: "信息确认", content: `添加【${numFieldName}】时,请先添加【当前年份】和【当前月份】!`, - onOk() {}, + onOk() { }, okText: "确认", }); return; @@ -297,7 +289,7 @@ class NumberComposition extends Component { title: "信息确认", content: `已经添加过一个${objectData.numFieldName},请选择其他编号字段!`, footer: [], - onOk() {}, + onOk() { }, okText: "确认", }); }; @@ -331,6 +323,7 @@ class NumberComposition extends Component { render() { const { visible, objectData, dataSource } = this.state; + const { options } = this.props; const { numField, numFieldName } = objectData; const columns = [ { @@ -397,9 +390,8 @@ class NumberComposition extends Component { {i18n.button.save()} , , ]; diff --git a/pc4mobx/organization/components/numberSetting/branchNumSetting/components/reservedNumberSetting.js b/pc4mobx/organization/components/numberSetting/branchNumSetting/components/reservedNumberSetting.js index b1c8bb2..4baaf71 100644 --- a/pc4mobx/organization/components/numberSetting/branchNumSetting/components/reservedNumberSetting.js +++ b/pc4mobx/organization/components/numberSetting/branchNumSetting/components/reservedNumberSetting.js @@ -2,7 +2,7 @@ * Author: 黎永顺 * Description: 预留编号设置 * Date: 2022-06-08 09:53:51 - * LastEditTime: 2022-06-09 16:07:51 + * LastEditTime: 2022-06-15 11:00:55 */ import React, { Component } from "react"; import { Row, Col, Spin, Modal, Button, Alert, message } from "antd"; @@ -59,24 +59,21 @@ class ReservedNumberSetting extends Component { c.items.map((field, index) => { colList.push(
{ @@ -128,7 +125,7 @@ class ReservedNumberSetting extends Component { onDeleteReservedNumber && onDeleteReservedNumber(selectedKeys.join(",")); }, - onCancel: () => {}, + onCancel: () => { }, }); }; handleAddReservedNumber = () => { @@ -189,17 +186,15 @@ class ReservedNumberSetting extends Component {
)} {i18n.button.save()} , , ]}> {this.getReservedForm()} diff --git a/pc4mobx/organization/components/numberSetting/branchNumSetting/components/startNumberSetting.js b/pc4mobx/organization/components/numberSetting/branchNumSetting/components/startNumberSetting.js index ac48d27..aa4091e 100644 --- a/pc4mobx/organization/components/numberSetting/branchNumSetting/components/startNumberSetting.js +++ b/pc4mobx/organization/components/numberSetting/branchNumSetting/components/startNumberSetting.js @@ -2,12 +2,51 @@ * Author: 黎永顺 * Description: 起始编号设置 * Date: 2022-06-07 15:27:43 - * LastEditTime: 2022-06-09 16:14:32 + * LastEditTime: 2022-06-15 10:47:55 */ -import React, { Component } from "react"; -import { WeaTableEdit, WeaInputNumber } from "ecCom"; +import React, { Component, Fragment } from "react"; +import { WeaTableEdit, WeaInputNumber, WeaDatePicker, WeaBrowser, WeaError } from "ecCom"; +import moment from 'moment'; +const enumStr = { + YEAR: '年', + MONTH: '月份', + DAY: '日期' +} +const browserProps = { + iconBgcolor: '#217346', + icon: 'icon-coms-hrm', + isSingle: false, + inputStyle: { width: 200 }, + viewAttr: 3 +} class StartNumberSetting extends Component { + constructor() { + super(); + this.state = { + startDate: '', + endDate: '', + subCompanyId: '', + jobtitlesId: "" + } + } + handleDatePickerChange = (val, type) => { + this.setState({ + [type]: val + }, () => { + const { startDate, endDate, subCompanyId, jobtitlesId } = this.state; + const { onSet } = this.props; + onSet('start', { startDate, endDate, subCompanyId, jobtitlesId }) + }) + } + handleBrowserChange = (val, type) => { + this.setState({ + [type]: val + }, () => { + const { onSet } = this.props; + onSet('start', { ...this.state, [type]: val }) + }) + } handleChangeTable = (datas) => { const { onChange, startNumberInfo } = this.props; const newColumns = _.map(startNumberInfo.columns, (it) => ({ @@ -21,22 +60,81 @@ class StartNumberSetting extends Component { }; render() { - const { startNumberInfo } = this.props; + const { startDate, endDate } = this.state; + const { startNumberInfo, companyInfo } = this.props; + const { deptSerial = {}, dateSerial = {}, jobtitlesSerial = {} } = companyInfo; const newColumns = _.map(startNumberInfo.columns, (it) => ({ ...it, - com: [{ type: "INPUTNUMBER", key: it.dataIndex, viewAttr: 3, min: 0 }], + com: [{ type: it.dataIndex === 'startnum' ? "INPUTNUMBER" : "TEXT", key: it.dataIndex, viewAttr: 3, min: 0 }], })); + const format = dateSerial.key === "YEAR" ? "YYYY" : dateSerial.key === "MONTH" ? "YYYY-MM" : "yyyy-MM-dd"; + const formatVal = dateSerial.key === "YEAR" ? "YYYY" : dateSerial.key === "MONTH" ? "YYYY-MM" : "yyyy-MM-DD"; return ( - + + {dateSerial.enable == '1' && ( +
+ {enumStr[dateSerial.key]} + this.handleDatePickerChange(val, 'startDate')} /> + + this.handleDatePickerChange(val, 'endDate')} /> +
+ )} + { + (deptSerial.enable == '1' && (deptSerial.key === "SUBCOMPANY" || deptSerial.key === "DEPARTMENT")) && ( +
+ 分部名称 + + this.handleBrowserChange(ids, 'subCompanyId')} + /> + +
+ ) + } + { + (deptSerial.enable == '1' && deptSerial.key === "DEPARTMENT") && ( +
+ 部门名称 + + this.handleBrowserChange(ids, 'deptId')} + /> + +
+ ) + } + { + (jobtitlesSerial.enable == '1' && jobtitlesSerial.key === "JOBTITLES") && ( +
+ 岗位名称 + + this.handleBrowserChange(ids, 'jobtitlesId')} + /> + +
+ ) + } + +
); } } diff --git a/pc4mobx/organization/components/numberSetting/branchNumSetting/components/startReservedNumberSet.js b/pc4mobx/organization/components/numberSetting/branchNumSetting/components/startReservedNumberSet.js index 23b5367..9df6825 100644 --- a/pc4mobx/organization/components/numberSetting/branchNumSetting/components/startReservedNumberSet.js +++ b/pc4mobx/organization/components/numberSetting/branchNumSetting/components/startReservedNumberSet.js @@ -2,7 +2,7 @@ * Author: 黎永顺 * Description: 起始编号及预留编号设置 * Date: 2022-05-17 15:51:41 - * LastEditTime: 2022-06-08 18:03:02 + * LastEditTime: 2022-06-14 18:29:38 */ import React, { Component, Fragment } from "react"; import { Button, Modal } from "antd"; @@ -47,7 +47,7 @@ class StartReservedNumberSet extends Component { onOk: () => { onSaveStartNumber && onSaveStartNumber(); }, - onCancel: () => {}, + onCancel: () => { }, }); }; handleClose = () => { @@ -68,6 +68,8 @@ class StartReservedNumberSet extends Component { const { dialogProps, reservedAddVisible } = this.state; const { type } = dialogProps; const { + onSet, + companyInfo, startNumberInfo, onDeleteReservedNumber, onAddReservedNumber, @@ -104,30 +106,29 @@ class StartReservedNumberSet extends Component { buttons={ type === "start" ? [ - , - + {i18n.button.save()} + , + , - ] + />, + ] : [ - , - ] + />, + ] }> {type === "start" ? ( diff --git a/pc4mobx/organization/components/numberSetting/branchNumSetting/index.js b/pc4mobx/organization/components/numberSetting/branchNumSetting/index.js index 9aa465a..bed9e63 100644 --- a/pc4mobx/organization/components/numberSetting/branchNumSetting/index.js +++ b/pc4mobx/organization/components/numberSetting/branchNumSetting/index.js @@ -2,7 +2,7 @@ * Author: 黎永顺 * Description: 分部编号设置 * Date: 2022-05-17 14:30:57 - * LastEditTime: 2022-06-09 15:12:50 + * LastEditTime: 2022-06-14 18:26:07 */ import React, { Component, Fragment } from "react"; import { inject, observer } from "mobx-react"; @@ -16,6 +16,7 @@ import { WeaHelpfulTip, } from "ecCom"; import StartReservedNumberSet from "./components/startReservedNumberSet"; +import { serialFieldOptions } from "../constants"; import NumberComposition from "./components/numberComposition"; import { i18n } from "../../../public/i18n"; import moment from "moment"; @@ -114,15 +115,18 @@ export default class BranchNumSetting extends Component { }); }; - handleSetNumber = (type) => { + handleSetNumber = (type, data = {}) => { this.handleSubmit().then((res) => { const { numberSet } = this.props; + const { subCompanyInfo } = this.state; + const { dateSerial } = subCompanyInfo; if (type === "start") { + const formatVal = dateSerial.key === "YEAR" ? "YYYY" : dateSerial.key === "MONTH" ? "YYYY-MM" : "YYYY-MM-DD"; const payload = { coderuleid: 1, - type: "", - dateStart: moment().format("YYYY"), - dateEnd: moment().format("YYYY"), + type: dateSerial.enable == '1' ? dateSerial.key : '', + dateStart: data.startDate ? data.startDate : moment().format(formatVal), + dateEnd: data.endDate ? data.endDate : moment().format(formatVal), subCompanyId: "", deptId: "", jobtitlesId: "", @@ -194,7 +198,33 @@ export default class BranchNumSetting extends Component { */ handleAddReservedNumber = () => { const { numberSet } = this.props; - numberSet.getReservedCodeFrom({ serialtype: "SUBCOMPANY" }); + const { reservedForm } = numberSet; + const { options } = this.state; + numberSet.getReservedCodeFrom({ serialtype: "SUBCOMPANY" }).then(() => { + const type = _.get(_.last(options), ['key']); + const format = type === "YEAR" ? "YYYY" : type === "MONTH" ? "YYYY-MM" : "YYYY-MM-DD" + const payload = { + coderuleid: 1, + type, + dateStart: moment().format(format), + dateEnd: moment().format(format), + subCompanyId: "", + deptId: "", + jobtitlesId: "", + }; + numberSet + .getStartNumForm(payload) + .then(({ api_status, dataSource }) => { + if (api_status && !_.isEmpty(dataSource)) { + const currentnumber = _.get(_.last(dataSource), ['startnum']); + reservedForm.updateFields({ + currentnumber: { + value: currentnumber, + }, + }); + } + }); + }) }; /** * name: 保存预留设置 @@ -293,6 +323,7 @@ export default class BranchNumSetting extends Component { @@ -316,6 +347,7 @@ export default class BranchNumSetting extends Component { dateSerial: { ...dateSerial, enable: isSingle, + key: isSingle == '0' ? 'YEAR' : dateSerial.key }, }, }) @@ -323,7 +355,7 @@ export default class BranchNumSetting extends Component { /> {dateSerial.enable == "1" && ( ({ ...item, showname: item.showname.substr(2, 1) }))} value={dateSerial.key} detailtype={3} supportCancel @@ -360,6 +392,7 @@ export default class BranchNumSetting extends Component { ref={(dom) => (this.numberSetRef = dom)} loading={loading} onSet={this.handleSetNumber} + companyInfo={subCompanyInfo} startNumberInfo={startNumberInfo} onChange={this.handleChangeTable} onSaveStartNumber={this.handleSubmitStartNumber} diff --git a/pc4mobx/organization/components/numberSetting/constants.js b/pc4mobx/organization/components/numberSetting/constants.js new file mode 100644 index 0000000..a45a284 --- /dev/null +++ b/pc4mobx/organization/components/numberSetting/constants.js @@ -0,0 +1,6 @@ +export const serialFieldOptions = [ + { key: "string", showname: "字符串" }, + { key: "year", showname: "当前年份" }, + { key: "month", showname: "当前月份" }, + { key: "day", showname: "当前日期" }, +]; \ No newline at end of file diff --git a/pc4mobx/organization/components/numberSetting/deptNumberSet/index.js b/pc4mobx/organization/components/numberSetting/deptNumberSet/index.js index 1d5226a..01fa1ad 100644 --- a/pc4mobx/organization/components/numberSetting/deptNumberSet/index.js +++ b/pc4mobx/organization/components/numberSetting/deptNumberSet/index.js @@ -2,7 +2,7 @@ * Author: 黎永顺 * Description: 部门编号设置 * Date: 2022-06-06 09:37:39 - * LastEditTime: 2022-06-09 15:12:57 + * LastEditTime: 2022-06-15 09:52:04 */ import React, { Component, Fragment } from "react"; import { inject, observer } from "mobx-react"; @@ -17,10 +17,13 @@ import { } from "ecCom"; import StartReservedNumberSet from "../branchNumSetting/components/startReservedNumberSet"; import NumberComposition from "../branchNumSetting/components/numberComposition"; +import { serialFieldOptions } from "../constants"; import { i18n } from "../../../public/i18n"; import moment from "moment"; import "../branchNumSetting/index.less"; +const deptSerialFieldOptions = [{ key: 'subcompany', showname: "分部编号" }] + @inject("numberSet") @observer export default class DeptNumberSet extends Component { @@ -37,6 +40,10 @@ export default class DeptNumberSet extends Component { subCompanyInfo: { details: [], serialenable: "0", + deptSerial: { + enable: "0", + key: "", + }, dateSerial: { enable: "0", key: "", @@ -53,10 +60,10 @@ export default class DeptNumberSet extends Component { const { numberSet } = this.props; numberSet .getCodeSetting({ serialtype: "DEPARTMENT" }) - .then(({ api_status, details, serialenable, dateSerial = {} }) => { + .then(({ api_status, details, serialenable, dateSerial = {}, deptSerial = {} }) => { if (api_status && !_.isEmpty(details)) { this.setState({ - subCompanyInfo: { details, serialenable, dateSerial }, + subCompanyInfo: { details, serialenable, dateSerial, deptSerial }, }); } }); @@ -66,7 +73,7 @@ export default class DeptNumberSet extends Component { let promise = new Promise((resolve, reject) => { const { numberSet } = this.props; const { dataSource, subCompanyInfo } = this.state; - const { serialenable, dateSerial } = subCompanyInfo; + const { serialenable, dateSerial, deptSerial } = subCompanyInfo; const details = _.map(dataSource, (it, showorder) => { const { numField, value: rulevalue } = it; return { @@ -80,6 +87,7 @@ export default class DeptNumberSet extends Component { serialenable, details, dateSerial, + deptSerial, serialtype: "DEPARTMENT", }), }; @@ -103,7 +111,10 @@ export default class DeptNumberSet extends Component { (it) => it.numField === "year" || it.numField === "month" || - it.numField === "day" + it.numField === "day" || + it.numField === "subcompany" || + it.numField === "department" || + it.numField === "jobtitles" ); this.setState({ dataSource: _.cloneDeep(data), @@ -114,28 +125,33 @@ export default class DeptNumberSet extends Component { }); }; - handleSetNumber = (type) => { + handleSetNumber = (type, data = {}) => { this.handleSubmit().then((res) => { const { numberSet } = this.props; + const { subCompanyInfo } = this.state; + const { dateSerial, deptSerial } = subCompanyInfo; if (type === "start") { - const payload = { + const formatVal = dateSerial.key === "YEAR" ? "YYYY" : dateSerial.key === "MONTH" ? "YYYY-MM" : "YYYY-MM-DD"; + let payload = { coderuleid: 2, - type: "", - dateStart: moment().format("YYYY"), - dateEnd: moment().format("YYYY"), - subCompanyId: "", + type: dateSerial.enable == '1' ? dateSerial.key : '', + dateStart: data.startDate ? data.startDate : moment().format(formatVal), + dateEnd: data.endDate ? data.endDate : moment().format(formatVal), + subCompanyId: data.subCompanyId ? data.subCompanyId : "", deptId: "", jobtitlesId: "", }; - numberSet - .getStartNumForm(payload) - .then(({ api_status, columns, dataSource }) => { - if (api_status) { - this.setState({ - startNumberInfo: { columns, dataSource }, - }); - } - }); + if (deptSerial.enable === '1' && !data.subCompanyId) return + if (deptSerial.enable === '1' && data.subCompanyId) { + payload = { ...payload, type: payload.type + ',' + deptSerial.key } + } + numberSet.getStartNumForm(payload).then(({ api_status, columns, dataSource }) => { + if (api_status) { + this.setState({ + startNumberInfo: { columns, dataSource }, + }); + } + }); } else { numberSet.getAdvanceSearchCondition(); numberSet.getSearchReservedCodeList({ @@ -194,7 +210,33 @@ export default class DeptNumberSet extends Component { */ handleAddReservedNumber = () => { const { numberSet } = this.props; - numberSet.getReservedCodeFrom({ serialtype: "DEPARTMENT" }); + const { reservedForm } = numberSet; + const { options } = this.state; + numberSet.getReservedCodeFrom({ serialtype: "DEPARTMENT" }).then(() => { + const type = _.get(_.last(options), ['key']); + const format = type === "YEAR" ? "YYYY" : type === "MONTH" ? "YYYY-MM" : "YYYY-MM-DD" + const payload = { + coderuleid: 2, + type, + dateStart: moment().format(format), + dateEnd: moment().format(format), + subCompanyId: "", + deptId: "", + jobtitlesId: "", + }; + numberSet + .getStartNumForm(payload) + .then(({ api_status, dataSource }) => { + if (api_status && !_.isEmpty(dataSource)) { + const currentnumber = _.get(_.last(dataSource), ['startnum']); + reservedForm.updateFields({ + currentnumber: { + value: currentnumber, + }, + }); + } + }); + }) }; /** * name: 保存预留设置 @@ -234,7 +276,7 @@ export default class DeptNumberSet extends Component { render() { const { options, subCompanyInfo, loading, startNumberInfo } = this.state; const { numberSet } = this.props; - const { details, serialenable, dateSerial } = subCompanyInfo; + const { details, serialenable, dateSerial = {}, deptSerial = {} } = subCompanyInfo; const btns = [