Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
Conflicts:
src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue
src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue
| | |
| | | .el-button{ |
| | | |
| | | } |
| | | .hover-bottom:hover, |
| | | .active-button{ |
| | | border: 0.00521rem solid #fff700 !important; |
| | | box-shadow: 0 0 0.03rem #fff700 !important; |
| | |
| | | |
| | | } |
| | | |
| | | .el-picker-panel{ |
| | | background: @background-color; |
| | | border-color:@color; |
| | | color:@color; |
| | | .el-picker-panel__body-wrapper{ |
| | | background: @background-color; |
| | | } |
| | | .el-input__inner{ |
| | | background:@background-color; |
| | | border-color:@color; |
| | | } |
| | | .el-date-table td.today span{ |
| | | color:@color-highlight; |
| | | } |
| | | .el-picker-panel__footer{ |
| | | background: @background-color; |
| | | border-top-color:@color; |
| | | } |
| | | .el-date-table th{ |
| | | border-bottom-color:@color; |
| | | } |
| | | .el-button{ |
| | | background: @background-color; |
| | | color:@color; |
| | | border-color:@color; |
| | | } |
| | | .el-button--text{ |
| | | padding: 7px 15px; |
| | | } |
| | | .el-button:hover{ |
| | | background: @background-color; |
| | | color:@color-highlight; |
| | | border-color:@color-highlight; |
| | | } |
| | | .el-input__inner{ |
| | | color:#fff; |
| | | text-align: center; |
| | | } |
| | | .el-date-picker__time-header{ |
| | | border-bottom-color:@background-color-split; |
| | | } |
| | | .el-date-picker__header-label{color:#fff} |
| | | } |
| | | .el-select-dropdown{ |
| | | background: @background-color; |
| | | border-color:@color; |
| | | color:@color; |
| | | .el-select-dropdown__item{ |
| | | color:#fff; |
| | | } |
| | | .el-select-dropdown__item.hover{ |
| | | background: @background-color; |
| | | box-shadow: 0 0 5px @color-highlight inset; |
| | | } |
| | | .el-select-dropdown__item.selected{ |
| | | color:@color-highlight; |
| | | } |
| | | } |
| | |
| | | <div class="pickerData"> |
| | | <span> 开始时间:</span> |
| | | <span class="pickerTable"> |
| | | <el-date-picker type="datetime" v-model="value1"> |
| | | </el-date-picker> |
| | | </span> |
| | | <el-date-picker type="datetime" v-model="value1"></el-date-picker> |
| | | </span> |
| | | </div> |
| | | <div class="pickerData"> |
| | | <span >结束时间:</span> |
| | | <span class="pickerTable"> |
| | | <el-date-picker |
| | | type="datetime" |
| | | v-model="value2" |
| | | > |
| | | </el-date-picker> |
| | | </span> |
| | | <el-date-picker type="datetime" v-model="value2"></el-date-picker> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | 采样点数: |
| | | <input list="source" id="ipt" class="echatsInput" @change="datalistBtn"> |
| | | <datalist id="source" @click="datalistBtn"> |
| | | <option value="0" /> |
| | | <option value="25" /> |
| | | <option value="50" /> |
| | | <option value="75" /> |
| | | <option value="100" /> |
| | | </datalist> |
| | | <el-select v-model="formInline.region" placeholder="50"> |
| | | <el-option label="0" value="0"></el-option> |
| | | <el-option label="25" value="25"></el-option> |
| | | <el-option label="50" value="50"></el-option> |
| | | <el-option label="75" value="75"></el-option> |
| | | <el-option label="100" value="100"></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="detailbtn" @click="onSubmit">查询</div> |
| | | <div class="detailbtn" @click="dialogVisible = true" >明细表</div> |
| | |
| | | }, |
| | | methods: { |
| | | onSubmit () { |
| | | console.log(this.value1) |
| | | console.log('submit!') |
| | | }, |
| | | drawChart: function () { |
| | |
| | | // } |
| | | //} |
| | | .grid-content { |
| | | font-size: 8px !important; |
| | | font-size: 8px; |
| | | background-color: #2e4967; |
| | | text-align: center; |
| | | margin: 0 2px 4px 2px; |
| | | border-radius: 2px; |
| | | margin-right: 10px; |
| | | padding:0 10px |
| | | >i{ |
| | | font-style: normal; |
| | | color: #eef309; |
| | |
| | | .animation { |
| | | //width: 600px; |
| | | //height: 0.06rem; |
| | | .Infomation { |
| | | margin-left: 10px; |
| | | .infomation { |
| | | padding: 5px 10px; |
| | | } |
| | | } |
| | | .form-echrts { |
| | |
| | | flex: 1; |
| | | display: flex; |
| | | >span{line-height: 22px} |
| | | .pickerTable{ |
| | | margin-left: 6px; |
| | | /deep/.el-input{ |
| | | font-size: 0px; |
| | | .el-input__prefix{ |
| | | width: 100%; |
| | | } |
| | | } |
| | | /deep/.el-input__icon { |
| | | width: 100%; |
| | | font-size: 0; |
| | | } |
| | | .pickerTable { |
| | | margin-left: 3px; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | /deep/.el-input__inner{ |
| | | position: relative; |
| | | width: 0.9rem!important; |
| | | height: 0.125rem!important; |
| | | width:140px; |
| | | background-color: #2e4967; |
| | | color: #ffffff; |
| | | color: #fff; |
| | | font-size: 12px; |
| | | height: 24px; |
| | | padding: 0; |
| | | border-color:#00fff6; |
| | | text-align: center; |
| | | //padding-left:20px ; |
| | | //padding: 0!important; |
| | | } |
| | | /deep/.el-input__icon{ |
| | | display: block; |
| | | width: 140px; |
| | | height: 22px; |
| | | line-height: 22px; |
| | | cursor: pointer; |
| | | font-size: 0; |
| | | } |
| | | .echatsInput{ |
| | | color: #00ffff; |
| | | background-color: #2e4967; |
| | |
| | | border-radius: 6px; |
| | | width: 80px; |
| | | height: 22px; |
| | | text-align: center; |
| | | } |
| | | input::-webkit-calendar-picker-indicator { |
| | | opacity: 100; |
| | |
| | | background-color:#2e4967; |
| | | text-align: center; |
| | | padding: 0 7px; |
| | | line-height: 20px; |
| | | line-height: 24px; |
| | | border-radius: 4px; |
| | | margin-right: 6px; |
| | | } |
| | | .detailbtn:hover{ |
| | | box-shadow: 0 0 0.03rem #fff700 !important; |
| | | color:#fff700 !important; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .el-dialog-div { |
| | | //height: 50vh!important; |
| | |
| | | #echarts { |
| | | margin: 0; |
| | | padding: 0; |
| | | //height: 3rem; |
| | | //border: 1px solid #396d83; |
| | | //margin: 10px 10px 10px 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </div> |
| | | <div> |
| | | 采样点数: |
| | | <input list="source" id="ipt" class="echatsInput" v-model="value"> |
| | | <datalist id="source" > |
| | | <option value="0" /> |
| | | <option value="25" /> |
| | | <option value="50" /> |
| | | <option value="75" /> |
| | | <option value="100" /> |
| | | </datalist> |
| | | <el-select v-model="formInline.region" placeholder="50"> |
| | | <el-option label="0" value="0"></el-option> |
| | | <el-option label="25" value="25"></el-option> |
| | | <el-option label="50" value="50"></el-option> |
| | | <el-option label="75" value="75"></el-option> |
| | | <el-option label="100" value="100"></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="detailbtn" @click="onSubmit">查询</div> |
| | | <div class="detailbtn" @click="dialogVisible = true" >明细表</div> |
| | |
| | | |
| | | <script> |
| | | import PublicDetailedList from '@components/BaseNav/PublicBounced/GasComponents/PublicDetailedList' |
| | | // import |
| | | |
| | | export default { |
| | | name: 'ECharts', |
| | |
| | | }, |
| | | data () { |
| | | return { |
| | | value: '50', |
| | | value1: '', |
| | | value2: '', |
| | | watchData: [], |
| | | dialogVisible: false, |
| | | myChar: null, |
| | | value: '', |
| | | formInline: { |
| | | user: '', |
| | | region: '' |
| | |
| | | |
| | | <style scoped lang="less"> |
| | | .grid-content{ |
| | | font-size: 8px!important; |
| | | background-color:#2e4967; |
| | | text-align: center; |
| | | margin: 0 2px 4px 2px; |
| | | border-radius: 2px; |
| | | >i{ |
| | | font-style: normal; |
| | | color: #eef309; |
| | | } |
| | | font-size: 8px; |
| | | background-color: #2e4967; |
| | | text-align: center; |
| | | border-radius: 2px; |
| | | margin-right: 10px; |
| | | padding:0 10px |
| | | } |
| | | .Infomation { |
| | | margin-left: 10px; |
| | | .infomation { |
| | | padding: 5px 10px; |
| | | } |
| | | |
| | | .form-echrts { |
| | | width: 100%; |
| | | border-top: 1px solid #396d83; |
| | | //margin: 10px 10px 10px 10px; |
| | | .from-search{ |
| | | display: flex; |
| | | padding:5px; |
| | | >div{margin-left: 10px} |
| | | .pickerMon{ |
| | | display: flex; |
| | | >div:first-child{ |
| | | margin-right: 10px; |
| | | } |
| | | .pickerData{ |
| | | flex: 1; |
| | | display: flex; |
| | | >span{line-height: 22px} |
| | | .pickerTable{ |
| | | margin-left: 6px; |
| | | /deep/.el-input{ |
| | | font-size: 0px; |
| | | .el-input__prefix{ |
| | | width: 100%; |
| | | } |
| | | } |
| | | /deep/.el-input__icon { |
| | | //font-size: 0; |
| | | width: 100%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /deep/.el-date-editor--datetime{ |
| | | width: 100%; |
| | | } |
| | | /deep/.el-input__inner{ |
| | | position: relative; |
| | | width: 0.9rem!important; |
| | | height: 0.125rem!important; |
| | | background-color: #2e4967; |
| | | color: #ffffff; |
| | | font-size: 12px; |
| | | height: 24px; |
| | | padding: 0; |
| | | //padding-left:20px ; |
| | | //padding: 0!important; |
| | | } |
| | | .echatsInput{ |
| | | color: #00ffff; |
| | | background-color: #2e4967; |
| | | border: none; |
| | | border-radius: 6px; |
| | | width: 80px; |
| | | height: 22px; |
| | | } |
| | | input::-webkit-calendar-picker-indicator { |
| | | opacity: 100; |
| | | } |
| | | .detailbtn{ |
| | | background-color:#2e4967; |
| | | text-align: center; |
| | | padding: 0 7px; |
| | | line-height: 20px; |
| | | border-radius: 4px; |
| | | } |
| | | } |
| | | .el-dialog-div { |
| | | //height: 50vh!important; |
| | | overflow: auto; |
| | | //overflow: hidden; |
| | | } |
| | | |
| | | #echarts { |
| | | margin: 0; |
| | | padding: 0; |
| | | //height: 3rem; |
| | | //border: 1px solid #396d83; |
| | | width: 100%; |
| | | border-top: 1px solid #396d83; |
| | | //margin: 10px 10px 10px 10px; |
| | | } |
| | | .from-search{ |
| | | display: flex; |
| | | padding:5px; |
| | | >div{margin-left: 10px} |
| | | .pickerMon{ |
| | | display: flex; |
| | | >div:first-child { |
| | | margin-right: 10px; |
| | | } |
| | | .pickerData{ |
| | | flex: 1; |
| | | display: flex; |
| | | >span{line-height: 22px} |
| | | .pickerTable { |
| | | margin-left: 3px; |
| | | } |
| | | } |
| | | } |
| | | /deep/.el-date-editor--datetime{ |
| | | width: 100%; |
| | | } |
| | | /deep/.el-input__inner{ |
| | | position: relative; |
| | | width:140px; |
| | | background-color: #2e4967; |
| | | color: #ffffff; |
| | | font-size: 12px; |
| | | height: 24px; |
| | | padding: 0; |
| | | border-color:#00fff6; |
| | | text-align: center; |
| | | //padding-left:20px ; |
| | | //padding: 0!important; |
| | | } |
| | | /deep/.el-input__icon{ |
| | | display: block; |
| | | width: 140px; |
| | | height: 22px; |
| | | line-height: 22px; |
| | | cursor: pointer; |
| | | font-size: 0; |
| | | } |
| | | .echatsInput{ |
| | | color: #00ffff; |
| | | background-color: #2e4967; |
| | | border: none; |
| | | border-radius: 6px; |
| | | width: 80px; |
| | | height: 22px; |
| | | text-align: center; |
| | | } |
| | | input::-webkit-calendar-picker-indicator { |
| | | opacity: 100; |
| | | } |
| | | .detailbtn{ |
| | | background-color:#2e4967; |
| | | text-align: center; |
| | | padding: 0 7px; |
| | | line-height: 24px; |
| | | border-radius: 4px; |
| | | margin-right: 6px; |
| | | } |
| | | .detailbtn:hover{ |
| | | box-shadow: 0 0 0.03rem #fff700 !important; |
| | | color:#fff700 !important; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .el-dialog-div { |
| | | //height: 50vh!important; |
| | | overflow: auto; |
| | | //overflow: hidden; |
| | | } |
| | | |
| | | #echarts { |
| | | margin: 0; |
| | | padding: 0; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div style="width:100%;height:2rem;margin-top: 0.3rem" ref="echarts"></div> |
| | | <div style="width:5rem;height:2rem;margin-top: 0.3rem" ref="echarts"></div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | name: 'ECharts', |
| | | data () { |
| | | return { |
| | | myChart: [], |
| | | result: [], |
| | | days: dayjs(new Date()).format('YYYYMMDDHHmmss'), |
| | | value: '', |
| | | myChart: [], |
| | | // x轴数据 |
| | | xAxis: [], |
| | | seriesData: [], |
| | | aseries: '' |
| | | seriesName: [] |
| | | } |
| | | }, |
| | | mounted () { |
| | | this.$nextTick(() => { |
| | | this.initEchartsData() |
| | | this.upDateEchartsData() |
| | | }) |
| | | }, |
| | | methods: { |
| | | drawChart () { |
| | | // 初始化数据 |
| | | async initEchartsData () { |
| | | const endTime = dayjs().add(1, 's') |
| | | const data = { |
| | | $tagCodeList: 'TJIP45.yyqAI90305,TJIP45.yyqAI90303,TJIP45.yyqFI_90310N,TJIP45.yyqAI90304,TJIP45.yyqAIR001', |
| | | $startTime: this.dayjs, |
| | | $endTime: endTime, |
| | | $step: 15 |
| | | } |
| | | const result = (await mapApi.DataItems(data)).data |
| | | for (var i = 0; i < result.length; i++) { |
| | | // console.log(result[i]) |
| | | this.xAxis.push(result[i].ReadTime) |
| | | this.seriesData.push(result[i].TagValue) |
| | | this.seriesName = result[i].UnionTagCode |
| | | } |
| | | this.upDateEchartsinit() |
| | | }, |
| | | // 实时数据刷新 |
| | | upDateEchartsData () { |
| | | // const interValHander = |
| | | setInterval(async () => { |
| | | const endTime = dayjs().add(1, 's') |
| | | const data = { |
| | | $tagCodeList: 'TJIP45.yyqAI90305,TJIP45.yyqAI90303,TJIP45.yyqFI_90310N,TJIP45.yyqAI90304,TJIP45.yyqAIR001', |
| | | $startTime: this.dayjs, |
| | | $endTime: endTime, |
| | | $step: 15 |
| | | } |
| | | const result = (await mapApi.DataItems(data)).data |
| | | for (var i = 0; i < result.length; i++) { |
| | | // console.log(result[i]) |
| | | // this.xAxis.shift() |
| | | this.xAxis.push(result[i].ReadTime) |
| | | this.seriesData.push(result[i].TagValue) |
| | | this.seriesName = result[i].UnionTagCode |
| | | } |
| | | this.upDateEchartsinit() |
| | | }, 1500) |
| | | }, |
| | | // 初始化echarts |
| | | upDateEchartsinit () { |
| | | this.myChart = this.$echarts.init(this.$refs.echarts) |
| | | |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | // 图表的配置项数据 |
| | | const xAxisData = this.xAxis |
| | | const legendData = [this.seriesName, 'TJIP45.lscl2tb552AISA11201B', 'TJIP45.lscl2tb552AISA11202A', 'TJIP45.lscl2tbAIA-10505-1', 'TJIP45.lscl2tbAIA-10505-2'] |
| | | const seriesData = [ |
| | | { |
| | | name: this.seriesName, |
| | | type: 'line', |
| | | stack: '总量', |
| | | data: this.seriesData |
| | | }, |
| | | legend: { |
| | | data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎'] |
| | | { |
| | | name: 'TJIP45.lscl2tb552AISA11201B', |
| | | type: 'line', |
| | | stack: '总量', |
| | | data: [2.20, 1.82, 1.91, 2.34, 2.90, 3.30, 3.10] |
| | | } |
| | | ] |
| | | const option = { |
| | | title: { |
| | | // text: '实时数据', |
| | | target: 'blank', |
| | | left: '5%', |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 15, |
| | | bottom: 20 |
| | | } |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'cross', |
| | | label: { |
| | | color: '#1a4245' |
| | | } |
| | | } |
| | | // formatter: function (params) { |
| | | // // console.log(params) |
| | | // var UnionTagCode = params[0].seriesName + '<br />' |
| | | // for (var i = 0; i < params.length; i++) { |
| | | // var seriesName = params[i].seriesName |
| | | // // 值 |
| | | // var value = params[i].value[1] |
| | | // |
| | | // // var valueFliter = formatter(value) |
| | | // var valueFliter = value |
| | | // |
| | | // var maker = params[i].marker |
| | | // var colo = '' |
| | | // switch (seriesName) { |
| | | // case 'TJIP45.lscl2tb552AI10710': |
| | | // colo = '#fff21c' |
| | | // break |
| | | // default: |
| | | // colo = 'red' |
| | | // break |
| | | // } |
| | | // maker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:' + colo + ';"></span>' |
| | | // UnionTagCode += maker + seriesName + ':' + valueFliter + '<br />' |
| | | // } |
| | | // return UnionTagCode |
| | | // } |
| | | }, |
| | | grid: { |
| | | containLabel: false |
| | | top: '20%' |
| | | }, |
| | | toolbox: { |
| | | show: false, |
| | | feature: { |
| | | saveAsImage: { |
| | | show: false |
| | | } |
| | | saveAsImage: {} |
| | | } |
| | | }, |
| | | dataZoom: [{ |
| | | type: 'inside', |
| | | start: 0, |
| | | end: 100 |
| | | }, { |
| | | start: 0, |
| | | end: 100, |
| | | show: false, |
| | | handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z', |
| | | handleSize: '80%', |
| | | handleStyle: { |
| | | color: '#fff', |
| | | shadowBlur: 3, |
| | | shadowColor: 'rgba(0, 0, 0, 0.6)', |
| | | shadowOffsetX: 2, |
| | | shadowOffsetY: 2 |
| | | } |
| | | }], |
| | | legend: { |
| | | data: legendData, |
| | | textStyle: { |
| | | color: '#ffffff', |
| | | fontSize: 12 |
| | | } |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | // type: 'time', |
| | | boundaryGap: false, |
| | | axisLabel: { |
| | | margin: 6, |
| | | interval: 0, |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | type: 'dashed' |
| | | } |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | // data: this.seriesData, |
| | | data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#FFFFFF', |
| | | // width: 1 |
| | | show: false |
| | | width: 1 |
| | | } |
| | | } |
| | | }, |
| | | data: xAxisData |
| | | }, |
| | | yAxis: { |
| | | yAxis: [{ |
| | | type: 'value', |
| | | boundaryGap: [0, '100%'], |
| | | name: 'yname', |
| | | // max: function (value) { |
| | | // var max_val_list = []; //所有显示折线的标准值 |
| | | // if (bzzList && bzzList.length > 0) { |
| | | // $.each(bzzList, function (index, item) { |
| | | // max_val_list.push(item.bzhui); |
| | | // }); |
| | | // } |
| | | // max_val_list = max_val_list.sort(function (a, b) { |
| | | // return a - b |
| | | // }); //排序 |
| | | // var ma = value.max > max_val_list[max_val_list.length - 1] ? value.max + 5 : max_val_list[max_val_list.length - 1]; |
| | | // return parseInt(ma); |
| | | // }, |
| | | axisLabel: { |
| | | formatter: '{value}', |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | show: false |
| | | }, // y轴 网格线不显示, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#FFFFFF', |
| | | width: 1 |
| | | } |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '模拟数据', |
| | | type: 'line', |
| | | // showSymbol: false, |
| | | // hoverAnimation: false, |
| | | data: this.seriesData |
| | | }, { |
| | | type: 'value', |
| | | name: 'dataUnit', |
| | | axisLabel: { |
| | | formatter: '{value}', |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | { |
| | | name: '联盟广告', |
| | | type: 'line', |
| | | stack: '总量', |
| | | data: [220, 182, 191, 234, 290, 330, 310] |
| | | splitLine: { |
| | | show: false |
| | | }, |
| | | { |
| | | name: '视频广告', |
| | | type: 'line', |
| | | stack: '总量', |
| | | data: [150, 232, 201, 154, 190, 330, 410] |
| | | }, |
| | | { |
| | | name: '直接访问', |
| | | type: 'line', |
| | | stack: '总量', |
| | | data: [320, 332, 301, 334, 390, 330, 320] |
| | | }, |
| | | { |
| | | name: '搜索引擎', |
| | | type: 'line', |
| | | stack: '总量', |
| | | data: [820, 932, 901, 934, 1290, 1330, 1320] |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#FFFFFF', |
| | | width: 1 |
| | | } |
| | | } |
| | | ] |
| | | }], |
| | | series: seriesData |
| | | } |
| | | this.myChart.setOption(option) |
| | | }, |
| | | async echartsData () { |
| | | const addDays = dayjs().add(300, 'day') |
| | | const data = { |
| | | $tagCodeList: 'TJIP45.yyqAI90305,TJIP45.yyqAI90303,TJIP45.yyqFI_90310N,TJIP45.yyqAI90304,TJIP45.yyqAIR001', |
| | | $startTime: this.dayjs, |
| | | $endTime: addDays, |
| | | $step: 15 |
| | | } |
| | | const result = await mapApi.DataItems(data) |
| | | this.result = result.data |
| | | for (let i = 0; i < result.length; i++) { |
| | | // // console.log(result[i]) |
| | | |
| | | // const seriesData = [] |
| | | const aseries = [] |
| | | // let nameData = '' |
| | | |
| | | this.seriesData.push(result[i].ReadTime) |
| | | aseries.push(result[i].TagValue) |
| | | // nameData = result[i].UnionTagCode |
| | | this.aseries = result[i].UnionTagCode |
| | | } |
| | | this.myChart.setOption({ |
| | | series: [{ |
| | | data: this.seriesData |
| | | }] |
| | | }) |
| | | }, |
| | | // 数据的请求 |
| | | requestEcharts () { |
| | | setInterval(async () => { |
| | | const addDays = dayjs().add(300, 'day') |
| | | const data = { |
| | | $tagCodeList: 'TJIP45.yyqAI90305,TJIP45.yyqAI90303,TJIP45.yyqFI_90310N,TJIP45.yyqAI90304,TJIP45.yyqAIR001', |
| | | $startTime: this.dayjs, |
| | | $endTime: addDays, |
| | | $step: 15 |
| | | } |
| | | const result = await mapApi.DataItems(data) |
| | | this.result = result.data |
| | | for (let i = 0; i < result.length; i++) { |
| | | // // console.log(result[i]) |
| | | |
| | | // const seriesData = [] |
| | | const aseries = [] |
| | | // let nameData = '' |
| | | |
| | | this.seriesData.push(result[i].ReadTime) |
| | | aseries.push(result[i].TagValue) |
| | | // nameData = result[i].UnionTagCode |
| | | this.aseries = result[i].UnionTagCode |
| | | } |
| | | this.myChart.setOption({ |
| | | series: [{ |
| | | data: this.seriesData |
| | | }] |
| | | }) |
| | | }, 3000) |
| | | } |
| | | }, |
| | | mounted () { |
| | | this.$nextTick(() => { |
| | | this.requestEcharts() |
| | | this.drawChart() |
| | | this.echartsData() |
| | | }) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .Infomation { |
| | | margin-left: 10px; |
| | | height: 0.2rem; |
| | | } |
| | | |
| | | .el-tag { |
| | | height: 25px; |
| | | width: 140px; |
| | | line-height: 25px; |
| | | margin-right: 10px; |
| | | font-size: 10px; |
| | | background-color: rgba(0, 255, 246, 0.14); |
| | | color: #00d0f9; |
| | | border: none; |
| | | padding: 0 15px; |
| | | } |
| | | |
| | | .form-echrts { |
| | | width: 100%; |
| | | height: 1rem; |
| | | border-top: 1px solid #396d83; |
| | | //margin: 10px 10px 10px 10px; |
| | | .el-dialog-div { |
| | | //height: 50vh!important; |
| | | overflow: auto; |
| | | //overflow: hidden; |
| | | } |
| | | |
| | | #echarts { |
| | | margin: 0; |
| | | padding: 0; |
| | | //height: 3rem; |
| | | //border: 1px solid #396d83; |
| | | //margin: 10px 10px 10px 10px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="border_corner border_corner_left_bottom"></div> |
| | | <div class="border_corner border_corner_right_bottom"></div> |
| | | <ul class="tab"> |
| | | <li @click='tabTaggle("ECharts")'>实时数据</li> |
| | | <li @click='tabTaggle("Echarts")'>实时数据</li> |
| | | <li @click='tabTaggle("EChartsHour")'>小时数据</li> |
| | | <li @click='tabTaggle("EChartsDate")'>日数据</li> |
| | | <li @click='tabTaggle("ECharts")'>人工数据</li> |
| | | <div id="title" > |
| | | <span><strong> </strong></span> |
| | | <span >正常</span> |
| | | <span ></span> |
| | | <span >预警</span> |
| | | <span ></span> |
| | | <span >超标</span> |
| | | <span ></span> |
| | | </div> |
| | | </ul> |
| | | <div class="legend" > |
| | | <span >正常</span> |
| | | <i style=" background: #4ec99c;"></i> |
| | | <span >预警</span> |
| | | <i style=" background: red;"></i> |
| | | <span >超标</span> |
| | | <i style=" background: orange;"></i> |
| | | </div> |
| | | <component :is="currentTab" v-bind="$attrs"></component> |
| | | </div> |
| | | </template> |
| | |
| | | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | * { |
| | | margin: 0; |
| | | padding: 0; |
| | | list-style: none; |
| | | } |
| | | |
| | | <style scoped lang="less"> |
| | | .win { |
| | | position: relative; |
| | | /*margin-bottom: 13px;*/ |
| | | background-color: rgba(33, 41, 69, 0.9); |
| | | background:@background-color; |
| | | border: 0.8px solid #396d83; |
| | | /*height: 1.5rem;*/ |
| | | } |
| | |
| | | .tab { |
| | | display: flex; |
| | | border-bottom: 1px solid #396d83; |
| | | margin-bottom: 10px; |
| | | padding:5px 10px |
| | | } |
| | | |
| | | li { |
| | | .tab li { |
| | | background-color: #243a55; |
| | | margin: 10px 10px 2px 10px; |
| | | /*padding: 5px 10px;*/ |
| | | width: 90px; |
| | | height: 25px; |
| | | line-height: 25px; |
| | | text-align: center; |
| | | border-radius: 5px; |
| | | margin-right: 10px; |
| | | padding:0 15px |
| | | } |
| | | |
| | | ul li:hover { |
| | | .tab li:hover { |
| | | background-color: #0e639e; |
| | | color: #682000; |
| | | cursor: pointer; |
| | | } |
| | | #title{ |
| | | height: 30px; |
| | | /* margin-top: 30px; */ |
| | | color: #ffffff; |
| | | margin-top: 5px; |
| | | .legend{ |
| | | position: absolute; |
| | | top:10px; |
| | | right: 0; |
| | | display: flex; |
| | | justify-items: center; |
| | | } |
| | | .legend i { |
| | | display: block; |
| | | width: 35px; |
| | | height: 15px; |
| | | margin:0 10px 0 3px; |
| | | border-radius: 3px; |
| | | } |
| | | .legend span{ |
| | | line-height: 15px; |
| | | } |
| | | |
| | | #title span:nth-child(1){ |
| | | /*margin-left: 478px*/ |
| | | } |
| | | #title span:nth-child(2){ |
| | | /*margin-left: 177px*/ |
| | | } |
| | | #title span:nth-child(3){ |
| | | display: inline-block; |
| | | background-color: #4ec99c; |
| | | height: 15px; |
| | | width: 35px; |
| | | margin-left: 10px; |
| | | border-radius: 5px; |
| | | } |
| | | #title span:nth-child(6){ |
| | | /*margin-left: 21px*/ |
| | | } |
| | | #title span:nth-child(7){ |
| | | display: inline-block; |
| | | background-color: red; |
| | | height: 15px; |
| | | width: 35px; |
| | | margin-left: 7px; |
| | | border-radius: 5px; |
| | | } |
| | | #title span:nth-child(4){ |
| | | margin-left: 17px; |
| | | } |
| | | #title span:nth-child(5){ |
| | | display: inline-block; |
| | | background-color: orange; |
| | | height: 15px; |
| | | width: 35px; |
| | | margin-left: 9px; |
| | | border-radius: 5px; |
| | | } |
| | | </style> |
| | |
| | | <div class="main"> |
| | | <div class="main-matter"> |
| | | <div v-if="value === 'feiqi'"> |
| | | <el-row type="flex" class="row-bg row-item-one" justify="space-around"> |
| | | <el-col :span="8">监测点名称:{{ setWasteGasdata.Name }}</el-col> |
| | | <el-col :span="8">生产单位:{{ setWasteGasdata.porltName }}</el-col> |
| | | <el-col :span="8">排放类型名称:{{ setWasteGasdata.MonTypeName }}</el-col> |
| | | </el-row> |
| | | <el-row type="flex" class="row-bg row-item-two" justify="space-around"> |
| | | <el-col :span="8">排放去向:{{ setWasteGasdata.EmissDirecti }}</el-col> |
| | | <el-col :span="18">控制级别名称:{{ setWasteGasdata.ContrLevelShowName }}</el-col> |
| | | <el-col :span="18">内/外排口:{{ setWasteGasdata.OrOutPortName }}</el-col> |
| | | </el-row> |
| | | <ul> |
| | | <li>监测点名称:{{ setWasteGasdata.Name }}</li> |
| | | <li>生产单位:{{ setWasteGasdata.porltName }}</li> |
| | | <li>排放类型名称:{{ setWasteGasdata.MonTypeName }}</li> |
| | | <li>排放去向:{{ setWasteGasdata.EmissDirecti }}</li> |
| | | <li>控制级别名称:{{ setWasteGasdata.ContrLevelShowName }}</li> |
| | | <li>内/外排口:{{ setWasteGasdata.OrOutPortName }}</li> |
| | | </ul> |
| | | </div> |
| | | <div v-else-if="value === 'gufei'"> |
| | | <ul> |
| | |
| | | </ul> |
| | | </div> |
| | | <div v-else-if="value === 'feishui'"> |
| | | <el-row type="flex" class="row-bg row-item-one" justify="space-around"> |
| | | <el-col :span="8">监测点名称:{{ setWasteWaterdata.Name }}</el-col> |
| | | <el-col :span="8">生产单位:{{ setWasteWaterdata.porltName }}</el-col> |
| | | <el-col :span="8">排放类型名称:{{ setWasteWaterdata.MonTypeName }}</el-col> |
| | | </el-row> |
| | | <el-row type="flex" class="row-bg row-item-two" justify="space-around"> |
| | | <el-col :span="8">排放去向:{{ setWasteWaterdata.EmissDirecti }}</el-col> |
| | | <el-col :span="8">控制级别名称:{{ setWasteWaterdata.ContrLevelShowName }}</el-col> |
| | | <el-col :span="8">内/外排口:{{ setWasteWaterdata.OrOutPortName }}</el-col> |
| | | </el-row> |
| | | <ul> |
| | | <li>监测点名称:{{ setWasteWaterdata.Name }}</li> |
| | | <li>生产单位:{{ setWasteWaterdata.porltName }}</li> |
| | | <li>排放类型名称:{{ setWasteWaterdata.MonTypeName }}</li> |
| | | <li>排放去向:{{ setWasteWaterdata.EmissDirecti }}</li> |
| | | <li>控制级别名称:{{ setWasteWaterdata.ContrLevelShowName }}</li> |
| | | <li>内/外排口:{{ setWasteWaterdata.OrOutPortName }}</li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | .win { |
| | | position: relative; |
| | | margin-bottom: 10px; |
| | | background-color: rgba(33, 41, 69, 0.9); |
| | | background-color: @background-color; |
| | | //width: 6rem; |
| | | //height: 0.5rem; |
| | | } |
| | |
| | | .main-matter { |
| | | font-size: 13px; |
| | | font-weight: normal; |
| | | padding: 0 6px; |
| | | padding: 6px; |
| | | border: 1px solid #396d83; |
| | | |
| | | .row-item-one { |
| | | //flex-wrap: nowrap; |
| | | overflow: hidden; |
| | | margin-top: 6px; |
| | | margin-bottom: 7px; |
| | | //margin-left: 10px; |
| | | } |
| | | .row-item-two{ |
| | | margin-bottom: 6px; |
| | | } |
| | | .el-row { |
| | | width: 100%; |
| | | color: #00d0f9; |
| | | display: flex; |
| | | font-size: 12px !important; |
| | | text-align: center; |
| | | |
| | | .el-col { |
| | | text-align: center; |
| | | flex: 1; |
| | | width: 100%; |
| | | background-color: #243a55; |
| | | margin-left: 6px; |
| | | border-radius: 4px; |
| | | |
| | | &:nth-child(1) { |
| | | margin-left: 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | ul { |
| | | //width: 100%; |
| | | //height: 100%; |
| | |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | flex-wrap: wrap; |
| | | line-height: 30px; |
| | | |
| | | margin-bottom: -6px; |
| | | li { |
| | | margin-bottom: 6px; |
| | | text-align: center; |
| | | width: 32%; |
| | | height: 30px; |
| | | margin: 5px auto; |
| | | min-width: 32%; |
| | | background-color: #243a55; |
| | | color: #00d0f9; |
| | | border-radius: 4px; |
| | | border-radius: 3px; |
| | | font-size: 0.08rem; |
| | | } |
| | | |
| | |
| | | <template> |
| | | <div class="public-bounced" v-drag v-if="flag"> |
| | | <!-- <Echarts></Echarts>--> |
| | | <div class="public-bounced-title"> |
| | | <div class="public-bounced map-background" v-drag v-if="flag"> |
| | | <div class="public-bounced-title panel-title" ref="publicBounced"> |
| | | <span>{{ displayContentTitle }}</span> |
| | | <i class="el-icon-circle-close" @click="closePopup"></i> |
| | | </div> |
| | |
| | | :value="value" |
| | | :getQueryOnlineMonData="getQueryOnlineMonData" |
| | | :getWasteWaterMonitoringDetails='getWasteWaterMonitoringDetails' |
| | | > |
| | | > |
| | | </public-chart> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | |
| | | // import Echarts from '@components/BaseNav/PublicBounced/GasComponents/Echarts' |
| | | |
| | | import '@/components/BaseNav/SolidWaste/directive/dir' |
| | | import '@/utils/dragBoxes' |
| | | import PublicTabs from '@components/BaseNav/PublicBounced/GasComponents/PublicTabs' |
| | | import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable' |
| | | import PublicVideo from '@components/BaseNav/PublicBounced/GasComponents/PublicVideo' |
| | |
| | | getQueryOnlineMonData: [] |
| | | // getGasQueryOnlineMonData: [] |
| | | } |
| | | }, |
| | | mounted () { |
| | | this.$nextTick(() => { |
| | | console.log(this.$refs.publicBounced) |
| | | }) |
| | | }, |
| | | methods: { |
| | | closePopup () { |
| | |
| | | |
| | | <style lang="less" scoped> |
| | | .public-bounced { |
| | | z-index: 999; |
| | | z-index: 2000; |
| | | position: absolute; |
| | | top: 15%; |
| | | left: 20%; |
| | | background-color: #002432; |
| | | border: 1px #9fc5c8 solid; |
| | | |
| | | .public-bounced-title { |
| | | cursor: move; |
| | | height: 0.1rem; |
| | | border: 1px #a4c0d8 solid; |
| | | padding: 10px 0; |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | } |
| | | |
| | | i { |
| | | color: white; |
| | | color: #C0C4CC; |
| | | margin: 0 15px; |
| | | font-size: 22px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | i:hover { |
| | | color: #00fff6; |
| | | } |
| | | } |
| | | |
| | | .public-bounced-content { |
| | |
| | | import Vue from 'vue' |
| | | // 使用Vue.directive()定义一个全局指令 |
| | | // 1.参数一:指令的名称,定义时指令前面不需要写v- |
| | | // 2.参数二:是一个对象,该对象中有相关的操作函数 |
| | | // 3.在调用的时候必须写v- |
| | | |
| | | const drag = Vue.directive('drag', { |
| | | // 1.指令绑定到元素上回立刻执行bind函数,只执行一次 |
| | | // 2.每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象 |
| | | // 3.通过el.focus()是无法获取焦点的,因为只有插入DOM后才生效 |
| | | bind: function (el) { |
| | | el.style.cursor = 'move' // 鼠标样式变move样式 |
| | | }, |
| | | // inserted表示一个元素,插入到DOM中会执行inserted函数,只触发一次 |
| | | inserted: function (el) { |
| | | el.onmousedown = function (e) { |
| | | bind (el, binding, vnode, oldVnode) { |
| | | const dialogHeaderEl = el.querySelector('.public-bounced-title') |
| | | dialogHeaderEl.onmousedown = function (e) { |
| | | var distX = e.pageX - el.offsetLeft |
| | | var distY = e.pageY - el.offsetTop |
| | | // console.log('元素本身的高:' + el.clientHeight + ',元素本身的宽:' + el.clientWidth) |
| | | |
| | | if (e.preventDefault) { |
| | | e.preventDefault() |
| | | } else { |
| | | e.returnValue = false |
| | | } |
| | | // 解决快速拖动滞后问题 |
| | | |
| | | document.onmousemove = function (e) { |
| | | // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置 |
| | | let left = e.clientX - distX |
| | | let top = e.clientY - distY |
| | | |
| | | if (left <= 0) { |
| | | left = 5 // 设置成5是为了不离边缘太近 |
| | | } else if (left > document.documentElement.clientWidth - el.clientWidth) { |
| | | // document.documentElement.clientWidth 屏幕的可视宽度 |
| | | left = document.documentElement.clientWidth - el.clientWidth - 5 |
| | | left = 5 |
| | | } else if (left > document.documentElement.clientWidth - dialogHeaderEl.clientWidth) { |
| | | left = document.documentElement.clientWidth - dialogHeaderEl.clientWidth - 5 |
| | | } |
| | | if (top <= 0) { |
| | | top = 5 |
| | | } else if (top > document.documentElement.clientHeight - el.clientHeight) { |
| | | top = document.documentElement.clientHeight - el.clientHeight - 5 |
| | | } else if (top > document.documentElement.clientHeight - dialogHeaderEl.clientHeight) { |
| | | top = document.documentElement.clientHeight - dialogHeaderEl.clientHeight - 5 |
| | | } |
| | | |
| | | el.style.left = left + 'px' |
| | | el.style.top = top + 'px' |
| | | } |
| | |
| | | document.onmousemove = document.onmouseup = null |
| | | } |
| | | } |
| | | }, |
| | | // 当VNode更新的时候会执行updated,可以触发多次 |
| | | updated: function (el) { |
| | | } |
| | | }) |
| | | export default drag |
| | |
| | | |
| | | import iconSetting from '@/assets/images/map-pages/icon/setting.png' |
| | | import LcServiceLayer from './modules/LcServiceLayer' |
| | | |
| | | import bus from '@/eventBus' |
| | | export default { |
| | | name: 'LayerController', |
| | | components: { LcServiceLayer }, |
| | |
| | | } |
| | | } |
| | | }, |
| | | mounted () { |
| | | const that = this |
| | | bus.$on('changeState', function (state) { |
| | | if (state.num !== 3 && state.type) { |
| | | that.layerControllerVisible = false |
| | | } |
| | | }) |
| | | }, |
| | | methods: { |
| | | showPanel () { |
| | | this.layerControllerVisible = !this.layerControllerVisible |
| | | const state = { |
| | | type: this.layerControllerVisible, |
| | | num: 3 |
| | | } |
| | | bus.$emit('changeState', state) |
| | | }, |
| | | switchPanel () { |
| | | this.panelSwitch.main = !this.panelSwitch.main |
| | |
| | | // 测量的方法 |
| | | import Measure from '@/components/plugin/MeaSure' |
| | | |
| | | // |
| | | import bus from '@/eventBus' |
| | | |
| | | export default { |
| | | name: 'ToolBoxPanel', |
| | | components: { |
| | |
| | | ] |
| | | } |
| | | }, |
| | | mounted () { |
| | | /* import bus from '@/eventBus' */ |
| | | const that = this |
| | | bus.$on('changeState', function (state) { |
| | | if (state.num !== 1 && state.type) { |
| | | that.selectGroup = false |
| | | that.isShow = [] |
| | | that.active = -1 |
| | | } |
| | | }) |
| | | }, |
| | | methods: { |
| | | |
| | | init (map) { |
| | | this.map = map |
| | | this.toolBoxPanelVisible = true |
| | |
| | | this.isShow = !this.isShow |
| | | this.active = -1 |
| | | } |
| | | const state = { |
| | | type: this.selectGroup, |
| | | num: 1 |
| | | } |
| | | bus.$emit('changeState', state) |
| | | } |
| | | } |
| | | } |
| | |
| | | import IndexStatistics from './components/IndexStatistics' |
| | | |
| | | import '@/components/BaseNav/SolidWaste/directive/dir' |
| | | |
| | | import bus from '@/eventBus' |
| | | export default { |
| | | name: 'summary-sheet.vue', |
| | | components: { |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | closeBtn () { |
| | | this.$refs.summarySheets.show() |
| | | this.summaryVisible = true |
| | |
| | | }, |
| | | subtopicBtn () { |
| | | this.subtopic = !this.subtopic |
| | | const state = { |
| | | type: this.subtopic, |
| | | num: 2 |
| | | } |
| | | bus.$emit('changeState', state) |
| | | } |
| | | }, |
| | | mounted () { |
| | | const that = this |
| | | bus.$on('changeState', function (state) { |
| | | if (state.num !== 2 && state.type) { |
| | | that.subtopic = false |
| | | } |
| | | }) |
| | | this.$nextTick(() => { |
| | | this.$refs.summarySheets.$on('closeDialog', () => { |
| | | that.summaryVisible = false |
New file |
| | |
| | | import Vue from 'vue' |
| | | export default new Vue() |
New file |
| | |
| | | /* eslint */ |
| | | import Vue from 'vue' |
| | | |
| | | const drag = Vue.directive('drag', { |
| | | bind (el, binding, vnode, oldVnode) { |
| | | const dialogHeaderEl = el.querySelector('.public-bounced-title') |
| | | dialogHeaderEl.onmousedown = function (e) { |
| | | var distX = e.pageX - el.offsetLeft |
| | | var distY = e.pageY - el.offsetTop |
| | | if (e.preventDefault) { |
| | | e.preventDefault() |
| | | } else { |
| | | e.returnValue = false |
| | | } |
| | | document.onmousemove = function (e) { |
| | | let left = e.clientX - distX |
| | | let top = e.clientY - distY |
| | | |
| | | if (left <= 0) { |
| | | left = 5 |
| | | } else if (left > document.documentElement.clientWidth - dialogHeaderEl.clientWidth) { |
| | | left = document.documentElement.clientWidth - dialogHeaderEl.clientWidth - 5 |
| | | } |
| | | if (top <= 0) { |
| | | top = 5 |
| | | } else if (top > document.documentElement.clientHeight - dialogHeaderEl.clientHeight) { |
| | | top = document.documentElement.clientHeight - dialogHeaderEl.clientHeight - 5 |
| | | } |
| | | |
| | | el.style.left = left + 'px' |
| | | el.style.top = top + 'px' |
| | | } |
| | | document.onmouseup = function () { |
| | | document.onmousemove = document.onmouseup = null |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | export default drag |