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

View File

@ -5,7 +5,7 @@
*/ */
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { observer } from 'mobx-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 { LoadingOutlined, SyncOutlined } from '@ant-design/icons';
import HostSelector from './HostSelector'; import HostSelector from './HostSelector';
import hostStore from 'pages/host/store'; import hostStore from 'pages/host/store';
@ -75,6 +75,7 @@ export default observer(function () {
formData['type'] = store.record.type; formData['type'] = store.record.type;
formData['extra'] = [git_type, extra1, extra2]; formData['extra'] = [git_type, extra1, extra2];
if (plan) formData.plan = plan.format('YYYY-MM-DD HH:mm:00'); if (plan) formData.plan = plan.format('YYYY-MM-DD HH:mm:00');
formData['module'] = formData['module1'].join(',');
http.post('/api/deploy/request/ext1/', formData) http.post('/api/deploy/request/ext1/', formData)
.then(res => { .then(res => {
message.success('操作成功'); 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; const {branches, tags} = versions;
return ( return (
<Modal <Modal
@ -225,6 +230,11 @@ export default observer(function () {
</Select> </Select>
</Form.Item> </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="可以通过创建多个发布申请单,选择主机分批发布。"> <Form.Item required label="目标主机" tooltip="可以通过创建多个发布申请单,选择主机分批发布。">
{host_ids.length > 0 && ( {host_ids.length > 0 && (
<span style={{marginRight: 16}}>已选择 {host_ids.length} 可选{app_host_ids.length}</span> <span style={{marginRight: 16}}>已选择 {host_ids.length} 可选{app_host_ids.length}</span>

View File

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

View File

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

View File

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