Commit 1c3e0451 by zhaochengxiang

增加smartBI

parent 712d399c
PORT=3008
SKIP_PREFLIGHT_CHECK=true
\ No newline at end of file
......@@ -7,7 +7,7 @@
"@antv/chart-node-g6": "^0.0.4",
"@antv/g2": "^4.1.12",
"@antv/g6": "^4.2.1",
"@craco/craco": "^6.1.2",
"@craco/craco": "6.4.3",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
......@@ -20,7 +20,7 @@
"axios": "^0.19.0",
"copy-to-clipboard": "^3.3.1",
"core-js": "^3.4.2",
"craco-less": "^1.17.1",
"craco-less": "2.0.0",
"crypto-js": "^4.0.0",
"echarts": "^5.3.1",
"immutability-helper": "^3.1.1",
......
......@@ -188,3 +188,19 @@ export function* listWorkbooks(payload) {
export function* deleteWorkbooks(payload) {
return yield call(service.deleteWorkbooks, payload);
}
export function* saveSmartBIWorkbook(payload) {
return yield call(service.saveSmartBIWorkbook, payload);
}
export function* getSmartBIWorkbookUrl(payload) {
return yield call(service.getSmartBIWorkbookUrl, payload);
}
export function* listSmartBIWorkbooks(payload) {
return yield call(service.listSmartBIWorkbooks, payload);
}
export function* deleteSmartBIWorkbooks(payload) {
return yield call(service.deleteSmartBIWorkbooks, payload);
}
\ No newline at end of file
......@@ -195,3 +195,19 @@ export function listWorkbooks(payload) {
export function deleteWorkbooks(payload) {
return Post("/dataassetmanager/tableauApi/deleteWorkbooks", payload);
}
export function saveSmartBIWorkbook(payload) {
return Post("/dataassetmanager/smartBIApi/saveWorkbook", payload);
}
export function getSmartBIWorkbookUrl(payload) {
return Get("/dataassetmanager/smartBIApi/getWorkbookUrl", payload);
}
export function listSmartBIWorkbooks(payload) {
return GetJSON("/dataassetmanager/smartBIApi/listWorkbooks", payload);
}
export function deleteSmartBIWorkbooks(payload) {
return Post("/dataassetmanager/smartBIApi/deleteWorkbooks", payload);
}
\ No newline at end of file
import React, { useEffect, useState } from 'react';
import { Spin, Tooltip, Typography, Dropdown, Menu } from 'antd';
import { useMount, useUnmount } from 'ahooks';
import LocalStorage from 'local-storage';
import { dispatch } from '../../../../model';
......
......@@ -151,6 +151,7 @@ const AssetTable = (props) => {
const [ compact, setCompact ] = useState(false);
const [ worksheetModalVisible, setWorksheetModalVisible ] = useState(false);
const [ workbookDrawerVisible, setWorkbookDrawerVisible ] = useState(false);
const [ biType, setBiType ] = useState('');
const [ modal, contextHolder ] = Modal.useModal();
const anchorId = getQueryParam(AnchorId, props.location.search);
......@@ -444,18 +445,36 @@ const AssetTable = (props) => {
} else if ((checkedKeys||[]).length > 1) {
showMessage('warn', '只能选择一个资产');
} else {
setBiType('tableau');
setWorksheetModalVisible(true);
}
}
const onWorksheetModalCancel = () => {
setWorksheetModalVisible(false);
const onTableauWorkbookClick = () => {
setBiType('tableau');
setWorkbookDrawerVisible(true);
}
const onWorkbookClick = () => {
const onSmartBIAnalyseClick = () => {
if ((checkedKeys||[]).length === 0) {
showMessage('warn', '请先选择一个资产');
} else if ((checkedKeys||[]).length > 1) {
showMessage('warn', '只能选择一个资产');
} else {
setBiType('smartBI');
setWorksheetModalVisible(true);
}
}
const onSmartBIWorkbookClick = () => {
setBiType('smartBI');
setWorkbookDrawerVisible(true);
}
const onWorksheetModalCancel = () => {
setWorksheetModalVisible(false);
}
const onWorkbookDrawerCancel = () => {
setWorkbookDrawerVisible(false);
}
......@@ -677,8 +696,24 @@ const AssetTable = (props) => {
{
(reference===AssetManageReference) && <Menu.Item>
<div className='text-center' onClick={onWorkbookClick}>
工作簿
<div className='text-center' onClick={onTableauWorkbookClick}>
tableau工作簿
</div>
</Menu.Item>
}
{
(reference===AssetManageReference) && <Menu.Item disabled={(checkedKeys||[]).length===0}>
<div className='text-center' onClick={onSmartBIAnalyseClick}>
smartBI自助分析
</div>
</Menu.Item>
}
{
(reference===AssetManageReference) && <Menu.Item>
<div className='text-center' onClick={onSmartBIWorkbookClick}>
smartBI工作簿
</div>
</Menu.Item>
}
......@@ -747,7 +782,11 @@ const AssetTable = (props) => {
<Tooltip title={(checkedKeys||[]).length===0?'请先选择资产':''}>
<Button onClick={onTableauAnalyseClick} disabled={(checkedKeys||[]).length===0} >tableau自助分析</Button>
</Tooltip>
<Button onClick={onWorkbookClick}>工作簿</Button>
<Button onClick={onTableauWorkbookClick}>tableau工作簿</Button>
<Tooltip title={(checkedKeys||[]).length===0?'请先选择资产':''}>
<Button onClick={onSmartBIAnalyseClick} disabled={(checkedKeys||[]).length===0} >smartBI自助分析</Button>
</Tooltip>
<Button onClick={onSmartBIWorkbookClick}>smartBI工作簿</Button>
</React.Fragment>
}
{
......@@ -881,12 +920,14 @@ const AssetTable = (props) => {
onCancel={onAssetDetailDrawerCancel}
/>
<WorksheetModal
type={biType}
visible={ worksheetModalVisible }
id={ (checkedKeys||[]).length>0?checkedKeys[0]:'' }
onCancel={onWorksheetModalCancel}
/>
<WorkbookDrawer
type={biType}
visible={workbookDrawerVisible}
onCancel={onWorkbookDrawerCancel}
/>
......
......@@ -4,7 +4,7 @@ import { Drawer, Pagination, List } from 'antd';
import { dispatch } from '../../../../model';
const WorkbookDrawer = (props) => {
const { onCancel, visible } = props;
const { onCancel, visible, type = 'tableau' } = props;
const [ loading, setLoading ] = useState(false);
const [ workbooks, setWorkbooks ] = useState([]);
......@@ -24,8 +24,11 @@ const WorkbookDrawer = (props) => {
const getWorkbooks = (p = 1, s = 20) => {
setLoading(true);
const url = (type==='tableau') ? 'assetmanage.listWorkbooks' : 'assetmanage.listSmartBIWorkbooks';
dispatch({
type: 'assetmanage.listWorkbooks',
type: url,
payload: {
pageNum: p,
pageSize: s
......@@ -54,8 +57,10 @@ const WorkbookDrawer = (props) => {
// }
const onDevelopClick = (id) => {
const url = (type==='tableau') ? 'assetmanage.getWorkbookUrl' : 'assetmanage.getSmartBIWorkbookUrl';
dispatch({
type: 'assetmanage.getWorkbookUrl',
type: url,
payload: {
workbookId: id,
},
......@@ -69,7 +74,7 @@ const WorkbookDrawer = (props) => {
<Drawer
forceRender
visible={ visible }
title='工作簿'
title={`${type}工作簿`}
width={900}
placement="right"
closable={ true }
......
......@@ -6,7 +6,7 @@ import { showMessage } from '../../../../util';
const WorksheetModal = (props) => {
const { onCancel, visible, id } = props;
const { onCancel, visible, id, type = 'tableau' } = props;
const [ confirmLoading, setConfirmLoading ] = useState(false);
const [ form ] = Form.useForm();
......@@ -17,8 +17,10 @@ const WorksheetModal = (props) => {
setConfirmLoading(true);
const url = (type === 'tableau') ? 'assetmanage.saveWorkbook': 'assetmanage.saveSmartBIWorkbook';
dispatch({
type: 'assetmanage.saveWorkbook',
type: url,
payload: {
data: {
id,
......
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