完成编号设置的功能

This commit is contained in:
liyongshun 2022-06-09 16:51:37 +08:00
parent 88bf00cc8d
commit 938e17aaad
12 changed files with 1034 additions and 212 deletions

View File

@ -2,7 +2,7 @@
* Author: 黎永顺
* Description:
* Date: 2022-06-07 09:52:01
* LastEditTime: 2022-06-08 09:37:41
* LastEditTime: 2022-06-08 14:57:56
*/
import { WeaTools } from "ecCom";
@ -75,6 +75,19 @@ export const getSearchReservedCodeList = (params) => {
);
};
/**
* name: 保存预留编号设置
* param {*} params
* return {*}
*/
export const saveReservedCode = (params) => {
return WeaTools.callApi(
"/api/hrm/codeSetting/saveReservedCode",
"POST",
params
);
};
/**
* name: 新增预留编号表单查询
* param {*} params
@ -87,3 +100,16 @@ export const getReservedCodeFrom = (params) => {
params
);
};
/**
* name: 删除预留编号
* param {*} params
* return {*}
*/
export const deleteReservedCodeById = (params) => {
return WeaTools.callApi(
"/api/hrm/codeSetting/deleteReservedCodeById",
"POST",
params
);
};

View File

@ -2,7 +2,7 @@
* Author: 黎永顺
* Description:
* Date: 2022-05-17 16:02:56
* LastEditTime: 2022-06-07 15:30:43
* LastEditTime: 2022-06-08 16:35:49
*/
import React, { Component, Fragment } from "react";
import { Button, Modal } from "antd";
@ -58,6 +58,9 @@ class NumberComposition extends Component {
YEAR: "当前年份",
MONTH: "当前月份",
DAY: "当前日期",
SUBCOMPANY: "分部编号",
DEPARTMENT: "部门编号",
JOBTITLES: "岗位编号",
};
let num = 0;
const { dataSource: details, onChange } = this.props;
@ -352,7 +355,10 @@ class NumberComposition extends Component {
if (
numField === "year" ||
numField === "month" ||
numField === "day"
numField === "day" ||
numField === "subcompany" ||
numField === "department" ||
numField === "jobtitles"
) {
return <span></span>;
}

View File

@ -2,7 +2,7 @@
* Author: 黎永顺
* Description: 编号设置预览
* Date: 2022-05-18 10:21:09
* LastEditTime: 2022-05-18 13:26:11
* LastEditTime: 2022-06-08 16:37:01
*/
import React, { Component } from "react";
@ -19,7 +19,10 @@ class Preview extends Component {
if (
numField === "year" ||
numField === "month" ||
numField === "day"
numField === "day" ||
numField === "subcompany" ||
numField === "department" ||
numField === "jobtitles"
) {
return {
...item,

View File

@ -0,0 +1,406 @@
/*
* Author: 黎永顺
* Description: 预留编号设置
* Date: 2022-06-08 09:53:51
* LastEditTime: 2022-06-09 16:07:51
*/
import React, { Component } from "react";
import { Row, Col, Spin, Modal, Button, Alert, message } from "antd";
import { inject, observer } from "mobx-react";
import { toJS } from "mobx";
import { i18n } from "../../../../public/i18n";
import {
WeaTab,
WeaButtonIcon,
WeaFormItem,
WeaDialog,
WeaMoreButton,
WeaSearchGroup,
} from "ecCom";
import { WeaSwitch, WeaTableNew } from "comsMobx";
const WeaTable = WeaTableNew.WeaTable;
@inject("numberSet")
@observer
class ReservedNumberSetting extends Component {
constructor() {
super();
this.state = {
addVisible: false,
showSearchAd: false,
reservedcode: "",
previewStr: "",
date: "",
};
}
componentWillReceiveProps(nextProps) {
const { numberSet, onChangeAddVisible } = this.props;
const { reservedForm } = numberSet;
if (nextProps.addVisible !== this.props.addVisible) {
!nextProps.addVisible &&
this.setState({ addVisible: false }, () => {
reservedForm.reset();
onChangeAddVisible && onChangeAddVisible();
});
}
}
/**
* name:渲染搜索栏
* return {*}
*/
getPanelComponents = () => {
const { numberSet } = this.props;
const { searchCondition, form } = numberSet;
let colList = [];
const { isFormInit } = form;
isFormInit &&
searchCondition.map((c) => {
c.items.map((field, index) => {
colList.push(
<Col
ecId={`${
(this && this.props && this.props.ecId) || ""
}_Col@4cc308@${index}`}
span={index % 2 == 0 ? 10 : 11}
offset={1}>
<div style={{ marginTop: 20 }}>
<WeaFormItem
ecId={`${
(this && this.props && this.props.ecId) || ""
}_WeaFormItem@u6ex85@${index}`}
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
wrapperCol={{ span: `${field.fieldcol}` }}>
{
<WeaSwitch
ecId={`${
(this && this.props && this.props.ecId) || ""
}_WeaSwitch@p7d3td@${index}`}
fieldConfig={field}
form={form}
/>
}
</WeaFormItem>
</div>
</Col>
);
});
});
return (
<Row ecId={`${(this && this.props && this.props.ecId) || ""}_Row@ppeb6z`}>
{colList}
</Row>
);
};
onSearchChange = (reservedcode) => {
const { numberSet } = this.props;
const { form } = numberSet;
this.setState({ reservedcode });
!_.isEmpty(form.getFormParams()) &&
form.updateFields({
reservedcode: {
value: reservedcode,
},
});
};
/**
* name: 查询
* return {*}
*/
handelSearch = () => {
const { onSearchReservedNumberset } = this.props;
onSearchReservedNumberset && onSearchReservedNumberset();
};
/**
* name: 删除 预留编号
* return {*}
*/
handleDelete = () => {
const { numberSet, onDeleteReservedNumber } = this.props;
const { tableStore } = numberSet;
const selectedKeys = toJS(tableStore.selectedRowKeys);
Modal.confirm({
title: "信息确认",
content: `确定要删除选择的记录吗?`,
onOk: () => {
onDeleteReservedNumber &&
onDeleteReservedNumber(selectedKeys.join(","));
},
onCancel: () => {},
});
};
handleAddReservedNumber = () => {
const { onAddReservedNumber } = this.props;
this.setState({ addVisible: true }, () => {
onAddReservedNumber && onAddReservedNumber();
});
};
/**
* name: 提交预留编号设置
* return {*}
*/
handleSubmitReservedNumber = () => {
const { numberSet, onSubmitReservedNumber } = this.props;
const { reservedForm, condition } = numberSet;
reservedForm.validateForm().then((f) => {
if (f.isValid) {
const { desc: reserveddesc, flowcode: reservedcodes } =
reservedForm.getFormParams() || {};
if (!/(^[1-9]\d*$)/.test(reservedcodes)) {
message.warning(`"流水号"格式不正确,请重新输入!`);
return;
}
onSubmitReservedNumber &&
onSubmitReservedNumber({
reserveddesc,
reservedcodes: this.state.previewStr,
});
} else {
message.warning("请完善表单信息");
f.showErrors();
this.setState({ date: new Date() }); // 改变一个state的变量,强制页面刷新
}
});
};
/**
* name: 新增预留编号表单渲染
* return {*}
*/
getReservedForm = () => {
const { condition, reservedForm } = this.props.numberSet;
let reservedFormItem = [];
const { isFormInit } = reservedForm;
isFormInit &&
condition.map((c, i) => {
let switchItem = [];
c.items.map((field, index) => {
switchItem.push({
com: (
<div>
{i === condition.length - 1 && index === 0 && (
<div style={{ width: 280 }}>
<Alert
message="填写完上方编号组成后才会显示当前流水号"
type="warning"
showIcon
/>
</div>
)}
<WeaFormItem
ecId={`${
(this && this.props && this.props.ecId) || ""
}_WeaFormItem@merei2@${index}`}
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
tipPosition="bottom"
wrapperCol={{ span: `${field.fieldcol}` }}>
<WeaSwitch
ecId={`${
(this && this.props && this.props.ecId) || ""
}_WeaSwitch@5r6c5a@${index}`}
fieldConfig={field}
form={reservedForm}
formParams={reservedForm.getFormParams()}
onChange={this.handleFormItemChange}
/>
{field.domkey[0] === "flowcode" && (
<p>格式为5,6-10,21,66,99</p>
)}
</WeaFormItem>
</div>
),
colSpan: 1,
});
});
reservedFormItem.push(
<WeaSearchGroup
ecId={`${
(this && this.props && this.props.ecId) || ""
}_WeaSearchGroup@qaih5l@${i}`}
needTigger={true}
title={c.title}
showGroup={c.defaultshow}
items={switchItem}
col={1}
/>
);
});
return reservedFormItem;
};
/**
* name: 输出指定个数0
* param {*} num
* param {*} length
* return {*}
*/
prefixInteger = (num, length) => {
return (Array(length).join("0") + num).slice(-length);
};
/**
* name: 字符串替换
* param {*} str
* param {*} index
* param {*} char
* return {*}
*/
replaceStr2 = (str, index, char) => {
return str.substring(0, index) + char;
};
/**
* name: 预留编号的设置
* param {*} formVal
* return {*}
*/
handleFormItemChange = (formVal) => {
const { numberSet, onSubmitReservedNumber } = this.props;
const { reservedForm, condition } = numberSet;
const NumberOfData = reservedForm.getFormParams() || {};
let previewStr = "",
originStr = "";
for (let i in NumberOfData) {
if (
i.indexOf("STRING") > -1 ||
i.indexOf("YEAR") > -1 ||
i.indexOf("MONTH") > -1 ||
i.indexOf("DAY") > -1
) {
originStr = originStr + NumberOfData[i];
}
}
let integer_0 = this.prefixInteger(0, Number(NumberOfData["NUMBER"]));
//预留流水号值输入
if (_.hasIn(formVal, "flowcode")) {
const inputValue = formVal["flowcode"].value;
if (inputValue.length <= Number(NumberOfData["NUMBER"])) {
previewStr =
originStr +
this.replaceStr2(
integer_0,
integer_0.length - inputValue.length,
inputValue
);
} else {
previewStr = originStr + previewStr + inputValue;
}
this.setState({ previewStr: inputValue ? previewStr : "" });
} else if (
_.hasIn(formVal, "YEAR") ||
_.hasIn(formVal, "MONTH") ||
_.hasIn(formVal, "DAY")
) {
const { flowcode } = NumberOfData;
if (flowcode.length <= Number(NumberOfData["NUMBER"])) {
previewStr =
originStr +
this.replaceStr2(
integer_0,
integer_0.length - flowcode.length,
flowcode
);
} else {
previewStr = originStr + previewStr + flowcode;
}
this.setState({ previewStr });
}
};
render() {
const {
showSearchAd,
reservedcodem,
addVisible,
reservedcode,
date,
previewStr,
} = this.state;
const { numberSet, loading } = this.props;
const { form, tableStore, reservedForm } = numberSet;
return (
<div>
<WeaTab
searchType={["base", "advanced"]}
showSearchAd={showSearchAd}
advanceHeight={200}
setShowSearchAd={(bool) => {
this.setState({
showSearchAd: bool,
});
}}
searchsAd={this.getPanelComponents()}
searchsBaseValue={
_.isEmpty(form.getFormParams())
? reservedcode
: form.getFormParams().reservedcode
}
onSearchChange={this.onSearchChange}
onSearch={this.handelSearch}
onAdReset={() => form.reset()}
onAdSearch={this.handelSearch}
hasMask={false}
buttons={[
<WeaButtonIcon
buttonType="add"
type="primary"
onClick={this.handleAddReservedNumber}
/>,
<WeaButtonIcon
buttonType="del"
type="primary"
onClick={this.handleDelete}
disabled={_.isEmpty(toJS(tableStore.selectedRowKeys))}
/>,
]}
/>
<WeaTable
ecId={`${
(this && this.props && this.props.ecId) || ""
}_WeaTable@b43d3f`}
comsWeaTableStore={tableStore}
hasOrder={true}
needScroll={true}
/>
{/* 起始/预留编号设置 */}
<WeaDialog
title={`新建预留编号`}
visible={addVisible}
onCancel={() => {
reservedForm.resetForm();
this.setState({ addVisible: false, previewStr: "" });
}}
icon="icon-coms-hrm"
iconBgcolor="#217346"
hasScroll
style={{ width: 640, height: 480 }}
buttons={[
<Button
ecId={`${
(this && this.props && this.props.ecId) || ""
}_Button@jd6baw`}
type="primary"
loading={loading}
onClick={this.handleSubmitReservedNumber}>
{i18n.button.save()}
</Button>,
<WeaMoreButton
ecId={`${
(this && this.props && this.props.ecId) || ""
}_WeaMoreButton@e4f4n1`}
/>,
]}>
{this.getReservedForm()}
<WeaSearchGroup title="预留编号预览" showGroup>
<p style={{ textAlign: "center", color: "#30b7f5" }}>
{previewStr}
</p>
</WeaSearchGroup>
</WeaDialog>
</div>
);
}
}
export default ReservedNumberSetting;

View File

@ -2,7 +2,7 @@
* Author: 黎永顺
* Description: 起始编号设置
* Date: 2022-06-07 15:27:43
* LastEditTime: 2022-06-07 17:21:03
* LastEditTime: 2022-06-09 16:14:32
*/
import React, { Component } from "react";
import { WeaTableEdit, WeaInputNumber } from "ecCom";
@ -16,6 +16,10 @@ class StartNumberSetting extends Component {
}));
onChange && onChange(newColumns, datas);
};
getRowSelection = (rowSelection) => {
return null;
};
render() {
const { startNumberInfo } = this.props;
const newColumns = _.map(startNumberInfo.columns, (it) => ({
@ -28,7 +32,7 @@ class StartNumberSetting extends Component {
showAdd={false}
showDelete={false}
showCopy={false}
tableProps={{ rowSelection: {} }}
getRowSelection={this.getRowSelection}
columns={newColumns}
datas={startNumberInfo.dataSource}
onChange={this.handleChangeTable}

View File

@ -2,18 +2,19 @@
* Author: 黎永顺
* Description: 起始编号及预留编号设置
* Date: 2022-05-17 15:51:41
* LastEditTime: 2022-06-07 17:40:30
* LastEditTime: 2022-06-08 18:03:02
*/
import React, { Component, Fragment } from "react";
import { Button, Modal } from "antd";
import StartNumberSetting from "./startNumberSetting";
import ReservedNumberSetting from "./reservedNumberSetting";
import { WeaFormItem, WeaDialog, WeaMoreButton } from "ecCom";
import { i18n } from "../../../../public/i18n";
class StartReservedNumberSet extends Component {
constructor() {
super();
this.state = {
reservedAddVisible: true,
dialogProps: {
type: "start",
visible: false,
@ -40,7 +41,14 @@ class StartReservedNumberSet extends Component {
};
handleSave = () => {
const { onSaveStartNumber } = this.props;
onSaveStartNumber && onSaveStartNumber();
Modal.confirm({
title: "信息确认",
content: `是否保存数据?`,
onOk: () => {
onSaveStartNumber && onSaveStartNumber();
},
onCancel: () => {},
});
};
handleClose = () => {
this.setState({
@ -50,10 +58,23 @@ class StartReservedNumberSet extends Component {
},
});
};
handleCloseReservedModal = () => {
this.setState({
reservedAddVisible: false,
});
};
render() {
const { dialogProps } = this.state;
const { dialogProps, reservedAddVisible } = this.state;
const { type } = dialogProps;
const { startNumberInfo } = this.props;
const {
startNumberInfo,
onDeleteReservedNumber,
onAddReservedNumber,
onSubmitReservedNumber,
onSearchReservedNumberset,
loading,
} = this.props;
return (
<Fragment>
<WeaFormItem
@ -79,8 +100,7 @@ class StartReservedNumberSet extends Component {
iconBgcolor="#217346"
{...dialogProps}
hasScroll
style={{ width: 900 }}
maxHeight={150}
style={{ width: 900, height: 480 }}
buttons={
type === "start"
? [
@ -106,11 +126,23 @@ class StartReservedNumberSet extends Component {
/>,
]
}>
{type === "start" && (
{type === "start" ? (
<StartNumberSetting
startNumberInfo={startNumberInfo}
onChange={this.handleChangeTable}
/>
) : (
<ReservedNumberSetting
addVisible={reservedAddVisible}
onDeleteReservedNumber={onDeleteReservedNumber}
onAddReservedNumber={onAddReservedNumber}
onSubmitReservedNumber={onSubmitReservedNumber}
onSearchReservedNumberset={onSearchReservedNumberset}
loading={loading}
onChangeAddVisible={() =>
this.setState({ reservedAddVisible: true })
}
/>
)}
</WeaDialog>
</Fragment>

View File

@ -2,7 +2,7 @@
* Author: 黎永顺
* Description: 分部编号设置
* Date: 2022-05-17 14:30:57
* LastEditTime: 2022-06-07 17:49:14
* LastEditTime: 2022-06-09 15:12:50
*/
import React, { Component, Fragment } from "react";
import { inject, observer } from "mobx-react";
@ -63,32 +63,38 @@ export default class BranchNumSetting extends Component {
};
handleSubmit = () => {
const { numberSet } = this.props;
const { dataSource, subCompanyInfo } = this.state;
const { serialenable, dateSerial } = subCompanyInfo;
const details = _.map(dataSource, (it, showorder) => {
const { numField, value: rulevalue } = it;
return {
ruletype: _.upperCase(numField),
rulevalue,
showorder,
let promise = new Promise((resolve, reject) => {
const { numberSet } = this.props;
const { dataSource, subCompanyInfo } = this.state;
const { serialenable, dateSerial } = subCompanyInfo;
const details = _.map(dataSource, (it, showorder) => {
const { numField, value: rulevalue } = it;
return {
ruletype: _.upperCase(numField),
rulevalue,
showorder,
};
});
const payload = {
datas: JSON.stringify({
serialenable,
details,
dateSerial,
serialtype: "SUBCOMPANY",
}),
};
this.setState({ loading: true });
numberSet.saveOrUpdateCodeSetting(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
resolve(api_status);
} else {
reject("接口调用失败");
}
});
});
const payload = {
datas: JSON.stringify({
serialenable,
details,
dateSerial,
serialtype: "SUBCOMPANY",
}),
};
this.setState({ loading: true });
numberSet.saveOrUpdateCodeSetting(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
}
});
return promise;
};
handleChangeCode = (data) => {
@ -109,28 +115,35 @@ export default class BranchNumSetting extends Component {
};
handleSetNumber = (type) => {
this.handleSubmit();
const { numberSet } = this.props;
if (type === "start") {
const payload = {
coderuleid: 1,
type: "",
dateStart: moment().format("YYYY"),
dateEnd: moment().format("YYYY"),
subCompanyId: "",
deptId: "",
jobtitlesId: "",
};
numberSet
.getStartNumForm(payload)
.then(({ api_status, columns, dataSource }) => {
if (api_status) {
this.setState({
startNumberInfo: { columns, dataSource },
});
}
this.handleSubmit().then((res) => {
const { numberSet } = this.props;
if (type === "start") {
const payload = {
coderuleid: 1,
type: "",
dateStart: moment().format("YYYY"),
dateEnd: moment().format("YYYY"),
subCompanyId: "",
deptId: "",
jobtitlesId: "",
};
numberSet
.getStartNumForm(payload)
.then(({ api_status, columns, dataSource }) => {
if (api_status) {
this.setState({
startNumberInfo: { columns, dataSource },
});
}
});
} else {
numberSet.getAdvanceSearchCondition();
numberSet.getSearchReservedCodeList({
serialtype: "SUBCOMPANY",
checkboxType: "multi",
});
}
}
});
};
handleChangeTable = (newColumns, datas) => {
this.setState({
@ -158,6 +171,53 @@ export default class BranchNumSetting extends Component {
});
};
/**
* name: 删除预留编号
* param {*} ids
* return {*}
*/
deleteReservedNumber = (ids) => {
const { numberSet } = this.props;
numberSet.deleteReservedCodeById({ ids }).then(({ api_status }) => {
if (api_status) {
message.success("删除成功");
numberSet.getSearchReservedCodeList({
serialtype: "SUBCOMPANY",
checkboxType: "multi",
});
}
});
};
/**
* name:新增预留编号
* return {*}
*/
handleAddReservedNumber = () => {
const { numberSet } = this.props;
numberSet.getReservedCodeFrom({ serialtype: "SUBCOMPANY" });
};
/**
* name: 保存预留设置
* param {*} params
* return {*}
*/
handleSubmitReservedNumber = (params) => {
const { numberSet } = this.props;
const payload = { ...params, serialtype: "SUBCOMPANY" };
this.setState({ loading: true });
numberSet.saveReservedCode(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
this.numberSetRef.handleCloseReservedModal();
numberSet.getSearchReservedCodeList({
serialtype: "SUBCOMPANY",
checkboxType: "multi",
});
}
});
};
/**
* name:提示文本
* return {*}
@ -175,6 +235,7 @@ export default class BranchNumSetting extends Component {
};
render() {
const { numberSet } = this.props;
const { options, subCompanyInfo, loading, startNumberInfo } = this.state;
const { details, serialenable, dateSerial } = subCompanyInfo;
const btns = [
@ -297,10 +358,20 @@ export default class BranchNumSetting extends Component {
center>
<StartReservedNumberSet
ref={(dom) => (this.numberSetRef = dom)}
loading={loading}
onSet={this.handleSetNumber}
startNumberInfo={startNumberInfo}
onChange={this.handleChangeTable}
onSaveStartNumber={this.handleSubmitStartNumber}
onDeleteReservedNumber={this.deleteReservedNumber}
onAddReservedNumber={this.handleAddReservedNumber}
onSubmitReservedNumber={this.handleSubmitReservedNumber}
onSearchReservedNumberset={() =>
numberSet.getSearchReservedCodeList({
serialtype: "SUBCOMPANY",
checkboxType: "multi",
})
}
/>
</WeaSearchGroup>
</div>

View File

@ -2,7 +2,7 @@
* Author: 黎永顺
* Description: 部门编号设置
* Date: 2022-06-06 09:37:39
* LastEditTime: 2022-06-08 09:32:09
* LastEditTime: 2022-06-09 15:12:57
*/
import React, { Component, Fragment } from "react";
import { inject, observer } from "mobx-react";
@ -18,7 +18,7 @@ import {
import StartReservedNumberSet from "../branchNumSetting/components/startReservedNumberSet";
import NumberComposition from "../branchNumSetting/components/numberComposition";
import { i18n } from "../../../public/i18n";
import moment from 'moment';
import moment from "moment";
import "../branchNumSetting/index.less";
@inject("numberSet")
@ -63,32 +63,38 @@ export default class DeptNumberSet extends Component {
};
handleSubmit = () => {
const { numberSet } = this.props;
const { dataSource, subCompanyInfo } = this.state;
const { serialenable, dateSerial } = subCompanyInfo;
const details = _.map(dataSource, (it, showorder) => {
const { numField, value: rulevalue } = it;
return {
ruletype: _.upperCase(numField),
rulevalue,
showorder,
let promise = new Promise((resolve, reject) => {
const { numberSet } = this.props;
const { dataSource, subCompanyInfo } = this.state;
const { serialenable, dateSerial } = subCompanyInfo;
const details = _.map(dataSource, (it, showorder) => {
const { numField, value: rulevalue } = it;
return {
ruletype: _.upperCase(numField),
rulevalue,
showorder,
};
});
const payload = {
datas: JSON.stringify({
serialenable,
details,
dateSerial,
serialtype: "DEPARTMENT",
}),
};
this.setState({ loading: true });
numberSet.saveOrUpdateCodeSetting(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
resolve(api_status);
} else {
reject("接口调用失败");
}
});
});
const payload = {
datas: JSON.stringify({
serialenable,
details,
dateSerial,
serialtype: "DEPARTMENT",
}),
};
this.setState({ loading: true });
numberSet.saveOrUpdateCodeSetting(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
}
});
return promise;
};
handleChangeCode = (data) => {
@ -109,28 +115,35 @@ export default class DeptNumberSet extends Component {
};
handleSetNumber = (type) => {
this.handleSubmit();
const { numberSet } = this.props;
if (type === "start") {
const payload = {
coderuleid: 2,
type: "",
dateStart: moment().format("YYYY"),
dateEnd: moment().format("YYYY"),
subCompanyId: "",
deptId: "",
jobtitlesId: "",
};
numberSet
.getStartNumForm(payload)
.then(({ api_status, columns, dataSource }) => {
if (api_status) {
this.setState({
startNumberInfo: { columns, dataSource },
});
}
this.handleSubmit().then((res) => {
const { numberSet } = this.props;
if (type === "start") {
const payload = {
coderuleid: 2,
type: "",
dateStart: moment().format("YYYY"),
dateEnd: moment().format("YYYY"),
subCompanyId: "",
deptId: "",
jobtitlesId: "",
};
numberSet
.getStartNumForm(payload)
.then(({ api_status, columns, dataSource }) => {
if (api_status) {
this.setState({
startNumberInfo: { columns, dataSource },
});
}
});
} else {
numberSet.getAdvanceSearchCondition();
numberSet.getSearchReservedCodeList({
serialtype: "DEPARTMENT",
checkboxType: "multi",
});
}
}
});
};
handleChangeTable = (newColumns, datas) => {
this.setState({
@ -158,6 +171,51 @@ export default class DeptNumberSet extends Component {
});
};
/**
* name: 删除预留编号
* param {*} ids
* return {*}
*/
deleteReservedNumber = (ids) => {
const { numberSet } = this.props;
numberSet.deleteReservedCodeById({ ids }).then(({ api_status }) => {
if (api_status) {
message.success("删除成功");
numberSet.getSearchReservedCodeList({
serialtype: "DEPARTMENT",
checkboxType: "multi",
});
}
});
};
/**
* name:新增预留编号
* return {*}
*/
handleAddReservedNumber = () => {
const { numberSet } = this.props;
numberSet.getReservedCodeFrom({ serialtype: "DEPARTMENT" });
};
/**
* name: 保存预留设置
* param {*} params
* return {*}
*/
handleSubmitReservedNumber = (params) => {
const { numberSet } = this.props;
const payload = { ...params, serialtype: "DEPARTMENT" };
numberSet.saveReservedCode(payload).then(({ api_status }) => {
if (api_status) {
message.success("保存成功");
this.numberSetRef.handleCloseReservedModal();
numberSet.getSearchReservedCodeList({
serialtype: "DEPARTMENT",
checkboxType: "multi",
});
}
});
};
/**
* name:提示文本
* return {*}
@ -175,6 +233,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 btns = [
<Button type="primary" onClick={this.handleSubmit} loading={loading}>
@ -297,9 +356,19 @@ export default class DeptNumberSet extends Component {
<StartReservedNumberSet
ref={(dom) => (this.numberSetRef = dom)}
onSet={this.handleSetNumber}
loading={loading}
startNumberInfo={startNumberInfo}
onChange={this.handleChangeTable}
onSaveStartNumber={this.handleSubmitStartNumber}
onDeleteReservedNumber={this.deleteReservedNumber}
onAddReservedNumber={this.handleAddReservedNumber}
onSubmitReservedNumber={this.handleSubmitReservedNumber}
onSearchReservedNumberset={() =>
numberSet.getSearchReservedCodeList({
serialtype: "DEPARTMENT",
checkboxType: "multi",
})
}
/>
</WeaSearchGroup>
</div>

View File

@ -2,7 +2,7 @@
* Author: 黎永顺
* Description: 岗位编号设置
* Date: 2022-06-06 09:37:39
* LastEditTime: 2022-06-08 09:32:24
* LastEditTime: 2022-06-09 11:31:39
*/
import React, { Component, Fragment } from "react";
import { inject, observer } from "mobx-react";
@ -63,32 +63,38 @@ export default class PostNumberSet extends Component {
};
handleSubmit = () => {
const { numberSet } = this.props;
const { dataSource, subCompanyInfo } = this.state;
const { serialenable, dateSerial } = subCompanyInfo;
const details = _.map(dataSource, (it, showorder) => {
const { numField, value: rulevalue } = it;
return {
ruletype: _.upperCase(numField),
rulevalue,
showorder,
let promise = new Promise((resolve, reject) => {
const { numberSet } = this.props;
const { dataSource, subCompanyInfo } = this.state;
const { serialenable, dateSerial } = subCompanyInfo;
const details = _.map(dataSource, (it, showorder) => {
const { numField, value: rulevalue } = it;
return {
ruletype: _.upperCase(numField),
rulevalue,
showorder,
};
});
const payload = {
datas: JSON.stringify({
serialenable,
details,
dateSerial,
serialtype: "JOBTITLES",
}),
};
this.setState({ loading: true });
numberSet.saveOrUpdateCodeSetting(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
resolve(api_status);
} else {
reject("接口调用失败");
}
});
});
const payload = {
datas: JSON.stringify({
serialenable,
details,
dateSerial,
serialtype: "JOBTITLES",
}),
};
this.setState({ loading: true });
numberSet.saveOrUpdateCodeSetting(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
}
});
return promise;
};
handleChangeCode = (data) => {
@ -109,28 +115,35 @@ export default class PostNumberSet extends Component {
};
handleSetNumber = (type) => {
this.handleSubmit();
const { numberSet } = this.props;
if (type === "start") {
const payload = {
coderuleid: 3,
type: "",
dateStart: moment().format("YYYY"),
dateEnd: moment().format("YYYY"),
subCompanyId: "",
deptId: "",
jobtitlesId: "",
};
numberSet
.getStartNumForm(payload)
.then(({ api_status, columns, dataSource }) => {
if (api_status) {
this.setState({
startNumberInfo: { columns, dataSource },
});
}
this.handleSubmit().then(() => {
const { numberSet } = this.props;
if (type === "start") {
const payload = {
coderuleid: 3,
type: "",
dateStart: moment().format("YYYY"),
dateEnd: moment().format("YYYY"),
subCompanyId: "",
deptId: "",
jobtitlesId: "",
};
numberSet
.getStartNumForm(payload)
.then(({ api_status, columns, dataSource }) => {
if (api_status) {
this.setState({
startNumberInfo: { columns, dataSource },
});
}
});
} else {
numberSet.getAdvanceSearchCondition();
numberSet.getSearchReservedCodeList({
serialtype: "JOBTITLES",
checkboxType: "multi",
});
}
}
});
};
handleChangeTable = (newColumns, datas) => {
this.setState({
@ -157,6 +170,50 @@ export default class PostNumberSet extends Component {
}
});
};
/**
* name: 删除预留编号
* param {*} ids
* return {*}
*/
deleteReservedNumber = (ids) => {
const { numberSet } = this.props;
numberSet.deleteReservedCodeById({ ids }).then(({ api_status }) => {
if (api_status) {
message.success("删除成功");
numberSet.getSearchReservedCodeList({
serialtype: "JOBTITLES",
checkboxType: "multi",
});
}
});
};
/**
* name:新增预留编号
* return {*}
*/
handleAddReservedNumber = () => {
const { numberSet } = this.props;
numberSet.getReservedCodeFrom({ serialtype: "JOBTITLES" });
};
/**
* name: 保存预留设置
* param {*} params
* return {*}
*/
handleSubmitReservedNumber = (params) => {
const { numberSet } = this.props;
const payload = { ...params, serialtype: "JOBTITLES" };
numberSet.saveReservedCode(payload).then(({ api_status }) => {
if (api_status) {
message.success("保存成功");
this.numberSetRef.handleCloseReservedModal();
numberSet.getSearchReservedCodeList({
serialtype: "JOBTITLES",
checkboxType: "multi",
});
}
});
};
/**
* name:提示文本
@ -174,6 +231,7 @@ export default class PostNumberSet extends Component {
);
};
render() {
const { numberSet } = this.props;
const { options, subCompanyInfo, loading, startNumberInfo } = this.state;
const { details, serialenable, dateSerial } = subCompanyInfo;
const btns = [
@ -297,9 +355,19 @@ export default class PostNumberSet extends Component {
<StartReservedNumberSet
ref={(dom) => (this.numberSetRef = dom)}
onSet={this.handleSetNumber}
loading={loading}
startNumberInfo={startNumberInfo}
onChange={this.handleChangeTable}
onSaveStartNumber={this.handleSubmitStartNumber}
onDeleteReservedNumber={this.deleteReservedNumber}
onAddReservedNumber={this.handleAddReservedNumber}
onSubmitReservedNumber={this.handleSubmitReservedNumber}
onSearchReservedNumberset={() =>
numberSet.getSearchReservedCodeList({
serialtype: "JOBTITLES",
checkboxType: "multi",
})
}
/>
</WeaSearchGroup>
</div>

View File

@ -2,7 +2,7 @@
* Author: 黎永顺
* Description: 岗位编号设置
* Date: 2022-06-06 09:37:39
* LastEditTime: 2022-06-08 09:32:33
* LastEditTime: 2022-06-09 11:33:03
*/
import React, { Component, Fragment } from "react";
import { inject, observer } from "mobx-react";
@ -63,32 +63,38 @@ export default class ResourceNumberSet extends Component {
};
handleSubmit = () => {
const { numberSet } = this.props;
const { dataSource, subCompanyInfo } = this.state;
const { serialenable, dateSerial } = subCompanyInfo;
const details = _.map(dataSource, (it, showorder) => {
const { numField, value: rulevalue } = it;
return {
ruletype: _.upperCase(numField),
rulevalue,
showorder,
let promise = new Promise((resolve, reject) => {
const { numberSet } = this.props;
const { dataSource, subCompanyInfo } = this.state;
const { serialenable, dateSerial } = subCompanyInfo;
const details = _.map(dataSource, (it, showorder) => {
const { numField, value: rulevalue } = it;
return {
ruletype: _.upperCase(numField),
rulevalue,
showorder,
};
});
const payload = {
datas: JSON.stringify({
serialenable,
details,
dateSerial,
serialtype: "USER",
}),
};
this.setState({ loading: true });
numberSet.saveOrUpdateCodeSetting(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
resolve(api_status);
} else {
reject("接口调用失败");
}
});
});
const payload = {
datas: JSON.stringify({
serialenable,
details,
dateSerial,
serialtype: "USER",
}),
};
this.setState({ loading: true });
numberSet.saveOrUpdateCodeSetting(payload).then(({ api_status }) => {
this.setState({ loading: false });
if (api_status) {
message.success("保存成功");
}
});
return promise;
};
handleChangeCode = (data) => {
@ -109,29 +115,37 @@ export default class ResourceNumberSet extends Component {
};
handleSetNumber = (type) => {
this.handleSubmit();
const { numberSet } = this.props;
if (type === "start") {
const payload = {
coderuleid: 4,
type: "",
dateStart: moment().format("YYYY"),
dateEnd: moment().format("YYYY"),
subCompanyId: "",
deptId: "",
jobtitlesId: "",
};
numberSet
.getStartNumForm(payload)
.then(({ api_status, columns, dataSource }) => {
if (api_status) {
this.setState({
startNumberInfo: { columns, dataSource },
});
}
this.handleSubmit().then(() => {
const { numberSet } = this.props;
if (type === "start") {
const payload = {
coderuleid: 4,
type: "",
dateStart: moment().format("YYYY"),
dateEnd: moment().format("YYYY"),
subCompanyId: "",
deptId: "",
jobtitlesId: "",
};
numberSet
.getStartNumForm(payload)
.then(({ api_status, columns, dataSource }) => {
if (api_status) {
this.setState({
startNumberInfo: { columns, dataSource },
});
}
});
} else {
numberSet.getAdvanceSearchCondition();
numberSet.getSearchReservedCodeList({
serialtype: "USER",
checkboxType: "multi",
});
}
}
});
};
handleChangeTable = (newColumns, datas) => {
this.setState({
startNumberInfo: {
@ -158,6 +172,51 @@ export default class ResourceNumberSet extends Component {
});
};
/**
* name: 删除预留编号
* param {*} ids
* return {*}
*/
deleteReservedNumber = (ids) => {
const { numberSet } = this.props;
numberSet.deleteReservedCodeById({ ids }).then(({ api_status }) => {
if (api_status) {
message.success("删除成功");
numberSet.getSearchReservedCodeList({
serialtype: "USER",
checkboxType: "multi",
});
}
});
};
/**
* name:新增预留编号
* return {*}
*/
handleAddReservedNumber = () => {
const { numberSet } = this.props;
numberSet.getReservedCodeFrom({ serialtype: "USER" });
};
/**
* name: 保存预留设置
* param {*} params
* return {*}
*/
handleSubmitReservedNumber = (params) => {
const { numberSet } = this.props;
const payload = { ...params, serialtype: "USER" };
numberSet.saveReservedCode(payload).then(({ api_status }) => {
if (api_status) {
message.success("保存成功");
this.numberSetRef.handleCloseReservedModal();
numberSet.getSearchReservedCodeList({
serialtype: "USER",
checkboxType: "multi",
});
}
});
};
/**
* name:提示文本
* return {*}
@ -175,6 +234,7 @@ export default class ResourceNumberSet extends Component {
};
render() {
const { options, subCompanyInfo, loading, startNumberInfo } = this.state;
const { numberSet } = this.props;
const { details, serialenable, dateSerial } = subCompanyInfo;
const btns = [
<Button type="primary" onClick={this.handleSubmit} loading={loading}>
@ -297,9 +357,19 @@ export default class ResourceNumberSet extends Component {
<StartReservedNumberSet
ref={(dom) => (this.numberSetRef = dom)}
onSet={this.handleSetNumber}
loading={loading}
startNumberInfo={startNumberInfo}
onChange={this.handleChangeTable}
onSaveStartNumber={this.handleSubmitStartNumber}
onDeleteReservedNumber={this.deleteReservedNumber}
onAddReservedNumber={this.handleAddReservedNumber}
onSubmitReservedNumber={this.handleSubmitReservedNumber}
onSearchReservedNumberset={() =>
numberSet.getSearchReservedCodeList({
serialtype: "USER",
checkboxType: "multi",
})
}
/>
</WeaSearchGroup>
</div>

View File

@ -58,7 +58,7 @@ export default class OfficeManage extends Component {
handleMenuClick = (key) => {
const { officeManageStore } = this.props;
const { isPanelShow,tableStore} = officeManageStore;
const { isPanelShow, tableStore } = officeManageStore;
isPanelShow && officeManageStore.setPanelStatus(false);
switch (key) {
case "new":
@ -244,15 +244,10 @@ export default class OfficeManage extends Component {
};
custom = () => {
debugger
const {
officeManageStore
} = this.props, {
tableStore,
} = officeManageStore;
}
debugger;
const { officeManageStore } = this.props,
{ tableStore } = officeManageStore;
};
getPanelComponents = () => {
const { officeManageStore } = this.props;
@ -429,7 +424,6 @@ export default class OfficeManage extends Component {
needScroll={true}
rowSelection={{
getCheckboxProps: (record) => {
console.log(record);
return {
disabled: true, // 配置无法勾选的列
};

View File

@ -2,13 +2,75 @@
* Author: 黎永顺
* Description: 编号设置
* Date: 2022-06-07 09:54:46
* LastEditTime: 2022-06-07 17:00:49
* LastEditTime: 2022-06-09 15:05:37
*/
import { observable, action } from "mobx";
import { WeaForm } from "comsMobx";
import { WeaTableNew } from "comsMobx";
import * as mobx from "mobx";
import * as API from "../apis/numberSet"; // 引入API接口文件
const { TableStore } = WeaTableNew;
export class NumberSetStore {
@observable searchCondition = []; //高级搜索框form数据
@observable tableStore = new TableStore(); //列表store
@observable form = new WeaForm(); //高级搜索渲染的表单
@observable condition = []; //新增职务信息form数据
@observable reservedForm = new WeaForm(); //新增预留编号表单
@action("高级搜索表单渲染")
getAdvanceSearchCondition() {
API.getAdvanceSearchCondition().then(({ api_status, conditions }) => {
if (api_status && !_.isEmpty(conditions)) {
this.setSearchCondition(conditions);
this.form.initFormFields(conditions);
}
});
}
@action("获取表格数据")
getSearchReservedCodeList(params) {
const payload = {
...this.form.getFormParams(),
...params,
};
API.getSearchReservedCodeList(payload).then(
({ api_status, sessionkey }) => {
if (api_status && !_.isEmpty(sessionkey)) {
this.tableStore.getDatas(sessionkey, 1);
}
}
);
}
@action("新增预留编号表单查询")
getReservedCodeFrom(payload) {
API.getReservedCodeFrom(payload).then(({ api_status, conditioninfo }) => {
if (api_status && !_.isEmpty(conditioninfo)) {
conditioninfo.map((c) =>
c.items.map((item) => {
if (item.domkey[0] == "YEAR") {
item.value = item.value.toString();
}
})
);
this.setCondition(conditioninfo);
this.reservedForm.initFormFields(conditioninfo);
}
});
}
@action
setCondition(condition) {
this.condition = condition;
}
@action
setSearchCondition(condition) {
this.searchCondition = condition;
}
@action
getCodeSetting(params) {
return API.getCodeSetting(params);
@ -23,8 +85,19 @@ export class NumberSetStore {
getStartNumForm(params) {
return API.getStartNumForm(params);
}
@action
saveStartNum(params) {
return API.saveStartNum(params);
}
@action("删除预留编号")
deleteReservedCodeById(params) {
return API.deleteReservedCodeById(params);
}
@action("保存预留编号")
saveReservedCode(params) {
return API.saveReservedCode(params);
}
}