Commit 9f1fed5f authored by 涂伟's avatar 涂伟

fix: '1.台账新增导入导出功能2.流程配置表名和编辑字段必填'

parent b18bb20a
......@@ -11,6 +11,9 @@ import {
notification,
Input,
Button,
Modal,
Upload,
message,
} from 'antd';
import {
......@@ -21,10 +24,18 @@ import {
EditTwoTone,
DeleteOutlined,
SyncOutlined,
ExportOutlined,
ImportOutlined,
} from '@ant-design/icons';
import classnames from 'classnames';
import PageContainer from '@/components/BasePageContainer';
import { GetCM_Ledger_LoadLedgers, CM_Ledger_RmoveLedger } from '@/services/standingBook/api';
import {
GetCM_Ledger_LoadLedgers,
CM_Ledger_RmoveLedger,
ExportLedgerConfig,
CheckImportLedgerConfig,
ImportLedgerConfig,
} from '@/services/standingBook/api';
import AddModal from './BookConfig';
import styles from './standingBook.less';
// import Search from 'antd/lib/transfer/search';
......@@ -152,6 +163,12 @@ const StandingBook = props => {
<Tooltip title="编辑此表">
<EditTwoTone onClick={() => editor(record)} style={{ fontSize: '16px' }} />
</Tooltip>
<Tooltip title="导出台账">
<ExportOutlined
onClick={() => hadelExport(record)}
style={{ fontSize: '16px', color: '#1890FF' }}
/>
</Tooltip>
<Tooltip title="删除此表">
<Popconfirm
......@@ -169,6 +186,44 @@ const StandingBook = props => {
),
},
];
// 导出
const hadelExport = record => {
window.location.href = ExportLedgerConfig({
ledgerId: record.ID,
});
};
// 导入
const beforeUpload = val => {
// setFile(val);
const formData = new FormData();
formData.append('_files', val);
CheckImportLedgerConfig(formData).then(res => {
if (res.code === 0) {
Modal.confirm({
title: '提示',
icon: '',
content: <div style={{ whiteSpace: 'pre-wrap' }}>{res.data}</div>,
onOk() {
console.log('OK');
ImportLedgerConfig(formData).then(response => {
if (response.code === 0) {
setFlag(flag + 1);
message.success('导入成功');
} else {
message.error(response.msg);
}
});
},
okText: '确认导入',
cancelText: '我再想想',
});
} else {
message.error(res.msg);
}
});
return false;
};
useEffect(() => {
setTreeLoading(true);
......@@ -400,34 +455,32 @@ const StandingBook = props => {
}}
>
{tableData.length > 0 &&
tableData.map((item, index) => {
return (
<div
title={`${item}(${allData[item] ? allData[item].length : 0})`}
className={classnames({
[styles.listItem]: true,
[styles.pickItem]: item === pickItem,
[styles.listHover]: item !== pickItem && item === hoverItemIndex,
})}
onClick={() => {
setPickItem(item);
setSearchWord('');
setSearchFlag(0);
setCurrentPage(1);
setCurrentPageSize(20);
}}
onMouseEnter={() => {
setHoverItemIndex(item);
}}
onMouseLeave={() => {
setHoverItemIndex('');
}}
key={index}
>
{item}{allData[item] ? allData[item].length : 0}
</div>
);
})}
tableData.map((item, index) => (
<div
title={`${item}(${allData[item] ? allData[item].length : 0})`}
className={classnames({
[styles.listItem]: true,
[styles.pickItem]: item === pickItem,
[styles.listHover]: item !== pickItem && item === hoverItemIndex,
})}
onClick={() => {
setPickItem(item);
setSearchWord('');
setSearchFlag(0);
setCurrentPage(1);
setCurrentPageSize(20);
}}
onMouseEnter={() => {
setHoverItemIndex(item);
}}
onMouseLeave={() => {
setHoverItemIndex('');
}}
key={index}
>
{item}{allData[item] ? allData[item].length : 0}
</div>
))}
</div>
</div>
</>
......@@ -468,20 +521,26 @@ const StandingBook = props => {
{/* <Button icon={<SyncOutlined />} onClick={handleReset}>
重置
</Button> */}
<Upload showUploadList={false} accept=".json" beforeUpload={beforeUpload}>
<Button style={{ marginLeft: '10px' }} type="primary" ghost>
<div style={{ display: 'flex', alignItems: 'center' }}>
<ImportOutlined style={{ marginRight: '5px' }} />
<div>导入</div>
</div>
</Button>
</Upload>
</div>
<div style={{ marginTop: '10px', height: 'calc(100% - 94px)' }}>
<Table
size="small"
rowKey="ID"
bordered
onRow={record => {
return {
onDoubleClick: event => {
event.stopPropagation();
editor(record);
}, // 双击
};
}}
onRow={record => ({
onDoubleClick: event => {
event.stopPropagation();
editor(record);
}, // 双击
})}
columns={columns}
loading={tableLoading}
dataSource={searchFlag === 0 ? allData[pickItem] : searchData[pickItem]}
......
......@@ -59,6 +59,16 @@ const NodeModal = props => {
...refConfigTimeLimit.current?.getParmar(),
};
if (!obj.TableName) {
message.error('请选择节点表名');
return;
}
if (!obj.Fields) {
message.error('请选择编辑字段');
return;
}
for (let i = 0; i < obj.RuleList.length; i++) {
if (!obj.RuleList[i].RuleName) {
message.error('请填写规则名称');
......
......@@ -254,8 +254,8 @@ const ConfigNodeMsg = (props, ref) => {
{nodeMsg.NodeType === '20' || nodeMsg.NodeType === '21' || nodeMsg.NodeType === '22'
? '网关'
: nodeMsg.NodeType === '30'
? `子流程`
: `节点`}
? `子流程`
: `节点`}
信息
</Divider>
<div className={styles.titleBox}>
......@@ -291,8 +291,8 @@ const ConfigNodeMsg = (props, ref) => {
nodeMsg.NodeType === '20' || nodeMsg.NodeType === '21' || nodeMsg.NodeType === '22'
? '网关'
: nodeMsg.NodeType === '30'
? `流程`
: '节点'
? `流程`
: '节点'
}名称`}
name="NodeName"
rules={[{ required: true, message: '请输入名称' }]}
......@@ -414,6 +414,7 @@ const ConfigNodeMsg = (props, ref) => {
)
}
name="TableName"
rules={[{ required: true, message: '请选择节点表名' }]}
>
<Select placeholder="请选择节点表名" onChange={changTable} showSearch>
{eventTable.map(item => (
......@@ -434,13 +435,18 @@ const ConfigNodeMsg = (props, ref) => {
) : (
''
)}
<span style={{ marginRight: '4px', color: 'red' }}>*</span>
<span>字段编辑</span>
</div>
}
>
<div className={styles.filedListItem}>
<Tooltip title={form.getFieldValue('Fields')}>
<Form.Item name="Fields" style={{ marginBottom: 0, width: '100%' }}>
<Form.Item
name="Fields"
style={{ marginBottom: 0, width: '100%' }}
rules={[{ required: true }]}
>
<Input
placeholder="请选编辑字段"
readOnly
......
......@@ -119,3 +119,14 @@ export const ImportEventConfig = query =>
// 导出
export const ExportEventConfig = query =>
`${PUBLISH_SERVICE}/WorkOrderCenter/ExportEventConfig?eventTypeId=${query.eventTypeId}`;
// 导出台账
export const ExportLedgerConfig = query =>
`${PUBLISH_SERVICE}/WorkOrderCenter/ExportLedgerConfig?ledgerId=${query.ledgerId}`;
// 导入台账检查
export const CheckImportLedgerConfig = data =>
post(`${PUBLISH_SERVICE}/WorkOrderCenter/CheckImportLedgerConfig`, data);
// 导入台账
export const ImportLedgerConfig = data =>
post(`${PUBLISH_SERVICE}/WorkOrderCenter/ImportLedgerConfig`, data);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment