NEZ-2052 feat:编辑页面column, value mapping支持调整顺序

This commit is contained in:
zyh
2022-07-26 11:37:33 +08:00
parent 999289a705
commit ddb889336e
2 changed files with 531 additions and 460 deletions

View File

@@ -482,6 +482,21 @@
<div class="form__sub-title"> <div class="form__sub-title">
<span>{{$t('dashboard.panel.chartForm.columns')}}</span> <span>{{$t('dashboard.panel.chartForm.columns')}}</span>
</div> </div>
<draggable
v-model="chartConfig.param.columns"
@end="change"
:scroll-sensitivity="150"
:options="{
dragClass:'drag-columns-class',
fallbackClass:'fallback-class',
forceFallback:true,
ghostClass:'chart-ghost',
chosenClass:'choose-class',
scroll:true,
filter: '.drag-disabled',
animation: 150,
handle: '.drag-sort'
}">
<div v-for="(item,index) in chartConfig.param.columns" :key="index" :class="item.error? 'is-item-box-error' : ''"> <div v-for="(item,index) in chartConfig.param.columns" :key="index" :class="item.error? 'is-item-box-error' : ''">
<div class="chart-title chart-title-config"> <div class="chart-title chart-title-config">
<span class="chart-title-content"> <span class="chart-title-content">
@@ -502,7 +517,7 @@
<span style="margin-right: 5px" class="nz-icon-minus-medium" :title="$t('overall.delete')"> <span style="margin-right: 5px" class="nz-icon-minus-medium" :title="$t('overall.delete')">
<i @click="removeColumns(index)" class="nz-icon nz-icon-minus"></i> <i @click="removeColumns(index)" class="nz-icon nz-icon-minus"></i>
</span> </span>
<span style="margin-right: 5px;fontSize:17px;cursor: pointer;" class="draggable-sort" :title="$t('dashboard.panel.chartForm.sort')"> <span style="margin-right: 5px;fontSize:17px;cursor: pointer;" class="drag-sort" :title="$t('dashboard.panel.chartForm.sort')">
<i class="el-icon-sort"></i> <i class="el-icon-sort"></i>
</span> </span>
</span> </span>
@@ -550,6 +565,7 @@
</el-row> </el-row>
</transition-group> </transition-group>
</div> </div>
</draggable>
<div @click="addColumns" class="thresholds-add"> <div @click="addColumns" class="thresholds-add">
{{$t('overall.addColumns')}} {{$t('overall.addColumns')}}
</div> </div>
@@ -567,6 +583,21 @@
</div> </div>
<transition name="el-zoom-in-top"> <transition name="el-zoom-in-top">
<el-row v-if="chartConfig.param.enable.valueMapping"> <el-row v-if="chartConfig.param.enable.valueMapping">
<draggable
v-model="chartConfig.param.valueMapping"
@end="change"
:scroll-sensitivity="150"
:options="{
dragClass:'drag-valueMapping-class',
fallbackClass:'fallback-class',
forceFallback:true,
ghostClass:'chart-ghost',
chosenClass:'choose-class',
scroll:true,
filter: '.drag-disabled',
animation: 150,
handle: '.drag-sort'
}">
<div <div
v-for="(item,index) in chartConfig.param.valueMapping" v-for="(item,index) in chartConfig.param.valueMapping"
:key="index" :key="index"
@@ -606,6 +637,9 @@
<span @click="removeMapping(index)" style="margin-right: 5px" :title="$t('overall.delete')"> <span @click="removeMapping(index)" style="margin-right: 5px" :title="$t('overall.delete')">
<i class="nz-icon nz-icon-minus"></i> <i class="nz-icon nz-icon-minus"></i>
</span> </span>
<span style="margin-right: 5px;fontSize:17px;cursor: pointer;" class="drag-sort" :title="$t('dashboard.panel.chartForm.sort')">
<i class="el-icon-sort"></i>
</span>
</span> </span>
</div> </div>
<transition-group appear tag="div" name="el-zoom-in-top"> <transition-group appear tag="div" name="el-zoom-in-top">
@@ -737,6 +771,7 @@
</el-row> </el-row>
</transition-group> </transition-group>
</div> </div>
</draggable>
<div @click="addMapping" class="thresholds-add"> <div @click="addMapping" class="thresholds-add">
{{$t('overall.addMapping')}} {{$t('overall.addMapping')}}
</div> </div>

View File

