123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855 |
- <template>
- <div class="app-container">
- <el-tabs v-model="activeName" @tab-click="tabClick">
- <el-tab-pane label="总览" name="summery">
- <div class="First">
- <div class="time-range-buttons">
- <el-button :class="{ 'is-active': selectedTimeRange === 'day' }"
- @click="changeTimeRange('day')">今日</el-button>
- <el-button :class="{ 'is-active': selectedTimeRange === 'month' }"
- @click="changeTimeRange('month')">本月</el-button>
- <el-button :class="{ 'is-active': selectedTimeRange === 'year' }"
- @click="changeTimeRange('year')">本年</el-button>
- </div>
- <div class="first-content">
- <div>
- <SubTitle title="能耗统计" />
- <!-- 图表容器 -->
- <div ref="sumBySubCategoryChart" style="height: 380px;" />
- </div>
- <div>
- <SubTitle title="能耗总览" />
- <el-table border stripe show-summary :data="tableData" style="width: 100%;margin-top: 20px;">
- <el-table-column prop="name" align="center" label="设施名称">
- </el-table-column>
- <el-table-column prop="value" align="center" label="能耗(kW·h)">
- </el-table-column>
- </el-table>
- </div>
- </div>
- </div>
- <div>
- <div class="ctl-container">
- <SubTitle title="平均功率-15分钟" />
- <el-date-picker v-model="powerDate" type="datetimerange" @change="getPowerChart"
- :picker-options="pickerOptions" value-format="yyyy-MM-dd hh:mm:ss" range-separator="至"
- start-placeholder="开始日期" end-placeholder="结束日期" align="right">
- </el-date-picker>
- </div>
- <!--柱状图-->
- <div class="container-block" style="margin-top: 20px;">
- <BaseChart width="100%" height="350px" :option="powerLineOptions" />
- </div>
- </div>
- </el-tab-pane>
- <el-tab-pane v-for="item in facsCategoryOptions" :key="item.code" :label="item.name" :name="item.code">
- <el-col :span="4" :xs="24">
- <div class="head-container">
- <el-input v-model="areaName" placeholder="请输入区域名称" clearable size="small" prefix-icon="el-icon-search"
- style="margin-bottom: 20px" />
- </div>
- <div class="head-container" style="height: 100vh; overflow: hidden; position: relative;">
- <el-tree :data="areaOptions" :props="defaultProps" :expand-on-click-node="false"
- :filter-node-method="filterNode" ref="tree" node-key="id" default-expand-all highlight-current
- @node-click="handleNodeClick" style="height: calc(100vh - 50px); overflow-y: auto;" />
- </div>
- </el-col>
- <el-col :span="20" :xs="24">
- <div class="container-block">
- <div class="ctl-container">
- <SubTitle :title="`设施汇总电耗【${selectedLabel}】`" />
- <div>
- <el-select v-model="objCode" placeholder="选择设施" clearable @visible-change="handleObjSelectClick"
- @change="getList">
- <el-option v-for="item in objOptions" :label="item.facsName" :value="item.facsCode"
- :key="item.facsCode" />
- </el-select>
- <el-date-picker v-model="dateRange" type="datetimerange" @change="getList"
- :picker-options="pickerOptions" value-format="yyyy-MM-dd hh:mm:ss" range-separator="至"
- start-placeholder="开始日期" end-placeholder="结束日期" :clearable="false" align="right">
- </el-date-picker>
- </div>
- </div>
- <!-- 表格 -->
- <el-table v-loading="loading" :data="sumByFacsList" style="width: 100%; margin-top: 10px">
- <el-table-column label="设施编码" align="center" prop="objCode">
- <template slot-scope="scope">
- <span>{{ scope.row.objCode }}</span>
- </template>
- </el-table-column>
- <el-table-column label="设施名称" align="center" prop="objName">
- <template slot-scope="scope">
- <span>{{ scope.row.objName }}</span>
- </template>
- </el-table-column>
- <el-table-column label="用电量(kW·h)" align="center" prop="elecQuantity">
- <template slot-scope="scope">
- <span>{{ scope.row.elecQuantity }}</span>
- </template>
- </el-table-column>
- </el-table>
- <SubTitle title="设施时段电耗" style="margin-top: 20px;" />
- <!--柱状图-->
- <div class="container-block" style="margin-top: 20px;">
- <BaseChart width="100%" height="300px" :option="barChartOptions" />
- </div>
- <div>
- <div class="ctl-container">
- <SubTitle title="平均功率-15分钟" />
- </div>
- <!--柱状图-->
- <div class="container-block" style="margin-top: 20px;">
- <BaseChart width="100%" height="350px" v-if="activeName !== 'summery'"
- :option="equipPowerLineOptions" />
- </div>
- </div>
- </div>
- </el-col>
- </el-tab-pane>
- </el-tabs>
- </div>
- </template>
- <script>
- import * as echarts from 'echarts/core';
- import {listHSum, sumByFacsH, sumBySubCategoryH, getPowerData, getPowerMaxLoad} from '@/api/mgr/elecUseH'
- import {getFacsCategorygetByCode} from '@/api/basecfg/emsfacs'
- import {areaTreeByFacsCategory} from '@/api/basecfg/area'
- import {listAllFacs} from '@/api/basecfg/emsfacs'
- import dayjs from 'dayjs'
- import {DateTool} from '@/utils/DateTool'
- import {dateFormat} from '@/utils';
- import BaseChart from '@/components/BaseChart/index.vue'
- import SubTitle from '@/components/SubTitle'
- import Block from '@/components/Block/block.vue'
- import Treeselect from '@riophae/vue-treeselect'
- import '@riophae/vue-treeselect/dist/vue-treeselect.css'
- export default {
- name: 'PowerUse',
- components: {
- Treeselect,
- BaseChart,
- Block,
- SubTitle
- },
- data () {
- const today = dateFormat(new Date(), 'yyyy-MM-dd')
- return {
- activeName: 'summery',
- // 遮罩层
- loading: true,
- // 选中数组
- ids: [],
- // 非单个禁用
- single: true,
- // 非多个禁用
- multiple: true,
- // 显示搜索条件
- showSearch: true,
- // 总条数
- total: 0,
- // 用能计量-小时表格数据
- hList: [],
- //查能耗
- sumByFacsList: [],
- // 弹出层标题
- title: '',
- // 是否显示弹出层
- open: false,
- facsCategory: undefined,
- facsSubCategory: undefined,
- // 区域名称
- areaName: undefined,
- selectedLabel: '全部',
- defaultProps: {
- children: 'children',
- label: 'label'
- },
- areaOptions: [],
- facsCategoryOptions: [],
- sumBySubCategoryChartOption: {},
- // 存储图表配置的变量
- selectedTimeRange: 'day',
- chartInstance: null,
- // 用于存储 ECharts 实例
- totalElecQuantity: 0,
- objOptions: [],
- objCode: undefined,
- dateRange: [dayjs().format(DateTool.DateFormat.YYYY_MM_DD_00_00_00), dayjs().format(DateTool.DateFormat.YYYY_MM_DD_23_59_59)],
- pickerOptions: {
- shortcuts: [
- {
- text: '最近一周',
- onClick (picker) {
- const end = new Date()
- const start = new Date()
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
- picker.$emit('pick', [start, end])
- }
- }, {
- text: '最近一个月',
- onClick (picker) {
- const end = new Date()
- const start = new Date()
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
- picker.$emit('pick', [start, end])
- }
- }, {
- text: '最近三个月',
- onClick (picker) {
- const end = new Date()
- const start = new Date()
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
- picker.$emit('pick', [start, end])
- }
- }
- ]
- },
- // 查询参数
- queryParams: {
- pageNum: 1,
- pageSize: 10,
- areaCode: '-1',
- objType: 2,
- objCode: null,
- facsCategory: 'Z',
- facsSubCategory: null,
- date: null,
- time: null,
- timeIndex: null
- },
- queryObjParams: {
- refArea: null,
- facsCategory: null,
- subCategory: null
- },
- // 表单参数
- form: {},
- tableData: [],
- powerDate: [`${today} 00:00:00`, `${today} 23:59:59`],
- powerChartData: [],
- powerMaxLoad: '',
- equipPowerChartData: [],
- equipPowerMaxLoad: ''
- }
- },
- watch: {
- // 根据名称筛选区域树
- areaName (val) {
- this.$refs.tree.filter(val)
- }
- },
- created () {
- this.facsCategory = 'Z'
- this.facsSubCategory = ''
- this.getFacsCategory(this.facsCategory)
- this.getAreaTree(this.facsCategory, this.facsSubCategory)
- this.getList()
- this.getsumByFacsH()
- this.getSumBySubCategoryH();
- this.getPowerChart()
- },
- computed: {
- barChartOptions () {
- const xAxisData = this.hList.map(item => item.time);
- const seriesData = this.hList.map(item => item.elecQuantity);
- return {
- toolbox: {
- itemGap: 10,
- itemSize: 16,
- right: 10,
- top: 0,
- show: true,
- feature: {
- magicType: {
- show: true,
- type: ['bar', 'line']
- },
- saveAsImage: {
- show: true
- }
- }
- },
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- },
- formatter: (params) => {
- var relVal = params[0].name
- for (var i = 0, l = params.length; i < l; i++) {
- relVal =
- relVal +
- '<br/>' +
- params[i].marker +
- params[i].seriesName +
- ' ' +
- params[i].value +
- 'kW·h'
- }
- return relVal
- }
- },
- legend: {
- data: ['用电量']
- },
- xAxis: {
- type: 'category',
- data: xAxisData
- },
- yAxis: {
- name: 'kW·h(千瓦时)',
- type: 'value',
- },
- series: [{
- name: '用电量',
- type: 'bar',
- data: seriesData,
- barWidth: 20,
- itemStyle: {
- normal: {
- color: '#6395FA'
- }
- }
- }]
- };
- },
- powerLineOptions () {
- const xAxisData = this.powerChartData.map(item => `${item.date.substr(5)} ${item.time.substr(0, 5)} `);
- const yData1 = this.powerChartData.map(item => parseFloat(item.s).toFixed(2));
- const yData2 = this.powerChartData.map(item => item.p);
- const yData3 = this.powerChartData.map(item => item.q);
- return {
- toolbox: {
- itemGap: 10,
- itemSize: 16,
- right: 10,
- top: 0,
- show: true,
- feature: {
- magicType: {
- show: true,
- type: ['bar', 'line']
- },
- saveAsImage: {
- show: true
- }
- }
- },
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- },
- formatter: (params) => {
- var relVal = params[0].name
- for (var i = 0, l = params.length; i < l; i++) {
- relVal =
- relVal +
- '<br/>' +
- params[i].marker +
- params[i].seriesName +
- ' ' +
- params[i].value +
- 'kW'
- }
- return relVal
- }
- },
- xAxis: {
- type: 'category',
- data: xAxisData
- },
- yAxis: {
- name: 'kW(千瓦)',
- type: 'value',
- },
- legend: {},
- dataZoom: [
- {
- type: "slider",
- start: 0,
- end: 100,
- height: 10,
- bottom: '10%',
- showDetail: false,
- showDataShadow: false,
- borderColor: "transparent"
- },
- {
- type: "inside",
- start: 0,
- end: 100,
- },
- ],
- series: [{
- name: '视在功率',
- type: 'line',
- data: yData1,
- markLine: {
- symbol: 'none',
- silent: true,
- lineStyle: {normal: {type: 'dashed'}},
- label: {position: 'end'},
- data: [
- {
- yAxis: this.powerMaxLoad,
- lineStyle: {width: 1.656, color: '#ff6367'},
- label: {
- show: true,
- textStyle: {
- color: '#ff6367'
- }
- }
- },
- ]
- },
- markPoint: {
- silent: true,
- data: [
- {
- yAxis: this.powerMaxLoad,
- x: '100%',
- symbolSize: 0.1,
- symbolOffset: [0, 0],
- label: {
- textStyle: {color: '#ff6367'},
- fontSize: 12,
- position: 'left',
- formatter: '最高负荷'
- }
- },
- ]
- },
- },
- {
- name: '有功功率',
- type: 'line',
- data: yData2,
- },
- {
- name: '无功功率',
- type: 'line',
- data: yData3,
- },
- ]
- };
- },
- equipPowerLineOptions () {
- const xAxisData = this.equipPowerChartData.map(item => `${item.date.substr(5)} ${item.time.substr(0, 5)} `);
- const yData1 = this.equipPowerChartData.map(item => parseFloat(item.s).toFixed(2));
- const yData2 = this.equipPowerChartData.map(item => item.p);
- const yData3 = this.equipPowerChartData.map(item => item.q);
- return {
- toolbox: {
- itemGap: 10,
- itemSize: 16,
- right: 10,
- top: 0,
- show: true,
- feature: {
- magicType: {
- show: true,
- type: ['bar', 'line']
- },
- saveAsImage: {
- show: true
- }
- }
- },
- legend: {},
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- },
- formatter: (params) => {
- var relVal = params[0].name
- for (var i = 0, l = params.length; i < l; i++) {
- relVal =
- relVal +
- '<br/>' +
- params[i].marker +
- params[i].seriesName +
- ' ' +
- params[i].value +
- 'kW'
- }
- return relVal
- }
- },
- xAxis: {
- type: 'category',
- data: xAxisData
- },
- yAxis: {
- name: 'kW(千瓦)',
- type: 'value',
- },
- dataZoom: [
- {
- type: "slider",
- start: 0,
- end: 100,
- height: 10,
- bottom: '10%',
- showDetail: false,
- showDataShadow: false,
- borderColor: "transparent"
- },
- {
- type: "inside",
- start: 0,
- end: 100,
- },
- ],
- series: [{
- name: '视在功率',
- type: 'line',
- data: yData1,
- markLine: {
- symbol: 'none',
- silent: true,
- lineStyle: {normal: {type: 'dashed'}},
- label: {position: 'end'},
- data: [
- {
- yAxis: this.equipPowerMaxLoad,
- lineStyle: {width: 1.656, color: '#ff6367'},
- label: {
- show: true,
- textStyle: {
- color: '#ff6367'
- }
- }
- },
- ]
- },
- markPoint: {
- silent: true,
- data: [
- {
- yAxis: this.equipPowerMaxLoad,
- x: '100%',
- symbolSize: 0.1,
- symbolOffset: [0, 0],
- label: {
- textStyle: {color: '#ff6367'},
- fontSize: 12,
- position: 'left',
- formatter: '最高负荷'
- }
- },
- ]
- },
- },
- {
- name: '有功功率',
- type: 'line',
- data: yData2,
- },
- {
- name: '无功功率',
- type: 'line',
- data: yData3,
- },
- ]
- };
- }
- },
- methods: {
- getPowerChart () {
- this.powerMaxLoad = ''
- this.powerChartData = []
- const [startTime, endTime] = this.powerDate
- const params = {
- startTime,
- endTime,
- areaCode: '-1',
- objType: '2',
- }
- getPowerData({
- ...params,
- pageNum: 1,
- pageSize: 999
- }).then(({code, rows}) => {
- if (code === 200) {
- this.powerChartData = rows
- }
- })
- getPowerMaxLoad(params).then(({code, data}) => {
- if (code === 200 && data) {
- this.powerMaxLoad = parseFloat(data.s).toFixed(2)
- }
- })
- },
- getEquipPowerChart () {
- this.equipPowerMaxLoad = ''
- this.equipPowerChartData = []
- const [startTime, endTime] = this.dateRange
- const params = {
- startTime,
- endTime,
- areaCode: '-1',
- objType: '2',
- facsCategory: 'Z',
- facsSubCategory: this.activeName,
- objCode: this.objCode
- }
- getPowerData({
- ...params,
- pageNum: 1,
- pageSize: 999
- }).then(({code, rows}) => {
- if (code === 200) {
- this.equipPowerChartData = rows
- }
- })
- getPowerMaxLoad(params).then(({code, data}) => {
- if (code === 200) {
- this.equipPowerMaxLoad = parseFloat(data).toFixed(2)
- }
- })
- },
- /** 查询用能计量-小时列表 */
- getList () {
- this.loading = true
- this.queryParams.objCode = this.objCode
- listHSum(this.queryParams).then(response => {
- this.hList = response.rows
- this.total = response.total
- this.loading = false
- })
- this.getsumByFacsH()
- this.getEquipPowerChart()
- },
- /**根据设施查询能耗统计 */
- getsumByFacsH () {
- const params = {
- startRecTime: dayjs(this.dateRange[0]).format('YYYY-MM-DD HH:mm:ss'),
- endRecTime: dayjs(this.dateRange[1]).format('YYYY-MM-DD HH:mm:ss'),
- areaCode: this.queryParams.areaCode,
- facsSubCategory: this.activeName,
- objCode: this.queryParams.objCode
- };
- sumByFacsH(params).then(response => {
- this.sumByFacsList = response.data
- })
- },
- /**时间范围切换按钮点击事件处理器*/
- changeTimeRange (rangeType) {
- this.selectedTimeRange = rangeType;
- let start = dayjs();
- let end = dayjs();
- if (rangeType === 'day') {
- // 日:当前日期的 00:00:00 到 23:59:59
- start = start.startOf('day');
- end = end.endOf('day');
- } else if (rangeType === 'month') {
- // 月:当前月份的第一天 00:00:00 到 最后一天 23:59:59
- start = start.date(1).hour(0).minute(0).second(0);
- end = end.endOf('month').hour(23).minute(59).second(59);
- } else if (rangeType === 'year') {
- // 年:当前年份的第一天 00:00:00 到 最后一天 23:59:59
- start = start.startOf('year');
- end = end.endOf('year').hour(23).minute(59).second(59);
- }
- this.dateRange = [start.format('YYYY-MM-DD HH:mm:ss'), end.format('YYYY-MM-DD HH:mm:ss')];
- this.getSumBySubCategoryH(); // 重新获取数据
- },
- /**总览饼图*/
- getSumBySubCategoryH () {
- const params = {
- startRecTime: dayjs(this.dateRange[0]).format('YYYY-MM-DD HH:mm:ss'),
- endRecTime: dayjs(this.dateRange[1]).format('YYYY-MM-DD HH:mm:ss'),
- areaCode: this.queryParams.areaCode,
- };
- sumBySubCategoryH(params).then(response => {
- this.processDataForChart(response.data); // 处理数据并生成图表配置
- console.log("pie图", response.data)
- this.tableData = response.data.map(item => ({
- name: item.objName,
- value: item.elecQuantity || 0
- }))
- })
- },
- processDataForChart (data) {
- this.totalElecQuantity = data.reduce((sum, item) => sum + (item.elecQuantity || 0), 0);
- // 处理数据,生成图表配置
- const seriesData = data.map(item => ({
- name: item.objName,
- value: item.elecQuantity,
- percent: ((item.elecQuantity || 0) / this.totalElecQuantity * 100).toFixed(2),
- subentry: item.subentry.map(subItem => ({
- name: subItem.objName,
- value: subItem.elecQuantity
- }))
- }));
- // 设置图表配置
- this.sumBySubCategoryChartOption = {
- tooltip: {
- trigger: 'item',
- formatter: function (params) {
- const {name, value, percent} = params;
- const subentries = params.data.subentry;
- let tooltipContent = `<div><h4>${name}</h4><p>${value}kW·h (${percent}%)</p><ul>`;
- subentries.forEach(subItem => {
- tooltipContent += `<li>${subItem.name}: ${subItem.value} kW·h</li>`;
- });
- tooltipContent += `</ul></div>`;
- return tooltipContent;
- }
- },
- legend: {
- orient: 'vertical',
- top: '5%',
- left: '5%'
- },
- series: [
- {
- name: '能耗',
- type: 'pie',
- radius: ['35%', '55%'],
- data: seriesData,
- emphasis: {
- itemStyle: {
- shadowBlur: 10,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 0, 0, 0.5)',
- }
- },
- label: {
- show: true,
- position: 'outside',
- formatter: '{b}\n{d}%',
- },
- labelLine: {
- show: true,
- length: 30, // 标签线长度
- lineStyle: {
- width: 1,
- type: 'dashed', // 设置虚线样式
- }
- }
- }
- ]
- };
- // 渲染图表
- this.$nextTick(() => {
- const chart = echarts.init(this.$refs.sumBySubCategoryChart);
- chart.setOption(this.sumBySubCategoryChartOption);
- });
- },
- async getFacsCategory (code) {
- getFacsCategorygetByCode(code).then(response => {
- this.facsCategoryOptions = response.data.subtypeList
- })
- },
- async getAreaTree (category, subCategory) {
- await areaTreeByFacsCategory(category, subCategory, false).then(response => {
- this.areaOptions = [{
- id: '-1',
- label: '全部',
- children: []
- }].concat(response.data)
- })
- },
- async getFacsObj (areaCode, category, subCategory) {
- this.queryObjParams.refArea = areaCode
- this.queryObjParams.facsCategory = category
- this.queryObjParams.subCategory = subCategory
- listAllFacs(this.queryObjParams).then(response => {
- this.objOptions = response.data
- })
- },
- tabClick () {
- this.reset()
- if (this.activeName !== 'summery') {
- this.dateRange = [dayjs().format(DateTool.DateFormat.YYYY_MM_DD_00_00_00), dayjs().format(DateTool.DateFormat.YYYY_MM_DD_23_59_59)]
- this.queryParams.facsCategory = this.facsCategory
- this.queryParams.facsSubCategory = this.activeName
- this.queryParams.pageNum = 1
- this.selectedLabel = '全部'
- this.getList()
- } else {
- }
- },
- /** 搜索按钮操作 */
- handleQuery () {
- this.queryParams.pageNum = 1
- this.getList()
- },
- handleObjSelectClick () {
- this.getFacsObj(this.queryParams.areaCode, this.facsCategory, this.activeName)
- this.getsumByFacsH();
- },
- // 筛选节点
- filterNode (value, data) {
- if (!value) return true
- return data.label.indexOf(value) !== -1
- },
- // 节点单击事件
- handleNodeClick (data) {
- this.queryParams.areaCode = data.id
- this.selectedLabel = data.label
- this.objCode = null
- this.handleQuery()
- },
- reset () {
- this.objCode = null
- this.queryParams.areaCode = '-1'
- this.queryParams.facsCategory = 'Z'
- this.queryParams.facsSubCategory = null
- this.queryParams.objCode = null
- this.objOptions = []
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .time-range-buttons {
- .is-active {
- background-color: #409eff;
- color: white;
- }
- }
- .first-content {
- display: flex;
- margin-top: 20px;
- >div:first-child {
- flex: 3;
- }
- >div:last-child {
- flex: 2;
- }
- }
- .container-block {
- padding-left: 20px;
- }
- .ctl-container {
- display: flex;
- justify-content: space-between;
- }
- </style>
- }
|