Commit 3bc708ea authored by 张俊's avatar 张俊

合并

parents 1adcb9f9 d4249333
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
<p class="formname">接口编码:</p> <p class="formname">接口编码:</p>
<el-input v-model="form.code"></el-input> <el-input v-model="form.code"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="now_user==2" prop="people" :rules="[ <!-- <el-form-item v-if="now_user==2" prop="people" :rules="[
{ required: true, message: '请输入发布人', trigger: 'blur' }, { required: true, message: '请输入发布人', trigger: 'blur' },
]"> ]">
<p class="formname">发布人:</p> <p class="formname">发布人:</p>
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
]"> ]">
<p class="formname">联系方式:</p> <p class="formname">联系方式:</p>
<el-input v-model="form.phone"></el-input> <el-input v-model="form.phone"></el-input>
</el-form-item> </el-form-item> -->
<el-form-item prop="resource"> <el-form-item prop="resource">
<p class="formname">开放程度:</p> <p class="formname">开放程度:</p>
<el-radio-group v-model="form.resource"> <el-radio-group v-model="form.resource">
...@@ -395,6 +395,7 @@ export default { ...@@ -395,6 +395,7 @@ export default {
if (valid) { if (valid) {
this.setService() this.setService()
} else { } else {
this.$message.error('请填写完整表单')
console.log('error submit!!'); console.log('error submit!!');
return false; return false;
} }
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<el-option <el-option
v-for="item in area_options" v-for="item in area_options"
:key="item.value" :key="item.value"
:label="item.label" :label="item.text"
:value="item.value" :value="item.value"
> >
</el-option> </el-option>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="apass_button step_action"> <div class="apass_button step_action">
<el-button type="primary" @click="sub_yy_form('step1_form')"> <el-button type="primary" :disabled="is_loading" @click="sub_yy_form('step1_form',1)">
下一步 下一步
</el-button> </el-button>
</div> </div>
...@@ -66,36 +66,35 @@ ...@@ -66,36 +66,35 @@
ref="step2_form" ref="step2_form"
class="step_form" class="step_form"
label-position="top" label-position="top"
:model="app_set"
:rules="app_set_rules" :rules="app_set_rules"
> >
<el-form-item label="标题:" prop="title"> <div v-for="(item,index) in step2_arr" :key="index+10000">
<el-form-item :label="item.text" v-if="item.type=='text'">
<el-input <el-input
v-model="app_set.title" v-model="item.value"
placeholder="请输入标题"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="镜像版本:" prop="vision"> <el-form-item :label="item.text" v-if="item.type=='radio'">
<div <div
:class="{ select_box: true, is_select: app_set.vision == vision }" :class="{ select_box: true, is_select: item.val == vision }"
v-for="vision in vision_arr" v-for="vision in item.value"
:key="vision" :key="vision"
@click="app_set.vision = vision" @click="change_appset(item,'val',vision)"
> >
{{ vision }} {{ vision}}
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="资源限制-内存:" prop="memory" class="limitsd"> <el-form-item :label="item.text+'-内存:'" class="limitsd" v-if="item.type=='resource'">
<el-input <el-input
type="number" type="number"
class="limitinput" class="limitinput"
v-model="app_set.memory" v-model="item.memory"
placeholder="请输入内存" placeholder="请输入内存"
></el-input> ></el-input>
<el-select <el-select
v-model="app_set.memory_type" v-model="item.memory_type"
class="timeslect" class="timeslect"
placeholder="请选择内存" placeholder="请选择内存"
> >
...@@ -109,22 +108,22 @@ ...@@ -109,22 +108,22 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="资源限制-CPU:" prop="cpu"> <el-form-item :label="item.text+'-CPU:'" v-if="item.type=='resource'">
<el-input <el-input
type="number" type="number"
v-model="app_set.cpu" v-model="item.cpu"
placeholder="请输入标题" placeholder="请输入标题"
> >
<template slot="append">M</template> <template slot="append">M</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否监控:" prop="watch"> <el-form-item :label="item.text" v-if="item.type=='switch'">
<div <div
class="openbgc" class="openbgc"
@click="openstart" @click="openstart(item,'value')"
:style=" :style="
!app_set.watch !item.value
? { ? {
backgroundImage: backgroundImage:
'url(' + require('@/assets/imgs/btn_off_hov.png') + ')', 'url(' + require('@/assets/imgs/btn_off_hov.png') + ')',
...@@ -133,19 +132,21 @@ ...@@ -133,19 +132,21 @@
" "
></div> ></div>
</el-form-item> </el-form-item>
<el-form-item label="储存容量:" prop="save_memory"> <el-form-item :label="item.text" v-if="item.type=='storage'">
<div <div
:class="{ :class="{
select_box: true, select_box: true,
is_select: app_set.save_memory == save, is_select: item.storage == save,
}" }"
v-for="save in save_arr" v-for="save in save_arr[item.dwtype]"
:key="save" :key="save"
@click="app_set.save_memory = save" @click="change_appset(item,'storage',save)"
> >
{{ save }} {{ save }}
</div> </div>
</el-form-item> </el-form-item>
</div>
</el-form> </el-form>
<div class="senior_box" @click="senior_flag = true" v-if="!senior_flag"> <div class="senior_box" @click="senior_flag = true" v-if="!senior_flag">
高级配置 高级配置
...@@ -154,7 +155,7 @@ ...@@ -154,7 +155,7 @@
<el-button type="primary" plain @click="preStep"> <el-button type="primary" plain @click="preStep">
上一步 上一步
</el-button> </el-button>
<el-button type="primary" @click="sub_yy_form('step2_form')"> <el-button type="primary" :disabled="is_loading" @click="sub_app_set()">
下一步 下一步
</el-button> </el-button>
</div> </div>
...@@ -164,13 +165,13 @@ ...@@ -164,13 +165,13 @@
> >
高级配置: 高级配置:
</p> </p>
<v-apaas-code v-show="senior_flag" :datas="app_set.code"></v-apaas-code> <v-apaas-code v-if="senior_flag" :datas="app_set_code"></v-apaas-code>
<div class="apass_button step_action" v-if="senior_flag"> <div class="apass_button step_action" v-if="senior_flag">
<el-button type="primary" plain @click="deal_code(0)"> <el-button type="primary" plain @click="deal_code(0)">
取消 取消
</el-button> </el-button>
<el-button type="primary" @click="deal_code(1)"> <el-button type="primary" :disabled="is_loading" @click="deal_code(1)">
保存 下一步
</el-button> </el-button>
</div> </div>
</app-build-step> </app-build-step>
...@@ -208,6 +209,7 @@ import appBuildSteps from "@/components/app-build-steps/app-build-steps"; ...@@ -208,6 +209,7 @@ import appBuildSteps from "@/components/app-build-steps/app-build-steps";
import appBuildStep from "@/components/app-build-steps/app-build-step"; import appBuildStep from "@/components/app-build-steps/app-build-step";
import apassDialog from "@/components/apass-dialog"; import apassDialog from "@/components/apass-dialog";
import codes from "@/components/codes"; import codes from "@/components/codes";
import yaml from "js-yaml";
var checkNumber = (rule, value, callback) => { var checkNumber = (rule, value, callback) => {
if (!value) { if (!value) {
return callback(new Error("不能为空")); return callback(new Error("不能为空"));
...@@ -250,16 +252,8 @@ export default { ...@@ -250,16 +252,8 @@ export default {
namespace: "", namespace: "",
name: "", name: "",
}, },
app_set: { app_set: {},
title: "", app_set_info: {},
vision: "",
memory: "",
memory_type: 1,
cpu: "",
watch: 0,
save_memory: "",
code: "",
},
area_options: [ area_options: [
{ {
name: "12312", name: "12312",
...@@ -268,24 +262,37 @@ export default { ...@@ -268,24 +262,37 @@ export default {
], ],
vision_arr: ["1.0.1", "10.1.2", "2.2.3"], vision_arr: ["1.0.1", "10.1.2", "2.2.3"],
save_arr: [ save_arr: [
"2GI", [
"4GI", "2Gi",
"8GI", "4Gi",
"16GI", "8Gi",
"32GI", "16Gi",
"64GI", "32Gi",
"128GI", "64Gi",
"256GI", "128Gi",
"512GI", "256Gi",
"512Gi",
],
[
"2TB",
"4TB",
"8TB",
"16TB",
"32TB",
"64TB",
"128TB",
"256TB",
"512TB",
],
], ],
memory_arr: [ memory_arr: [
{ {
value: 1, value: 'Mi',
label: "MI", label: "Mi",
}, },
{ {
value: 2, value: 'Gi',
label: "GI", label: "Gi",
}, },
], ],
image_rules: { image_rules: {
...@@ -297,6 +304,9 @@ export default { ...@@ -297,6 +304,9 @@ export default {
{ validator: checkName, trigger: "blur" }, { validator: checkName, trigger: "blur" },
], ],
}, },
app_set_code:'',
is_change:false,
is_loading:false,
app_set_rules: { app_set_rules: {
title: [{ required: true, message: "请输入标题", trigger: "blur" }], title: [{ required: true, message: "请输入标题", trigger: "blur" }],
memory: [ memory: [
...@@ -316,38 +326,246 @@ export default { ...@@ -316,38 +326,246 @@ export default {
evtSource: null, evtSource: null,
stateList: [], stateList: [],
finallyState: 0, finallyState: 0,
listStatus: [],
state: "",
text: "",
url: "",
act: 0,
stateList: [
{
name: "获取部署参数",
value: "values",
content: "获取部署参数",
state: 1,
},
{
name: "拉取部署文件",
value: "pull-chart",
content: "拉取部署文件",
state: 1,
},
{
name: "开始部署",
value: "install",
content: "开始部署",
state: 1,
},
{
name: "部署状态",
value: "deploy-status",
content: "部署状态",
state: 2,
},
],
step2_arr:[],
}), }),
methods: { methods: {
get_name_space(){
this.$http
.get(`/apaas/hubApi/market/namespaces`)
.then((response) => {
console.log(response);
this.area_options = response.data.data
});
},
get_step_info() { get_step_info() {
this.$http this.$http
.get(`/apaas/hubApi/market/step/${this.$route.params.app_id}`) .get(`/apaas/hubApi/market/step/${this.$route.params.app_id}`)
.then((response) => { .then((response) => {
console.log(JSON.parse(response.data.data)); let step2_arr = JSON.parse(response.data.data).configInfo
console.log(step2_arr);
step2_arr.forEach(e => {
if(e.type=='radio'){
e['val'] = e.value[0]
// this.deal_key_value(this.app_set_info,e.name,e.type,e.value[0])
}else if(e.type=='storage'){
e['dwtype'] = e.storage.indexOf('Gi')==-1?1:0
// this.deal_key_value(this.app_set_info,e.name,e.type,e.storage)
}else if(e.type=='resource'){
let memory = e.memory
let cpu = e.cpu
e['memory_type'] = memory.indexOf('Mi')==-1?'Gi':'Mi'
e['memory'] = parseInt(memory)
e['cpu'] = parseInt(cpu)
// this.deal_key_value(this.app_set_info,e.name,'resource',[memory,cpu])
}else{
// this.deal_key_value(this.app_set_info,e.name,e.type,e.value)
}
});
this.step2_arr=step2_arr;
console.log(this.app_set_info);
});
},
get_step_file(){
this.$http
.get(`/apaas/hubApi/market/values/${this.$route.params.app_id}`)
.then((response) => {
this.app_set_code = response.data.data
})
},
change_appset(obj,key,val){
console.log(key,val);
this.$set(obj,key,val)
},
deal_key_value(key_string,type,value){
var key_arr = key_string.split('.')
var temp = this.app_set_info
key_arr.forEach((e,index) => {
if(key_arr.length-1==index){
if(type == 'resource'){
temp[e] = {
limits:{
memory: value[1]+value[0],
cpu:value[2]+'m'
},
requests:{
memory: value[1]+value[0],
cpu:value[2]+'m'
}
}
}else if(type == 'storage'){
temp[e] = {
"volumeClaimTemplate":{
"spec":{
"storageClassName":"nfs-client",
"accessModes":[
"ReadWriteOnce"],
"resources":{
"requests":{
"storage":value
}
}
},
"selector":{
}
}
}
}else{
temp[e] = value
}
}else{
if(temp[e]){
}else{
temp[e] = {}
}
temp = temp[e]
}
});
},
deal_key_text(obj,key_string){
var key_arr = key_string.split('.')
var temp = obj;
key_arr.forEach((e,index) => {
if(key_arr.length-1==index){
}else{
temp = temp[e]
}
}); });
}, },
deal_code(n) { deal_code(n) {
if (n) { if (n) {
this.begin_code = this.app_set.code; //调用接口
} else { this.change_form_aploy(0)
this.app_set.code = this.begin_code;
} }
this.senior_flag = false; this.senior_flag = false;
}, },
sub_yy_form(formName) { change_form_aploy(n){
this.is_loading = true
if(n==1){
//表单提交
var temp = {
"app_id": parseInt(this.$route.params.app_id),
"up_userid": this.$store.state.userInfo.user_id,
"name": this.baseInfoForm.name,
"namespace": this.baseInfoForm.namespace,
"uu": this.evtUuid,
"values": this.app_set_info
}
}else{
//编辑提交
var temp = {
"app_id": parseInt(this.$route.params.app_id),
"up_userid": this.$store.state.userInfo.user_id,
"name": this.baseInfoForm.name,
"namespace": this.baseInfoForm.namespace,
"uu": this.evtUuid,
"values": yaml.load(this.app_set_code)
}
}
this.$http
.post(`/apaas/hubApi/market/build`,temp)
.then((response) => {
this.is_loading = false
if(response.data.data){
this.$message.success('开始部署成功')
this.nextStep()
}
}).catch(()=>{
this.is_loading = false
})
},
sub_yy_form(formName,n) {
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
this.nextStep(); if(n==1){
this.get_work_name()
}else if(n==2){
this.sub_app_set()
}
} else { } else {
console.log("error submit!!"); console.log("error submit!!");
return false; return false;
} }
}); });
}, },
openstart() { get_work_name(){
if (this.app_set.watch) { this.is_loading = true
this.app_set.watch = 0; this.$http
.get(`/apaas/hubApi/market/exist/${this.baseInfoForm.namespace}?name=${this.baseInfoForm.name}`)
.then((response) => {
console.log(response);
this.is_loading = false
if(response.data.success){
if(response.data.data){
this.$message.error('工作名称已存在')
}else{
this.nextStep();
}
}
}).catch(()=>{
this.is_loading = false
})
},
sub_app_set(){
this.is_loading = true
this.step2_arr.forEach(e => {
if(e.type=='radio'){
this.deal_key_value(e.name,e.type,e.val)
}else if(e.type=='storage'){
this.deal_key_value(e.name,e.type,e.storage)
}else if(e.type=='resource'){
let memory = e.memory
let cpu = e.cpu
this.deal_key_value(e.name,'resource',[e.memory_type,e.memory,e.cpu])
}else{
this.deal_key_value(e.name,e.type,e.value)
}
});
console.log(this.app_set_info);
console.log(this.step2_arr);
//表单提交调用接口
this.change_form_aploy(1)
},
openstart(item,key) {
if (item[key]) {
this.$set(item,key,false)
// item[key] = false;
} else { } else {
this.app_set.watch = 1; // item[key] = true;
this.$set(item,key,true)
} }
}, },
preStep() { preStep() {
...@@ -489,7 +707,9 @@ export default { ...@@ -489,7 +707,9 @@ export default {
}, },
created() { created() {
this.getStatus(); this.getStatus();
this.get_name_space();
this.get_step_info(); this.get_step_info();
this.get_step_file();
}, },
}; };
</script> </script>
...@@ -519,7 +739,6 @@ export default { ...@@ -519,7 +739,6 @@ export default {
} }
.select_box { .select_box {
height: 35px; height: 35px;
width: 80px;
line-height: 35px; line-height: 35px;
background-color: #f7f8f9; background-color: #f7f8f9;
border-radius: 6px; border-radius: 6px;
...@@ -529,6 +748,7 @@ export default { ...@@ -529,6 +748,7 @@ export default {
float: left; float: left;
margin-right: 10px; margin-right: 10px;
cursor: pointer; cursor: pointer;
padding: 0 20px;
} }
.is_select { .is_select {
background-color: #515fe7; background-color: #515fe7;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment