Browse Source

字段调整

pull/3/head
liwei 3 years ago
parent
commit
1085d490f1
1 changed files with 240 additions and 155 deletions
  1. +240
    -155
      src/views/etl/components/configuration.vue

+ 240
- 155
src/views/etl/components/configuration.vue View File

@ -5,15 +5,24 @@
width="1440px"
:before-close="handleClose"
>
<el-form :model="formData" ref="form" label-width="100px" class="demo-dynamic">
<el-form
:model="formData"
ref="form"
label-width="100px"
class="demo-dynamic"
>
<el-row>
<el-col :span="24">
<div class="form-item-list-title">
<el-row>
<el-col :span="21">任务触发器</el-col>
<el-col :span="3">
<el-button type="primary" @click.prevent="addDomain('triggerLi')">添加</el-button>
</el-col>
<el-col :span="3">
<el-button
type="primary"
@click.prevent="addDomain('triggerLi')"
>添加</el-button
>
</el-col>
</el-row>
</div>
</el-col>
@ -23,45 +32,67 @@
:label="getColumnName('Trigger-TriggerType')"
:prop="'triggerLi.' + index + '.Trigger-TriggerType'"
label-width="120px"
:rules="{required: true, message: '请选择'+getColumnName('Trigger-TriggerType'), trigger: 'blur'}"
:rules="{
required: true,
message: '请选择' + getColumnName('Trigger-TriggerType'),
trigger: 'blur',
}"
>
<el-select v-model="item['Trigger-TriggerType']" placeholder="请选择">
<el-select
v-model="item['Trigger-TriggerType']"
placeholder="请选择"
>
<el-option
v-for="item in allSelect['Trigger-TriggerType']"
:label="item['Stdef-Bez']"
:value="item['Stdef-StdefTyp']">
</el-option>
:value="item['Stdef-StdefTyp']"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
:label="getColumnName('Trigger-Hour')"
:prop="'triggerLi.'+index+'.Trigger-Hour'"
:prop="'triggerLi.' + index + '.Trigger-Hour'"
>
<el-input-number v-model="item['Trigger-Hour']" :min="0" :max="24"></el-input-number>
<el-input-number
v-model="item['Trigger-Hour']"
:min="0"
:max="24"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
:label="getColumnName('Trigger-Minute')"
:prop="'triggerLi.'+index+'.Trigger-Minute'"
:prop="'triggerLi.' + index + '.Trigger-Minute'"
>
<el-input-number v-model="item['Trigger-Minute']" :min="0" :max="59"></el-input-number>
<el-input-number
v-model="item['Trigger-Minute']"
:min="0"
:max="59"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
:label="getColumnName('Trigger-Second')"
:prop="'triggerLi.'+index+'.Trigger-Second'"
:prop="'triggerLi.' + index + '.Trigger-Second'"
>
<el-input-number v-model="item['Trigger-Second']" :min="0" :max="59"></el-input-number>
<el-input-number
v-model="item['Trigger-Second']"
:min="0"
:max="59"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="danger" @click.prevent="removeDomain(index, 'triggerLi')">删除</el-button>
<el-button
type="danger"
@click.prevent="removeDomain(index, 'triggerLi')"
>删除</el-button
>
</el-col>
</template>
</el-row>
<el-row>
@ -69,9 +100,13 @@
<div class="form-item-list-title">
<el-row>
<el-col :span="21">Etcd锁</el-col>
<el-col :span="3">
<el-button type="primary" @click.prevent="addDomain('etcdLockLi')">添加</el-button>
</el-col>
<el-col :span="3">
<el-button
type="primary"
@click.prevent="addDomain('etcdLockLi')"
>添加</el-button
>
</el-col>
</el-row>
</div>
</el-col>
@ -80,7 +115,11 @@
<el-form-item
:label="getColumnName('ETCD_Lock-Addr')"
:prop="'etcdLockLi.' + index + '.ETCD_Lock-Addr'"
:rules="{required: true, message: '请填写'+getColumnName('ETCD_Lock-Addr'), trigger: 'blur'}"
:rules="{
required: true,
message: '请填写' + getColumnName('ETCD_Lock-Addr'),
trigger: 'blur',
}"
>
<el-input v-model="item['ETCD_Lock-Addr']" />
</el-form-item>
@ -88,8 +127,12 @@
<el-col :span="4">
<el-form-item
:label="getColumnName('ETCD_Lock-Database')"
:prop="'etcdLockLi.'+index+'.ETCD_Lock-Database'"
:rules="{required: true, message: '请填写'+getColumnName('ETCD_Lock-Database'), trigger: 'blur'}"
:prop="'etcdLockLi.' + index + '.ETCD_Lock-Database'"
:rules="{
required: true,
message: '请填写' + getColumnName('ETCD_Lock-Database'),
trigger: 'blur',
}"
>
<el-input v-model="item['ETCD_Lock-Database']"></el-input>
</el-form-item>
@ -97,8 +140,12 @@
<el-col :span="4">
<el-form-item
:label="getColumnName('ETCD_Lock-Table')"
:prop="'etcdLockLi.'+index+'.ETCD_Lock-Table'"
:rules="{required: true, message: '请填写'+getColumnName('ETCD_Lock-Table'), trigger: 'blur'}"
:prop="'etcdLockLi.' + index + '.ETCD_Lock-Table'"
:rules="{
required: true,
message: '请填写' + getColumnName('ETCD_Lock-Table'),
trigger: 'blur',
}"
>
<el-input v-model="item['ETCD_Lock-Table']"></el-input>
</el-form-item>
@ -106,14 +153,22 @@
<el-col :span="4">
<el-form-item
:label="getColumnName('ETCD_Lock-LockType')"
:prop="'etcdLockLi.'+index+'.ETCD_Lock-LockType'"
:rules="{required: true, message: '请选择'+getColumnName('ETCD_Lock-LockType'), trigger: 'blur'}"
:prop="'etcdLockLi.' + index + '.ETCD_Lock-LockType'"
:rules="{
required: true,
message: '请选择' + getColumnName('ETCD_Lock-LockType'),
trigger: 'blur',
}"
>
<el-select v-model="item['ETCD_Lock-LockType']" placeholder="请选择">
<el-select
v-model="item['ETCD_Lock-LockType']"
placeholder="请选择"
>
<el-option
v-for="item in allSelect['ETCD_Lock-LockType']"
:label="item['Stdef-Bez']"
:value="item['Stdef-StdefTyp']">
:value="item['Stdef-StdefTyp']"
>
</el-option>
</el-select>
</el-form-item>
@ -121,20 +176,29 @@
<el-col :span="4">
<el-form-item
:label="getColumnName('ETCD_Lock-Stage')"
:prop="'etcdLockLi.'+index+'.ETCD_Lock-Stage'"
:rules="{required: true, message: '请选择'+getColumnName('ETCD_Lock-Stage'), trigger: 'blur'}"
:prop="'etcdLockLi.' + index + '.ETCD_Lock-Stage'"
:rules="{
required: true,
message: '请选择' + getColumnName('ETCD_Lock-Stage'),
trigger: 'blur',
}"
>
<el-select v-model="item['ETCD_Lock-Stage']" placeholder="请选择">
<el-option
v-for="item in allSelect['ETCD_Lock-Stage']"
:label="item['Stdef-Bez']"
:value="item['Stdef-StdefTyp']">
:value="item['Stdef-StdefTyp']"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="danger" @click.prevent="removeDomain(index, 'etcdLockLi')">删除</el-button>
<el-button
type="danger"
@click.prevent="removeDomain(index, 'etcdLockLi')"
>删除</el-button
>
</el-col>
</template>
</el-row>
@ -143,9 +207,11 @@
<div class="form-item-list-title">
<el-row>
<el-col :span="21">Shell</el-col>
<el-col :span="3">
<el-button type="primary" @click.prevent="addDomain('shellLi')">添加</el-button>
</el-col>
<el-col :span="3">
<el-button type="primary" @click.prevent="addDomain('shellLi')"
>添加</el-button
>
</el-col>
</el-row>
</div>
</el-col>
@ -155,13 +221,18 @@
:label="getColumnName('Shell-ShellName')"
:prop="'shellLi.' + index + '.Shell-ShellName'"
label-width="120px"
:rules="{required: true, message: '请选择'+getColumnName('Shell-ShellName'), trigger: 'blur'}"
:rules="{
required: true,
message: '请选择' + getColumnName('Shell-ShellName'),
trigger: 'blur',
}"
>
<el-select v-model="item['Shell-ShellName']" placeholder="请选择">
<el-option
v-for="item in allSelect['Shell-ShellName']"
:label="item['Stdef-Bez']"
:value="item['Stdef-StdefTyp']">
:value="item['Stdef-StdefTyp']"
>
</el-option>
</el-select>
</el-form-item>
@ -169,20 +240,29 @@
<el-col :span="10">
<el-form-item
:label="getColumnName('Shell-Stage')"
:prop="'shellLi.'+index+'.Shell-Stage'"
:rules="{required: true, message: '请选择'+getColumnName('Shell-Stage'), trigger: 'blur'}"
:prop="'shellLi.' + index + '.Shell-Stage'"
:rules="{
required: true,
message: '请选择' + getColumnName('Shell-Stage'),
trigger: 'blur',
}"
>
<el-select v-model="item['Shell-Stage']" placeholder="请选择">
<el-option
v-for="item in allSelect['Shell-Stage']"
:label="item['Stdef-Bez']"
:value="item['Stdef-StdefTyp']">
:value="item['Stdef-StdefTyp']"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="danger" @click.prevent="removeDomain(index, 'shellLi')">删除</el-button>
<el-button
type="danger"
@click.prevent="removeDomain(index, 'shellLi')"
>删除</el-button
>
</el-col>
</template>
</el-row>
@ -196,129 +276,134 @@
</el-dialog>
</template>
<script>
import { post, get } from "../../../server/api.js";
export default {
props:{
item:{
default:{}
},
isShowDialog:{
default:'configuration'
}
import { post, get } from "../../../server/api.js";
export default {
props: {
item: {
default: {},
},
data(){
return{
triggerLi:{
'Trigger-TaskId': this.item['TaskHead-TaskId'],
'Trigger-TriggerType':undefined,
'Trigger-Hour':undefined,
'Trigger-Minute':undefined,
'Trigger-Second':undefined
}, //
etcdLockLi:{
'Trigger-TaskId': this.item['TaskHead-TaskId'],
'ETCD_Lock-Addr':undefined,
'ETCD_Lock-Database':undefined,
'ETCD_Lock-Table':undefined,
'ETCD_Lock-LockType':undefined,
'ETCD_Lock-Stage':undefined,
'ETCD_Lock-Source':"DB"
}, // etcd
shellLi:{
'Trigger-TaskId': this.item['TaskHead-TaskId'],
'Shell-ShellName':undefined,
'Shell-Stage':undefined
}, // Shell
formData: {
triggerLi:[],
etcdLockLi:[],
shellLi:[]
},
allSelect:{
'Trigger-TriggerType':[],
'ETCD_Lock-LockType':[],
'ETCD_Lock-Stage':[],
'ETCD_Lock-Source':[],
'Shell-ShellName':[],
'Shell-Stage':[]
}
}
isShowDialog: {
default: "configuration",
},
methods:{
//
handleClose(){
this.$emit('update:isShowDialog','')
},
data() {
return {
triggerLi: {
"Trigger-TaskId": this.item["TaskHead-TaskId"],
"Trigger-TriggerType": undefined,
"Trigger-Hour": undefined,
"Trigger-Minute": undefined,
"Trigger-Second": undefined,
}, //
etcdLockLi: {
"ETCD_Lock-TaskId": this.item["TaskHead-TaskId"],
"ETCD_Lock-Addr": undefined,
"ETCD_Lock-Database": undefined,
"ETCD_Lock-Table": undefined,
"ETCD_Lock-LockType": undefined,
"ETCD_Lock-Stage": undefined,
"ETCD_Lock-Source": "DB",
}, // etcd
shellLi: {
"Shell-TaskId": this.item["TaskHead-TaskId"],
"Shell-ShellName": undefined,
"Shell-Stage": undefined,
}, // Shell
formData: {
triggerLi: [],
etcdLockLi: [],
shellLi: [],
},
//
submitForm(formName) {
console.log(this.formData);
this.$refs[formName].validate((valid) => {
if (valid) {
post('/admin/etl/taskhead/insertconfig', {
taskId: this.item['TaskHead-TaskId'],
...this.formData
}).then(({code, data})=>{
if(code === 200){
this.msgSuccess("配置成功")
this.$emit('editCallBack')
}
})
} else {
console.log('error submit!!');
return false;
}
});
allSelect: {
"Trigger-TriggerType": [],
"ETCD_Lock-LockType": [],
"ETCD_Lock-Stage": [],
"ETCD_Lock-Source": [],
"Shell-ShellName": [],
"Shell-Stage": [],
},
//
removeDomain(index, key) {
if(key=='triggerLi' && this.formData[key].length ==1){return;};
if (index !== -1) {
this.formData[key].splice(index, 1)
};
},
methods: {
//
handleClose() {
this.$emit("update:isShowDialog", "");
},
//
submitForm(formName) {
console.log(this.formData);
this.$refs[formName].validate((valid) => {
if (valid) {
post("/admin/etl/taskhead/insertconfig", {
taskId: this.item["TaskHead-TaskId"],
...this.formData,
}).then(({ code, data }) => {
if (code === 200) {
this.msgSuccess("配置成功");
this.$emit("editCallBack");
}
});
} else {
console.log("error submit!!");
return false;
}
},
//
addDomain(name) {
this.formData[name].push({...this[name]});
}
});
},
created(){
//
for (let key in this.allSelect) {
this.getStanderOne({ 'StatId': key }).then(res => {
this.allSelect[key] = res.data || []
})
//
removeDomain(index, key) {
if (key == "triggerLi" && this.formData[key].length == 1) {
return;
}
if (index !== -1) {
this.formData[key].splice(index, 1);
}
},
mounted(){
//
get('/admin/etl/taskhead/get/'+this.item['TaskHead-TaskId']).then(({code, data})=>{
// form
this.formData= {
triggerLi:data['TaskHead-TriggerLi'].length ? data['TaskHead-TriggerLi'] : [{...this.triggerLi}],
etcdLockLi:data['TaskHead-ETCDLockLi'] || [{...this.etcdLockLi}],
shellLi:data['TaskHead-ShellLi'] || [{...this.shellLi}]
}
})
//
addDomain(name) {
this.formData[name].push({ ...this[name] });
},
},
created() {
//
for (let key in this.allSelect) {
this.getStanderOne({ StatId: key }).then((res) => {
this.allSelect[key] = res.data || [];
});
}
}
},
mounted() {
//
get("/admin/etl/taskhead/get/" + this.item["TaskHead-TaskId"]).then(
({ code, data }) => {
// form
this.formData = {
triggerLi: data["TaskHead-TriggerLi"].length
? data["TaskHead-TriggerLi"]
: [{ ...this.triggerLi }],
etcdLockLi: data["TaskHead-ETCDLockLi"] || [{ ...this.etcdLockLi }],
shellLi: data["TaskHead-ShellLi"] || [{ ...this.shellLi }],
};
}
);
},
};
</script>
<style lang="less" scoped>
.form-item-list-title{
width: 100%;
height: 60px;
line-height: 60px;
border-bottom: 1px solid #C0C4CC;
margin-bottom: 10px;
.el-col-21{
font-size: 20px;
font-weight: 600;
}
}
.el-input-number{
width:140px;
}
.el-button--primary{
float:right;
.form-item-list-title {
width: 100%;
height: 60px;
line-height: 60px;
border-bottom: 1px solid #c0c4cc;
margin-bottom: 10px;
.el-col-21 {
font-size: 20px;
font-weight: 600;
}
</style>
}
.el-input-number {
width: 140px;
}
.el-button--primary {
float: right;
}
</style>

Loading…
Cancel
Save