@@ -435,6 +435,21 @@
<div class="form__sub-title"> <div class="form__sub-title">
<span>{{$t('dashboard.panel.chartForm.columns')}}</span> <span>{{$t('dashboard.panel.chartForm.columns')}}</span>
</div> </div>
<draggable
v-model="chartConfig.param.columns"
@end="change"
:scroll-sensitivity="150"
:options="{
dragClass:'drag-columns-class',
fallbackClass:'fallback-class',
forceFallback:true,
ghostClass:'chart-ghost',
chosenClass:'choose-class',
scroll:true,
filter: '.drag-disabled',
animation: 150,
handle: '.drag-sort'
}">
<div v-for="(item,index) in chartConfig.param.columns" :key="index" :class="item.error? 'is-item-box-error' : ''"> <div v-for="(item,index) in chartConfig.param.columns" :key="index" :class="item.error? 'is-item-box-error' : ''">
<div class="chart-title chart-title-config"> <div class="chart-title chart-title-config">
<span class="chart-title-content"> <span class="chart-title-content">
@@ -455,7 +470,7 @@
<span style="margin-right: 5px" class="nz-icon-minus-medium" :title="$t('overall.delete')"> <span style="margin-right: 5px" class="nz-icon-minus-medium" :title="$t('overall.delete')">
<i @click="removeColumns(index)" class="nz-icon nz-icon-minus"></i> <i @click="removeColumns(index)" class="nz-icon nz-icon-minus"></i>
</span> </span>
<span style="margin-right: 5px;fontSize:17px;cursor: pointer;" class="draggable-sort" :title="$t('dashboard.panel.chartForm.sort')"> <span style="margin-right: 5px;fontSize:17px;cursor: pointer;" class="drag-sort" :title="$t('dashboard.panel.chartForm.sort')">
<i class="el-icon-sort"></i> <i class="el-icon-sort"></i>
</span> </span>
</span> </span>
@@ -503,6 +518,7 @@
</el-row> </el-row>
</transition-group> </transition-group>
</div> </div>
</draggable>
<div @click="addColumns" class="thresholds-add"> <div @click="addColumns" class="thresholds-add">
{{$t('overall.addColumns')}} {{$t('overall.addColumns')}}
</div> </div>
@@ -520,6 +536,21 @@
</div> </div>
<transition name="el-zoom-in-top"> <transition name="el-zoom-in-top">
<el-row v-if="chartConfig.param.enable.valueMapping"> <el-row v-if="chartConfig.param.enable.valueMapping">
<draggable
v-model="chartConfig.param.valueMapping"
@end="change"
:scroll-sensitivity="150"
:options="{
dragClass:'drag-valueMapping-class',
fallbackClass:'fallback-class',
forceFallback:true,
ghostClass:'chart-ghost',
chosenClass:'choose-class',
scroll:true,
filter: '.drag-disabled',
animation: 150,
handle: '.drag-sort'
}">
<div <div
v-for="(item,index) in chartConfig.param.valueMapping" v-for="(item,index) in chartConfig.param.valueMapping"
:key="index" :key="index"
@@ -559,6 +590,9 @@
<span @click="removeMapping(index)" style="margin-right: 5px" :title="$t('overall.delete')"> <span @click="removeMapping(index)" style="margin-right: 5px" :title="$t('overall.delete')">
<i class="nz-icon nz-icon-minus"></i> <i class="nz-icon nz-icon-minus"></i>
</span> </span>
<span style="margin-right: 5px;fontSize:17px;cursor: pointer;" class="drag-sort" :title="$t('dashboard.panel.chartForm.sort')">
<i class="el-icon-sort"></i>
</span>
</span> </span>
</div> </div>
<transition-group appear tag="div" name="el-zoom-in-top"> <transition-group appear tag="div" name="el-zoom-in-top">
@@ -691,6 +725,7 @@
</el-row> </el-row>
</transition-group> </transition-group>
</div> </div>
</draggable>
<div @click="addMapping" class="thresholds-add"> <div @click="addMapping" class="thresholds-add">
{{$t('overall.addMapping')}} {{$t('overall.addMapping')}}
</div> </div>
@@ -807,14 +842,15 @@ import nezhaColor from '@/components/common/nezhaColor'
import filterSearch from '@/components/common/filterSearch/filterSearch.vue' import filterSearch from '@/components/common/filterSearch/filterSearch.vue'
import VueTagsInput from '@johmun/vue-tags-input' import VueTagsInput from '@johmun/vue-tags-input'
import { isGauge } from '@/components/chart/chart/tools' import { isGauge } from '@/components/chart/chart/tools'
import draggable from 'vuedraggable'
export default { export default {
name: 'systemChartConfig', name: 'systemChartConfig',
mixins: [publicConfig, chartTypeShow], mixins: [publicConfig, chartTypeShow],
components: { components: {
nezhaColor, nezhaColor,
filterSearch, filterSearch,
VueTagsInput VueTagsInput,
draggable
}, },
data () { data () {
return { return {