|
@@ -38,7 +38,7 @@
|
|
|
>
|
|
|
<template slot-scope="{row}">
|
|
|
<el-button @click="handleClick(row)" type="primary" plain size="mini">编辑</el-button>
|
|
|
- <el-button type="danger" plain size="mini">删除</el-button>
|
|
|
+ <el-button @click="handleDeleteClick(row)" type="danger" plain size="mini">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -73,21 +73,24 @@
|
|
|
|
|
|
</el-form>
|
|
|
<div class="mode-table">
|
|
|
- <div class="flex model-table-tr">
|
|
|
- <span class="pa-0 td td0"></span>
|
|
|
- <span class="pa-0 td td1 font-bold">是否开启</span>
|
|
|
- <span class="pa-0 td2 font-bold">参数</span>
|
|
|
+ <div class="mode-table-thead">
|
|
|
+ <div class="flex model-table-tr">
|
|
|
+ <span class="pa-0 td td0"></span>
|
|
|
+ <span class="pa-0 td td1 font-bold">是否开启</span>
|
|
|
+ <span class="pa-0 td2 font-bold">参数</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <!-- 数据获取 -->
|
|
|
- <div class="flex model-table-tr">
|
|
|
- <span class="pa-0 td td0">数据获取</span>
|
|
|
- <span class="pa-0 td td1">
|
|
|
+ <div class="mode-table-body">
|
|
|
+ <!-- 数据获取 -->
|
|
|
+ <div class="flex model-table-tr">
|
|
|
+ <span class="pa-0 td td0">数据获取</span>
|
|
|
+ <span class="pa-0 td td1">
|
|
|
<el-radio-group v-model="formData.dataAcquisition.isEnable" size="mini">
|
|
|
<el-radio-button :label="true">开启</el-radio-button>
|
|
|
<el-radio-button :label="false">关闭</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
</span>
|
|
|
- <span class="pa-0 td2">
|
|
|
+ <span class="pa-0 td2">
|
|
|
<div class="form-table-item">
|
|
|
<el-form ref="ruleForm" :rules="dataAcquisitionRules" :model="formData.dataAcquisition.params"
|
|
|
class="demo-form-inline"
|
|
@@ -115,27 +118,28 @@
|
|
|
</el-form>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- <!-- 数据处理 -->
|
|
|
- <div class="flex model-table-tr">
|
|
|
- <span class="pa-0 td td0">数据处理</span>
|
|
|
- <span class="pa-0 td td1">
|
|
|
+ </div>
|
|
|
+ <!-- 数据处理 -->
|
|
|
+ <div class="flex model-table-tr">
|
|
|
+ <span class="pa-0 td td0">数据处理</span>
|
|
|
+ <span class="pa-0 td td1">
|
|
|
<el-radio-group v-model="formData.dataCleaning.isEnable" size="mini">
|
|
|
<el-radio-button :label="true">开启</el-radio-button>
|
|
|
<el-radio-button :label="false">关闭</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
</span>
|
|
|
- <span class="pa-0 td2">
|
|
|
+ <span class="pa-0 td2">
|
|
|
<div class="form-table-item">
|
|
|
<data-clean-form ref="dataCleaning" :form-data="formData.dataCleaning"
|
|
|
@child-event="getDataCleaning"></data-clean-form>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- <!-- 限电 -->
|
|
|
- <div class="flex model-table-tr">
|
|
|
+ </div>
|
|
|
+ <!-- 限电 -->
|
|
|
+ <div class="flex model-table-tr">
|
|
|
<span class="pa-0 td td0">
|
|
|
- <el-select v-model="formData.powerRationing.componentType" @change="powerRationingNameChange" placeholder="请选择"
|
|
|
+ <el-select v-model="formData.powerRationing.componentType" @change="powerRationingNameChange"
|
|
|
+ placeholder="请选择"
|
|
|
size="small" style="width: 100%">
|
|
|
<el-option
|
|
|
v-for="item in powerRationingName"
|
|
@@ -145,23 +149,24 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</span>
|
|
|
- <span class="pa-0 td td1">
|
|
|
+ <span class="pa-0 td td1">
|
|
|
<el-radio-group v-model="formData.powerRationing.isEnable" size="mini">
|
|
|
<el-radio-button :label="true">开启</el-radio-button>
|
|
|
<el-radio-button :label="false">关闭</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
</span>
|
|
|
- <span class="pa-0 td2">
|
|
|
+ <span class="pa-0 td2">
|
|
|
<div class="form-table-item">
|
|
|
<power-rationing-form ref="powerRationing" :form-data="formData.powerRationing"
|
|
|
@child-event="getPowerRationing"></power-rationing-form>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- <!-- 模型 -->
|
|
|
- <div class="flex model-table-tr">
|
|
|
+ </div>
|
|
|
+ <!-- 模型 -->
|
|
|
+ <div class="flex model-table-tr">
|
|
|
<span class="pa-0 td td0">
|
|
|
- <el-select v-model="formData.model.componentType" @change="isDisableModeTest" placeholder="请选择" size="small"
|
|
|
+ <el-select v-model="formData.model.componentType" @change="isDisableModeTest" placeholder="请选择"
|
|
|
+ size="small"
|
|
|
style="width: 100%">
|
|
|
<el-option
|
|
|
v-for="item in modelName"
|
|
@@ -171,67 +176,69 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</span>
|
|
|
- <span class="pa-0 td td1">
|
|
|
+ <span class="pa-0 td td1">
|
|
|
<el-radio-group v-model="formData.model.isEnable" size="mini">
|
|
|
<el-radio-button :label="true">开启</el-radio-button>
|
|
|
<el-radio-button :label="false" disabled>关闭</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
</span>
|
|
|
- <span class="pa-0 td2">
|
|
|
+ <span class="pa-0 td2">
|
|
|
<div class="form-table-item">
|
|
|
<model-form ref="model" :form-data="formData.model" @child-event="getModel"></model-form>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- <!-- 模型测试 -->
|
|
|
- <div class="flex model-table-tr" v-if="!modelTestDisable">
|
|
|
- <span class="pa-0 td td0">{{ formData.modelTest.componentType }}</span>
|
|
|
- <span class="pa-0 td td1">
|
|
|
+ </div>
|
|
|
+ <!-- 模型测试 -->
|
|
|
+ <div class="flex model-table-tr" v-if="!modelTestDisable">
|
|
|
+ <span class="pa-0 td td0">{{ formData.modelTest.componentType }}</span>
|
|
|
+ <span class="pa-0 td td1">
|
|
|
<el-radio-group v-model="formData.modelTest.isEnable" size="mini">
|
|
|
<el-radio-button :label="true" :disabled="modelTestDisable">开启</el-radio-button>
|
|
|
<el-radio-button :label="false" disabled>关闭</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
</span>
|
|
|
- <span class="pa-0 td2">
|
|
|
+ <span class="pa-0 td2">
|
|
|
<div class="form-table-item">
|
|
|
<model-test-form ref="modelTest" :form-data="formData.modelTest"
|
|
|
@child-event="getModelTest"></model-test-form>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- <!-- 后处理 -->
|
|
|
- <div class="flex model-table-tr">
|
|
|
- <span class="pa-0 td td0">后处理</span>
|
|
|
- <span class="pa-0 td td1">
|
|
|
+ </div>
|
|
|
+ <!-- 后处理 -->
|
|
|
+ <div class="flex model-table-tr">
|
|
|
+ <span class="pa-0 td td0">后处理</span>
|
|
|
+ <span class="pa-0 td td1">
|
|
|
<el-radio-group v-model="formData.processing.isEnable" size="mini">
|
|
|
<el-radio-button :label="true">开启</el-radio-button>
|
|
|
<el-radio-button :label="false">关闭</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
</span>
|
|
|
- <span class="pa-0 td2">
|
|
|
+ <span class="pa-0 td2">
|
|
|
<div class="form-table-item">
|
|
|
<processing-form ref="processing" :form-data="formData.processing"
|
|
|
@child-event="getProcessing"></processing-form>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
- <!-- 分析报告 -->
|
|
|
- <div class="flex model-table-tr">
|
|
|
- <span class="pa-0 td td0">分析报告</span>
|
|
|
- <span class="pa-0 td td1">
|
|
|
+ </div>
|
|
|
+ <!-- 分析报告 -->
|
|
|
+ <div class="flex model-table-tr">
|
|
|
+ <span class="pa-0 td td0">分析报告</span>
|
|
|
+ <span class="pa-0 td td1">
|
|
|
<el-radio-group v-model="formData.report.isEnable" size="mini">
|
|
|
<el-radio-button :label="true">开启</el-radio-button>
|
|
|
<el-radio-button :label="false">关闭</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
</span>
|
|
|
- <span class="pa-0 td2">
|
|
|
+ <span class="pa-0 td2">
|
|
|
<div class="form-table-item">
|
|
|
<report-form ref="report" :form-data="formData.report"
|
|
|
@child-event="getReport"></report-form>
|
|
|
</div>
|
|
|
</span>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
|
|
|
+ </div>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
@@ -244,7 +251,7 @@
|
|
|
title="运行信息"
|
|
|
:visible.sync="dialogInfoVisible"
|
|
|
width="30%"
|
|
|
- >
|
|
|
+ >
|
|
|
<div>
|
|
|
{{ info }}
|
|
|
</div>
|
|
@@ -261,7 +268,7 @@ import modelForm from './modelForm.vue'
|
|
|
import modelTestForm from './modelTestForm.vue'
|
|
|
import processingForm from './processingForm.vue'
|
|
|
import reportForm from './reportForm.vue'
|
|
|
-import {addTask, queryTasks} from "@/api/xvji/training";
|
|
|
+import {addTask, deleteId, queryTasks, updateTask} from "@/api/xvji/training";
|
|
|
|
|
|
export default {
|
|
|
components: {modelForm, modelTestForm, dataCleanForm, powerRationingForm, processingForm, reportForm},
|
|
@@ -270,13 +277,13 @@ export default {
|
|
|
loading: false,
|
|
|
tableData: [],
|
|
|
formData: {
|
|
|
- dataAcquisition: {componentType: '数据获取', isEnable: true, params:{}},
|
|
|
- dataCleaning: {componentType: '数据处理', isEnable: true, params:{}},
|
|
|
+ dataAcquisition: {componentType: '数据获取', isEnable: true, params: {}},
|
|
|
+ dataCleaning: {componentType: '数据处理', isEnable: true, params: {}},
|
|
|
powerRationing: {componentType: '限电清洗', isEnable: true, params: {}},
|
|
|
- model: {componentType: '模型', isEnable: true, params:{}},
|
|
|
- modelTest: {componentType: '模型测试', isEnable: true, params:{}},
|
|
|
- processing: {componentType: '后处理', isEnable: true, params:{}},
|
|
|
- report: {componentType: '分析报告', isEnable: true, params:{}},
|
|
|
+ model: {componentType: '模型', isEnable: true, params: {}},
|
|
|
+ modelTest: {componentType: '模型测试', isEnable: true, params: {}},
|
|
|
+ processing: {componentType: '后处理', isEnable: true, params: {}},
|
|
|
+ report: {componentType: '分析报告', isEnable: true, params: {}},
|
|
|
},
|
|
|
modelTestDisable: true,
|
|
|
// 总条数
|
|
@@ -325,8 +332,8 @@ export default {
|
|
|
{label: 'LSTM', value: 'LSTM'},
|
|
|
{label: '机器学习模型', value: '机器学习模型'}
|
|
|
],
|
|
|
- modelOption:['光伏物理模型', '风电物理模型','Holtwinters模型','LSTM','机器学习模型',],
|
|
|
- modelTestOption:['LSTM-测试','机器学习模型-测试',],
|
|
|
+ modelOption: ['光伏物理模型', '风电物理模型', 'Holtwinters模型', 'LSTM', '机器学习模型',],
|
|
|
+ modelTestOption: ['LSTM-测试', '机器学习模型-测试',],
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
@@ -335,12 +342,12 @@ export default {
|
|
|
methods: {
|
|
|
getList() {
|
|
|
this.loading = true
|
|
|
- queryTasks(this.queryParams).then(res=>{
|
|
|
+ queryTasks(this.queryParams).then(res => {
|
|
|
this.tableData = res.data.list
|
|
|
- console.log(this.tableData[0])
|
|
|
+ // console.log(this.tableData[0])
|
|
|
this.total = res.data.total
|
|
|
this.loading = false
|
|
|
- }).catch(err=>{
|
|
|
+ }).catch(err => {
|
|
|
this.loading = false
|
|
|
})
|
|
|
},
|
|
@@ -352,15 +359,15 @@ export default {
|
|
|
this.formData = {
|
|
|
tTaskName: '',
|
|
|
tCronExpression: '',
|
|
|
- dataAcquisition: {componentType: '数据获取', isEnable: true, params:{}},
|
|
|
- dataCleaning: {componentType: '数据处理', isEnable: true, params:{}},
|
|
|
- powerRationing: {componentType: '限电清洗-光伏', isEnable: true, params:{}},
|
|
|
- model: {componentType: '光伏物理模型', isEnable: true, params:{}},
|
|
|
- modelTest: {componentType: '模型测试', isEnable: true, params:{}},
|
|
|
- processing: {componentType: '后处理', isEnable: true, params:{}},
|
|
|
- report: {componentType: '分析报告', isEnable: true, params:{}},
|
|
|
+ dataAcquisition: {componentType: '数据获取', isEnable: true, params: {}},
|
|
|
+ dataCleaning: {componentType: '数据处理', isEnable: true, params: {}},
|
|
|
+ powerRationing: {componentType: '限电清洗-光伏', isEnable: true, params: {}},
|
|
|
+ model: {componentType: '光伏物理模型', isEnable: true, params: {}},
|
|
|
+ modelTest: {componentType: '模型测试', isEnable: true, params: {}},
|
|
|
+ processing: {componentType: '后处理', isEnable: true, params: {}},
|
|
|
+ report: {componentType: '分析报告', isEnable: true, params: {}},
|
|
|
}
|
|
|
- this.$nextTick(()=>{
|
|
|
+ this.$nextTick(() => {
|
|
|
this.powerRationingNameChange() // 无意义,限电清洗表单不渲染刷新操作
|
|
|
this.$refs.ruleForm.clearValidate()
|
|
|
})
|
|
@@ -369,26 +376,83 @@ export default {
|
|
|
handleClick(row) {
|
|
|
this.isEdit = true
|
|
|
this.formData = {
|
|
|
- tTaskId:row.ttaskId,
|
|
|
+ tTaskId: row.ttaskId,
|
|
|
tTaskName: row.ttaskName,
|
|
|
tTaskStatus: row.ttaskStatus,
|
|
|
- tAnalysisReport:row.tanalysisReport,
|
|
|
- tComponentIds:row.tcomponentIds,
|
|
|
- tCreateTime:row.tcreateTime,
|
|
|
- tCronExpression:row.tcronExpression,
|
|
|
- tQuartzTask:row.tquartzTask,
|
|
|
- tRunInfo:row.trunInfo,
|
|
|
- dataAcquisition: row.components.find(w=>w.componentType.includes('数据获取'))|| {componentType: '数据获取', isEnable: true, params:{}},
|
|
|
- dataCleaning: row.components.find(w=>w.componentType ==='数据处理')|| {componentType: '数据处理', isEnable: true, params:{}},
|
|
|
- powerRationing: row.components.find(w=>w.componentType.includes('限电清洗'))|| {componentType: '限电清洗-光伏', isEnable: true, params:{}},
|
|
|
- model: row.components.find(w=>this.modelOption.includes(w.componentType))|| {componentType: '光伏物理模型', isEnable: true, params:{}},
|
|
|
- modelTest: row.components.find(w=>this.modelTestOption.includes(w.componentType))|| {componentType: '模型测试', isEnable: true, params:{}},
|
|
|
- processing: row.components.find(w=>w.componentType ==='后处理') || {componentType: '后处理', isEnable: true, params:{}},
|
|
|
- report: row.components.find(w=>w.componentType ==='分析报告')|| {componentType: '分析报告', isEnable: true, params:{}},
|
|
|
+ tAnalysisReport: row.tanalysisReport,
|
|
|
+ tComponentIds: row.tcomponentIds,
|
|
|
+ tCreateTime: row.tcreateTime,
|
|
|
+ tCronExpression: row.tcronExpression,
|
|
|
+ tQuartzTask: row.tquartzTask,
|
|
|
+ tRunInfo: row.trunInfo,
|
|
|
+ dataAcquisition: row.components.find(w => w.componentType.includes('数据获取')) || {
|
|
|
+ componentType: '数据获取',
|
|
|
+ isEnable: true,
|
|
|
+ params: {}
|
|
|
+ },
|
|
|
+ dataCleaning: row.components.find(w => w.componentType === '数据处理') || {
|
|
|
+ componentType: '数据处理',
|
|
|
+ isEnable: true,
|
|
|
+ params: {}
|
|
|
+ },
|
|
|
+ powerRationing: row.components.find(w => w.componentType.includes('限电清洗')) || {
|
|
|
+ componentType: '限电清洗-光伏',
|
|
|
+ isEnable: true,
|
|
|
+ params: {}
|
|
|
+ },
|
|
|
+ model: row.components.find(w => this.modelOption.includes(w.componentType)) || {
|
|
|
+ componentType: '光伏物理模型',
|
|
|
+ isEnable: true,
|
|
|
+ params: {}
|
|
|
+ },
|
|
|
+ modelTest: row.components.find(w => this.modelTestOption.includes(w.componentType)) || {
|
|
|
+ componentType: '模型测试',
|
|
|
+ isEnable: true,
|
|
|
+ params: {}
|
|
|
+ },
|
|
|
+ processing: row.components.find(w => w.componentType === '后处理') || {
|
|
|
+ componentType: '后处理',
|
|
|
+ isEnable: true,
|
|
|
+ params: {}
|
|
|
+ },
|
|
|
+ report: row.components.find(w => w.componentType === '分析报告') || {
|
|
|
+ componentType: '分析报告',
|
|
|
+ isEnable: true,
|
|
|
+ params: {}
|
|
|
+ },
|
|
|
}
|
|
|
- console.log(this.formData,row.components)
|
|
|
+ // console.log(this.formData.powerRationing)
|
|
|
this.dialogVisible = true
|
|
|
},
|
|
|
+ //删除
|
|
|
+ handleDeleteClick(row) {
|
|
|
+ this.$confirm('此操作将永久删除' + row.ttaskName + '任务, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ deleteId(row.ttaskId).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.msg
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'danger',
|
|
|
+ message: res.msg
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.getList()
|
|
|
+ })
|
|
|
+
|
|
|
+ }).catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: 'info',
|
|
|
+ message: '已取消删除'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
//保存
|
|
|
saveTask() {
|
|
|
this.$refs.ruleForm.validate(async (valid) => {
|
|
@@ -410,7 +474,7 @@ export default {
|
|
|
if (JSON.stringify(this.formData.modelTest.params) === '{}') {
|
|
|
return false
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
this.formData.modelTest = {}
|
|
|
}
|
|
|
await this.$refs.processing.saveTask()
|
|
@@ -421,8 +485,36 @@ export default {
|
|
|
if (JSON.stringify(this.formData.report.params) === '{}') {
|
|
|
return false
|
|
|
}
|
|
|
- if(!this.isEdit){
|
|
|
- addTask(this.formData).then(res=>{
|
|
|
+ if (!this.isEdit) {
|
|
|
+ addTask(this.formData).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.msg
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'danger',
|
|
|
+ message: res.msg
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.getList()
|
|
|
+ this.dialogVisible = false
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ updateTask(this.formData).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.msg
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'danger',
|
|
|
+ message: res.msg
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.getList()
|
|
|
this.dialogVisible = false
|
|
|
})
|
|
|
}
|
|
@@ -462,21 +554,21 @@ export default {
|
|
|
if (!this.isEdit) {
|
|
|
if (this.formData.powerRationing.componentType.includes('光伏')) {
|
|
|
this.formData.powerRationing.params = {
|
|
|
- mongodb_database:'',
|
|
|
- mongodb_read_table:'',
|
|
|
- mongodb_write_table:'',
|
|
|
- col_power:'',
|
|
|
- col_radiance:'',
|
|
|
+ mongodb_database: '',
|
|
|
+ mongodb_read_table: '',
|
|
|
+ mongodb_write_table: '',
|
|
|
+ col_power: '',
|
|
|
+ col_radiance: '',
|
|
|
sigma: 1
|
|
|
}
|
|
|
} else {
|
|
|
this.formData.powerRationing.params = {
|
|
|
- mongodb_database:'',
|
|
|
- mongodb_read_table:'',
|
|
|
- mongodb_write_table:'',
|
|
|
- col_power:'',
|
|
|
- col_ws:'',
|
|
|
- cap:'',
|
|
|
+ mongodb_database: '',
|
|
|
+ mongodb_read_table: '',
|
|
|
+ mongodb_write_table: '',
|
|
|
+ col_power: '',
|
|
|
+ col_ws: '',
|
|
|
+ cap: '',
|
|
|
eps: 0.1,
|
|
|
min_samples: '20'
|
|
|
}
|
|
@@ -543,10 +635,32 @@ export default {
|
|
|
width: calc(100% - 350px);
|
|
|
}
|
|
|
|
|
|
-.mode-table .model-table-tr:last-child {
|
|
|
- border-bottom: 1px solid #ebeef5;
|
|
|
+.mode-table {
|
|
|
+ max-height: 63vh;
|
|
|
+ overflow-y: auto;
|
|
|
+ position: relative;
|
|
|
+ border-collapse: separate;
|
|
|
}
|
|
|
|
|
|
+.mode-table-thead {
|
|
|
+ position: sticky;
|
|
|
+ top: 0;
|
|
|
+ z-index: 1000000;
|
|
|
+ background-color: white;
|
|
|
+ &:first-child{
|
|
|
+ border-bottom: 1px solid #ebeef5;
|
|
|
+ }
|
|
|
+}
|
|
|
+.mode-table.mode-table-body .model-table-tr {
|
|
|
+ &:last-child{
|
|
|
+ border-bottom: 1px solid #ebeef5;
|
|
|
+ }
|
|
|
+}
|
|
|
+.mode-table .mode-table-body .model-table-tr{
|
|
|
+ &:first-child{
|
|
|
+ border-top: none;
|
|
|
+ }
|
|
|
+}
|
|
|
.model-table-tr {
|
|
|
width: 100%;
|
|
|
text-align: center;
|