feat: chart-box增加复制expression功能

This commit is contained in:
chenjinsong
2021-03-11 19:59:47 +08:00
parent 746b97b8f4
commit 891f6bfcf2
3 changed files with 73 additions and 23 deletions

View File

@@ -2373,15 +2373,26 @@ li{
} }
.right-box-form .nz-icon-minus-medium{ .right-box-form .nz-icon-minus-medium{
padding: 2px 6px; padding: 2px 6px;
background: rgba(236,127,102,.1); background-color: rgba(236,127,102,.1);
border-radius: 2px; border-radius: 2px;
cursor: pointer; cursor: pointer;
} }
.right-box-form .form-row-item .nz-icon-minus-position{ .nz-icon-copy {
padding: 2px 6px;
color: $global-text-color-active;
background-color: #FDF5E9;
border-radius: 2px;
cursor: pointer;
}
.nz-icon-minus-position{
display: inline-flex;
flex-direction: column;
position: absolute; position: absolute;
right: -40px;
top: 50%; top: 50%;
right: -55px; transform: translateY(-50%);
transform: translate(-50%,-50%); height: 70px;
justify-content: space-around;
} }
.right-box-form>.el-form-item.half-form-item-other{ .right-box-form>.el-form-item.half-form-item-other{
display: inline-block; display: inline-block;

View File

@@ -71,9 +71,14 @@
</el-col> </el-col>
</template> </template>
</el-row> </el-row>
<span class="nz-icon-minus-medium nz-icon-minus-position"> <div class="nz-icon-minus-position">
<i class="nz-icon nz-icon-minus" @click="removeExpression(index)"></i> <span class="nz-icon-minus-medium">
<i @click="removeExpression(index)" class="nz-icon nz-icon-minus"></i>
</span> </span>
<span class="nz-icon-copy">
<i @click="copyExpression(index)" class="nz-icon nz-icon-override"></i>
</span>
</div>
</el-row> </el-row>
<!--tooltip--> <!--tooltip-->
@@ -1564,6 +1569,17 @@
}); });
} }
}, },
copyExpression(index) {
this.selection.pen.data.expressArr.push(this.selection.pen.data.expressArr[index]);
this.selection.pen.data.legends.push(this.selection.pen.data.legends[index]);
this.$nextTick(() => {
this.expressions.forEach((ex, index) => {
if (ex) {
this.$refs[`promql-${index}`][0].metricChange(ex);
}
});
});
},
valueMappingAdd(){ valueMappingAdd(){
if(this.selection.pen.data.valueMappingSort==='desc'){ if(this.selection.pen.data.valueMappingSort==='desc'){
this.selection.pen.data.valueMapping.push({ this.selection.pen.data.valueMapping.push({
@@ -1835,8 +1851,12 @@
width: calc(100% - 120px); width: calc(100% - 120px);
padding: 20px 20px 20px 0; padding: 20px 20px 20px 0;
} }
.form-row-item .nz-icon-minus-position .nz-icon-minus-medium {
.form-row-item .nz-icon-minus-position { background: rgba(236, 127, 102, 0.1);
padding: 2px 6px;
color: #EC7F66;
}
/*.form-row-item .nz-icon-minus-position {
position: absolute; position: absolute;
top: 50%; top: 50%;
right: -55px; right: -55px;
@@ -1849,7 +1869,7 @@
.nz-icon-minus { .nz-icon-minus {
color: #EC7F66; color: #EC7F66;
} }
} }*/
.tooltip-box { .tooltip-box {
padding-left: 10px; padding-left: 10px;

View File

@@ -334,9 +334,14 @@
<el-input size="small" type="text" v-model="legends[index-1]" ></el-input> <el-input size="small" type="text" v-model="legends[index-1]" ></el-input>
</el-col> </el-col>
</el-row> </el-row>
<span class="nz-icon-minus-medium nz-icon-minus-position"> <div class="nz-icon-minus-position">
<i class="nz-icon nz-icon-minus" @click="removeExpression(index - 1)"></i> <span class="nz-icon-minus-medium">
<i @click="removeExpression(index - 1)" class="nz-icon nz-icon-minus"></i>
</span> </span>
<span class="nz-icon-copy" v-if="!isSingleStat">
<i @click="copyExpression(index - 1)" class="nz-icon nz-icon-override"></i>
</span>
</div>
</el-row> </el-row>
</div> </div>
<!--value mapping start--> <!--value mapping start-->
@@ -739,6 +744,20 @@
}); });
} }
}, },
copyExpression(index) {
this.expressions.push(this.expressions[index]);
this.legends.push(this.legends[index]);
this.promqlKeys.push(getUUID());
this.elementIds.push("");
this.promqlCount++;
this.$nextTick(() => {
this.expressions.forEach((ex, index) => {
if (ex) {
this.$refs[`promql-${index}`][0].metricChange(ex);
}
});
});
},
save() { save() {
this.$refs['chartForm'].validate((valid) => { this.$refs['chartForm'].validate((valid) => {
if (valid) { if (valid) {