Commit df862a03 by zhaochengxiang

规则引用次数详情

parent 86565f6c
......@@ -358,6 +358,10 @@ export function* getRuleTemplateList() {
return yield call(datamodelerService.getRuleTemplateList);
}
export function* getRuleTemplateReferenceRuleCatalogList(payload) {
return yield call(datamodelerService.getRuleTemplateReferenceRuleCatalogList, payload);
}
export function* addRuleTemplate(payload) {
return yield call(datamodelerService.addRuleTemplate, payload);
}
......
......@@ -309,6 +309,10 @@ export function getRuleTemplateList() {
return GetJSON("/datamodeler/easyDataModelerRuleTemplate/list");
}
export function getRuleTemplateReferenceRuleCatalogList(payload) {
return GetJSON("/datamodeler/easyDataModelerRuleTemplate/referenceRuleCatalogList", payload);
}
/* rule template */
export function addRuleTemplate(payload) {
return PostJSON("/datamodeler/easyDataModelerRuleTemplate/add", payload);
......
......@@ -15,7 +15,7 @@ const FC = (props) => {
visible={visible}
footer={null}
width='80%'
bodyStyle={{ padding: '15px', overflowX: 'auto', maxHeight: '80vh' }}
bodyStyle={{ padding: '15px', overflowX: 'auto', height: '80vh' }}
title='规范详情'
centered destroyOnClose
onCancel={() => { close() }}
......
import React from 'react'
import { Input, Space, Modal, Divider, Tooltip, Typography } from 'antd'
import { Input, Space, Modal, Divider, Tooltip, Typography, Spin } from 'antd'
import { dispatch } from '../../../../model'
import PermissionButton from '../../../../util/Component/PermissionButton'
import Table from '../../../../util/Component/Table'
import { showMessage } from '../../../../util'
import Update from './update-rule-template'
import Rule from './rule-readonly'
const FC = (props) => {
const [keyword, setKeyword] = React.useState()
......@@ -87,6 +88,7 @@ const FC = (props) => {
{
title: '引用次数',
dataIndex: 'referenceCount',
render: (_, record) => <ReferenceCountCell record={record} />
},
{
title: '操作',
......@@ -166,7 +168,7 @@ const FC = (props) => {
const onBatchDeteteClick = () => {
modal.confirm({
title: '提示',
content: '删除规则,引用的规范将同步删除该规则,确定删除吗?',
content: '您确定要删除选中规则吗?',
onOk: () => {
dispatch({
type: 'datamodel.deletesRuleTemplate',
......@@ -186,7 +188,7 @@ const FC = (props) => {
const onDeteteClick = (record) => {
modal.confirm({
title: '提示',
content: '删除规则,引用的规范将同步删除该规则,确定删除吗?',
content: '您确定要删除该规则吗?',
onOk: () => {
dispatch({
type: 'datamodel.deleteRuleTemplate',
......@@ -265,4 +267,85 @@ const FC = (props) => {
)
}
export default FC
\ No newline at end of file
export default FC
const ReferenceCountCell = ({ record }) => {
const [visible, setVisible] = React.useState(false)
return (
<React.Fragment>
{
record.referenceCount === 0 ? <span>0</span> : <Tooltip
overlayClassName='tooltip-common'
title={<ReferenceCountTooltipTitle id={record.id} onClick={() => { setVisible(false) }} />}
visible={visible}
onVisibleChange={(val) => { setVisible(val) }}
>
<Typography.Text ellipsis={true}>
<a>{record.referenceCount}</a>
</Typography.Text>
</Tooltip>
}
</React.Fragment>
)
}
const ReferenceCountTooltipTitle = ({ id, onClick }) => {
const [loading, setLoading] = React.useState(false)
const [ruleCatalogList, setRuleCatalogList] = React.useState()
const [ruleParams, setRuleParams] = React.useState({
visible: false,
defaultSelectedId: undefined,
})
React.useEffect(() => {
if (id) {
getReferenceRuleCatalogList()
}
}, [id])
const getReferenceRuleCatalogList = () => {
setLoading(true)
dispatch({
type: 'datamodel.getRuleTemplateReferenceRuleCatalogList',
payload: {
ruleTemplateId: id
},
callback: data => {
setLoading(false)
setRuleCatalogList(data)
},
error: () => {
setLoading(false)
}
})
}
return (
<Spin spinning={loading}>
<div style={{ minWidth: 100, minHeight: 40 }} >
{ruleCatalogList?.map(item => <div key={item.id}>
<a onClick={() => {
onClick?.()
setRuleParams({
visible: true,
defaultSelectedId: item.id,
})
}}>
{item.name}
</a>
</div>
)}
<Rule
{...ruleParams}
onCancel={() => {
setRuleParams({
visible: false,
defaultSelectedId: undefined,
})
}}
/>
</div>
</Spin>
)
}
\ No newline at end of file
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