This commit is contained in:
仲么了
2023-10-27 16:09:09 +08:00
parent 89d3d78f22
commit d6b02c77cd
12 changed files with 87 additions and 86 deletions

View File

@@ -20,7 +20,7 @@
<text>{{ device.projectName }}</text>
</view>
<view class="device-body-item mt6" v-if="device.process == 2 || device.process == 3">
<text>设备状态</text>
<text>调试阶段</text>
<text>{{ device.process == 2 ? '功能调试' : '出厂调试' }}</text>
</view>
</view>

View File

@@ -139,8 +139,8 @@
"proxy" : {
"/api" : {
"https" : true,
// "target" : "https://pqmcn.com:8092/api",
"target" : "http://192.168.1.115:10215",
"target" : "https://pqmcn.com:8092/api",
// "target" : "http://192.168.1.115:10215",
"changOrigin" : true,
"pathRewrite" : {
"/api" : ""

View File

@@ -152,15 +152,13 @@
{
"path": "pages/device/APF/report",
"style": {
"navigationBarTitleText": "告警情况",
"navigationStyle": "custom"
"navigationBarTitleText": "告警情况"
}
},
{
"path": "pages/device/DVR/report",
"style": {
"navigationBarTitleText": "告警情况",
"navigationStyle": "custom"
"navigationBarTitleText": "告警情况"
}
},
{

View File

@@ -6,7 +6,7 @@
<view class="about-text">设备类型{{ deviceInfo.devTypeName }}</view>
<view class="about-text">设备型号{{ deviceInfo.devModelName }}</view>
<view class="about-text"
>设备接入方式{{ deviceInfo.devAccessMethod === 'cloud' ? '云直连' : 'mqtt' }}</view
>设备接入方式{{ deviceInfo.devAccessMethod === 'cloud' ? '云直连' : 'MQTT' }}</view
>
<!-- <view class="about-text">设备注册时间永久使用</view> -->
<view class="about-text">程序版本{{ deviceInfo.programVersionName }}</view>
@@ -37,10 +37,6 @@ export default {
this.deviceInfo.devModelName = resp[1].data.find(
(item) => item.id === this.deviceInfo.devModel,
)?.name
console.log(resp[2])
this.deviceInfo.programVersionName = resp[2].data.records.find(
(item) => item.id === this.deviceInfo.programVersion,
)?.versionNo
this.loading = false
})
})

View File

@@ -1,9 +1,10 @@
<template>
<view>
<uni-data-checkbox v-model="parity" :localdata="parityOption" @change="initEcharts"></uni-data-checkbox>
<uni-data-checkbox v-model="dataRadio" :localdata="dataOptions" @change="initEcharts"></uni-data-checkbox>
<!-- <uni-data-checkbox v-model="dataRadio" :localdata="dataOptions" @change="initEcharts"></uni-data-checkbox> -->
<uni-data-select v-model="dataRadio" :localdata="dataOptions" @change="initEcharts"></uni-data-select>
<view class="charts-box">
<qiun-data-charts type="column" :ontouch='true' :opts="opts" :chartData="chartData"/>
<qiun-data-charts type="bar" :ontouch="true" :opts="opts" :chartData="chartData" />
</view>
</view>
</template>
@@ -26,7 +27,7 @@ export default {
{
text: '偶次',
value: 1,
}
},
],
parity: 2,
dataOptions: [],
@@ -44,7 +45,8 @@ export default {
chartData: {},
//您可以通过修改 config-ucharts.js 文件中下标为 ['column'] 的节点来配置全局默认参数,如都是默认参数,此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
opts: {
enableScroll: true,
// enableScroll: true,
dataLabel:false,
color: [
'#1890FF',
'#91CB74',
@@ -68,18 +70,17 @@ export default {
},
],
},
yAxis: {
data: [
{
min: 0,
tofix: 4,
},
],
},
yAxis: {},
extra: {
column: {
width: 10,
categoryGap: 1,
bar: {
type: 'group',
width: 30,
meterBorde: 1,
meterFillColor: '#FFFFFF',
activeBgColor: '#000000',
activeBgOpacity: 0.08,
seriesGap: 2,
categoryGap: 6,
},
},
},
@@ -127,8 +128,7 @@ export default {
let name1 = have['name']
let name2 = have.key.split('_')[0] + '_' + have.key.split('_')[1]
if (this.renderData[name1][name2][item.phase]) {
this.renderData[name1][name2][item.phase][item.statisticalName] =
item.statisticalData || 0
this.renderData[name1][name2][item.phase][item.statisticalName] = item.statisticalData || 0
} else {
this.renderData[name1][name2][item.phase] = {
[item.statisticalName]: item.statisticalData || 0,
@@ -145,10 +145,10 @@ export default {
{
name: '负载谐波电压含有率序列',
key: 'Apf_HarmUR',
}
},
]
Object.keys(this.renderData['电网侧']['Apf_HarmI']).forEach((item, index) => {
type.forEach(item2 => {
type.forEach((item2) => {
dataOptions.push({
text: item + '相' + item2.name,
pointer: item2.key + '_' + item,
@@ -159,7 +159,6 @@ export default {
this.dataOptions = dataOptions
console.log(dataOptions)
this.initEcharts()
},
deep: true,
immediate: true,
@@ -168,19 +167,23 @@ export default {
methods: {
initEcharts() {
let obj = JSON.parse(
JSON.stringify(this.renderData['电网侧']['Apf_HarmI'][Object.keys(this.renderData['电网侧']['Apf_HarmI'])[0]]),
JSON.stringify(
this.renderData['电网侧']['Apf_HarmI'][Object.keys(this.renderData['电网侧']['Apf_HarmI'])[0]],
),
)
let key = this.dataOptions[this.dataRadio].pointer.split('_')
console.log(key)
let name1 = key[0] + '_' + key[1]
let name2 = key[2]
this.chartData = {
categories: Object.keys(obj).map((item) => {
// Apf_HarmI_Sys_36(A) 匹配36
return Number(item.match(/\d+/)[0])
}).filter((item) => {
return item % 2 === this.parity - 1
}),
categories: Object.keys(obj)
.map((item) => {
// Apf_HarmI_Sys_36(A) 匹配36
return Number(item.match(/\d+/)[0])
})
.filter((item) => {
return item % 2 === this.parity - 1
}),
series: [
{
name: '电网侧',
@@ -196,14 +199,14 @@ export default {
},
],
}
}
}
},
},
}
</script>
<style lang="scss">
.charts-box {
margin-top: 20rpx;
height: 800rpx;
height: 100vh;
}
</style>

View File

@@ -113,7 +113,7 @@ export default {
projectNameIndex: 0,
projectSelect: false,
engineeringName: '',
engineeringId: 0,
engineeringId: '',
runStatusName: '',
runStatusIndex: 0,
runStatusSelect: false,

View File

@@ -18,7 +18,7 @@
v-for="item in renderData.subUsers"
:key="item.id"
>
<template v-slot:footer v-if="options.isPrimaryUser">
<template v-slot:footer v-if="options.isPrimaryUser == 1">
<view class="footer-btn mt20" style="background: #e47470" @click="del(item)">移除</view>
</template>
</uni-list-item>

View File

@@ -35,25 +35,23 @@
</view>
</picker>
<view style="flex: 1"></view>
<template v-if="deviceListFilter.length">
<template v-if="transfer || share">
<view class="nav-menu nav-menu-btn" @click="cancel">取消</view>
<view class="nav-menu nav-menu-btn" @click="submit">确定</view>
</template>
<template v-else>
<view
class="nav-menu nav-menu-btn"
@click="selectDevice('transfer')"
v-if="userInfo.authorities === 'app_vip_user' || userInfo.authorities === 'engineering_user'"
<template v-if="transfer || share">
<view class="nav-menu nav-menu-btn" @click="cancel">取消</view>
<view class="nav-menu nav-menu-btn" @click="submit">确定</view>
</template>
<template v-else-if="deviceListFilter.length">
<view
class="nav-menu nav-menu-btn"
@click="selectDevice('transfer')"
v-if="userInfo.authorities === 'app_vip_user' || userInfo.authorities === 'engineering_user'"
>移交
</view>
<view
class="nav-menu nav-menu-btn"
@click="selectDevice('share')"
v-if="userInfo.authorities === 'app_vip_user'"
</view>
<view
class="nav-menu nav-menu-btn"
@click="selectDevice('share')"
v-if="userInfo.authorities === 'app_vip_user'"
>分享
</view>
</template>
</view>
</template>
<!-- <picker @change="projectTypeChange" :value="select.projectTypeIndex" :range="projectType" range-key="text">
<view class="nav-menu" :class="{ 'nav-menu-active': select.projectType }"
@@ -68,8 +66,11 @@
<view class="uni-card__header">
<view class="uni-card__header-box">
<view class="uni-card__header-avatar">
<image class="uni-card__header-avatar-image" :src="deviceIcon(item.runStatus)"
mode="aspectFit"/>
<image
class="uni-card__header-avatar-image"
:src="deviceIcon(item.runStatus)"
mode="aspectFit"
/>
</view>
<view class="uni-card__header-content">
<text class="uni-card__header-content-title uni-ellipsis">
@@ -83,7 +84,7 @@
<view class="uni-card__header-extra" style="position: relative">
<switch
:checked="checkList.indexOf(item.equipmentId) > -1"
style="transform: scale(0.8);position: relative;left: 20rpx;"
style="transform: scale(0.8); position: relative; left: 20rpx"
@change="switchChange(item)"
/>
</view>
@@ -99,8 +100,8 @@
</view>
</template>
<script>
import {getProjectList} from '@/common/api/project'
import {queryDictData} from '@/common/api/dictionary'
import { getProjectList } from '@/common/api/project'
import { queryDictData } from '@/common/api/dictionary'
export default {
props: {
@@ -132,8 +133,6 @@ export default {
},
computed: {
deviceListFilter() {
this.transfer = false
this.share = false
let arr = this.store.data.filter((item) => {
if (this.select.projectName && this.select.projectType) {
return item.project === this.select.projectName && item.type === this.select.projectType
@@ -147,7 +146,7 @@ export default {
})
if (this.transfer || this.share) {
return arr.filter((item) => {
return item.isPrimaryUser === '1'
return item.isPrimaryUser === '1' && item.process == 4
})
} else {
return arr
@@ -157,13 +156,10 @@ export default {
created() {
this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
},
mounted() {
},
mounted() {},
methods: {
selectDevice(type) {
if (this.deviceListFilter.findIndex(item => item.isPrimaryUser === '1') === -1) {
if (this.deviceListFilter.findIndex((item) => item.isPrimaryUser === '1') === -1) {
this.$util.toast('没有可操作的设备')
} else {
this[type] = true
@@ -205,14 +201,16 @@ export default {
return
}
if (this.transfer) {
uni.navigateTo({url: '/pages/device/transfer?id=' + this.checkList.join(',')})
uni.navigateTo({ url: '/pages/device/transfer?id=' + this.checkList.join(',') })
} else if (this.share) {
uni.navigateTo({url: '/pages/device/share?id=' + this.checkList.join(',')})
uni.navigateTo({ url: '/pages/device/share?id=' + this.checkList.join(',') })
}
this.cancel()
},
async init() {
console.warn('init')
this.transfer = false
this.share = false
this.getProjectList()
this.getDeviceList()
},
@@ -283,7 +281,7 @@ export default {
})
},
submitFeedBack() {
uni.navigateTo({url: '/pages/home/feedback'})
uni.navigateTo({ url: '/pages/home/feedback' })
},
projectTypeChange(e) {
this.select.projectTypeIndex = e.detail.value
@@ -310,7 +308,7 @@ export default {
confirmText: '直连设备',
cancelText: '网关接入',
cancelColor: '#007aff',
success: ({confirm, cancel}) => {
success: ({ confirm, cancel }) => {
if (confirm) {
uni.navigateTo({
url: '/pages/device/new',
@@ -339,6 +337,4 @@ export default {
},
}
</script>
<style lang="scss">
</style>
<style lang="scss"></style>

View File

@@ -74,7 +74,7 @@ export default {
if (confirm) {
if (this.devCount.engineeringListLength > 0) {
uni.navigateTo({
url: '/pages/device/new?type=',
url: '/pages/device/new?type=4',
})
} else {
uni.navigateTo({

View File

@@ -83,7 +83,7 @@
</view>
<view class="mine-nav" @click="jump('serverSetting')" v-if="userInfo.authorities === 'engineering_user'">
<image mode="aspectFill" class="mine-nav-icon" src="/static/server2.png" />
<view class="mine-nav-label">服务内容配置</view>
<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 File

@@ -5,7 +5,7 @@
<view class="mine-nav-label">更换手机号</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view>
<view class="mine-nav" @click="jump('changePwd')" >
<view class="mine-nav" @click="jump('changePwd')">
<view class="mine-nav-label">修改密码</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view>
@@ -33,10 +33,10 @@
<view class="mine-nav-label">使用手册</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view>
<view class="mine-nav" @click="jump('database')">
<!-- <view class="mine-nav" @click="jump('database')">
<view class="mine-nav-label">资料库</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
</view>
</view> -->
<view class="mine-nav" @click="jump('company')">
<view class="mine-nav-label">公司介绍</view>
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
@@ -78,6 +78,14 @@ export default {
url: `/pages/user/changePhone`,
})
break
case 'book':
uni.openDocument({
filePath: "/static/user_manual.docx",
success: function (res) {
console.log('打开文档成功')
},
})
break
case 'layout':
uni.showModal({
title: '提示',

BIN
static/user_manual.docx Normal file

Binary file not shown.