暂态事件处理

This commit is contained in:
仲么了
2023-09-06 18:13:08 +08:00
parent 1d2974aca7
commit f8d8229cc1
10 changed files with 130 additions and 108 deletions

19
common/api/message.js Normal file
View File

@@ -0,0 +1,19 @@
import request from '../js/request';
import config from '../js/config';
/**
* 已读暂态
* @returns {*}
*/
export function updateStatus(eventIds) {
return request({
url: 'cs-harmonic-boot/eventUser/updateStatus',
method: 'post',
header: {
'Content-Type': 'application/json',
},
data: {
eventIds
},
})
}

View File

@@ -30,7 +30,7 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
}, },
timer:null, timer: null,
callBack: null, callBack: null,
firstCallBack: null, firstCallBack: null,
loadedCallback: null, loadedCallback: null,
@@ -56,7 +56,7 @@ export default {
method: 'POST', method: 'POST',
}).then((res) => { }).then((res) => {
console.warn(res) console.warn(res)
let resultData = res.data?.list || res.data?.records || [] let resultData = res.data?.list || res.data?.records || res.data || []
if (this.params.pageNum == 1) { if (this.params.pageNum == 1) {
this.data = resultData this.data = resultData
if (resultData.length == 0 || resultData == 0) { if (resultData.length == 0 || resultData == 0) {

View File

@@ -267,6 +267,13 @@ const decodeToken = (token) => {
return obj return obj
} }
const getDictData = (key) => {
let dictData = uni.getStorageSync(cacheKey.dictData)
if (dictData) {
return dictData.filter((item) => item.code === key)[0]?.children || []
}
}
export default { export default {
validatePhoneNumber, validatePhoneNumber,
toast, toast,
@@ -278,4 +285,5 @@ export default {
prePage, prePage,
loginSuccess, loginSuccess,
refreshPrePage, refreshPrePage,
getDictData
} }

View File

@@ -133,7 +133,7 @@ export default {
// text: '波形', // text: '波形',
// }, // },
{ {
text: 'I/O', text: '其他',
}, },
], ],
content: [ content: [

View File

@@ -72,7 +72,7 @@ export default {
this.formData.id = this.engineering.id this.formData.id = this.engineering.id
uni.setNavigationBarTitle({title: '工程编辑'}) uni.setNavigationBarTitle({title: '工程编辑'})
} }
if(options.from === 'index'){ if (options.from === 'index') {
this.$util.toast('请先创建一个工程') this.$util.toast('请先创建一个工程')
} }
// console.log(area); // console.log(area);
@@ -129,7 +129,7 @@ export default {
if (this.options.from === 'index') { if (this.options.from === 'index') {
uni.setStorageSync('engineering', res.data) uni.setStorageSync('engineering', res.data)
uni.redirectTo({ uni.redirectTo({
url: '/pages/device/new', url: '/pages/device/new?type=' + this.options.type,
}) })
return return
} else { } else {

View File

@@ -39,7 +39,9 @@
<view class="canneng-index-title mt20">常用功能</view> <view class="canneng-index-title mt20">常用功能</view>
<view style="padding: 20rpx 20rpx 0"> <view style="padding: 20rpx 20rpx 0">
<Cn-grid title=""> <Cn-grid title="">
<Cn-grid-item src="/static/device2.png" text="设备注册" @click="registerDevice"></Cn-grid-item> <Cn-grid-item src="/static/device2.png" text="设备注册" @click="registerDevice()"></Cn-grid-item>
<Cn-grid-item src="/static/device2.png" text="功能调试" @click="registerDevice(2)"></Cn-grid-item>
<Cn-grid-item src="/static/device2.png" text="出厂调试" @click="registerDevice(3)"></Cn-grid-item>
<!-- <Cn-grid-item src="/static/gateway2.png" text="网关注册" @click="registerGateway"></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-item src="/static/feedback2.png" text="问题反馈" @click="submitFeedBack"></Cn-grid-item>-->
</Cn-grid> </Cn-grid>
@@ -63,7 +65,7 @@ export default {
submitFeedBack() { submitFeedBack() {
uni.navigateTo({url: '/pages/home/feedback'}) uni.navigateTo({url: '/pages/home/feedback'})
}, },
registerDevice() { registerDevice(type) {
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '请选择设备类型', content: '请选择设备类型',
@@ -74,11 +76,11 @@ export default {
if (confirm) { if (confirm) {
if (this.devCount.engineeringListLength > 0) { if (this.devCount.engineeringListLength > 0) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/device/new', url: '/pages/device/new?type=' + type,
}) })
} else { } else {
uni.navigateTo({ uni.navigateTo({
url: '/pages/engineering/new?from=index' url: '/pages/engineering/new?from=index&type=' + type
}) })
} }

View File

@@ -46,15 +46,7 @@
<view class="mine-nav-label">工程列表</view> <view class="mine-nav-label">工程列表</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons> <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view> </view>
<view
class="mine-nav"
@click="jump('engineering/setting')"
v-if="userInfo.authorities === 'engineering_user'"
>
<image mode="aspectFill" class="mine-nav-icon" src="/static/like.png"/>
<view class="mine-nav-label">关注工程配置</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view>
<view class="mine-nav" @click="jump('project')"> <view class="mine-nav" @click="jump('project')">
<image mode="aspectFill" class="mine-nav-icon" src="/static/project.png"/> <image mode="aspectFill" class="mine-nav-icon" src="/static/project.png"/>
<view class="mine-nav-label">项目列表</view> <view class="mine-nav-label">项目列表</view>
@@ -79,6 +71,20 @@
<view class="mine-nav-label">消息配置</view> <view class="mine-nav-label">消息配置</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons> <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view> </view>
<view
class="mine-nav"
@click="jump('engineering/setting')"
v-if="userInfo.authorities === 'engineering_user'"
>
<image mode="aspectFill" class="mine-nav-icon" src="/static/like.png"/>
<view class="mine-nav-label">关注工程配置</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view>
<view class="mine-nav" @click="jump('setupServer')">
<image mode="aspectFill" class="mine-nav-icon" src="/static/server2.png"/>
<view class="mine-nav-label">服务内容配置</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view>
<view class="mine-nav" @click="jump('setup')" style="border-bottom: none"> <view class="mine-nav" @click="jump('setup')" style="border-bottom: none">
<image mode="aspectFill" class="mine-nav-icon" src="/static/setup.png"/> <image mode="aspectFill" class="mine-nav-icon" src="/static/setup.png"/>
<view class="mine-nav-label">设置</view> <view class="mine-nav-label">设置</view>

View File

@@ -1,71 +1,55 @@
<template> <template>
<view class="content"> <Cn-page :loading="loading">
<uni-card title="NPQS_682发生暂降事件" extra="未读" sub-title="2023-02-27 15:13:29" @click="jump"> <view class="content" slot="body">
<view class="term-list-bottom"> <uni-card :title="item.title" :extra="item.status === '1'?'':'未读'" :sub-title="item.startTime"
<view class="term-list-bottom-item"> @click="jump(item)"
特征增幅88%持续时间0.047s v-for="(item,index) in store.data" :key="index">
<view class="term-list-bottom">
<view class="term-list-bottom-item">
{{ item.engineeringName + '' + item.projectName }}
</view>
<view class="term-list-bottom-item" v-for="(item2,textIndex) in item.dataSet" :key="textIndex">
{{ item2.showName + ':' + item2.value + (item2.unit || '') }}
</view>
</view> </view>
<view class="term-list-bottom-item"> </uni-card>
南京市 灿能园区 <Cn-empty v-if="store.empty" style="padding-top: 400rpx"></Cn-empty>
</view> <uni-load-more v-if="store.data && store.data.length > 0" :status="store.status"></uni-load-more>
<view class="term-list-bottom-item"> </view>
电压等级0.38kV </Cn-page>
</view>
<view class="term-list-bottom-item">
网路参数00-B7-8D-A8-00-D3
</view>
</view>
</uni-card>
<uni-card title="NPQS_682发生暂降事件" extra="未读" sub-title="2023-02-27 15:13:29" @click="jump">
<view class="term-list-bottom">
<view class="term-list-bottom-item">
特征增幅88%持续时间0.047s
</view>
<view class="term-list-bottom-item">
南京市 灿能园区
</view>
<view class="term-list-bottom-item">
电压等级0.38kV
</view>
<view class="term-list-bottom-item">
网路参数00-B7-8D-A8-00-D3
</view>
</view>
</uni-card>
<uni-card title="NPQS_682发生暂降事件" sub-title="2023-02-27 15:13:29" @click="jump">
<view class="term-list-bottom">
<view class="term-list-bottom-item">
特征增幅88%持续时间0.047s
</view>
<view class="term-list-bottom-item">
南京市 灿能园区
</view>
<view class="term-list-bottom-item">
电压等级0.38kV
</view>
<view class="term-list-bottom-item">
网路参数00-B7-8D-A8-00-D3
</view>
</view>
</uni-card>
<uni-load-more status="nomore"></uni-load-more>
</view>
</template> </template>
<script> <script>
import list from "@/common/js/list";
export default { export default {
data () { mixins: [list],
data() {
return { return {
title: '灿能' loading: true,
} }
}, },
onLoad () { onShow() {
this.init()
}, },
methods: { methods: {
jump () { init() {
console.log(123); let dictData = this.$util.getDictData('app_event')
uni.navigateTo({ url: '/pages/message/incidentDetail' }) console.log(dictData)
this.store = this.DataSource('/cs-harmonic-boot/event/queryEventList')
this.store.firstCallBack = (res) => {
this.store.data.forEach(item => {
item.title = item.equipmentName + dictData.find(item2 => item2.code === item.tag).name
})
console.log(this.store.data)
this.loading = false
}
this.store.reload()
},
jump(item) {
let str = JSON.stringify(item).replace(/%/g,'百分比')
uni.navigateTo({url: '/pages/message/incidentDetail?detail=' + encodeURIComponent(str)})
} }
} }
} }
@@ -95,6 +79,7 @@ export default {
/deep/ .uni-list-item { /deep/ .uni-list-item {
background-color: $uni-theme-white !important; background-color: $uni-theme-white !important;
} }
/deep/ .uni-card__header-extra-text { /deep/ .uni-card__header-extra-text {
color: #dd524d !important; color: #dd524d !important;
font-size: 20rpx; font-size: 20rpx;

View File

@@ -1,49 +1,51 @@
<template> <template>
<Cn-page :loading='loading'> <Cn-page :loading='loading'>
<view slot='body'> <view class='detail' slot='body'>
<view class='detail'> <view class="detail-content " style="font-size:32rpx">
<view class="detail-content " style="font-size:32rpx"> <!-- <view class="detail-content-title mb20">发生时间</view> -->
<!-- <view class="detail-content-title mb20">发生时间</view> --> <view>{{detail.startTime}}</view>
<view>2023-02-14</view> </view>
<view class="detail-content ">
<view class="detail-content-title mb20">基础信息</view>
<view class="mb10">{{detail.title}}</view>
<view>
{{ detail.engineeringName + '' + detail.projectName }}
</view> </view>
<view class="detail-content "> <view v-for="(item,textIndex) in detail.dataSet" :key="textIndex">
<view class="detail-content-title mb20">基础信息</view> {{ item.showName + ':' + item.value + (item.unit || '') }}
<view class="mb10">CN_NPQS682</view> </view>
<view>发生暂降事件特征幅值88%持续时间0.047s</view> <!-- <view class="space-between">请您评价本次事件是否对设备造成影响
<view>
南京市 灿能园区
</view>
<view>
电压等级0.38kV
</view>
<view>
网路参数00-B7-8D-A8-00-D3
</view>
<!-- <view class="space-between">请您评价本次事件是否对设备造成影响
</view> --> </view> -->
</view> </view>
<view class="detail-content "> <view class="detail-content ">
<view class="detail-content-title mb20">瞬时波形图</view> <view class="detail-content-title mb20">瞬时波形图</view>
<image style="width:100%" src="/static/boxing1.jpeg" mode="widthFix" /> <image style="width:100%" src="/static/boxing1.jpeg" mode="widthFix"/>
</view> </view>
<view class="detail-content "> <view class="detail-content ">
<view class="detail-content-title mb20">RMS波形图</view> <view class="detail-content-title mb20">RMS波形图</view>
<image style="width:100%" src="/static/boxing2.jpeg" mode="widthFix" /> <image style="width:100%" src="/static/boxing2.jpeg" mode="widthFix"/>
</view>
</view> </view>
</view> </view>
</Cn-page> </Cn-page>
</template> </template>
<script> <script>
import {updateStatus} from "@/common/api/message";
export default { export default {
data () { data() {
return { return {
loading: false loading: true,
detail: {}
} }
}, },
methods: { onLoad(options) {
} console.log(options.detail)
this.detail = JSON.parse(decodeURIComponent(options.detail).replace(/百分比/g, '%'))
this.loading = false
updateStatus([this.detail.id])
},
methods: {}
} }
</script> </script>
<style lang='scss'> <style lang='scss'>

BIN
static/server2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB