功能调试
This commit is contained in:
@@ -20,7 +20,7 @@ export function getDevCount(id) {
|
||||
url: '/cs-device-boot/deviceUser/devCount',
|
||||
method: 'post',
|
||||
|
||||
data: {id},
|
||||
data: { id },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -48,12 +48,13 @@ export function addDevice(params) {
|
||||
}
|
||||
|
||||
// 直连设备注册
|
||||
export function registerDevice(nDid) {
|
||||
export function registerDevice(nDid, type) {
|
||||
return request({
|
||||
url: '/access-boot/device/register',
|
||||
method: 'post',
|
||||
data: {
|
||||
nDid,
|
||||
type,
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -95,7 +96,7 @@ export const transferDevice = (id, userId) => {
|
||||
method: 'POST',
|
||||
data: {
|
||||
ids: id,
|
||||
userId: userId || uni.getStorageSync('userInfo').userIndex
|
||||
userId: userId || uni.getStorageSync('userInfo').userIndex,
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -163,7 +164,7 @@ export const queryDeviceUser = (devId) => {
|
||||
url: '/cs-device-boot/deviceUser/queryUserById',
|
||||
method: 'POST',
|
||||
data: {
|
||||
devId
|
||||
devId,
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -176,3 +177,21 @@ export const cancelShare = (params) => {
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 取消调试
|
||||
export const cancelDebug = (params) => {
|
||||
return request({
|
||||
url: '/cs-device-boot/EquipmentDelivery/deleteTest',
|
||||
method: 'POST',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 完成调试
|
||||
export const finishDebug = (params) => {
|
||||
return request({
|
||||
url: '/cs-device-boot/EquipmentDelivery/testcompletion',
|
||||
method: 'POST',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<uni-card
|
||||
:title="device.equipmentName"
|
||||
:sub-title="device.mac"
|
||||
:extra="device.isPrimaryUser?'主用户':'子用户'"
|
||||
:extra="device.isPrimaryUser ? '主用户' : '子用户'"
|
||||
padding="0"
|
||||
@click="jump(device)"
|
||||
:thumbnail="deviceIcon(device.runStatus)"
|
||||
@@ -19,6 +19,10 @@
|
||||
<text>项目名称</text>
|
||||
<text>{{ device.projectName }}</text>
|
||||
</view>
|
||||
<view class="device-body-item mt6" v-if="device.process == 2 || device.process == 3">
|
||||
<text>设备状态</text>
|
||||
<text>{{ device.process == 2 ? '功能调试' : '出厂调试' }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</uni-card>
|
||||
</template>
|
||||
@@ -30,9 +34,8 @@ export default {
|
||||
props: {
|
||||
device: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
}
|
||||
}
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
deviceIcon(e) {
|
||||
@@ -52,13 +55,19 @@ export default {
|
||||
},
|
||||
jump() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/APF/detail?id=' + this.device.equipmentId + '&isPrimaryUser=' + this.device.isPrimaryUser,
|
||||
url:
|
||||
'/pages/device/APF/detail?id=' +
|
||||
this.device.equipmentId +
|
||||
'&isPrimaryUser=' +
|
||||
this.device.isPrimaryUser +
|
||||
'&process=' +
|
||||
this.device.process,
|
||||
})
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang='scss'>
|
||||
<style lang="scss">
|
||||
.device-body {
|
||||
padding: 20rpx;
|
||||
|
||||
|
||||
@@ -29,14 +29,13 @@
|
||||
<view class="module">
|
||||
<view class="grid-card">
|
||||
<view class="grid-card-content-2">
|
||||
<template v-for="(item,index) in IOData">
|
||||
<template v-for="(item, index) in IOData">
|
||||
<view class="item">{{ item.clDid }}</view>
|
||||
<view class="item">
|
||||
<view style="width: 30rpx"> {{ item.value || '-' }}</view>
|
||||
<view v-if="item.value"> °C</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -53,7 +52,7 @@
|
||||
v-for="(item, index) in navMenuList"
|
||||
:key="index"
|
||||
@click="navMenuClick(index)"
|
||||
>{{ item.text }}
|
||||
>{{ item.text }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -87,6 +86,18 @@
|
||||
<uni-popup-share title="分享到"></uni-popup-share>
|
||||
<view style="height: 40rpx; background: #fff"></view>
|
||||
</uni-popup>
|
||||
<!-- 完成调试输入框 -->
|
||||
<uni-popup ref="inputDialog" type="dialog">
|
||||
<uni-popup-dialog
|
||||
ref="inputClose"
|
||||
mode="input"
|
||||
:title="dialogType"
|
||||
placeholder="请输入备注"
|
||||
:before-close="true"
|
||||
@close="dialogInputClose"
|
||||
@confirm="dialogInputConfirm"
|
||||
></uni-popup-dialog>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</view>
|
||||
</Cn-page>
|
||||
@@ -97,10 +108,10 @@ import xieBo from './comp/xieBo.vue'
|
||||
import power from './comp/power.vue'
|
||||
import oscillogram from './comp/oscillogram.vue'
|
||||
import IO from './comp/IO.vue'
|
||||
import {queryTopologyDiagram, deleteDevice} from '@/common/api/device'
|
||||
import {MQTT_IP, MQTT_OPTIONS} from '@/common/js/mqtt.js'
|
||||
import { queryTopologyDiagram, deleteDevice, cancelDebug, finishDebug } from '@/common/api/device'
|
||||
import { MQTT_IP, MQTT_OPTIONS } from '@/common/js/mqtt.js'
|
||||
import mqtt from 'mqtt/dist/mqtt.js'
|
||||
import {base64ToPath, pathToBase64} from 'image-tools'
|
||||
import { base64ToPath, pathToBase64 } from 'image-tools'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@@ -112,6 +123,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogType: '',
|
||||
domLoading: true,
|
||||
loading: true,
|
||||
deviceInfo: {},
|
||||
@@ -159,13 +171,14 @@ export default {
|
||||
topolodyData: [],
|
||||
basicData: [],
|
||||
IOData: [],
|
||||
pageOptions: {},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
trigger(e) {
|
||||
console.log(e)
|
||||
if (e.item.text === '分享') {
|
||||
uni.navigateTo({url: '/pages/device/share?id=' + this.devId})
|
||||
uni.navigateTo({ url: '/pages/device/share?id=' + this.devId })
|
||||
} else if (e.item.text === '删除') {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
@@ -190,17 +203,17 @@ export default {
|
||||
} else if (e.item.text === '下载') {
|
||||
this.$util.toast('下载成功')
|
||||
} else if (e.item.text === '记录') {
|
||||
uni.navigateTo({url: '/pages/device/APF/record'})
|
||||
uni.navigateTo({ url: '/pages/device/APF/record' })
|
||||
} else if (e.item.text === '告警') {
|
||||
uni.navigateTo({url: '/pages/device/APF/report'})
|
||||
uni.navigateTo({ url: '/pages/device/APF/report' })
|
||||
} else if (e.item.text === '关于') {
|
||||
uni.navigateTo({url: '/pages/device/APF/about?id=' + this.devId})
|
||||
uni.navigateTo({ url: '/pages/device/APF/about?id=' + this.devId })
|
||||
} else if (e.item.text === '移交') {
|
||||
uni.navigateTo({url: '/pages/device/transfer?id=' + this.devId})
|
||||
uni.navigateTo({ url: '/pages/device/transfer?id=' + this.devId })
|
||||
} else if (e.item.text === '反馈') {
|
||||
uni.navigateTo({url: '/pages/device/feedback'})
|
||||
uni.navigateTo({ url: '/pages/device/feedback' })
|
||||
} else if (e.item.text === '用户') {
|
||||
uni.navigateTo({url: '/pages/device/user?id=' + this.devId + '&isPrimaryUser=' + this.isPrimaryUser})
|
||||
uni.navigateTo({ url: '/pages/device/user?id=' + this.devId + '&isPrimaryUser=' + this.isPrimaryUser })
|
||||
} else if (e.item.text === '报表') {
|
||||
this.$util.toast('效果是直接打开报表')
|
||||
} else if (e.item.text === '版本') {
|
||||
@@ -215,12 +228,59 @@ export default {
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/edit?deviceInfo=' + encodeURIComponent(JSON.stringify(data)),
|
||||
})
|
||||
} else if (e.item.text === '取消调试') {
|
||||
this.cancelDebug()
|
||||
} else if (e.item.text === '完成调试') {
|
||||
this.finishDebug()
|
||||
}
|
||||
this.$refs.fab.close()
|
||||
},
|
||||
// 取消调试
|
||||
cancelDebug() {
|
||||
this.dialogType = '取消调试'
|
||||
this.$refs.inputDialog.open()
|
||||
},
|
||||
// 完成调试
|
||||
finishDebug() {
|
||||
this.dialogType = '完成调试'
|
||||
this.$refs.inputDialog.open()
|
||||
},
|
||||
dialogInputClose() {
|
||||
this.$refs.inputDialog.close()
|
||||
},
|
||||
dialogInputConfirm(val) {
|
||||
if (!val) {
|
||||
this.$util.toast('请输入备注')
|
||||
return
|
||||
}
|
||||
if (this.dialogType == '取消调试') {
|
||||
cancelDebug({
|
||||
deviceId: this.devId,
|
||||
remark: val,
|
||||
type: Number(this.pageOptions.process),
|
||||
}).then((res) => {
|
||||
this.$util.toast(res.message)
|
||||
setTimeout(() => {
|
||||
uni.navigateBack()
|
||||
}, 1500)
|
||||
})
|
||||
} else {
|
||||
finishDebug({
|
||||
deviceId: this.devId,
|
||||
remark: val,
|
||||
type: Number(this.pageOptions.process),
|
||||
}).then((res) => {
|
||||
console.log(res)
|
||||
this.$util.toast(res.message)
|
||||
setTimeout(() => {
|
||||
uni.navigateBack()
|
||||
}, 1500)
|
||||
})
|
||||
}
|
||||
},
|
||||
navMenuClick(idx) {
|
||||
this.navMenuActive = idx
|
||||
uni.pageScrollTo({scrollTop: 0, duration: 0})
|
||||
uni.pageScrollTo({ scrollTop: 0, duration: 0 })
|
||||
},
|
||||
downloadImg() {
|
||||
uni.downloadFile({
|
||||
@@ -231,18 +291,16 @@ export default {
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
},
|
||||
init() {
|
||||
console.log('init')
|
||||
|
||||
this.loading = true
|
||||
this.domLoading = true
|
||||
queryTopologyDiagram(this.devId).then((res) => {
|
||||
res.data.filePath = this.$config.static + res.data.filePath
|
||||
this.deviceInfo = res.data
|
||||
this.downloadImg()
|
||||
uni.setNavigationBarTitle({title: this.deviceInfo.devName || '设备详情'})
|
||||
uni.setNavigationBarTitle({ title: this.deviceInfo.devName || '设备详情' })
|
||||
this.topolodyData = this.topolodyData.filter((item) => {
|
||||
let index = this.deviceInfo.appsLineTopologyDiagramPO.findIndex((element) => {
|
||||
element.label = element.name
|
||||
@@ -344,7 +402,7 @@ export default {
|
||||
// }
|
||||
// })
|
||||
this.IOData = JSON.parse(message.toString())
|
||||
this.IOData.forEach(item => {
|
||||
this.IOData.forEach((item) => {
|
||||
if (item.value === 0) {
|
||||
item.value = '0'
|
||||
} else if (!item.value) {
|
||||
@@ -360,7 +418,7 @@ export default {
|
||||
let arr = []
|
||||
element.showKey.forEach((key) => {
|
||||
data.forEach((item) => {
|
||||
if (item.statisticalName === key && item.phase === 'avg' ) {
|
||||
if (item.statisticalName === key && item.phase === 'avg') {
|
||||
arr.push(key + ':' + item.statisticalData)
|
||||
}
|
||||
})
|
||||
@@ -377,41 +435,60 @@ export default {
|
||||
this.client.end()
|
||||
},
|
||||
onLoad(options) {
|
||||
this.pageOptions = options
|
||||
this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
|
||||
this.devId = options.id
|
||||
this.isPrimaryUser = options.isPrimaryUser
|
||||
if (this.isPrimaryUser == 1) {
|
||||
if (this.pageOptions.process == 2 || this.pageOptions.process == 3) {
|
||||
this.content.splice(
|
||||
0,
|
||||
0,
|
||||
{
|
||||
iconPath: '/static/transfer.png',
|
||||
text: '移交',
|
||||
},
|
||||
{
|
||||
iconPath: '/static/feedback.png',
|
||||
text: '编辑',
|
||||
},
|
||||
{
|
||||
iconPath: '/static/delate.png',
|
||||
text: '删除',
|
||||
text: '取消调试',
|
||||
},
|
||||
{
|
||||
iconPath: '/static/delate.png',
|
||||
text: '完成调试',
|
||||
},
|
||||
)
|
||||
if (this.userInfo.authorities === 'app_vip_user') {
|
||||
this.content.splice(3, 0, {
|
||||
iconPath: '/static/share.png',
|
||||
text: '分享',
|
||||
} else {
|
||||
if (this.isPrimaryUser == 1) {
|
||||
this.content.splice(
|
||||
0,
|
||||
0,
|
||||
{
|
||||
iconPath: '/static/transfer.png',
|
||||
text: '移交',
|
||||
},
|
||||
{
|
||||
iconPath: '/static/feedback.png',
|
||||
text: '编辑',
|
||||
},
|
||||
{
|
||||
iconPath: '/static/delate.png',
|
||||
text: '删除',
|
||||
},
|
||||
)
|
||||
if (this.userInfo.authorities === 'app_vip_user') {
|
||||
this.content.splice(3, 0, {
|
||||
iconPath: '/static/share.png',
|
||||
text: '分享',
|
||||
})
|
||||
}
|
||||
}
|
||||
if (this.userInfo.authorities !== 'tourist') {
|
||||
this.content.splice(0, 0, {
|
||||
iconPath: '/static/subordinate.png',
|
||||
text: '用户',
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
if (this.userInfo.authorities !== 'tourist') {
|
||||
this.content.splice(0, 0, {
|
||||
iconPath: '/static/subordinate.png',
|
||||
text: '用户',
|
||||
})
|
||||
}
|
||||
this.topolodyData = this.$util.getDictData('Line_Position').map(item => {
|
||||
this.topolodyData = this.$util.getDictData('Line_Position').map((item) => {
|
||||
switch (item.name) {
|
||||
case '电网侧':
|
||||
item.showKey = ['Apf_ThdA_Sys(%)']
|
||||
|
||||
@@ -314,7 +314,7 @@ export default {
|
||||
if (!this.formData.nDid) {
|
||||
return this.$util.toast('请输入设备识别码')
|
||||
}
|
||||
registerDevice(this.formData.nDid).then((res) => {
|
||||
registerDevice(this.formData.nDid, Number(this.options.type)).then((res) => {
|
||||
getModel(this.formData.nDid).then((res) => {
|
||||
console.log(res)
|
||||
this.pointList = res.data.map((item) => {
|
||||
|
||||
@@ -13,20 +13,37 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import list from "@/common/js/list";
|
||||
|
||||
export default {
|
||||
data () {
|
||||
mixins: [list],
|
||||
data() {
|
||||
return {
|
||||
title: '灿能'
|
||||
loading: true,
|
||||
}
|
||||
},
|
||||
onLoad () {
|
||||
|
||||
onShow() {
|
||||
this.init()
|
||||
},
|
||||
methods: {
|
||||
jump () {
|
||||
console.log(123);
|
||||
uni.navigateTo({ url: '/pages/message/termList' })
|
||||
}
|
||||
init() {
|
||||
let dictData = this.$util.getDictData('app_event')
|
||||
console.log(dictData)
|
||||
this.store = this.DataSource('/cs-harmonic-boot/event/queryEventList')
|
||||
this.store.params.type = 3
|
||||
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/transientDetail?detail=' + encodeURIComponent(str)})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -13,13 +13,37 @@
|
||||
</Cn-page>
|
||||
</template>
|
||||
<script>
|
||||
import list from "@/common/js/list";
|
||||
|
||||
export default {
|
||||
data () {
|
||||
mixins: [list],
|
||||
data() {
|
||||
return {
|
||||
loading: false
|
||||
loading: true,
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.init()
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
let dictData = this.$util.getDictData('app_event')
|
||||
console.log(dictData)
|
||||
this.store = this.DataSource('/cs-harmonic-boot/event/queryEventList')
|
||||
this.store.params.type = 2
|
||||
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/transientDetail?detail=' + encodeURIComponent(str)})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -10,21 +10,38 @@
|
||||
<uni-load-more status="nomore"></uni-load-more>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import list from "@/common/js/list";
|
||||
|
||||
export default {
|
||||
data () {
|
||||
mixins: [list],
|
||||
data() {
|
||||
return {
|
||||
title: '灿能'
|
||||
loading: true,
|
||||
}
|
||||
},
|
||||
onLoad () {
|
||||
|
||||
onShow() {
|
||||
this.init()
|
||||
},
|
||||
methods: {
|
||||
jump(){
|
||||
uni.navigateTo({ url: '/pages/message/steadyList' })
|
||||
}
|
||||
init() {
|
||||
let dictData = this.$util.getDictData('app_event')
|
||||
console.log(dictData)
|
||||
this.store = this.DataSource('/cs-harmonic-boot/event/queryEventList')
|
||||
this.store.params.type = 1
|
||||
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/transientDetail?detail=' + encodeURIComponent(str)})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user