From deed4ed6810c1484d4e1c6138e68704be2268563 Mon Sep 17 00:00:00 2001
From: vapao
Date: Thu, 9 Jan 2020 00:23:56 +0800
Subject: [PATCH] U web update
---
spug_web/src/pages/config/app/Rel.js | 94 ++++++++++++++++++++++
spug_web/src/pages/config/app/Table.js | 16 ++--
spug_web/src/pages/config/app/index.js | 4 +
spug_web/src/pages/config/app/store.js | 11 +++
spug_web/src/pages/config/service/store.js | 2 +-
5 files changed, 117 insertions(+), 10 deletions(-)
create mode 100644 spug_web/src/pages/config/app/Rel.js
diff --git a/spug_web/src/pages/config/app/Rel.js b/spug_web/src/pages/config/app/Rel.js
new file mode 100644
index 0000000..773faa0
--- /dev/null
+++ b/spug_web/src/pages/config/app/Rel.js
@@ -0,0 +1,94 @@
+import React from 'react';
+import {observer} from 'mobx-react';
+import {Modal, Form, Transfer, message, Tabs, Alert} from 'antd';
+import http from 'libs/http';
+import serviceStore from '../service/store';
+import store from './store';
+
+@observer
+class Rel extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ loading: false,
+ services: [],
+ apps: store.records.filter(x => x.id !== store.record.id).map(x => ({...x, key: x.id, _key: x.key}))
+ }
+ }
+
+ componentDidMount() {
+ if (serviceStore.records.length === 0) {
+ serviceStore.fetchRecords().then(this._updateRecords)
+ } else {
+ this._updateRecords()
+ }
+ }
+
+ _updateRecords = () => {
+ const services = serviceStore.records.map(x => {
+ return {...x, key: x.id, _key: x.key}
+ });
+ this.setState({services})
+ };
+
+ handleSubmit = () => {
+ this.setState({loading: true});
+ const {app, service} = store.confRel;
+ http.patch('/api/app/', {id: store.record.id, rel_apps: app, rel_services: service})
+ .then(res => {
+ message.success('操作成功');
+ store.relVisible = false;
+ store.fetchRecords()
+ }, () => this.setState({loading: false}))
+ };
+
+ render() {
+ return (
+ store.relVisible = false}
+ confirmLoading={this.state.loading}
+ onOk={this.handleSubmit}>
+ 设置依赖的应用仅会获取到其公共配置,私有配置并不会被其他应用所获取。
,
+ 服务不存在公共和私有配置的概念,所以会获取到依赖服务的所有配置信息。
+ ]}/>
+
+
+
+ store.confRel.app = keys}
+ render={item => `${item.name}(${item._key})`}/>
+
+
+
+
+ store.confRel.service = keys}
+ render={item => `${item.name}(${item._key})`}/>
+
+
+
+
+ )
+ }
+}
+
+export default Rel
\ No newline at end of file
diff --git a/spug_web/src/pages/config/app/Table.js b/spug_web/src/pages/config/app/Table.js
index a260c2b..5e076f2 100644
--- a/spug_web/src/pages/config/app/Table.js
+++ b/spug_web/src/pages/config/app/Table.js
@@ -1,11 +1,10 @@
import React from 'react';
-import { observer } from 'mobx-react';
-import { Link } from 'react-router-dom';
-import { Table, Divider, Modal, message } from 'antd';
-import ComForm from './Form';
+import {observer} from 'mobx-react';
+import {Link} from 'react-router-dom';
+import {Table, Divider, Modal, message} from 'antd';
import http from 'libs/http';
import store from './store';
-import { LinkButton } from "components";
+import {LinkButton} from "components";
@observer
class ComTable extends React.Component {
@@ -36,6 +35,8 @@ class ComTable extends React.Component {
this.handleDelete(info)}>删除
+ store.showRel(info)}>依赖
+
配置
)
@@ -61,10 +62,7 @@ class ComTable extends React.Component {
data = data.filter(item => item['name'].toLowerCase().includes(store.f_name.toLowerCase()))
}
return (
-
-
- {store.formVisible && }
-
+
)
}
}
diff --git a/spug_web/src/pages/config/app/index.js b/spug_web/src/pages/config/app/index.js
index f7eeef5..f587e37 100644
--- a/spug_web/src/pages/config/app/index.js
+++ b/spug_web/src/pages/config/app/index.js
@@ -3,6 +3,8 @@ import { observer } from 'mobx-react';
import { Card, Input, Button } from 'antd';
import { SearchForm } from 'components';
import ComTable from './Table';
+import ComForm from './Form';
+import Rel from './Rel';
import store from './store';
export default observer(function () {
@@ -20,6 +22,8 @@ export default observer(function () {
+ {store.formVisible && }
+ {store.relVisible && }
)
})
\ No newline at end of file
diff --git a/spug_web/src/pages/config/app/store.js b/spug_web/src/pages/config/app/store.js
index 196dd4d..16c9d4c 100644
--- a/spug_web/src/pages/config/app/store.js
+++ b/spug_web/src/pages/config/app/store.js
@@ -4,8 +4,10 @@ import http from 'libs/http';
class Store {
@observable records = [];
@observable record = {};
+ @observable confRel = {};
@observable isFetching = false;
@observable formVisible = false;
+ @observable relVisible = false;
@observable f_name;
@@ -19,6 +21,15 @@ class Store {
showForm = (info = {}) => {
this.formVisible = true;
this.record = info
+ };
+
+ showRel = (info) => {
+ this.relVisible = true;
+ this.record = info;
+ this.confRel = {
+ app: info['rel_apps'],
+ service: info['rel_services']
+ }
}
}
diff --git a/spug_web/src/pages/config/service/store.js b/spug_web/src/pages/config/service/store.js
index 94bbf64..29eadd9 100644
--- a/spug_web/src/pages/config/service/store.js
+++ b/spug_web/src/pages/config/service/store.js
@@ -11,7 +11,7 @@ class Store {
fetchRecords = () => {
this.isFetching = true;
- http.get('/api/config/service/')
+ return http.get('/api/config/service/')
.then(res => this.records = res)
.finally(() => this.isFetching = false)
};