Merge pull request 'pc-master' (#243) from pc-master into portal

Reviewed-on: #243
This commit is contained in:
xiaomeng 2025-05-15 09:41:50 +00:00
commit e08a9b2adb
10 changed files with 543 additions and 358 deletions

View File

@ -196,6 +196,10 @@ export default {
//气象站显示
geteqetdata(data) {
return sendGetRequest(`/getcontrol/geteqetdata?userId=`+data ,"")
},
// 数据采集器的实时数据
getdataRtdata(data) {
return sendGetRequest(`/getdata/rtdata?deviceId=` + data, '')
},
//测试施肥机读取设备状态信息 //读取数据 根据文档编号读取 所有数据展示都出自这个接口
postReg(data) {

View File

@ -791,6 +791,10 @@ textarea {
height: 44px;
}
.input-main-60.input-main-100 input {
width: 100px;
}
.input-main-60 input {
width: 60px;
height: 34px;

View File

@ -826,6 +826,11 @@ textarea{
input{
height: 44px;
}
}
&.input-main-100{
input{
width: 100px;
}
}
input {
width: 60px;

View File

@ -116,6 +116,7 @@ export default {
// { name: '', img: require('../assets/image/left-img1.png'), list: [] },
{ name: '施肥机', routerList: ['status-soil','formula', 'dataAnalysis', 'historyData', 'irrigateSet', 'videoMonitoring','imageData', 'PIDSet', 'systemSet', 'upload', 'sensorSet', 'realTime', 'history', 'dataAnalysis'], img: require('../assets/image/left-img2.png'), list: [] },
{ name: '智能灌溉', routerList: ['realTime', 'dataAnalysis', 'historyData','irrigateSet-soil', 'videoMonitoring','imageData','PIDSet-soil', 'systemSet-soil', 'upload-soil', 'sensorSet-soil', 'realTime', 'history', 'dataAnalysis'], img: require('../assets/image/irrigateSet-icon1-act.png'), list: [] },
{ name: '数据采集器', routerList: ['realTime', 'historyData', 'exitSettings', 'skylight', 'control', 'systemSet-con','imageData', 'fan', 'upload-con', 'sensorSet-con', 'synthesis-con', 'alarmSettings', 'waterPump', 'geothermalFan', 'uptake', 'downtake', 'rollByRoll', 'snowRemoval', "targetTemperature", "targetHumidity", "targetCo2", "sunroofControl", "outsizeSunshade", "insizeSunshade", "wetFan", "LED", 'electromagneticControl', "coercionMist", "circulationCan", "internalInsulation", "forceOutput", "intrinsicParameter", "parameterSet"], img: require('../assets/image/left-img3.png'), list: [] },
{ name: '生态气象站', routerList: ['realTime', 'historyData', 'exitSettings', 'skylight', 'control', 'systemSet-con','imageData', 'fan', 'upload-con', 'sensorSet-con', 'synthesis-con', 'alarmSettings', 'waterPump', 'geothermalFan', 'uptake', 'downtake', 'rollByRoll', 'snowRemoval', "targetTemperature", "targetHumidity", "targetCo2", "sunroofControl", "outsizeSunshade", "insizeSunshade", "wetFan", "LED", 'electromagneticControl', "coercionMist", "circulationCan", "internalInsulation", "forceOutput", "intrinsicParameter", "parameterSet"], img: require('../assets/image/left-img3.png'), list: [] },
],
leftList1: [
@ -201,44 +202,13 @@ export default {
},
methods: {
getRole(){
var user= JSON.parse(localStorage.getItem('userInfo'))
this.api.selUserbyid(user.userid).then(res=>{
if(res.data.code==200){
this.roleId=res.data.data.roleId
if(this.roleId==1){
this.leftList1= [
{ name: '管理', img: require('../assets/image/index-icon.png'), list: [], router: 'manage', isRouter: true, },
{ name: '用户管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
{deviceTypeName:'控制器设备状态值设置',router:'deviceStatusSet',index:0},
{deviceTypeName:'控制器设备设定值设置',router:'deviceSet',index:1},
{deviceTypeName:'设备信息管理',router:'deviceInfoManage',index:2},
{deviceTypeName:'设备绑定气象站数据',router:'weatherData',index:3},
{deviceTypeName:'大数据设备信息',router:'dataDevice',index:4},
{deviceTypeName:'手机控制模块信息',router:'mobileControl',index:5},
] },
{ name: '管理员管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
{deviceTypeName:'用户信息管理',router:'userInfoControl',index:6},
{deviceTypeName:'设备管理',router:'deviceManage',index:7},
// {deviceTypeName:'',router:'videoManage',index:8},
] },
]
}else{
this.leftList1= [
{ name: '管理', img: require('../assets/image/index-icon.png'), list: [], router: 'manage', isRouter: true, },
{ name: '用户管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
{deviceTypeName:'控制器设备状态值设置',router:'deviceStatusSet',index:0},
{deviceTypeName:'控制器设备设定值设置',router:'deviceSet',index:1},
{deviceTypeName:'设备信息管理',router:'deviceInfoManage',index:2},
{deviceTypeName:'设备绑定气象站数据',router:'weatherData',index:3},
{deviceTypeName:'大数据设备信息',router:'dataDevice',index:4},
{deviceTypeName:'手机控制模块信息',router:'mobileControl',index:5},
] },
]
}
this.mainData=res.data.data.project
// var user= JSON.parse(localStorage.getItem('userInfo'))
// this.api.selUserbyid(user.userid).then(res=>{
// if(res.data.code==200){
}
})
// }
// })
},
// id
get_user_getjurisdiction() {
@ -305,9 +275,10 @@ export default {
const that = this
var userInfo = localStorage.getItem('userInfo') ? JSON.parse(localStorage.getItem('userInfo')) : { userid: -1 }
var store = this.$store.state
this.api.getEqbyid(userInfo.userid).then((res) => {
this.api.selUserbyid(userInfo.userid).then((res) => {
if (res.data.code == 200) {
this.$store.state.equipmentList = res.data.data.map((item, index) => {
var data=res.data.data.devices
this.$store.state.equipmentList =data.map((item, index) => {
return {
...item,
router: that.deviceNameRouter(item.deviceName),
@ -315,13 +286,15 @@ export default {
};
});
if (!localStorage.getItem('equipmentSelList')) {
localStorage.setItem('equipmentSelList', JSON.stringify(res.data.data))
localStorage.setItem('equipmentSelList', JSON.stringify(data))
// this.$store.state.equipmentSelList=res.data.data
}
this.leftList[1].list = []
this.leftList[2].list = []
this.leftList[3].list = []
this.leftList[4].list = []
this.leftList[5].list = []
this.$store.state.equipmentList.forEach((el, index) => {
//deviceId
if (this.deviceId && this.deviceId == el.deviceId) {
@ -345,6 +318,12 @@ export default {
this.leftList[index1].list.push(el)
}
})
}else if (el.deviceName == 40) {
this.leftList.forEach((el1, index1) => {
if (el1.name == '数据采集器') {
this.leftList[index1].list.push(el)
}
})
}
// else if (el.deviceName == 30) {
// this.leftList.forEach((el1, index1) => {
@ -390,6 +369,9 @@ export default {
if (el1.name == '生态气象站') {
this.leftList[index1].list.sort(this.compare('equipmentStatu'))
}
if (el1.name == '数据采集器') {
this.leftList[index1].list.sort(this.compare('equipmentStatu'))
}
})
this.gerRouter()
@ -406,6 +388,39 @@ export default {
}
})
this.roleId=res.data.data.roleId
if(this.roleId==1){
this.leftList1= [
{ name: '管理', img: require('../assets/image/index-icon.png'), list: [], router: 'manage', isRouter: true, },
{ name: '用户管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
{deviceTypeName:'控制器设备状态值设置',router:'deviceStatusSet',index:0},
{deviceTypeName:'控制器设备设定值设置',router:'deviceSet',index:1},
{deviceTypeName:'设备信息管理',router:'deviceInfoManage',index:2},
{deviceTypeName:'设备绑定气象站数据',router:'weatherData',index:3},
{deviceTypeName:'大数据设备信息',router:'dataDevice',index:4},
{deviceTypeName:'手机控制模块信息',router:'mobileControl',index:5},
] },
{ name: '管理员管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
{deviceTypeName:'用户信息管理',router:'userInfoControl',index:6},
{deviceTypeName:'设备管理',router:'deviceManage',index:7},
// {deviceTypeName:'',router:'videoManage',index:8},
] },
]
}else{
this.leftList1= [
{ name: '管理', img: require('../assets/image/index-icon.png'), list: [], router: 'manage', isRouter: true, },
{ name: '用户管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
{deviceTypeName:'控制器设备状态值设置',router:'deviceStatusSet',index:0},
{deviceTypeName:'控制器设备设定值设置',router:'deviceSet',index:1},
{deviceTypeName:'设备信息管理',router:'deviceInfoManage',index:2},
{deviceTypeName:'设备绑定气象站数据',router:'weatherData',index:3},
{deviceTypeName:'大数据设备信息',router:'dataDevice',index:4},
{deviceTypeName:'手机控制模块信息',router:'mobileControl',index:5},
] },
]
}
this.mainData=res.data.data.project
}
})
@ -460,6 +475,10 @@ export default {
if (this.deviceName == '30') {
this.$message('气象站无该页面');
return
}
if (this.deviceName == '40') {
this.$message('数据采集器无该页面');
return
}
if (this.deviceName == '10') {
this.$router.push({ path: `/control` })
@ -557,6 +576,8 @@ export default {
}
else if (item.deviceName == 30) {
this.$message('气象站无该页面');
} else if (item.deviceName == 40) {
this.$message('数据采集器无该页面');
}
}
} else if ( this.$route.query.index == item.index) {

View File

@ -15,6 +15,14 @@
<div class="manage-btn" @click="active = 2" :class="active == 2 ? 'active' : ''">
<img src="../../assets/manageImg/manage-btn-icon1.png" alt="">
智能控制器
</div>
<div class="manage-btn" @click="active = 3" :class="active == 3 ? 'active' : ''">
<img src="../../assets/manageImg/manage-btn-icon1.png" alt="">
生态气象站
</div>
<div class="manage-btn" @click="active = 4" :class="active == 4 ? 'active' : ''">
<img src="../../assets/manageImg/manage-btn-icon1.png" alt="">
数据采集器
</div>
</div>
<div class="table-view" style="width: 100%;" v-if="active === 0">
@ -99,6 +107,56 @@
</el-table-column>
</el-table>
</div>
<div class="table-view" style="width: 100%;" v-if="active === 3">
<el-table :data="tableData3" :row-class-name="tableRowClassName" height="620" style="width: 100%">
<!-- <el-table-column label="序号">
<template slot-scope="scope">
<div>{{scope.$index+1 }}
</div>
</template>
</el-table-column> -->
<el-table-column prop="deviceId" label="设备code码">
</el-table-column>
<el-table-column prop="deviceTypeName" label="设备名称">
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<div class="table-flex">
<div class="table-operate blue" @click="openModel(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">编辑
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="table-view" style="width: 100%;" v-if="active === 4">
<el-table :data="tableData4" :row-class-name="tableRowClassName" height="620" style="width: 100%">
<!-- <el-table-column label="序号">
<template slot-scope="scope">
<div>{{scope.$index+1 }}
</div>
</template>
</el-table-column> -->
<el-table-column prop="deviceId" label="设备code码">
</el-table-column>
<el-table-column prop="deviceTypeName" label="设备名称">
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<div class="table-flex">
<div class="table-operate blue" @click="openModel(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">编辑
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog :close-on-click-modal="false" title="提示" top="10vh" :visible.sync="addModel" width="700px" class="vrcode-model manage-model"
:append-to-body="true">
<div class="vrcode-model-title">
@ -400,6 +458,8 @@ export default {
tableData: [],
tableData1: [],
tableData2: [],
tableData3: [],
tableData4: [],
addModel: false,
addModel1: false,
changeName: false,
@ -430,6 +490,8 @@ export default {
this.tableData = []
this.tableData1 = []
this.tableData2 = []
this.tableData3 = []
this.tableData4 = []
if (res.data.code == 200) {
res.data.data.devices.forEach((el, index) => {
if (el.deviceName == 10) {
@ -438,6 +500,10 @@ export default {
this.tableData.push(el)
} else if (el.deviceName == 20) {
this.tableData2.push(el)
} else if (el.deviceName == 30) {
this.tableData3.push(el)
} else if (el.deviceName == 40) {
this.tableData4.push(el)
}
})
}

View File

@ -2,29 +2,41 @@
<div class="videoManage manage-page deviceManage">
<div class="flex-view flex-title">
<div class="table-title">
<img src="../../assets/manageImg/deviceManage.png" alt="">设备管理
<img src="../../assets/manageImg/deviceManage.png" alt="" />设备管理
</div>
<div class="table-title-btn blue" @click="openAddModel1">
<img src="../../assets/manageImg/add-btn.png" alt="">添加
<img src="../../assets/manageImg/add-btn.png" alt="" />添加
</div>
</div>
<div class="flex-view ">
<div class="manage-input w-180">
<div class="flex-view">
<div class="manage-input w-180">
<span class="input-title">用户名查询</span>
<input class="search-input" type="text" v-model="searchName" placeholder="">
<input
class="search-input"
type="text"
v-model="searchName"
placeholder=""
/>
</div>
<div class="manage-input w-180">
<div class="manage-input w-180">
<span class="input-title">设备code码查询</span>
<input class="search-input" type="text" v-model="searchID" placeholder="">
</div>
<div class="table-title-btn blue" @click="dataInit">
查询
<input
class="search-input"
type="text"
v-model="searchID"
placeholder=""
/>
</div>
<div class="table-title-btn blue" @click="dataInit">查询</div>
</div>
<div class="table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="540" style="width: 100%">
<el-table-column prop="deviceId" label="设备code码">
</el-table-column>
<el-table
:data="tableData"
:row-class-name="tableRowClassName"
height="540"
style="width: 100%"
>
<el-table-column prop="deviceId" label="设备code码"> </el-table-column>
<el-table-column prop="deviceTypeName" label="设备名称">
</el-table-column>
<el-table-column prop="cameraSerialNumber" label="设备关联摄像头名称">
@ -36,97 +48,166 @@
<el-table-column label="操作">
<template slot-scope="scope">
<div class="table-flex">
<div class="table-operate blue" @click="openRoleModel(scope.row.deviceId)"
v-if="scope.row.deviceName == 10">
<img src="../../assets/manageImg/table-edit.png" alt="">权限
<div
class="table-operate blue"
@click="openRoleModel(scope.row.deviceId)"
v-if="scope.row.deviceName == 10"
>
<img src="../../assets/manageImg/table-edit.png" alt="" />权限
</div>
<el-popconfirm @confirm="confirmDel(scope.row)" title="这一段内容确定删除吗?" icon-color="red">
<el-popconfirm
@confirm="confirmDel(scope.row)"
title="这一段内容确定删除吗?"
icon-color="red"
>
<div class="table-operate red" slot="reference">
<img src="../../assets/manageImg/table-delete.png" alt="">删除
<img
src="../../assets/manageImg/table-delete.png"
alt=""
/>
</div>
</el-popconfirm>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
:page-sizes="[10, 20, 50, 100, 200, 500, 1000, 1500]" :page-size="pageSize"
layout="->,total, sizes, prev, pager, next, jumper" :total="total">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100, 200, 500, 1000, 1500]"
:page-size="pageSize"
layout="->,total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
<el-dialog :close-on-click-modal="false" title="控制器权限管理" :append-to-body="true" :visible.sync="roleModel" width="70%">
<el-dialog
:close-on-click-modal="false"
title="控制器权限管理"
:append-to-body="true"
:visible.sync="roleModel"
width="70%"
>
<div class="model-title">控制器权限管理</div>
<div class="model-sel scroll">
<div v-for="item, index in selDevicestatus" :key="index">
<div @click="selClick(item)" :class="item.select ? 'sel' : 'no-sel'"></div>
<div v-for="(item, index) in selDevicestatus" :key="index">
<div
@click="selClick(item)"
:class="item.select ? 'sel' : 'no-sel'"
></div>
{{ item.name }}
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn blue-btn" @click="addpermissionall">添加标准控制器</div>
<div class="vrcode-btn cancle-btn w-100" @click="roleModel = false">确定</div>
<div class="vrcode-btn blue-btn" @click="addpermissionall">
添加标准控制器
</div>
<div class="vrcode-btn cancle-btn w-100" @click="roleModel = false">
确定
</div>
</span>
</el-dialog>
<el-dialog :close-on-click-modal="false" title="提示" top="10vh" :visible.sync="addModel1" width="564px" class="vrcode-model manage-model"
:append-to-body="true">
<div class="vrcode-model-title">
添加设备
</div>
<el-dialog
:close-on-click-modal="false"
title="提示"
top="10vh"
:visible.sync="addModel1"
width="564px"
class="vrcode-model manage-model"
:append-to-body="true"
>
<div class="vrcode-model-title">添加设备</div>
<div class="vrcode-content">
<div class="manage-left">
<div class="manage-input">
<div class="input-title">设备code码</div>
<input type="text" v-model="nowData1.deviceId" placeholder="请输入设备code码">
<input
type="text"
v-model="nowData1.deviceId"
placeholder="请输入设备code码"
/>
</div>
<div class="manage-input-sel" style="margin-right: 0;">
<div class="manage-input-sel" style="margin-right: 0">
<div class="input-title">设备类型</div>
<el-dropdown @command="handleCommand1">
<div class="el-dropdown-link">
<input v-model="deviceType" type="text" class="input-input" placeholder="请选择设备类型">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
<input
v-model="deviceType"
type="text"
class="input-input"
placeholder="请选择设备类型"
/>
<div class="arrow">
<img src="../../assets/image/arrow.png" alt="" />
</div>
</div>
<el-dropdown-menu slot="dropdown" class="manage-dropdown">
<el-dropdown-item v-for="item, index in deviceSel
" :key="index" :command="item.label">{{ item.label }}</el-dropdown-item>
<el-dropdown-item
v-for="(item, index) in deviceSel"
:key="index"
:command="item.label"
>{{ item.label }}</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="manage-input">
<div class="input-title">关联摄像头名称</div>
<input type="number" v-model="nowData1.cameraSerialNumber" placeholder="请输入摄像头名称">
<input
type="number"
v-model="nowData1.cameraSerialNumber"
placeholder="请输入摄像头名称"
/>
</div>
<div class="manage-img-small">
<label for="sel-img">
<img class="" :src="nowData1.hls" alt="">
<img class="" :src="nowData1.hls" alt="" />
</label>
<input ref="fileInput1" type="file" :multiple="false" id="sel-img" accept="image/*"
@change="handleImageChange($event,1)" />
<input
ref="fileInput1"
type="file"
:multiple="false"
id="sel-img"
accept="image/*"
@change="handleImageChange($event, 1)"
/>
</div>
</div>
<div class="manage-right">
<div class="manage-input">
<div class="input-title">设备名称</div>
<input type="text" v-model="nowData1.deviceTypeName" placeholder="请输入设备名称">
<input
type="text"
v-model="nowData1.deviceTypeName"
placeholder="请输入设备名称"
/>
</div>
<div class="manage-input">
<div class="input-title">关联摄像头通道</div>
<input type="number" v-model="nowData1.cameraChannelNumber" placeholder="请输入摄像机通道号">
<input
type="number"
v-model="nowData1.cameraChannelNumber"
placeholder="请输入摄像机通道号"
/>
</div>
<div class="manage-text">
如果有摄像机则每小时都会定时更新<br>
小程序摄像机主页面图片<br>
如果没有摄像机则可以自定义更改图片<br>
如果有摄像机则每小时都会定时更新<br />
小程序摄像机主页面图片<br />
如果没有摄像机则可以自定义更改图片<br />
地址信息
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn blue-btn w-100" @click="addDevice">确定</div>
<div class="vrcode-btn cancle-btn w-100" @click="addModel1 = false">取消</div>
<div class="vrcode-btn cancle-btn w-100" @click="addModel1 = false">
取消
</div>
</span>
</el-dialog>
</div>
@ -138,29 +219,34 @@ export default {
tableData: [],
currentPage: 1,
pageSize: 10,
searchName: '',
searchID: '',
searchName: "",
searchID: "",
total: 0,
roleModel: false,
selDevicestatus: [],
allDevicestatus: [],
nowDevicestatus: [],
nowDeviceId:'',
nowDeviceId: "",
//
addModel1:false,
nowData1:{
deviceState:0,
addModel1: false,
nowData1: {
deviceState: 0,
},
deviceType:'',
deviceSel: [{ label: '控制器', value: 10, },
{ label: '施肥机', value: 1, },
{ label: '气象站', value:30, },
{ label: '智能灌溉控制器', value:20, }],
}
deviceType: "",
deviceSel: [
{ label: "控制器", value: 10 },
{ label: "施肥机", value: 1 },
{ label: "气象站", value: 30 },
{ label: "智能灌溉控制器", value: 20 },
{ label: "数据采集器", value: 40 },
],
};
},
mounted() {
this.dataInit();
},
mounted() { this.dataInit() },
methods: {
dataInit() {
// var user = JSON.parse(localStorage.getItem('userInfo'))
@ -169,238 +255,246 @@ export default {
// this.deviceList = res.data.data.devices
// }
// })
this.pageSize = 10
this.currentPage = 1
this.pageSize = 10;
this.currentPage = 1;
setTimeout(() => {
this.getData()
this.getData();
}, 0);
},
getDeviceType(e) {
if (e == '控制器') {
return 10
} else if(e == '施肥机'){
return 1
} else if(e == '气象站'){
return 30
} else if(e == '智能灌溉控制器'){
return 20
if (e == "控制器") {
return 10;
} else if (e == "施肥机") {
return 1;
} else if (e == "气象站") {
return 30;
} else if (e == "智能灌溉控制器") {
return 20;
} else if (e == "数据采集器") {
return 40;
}
},
handleCommand1(e) {
this.nowData1.deviceName = this.getDeviceType(e)
this.deviceType = e
this.nowData1.deviceName = this.getDeviceType(e);
this.nowData1.deviceTypeName = e
this.deviceType = e;
},
openRoleModel(deviceId) {
this.loading = this.$loading({
lock: true,
text: '加载中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
text: "加载中",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
this.selDevicestatus = []
this.nowDeviceId=deviceId
var data = { deviceId: deviceId }
this.selDevicestatus = [];
this.nowDeviceId = deviceId;
var data = { deviceId: deviceId };
// 线
this.api.selectallPermissions().then(res => {
this.api.selectallPermissions().then((res) => {
if (res.data.code == 200) {
this.allDevicestatus = res.data.data
this.allDevicestatus = res.data.data;
// this.roleModel=true
// deviceId name
this.getcontrol_cpermission()
this.getcontrol_cpermission();
} else {
this.loading.close()
this.loading.close();
this.$message.error(res.data.msg);
}
})
});
},
openAddModel1(){
this.nowData1={
deviceState:0,
}
this.addModel1=true
openAddModel1() {
this.nowData1 = {
deviceState: 0,
};
this.deviceType=''
this.addModel1 = true;
},
addDevice(){
addDevice() {
if (!this.nowData1.deviceId) {
this.$message.error('设备code码还未填写');
return
this.$message.error("设备code码还未填写");
return;
}
if (!this.nowData1.deviceName) {
this.$message.error('设备类型还未选择');
return
this.$message.error("设备类型还未选择");
return;
}
if (!this.nowData1.deviceTypeName) {
this.$message.error('设备名称还未填写');
return
this.$message.error("设备名称还未填写");
return;
}
var data={...this.nowData1,stationName:this.nowData1.deviceTypeName}
this.api.addDevice(data).then(res=>{
var data = {
...this.nowData1,
stationName: this.nowData1.deviceTypeName,
};
this.api.addDevice(data).then((res) => {
if (res.data.code == 200) {
this.$message.success(res.data.msg);
this.dataInit()
this.addModel1=false
this.dataInit();
this.addModel1 = false;
} else {
this.$message.error(res.data.msg);
}
})
});
},
handleImageChange(event) {
this.loading = this.$loading({
lock: true,
text: '上传中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
text: "上传中",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
const file = event.target.files[0];
const reader = new FileReader();
reader.onload = (e) => {
const imageData = e.target.result;
const convertedFile = new File([imageData], file.name, { type: file.type });
const convertedFile = new File([imageData], file.name, {
type: file.type,
});
// ...
var data = { file: convertedFile }
this.api.manageUploadImage(data).then(res => {
this.loading.close()
if (res.data.code == 200) {
this.nowData1.hls=res.data.msg
this.$refs.fileInput1.value = '';
} else {
this.$message.error(res.data.msg);
}
})
var data = { file: convertedFile };
this.api.manageUploadImage(data).then((res) => {
this.loading.close();
if (res.data.code == 200) {
this.nowData1.hls = res.data.msg;
this.$refs.fileInput1.value = "";
} else {
this.$message.error(res.data.msg);
}
});
};
reader.readAsArrayBuffer(file);
},
addpermissionall(){
this.api.addpermissionall(this.nowDeviceId).then(res=>{
addpermissionall() {
this.api.addpermissionall(this.nowDeviceId).then((res) => {
if (res.data.code == 200) {
this.$message.success(res.data.msg);
this.getcontrol_cpermission()
this.getcontrol_cpermission();
} else {
this.$message.error(res.data.msg);
}
})
});
},
getcontrol_cpermission(){
this.api.getcontrol_cpermission(this.nowDeviceId).then(res1 => {
this.loading.close()
if (res1.data.code == 200) {
this.nowDevicestatus = res1.data.data
var list1 = this.allDevicestatus
var list2 = this.nowDevicestatus
var resultArray = []
// list1
for (const item1 of list1) {
// list2 id
const matchingItem = list2.find(item2 => item2.id === item1.id);
// list1 select
if (matchingItem) {
item1.select = true;
} else {
// select false
item1.select = false;
}
//
resultArray.push(item1);
}
this.selDevicestatus = resultArray
this.roleModel = true
getcontrol_cpermission() {
this.api.getcontrol_cpermission(this.nowDeviceId).then((res1) => {
this.loading.close();
if (res1.data.code == 200) {
this.nowDevicestatus = res1.data.data;
var list1 = this.allDevicestatus;
var list2 = this.nowDevicestatus;
var resultArray = [];
// list1
for (const item1 of list1) {
// list2 id
const matchingItem = list2.find((item2) => item2.id === item1.id);
// list1 select
if (matchingItem) {
item1.select = true;
} else {
this.$message.error(res1.data.msg);
// select false
item1.select = false;
}
})
//
resultArray.push(item1);
}
this.selDevicestatus = resultArray;
this.roleModel = true;
} else {
this.$message.error(res1.data.msg);
}
});
},
selClick(item) {
var store = this.$store.state
var deviceId = this.nowDeviceId
var statusId = item.id
if (item.select) {
item.select = false
this.$forceUpdate();
this.api.delpermission(deviceId, statusId).then((res => {
if (res.data.code == 200) {
this.$message({
message: '修改成功',
type: "success",
});
this.getcontrol_cpermission()
} else {
this.$message({
message: res.data.msg,
type: "warning",
});
}
}))
} else {
item.select = true
this.$forceUpdate();
this.api.addpermission(deviceId, statusId).then((res => {
if (res.data.code == 200) {
this.$message({
message: '修改成功',
type: "success",
});
this.getcontrol_cpermission()
}
}))
}
},
var store = this.$store.state;
var deviceId = this.nowDeviceId;
var statusId = item.id;
if (item.select) {
item.select = false;
this.$forceUpdate();
this.api.delpermission(deviceId, statusId).then((res) => {
if (res.data.code == 200) {
this.$message({
message: "修改成功",
type: "success",
});
this.getcontrol_cpermission();
} else {
this.$message({
message: res.data.msg,
type: "warning",
});
}
});
} else {
item.select = true;
this.$forceUpdate();
this.api.addpermission(deviceId, statusId).then((res) => {
if (res.data.code == 200) {
this.$message({
message: "修改成功",
type: "success",
});
this.getcontrol_cpermission();
}
});
}
},
confirmDel(item) {
var data = { id: item.deviceId }
this.api.deldevice(data).then(res => {
var data = { id: item.deviceId };
this.api.deldevice(data).then((res) => {
if (res.data.code == 200) {
this.dataInit()
this.dataInit();
this.$message.success(res.data.msg);
} else {
this.$message.error(res.data.msg);
}
})
});
},
getData() {
var data = {
page: this.currentPage,
pageSize: this.pageSize,
userName: this.searchName,
deviceId: this.searchID
}
deviceId: this.searchID,
};
this.loading = this.$loading({
lock: true,
text: '加载中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
text: "加载中",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
this.api.seldevice(data).then(res => {
this.loading.close()
this.api.seldevice(data).then((res) => {
this.loading.close();
if (res.data.code == 200) {
this.tableData = res.data.data.data
this.total = res.data.data.total
this.tableData = res.data.data.data;
this.total = res.data.data.total;
} else {
this.$message.error(res.data.msg);
}
})
});
},
handleSizeChange(val) {
this.pageSize = val
this.pageSize = val;
setTimeout(() => {
this.getData()
this.getData();
}, 0);
},
handleCurrentChange(val) {
this.currentPage = val
this.currentPage = val;
setTimeout(() => {
this.getData()
this.getData();
}, 0);
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
return "warning-row";
} else if (rowIndex % 2 == 0) {
return 'success-row';
return "success-row";
}
return '';
}
return "";
},
},
}
};
</script>
<style lang="scss"></style>

View File

@ -130,6 +130,7 @@ export default {
this.api.updatephoneeqData(data).then(res => {
this.loading.close()
if (res.data.code == 200) {
this.$message.success(res.data.msg);
this.dataInit()
this.addModel = false
} else {
@ -141,6 +142,7 @@ export default {
this.api.addphoneeqData(data).then(res => {
this.loading.close()
if (res.data.code == 200) {
this.$message.success(res.data.msg);
this.dataInit()
this.addModel = false
} else {

View File

@ -306,6 +306,10 @@ export default {
if (res.data.code == 200) {
this.tableData1 = res.data.data.data
this.total1 = res.data.data.totalCount
}else{
this.$message.success(res.data.msg);
this.tableData1=[]
this.total1 =0
}
})
},
@ -339,6 +343,11 @@ export default {
});
this.tableData.push(processedData)
})
}else{
this.$message.success(res.data.msg);
this.tableList = []
this.tableData = []
this.total =0
}
})
},

View File

@ -844,17 +844,21 @@ export default {
message: '添加成功',
type: "success",
});
var userid = JSON.parse(localStorage.getItem('userInfo')).userid
this.warnForm = {
'deviceId': this.warnForm.deviceId,
"userId": '',
"userId": userid,
"environmentData": '',
"environmentId": '',
"unit": '',
"phonenumber": '',
"phonenumber2": ''
}
this.warnModelSel1 = ''
this.warnModelSel2 = ''
this.$forceUpdate()
this.getMessageList()
} else {
this.$message.error(res.data.msg);
@ -1168,56 +1172,20 @@ export default {
this.inputData = res.data.data;
this.list = []
this.updateTime=res.data.data[0].updateTime
this.updateTime=res.data.data.length?res.data.data[0].updateTime:''
this.inputData.forEach((el, index) => {
list.forEach((el1, index1) => {
if (el.formula == el1.value) {
var num = 0
var name = ''
// if(el1.countType==1){
// num=this.countType1(el.environmentData)+el1.unit
// }else if(el1.countType==2){
// num=this.countType2(el.environmentData)+el1.unit
// }else if(el1.countType==3){
// num=this.countType3(el.environmentData)+el1.unit
// }else{
if (el.equipmentStart == 0) {
num = '故障'
} else {
num = el.environmentData + el1.unit
}
// }
// if (el.equipmentNumber == 0) {
// if (el.targetValue == 1) {
// name = '1#' + el.environmentDataId
// } else {
// name = '1#' + el.environmentDataId
// }
// } else if (el.equipmentNumber == 15) {
// if (el.targetValue == 1) {
// name = '2#' + el.environmentDataId
// } else {
// name = '2#' + el.environmentDataId
// }
// } else {
// if (el.targetValue == 1) {
// name = el.equipmentNumber + '#' + el.environmentDataId
// } else {
// name = el.equipmentNumber + '#' + el.environmentDataId
// }
// }
// if (el.targetValue == 1) {
// name = '' + el.environmentDataId
// } else {
// if (el.equipmentNumber == 0) {
// name = '1#' + el.environmentDataId
// } else if (el.equipmentNumber == 15) {
// name = '2#' + el.environmentDataId
// } else {
// name = el.equipmentNumber + '#' + el.environmentDataId
// }
// }
if (el.targetValue == 1) {
if (el.equipmentNumber == 0) {
name = '目标' + el.environmentDataId
@ -1282,7 +1250,7 @@ export default {
// }
// })
}
} else if (this.deviceName == 10) {
this.api.getControlRtdata(equipmentId).then((res) => {
if (res.data.code == 200) {
@ -1295,14 +1263,7 @@ export default {
if (el.formula == el1.value) {
var num = 0
var name = ''
// if(el1.countType==1){
// num=this.countType1(el.environmentData)+el1.unit
// }else if(el1.countType==2){
// num=this.countType2(el.environmentData)+el1.unit
// }else if(el1.countType==3){
// num=this.countType3(el.environmentData)+el1.unit
// }else{
if (el.equipmentStart == 0) {
num = '故障'
} else {
@ -1406,24 +1367,45 @@ export default {
// })
}
} else if (this.deviceName == 30) {
this.api.getControlRtDatastation(formData).then(res => {
this.controlList = []
this.list = []
this.updateTime=res.data.data[0].updateTime
this.getControlRtDatastation(formData)
this.api.getControlChartdata(equipmentId).then(res => {
if (res.data.code == 200) {
res.data.data.forEach((el, index) => {
var chartsData = res.data.data
realTimeLine('realTime-line', chartsData, equipmentId)
})
}
})
}else if(this.deviceName==20){
this.getFi_rtdata(formData)
this.getControlRtDatastation(formData)
var nowDevice = store.equipmentList[this.indexs - 1]
this.imgUrl = nowDevice.hls
this.chart_fidata(equipmentId)
}else if(this.deviceName==40){
this.api.getdataRtdata(equipmentId).then((res) => {
if (res.data.code == 200) {
this.inputData = res.data.data;
this.list = []
this.updateTime=res.data.data.length?res.data.data[0].updateTime:''
this.inputData.forEach((el, index) => {
list.forEach((el1, index1) => {
if (el.formula == el1.value) {
// console.log(el1);
var num = 0
var name = ''
if (el.equipmentStart == 0) {
num = '故障'
} else {
num = el.environmentData + el1.unit
}
if(el.equipmentName==30){
if (el.targetValue == 1) {
if (el.targetValue == 1) {
if (el.equipmentNumber == 0) {
name = '目标' + el.environmentDataId
} else {
@ -1438,17 +1420,64 @@ export default {
name = el.equipmentNumber + '#' + el.environmentDataId
}
}
}else{
name=el.environmentDataId
}
this.list.push({
...el,
name: name,
num: num,
img: require(`../../assets/image/real-time-${el.formula}.png`)
})
}
})
})
} else {
// this.$message.error(res.data.msg);
}
});
var data1 = store.equipmentList[this.indexs - 1].deviceId
this.api.postFsdata(data1).then(res => {
if (res.data.code == 200) {
var chartsData = res.data.data
realTimeLine('realTime-line', chartsData, data1)
} else {
// this.$message.error(res.data.msg);
}
})
this.getControlRtDatastation(formData)
var nowDevice = store.equipmentList[this.indexs - 1]
this.imgUrl = nowDevice.hls
}
},
chart_fidata(equipmentId){
this.api.chart_fidata(equipmentId).then(res=>{
if (res.data.code == 200) {
var chartsData = res.data.data
realTimeLine('realTime-line', chartsData, data1)
} else {
// this.$message.error(res.data.msg);
}
})
},
getControlRtDatastation(formData){
this.api.getControlRtDatastation(formData).then(res => {
this.controlList = []
if (res.data.code == 200) {
res.data.data.forEach((el, index) => {
list.forEach((el1, index1) => {
if (el.formula == el1.value) {
// console.log(el1);
var num = 0
if (el.equipmentStart == 0) {
num = '故障'
} else {
num = el.environmentData + el1.unit
}
this.controlList.push({
...el,
num: num,
@ -1460,17 +1489,9 @@ export default {
}
// console.log(this.controlList);
})
this.api.getControlChartdata(equipmentId).then(res => {
if (res.data.code == 200) {
res.data.data.forEach((el, index) => {
var chartsData = res.data.data
realTimeLine('realTime-line', chartsData, equipmentId)
})
}
})
}else if(this.deviceName==20){
this.api.getFi_rtdata(formData).then(res=>{
},
getFi_rtdata(formData){
this.api.getFi_rtdata(formData).then(res=>{
if (res.data.code == 200) {
this.inputData = res.data.data;
this.list = []
@ -1520,47 +1541,6 @@ export default {
// this.$message.error(res.data.msg);
}
})
this.api.getControlRtDatastation(formData).then(res => {
this.controlList = []
if (res.data.code == 200) {
res.data.data.forEach((el, index) => {
list.forEach((el1, index1) => {
if (el.formula == el1.value) {
// console.log(el1);
var num = 0
if (el.equipmentStart == 0) {
num = '故障'
} else {
num = el.environmentData + el1.unit
}
this.controlList.push({
...el,
num: num,
img: require(`../../assets/image/real-time-${el.formula}.png`)
})
}
})
})
}
// console.log(this.controlList);
})
var nowDevice = store.equipmentList[this.indexs - 1]
// var data2 = {
// cameraid: nowDevice.cameraSerialNumber,
// channelid: nowDevice.cameraChannelNumber
// }
this.imgUrl = nowDevice.hls
this.api.chart_fidata(equipmentId).then(res=>{
if (res.data.code == 200) {
var chartsData = res.data.data
realTimeLine('realTime-line', chartsData, data1)
} else {
// this.$message.error(res.data.msg);
}
})
}
},
//status
getStatePermissionStatus() {

View File

@ -14,7 +14,7 @@
<img src="../../assets/image/system.png" alt=""> 系统参数设置
</div>
<div class="flex-view border-none padding-none">
<div class="input-main-60" style="width: auto;">
<div class="input-main-60 input-main-100" style="width: auto;">
<span>软件版本号</span>
<input disabled v-model="inputData['76']" type="text" placeholder="0">