xielei 2024-11-11 13:58:27 +08:00
commit 2cc680ab7f
8 changed files with 449 additions and 383 deletions

View File

@ -30,8 +30,8 @@
<view class="jcsj-content"> <view class="jcsj-content">
<view class="tool-btn"> <view class="tool-btn">
<view class="scale-btn"> <view class="scale-btn">
<button style="margin-right:10px" @click="fd">+</button> <u-button style="margin-right:10px" @click="fd" class="aqjc-custom-style">+</u-button>
<button @click="sx">-</button> <u-button @click="sx" class="aqjc-custom-style">-</u-button>
</view> </view>
<view class="play-btn"> <view class="play-btn">
<uni-icons type="videocam" size="40" @click="play"></uni-icons> <uni-icons type="videocam" size="40" @click="play"></uni-icons>
@ -39,7 +39,8 @@
</view> </view>
<view class="jcsj-charts"> <view class="jcsj-charts">
<movable-area :style="areaStyle"> <movable-area :style="areaStyle">
<movable-view @scale="scale" direction="all" :scale-value="scaleValue" scale-min="0.5" scale="true" scale-max="4" out-of-bounds="true"> <movable-view @scale="scale" direction="all" :scale-value="scaleValue" scale-min="0.5" scale="true"
scale-max="4" out-of-bounds="true">
<qiun-data-charts :chartData="chartData.chartData" :echartsApp="true" :eopts="chartData.eopts" /> <qiun-data-charts :chartData="chartData.chartData" :echartsApp="true" :eopts="chartData.eopts" />
</movable-view> </movable-view>
</movable-area> </movable-area>
@ -49,20 +50,10 @@
</view> </view>
</view> </view>
<u-datetime-picker <u-datetime-picker :show="showTime" v-model="startTime" mode="datetime" @confirm="handleStartTime"
:show="showTime" @cancel="showTime=false"></u-datetime-picker>
v-model="startTime" <u-datetime-picker :show="showTime1" v-model="endTime" mode="datetime" @confirm="handleEndTime"
mode="datetime" @cancel="showTime1=false"></u-datetime-picker>
@confirm="handleStartTime"
@cancel="showTime=false"
></u-datetime-picker>
<u-datetime-picker
:show="showTime1"
v-model="endTime"
mode="datetime"
@confirm="handleEndTime"
@cancel="showTime1=false"
></u-datetime-picker>
</view> </view>
</view> </view>
</template> </template>
@ -71,8 +62,14 @@
import moment from "moment" import moment from "moment"
import drpOption from './jrxOptions'; import drpOption from './jrxOptions';
import JcsjTable from "./jcsjTable" import JcsjTable from "./jcsjTable"
const stm = moment().subtract(1, 'days').add(1, 'hour').set({minute: 0, second: 0}).format("YYYY-MM-DD HH:mm"); const stm = moment().subtract(1, 'days').add(1, 'hour').set({
const etm = moment().add(1, 'hour').set({minute: 0, second: 0}).format("YYYY-MM-DD HH:mm"); minute: 0,
second: 0
}).format("YYYY-MM-DD HH:mm");
const etm = moment().add(1, 'hour').set({
minute: 0,
second: 0
}).format("YYYY-MM-DD HH:mm");
export default { export default {
data() { data() {
@ -88,14 +85,18 @@
dbType: '', dbType: '',
trData: [], trData: [],
dataSources: [], dataSources: [],
chartData: {chartData:{},eopts:{}}, chartData: {
areaStyle:{left:"-450px"}, chartData: {},
eopts: {}
},
areaStyle: {
left: "-450px"
},
scaleValue: 0.5, scaleValue: 0.5,
swiper: false, swiper: false,
timer: 100, timer: 100,
columns: [], columns: [],
cols1:[ cols1: [{
{
title: '序号', title: '序号',
key: 'index', key: 'index',
width: 60, width: 60,
@ -107,11 +108,21 @@
width: 120, width: 120,
align: 'center', align: 'center',
}, },
{ title: '库水位(m)', key: 'rz', dataIndex: 'rz', width: 150, align: "center" }, {
], title: '库水位(m)',
cols2:[ key: 'rz',
{title: '结果分析', key: 'status', dataIndex: 'status', width: 150, align: "center",} dataIndex: 'rz',
width: 150,
align: "center"
},
], ],
cols2: [{
title: '结果分析',
key: 'status',
dataIndex: 'status',
width: 150,
align: "center",
}],
newCol: [] newCol: []
} }
}, },
@ -135,6 +146,7 @@
this.dbType = name == "大坝B0+060" ? "1" : this.dbType = name == "大坝B0+060" ? "1" :
name == "大坝B0+090" ? "2" : name == "大坝B0+090" ? "2" :
name == "大坝B0+120" ? "2" : '1' name == "大坝B0+120" ? "2" : '1'
this.getDmTree();
} }
}, },
immediate: true, immediate: true,
@ -150,7 +162,9 @@
dataSources: { dataSources: {
handler(newVal, oldVal) { handler(newVal, oldVal) {
if (newVal) { if (newVal) {
this.chartData = {...drpOption(newVal[0],this.dbType)} this.chartData = {
...drpOption(newVal[0], this.dbType)
}
} }
}, },
deep: true, deep: true,
@ -172,7 +186,9 @@
this.timer = setInterval(() => { this.timer = setInterval(() => {
console.log("data", data[index % data.length]); console.log("data", data[index % data.length]);
this.chartData = {...drpOption(data[index % data.length],this.dbType)} this.chartData = {
...drpOption(data[index % data.length], this.dbType)
}
index++; index++;
}, 1000) }, 1000)
}, },
@ -225,7 +241,9 @@
// //
async getMonthData() { async getMonthData() {
try { try {
const {data} = await uni.$http.post( const {
data
} = await uni.$http.post(
`/gunshiApp/xyt/attDamProfile/list`, ) `/gunshiApp/xyt/attDamProfile/list`, )
if (data.code == 200) { if (data.code == 200) {
this.array = data.data this.array = data.data
@ -239,12 +257,12 @@
// //
async getTableData() { async getTableData() {
try { try {
const {data} = await uni.$http.post( const {
"/gunshiApp/xyt/osmoticPressR/infiltra/line", data
{ } = await uni.$http.post(
"/gunshiApp/xyt/osmoticPressR/infiltra/line", {
stationCodes: this.trData, stationCodes: this.trData,
dateTimeRangeSo: dateTimeRangeSo: {
{
start: moment(this.stm).format("YYYY-MM-DD HH:mm:00"), start: moment(this.stm).format("YYYY-MM-DD HH:mm:00"),
end: moment(this.etm).format("YYYY-MM-DD HH:mm:00"), end: moment(this.etm).format("YYYY-MM-DD HH:mm:00"),
} }
@ -273,14 +291,20 @@
}) })
let obj = {}; let obj = {};
r.forEach(s1 => { r.forEach(s1 => {
obj = {...s1,...obj} obj = {
...s1,
...obj
}
}) })
return { return {
...s, ...s,
...obj, ...obj,
} }
}) })
let res1 = result.map(item => ({...item,rz:(item.rz - 100).toFixed(2)})) // let res1 = result.map(item => ({
...item,
rz: (item.rz - 100).toFixed(2)
})) //
this.dataSources = [...res1]; this.dataSources = [...res1];
} }
} catch (error) { } catch (error) {
@ -290,13 +314,15 @@
// //
async getDmTree() { async getDmTree() {
try { try {
const {data} = await uni.$http.post("/gunshiApp/xyt/attDamProfile/tree") const {
data
} = await uni.$http.post("/gunshiApp/xyt/attDamProfile/tree")
if (data.code == 200) { if (data.code == 200) {
console.log("data", data); console.log("data", data);
let filterData = data.data.filter(s => s.profileCode == this.profileCode) let filterData = data.data.filter(s => s.profileCode == this.profileCode)
this.trData = filterData[0]?.children; this.trData = filterData[0].children;
const newCol = filterData[0]?.children.map(s => ({ const newCol = filterData[0].children.map(s => ({
title: `${s}(m)`, title: `${s}(m)`,
key: s, key: s,
dataIndex: s, dataIndex: s,
@ -335,45 +361,56 @@
border-right: none; border-right: none;
// background-image: '../../static/images/'; // background-image: '../../static/images/';
} }
.jcsj-box { .jcsj-box {
padding: 0 10px; padding: 0 10px;
.time-ranger { .time-ranger {
// display: flex; // display: flex;
// align-items: center; // align-items: center;
margin-bottom: 10px; margin-bottom: 10px;
.start-time, .end-time{
.start-time,
.end-time {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 10px 0; padding: 10px 0;
border-bottom: 1px solid #dfdfdf; border-bottom: 1px solid #dfdfdf;
} }
.search-btn { .search-btn {
margin: 3px 0 0 5px; margin: 3px 0 0 5px;
// color: #3399ef; // color: #3399ef;
} }
} }
.jcsj-content { .jcsj-content {
max-height: 100vh; max-height: 100vh;
width: 100%; width: 100%;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
.tool-btn { .tool-btn {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: "center"; align-items: "center";
padding: 5px; padding: 5px;
.scale-btn { .scale-btn {
display: flex; display: flex;
button { button {
height: 40px; height: 40px;
} }
} }
} }
} }
.jcsj-charts { .jcsj-charts {
width: 1310px; width: 1310px;
height: 250px; height: 250px;
overflow-y: auto; overflow-y: auto;
// margin-top: 20px; // margin-top: 20px;
&>movable-area { &>movable-area {
height: 250px; height: 250px;
@ -382,6 +419,7 @@
overflow: hidden; overflow: hidden;
z-index: 1000; z-index: 1000;
background-color: #efefef; background-color: #efefef;
movable-view { movable-view {
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -390,10 +428,17 @@
background-color: #fff; background-color: #fff;
left: 450px; left: 450px;
top: 10px top: 10px
}} }
}
.active { .active {
border-color: #68bbff !important; border-color: #68bbff !important;
color: #68bbff; color: #68bbff;
}} }
}
.aqjc-custom-style {
width: 80rpx;
}
} }
</style> </style>

View File

@ -40,10 +40,9 @@
<view class="warn"> <view class="warn">
<sk-info /> <sk-info />
</view> </view>
<view class="warn" v-for="item in Ylzlist" :key="item.stnm"> <view class="warn1" v-for="item in Ylzlist" :key="item.stnm">
<ylz-list :item='item' /> <ylz-list :item='item' />
</view> </view>
<view class="info_24" <view class="info_24"
:style="{display:'flex',justifyContent:'center',alignItems:'center',padding:'5px 0',margin:'0'}"> :style="{display:'flex',justifyContent:'center',alignItems:'center',padding:'5px 0',margin:'0'}">
<image :style="{width:'20px',height:'20px',marginRight:'10px'}" src="../../static/logoc.png"></image> <image :style="{width:'20px',height:'20px',marginRight:'10px'}" src="../../static/logoc.png"></image>
@ -231,7 +230,12 @@
} }
try { try {
const res = await uni.$http.post("/gunshiApp/xyt/stQxWarnR/home/warn", params) const res = await uni.$http.post("/gunshiApp/xyt/stQxWarnR/home/warn", params)
const {flowWarn,pressWarn,qxWarn,shiftWarn} = res.data.data const {
flowWarn,
pressWarn,
qxWarn,
shiftWarn
} = res.data.data
const arr = [...flowWarn, ...pressWarn, ...qxWarn, ...shiftWarn] const arr = [...flowWarn, ...pressWarn, ...qxWarn, ...shiftWarn]
if (arr.length > 0) { if (arr.length > 0) {
this.warnStatus = true this.warnStatus = true
@ -261,6 +265,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.container { .container {
position: relative;
font-size: 14px; font-size: 14px;
line-height: 24px; line-height: 24px;
background-color: #f3f5f8; background-color: #f3f5f8;
@ -339,11 +344,19 @@
background: #fff; background: #fff;
} }
.warn1 {
padding: 18rpx 20rpx;
text-align: left;
// margin-bottom: 12rpx;
background: #fff;
}
.info_24 { .info_24 {
width: 100%;
// position: fixed;
// padding: 15px; // padding: 15px;
background-color: #fff; background-color: #fff;
// margin-bottom: 12rpx; // margin-bottom: 12rpx;
// height: 40px; height: 100px;
} }
.title .line { .title .line {

View File

@ -23,14 +23,14 @@
</view> </view>
</view> </view>
<view style="height:calc(100vh - 150px);overflow: auto;" v-if='list.length !== 0'> <view style="height:calc(100vh - 150px);overflow: auto;" v-if='list.length !== 0'>
<view class="" v-for="(item,index) in list" :key="index" <view class="" v-for="(item,index) in list" :key="index" @click="toDetail(item)"
style="margin:10px;background-color: #fff;padding: 10px;"> style="margin:10px;background-color: #fff;padding: 10px;">
<view class="item"> <view class="item">
<!-- {{item.title}} --> <!-- {{item.title}} -->
<view class="title"> <view class="title">
{{item.taskTitle}} {{item.taskTitle}}
</view> </view>
<view class="titleRight" @click="toDetail(item)"> <view class="titleRight" >
<view class="border"> <view class="border">
{{item.isHandle==1?'已处理':'待处理'}} {{item.isHandle==1?'已处理':'待处理'}}
</view> </view>

View File

@ -21,13 +21,13 @@
</view> </view>
<view class="" style='overflow: auto;max-height:calc(100vh - 180px)' v-if="list.length !== 0"> <view class="" style='overflow: auto;max-height:calc(100vh - 180px)' v-if="list.length !== 0">
<view class="" v-for="(item,i) in list" :key="i" style="background-color: #fff;margin-top:10px;padding: 10px;"> <view class="" v-for="(item,i) in list" :key="i" @click="toDetail(item)" style="background-color: #fff;margin-top:10px;padding: 10px;">
<view class="item"> <view class="item">
<!-- {{item.title}} --> <!-- {{item.title}} -->
<view class="title"> <view class="title">
{{item.taskTitle}} {{item.taskTitle}}
</view> </view>
<view class="titleRight" @click="toDetail(item)"> <view class="titleRight" >
<view class="border"> <view class="border">
{{status[item.status]}} {{status[item.status]}}
</view> </view>

View File

@ -1,5 +1,6 @@
import echarts from 'echarts/lib/echarts'; import echarts from 'echarts/lib/echarts';
import { format } from 'echarts/lib/export';
export default function DrpOption(data,num) { export default function DrpOption(data,num) {
const minL = Math.floor(Math.min(...data?.map(s => s.q))); const minL = Math.floor(Math.min(...data?.map(s => s.q)));
const maxL = Math.ceil(Math.max(...data?.map(s => s.q))); const maxL = Math.ceil(Math.max(...data?.map(s => s.q)));
@ -20,8 +21,8 @@ export default function DrpOption(data,num) {
}, },
grid: { grid: {
top: '20%', top: '20%',
left: '10%', left: '7%',
right: '14%', right: '11%',
bottom: '10%', bottom: '10%',
borderWidth: 0 borderWidth: 0
}, },
@ -40,7 +41,8 @@ export default function DrpOption(data,num) {
axisLabel: { axisLabel: {
color: '#333', color: '#333',
fontSize: 14, fontSize: 14,
formatter: val => val.substr(0,'2020-11-11 11:11'.length) // formatter: val => val.substr(0,'2020-11-11 11:11'.length)
format:"waterXaxis"
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
@ -58,6 +60,9 @@ export default function DrpOption(data,num) {
type: 'value', type: 'value',
position: 'left', position: 'left',
name: "流量(m³/s)", name: "流量(m³/s)",
nameTextStyle: {
padding: [0, 0, 0, 30]
},
splitLine: { splitLine: {
show: true, show: true,
lineStyle: { lineStyle: {

View File

@ -22,13 +22,13 @@
</view> </view>
</view> </view>
<view class="" v-if="list.length !== 0" style="height:calc(100vh - 180px);overflow: auto;"> <view class="" v-if="list.length !== 0" style="height:calc(100vh - 180px);overflow: auto;">
<view class="" v-for="item in list" style="margin: 10px;background-color: #fff;padding: 10px;" > <view class="" v-for="(item,i) in list" @click="toDetail(item)" :key="i" style="margin: 10px;background-color: #fff;padding: 10px;" >
<view class="item"> <view class="item">
<!-- {{item.title}} --> <!-- {{item.title}} -->
<view class="title"> <view class="title">
{{item.taskTitle}} {{item.taskTitle}}
</view> </view>
<view class="titleRight" @click="toDetail(item)"> <view class="titleRight" >
<view class="border"> <view class="border">
{{item.isHandle==0?'待处理':'已处理'}} {{item.isHandle==0?'待处理':'已处理'}}
</view> </view>

View File

@ -21,13 +21,13 @@
</view> </view>
<view class="" style='overflow: auto;height:calc(100vh - 150px)' v-if="list.length !== 0"> <view class="" style='overflow: auto;height:calc(100vh - 150px)' v-if="list.length !== 0">
<view class="" v-for="(item,i) in list" :key="i" style="background-color: #fff;margin-top:10px;padding: 10px;"> <view class="" v-for="(item,i) in list" :key="i" @click="toDetail(item)" style="background-color: #fff;margin-top:10px;padding: 10px;">
<view class="item"> <view class="item">
<!-- {{item.title}} --> <!-- {{item.title}} -->
<view class="title"> <view class="title">
{{item.taskTitle}} {{item.taskTitle}}
</view> </view>
<view class="titleRight" @click="toDetail(item)"> <view class="titleRight" >
<view class="border"> <view class="border">
{{status[item.status]}} {{status[item.status]}}
</view> </view>

View File

@ -97,6 +97,9 @@ const cfe = {
return value return value
} }
}, },
"waterXaxis": function (val) {
return val.substr(0,'2020-11-11 11:11'.length)
},
yAxisFormatDemo:function (value, index) { yAxisFormatDemo:function (value, index) {
return value + '元'; return value + '元';
}, },