测试bug修改
This commit is contained in:
@@ -1,11 +1,16 @@
|
||||
<template>
|
||||
<Cn-page :loading="loading" noPadding>
|
||||
<view slot="body">
|
||||
<view class="detail">
|
||||
<view class="detail" :style="{ opacity: domLoading ? '0' : '1' }">
|
||||
<view class="detail-header">
|
||||
<Cn-htmlToImg domId="header" @renderFinish="renderFinish">
|
||||
<view class="header" ref="header" @click="previewImg">
|
||||
<img :src="deviceInfo.filePath" style="width: 375px" mode="widthFix" />
|
||||
<view class="header" id="header" ref="header" @click="previewImg">
|
||||
<img
|
||||
:src="deviceInfo.filePath"
|
||||
style="width: 375px; display: block"
|
||||
mode="widthFix"
|
||||
@load="domLoading = false"
|
||||
/>
|
||||
<view
|
||||
class="point"
|
||||
:style="{ left: item.lat + 'px', top: item.lng + 'px' }"
|
||||
@@ -36,18 +41,6 @@
|
||||
<view style="width: 30rpx"> 0 </view>
|
||||
<view> °C </view>
|
||||
</view>
|
||||
<view class="item">模块三</view>
|
||||
<view class="item">
|
||||
<view class="status-point-success mr10"></view>
|
||||
<view style="width: 30rpx"> 15 </view>
|
||||
<view> °C </view>
|
||||
</view>
|
||||
<view class="item">模块四</view>
|
||||
<view class="item">
|
||||
<view class="status-point-success mr10"></view>
|
||||
<view style="width: 30rpx"> 15 </view>
|
||||
<view> °C </view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -78,10 +71,10 @@
|
||||
<view v-else-if="navMenuActive == 2">
|
||||
<power :deviceInfo="deviceInfo"></power>
|
||||
</view>
|
||||
<view v-else-if="navMenuActive == 3">
|
||||
<!-- <view v-else-if="navMenuActive == 3">
|
||||
<oscillogram></oscillogram>
|
||||
</view>
|
||||
<view v-else-if="navMenuActive == 4">
|
||||
</view> -->
|
||||
<view v-else-if="navMenuActive == 3">
|
||||
<IO :deviceInfo="deviceInfo"></IO>
|
||||
</view>
|
||||
<view style="height: 20rpx"></view>
|
||||
@@ -111,7 +104,7 @@ import IO from './comp/IO.vue'
|
||||
import { queryTopologyDiagram, deleteDevice } from '@/common/api/device'
|
||||
import { MQTT_IP, MQTT_OPTIONS } from '@/common/js/mqtt.js'
|
||||
import mqtt from 'mqtt/dist/mqtt.js'
|
||||
import { base64ToPath } from 'image-tools'
|
||||
import { base64ToPath, pathToBase64 } from 'image-tools'
|
||||
export default {
|
||||
components: {
|
||||
basic,
|
||||
@@ -122,6 +115,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
domLoading: true,
|
||||
loading: true,
|
||||
deviceInfo: {},
|
||||
navMenuActive: 0,
|
||||
@@ -364,7 +358,7 @@ export default {
|
||||
this.init()
|
||||
queryTopologyDiagram(options.id).then((res) => {
|
||||
this.deviceInfo = res.data
|
||||
console.log(this.dictData)
|
||||
uni.setNavigationBarTitle({ title: this.deviceInfo.devName || '设备详情' })
|
||||
this.dictData.forEach((item) => {
|
||||
if (item.code == 'Line_Position') {
|
||||
item.children.forEach((item2) => {
|
||||
@@ -377,16 +371,6 @@ export default {
|
||||
}
|
||||
})
|
||||
this.initMqtt()
|
||||
console.log(this.loading, 'loading')
|
||||
// this.$nextTick(() => {
|
||||
// // 获取nav高度
|
||||
// uni.createSelectorQuery()
|
||||
// .select('.nav')
|
||||
// .boundingClientRect((rect) => {
|
||||
// this.navHeight = rect.height
|
||||
// })
|
||||
// .exec()
|
||||
// })
|
||||
})
|
||||
},
|
||||
}
|
||||
@@ -438,7 +422,7 @@ export default {
|
||||
.module {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 20rpx;
|
||||
right: 10rpx;
|
||||
width: 200rpx;
|
||||
|
||||
.grid-card-content-2,
|
||||
|
||||
@@ -31,10 +31,10 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
back() {
|
||||
this.$util.refreshPrePage(2)
|
||||
uni.navigateBack({ delta: 1 })
|
||||
},
|
||||
home() {
|
||||
this.$util.refreshPrePage(2)
|
||||
uni.navigateBack({ delta: 1 })
|
||||
},
|
||||
},
|
||||
onLoad(options) {
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
|
||||
<script>
|
||||
import list from '../../common/js/list'
|
||||
|
||||
export default {
|
||||
mixins: [list],
|
||||
data() {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<page-meta :page-style="'overflow:'+(show?'hidden':'visible')"></page-meta>
|
||||
<uni-forms :label-width="80">
|
||||
<uni-forms-item label="工程名称">
|
||||
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入工程名称" />
|
||||
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入工程名称"/>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="位置">
|
||||
<!-- <view style="display:flex;">
|
||||
@@ -15,7 +15,8 @@
|
||||
<uni-icons type="location" color="#007aff" size="26" class="ml20"
|
||||
@click="chooseLocation"></uni-icons>
|
||||
</view> -->
|
||||
<uni-data-picker :localdata="localdata" @change="areaChange" v-model="value" @popupopened="show=true" @popupclosed="show=false">
|
||||
<uni-data-picker :localdata="localdata" @change="areaChange" v-model="value"
|
||||
@popupopened="show=true" @popupclosed="show=false">
|
||||
</uni-data-picker>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="描述">
|
||||
@@ -29,15 +30,16 @@
|
||||
</uni-forms>
|
||||
</view>
|
||||
<view class="btn-wrap">
|
||||
<view class="btn-wrap-item" @click="submit"> 提交 </view>
|
||||
<view class="btn-wrap-item" @click="submit"> 提交</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</Cn-page>
|
||||
</template>
|
||||
<script>
|
||||
import { addEngineering, auditEngineering } from '../../common/api/engineering'
|
||||
import {addEngineering, auditEngineering} from '../../common/api/engineering'
|
||||
import area from '../../common/js/area.json'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -52,9 +54,11 @@ export default {
|
||||
},
|
||||
engineering: {},
|
||||
show: false,
|
||||
options: {}
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.options = options
|
||||
if (options.engineering) {
|
||||
this.engineering = JSON.parse(decodeURIComponent(options.engineering))
|
||||
console.log(this.engineering)
|
||||
@@ -65,7 +69,7 @@ export default {
|
||||
}
|
||||
this.value = this.engineering.city
|
||||
this.formData.id = this.engineering.id
|
||||
uni.setNavigationBarTitle({ title: '工程编辑' })
|
||||
uni.setNavigationBarTitle({title: '工程编辑'})
|
||||
}
|
||||
uni.getLocation({
|
||||
type: 'wgs84',
|
||||
@@ -79,7 +83,8 @@ export default {
|
||||
console.log(this.$util.prePage())
|
||||
},
|
||||
methods: {
|
||||
toJSON() {},
|
||||
toJSON() {
|
||||
},
|
||||
areaChange(e) {
|
||||
if (e.detail.value.length) {
|
||||
this.formData.province = e.detail.value[0].value
|
||||
@@ -123,9 +128,17 @@ export default {
|
||||
this.$util.toast('工程修改成功')
|
||||
this.$util.refreshPrePage(2)
|
||||
} else {
|
||||
await addEngineering(this.formData)
|
||||
let res = await addEngineering(this.formData)
|
||||
this.$util.toast('工程创建成功')
|
||||
this.$util.refreshPrePage()
|
||||
if (this.options.from === 'index') {
|
||||
uni.setStorageSync('engineering', res.data)
|
||||
uni.redirectTo({
|
||||
url: '/pages/device/new',
|
||||
})
|
||||
return
|
||||
} else {
|
||||
this.$util.refreshPrePage()
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -82,7 +82,7 @@ export default {
|
||||
res = res[1]
|
||||
res = JSON.parse(res.data)
|
||||
console.log(res);
|
||||
if (res.code = 'A0000') {
|
||||
if (res.code === 'A0000') {
|
||||
this.$util.toast(res.message)
|
||||
setTimeout(() => {
|
||||
uni.redirectTo({ url: '/pages/message/feedback' })
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<view style="flex: 1"></view>
|
||||
<template v-if="deviceListFilter.length">
|
||||
<template v-if="transfer || share">
|
||||
<view class="nav-menu nav-menu-btn" @click="submit">完成 </view>
|
||||
<view class="nav-menu nav-menu-btn" @click="submit">确定 </view>
|
||||
</template>
|
||||
<template v-else>
|
||||
<view
|
||||
|
||||
@@ -1,26 +1,30 @@
|
||||
<template>
|
||||
<view class="index-zhuyonghu">
|
||||
<view class="canneng-index-title mb20">所有工程统计信息</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
<template v-if="devCount.engineeringListLength > 1">
|
||||
<view class="canneng-index-title mb20">所有工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="canneng-index-title mb20 mt20">当前工程统计信息</view>
|
||||
<view class="mt20"></view>
|
||||
</template>
|
||||
<view class="canneng-index-title mb20">当前工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{
|
||||
devCount.currentOnLineDevCount + devCount.currentOffLineDevCount || 0
|
||||
}}</view>
|
||||
devCount.currentOnLineDevCount + devCount.currentOffLineDevCount || 0
|
||||
}}
|
||||
</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('currentOnLineDevs')">
|
||||
@@ -37,7 +41,7 @@
|
||||
<Cn-grid title="">
|
||||
<Cn-grid-item src="/static/device2.png" text="设备注册" @click="registerDevice"></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>
|
||||
</view>
|
||||
</view>
|
||||
@@ -57,7 +61,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
submitFeedBack() {
|
||||
uni.navigateTo({ url: '/pages/home/feedback' })
|
||||
uni.navigateTo({url: '/pages/home/feedback'})
|
||||
},
|
||||
registerDevice() {
|
||||
uni.showModal({
|
||||
@@ -66,15 +70,23 @@ export default {
|
||||
confirmText: '直连装置',
|
||||
cancelText: '网关接入',
|
||||
cancelColor: '#007aff',
|
||||
success: ({ confirm, cancel }) => {
|
||||
success: ({confirm, cancel}) => {
|
||||
if (confirm) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/new',
|
||||
})
|
||||
if (this.devCount.engineeringListLength > 1) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/new',
|
||||
})
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/engineering/new?from=index'
|
||||
})
|
||||
}
|
||||
|
||||
} else if (cancel) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/gateway/list',
|
||||
})
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/gateway/list',
|
||||
// })
|
||||
this.$util.toast('功能正在开发,敬请期待')
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
<template>
|
||||
<view class="index-zhuyonghu">
|
||||
<view class="canneng-index-title mb20">所有工程统计信息</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
<template v-if="devCount.engineeringListLength > 1">
|
||||
<view class="canneng-index-title mb20">所有工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="canneng-index-title mb20 mt20">当前工程统计信息</view>
|
||||
<view class="mt20"></view>
|
||||
</template>
|
||||
<view class="canneng-index-title mb20">当前工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{
|
||||
@@ -42,7 +45,7 @@ export default {
|
||||
default: {},
|
||||
},
|
||||
},
|
||||
methods:{
|
||||
methods: {
|
||||
jump(type) {
|
||||
switch (type) {
|
||||
default:
|
||||
@@ -56,7 +59,7 @@ export default {
|
||||
break
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss"></style>
|
||||
|
||||
@@ -1,33 +1,36 @@
|
||||
<template>
|
||||
<view class="index-zhuanzhi">
|
||||
<view class="canneng-index-title mb20">所有工程统计信息</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
<template v-if="devCount.engineeringListLength > 1">
|
||||
<view class="canneng-index-title mb20">所有工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.alarmCount || 0 }}</view>
|
||||
<view class="header-item-label">告警数量</view>
|
||||
</view>
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.eventCount || 0 }}</view>
|
||||
<view class="header-item-label">事件数量</view>
|
||||
</view>
|
||||
<view class="header-item" @click="projectNum">
|
||||
<view class="header-item-value">{{ devCount.projectCount || 0 }}</view>
|
||||
<view class="header-item-label">项目个数</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.alarmCount || 0 }}</view>
|
||||
<view class="header-item-label">告警数量</view>
|
||||
</view>
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.eventCount || 0 }}</view>
|
||||
<view class="header-item-label">事件数量</view>
|
||||
</view>
|
||||
<view class="header-item" @click="projectNum">
|
||||
<view class="header-item-value">{{ devCount.projectCount || 0 }}</view>
|
||||
<view class="header-item-label">项目个数</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="canneng-index-title mb20 mt20">当前工程统计信息</view>
|
||||
<view class="mt20"></view>
|
||||
</template>
|
||||
<view class="canneng-index-title mb20">当前工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
<template>
|
||||
<view class="index-zhuyonghu">
|
||||
<view class="canneng-index-title mb20">所有工程统计信息</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
<template v-if="devCount.engineeringListLength > 1">
|
||||
<view class="canneng-index-title mb20">所有工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="canneng-index-title mb20 mt20">当前工程统计信息</view>
|
||||
<view class="mt20"></view>
|
||||
</template>
|
||||
<view class="canneng-index-title mb20">当前工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{
|
||||
@@ -37,7 +40,7 @@
|
||||
<Cn-grid title="">
|
||||
<Cn-grid-item src="/static/device2.png" text="设备注册" @click="registerDevice"></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>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,33 +1,36 @@
|
||||
<template>
|
||||
<view class="index-zhuanzhi">
|
||||
<view class="canneng-index-title mb20">所有工程统计信息</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
<template v-if="devCount.engineeringListLength > 1">
|
||||
<view class="canneng-index-title mb20">所有工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount + devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">设备总数</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.alarmCount || 0 }}</view>
|
||||
<view class="header-item-label">告警数量</view>
|
||||
</view>
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.eventCount || 0 }}</view>
|
||||
<view class="header-item-label">事件数量</view>
|
||||
</view>
|
||||
<view class="header-item" @click="projectNum">
|
||||
<view class="header-item-value">{{ devCount.projectCount || 0 }}</view>
|
||||
<view class="header-item-label">项目个数</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('onLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.onLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">在线设备</view>
|
||||
</view>
|
||||
<view class="header-item" @click="jump('offLineDevs')">
|
||||
<view class="header-item-value">{{ devCount.offLineDevCount || 0 }}</view>
|
||||
<view class="header-item-label">离线设备</view>
|
||||
</view>
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.alarmCount || 0 }}</view>
|
||||
<view class="header-item-label">告警数量</view>
|
||||
</view>
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{ devCount.eventCount || 0 }}</view>
|
||||
<view class="header-item-label">事件数量</view>
|
||||
</view>
|
||||
<view class="header-item" @click="projectNum">
|
||||
<view class="header-item-value">{{ devCount.projectCount || 0 }}</view>
|
||||
<view class="header-item-label">项目个数</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="canneng-index-title mb20 mt20">当前工程统计信息</view>
|
||||
<view class="mt20"></view>
|
||||
</template>
|
||||
<view class="canneng-index-title mb20">当前工程设备统计</view>
|
||||
<view class="header">
|
||||
<view class="header-item">
|
||||
<view class="header-item-value">{{
|
||||
|
||||
@@ -123,6 +123,7 @@ export default {
|
||||
let res = await queryEngineering()
|
||||
this.engineeringList = res.data
|
||||
if (this.engineeringList.length === 0) {
|
||||
uni.removeStorageSync(this.$cacheKey.engineering)
|
||||
return
|
||||
}
|
||||
if (!engineering) {
|
||||
@@ -155,6 +156,8 @@ export default {
|
||||
this.devCount.offLineDevs.forEach((item) => {
|
||||
item.runStatus = 1
|
||||
})
|
||||
this.devCount.engineeringListLength = this.engineeringList.length
|
||||
console.log(this.devCount);
|
||||
})
|
||||
this.$refs.device && this.$refs.device.init()
|
||||
},
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { roleUpdate } from '@/common/api/user'
|
||||
import { roleUpdate, autoLogin } from '@/common/api/user'
|
||||
import { transferDevice } from '@/common/api/device'
|
||||
|
||||
export default {
|
||||
@@ -137,14 +137,16 @@ export default {
|
||||
referralCode: code,
|
||||
userId: this.userInfo.userIndex,
|
||||
}).then((res) => {
|
||||
uni.removeStorage('engineering')
|
||||
uni.showToast({
|
||||
title: '升级成功',
|
||||
icon: 'none',
|
||||
})
|
||||
// 重新登录
|
||||
uni.reLaunch({
|
||||
url: '/pages/user/login',
|
||||
uni.removeStorageSync('access_token')
|
||||
// 直接登录
|
||||
autoLogin(this.userInfo.user_name).then((res) => {
|
||||
this.$util.loginSuccess(res.data).then((userInfo) => {
|
||||
this.userInfo = userInfo
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
@@ -25,8 +25,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.store = this.DataSource('/cs-device-boot/feedback/queryFeedBackPage')
|
||||
this.store.params.userId = uni.getStorageSync('userInfo').id
|
||||
this.store = this.DataSource('/cs-system-boot/feedback/queryFeedBackPage')
|
||||
this.store.reload()
|
||||
},
|
||||
jump(item) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<view slot='body'>
|
||||
<view class='about'>
|
||||
<image src="/static/logo.png" class="logo"></image>
|
||||
<view class="name">灿能云</view>
|
||||
<view class="name">灿能物联</view>
|
||||
<view class="version">Version 1.0.0</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -23,14 +23,14 @@ export default {
|
||||
<style lang='scss'>
|
||||
.about {
|
||||
box-sizing: border-box;
|
||||
height: 100vh;
|
||||
padding: 34rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
overflow: hidden;
|
||||
.logo {
|
||||
margin-top: 200rpx;
|
||||
height: 120rpx;
|
||||
width: 120rpx;
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
<view class="mine-nav-label">公司介绍</view>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
</view>
|
||||
<view class="mine-nav" @click="jump('feedback')">
|
||||
<!-- <view class="mine-nav" @click="jump('feedback')">
|
||||
<view class="mine-nav-label">意见反馈</view>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="mine-nav" @click="jump('about')" style="border-bottom: none; ">
|
||||
<view class="mine-nav-label">关于我们</view>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<view v-show="navMenuActive == 0">
|
||||
<uni-card
|
||||
:title="item.equipmentName"
|
||||
sub-title="创建时间"
|
||||
:sub-title="'创建时间:' + item.createTime"
|
||||
v-for="item in store.data"
|
||||
:key="item.equipmentId"
|
||||
@click="goDevice(item)"
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
<view class="term-list-bottom">
|
||||
<view class="term-list-bottom-item">
|
||||
<view>设备个数</view>
|
||||
<view>3</view>
|
||||
<view>{{item.devNum}}</view>
|
||||
</view>
|
||||
<view class="term-list-bottom-item">
|
||||
<view>用户个数</view>
|
||||
<view>1</view>
|
||||
<view>创建时间</view>
|
||||
<view>{{item.createTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-card>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="项目名称">
|
||||
<uni-easyinput v-model="formData.name" placeholder="请输入项目名称" />
|
||||
<uni-easyinput v-model="formData.name" placeholder="请输入项目名称"/>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="区域">
|
||||
<view style="display: flex">
|
||||
@@ -51,7 +51,7 @@
|
||||
mode="aspectFill"
|
||||
/>
|
||||
<view class="temp-choose-content-item-close" @click="deleteImg(index)">
|
||||
<uni-icons style="font-size: 18px" type="closeempty" color="#fff" size="20" />
|
||||
<uni-icons style="font-size: 18px" type="closeempty" color="#fff" size="20"/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="temp-choose-content-item" @click="openTemp">
|
||||
@@ -63,12 +63,13 @@
|
||||
v-model="formData.files"
|
||||
title="从本地上传拓扑图"
|
||||
:sourceType="['album']"
|
||||
:before-remove="beforeRemove"
|
||||
@select="select"
|
||||
></uni-file-picker>
|
||||
</uni-forms>
|
||||
</view>
|
||||
<view class="btn-wrap">
|
||||
<view class="btn-wrap-item" @click="submit"> 提交 </view>
|
||||
<view class="btn-wrap-item" @click="submit"> 提交</view>
|
||||
</view>
|
||||
<uni-drawer ref="showRight" mode="right" :mask-click="false">
|
||||
<uni-indexed-list
|
||||
@@ -81,7 +82,7 @@
|
||||
<view class="popup-header">
|
||||
<view class="popup-header-title">模版库</view>
|
||||
<view class="popup-header-close" @click="closeTemp">
|
||||
<uni-icons type="closeempty" color="#111" size="20" />
|
||||
<uni-icons type="closeempty" color="#111" size="20"/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="temp-list">
|
||||
@@ -89,13 +90,13 @@
|
||||
class="temp-list-item"
|
||||
:class="{
|
||||
'temp-list-item-active': formData.tempFiles.some(
|
||||
(item2) => item2.id === item.id || item2.topoId === item.id,
|
||||
(item2) => item2.id === item.id || item2.topoId === item.id,
|
||||
),
|
||||
}"
|
||||
v-for="(item, index) in tempList"
|
||||
@click="chooseTempItem(item)"
|
||||
>
|
||||
<image class="temp-list-item-img" :src="item.filePath" mode="aspectFill" />
|
||||
<image class="temp-list-item-img" :src="item.filePath" mode="aspectFill"/>
|
||||
<view class="temp-list-item-name">{{ item.name }}</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -105,10 +106,11 @@
|
||||
</Cn-page>
|
||||
</template>
|
||||
<script>
|
||||
import { pinyin } from 'pinyin-pro'
|
||||
import { addAppProject, updateAppProject } from '../../common/api/project'
|
||||
import { getTopoTemplate } from '../../common/api/device'
|
||||
import { queryEngineering } from '@/common/api/engineering.js'
|
||||
import {pinyin} from 'pinyin-pro'
|
||||
import {addAppProject, updateAppProject, checkCanDelete} from '../../common/api/project'
|
||||
import {getTopoTemplate} from '../../common/api/device'
|
||||
import {queryEngineering} from '@/common/api/engineering.js'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -134,7 +136,7 @@ export default {
|
||||
engineeringListFilter() {
|
||||
let result = []
|
||||
this.engineeringList.forEach((item) => {
|
||||
let arr = pinyin(item.name[0], { toneType: 'none', type: 'array' })
|
||||
let arr = pinyin(item.name[0], {toneType: 'none', type: 'array'})
|
||||
let letter = arr[0][0].toUpperCase()
|
||||
console.log(letter)
|
||||
let index = result.findIndex((item) => item.letter === letter)
|
||||
@@ -198,14 +200,38 @@ export default {
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
deleteImg(index) {
|
||||
beforeRemove(e) {
|
||||
console.log(e)
|
||||
if (!e.tempFile.id) {
|
||||
return true
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
checkCanDelete(e.tempFile.id).then((res) => {
|
||||
console.log(res)
|
||||
if (res.data) {
|
||||
resolve(true)
|
||||
} else {
|
||||
reject()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async deleteImg(index) {
|
||||
await this.beforeRemove({
|
||||
tempFile: this.formData.tempFiles[index],
|
||||
})
|
||||
this.formData.tempFiles.splice(index, 1)
|
||||
},
|
||||
chooseTempItem(item) {
|
||||
if (this.formData.tempFiles.some((item2) => item2.id === item.id || item2.topoId === item.id)) {
|
||||
this.formData.tempFiles = this.formData.tempFiles.filter(
|
||||
(item2) => item2.id !== item.id && item2.topoId !== item.id,
|
||||
)
|
||||
async chooseTempItem(item) {
|
||||
console.log(item)
|
||||
console.log(this.formData.tempFiles)
|
||||
// 编辑的时候,如果已经存在就要验证topoId
|
||||
let index = this.formData.tempFiles.findIndex((item2) => item2.id === item.id || item2.topoId === item.id)
|
||||
if (index > -1) {
|
||||
await this.beforeRemove({
|
||||
tempFile: this.formData.tempFiles[index],
|
||||
})
|
||||
this.formData.tempFiles.splice(index, 1)
|
||||
} else {
|
||||
this.formData.tempFiles.push(item)
|
||||
}
|
||||
@@ -227,8 +253,8 @@ export default {
|
||||
},
|
||||
select(e) {
|
||||
console.log(e)
|
||||
this.formData.files.push(...e.tempFiles)
|
||||
console.log(this.formData.files)
|
||||
this.formData.files = this.formData.files.concat(e.tempFiles)
|
||||
},
|
||||
chooseLocation() {
|
||||
uni.chooseLocation({
|
||||
@@ -266,19 +292,28 @@ export default {
|
||||
let item = this.formData.files[i]
|
||||
console.log(item)
|
||||
arr.push({
|
||||
...item,
|
||||
name: 'files',
|
||||
uri: item.url,
|
||||
})
|
||||
}
|
||||
this.formData.topoIds = this.formData.tempFiles.map((item) => (item.topoId ? item.topoId : item.id))
|
||||
console.log(arr)
|
||||
this.formData.topoIds = this.formData.tempFiles.map((item) => (item.topoId))
|
||||
let data = JSON.parse(JSON.stringify(this.formData))
|
||||
delete data.files
|
||||
let res = {}
|
||||
console.warn(data, arr)
|
||||
if (this.project) {
|
||||
data.id = this.project.id
|
||||
data.newTopoIds = data.files.filter(item => item.id).map((item) => item.id)
|
||||
data.newTopoIds.push(...data.tempFiles.filter(item => item.id && item.topoId).map((item) => item.id))
|
||||
data.topoIds = data.tempFiles.filter(item => item.id && !item.topoId).map((item) => item.id)
|
||||
delete data.tempFiles
|
||||
delete data.files
|
||||
arr = arr.filter(item => !item.id)
|
||||
res = await updateAppProject(data, arr)
|
||||
} else {
|
||||
delete data.tempFiles
|
||||
delete data.files
|
||||
res = await addAppProject(data, arr)
|
||||
}
|
||||
let result = {}
|
||||
@@ -341,17 +376,21 @@ export default {
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.temp-choose {
|
||||
margin-bottom: 44rpx;
|
||||
|
||||
.temp-choose-title {
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.temp-choose-content {
|
||||
margin-top: 20rpx;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 198rpx);
|
||||
grid-gap: 10rpx;
|
||||
|
||||
.temp-choose-content-item {
|
||||
box-sizing: border-box;
|
||||
border: 1px #eee solid;
|
||||
@@ -360,12 +399,14 @@ export default {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 198rpx;
|
||||
|
||||
.temp-choose-content-item-img {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: skyblue;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.temp-choose-content-item-close {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -398,10 +439,12 @@ export default {
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
border: 4px solid #f1f1f1;
|
||||
|
||||
.temp-list-item-img {
|
||||
height: 280rpx;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.temp-list-item-name {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
@@ -409,6 +452,7 @@ export default {
|
||||
background: #fff;
|
||||
padding: 4rpx 8rpx;
|
||||
}
|
||||
|
||||
&-active {
|
||||
border: 4rpx solid $uni-theme-color;
|
||||
}
|
||||
|
||||
@@ -22,12 +22,14 @@
|
||||
<view class="login-box-input-img"></view>
|
||||
</view> -->
|
||||
<view class="login-box-input mt40">
|
||||
<input type="text" class="login-box-input-main" v-model="yzmForm.code" placeholder="手机验证码" maxlength="6" />
|
||||
<input type="text" class="login-box-input-main" v-model="yzmForm.code"
|
||||
placeholder="手机验证码" maxlength="6"/>
|
||||
<view
|
||||
class="ml40"
|
||||
style="font-size: 28rpx; color: #666; width: 200rpx; text-align: center"
|
||||
v-if="waitTime > 0"
|
||||
>{{ waitTime + 's后重新获取' }}</view
|
||||
>{{ waitTime + 's后重新获取' }}
|
||||
</view
|
||||
>
|
||||
<button class="login-box-input-btn" v-else @click="getCode" size="mini">获取验证码</button>
|
||||
</view>
|
||||
@@ -55,7 +57,7 @@
|
||||
<view class="login-box-input-img"></view>
|
||||
</view> -->
|
||||
</template>
|
||||
<view class="login-box-btn" @click="login"> 登录 </view>
|
||||
<view class="login-box-btn" @click="login"> 登录</view>
|
||||
<view class="login-box-footer">
|
||||
<view @click="loginType = 'pwd'" v-if="loginType == 'yzm'">账号密码登录</view>
|
||||
<view @click="loginType = 'yzm'" v-else>短信验证码登录</view>
|
||||
@@ -68,12 +70,14 @@
|
||||
</view>
|
||||
<view class="login-box-tips">
|
||||
<view style="color: #999"
|
||||
><checkbox
|
||||
>
|
||||
<checkbox
|
||||
style="transform: scale(0.7)"
|
||||
:checked="checkbox"
|
||||
@click="checkbox = !checkbox"
|
||||
/>
|
||||
我已阅读并同意</view
|
||||
我已阅读并同意
|
||||
</view
|
||||
>
|
||||
<navigator url="/pages/mine/agreement" hover-class="none">《用户协议》</navigator>
|
||||
<navigator url="/pages/mine/policy" hover-class="none">《个人信息保护政策》</navigator>
|
||||
@@ -84,9 +88,9 @@
|
||||
</Cn-page>
|
||||
</template>
|
||||
<script>
|
||||
import { apiGetYms, apiPwdLogin, apiYsmLogin, gongkey } from '@/common/api/user'
|
||||
import { sm2, encrypt } from '@/common/js/sm2.js'
|
||||
import { sm3Digest } from '@/common/js/sm3.js'
|
||||
import {apiGetYms, apiPwdLogin, apiYsmLogin, gongkey} from '@/common/api/user'
|
||||
import {sm2, encrypt} from '@/common/js/sm2.js'
|
||||
import {sm3Digest} from '@/common/js/sm3.js'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
@@ -159,7 +163,7 @@ export default {
|
||||
console.log(this.phone)
|
||||
let loginName = encrypt(this.phone)
|
||||
console.log(loginName)
|
||||
gongkey({ loginName }).then((response) => {
|
||||
gongkey({loginName}).then((response) => {
|
||||
let publicKey = response.data
|
||||
let sm3Pwd = sm3Digest(this.pwdForm.pwd)
|
||||
let jiamipassword = sm2(sm3Pwd + '|' + this.pwdForm.pwd, publicKey, 0)
|
||||
@@ -194,7 +198,7 @@ export default {
|
||||
this.phone = userInfo.user_name
|
||||
}
|
||||
uni.removeStorageSync(this.$cacheKey.access_token)
|
||||
uni.removeStorageSync(this.$cacheKey.engineering)
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user