|
@@ -69,10 +69,18 @@
|
|
|
style="margin-top: 5px; margin-left: 5px"
|
|
style="margin-top: 5px; margin-left: 5px"
|
|
|
size="mini"
|
|
size="mini"
|
|
|
type="success"
|
|
type="success"
|
|
|
- @click="handleDeployConfig(scope.$index, scope.row)"
|
|
|
|
|
|
|
+ @click="handleOpenDeploy(scope.row)"
|
|
|
>查看</el-button>
|
|
>查看</el-button>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
+ <AppDeployConfig
|
|
|
|
|
+ :show="showDeployDialog"
|
|
|
|
|
+ :app-id="currentAppId"
|
|
|
|
|
+ :pack-type="currentPackType"
|
|
|
|
|
+ :env="queryInfo.env"
|
|
|
|
|
+ @close="showDeployDialog = false"
|
|
|
|
|
+ @refresh="getData"
|
|
|
|
|
+ />
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
prop="totalDomains"
|
|
prop="totalDomains"
|
|
|
label="关联域名"
|
|
label="关联域名"
|
|
@@ -270,36 +278,36 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div class="app-config-container">
|
|
<div class="app-config-container">
|
|
|
<el-steps :active="active" finish-status="success" simple style="margin-bottom: 20px">
|
|
<el-steps :active="active" finish-status="success" simple style="margin-bottom: 20px">
|
|
|
- <el-step title="基础信息"></el-step>
|
|
|
|
|
- <el-step title="构建环境"></el-step>
|
|
|
|
|
- <el-step title="详细配置"></el-step>
|
|
|
|
|
|
|
+ <el-step title="基础信息" />
|
|
|
|
|
+ <el-step title="构建环境" />
|
|
|
|
|
+ <el-step title="详细配置" />
|
|
|
</el-steps>
|
|
</el-steps>
|
|
|
|
|
|
|
|
- <el-form :model="appForm" :rules="appFormRules" ref="appFormRef" label-width="120px">
|
|
|
|
|
|
|
+ <el-form ref="appFormRef" :model="appForm" :rules="appFormRules" label-width="120px">
|
|
|
<div v-show="active === 0">
|
|
<div v-show="active === 0">
|
|
|
<el-form-item label="应用 ID" prop="appId">
|
|
<el-form-item label="应用 ID" prop="appId">
|
|
|
- <el-input v-model="appForm.appId" placeholder="e.g. user-service"></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="appForm.appId" placeholder="e.g. user-service" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="应用仓库" prop="appRepo">
|
|
<el-form-item label="应用仓库" prop="appRepo">
|
|
|
- <el-input v-model="appForm.appRepo" placeholder="e.g. https://git.reghao.cn/reghao/devops"></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="appForm.appRepo" placeholder="e.g. https://git.reghao.cn/reghao/devops" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="仓库分支" prop="repoBranch">
|
|
<el-form-item label="仓库分支" prop="repoBranch">
|
|
|
- <el-input v-model="appForm.repoBranch"></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="appForm.repoBranch" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="仓库认证" prop="repoAuthConfigId">
|
|
<el-form-item label="仓库认证" prop="repoAuthConfigId">
|
|
|
<div style="display: flex; align-items: center;">
|
|
<div style="display: flex; align-items: center;">
|
|
|
<el-select
|
|
<el-select
|
|
|
- v-model="appForm.repoAuthConfigId"
|
|
|
|
|
- placeholder="选择仓库认证"
|
|
|
|
|
- style="flex: 1; margin-right: 10px;"
|
|
|
|
|
- clearable
|
|
|
|
|
|
|
+ v-model="appForm.repoAuthConfigId"
|
|
|
|
|
+ placeholder="选择仓库认证"
|
|
|
|
|
+ style="flex: 1; margin-right: 10px;"
|
|
|
|
|
+ clearable
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="item in repoAuthList"
|
|
|
|
|
- :key="item.value"
|
|
|
|
|
- :label="item.label"
|
|
|
|
|
- :value="item.value"
|
|
|
|
|
- ></el-option>
|
|
|
|
|
|
|
+ v-for="item in repoAuthList"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
<div slot="empty" style="text-align: center; padding: 10px 0;">
|
|
<div slot="empty" style="text-align: center; padding: 10px 0;">
|
|
|
<p style="margin-bottom: 10px; color: #909399; font-size: 12px;">暂无认证配置</p>
|
|
<p style="margin-bottom: 10px; color: #909399; font-size: 12px;">暂无认证配置</p>
|
|
@@ -309,13 +317,13 @@
|
|
|
</div>
|
|
</div>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
<el-button
|
|
<el-button
|
|
|
- type="primary"
|
|
|
|
|
- icon="el-icon-plus"
|
|
|
|
|
- circle
|
|
|
|
|
- size="mini"
|
|
|
|
|
- @click="showAddRepoAuthDialog = true"
|
|
|
|
|
- title="添加新认证"
|
|
|
|
|
- ></el-button>
|
|
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ icon="el-icon-plus"
|
|
|
|
|
+ circle
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ title="添加新认证"
|
|
|
|
|
+ @click="showAddRepoAuthDialog = true"
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</div>
|
|
</div>
|
|
@@ -323,12 +331,12 @@
|
|
|
<div v-show="active === 1">
|
|
<div v-show="active === 1">
|
|
|
<el-form-item label="应用类型" prop="appType">
|
|
<el-form-item label="应用类型" prop="appType">
|
|
|
<el-select v-model="appForm.appType" placeholder="选择应用类型">
|
|
<el-select v-model="appForm.appType" placeholder="选择应用类型">
|
|
|
- <el-option v-for="item in appTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
|
+ <el-option v-for="item in appTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="环境" prop="env">
|
|
<el-form-item label="环境" prop="env">
|
|
|
<el-radio-group v-model="appForm.env">
|
|
<el-radio-group v-model="appForm.env">
|
|
|
- <el-radio v-for="item in envList" :key="item.value" :label="item.label" :value="item.value"></el-radio>
|
|
|
|
|
|
|
+ <el-radio v-for="item in envList" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="编译器配置" prop="compilerConfigId">
|
|
<el-form-item label="编译器配置" prop="compilerConfigId">
|
|
@@ -344,7 +352,7 @@
|
|
|
:key="item.value"
|
|
:key="item.value"
|
|
|
:label="item.label"
|
|
:label="item.label"
|
|
|
:value="item.value"
|
|
:value="item.value"
|
|
|
- ></el-option>
|
|
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
<div slot="empty" style="text-align: center; padding: 10px 0;">
|
|
<div slot="empty" style="text-align: center; padding: 10px 0;">
|
|
|
<p style="margin-bottom: 10px; color: #909399; font-size: 12px;">暂无编译配置</p>
|
|
<p style="margin-bottom: 10px; color: #909399; font-size: 12px;">暂无编译配置</p>
|
|
@@ -358,9 +366,9 @@
|
|
|
icon="el-icon-plus"
|
|
icon="el-icon-plus"
|
|
|
circle
|
|
circle
|
|
|
size="mini"
|
|
size="mini"
|
|
|
- @click="showAddCompilerDialog = true"
|
|
|
|
|
title="添加新编译配置"
|
|
title="添加新编译配置"
|
|
|
- ></el-button>
|
|
|
|
|
|
|
+ @click="showAddCompilerDialog = true"
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="打包配置" prop="packerConfigId">
|
|
<el-form-item label="打包配置" prop="packerConfigId">
|
|
@@ -376,7 +384,7 @@
|
|
|
:key="item.value"
|
|
:key="item.value"
|
|
|
:label="item.label"
|
|
:label="item.label"
|
|
|
:value="item.value"
|
|
:value="item.value"
|
|
|
- ></el-option>
|
|
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
<div slot="empty" style="text-align: center; padding: 10px 0;">
|
|
<div slot="empty" style="text-align: center; padding: 10px 0;">
|
|
|
<p style="margin-bottom: 10px; color: #909399; font-size: 12px;">暂无打包配置</p>
|
|
<p style="margin-bottom: 10px; color: #909399; font-size: 12px;">暂无打包配置</p>
|
|
@@ -390,19 +398,19 @@
|
|
|
icon="el-icon-plus"
|
|
icon="el-icon-plus"
|
|
|
circle
|
|
circle
|
|
|
size="mini"
|
|
size="mini"
|
|
|
- @click="showAddPackerDialog = true"
|
|
|
|
|
title="添加新打包配置"
|
|
title="添加新打包配置"
|
|
|
- ></el-button>
|
|
|
|
|
|
|
+ @click="showAddPackerDialog = true"
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div v-show="active === 2">
|
|
<div v-show="active === 2">
|
|
|
<el-form-item label="HTTP 端口" prop="httpPort">
|
|
<el-form-item label="HTTP 端口" prop="httpPort">
|
|
|
- <el-input v-model="appForm.httpPort" placeholder="8080"></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="appForm.httpPort" placeholder="8080" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="Dockerfile" prop="dockerfile">
|
|
<el-form-item label="Dockerfile" prop="dockerfile">
|
|
|
- <el-input type="textarea" :rows="8" v-model="appForm.dockerfile" placeholder="FROM ..."></el-input>
|
|
|
|
|
|
|
+ <el-input v-model="appForm.dockerfile" type="textarea" :rows="8" placeholder="FROM ..." />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
@@ -415,114 +423,6 @@
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <el-dialog
|
|
|
|
|
- :title="deployConfigDialogTitle"
|
|
|
|
|
- append-to-body
|
|
|
|
|
- :visible.sync="showDeployConfigDialog"
|
|
|
|
|
- width="70%"
|
|
|
|
|
- center
|
|
|
|
|
- >
|
|
|
|
|
- <template>
|
|
|
|
|
- <el-button type="success" icon="el-icon-plus" style="margin-bottom: 5px" @click="handleAddDeployConfig">添加</el-button>
|
|
|
|
|
- <el-table
|
|
|
|
|
- :data="appDeployConfigList"
|
|
|
|
|
- border
|
|
|
|
|
- height="480"
|
|
|
|
|
- style="width: 100%"
|
|
|
|
|
- >
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- prop="machineIpv4"
|
|
|
|
|
- label="机器地址"
|
|
|
|
|
- />
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- prop="packType"
|
|
|
|
|
- label="打包类型"
|
|
|
|
|
- />
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- prop="startScript"
|
|
|
|
|
- label="启动脚本"
|
|
|
|
|
- />
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- fixed="right"
|
|
|
|
|
- label="操作"
|
|
|
|
|
- width="280"
|
|
|
|
|
- >
|
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
|
- <el-button
|
|
|
|
|
- style="margin-top: 5px; margin-left: 5px"
|
|
|
|
|
- size="mini"
|
|
|
|
|
- @click="handleEditDeployConfig(scope.$index, scope.row)"
|
|
|
|
|
- >编辑</el-button>
|
|
|
|
|
- <el-button
|
|
|
|
|
- style="margin-top: 5px; margin-left: 5px"
|
|
|
|
|
- size="mini"
|
|
|
|
|
- type="danger"
|
|
|
|
|
- @click="handleDeleteDeployConfig(scope.$index, scope.row)"
|
|
|
|
|
- >删除</el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
- <el-dialog
|
|
|
|
|
- title="添加部署配置"
|
|
|
|
|
- append-to-body
|
|
|
|
|
- :visible.sync="showAddDeployConfigDialog"
|
|
|
|
|
- center
|
|
|
|
|
- >
|
|
|
|
|
- <template>
|
|
|
|
|
- <el-form :model="addDeployForm" label-width="80px">
|
|
|
|
|
- <el-form-item label="应用 ID" style="width: 70%; padding-right: 2px">
|
|
|
|
|
- <el-input v-model="addDeployForm.appId" style="width: 70%; padding-right: 2px" readonly />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="打包类型" style="width: 70%; padding-right: 2px">
|
|
|
|
|
- <el-input v-model="addDeployForm.packType" style="width: 70%; padding-right: 2px" readonly />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="选择机器">
|
|
|
|
|
- <el-select v-model="addDeployForm.machineId" placeholder="选择机器">
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="(item, index) in machineList"
|
|
|
|
|
- :key="index"
|
|
|
|
|
- :label="item.value"
|
|
|
|
|
- :value="item.label"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="启动脚本" style="width: 70%; padding-right: 2px">
|
|
|
|
|
- <el-input v-model="addDeployForm.startScript" type="textarea" :rows="10" style="width: 70%; padding-right: 2px" />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button type="primary" @click="onAddDeploy">确定</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-form>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
- <el-dialog
|
|
|
|
|
- title="编辑部署配置"
|
|
|
|
|
- append-to-body
|
|
|
|
|
- :visible.sync="showEditDeployConfigDialog"
|
|
|
|
|
- center
|
|
|
|
|
- >
|
|
|
|
|
- <template>
|
|
|
|
|
- <el-form :model="editDeployForm" label-width="80px">
|
|
|
|
|
- <el-form-item label="应用 ID" style="width: 70%; padding-right: 2px">
|
|
|
|
|
- <el-input v-model="editDeployForm.appId" style="width: 70%; padding-right: 2px" readonly />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="打包类型" style="width: 70%; padding-right: 2px">
|
|
|
|
|
- <el-input v-model="editDeployForm.packType" style="width: 70%; padding-right: 2px" readonly />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="机器地址" style="width: 70%; padding-right: 2px">
|
|
|
|
|
- <el-input v-model="editDeployForm.machineIpv4" style="width: 70%; padding-right: 2px" readonly />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="启动脚本" style="width: 70%; padding-right: 2px">
|
|
|
|
|
- <el-input v-model="editDeployForm.startScript" type="textarea" :rows="10" style="width: 70%; padding-right: 2px" />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button type="primary" @click="onEditDeploy">确定</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-form>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
<el-dialog
|
|
<el-dialog
|
|
|
title="添加仓库认证"
|
|
title="添加仓库认证"
|
|
|
:visible.sync="showAddRepoAuthDialog"
|
|
:visible.sync="showAddRepoAuthDialog"
|
|
@@ -569,21 +469,20 @@
|
|
|
import RepoAuthAddCard from '@/components/card/RepoAuthAddCard.vue'
|
|
import RepoAuthAddCard from '@/components/card/RepoAuthAddCard.vue'
|
|
|
import CompilerAddCard from '@/components/card/CompilerAddCard.vue'
|
|
import CompilerAddCard from '@/components/card/CompilerAddCard.vue'
|
|
|
import PackerAddCard from '@/components/card/PackerAddCard.vue'
|
|
import PackerAddCard from '@/components/card/PackerAddCard.vue'
|
|
|
-import AppConfigCard from '@/components/card/AppConfigCard.vue';
|
|
|
|
|
|
|
+import AppConfigCard from '@/components/card/AppConfigCard.vue'
|
|
|
|
|
+import AppDeployConfig from '@/components/card/AppDeployConfig.vue'
|
|
|
|
|
|
|
|
import {
|
|
import {
|
|
|
addAppBindDomain,
|
|
addAppBindDomain,
|
|
|
- addAppConfig, addAppDeployConfig,
|
|
|
|
|
|
|
+ addAppConfig,
|
|
|
copyAppConfig, deleteAppBindDomain,
|
|
copyAppConfig, deleteAppBindDomain,
|
|
|
- deleteAppConfig, deleteAppDeployConfig,
|
|
|
|
|
|
|
+ deleteAppConfig,
|
|
|
eraseAppRepo, getAppBindDomain,
|
|
eraseAppRepo, getAppBindDomain,
|
|
|
getAppConfig,
|
|
getAppConfig,
|
|
|
getAppConfigList,
|
|
getAppConfigList,
|
|
|
- getAppDeployConfigList,
|
|
|
|
|
getBuildConfig,
|
|
getBuildConfig,
|
|
|
- getDeployMachineList,
|
|
|
|
|
getEnvList,
|
|
getEnvList,
|
|
|
- updateAppConfig, updateAppDeployConfig
|
|
|
|
|
|
|
+ updateAppConfig
|
|
|
} from '@/api/devops'
|
|
} from '@/api/devops'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -592,7 +491,8 @@ export default {
|
|
|
RepoAuthAddCard,
|
|
RepoAuthAddCard,
|
|
|
CompilerAddCard,
|
|
CompilerAddCard,
|
|
|
PackerAddCard,
|
|
PackerAddCard,
|
|
|
- AppConfigCard
|
|
|
|
|
|
|
+ AppConfigCard,
|
|
|
|
|
+ AppDeployConfig
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
@@ -620,7 +520,7 @@ export default {
|
|
|
compilerConfigId: null,
|
|
compilerConfigId: null,
|
|
|
packerConfigId: null,
|
|
packerConfigId: null,
|
|
|
dockerfile: '',
|
|
dockerfile: '',
|
|
|
- appId: '',
|
|
|
|
|
|
|
+ appId: ''
|
|
|
},
|
|
},
|
|
|
appFormRules: {
|
|
appFormRules: {
|
|
|
appId: [{ required: true, message: '应用 ID 不能为空', trigger: 'blur' }],
|
|
appId: [{ required: true, message: '应用 ID 不能为空', trigger: 'blur' }],
|
|
@@ -631,7 +531,7 @@ export default {
|
|
|
env: [{ required: true, message: '应用环境不能为空', trigger: 'blur' }],
|
|
env: [{ required: true, message: '应用环境不能为空', trigger: 'blur' }],
|
|
|
'compilerConfigId': [{ required: true, message: '请选择编译器', trigger: 'blur' }],
|
|
'compilerConfigId': [{ required: true, message: '请选择编译器', trigger: 'blur' }],
|
|
|
'packerConfigId': [{ required: true, message: '请选择打包配置', trigger: 'blur' }],
|
|
'packerConfigId': [{ required: true, message: '请选择打包配置', trigger: 'blur' }],
|
|
|
- dockerfile: [{ required: true, message: '请填写 Dockerfile', trigger: 'blur' }],
|
|
|
|
|
|
|
+ dockerfile: [{ required: true, message: '请填写 Dockerfile', trigger: 'blur' }]
|
|
|
},
|
|
},
|
|
|
// **********************************************************************
|
|
// **********************************************************************
|
|
|
showAddRepoAuthDialog: false,
|
|
showAddRepoAuthDialog: false,
|
|
@@ -684,25 +584,9 @@ export default {
|
|
|
showDetailDialog: false,
|
|
showDetailDialog: false,
|
|
|
appConfigDetail: null,
|
|
appConfigDetail: null,
|
|
|
// **********************************************************************
|
|
// **********************************************************************
|
|
|
- deployConfigDialogTitle: '',
|
|
|
|
|
- showDeployConfigDialog: false,
|
|
|
|
|
- appDeployConfigList: [],
|
|
|
|
|
- showAddDeployConfigDialog: false,
|
|
|
|
|
- machineList: [],
|
|
|
|
|
- packTypes: [],
|
|
|
|
|
- addDeployForm: {
|
|
|
|
|
- appId: null,
|
|
|
|
|
- packType: null,
|
|
|
|
|
- machineId: null,
|
|
|
|
|
- machineIpv4: null,
|
|
|
|
|
- startScript: null
|
|
|
|
|
- },
|
|
|
|
|
- showEditDeployConfigDialog: false,
|
|
|
|
|
- editDeployForm: {
|
|
|
|
|
- appId: null,
|
|
|
|
|
- machineId: null,
|
|
|
|
|
- startScript: null
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ currentAppId: null,
|
|
|
|
|
+ currentPackType: null,
|
|
|
|
|
+ showDeployDialog: false
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
created() {
|
|
created() {
|
|
@@ -895,9 +779,9 @@ export default {
|
|
|
['appId', 'appRepo', 'repoBranch', 'repoAuthConfigId'],
|
|
['appId', 'appRepo', 'repoBranch', 'repoAuthConfigId'],
|
|
|
['appType', 'env', 'compilerConfigId', 'packerConfigId'],
|
|
['appType', 'env', 'compilerConfigId', 'packerConfigId'],
|
|
|
['dockerfile']
|
|
['dockerfile']
|
|
|
- ];
|
|
|
|
|
|
|
+ ]
|
|
|
|
|
|
|
|
- const currentFields = fieldsForSteps[this.active];
|
|
|
|
|
|
|
+ const currentFields = fieldsForSteps[this.active]
|
|
|
|
|
|
|
|
// 1. 手动封装校验逻辑,确保所有字段校验完才继续
|
|
// 1. 手动封装校验逻辑,确保所有字段校验完才继续
|
|
|
try {
|
|
try {
|
|
@@ -905,35 +789,35 @@ export default {
|
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
|
this.$refs.appFormRef.validateField(field, (errorMessage) => {
|
|
this.$refs.appFormRef.validateField(field, (errorMessage) => {
|
|
|
if (errorMessage) {
|
|
if (errorMessage) {
|
|
|
- reject(errorMessage);
|
|
|
|
|
|
|
+ reject(errorMessage)
|
|
|
} else {
|
|
} else {
|
|
|
- resolve();
|
|
|
|
|
|
|
+ resolve()
|
|
|
}
|
|
}
|
|
|
- });
|
|
|
|
|
- });
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
- await Promise.all(validations);
|
|
|
|
|
|
|
+ await Promise.all(validations)
|
|
|
|
|
|
|
|
// 2. 只有全部成功才会走到这里
|
|
// 2. 只有全部成功才会走到这里
|
|
|
if (this.active < 2) {
|
|
if (this.active < 2) {
|
|
|
- this.active++;
|
|
|
|
|
|
|
+ this.active++
|
|
|
}
|
|
}
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
- this.$message.error('校验未通过:', error);
|
|
|
|
|
|
|
+ this.$message.error('校验未通过:', error)
|
|
|
// 校验失败,保持在当前页
|
|
// 校验失败,保持在当前页
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
prev() {
|
|
prev() {
|
|
|
- if (this.active > 0) this.active--;
|
|
|
|
|
|
|
+ if (this.active > 0) this.active--
|
|
|
},
|
|
},
|
|
|
onAdd() {
|
|
onAdd() {
|
|
|
this.$refs.appFormRef.validate((valid) => {
|
|
this.$refs.appFormRef.validate((valid) => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
addAppConfig(this.appForm).then(resp => {
|
|
addAppConfig(this.appForm).then(resp => {
|
|
|
if (resp.code === 0) {
|
|
if (resp.code === 0) {
|
|
|
- this.active = 0;
|
|
|
|
|
- this.$refs.appFormRef.resetFields();
|
|
|
|
|
|
|
+ this.active = 0
|
|
|
|
|
+ this.$refs.appFormRef.resetFields()
|
|
|
this.showAddDialog = false
|
|
this.showAddDialog = false
|
|
|
this.getData()
|
|
this.getData()
|
|
|
} else {
|
|
} else {
|
|
@@ -945,7 +829,7 @@ export default {
|
|
|
this.showAddDialog = false
|
|
this.showAddDialog = false
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
- });
|
|
|
|
|
|
|
+ })
|
|
|
},
|
|
},
|
|
|
onSelectChange() {
|
|
onSelectChange() {
|
|
|
this.currentPage = 1
|
|
this.currentPage = 1
|
|
@@ -987,92 +871,16 @@ export default {
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
// ****************************************************************************************************************
|
|
// ****************************************************************************************************************
|
|
|
- // 应用部署配置
|
|
|
|
|
|
|
+ // AppDeployConfig
|
|
|
// ****************************************************************************************************************
|
|
// ****************************************************************************************************************
|
|
|
- handleDeployConfig(index, row) {
|
|
|
|
|
- this.addDeployForm.appId = row.appId
|
|
|
|
|
- this.addDeployForm.packType = row.packType
|
|
|
|
|
- this.getAppDeployConfigListWrapper(row.appId)
|
|
|
|
|
- },
|
|
|
|
|
- getAppDeployConfigListWrapper(appId) {
|
|
|
|
|
- getAppDeployConfigList(appId).then(resp => {
|
|
|
|
|
- if (resp.code === 0) {
|
|
|
|
|
- this.appDeployConfigList = resp.data
|
|
|
|
|
- this.deployConfigDialogTitle = appId + ' 的部署配置列表'
|
|
|
|
|
- this.showDeployConfigDialog = true
|
|
|
|
|
- } else {
|
|
|
|
|
- this.$message.error(resp.msg)
|
|
|
|
|
- }
|
|
|
|
|
- }).catch(error => {
|
|
|
|
|
- this.$message.error(error.message)
|
|
|
|
|
- })
|
|
|
|
|
- },
|
|
|
|
|
- handleAddDeployConfig(index, row) {
|
|
|
|
|
- getDeployMachineList(this.queryInfo.env).then(resp => {
|
|
|
|
|
- if (resp.code === 0) {
|
|
|
|
|
- this.machineList = resp.data
|
|
|
|
|
- this.showAddDeployConfigDialog = true
|
|
|
|
|
- } else {
|
|
|
|
|
- this.$message.error(resp.msg)
|
|
|
|
|
- }
|
|
|
|
|
- }).catch(error => {
|
|
|
|
|
- this.$message.error(error.message)
|
|
|
|
|
- })
|
|
|
|
|
- },
|
|
|
|
|
- onAddDeploy() {
|
|
|
|
|
- const formData = new FormData()
|
|
|
|
|
- formData.append('appId', this.addDeployForm.appId)
|
|
|
|
|
- formData.append('machineId', this.addDeployForm.machineId)
|
|
|
|
|
- formData.append('packType', this.addDeployForm.packType)
|
|
|
|
|
- formData.append('startScript', this.addDeployForm.startScript)
|
|
|
|
|
- addAppDeployConfig(formData).then(resp => {
|
|
|
|
|
- this.$message.info(resp.msg)
|
|
|
|
|
- this.getAppDeployConfigListWrapper(this.addDeployForm.appId)
|
|
|
|
|
- }).catch(error => {
|
|
|
|
|
- this.$message.error(error.message)
|
|
|
|
|
- }).finally(() => {
|
|
|
|
|
- this.showAddDeployConfigDialog = false
|
|
|
|
|
- })
|
|
|
|
|
- },
|
|
|
|
|
- handleEditDeployConfig(index, row) {
|
|
|
|
|
- this.editDeployForm = row
|
|
|
|
|
- this.showEditDeployConfigDialog = true
|
|
|
|
|
- },
|
|
|
|
|
- onEditDeploy() {
|
|
|
|
|
- const formData = new FormData()
|
|
|
|
|
- formData.append('appId', this.editDeployForm.appId)
|
|
|
|
|
- formData.append('machineId', this.editDeployForm.machineId)
|
|
|
|
|
- formData.append('startScript', this.editDeployForm.startScript)
|
|
|
|
|
- updateAppDeployConfig(formData).then(resp => {
|
|
|
|
|
- this.$message.info(resp.msg)
|
|
|
|
|
- this.getAppDeployConfigListWrapper(this.editDeployForm.appId)
|
|
|
|
|
- }).catch(error => {
|
|
|
|
|
- this.$message.error(error.message)
|
|
|
|
|
- }).finally(() => {
|
|
|
|
|
- this.showEditDeployConfigDialog = false
|
|
|
|
|
- })
|
|
|
|
|
- },
|
|
|
|
|
- handleDeleteDeployConfig(index, row) {
|
|
|
|
|
- this.$confirm('确定要删除 ' + row.appId + '?', '提示', {
|
|
|
|
|
- confirmButtonText: '确定',
|
|
|
|
|
- cancelButtonText: '取消',
|
|
|
|
|
- type: 'warning'
|
|
|
|
|
- }).then(() => {
|
|
|
|
|
- const formData = new FormData()
|
|
|
|
|
- formData.append('appDeployConfigId', row.appDeployConfigId)
|
|
|
|
|
- deleteAppDeployConfig(formData).then(resp => {
|
|
|
|
|
- this.$message.info(resp.msg)
|
|
|
|
|
- this.getAppDeployConfigListWrapper(row.appId)
|
|
|
|
|
- }).catch(error => {
|
|
|
|
|
- this.$message.error(error.message)
|
|
|
|
|
- })
|
|
|
|
|
- }).catch(() => {
|
|
|
|
|
- this.$message({
|
|
|
|
|
- type: 'info',
|
|
|
|
|
- message: '已取消'
|
|
|
|
|
- })
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ handleOpenDeploy(row) {
|
|
|
|
|
+ this.currentAppId = row.appId
|
|
|
|
|
+ this.currentPackType = row.packType
|
|
|
|
|
+ this.showDeployDialog = true
|
|
|
},
|
|
},
|
|
|
|
|
+ // ****************************************************************************************************************
|
|
|
|
|
+ // 添加 AppConfig
|
|
|
|
|
+ // ****************************************************************************************************************
|
|
|
handleAddRepoAuthSuccess() {
|
|
handleAddRepoAuthSuccess() {
|
|
|
this.showAddRepoAuthDialog = false
|
|
this.showAddRepoAuthDialog = false
|
|
|
this.getBuildConfigWrapper()
|
|
this.getBuildConfigWrapper()
|