pull/494/head
nice555 2022-05-25 20:18:42 +08:00
parent a78b0f2a5a
commit 42ac74ff1c
5 changed files with 37 additions and 9 deletions

View File

@ -45,10 +45,13 @@ export default observer(function () {
extra="可以由字母、数字、-和下划线组成。">
<Input placeholder="请输入唯一标识符例如api_order"/>
</Form.Item>
<Form.Item name="module" label="模块名称">
<Input.TextArea placeholder="请输入模块名称,号分割" />
</Form.Item>
<Form.Item name="desc" label="备注信息">
<Input.TextArea placeholder="请输入备注信息"/>
</Form.Item>
</Form>
</Modal>
)
})
})

View File

@ -5,7 +5,7 @@
*/
import React, { useState, useEffect } from 'react';
import { observer } from 'mobx-react';
import { Modal, Form, Input, Select, DatePicker, Button, message } from 'antd';
import { Modal, Form, Input, Select, DatePicker, Button, message,Checkbox } from 'antd';
import { LoadingOutlined, SyncOutlined } from '@ant-design/icons';
import HostSelector from './HostSelector';
import hostStore from 'pages/host/store';
@ -75,6 +75,7 @@ export default observer(function () {
formData['type'] = store.record.type;
formData['extra'] = [git_type, extra1, extra2];
if (plan) formData.plan = plan.format('YYYY-MM-DD HH:mm:00');
formData['module'] = formData['module1'].join(',');
http.post('/api/deploy/request/ext1/', formData)
.then(res => {
message.success('操作成功');
@ -138,7 +139,11 @@ export default observer(function () {
}
}
const {app_host_ids, type, rb_id} = store.record;
const {app_host_ids, type, rb_id ,module} = store.record;
let module_list = [];
if (module) {
module_list = module.split(',');
}
const {branches, tags} = versions;
return (
<Modal
@ -225,6 +230,11 @@ export default observer(function () {
</Select>
</Form.Item>
)}
{module && (
<Form.Item required name="module1" label="模块选择" tooltip="会覆盖SPUG_RELEASE的值">
<Checkbox.Group options={module_list}></Checkbox.Group>
</Form.Item>
)}
<Form.Item required label="目标主机" tooltip="可以通过创建多个发布申请单,选择主机分批发布。">
{host_ids.length > 0 && (
<span style={{marginRight: 16}}>已选择 {host_ids.length} 可选{app_host_ids.length}</span>
@ -233,7 +243,7 @@ export default observer(function () {
</Form.Item>
<Form.Item name="desc" label="备注信息">
<Input placeholder="请输入备注信息"/>
</Form.Item>
</Form.Item>
{type !== '2' && (
<Form.Item label="定时发布" tooltip="在到达指定时间后自动发布会有最多1分钟的延迟。">
<DatePicker

View File

@ -6,7 +6,7 @@
import React, { useState, useEffect } from 'react';
import { observer } from 'mobx-react';
import { UploadOutlined } from '@ant-design/icons';
import { Modal, Form, Input, Upload, DatePicker, message, Button } from 'antd';
import { Modal, Form, Input, Upload, DatePicker, message, Button ,Checkbox} from 'antd';
import hostStore from 'pages/host/store';
import HostSelector from './HostSelector';
import { http, clsNames, X_TOKEN } from 'libs';
@ -42,6 +42,7 @@ export default observer(function () {
formData['deploy_id'] = store.record.deploy_id;
if (plan) formData.plan = plan.format('YYYY-MM-DD HH:mm:00');
if (fileList.length > 0) formData['extra'] = lds.pick(fileList[0], ['path', 'name']);
formData['module'] = formData['module1'].join(',');
http.post('/api/deploy/request/ext2/', formData)
.then(res => {
message.success('操作成功');
@ -70,7 +71,11 @@ export default observer(function () {
return false
}
const {app_host_ids, deploy_id, type, require_upload} = store.record;
const { app_host_ids, deploy_id, type, require_upload, module } = store.record;
let module_list = [];
if (module) {
module_list = module.split(',');
}
return (
<Modal
visible
@ -90,6 +95,11 @@ export default observer(function () {
tooltip="可以在自定义脚本中引用该变量,用于设置本次发布相关的动态变量,在脚本中通过 $SPUG_RELEASE 来使用该值。">
<Input placeholder="请输入环境变量 SPUG_RELEASE 的值"/>
</Form.Item>
{module && (
<Form.Item required name="module1" label="模块选择" tooltip="会覆盖SPUG_RELEASE的值">
<Checkbox.Group options={module_list}></Checkbox.Group>
</Form.Item>
)}
{require_upload && (
<Form.Item required label="上传数据" tooltip="通过数据传输动作来使用上传的文件。"
className={clsNames(styles.upload, fileList.length ? styles.uploadHide : null)}>
@ -128,4 +138,4 @@ export default observer(function () {
onOk={ids => setHostIds(ids)}/>}
</Modal>
)
})
})

View File

@ -167,6 +167,11 @@ function ComTable() {
return null
}
}
},
{
title: '模块',
dataIndex: 'module',
hide: true
}];
function DoAction(props) {

View File

@ -97,8 +97,8 @@ class Store {
};
confirmAdd = (deploy) => {
const {id, host_ids, require_upload} = deploy;
this.record = {deploy_id: id, app_host_ids: host_ids, require_upload};
const {id, host_ids, require_upload, module} = deploy;
this.record = {deploy_id: id, app_host_ids: host_ids, require_upload, module};
if (deploy.extend === '1') {
this.ext1Visible = true
} else {