Commit 1c3e0451 by zhaochengxiang

增加smartBI

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