diff --git a/spug_web/src/pages/deploy/request/Approve.js b/spug_web/src/pages/deploy/request/Approve.js
new file mode 100644
index 0000000..7a9aaeb
--- /dev/null
+++ b/spug_web/src/pages/deploy/request/Approve.js
@@ -0,0 +1,55 @@
+import React from 'react';
+import { observer } from 'mobx-react';
+import { Modal, Form, Input, Switch, message } from 'antd';
+import http from 'libs/http';
+import store from './store';
+
+@observer
+class Approve extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ loading: false,
+ }
+ }
+
+ handleSubmit = () => {
+ this.setState({loading: true});
+ const formData = this.props.form.getFieldsValue();
+ http.patch(`/api/deploy/request/${store.record.id}/`, formData)
+ .then(res => {
+ message.success('操作成功');
+ store.approveVisible = false;
+ store.fetchRecords()
+ }, () => this.setState({loading: false}))
+ };
+
+ render() {
+ const {getFieldDecorator, getFieldValue} = this.props.form;
+ return (
+ store.approveVisible = false}
+ confirmLoading={this.state.loading}
+ onOk={this.handleSubmit}>
+
+ {getFieldDecorator('is_pass', {initialValue: true, valuePropName: "checked"})(
+
+ )}
+
+
+ {getFieldDecorator('reason')(
+
+ )}
+
+
+
+ )
+ }
+}
+
+export default Form.create()(Approve)
\ No newline at end of file
diff --git a/spug_web/src/pages/deploy/request/Ext1Form.js b/spug_web/src/pages/deploy/request/Ext1Form.js
index 145c600..887a5b7 100644
--- a/spug_web/src/pages/deploy/request/Ext1Form.js
+++ b/spug_web/src/pages/deploy/request/Ext1Form.js
@@ -18,7 +18,7 @@ class Ext1Form extends React.Component {
extra1: lds.get(store.record, 'extra.1'),
extra2: lds.get(store.record, 'extra.2'),
versions: {},
- host_ids: store.record['host_ids'].concat()
+ host_ids: store.record['app_host_ids'].concat()
}
}
diff --git a/spug_web/src/pages/deploy/request/Ext2Form.js b/spug_web/src/pages/deploy/request/Ext2Form.js
index a7b159d..4c3698d 100644
--- a/spug_web/src/pages/deploy/request/Ext2Form.js
+++ b/spug_web/src/pages/deploy/request/Ext2Form.js
@@ -13,7 +13,7 @@ class Ext2Form extends React.Component {
this.state = {
loading: false,
type: null,
- host_ids: store.record['host_ids'].concat()
+ host_ids: store.record['app_host_ids'].concat()
}
}
diff --git a/spug_web/src/pages/deploy/request/Table.js b/spug_web/src/pages/deploy/request/Table.js
index f810aac..6ad63bf 100644
--- a/spug_web/src/pages/deploy/request/Table.js
+++ b/spug_web/src/pages/deploy/request/Table.js
@@ -1,7 +1,7 @@
import React from 'react';
import { Link } from 'react-router-dom';
import { observer } from 'mobx-react';
-import { Table, Divider, Modal, Icon, message } from 'antd';
+import { Table, Divider, Modal, Icon, Popover, message } from 'antd';
import http from 'libs/http';
import store from './store';
import { LinkButton } from "components";
@@ -43,7 +43,19 @@ class ComTable extends React.Component {
}
}, {
title: '状态',
- dataIndex: 'status_alias'
+ render: info => {
+ if (info.status === '-1' && info.reason) {
+ return
+ {info['status_alias']}
+
+ } else if (info.status === '2' && info.reason) {
+ return
+ {info['status_alias']}
+
+ } else {
+ return info['status_alias']
+ }
+ }
}, {
title: '申请人',
dataIndex: 'created_by_user',
@@ -52,15 +64,35 @@ class ComTable extends React.Component {
dataIndex: 'created_at'
}, {
title: '操作',
- render: info => (
-
- 发布
-
- store.showForm(info)}>编辑
-
- this.handleDelete(info)}>删除
-
- )
+ render: info => {
+ switch (info.status) {
+ case '-3':
+ case '3':
+ return store.showForm(info)}>回滚;
+ case '-1':
+ return
+ store.showForm(info)}>编辑
+
+ this.handleDelete(info)}>删除
+ ;
+ case '1':
+ return
+ store.showApprove(info)}>审核
+
+ store.showForm(info)}>编辑
+
+ this.handleDelete(info)}>删除
+
+ case '2':
+ return
+ 发布
+
+ this.handleDelete(info)}>删除
+ ;
+ default:
+ return null
+ }
+ }
}];
handleDelete = (text) => {
diff --git a/spug_web/src/pages/deploy/request/index.js b/spug_web/src/pages/deploy/request/index.js
index f6fc7a1..cd11aac 100644
--- a/spug_web/src/pages/deploy/request/index.js
+++ b/spug_web/src/pages/deploy/request/index.js
@@ -5,6 +5,7 @@ import { SearchForm } from 'components';
import SelectApp from './SelectApp';
import Ext1Form from './Ext1Form';
import Ext2Form from './Ext2Form';
+import Approve from './Approve';
import ComTable from './Table';
import store from './store';
@@ -26,9 +27,10 @@ export default observer(function () {
- {store.addVisible && }
- {store.ext1Visible && }
- {store.ext2Visible && }
+ {store.addVisible && }
+ {store.ext1Visible && }
+ {store.ext2Visible && }
+ {store.approveVisible && }
)
})
\ No newline at end of file
diff --git a/spug_web/src/pages/deploy/request/store.js b/spug_web/src/pages/deploy/request/store.js
index 1fb9172..cbe513b 100644
--- a/spug_web/src/pages/deploy/request/store.js
+++ b/spug_web/src/pages/deploy/request/store.js
@@ -9,6 +9,7 @@ class Store {
@observable addVisible = false;
@observable ext1Visible = false;
@observable ext2Visible = false;
+ @observable approveVisible = false;
@observable f_name;
@observable f_app_name;
@@ -27,6 +28,11 @@ class Store {
} else {
this.ext2Visible = true
}
+ };
+
+ showApprove = (info) => {
+ this.record = info;
+ this.approveVisible = true;
}
}