Commit 048f610d by zhaochengxiang

我的订阅 已获授权

parent bcdaeaac
...@@ -17,9 +17,11 @@ export default class App extends React.Component { ...@@ -17,9 +17,11 @@ export default class App extends React.Component {
<Switch> <Switch>
<Route path={`${ContextPath}/signin`} component={Signin} exact /> <Route path={`${ContextPath}/signin`} component={Signin} exact />
<Route path={`${ContextPath}/manage`} exact component={() => <Redirect to={`${ContextPath}/manage/assets`} />} /> <Route path={`${ContextPath}/manage`} exact component={() => <Redirect to={`${ContextPath}/manage/assets`} />} />
<Route path={`${ContextPath}/user`} exact component={() => <Redirect to={`${ContextPath}/user/subscrible`} />} />
<Route path={`${ContextPath}/home`} component={Home} /> <Route path={`${ContextPath}/home`} component={Home} />
<Route path={`${ContextPath}/manage`} component={Manage} /> <Route path={`${ContextPath}/manage`} component={Manage} />
<Route path={`${ContextPath}/user`} component={Manage} />
<Route component={RedirectHome} /> <Route component={RedirectHome} />
</Switch> </Switch>
</Router> </Router>
......
...@@ -45,6 +45,10 @@ export function* subscribeTableModel(payload) { ...@@ -45,6 +45,10 @@ export function* subscribeTableModel(payload) {
return yield call(service.subscribeTableModel, payload); return yield call(service.subscribeTableModel, payload);
} }
export function* unSubscribeTableModel(payload) {
return yield call(service.unSubscribeTableModel, payload);
}
export function* setTableModelScore(payload) { export function* setTableModelScore(payload) {
return yield call(service.setTableModelScore, payload); return yield call(service.setTableModelScore, payload);
} }
...@@ -52,3 +56,7 @@ export function* setTableModelScore(payload) { ...@@ -52,3 +56,7 @@ export function* setTableModelScore(payload) {
export function* apply(payload) { export function* apply(payload) {
return yield call(service.apply, payload); return yield call(service.apply, payload);
} }
export function* getDataFlowCount(payload) {
return yield call(service.getDataFlowCount, payload);
}
\ No newline at end of file
...@@ -12,3 +12,11 @@ export function* signin(payload) { ...@@ -12,3 +12,11 @@ export function* signin(payload) {
export function* signout() { export function* signout() {
return yield call(service.signout); return yield call(service.signout);
} }
export function* getUserSubscribeTableModels(payload) {
return yield call(service.getUserSubscribeTableModels, payload);
}
export function* listPrivilegeTableModels(payload) {
return yield call(service.listPrivilegeTableModels, payload);
}
...@@ -41,6 +41,10 @@ export async function subscribeTableModel(payload) { ...@@ -41,6 +41,10 @@ export async function subscribeTableModel(payload) {
return PostJSON("/datacatalog/front/subscribeTableModel",payload); return PostJSON("/datacatalog/front/subscribeTableModel",payload);
} }
export async function unSubscribeTableModel(payload) {
return PostJSON("/datacatalog/front/unSubscribeTableModel",payload);
}
export async function setTableModelScore(payload) { export async function setTableModelScore(payload) {
return Post("/datacatalog/front/setTableModelScore",payload); return Post("/datacatalog/front/setTableModelScore",payload);
} }
...@@ -48,3 +52,7 @@ export async function setTableModelScore(payload) { ...@@ -48,3 +52,7 @@ export async function setTableModelScore(payload) {
export async function apply(payload){ export async function apply(payload){
return Post('/datacatalog/front/apply', payload); return Post('/datacatalog/front/apply', payload);
} }
export function getDataFlowCount(payload) {
return GetJSON('/metadatarepo/rest/jobInfo/getDataFlowCount')
}
\ No newline at end of file
import { PostJSON, Post } from "../util/axios" import { PostJSON, Post, GetJSON } from "../util/axios"
export function sessionInfo(payload) { export function sessionInfo(payload) {
return PostJSON("/auth/sessionInfo", payload) return PostJSON("/auth/sessionInfo", payload)
...@@ -10,3 +10,11 @@ export function signin(payload) { ...@@ -10,3 +10,11 @@ export function signin(payload) {
export function signout() { export function signout() {
return Post("/auth/signout") return Post("/auth/signout")
} }
export function getUserSubscribeTableModels(payload) {
return GetJSON("/datacatalog/front/getUserSubscribeTableModels")
}
export function listPrivilegeTableModels(payload) {
return GetJSON("/datacatalog/front/listPrivilegeTableModels")
}
...@@ -5,11 +5,33 @@ import { GetSession } from '../../util'; ...@@ -5,11 +5,33 @@ import { GetSession } from '../../util';
import { HomeLayout } from '../../layout'; import { HomeLayout } from '../../layout';
import { HomeSearch, HomeMenu, HomeGrid } from './HomeHelper'; import { HomeSearch, HomeMenu, HomeGrid } from './HomeHelper';
import { dispatchLatest } from '../../model';
class Home extends Component { class Home extends Component {
constructor(props) {
super(props);
this.state = {
flowCount : {}
}
}
componentDidMount() {
dispatchLatest({
type: 'assets.getDataFlowCount',
payload: {},
callback: data => {
(this.unmount===undefined) && this.setState({
flowCount: data,
})
}
})
}
render() { render() {
const { session } = this.props; const { session } = this.props;
const { flowCount } = this.state;
return ( return (
<React.Fragment> <React.Fragment>
...@@ -18,7 +40,7 @@ class Home extends Component { ...@@ -18,7 +40,7 @@ class Home extends Component {
<div className="home-container overflow-hidden"> <div className="home-container overflow-hidden">
<HomeSearch {...this.props} /> <HomeSearch {...this.props} />
<HomeMenu /> <HomeMenu />
<HomeGrid /> <HomeGrid tooltipData={flowCount} />
</div> </div>
: <GetSession {...this.props} />} : <GetSession {...this.props} />}
/> />
......
...@@ -125,7 +125,7 @@ class AssetListCOM extends Component { ...@@ -125,7 +125,7 @@ class AssetListCOM extends Component {
} }
render() { render() {
const { tableModels, loading, subscribeTableModel, updateItems } = this.props; const { tableModels, loading, subscribeTableModel, updateItems, subscrible = false } = this.props;
const { tableModel, showModal, tabKey, metedata, dataDesc, dataPreview, activeBtn } = this.state; const { tableModel, showModal, tabKey, metedata, dataDesc, dataPreview, activeBtn } = this.state;
const IconText = ({ type, text }) => ( const IconText = ({ type, text }) => (
...@@ -213,6 +213,32 @@ class AssetListCOM extends Component { ...@@ -213,6 +213,32 @@ class AssetListCOM extends Component {
订阅 订阅
</Button> </Button>
), ),
item.subscribed && subscrible && (
<Button
size="small"
type="link"
icon="book"
onClick={e => {
e.preventDefault();
if (dispatch) {
dispatch({
type: 'assets.unSubscribeTableModel',
payload: { params: { tableModelId: item.tableModelId } },
callback: (response) => {
if (response !== null) {
message.success('取消订阅成功' );
if (updateItems) {
updateItems();
}
}
},
});
}
}}
>
取消订阅
</Button>
),
]; ];
} }
return []; return [];
......
...@@ -6,6 +6,8 @@ import { GetSession } from "../../util"; ...@@ -6,6 +6,8 @@ import { GetSession } from "../../util";
import { ManageLayout } from "../../layout"; import { ManageLayout } from "../../layout";
import Assets from './Assets'; import Assets from './Assets';
import Search from './Search'; import Search from './Search';
import Subscrible from '../User/Subscrible';
import Authorized from '../User/Authorized';
class Manage extends Component { class Manage extends Component {
constructor() { constructor() {
...@@ -31,6 +33,9 @@ class Manage extends Component { ...@@ -31,6 +33,9 @@ class Manage extends Component {
component={Search} component={Search}
/> />
<Route path={`${match.path}/assets`} component={Assets} /> <Route path={`${match.path}/assets`} component={Assets} />
<Route path={`${match.path}/subscrible`} component={Subscrible} />
<Route path={`${match.path}/authorized`} component={Authorized} />
</Switch> </Switch>
) : ( ) : (
<GetSession {...this.props} /> <GetSession {...this.props} />
......
import React, { Component } from "react";
import { Card, Pagination } from 'antd';
import { dispatch } from '../../../model';
import { paginate } from '../../../util';
import AssetListCOM from '../../Manage/Assets/components/AssetList';
export default class Authorized extends Component {
constructor(props) {
super(props);
this.state = { items: [], pageNum: 1, pageSize: 10, loading: false };
}
componentDidMount() {
this.updateItems();
}
updateItems() {
dispatch({
type: 'user.listPrivilegeTableModels',
payload: { },
callback: data => {
(this.unmount===undefined) && this.setState({
loading: false,
items: data || [],
})
}
})
}
render() {
const { items,pageNum, pageSize, loading } = this.state;
const _items = paginate(items, pageNum, pageSize);
return (
<Card bordered={false}>
<AssetListCOM
loading={loading}
tableModels={_items}
updateItems={this.updateItems.bind(this)}
subscrible
/>
<Pagination
className="text-center"
showSizeChanger
showQuickJumper
onChange={(_pageNum, _pageSize) => {
this.setState({ pageNum: _pageNum, pageSize: _pageSize || 10 });
}}
onShowSizeChange={(_pageNum, _pageSize) => {
this.setState({ pageNum: _pageNum || 1, pageSize: _pageSize });
}}
current={pageNum}
pageSize={pageSize}
defaultCurrent={1}
total={items.length}
/>
</Card>
);
}
}
import React, { Component } from "react";
import { Card, Pagination } from 'antd';
import { dispatch } from '../../../model';
import { paginate } from '../../../util';
import AssetListCOM from '../../Manage/Assets/components/AssetList';
export default class Subscrible extends Component {
constructor(props) {
super(props);
this.state = { items: [], pageNum: 1, pageSize: 10, loading: false };
}
componentDidMount() {
this.updateItems();
}
updateItems() {
dispatch({
type: 'user.getUserSubscribeTableModels',
payload: { },
callback: data => {
(this.unmount===undefined) && this.setState({
loading: false,
items: data || [],
})
}
})
}
render() {
const { items,pageNum, pageSize, loading } = this.state;
const _items = paginate(items, pageNum, pageSize);
return (
<Card bordered={false}>
<AssetListCOM
loading={loading}
tableModels={_items}
updateItems={this.updateItems.bind(this)}
subscrible
/>
<Pagination
className="text-center"
showSizeChanger
showQuickJumper
onChange={(_pageNum, _pageSize) => {
this.setState({ pageNum: _pageNum, pageSize: _pageSize || 10 });
}}
onShowSizeChange={(_pageNum, _pageSize) => {
this.setState({ pageNum: _pageNum || 1, pageSize: _pageSize });
}}
current={pageNum}
pageSize={pageSize}
defaultCurrent={1}
total={items.length}
/>
</Card>
);
}
}
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