Commit df862a03 by zhaochengxiang

规则引用次数详情

parent 86565f6c
...@@ -358,6 +358,10 @@ export function* getRuleTemplateList() { ...@@ -358,6 +358,10 @@ export function* getRuleTemplateList() {
return yield call(datamodelerService.getRuleTemplateList); return yield call(datamodelerService.getRuleTemplateList);
} }
export function* getRuleTemplateReferenceRuleCatalogList(payload) {
return yield call(datamodelerService.getRuleTemplateReferenceRuleCatalogList, payload);
}
export function* addRuleTemplate(payload) { export function* addRuleTemplate(payload) {
return yield call(datamodelerService.addRuleTemplate, payload); return yield call(datamodelerService.addRuleTemplate, payload);
} }
......
...@@ -309,6 +309,10 @@ export function getRuleTemplateList() { ...@@ -309,6 +309,10 @@ export function getRuleTemplateList() {
return GetJSON("/datamodeler/easyDataModelerRuleTemplate/list"); return GetJSON("/datamodeler/easyDataModelerRuleTemplate/list");
} }
export function getRuleTemplateReferenceRuleCatalogList(payload) {
return GetJSON("/datamodeler/easyDataModelerRuleTemplate/referenceRuleCatalogList", payload);
}
/* rule template */ /* rule template */
export function addRuleTemplate(payload) { export function addRuleTemplate(payload) {
return PostJSON("/datamodeler/easyDataModelerRuleTemplate/add", payload); return PostJSON("/datamodeler/easyDataModelerRuleTemplate/add", payload);
......
...@@ -15,7 +15,7 @@ const FC = (props) => { ...@@ -15,7 +15,7 @@ const FC = (props) => {
visible={visible} visible={visible}
footer={null} footer={null}
width='80%' width='80%'
bodyStyle={{ padding: '15px', overflowX: 'auto', maxHeight: '80vh' }} bodyStyle={{ padding: '15px', overflowX: 'auto', height: '80vh' }}
title='规范详情' title='规范详情'
centered destroyOnClose centered destroyOnClose
onCancel={() => { close() }} onCancel={() => { close() }}
......
import React from 'react' 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 { dispatch } from '../../../../model'
import PermissionButton from '../../../../util/Component/PermissionButton' import PermissionButton from '../../../../util/Component/PermissionButton'
import Table from '../../../../util/Component/Table' import Table from '../../../../util/Component/Table'
import { showMessage } from '../../../../util' import { showMessage } from '../../../../util'
import Update from './update-rule-template' import Update from './update-rule-template'
import Rule from './rule-readonly'
const FC = (props) => { const FC = (props) => {
const [keyword, setKeyword] = React.useState() const [keyword, setKeyword] = React.useState()
...@@ -87,6 +88,7 @@ const FC = (props) => { ...@@ -87,6 +88,7 @@ const FC = (props) => {
{ {
title: '引用次数', title: '引用次数',
dataIndex: 'referenceCount', dataIndex: 'referenceCount',
render: (_, record) => <ReferenceCountCell record={record} />
}, },
{ {
title: '操作', title: '操作',
...@@ -166,7 +168,7 @@ const FC = (props) => { ...@@ -166,7 +168,7 @@ const FC = (props) => {
const onBatchDeteteClick = () => { const onBatchDeteteClick = () => {
modal.confirm({ modal.confirm({
title: '提示', title: '提示',
content: '删除规则,引用的规范将同步删除该规则,确定删除吗?', content: '您确定要删除选中规则吗?',
onOk: () => { onOk: () => {
dispatch({ dispatch({
type: 'datamodel.deletesRuleTemplate', type: 'datamodel.deletesRuleTemplate',
...@@ -186,7 +188,7 @@ const FC = (props) => { ...@@ -186,7 +188,7 @@ const FC = (props) => {
const onDeteteClick = (record) => { const onDeteteClick = (record) => {
modal.confirm({ modal.confirm({
title: '提示', title: '提示',
content: '删除规则,引用的规范将同步删除该规则,确定删除吗?', content: '您确定要删除该规则吗?',
onOk: () => { onOk: () => {
dispatch({ dispatch({
type: 'datamodel.deleteRuleTemplate', type: 'datamodel.deleteRuleTemplate',
...@@ -265,4 +267,85 @@ const FC = (props) => { ...@@ -265,4 +267,85 @@ const FC = (props) => {
) )
} }
export default FC export default FC
\ No newline at end of file
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