提交app代码
This commit is contained in:
@@ -182,6 +182,7 @@ export default {
|
||||
engineeringName: '',
|
||||
equipmentName: '',
|
||||
runStatus: 1,
|
||||
connection: false,
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
@@ -617,10 +618,11 @@ export default {
|
||||
mask: true,
|
||||
})
|
||||
this.clear()
|
||||
|
||||
this.connection = false
|
||||
await getBaseRealData(this.lineId)
|
||||
.then((res) => {
|
||||
if (res.code == 'A0000') {
|
||||
this.connection = true
|
||||
this.$util.toast(e == 0 ? '连接成功!' : '刷新成功!')
|
||||
if (this.timer) {
|
||||
clearInterval(this.timer)
|
||||
@@ -628,16 +630,24 @@ export default {
|
||||
}
|
||||
|
||||
this.timer = setInterval(() => {
|
||||
getBaseRealData(this.lineId).then((res) => {
|
||||
console.log(res, '获取基础实时数据')
|
||||
})
|
||||
getBaseRealData(this.lineId)
|
||||
.then((res) => {
|
||||
this.connection = true
|
||||
console.log(res, '获取基础实时数据')
|
||||
})
|
||||
.catch(() => {
|
||||
this.connection = false
|
||||
this.clear()
|
||||
})
|
||||
}, 30000)
|
||||
} else {
|
||||
this.countdown = 60 // 重置倒计时
|
||||
this.disabled = false
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => {
|
||||
this.countdown = 60 // 重置倒计时
|
||||
this.disabled = false
|
||||
this.connection = false
|
||||
this.clear()
|
||||
})
|
||||
},
|
||||
|
||||
initMqtt() {
|
||||
@@ -690,6 +700,8 @@ export default {
|
||||
.on('message', (topic, message) => {
|
||||
// console.log('接收推送信息:', JSON.parse(message.toString()), topic)
|
||||
// console.log('🚀 ~ .on ~ topic:', topic)
|
||||
if (!this.connection) return
|
||||
|
||||
if (topic === `/Web/RealData/${this.userInfo.userIndex}`) {
|
||||
let list = JSON.parse(message.toString())
|
||||
if (list.lineId == this.lineId) {
|
||||
@@ -857,6 +869,9 @@ export default {
|
||||
// 监测点变化
|
||||
async lineChange(e) {
|
||||
await this.clear()
|
||||
this.disabled = false
|
||||
this.countdown = 60
|
||||
|
||||
this.lineKey = e.detail.value
|
||||
this.lineId = this.lineList[e.detail.value].lineId
|
||||
await (this.client && this.client.end())
|
||||
|
||||
@@ -152,6 +152,7 @@ export default {
|
||||
uni.setStorageSync('messageParams', {
|
||||
name: item.engineeringName,
|
||||
id: item.engineeringId,
|
||||
type: '',
|
||||
})
|
||||
uni.switchTab({
|
||||
url: '/pages/index/message1',
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<view style="padding: 20rpx 20rpx 0">
|
||||
<Cn-grid title="" :auto-fill="false">
|
||||
<Cn-grid-item src="/static/device2.png" text="设备注册" @click="registerDevice(4)"></Cn-grid-item>
|
||||
<Cn-grid-item
|
||||
<!-- <Cn-grid-item
|
||||
src="/static/device2.png"
|
||||
text="功能调试"
|
||||
@click="registerDevice(2)"
|
||||
@@ -64,12 +64,12 @@
|
||||
text="出厂调试"
|
||||
@click="registerDevice(3)"
|
||||
v-if="config.factory"
|
||||
></Cn-grid-item>
|
||||
<Cn-grid-item background="#fff" v-if="!config.feature"></Cn-grid-item>
|
||||
<Cn-grid-item background="#fff" v-if="!config.factory"></Cn-grid-item>
|
||||
></Cn-grid-item> -->
|
||||
<!-- <Cn-grid-item background="#fff" v-if="!config.feature"></Cn-grid-item>
|
||||
<Cn-grid-item background="#fff" v-if="!config.factory"></Cn-grid-item> -->
|
||||
<Cn-grid-item background="#fff"></Cn-grid-item>
|
||||
<Cn-grid-item background="#fff"></Cn-grid-item>
|
||||
<Cn-grid-item background="#fff"></Cn-grid-item>
|
||||
<!-- <Cn-grid-item background="#fff"></Cn-grid-item>
|
||||
<Cn-grid-item background="#fff"></Cn-grid-item> -->
|
||||
<!-- <Cn-grid-item src="/static/gateway2.png" text="网关注册" @click="registerGateway"></Cn-grid-item> -->
|
||||
<!-- <Cn-grid-item src="/static/feedback2.png" text="问题反馈" @click="submitFeedBack"></Cn-grid-item>-->
|
||||
</Cn-grid>
|
||||
|
||||
@@ -34,6 +34,14 @@
|
||||
<view class="header-item-value">{{ devCount.currentOffLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jumpMessage('0')">
|
||||
<view class="header-item-value">{{ devCount.eventCount || 0 }}</view>
|
||||
<view class="header-item-label">暂态事件</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jumpMessage('1')">
|
||||
<view class="header-item-value">{{ devCount.harmonicCount || 0 }}</view>
|
||||
<view class="header-item-label">稳态事件</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="canneng-index-title mt20">常用功能</view>
|
||||
<view style="padding: 20rpx 20rpx 0">
|
||||
@@ -113,9 +121,9 @@ export default {
|
||||
},
|
||||
confirm(value) {
|
||||
// if (this.devCount.engineeringListLength > 0) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/new?type=4',
|
||||
})
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/new?type=4',
|
||||
})
|
||||
// } else {
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/engineering/new?from=index',
|
||||
@@ -134,6 +142,16 @@ export default {
|
||||
url: '/pages/device/list?type=' + type,
|
||||
})
|
||||
},
|
||||
jumpMessage(type) {
|
||||
uni.setStorageSync('messageParams', {
|
||||
name:'',
|
||||
id: '',
|
||||
type: type,
|
||||
})
|
||||
uni.switchTab({
|
||||
url: '/pages/index/message1',
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
refresher-enabled="true"
|
||||
class="event-list mt20"
|
||||
v-if="eventList.length != 0"
|
||||
:style="{ height: 'calc(100vh - ' + height + 'px)', overflow: 'auto' }"
|
||||
:style="{ height: 'calc(100vh - ' + (navHeight + height) + 'px)', overflow: 'auto' }"
|
||||
>
|
||||
<!-- 循环渲染事件项 -->
|
||||
<uni-card class="event-item" :class="item.type" v-for="(item, index) in store.data" :key="index">
|
||||
@@ -106,10 +106,10 @@ export default {
|
||||
.boundingClientRect((rect) => {
|
||||
//
|
||||
// #ifdef H5
|
||||
this.height = rect?.height + 130 || 0
|
||||
this.height = rect?.height + 20 || 0
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
this.height = rect?.height + 75 || 0
|
||||
this.height = rect?.height + 30 || 0
|
||||
// #endif
|
||||
})
|
||||
.exec()
|
||||
@@ -157,58 +157,67 @@ export default {
|
||||
startTime: item.startTime,
|
||||
time: '',
|
||||
timeType: this.selectValue.report,
|
||||
}).then((res) => {
|
||||
// 下载文件资源到本地
|
||||
uni.downloadFile({
|
||||
url: res.data, // 后端返回的线上文件路径
|
||||
success: function (res) {
|
||||
if (res.statusCode === 200) {
|
||||
// 文件到本地
|
||||
uni.saveFile({
|
||||
tempFilePath: res.tempFilePath, //临时路径
|
||||
success: function (data) {
|
||||
var savedFilePath = data.savedFilePath
|
||||
// 在app端执行
|
||||
// #ifdef APP-PLUS
|
||||
let osname = plus.os.name
|
||||
// 如果是安卓的话弹出提示
|
||||
|
||||
uni.showToast({
|
||||
icon: 'success',
|
||||
mask: true,
|
||||
title: '下载成功!',
|
||||
duration: 1000,
|
||||
})
|
||||
|
||||
// #endif
|
||||
//ios手机直接打开文件,手动存储文件到手机,Android手机从根目录创建文件夹,保存文件并改名
|
||||
setTimeout(() => {
|
||||
//打开文档查看
|
||||
uni.openDocument({
|
||||
filePath: data.savedFilePath,
|
||||
success: function (ress) {
|
||||
console.log('成功打开文件')
|
||||
},
|
||||
fail() {
|
||||
console.log('打开文件失败')
|
||||
},
|
||||
})
|
||||
}, 500)
|
||||
},
|
||||
})
|
||||
console.log('下载成功')
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'error',
|
||||
mask: true,
|
||||
title: '下载失败!',
|
||||
duration: 1000,
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: function (res) {},
|
||||
})
|
||||
})
|
||||
.then((res) => {
|
||||
// 下载文件资源到本地
|
||||
uni.downloadFile({
|
||||
url: res.data, // 后端返回的线上文件路径
|
||||
success: function (res) {
|
||||
if (res.statusCode === 200) {
|
||||
// 文件到本地
|
||||
uni.saveFile({
|
||||
tempFilePath: res.tempFilePath, //临时路径
|
||||
success: function (data) {
|
||||
var savedFilePath = data.savedFilePath
|
||||
// 在app端执行
|
||||
// #ifdef APP-PLUS
|
||||
let osname = plus.os.name
|
||||
// 如果是安卓的话弹出提示
|
||||
|
||||
uni.showToast({
|
||||
icon: 'success',
|
||||
mask: true,
|
||||
title: '下载成功!',
|
||||
duration: 1000,
|
||||
})
|
||||
|
||||
// #endif
|
||||
//ios手机直接打开文件,手动存储文件到手机,Android手机从根目录创建文件夹,保存文件并改名
|
||||
setTimeout(() => {
|
||||
//打开文档查看
|
||||
uni.openDocument({
|
||||
filePath: data.savedFilePath,
|
||||
success: function (ress) {
|
||||
console.log('成功打开文件')
|
||||
},
|
||||
fail() {
|
||||
console.log('打开文件失败')
|
||||
},
|
||||
})
|
||||
}, 500)
|
||||
},
|
||||
})
|
||||
console.log('下载成功')
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
title: '下载失败!',
|
||||
duration: 1000,
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: function (res) {},
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
title: err.message,
|
||||
duration: 1000,
|
||||
})
|
||||
})
|
||||
},
|
||||
// 下拉
|
||||
refresherrefresh() {
|
||||
@@ -233,7 +242,7 @@ export default {
|
||||
.event-tags {
|
||||
display: flex;
|
||||
font-size: 27rpx !important ;
|
||||
line-height: 50rpx;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
|
||||
.event-detail {
|
||||
|
||||
@@ -208,58 +208,67 @@ export default {
|
||||
})
|
||||
downloadEventReport({
|
||||
id: item.eventId,
|
||||
}).then((res) => {
|
||||
// 下载文件资源到本地
|
||||
uni.downloadFile({
|
||||
url: res.data, // 后端返回的线上文件路径
|
||||
success: function (res) {
|
||||
if (res.statusCode === 200) {
|
||||
// 文件到本地
|
||||
uni.saveFile({
|
||||
tempFilePath: res.tempFilePath, //临时路径
|
||||
success: function (data) {
|
||||
var savedFilePath = data.savedFilePath
|
||||
// 在app端执行
|
||||
// #ifdef APP-PLUS
|
||||
let osname = plus.os.name
|
||||
// 如果是安卓的话弹出提示
|
||||
|
||||
uni.showToast({
|
||||
icon: 'success',
|
||||
mask: true,
|
||||
title: '下载成功!',
|
||||
duration: 1000,
|
||||
})
|
||||
|
||||
// #endif
|
||||
//ios手机直接打开文件,手动存储文件到手机,Android手机从根目录创建文件夹,保存文件并改名
|
||||
setTimeout(() => {
|
||||
//打开文档查看
|
||||
uni.openDocument({
|
||||
filePath: data.savedFilePath,
|
||||
success: function (ress) {
|
||||
console.log('成功打开文件')
|
||||
},
|
||||
fail() {
|
||||
console.log('打开文件失败')
|
||||
},
|
||||
})
|
||||
}, 500)
|
||||
},
|
||||
})
|
||||
console.log('下载成功')
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'error',
|
||||
mask: true,
|
||||
title: '下载失败!',
|
||||
duration: 1000,
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: function (res) {},
|
||||
})
|
||||
})
|
||||
.then((res) => {
|
||||
// 下载文件资源到本地
|
||||
uni.downloadFile({
|
||||
url: res.data, // 后端返回的线上文件路径
|
||||
success: function (res) {
|
||||
if (res.statusCode === 200) {
|
||||
// 文件到本地
|
||||
uni.saveFile({
|
||||
tempFilePath: res.tempFilePath, //临时路径
|
||||
success: function (data) {
|
||||
var savedFilePath = data.savedFilePath
|
||||
// 在app端执行
|
||||
// #ifdef APP-PLUS
|
||||
let osname = plus.os.name
|
||||
// 如果是安卓的话弹出提示
|
||||
|
||||
uni.showToast({
|
||||
icon: 'success',
|
||||
mask: true,
|
||||
title: '下载成功!',
|
||||
duration: 1000,
|
||||
})
|
||||
|
||||
// #endif
|
||||
//ios手机直接打开文件,手动存储文件到手机,Android手机从根目录创建文件夹,保存文件并改名
|
||||
setTimeout(() => {
|
||||
//打开文档查看
|
||||
uni.openDocument({
|
||||
filePath: data.savedFilePath,
|
||||
success: function (ress) {
|
||||
console.log('成功打开文件')
|
||||
},
|
||||
fail() {
|
||||
console.log('打开文件失败')
|
||||
},
|
||||
})
|
||||
}, 500)
|
||||
},
|
||||
})
|
||||
console.log('下载成功')
|
||||
} else {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
title: '下载失败!',
|
||||
duration: 1000,
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: function (res) {},
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
title: err.message,
|
||||
duration: 1000,
|
||||
})
|
||||
})
|
||||
},
|
||||
},
|
||||
watch: {},
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<!-- 工程列表 -->
|
||||
<template v-show="engineeringList.length" v-if="userInfo.authorities === 'engineering_user'">
|
||||
<view class="canneng-index-title mt20">工程列表</view>
|
||||
<Engineering ref="engineering" :store="store" @refresh="store.search()"/>
|
||||
<Engineering ref="engineering" :store="store" @refresh="store.search()" />
|
||||
</template>
|
||||
<!-- 设备列表 -->
|
||||
<template v-else v-show="engineeringList.length">
|
||||
@@ -271,6 +271,22 @@ export default {
|
||||
this.init()
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
uni.setTabBarItem({
|
||||
index: 2,
|
||||
visible: true,
|
||||
})
|
||||
if (uni.getStorageSync(this.$cacheKey.userInfo).authorities === 'tourist') {
|
||||
uni.setTabBarItem({
|
||||
index: 2,
|
||||
visible: false,
|
||||
})
|
||||
uni.showToast({
|
||||
title: '已同步设备历史数据',
|
||||
icon: 'none',
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
@@ -117,10 +117,15 @@ export default {
|
||||
},
|
||||
|
||||
onShow() {
|
||||
if (uni.getStorageSync(this.$cacheKey.userInfo).authorities === 'operation_manager') {
|
||||
this.items = ['暂态事件', '稳态事件', '运行告警', '运行事件']
|
||||
}
|
||||
const params = uni.getStorageSync('messageParams')
|
||||
console.log('🚀 ~ params:', params)
|
||||
this.getDevCount()
|
||||
this.$nextTick(() => {
|
||||
if (params.type != '') {
|
||||
this.current = params.type - 0
|
||||
}
|
||||
if (params.name != '') {
|
||||
this.$refs.cnFilterCriteria && this.$refs.cnFilterCriteria.external(params.name, params.id)
|
||||
}
|
||||
@@ -133,6 +138,7 @@ export default {
|
||||
uni.setStorageSync('messageParams', {
|
||||
name: '',
|
||||
id: '',
|
||||
type: '',
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
@@ -244,9 +250,13 @@ export default {
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
.segmented-control {
|
||||
height: 49px;
|
||||
// height: 40px;
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #cccccc70;
|
||||
.segmented-control__item {
|
||||
align-items: baseline;
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.segmented-control__text {
|
||||
@@ -255,6 +265,7 @@ export default {
|
||||
}
|
||||
.segmented-control__item--text {
|
||||
font-weight: bold;
|
||||
padding: 0 0 5rpx;
|
||||
}
|
||||
.choose {
|
||||
// padding: 20rpx;
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
@clickItem="onClickItem"
|
||||
/>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 稳态报表 -->
|
||||
<SteadyState
|
||||
@@ -44,14 +43,14 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
curTabs: 0,
|
||||
|
||||
|
||||
total: 6,
|
||||
loading: false,
|
||||
items: ['稳态报表', '暂降报告'],
|
||||
status: 'more', //more加载前 loading加载中 noMore加载后
|
||||
|
||||
navHeight: 0,
|
||||
|
||||
|
||||
indexList: [
|
||||
{
|
||||
name: '测试监测点',
|
||||
@@ -102,7 +101,7 @@ export default {
|
||||
this.navHeight = rect.height + 65
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
this.navHeight = rect.height + 10
|
||||
this.navHeight = rect.height + 25
|
||||
// #endif
|
||||
})
|
||||
.exec()
|
||||
@@ -115,7 +114,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
scrolltolower() {
|
||||
if (this.total != this.indexList.length) {
|
||||
this.status = 'loading'
|
||||
@@ -153,10 +151,14 @@ export default {
|
||||
width: 80% !important;
|
||||
}
|
||||
/deep/.tabsBox {
|
||||
border-bottom: 1px solid #cccccc70;
|
||||
.segmented-control {
|
||||
height: 49px;
|
||||
// height: 40px;
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #cccccc70;
|
||||
.segmented-control__item {
|
||||
align-items: baseline;
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.segmented-control__text {
|
||||
@@ -165,6 +167,7 @@ export default {
|
||||
}
|
||||
.segmented-control__item--text {
|
||||
font-weight: bold;
|
||||
padding: 0 0 5rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,13 +51,7 @@
|
||||
</uni-collapse-item>
|
||||
</uni-collapse> -->
|
||||
<view class="event-list">
|
||||
<uni-card
|
||||
class="event-item"
|
||||
:class="item.type"
|
||||
v-for="(item, index) in list"
|
||||
:key="index"
|
||||
@click="jump(item)"
|
||||
>
|
||||
<uni-card class="event-item" :class="item.type" v-for="(item, index) in list" :key="index">
|
||||
<!-- 头部:图标 + 信息 + 操作 -->
|
||||
<view class="event-header">
|
||||
<view class="event-icon">
|
||||
@@ -83,13 +77,17 @@
|
||||
</view>
|
||||
<!-- 详情区域 -->
|
||||
<view class="event-detail">
|
||||
<uni-collapse accordion>
|
||||
<uni-collapse>
|
||||
<uni-collapse-item
|
||||
:title="
|
||||
item.interruptCounts == 0 ? '通讯正常' : `通讯中断 ${item.interruptCounts} 次`
|
||||
"
|
||||
>
|
||||
<view v-for="date in item.interruptDetails" class="textBox mb10">{{ date }}</view>
|
||||
<view
|
||||
v-for="date in String(item.interruptDetails || '').split(',')"
|
||||
class="textBox mb10"
|
||||
>{{ date }}</view
|
||||
>
|
||||
</uni-collapse-item>
|
||||
<uni-collapse-item
|
||||
:title="
|
||||
@@ -185,9 +183,11 @@ export default {
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 26rpx;
|
||||
color: #666666;
|
||||
text-indent: 2em;
|
||||
}
|
||||
.event-list {
|
||||
background: #fff;
|
||||
padding-bottom: 10rpx;
|
||||
.event-icon {
|
||||
width: 90rpx;
|
||||
height: 90rpx;
|
||||
|
||||
@@ -11,9 +11,12 @@
|
||||
<view class="mb5"> 项目名称:{{ detail.projectName }} </view>
|
||||
<view class="mb5"> 工程名称:{{ detail.engineeringName }} </view>
|
||||
<view class="mb5"> 暂态类型:{{ detail.showName }}</view>
|
||||
<view class="mb5" v-for="(item, textIndex) in detail.dataSet" :key="textIndex">
|
||||
<view class="mb5"> 持续时间:{{ detail.evtParamTm }}</view>
|
||||
<view class="mb5"> 幅值:{{ detail.evtParamVVaDepth }}</view>
|
||||
<view class="mb5"> 相别:{{ detail.evtParamPhase }}</view>
|
||||
<!-- <view class="mb5" v-for="(item, textIndex) in detail.dataSet" :key="textIndex">
|
||||
{{ item.showName + ':' + (item.value == 3.1415926 ? '-' : item.value) + (item.unit || '') }}
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="detail-content">
|
||||
<view class="detail-content-title mb20">瞬时波形图</view>
|
||||
|
||||
Reference in New Issue
Block a user