Commit 048f610d by zhaochengxiang

我的订阅 已获授权

parent bcdaeaac
......@@ -17,9 +17,11 @@ export default class App extends React.Component {
<Switch>
<Route path={`${ContextPath}/signin`} component={Signin} exact />
<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}/manage`} component={Manage} />
<Route path={`${ContextPath}/user`} component={Manage} />
<Route component={RedirectHome} />
</Switch>
</Router>
......
......@@ -45,10 +45,18 @@ export function* subscribeTableModel(payload) {
return yield call(service.subscribeTableModel, payload);
}
export function* unSubscribeTableModel(payload) {
return yield call(service.unSubscribeTableModel, payload);
}
export function* setTableModelScore(payload) {
return yield call(service.setTableModelScore, payload);
}
export function* 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) {
export function* 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,10 +41,18 @@ export async function subscribeTableModel(payload) {
return PostJSON("/datacatalog/front/subscribeTableModel",payload);
}
export async function unSubscribeTableModel(payload) {
return PostJSON("/datacatalog/front/unSubscribeTableModel",payload);
}
export async function setTableModelScore(payload) {
return Post("/datacatalog/front/setTableModelScore",payload);
}
export async function 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) {
return PostJSON("/auth/sessionInfo", payload)
......@@ -9,4 +9,12 @@ export function signin(payload) {
}
export function signout() {
return Post("/auth/signout")
}
\ No newline at end of file
}
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';
import { HomeLayout } from '../../layout';
import { HomeSearch, HomeMenu, HomeGrid } from './HomeHelper';
import { dispatchLatest } from '../../model';
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() {
const { session } = this.props;
const { flowCount } = this.state;
return (
<React.Fragment>
......@@ -18,7 +40,7 @@ class Home extends Component {
<div className="home-container overflow-hidden">
<HomeSearch {...this.props} />
<HomeMenu />
<HomeGrid />
<HomeGrid tooltipData={flowCount} />
</div>
: <GetSession {...this.props} />}
/>
......
......@@ -125,7 +125,7 @@ class AssetListCOM extends Component {
}
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 IconText = ({ type, text }) => (
......@@ -213,6 +213,32 @@ class AssetListCOM extends Component {
订阅
</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 [];
......
......@@ -6,6 +6,8 @@ import { GetSession } from "../../util";
import { ManageLayout } from "../../layout";
import Assets from './Assets';
import Search from './Search';
import Subscrible from '../User/Subscrible';
import Authorized from '../User/Authorized';
class Manage extends Component {
constructor() {
......@@ -31,6 +33,9 @@ class Manage extends Component {
component={Search}
/>
<Route path={`${match.path}/assets`} component={Assets} />
<Route path={`${match.path}/subscrible`} component={Subscrible} />
<Route path={`${match.path}/authorized`} component={Authorized} />
</Switch>
) : (
<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