pc-master #250

Merged
xiaomeng merged 13 commits from pc-master into portal 2025-06-11 01:58:21 +00:00
12 changed files with 361 additions and 911 deletions

View File

@ -575,6 +575,13 @@ cameraStop(cameraSerialNumber,cameraChannelNumber,num) {
selUserbyid(data){
return sendGetRequest(`/sel/userbyid/`+data, ``)
},
// 获取物联网卡号
qibenGeticcid(data){
return sendPostRequest(`/qiben/geticcid`, data)
},
popupwindow(data){
return sendGetRequest(`/qiben/popupwindow`, data)
},
//根据设备ID获取设备状态值
selControlPermissions(data){
return sendGetRequest(`/getcontrol/selControlPermissions`, data)
@ -881,4 +888,5 @@ getIccid(data){
getInsectChartData(data){
return sendPostParamsRequest(`/v1/getInsectChartData`, data)
},
};

View File

@ -879,6 +879,14 @@ textarea {
color: #859BB6;
}
.el-notification__content p {
word-break: break-all;
}
.color-red {
color: red;
}
.outline {
color: red;
font-weight: bold;
@ -2070,12 +2078,18 @@ textarea {
height: auto;
}
.realTime .page-content .page-iccid {
margin-top: -15px;
margin-bottom: 10px;
}
.realTime .page-content .control-view {
display: flex;
align-items: center;
position: absolute;
right: 30px;
top: 10px;
max-width: 50%;
}
.realTime .page-content .control-view .title {
@ -2086,7 +2100,7 @@ textarea {
display: flex;
align-items: center;
overflow: hidden;
max-width: 806px;
max-width: calc(100% - 62px);
}
.realTime .page-content .control-view .control-list > div {

View File

@ -944,7 +944,14 @@ textarea {
}
}
}
.el-notification__content{
p{
word-break: break-all;
}
}
.color-red{
color: red;
}
.outline {
color: red;
font-weight: bold;
@ -2198,14 +2205,17 @@ textarea {
&.control-page {
height: auto;
}
.page-iccid{
margin-top: -15px;
margin-bottom: 10px;
}
.control-view {
display: flex;
align-items: center;
position: absolute;
right: 30px;
top: 10px;
max-width: 50%;
.title {
margin-right: 10px;
}
@ -2215,7 +2225,7 @@ textarea {
align-items: center;
overflow: hidden;
max-width: 806px;
max-width: calc(100% - 62px);
>div {
// width: 100%!important;

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

View File

@ -208,6 +208,7 @@ export function realTimeLine(id, data,pageId) {
})
// 默认只显示第0个
if(!selTure){
dataList.forEach((el, index) => {
selList[el.name]=(index==0?true:false)
@ -376,25 +377,25 @@ export function realTimeLine1(id, data,pageId) {
var Xdata = []
// var equipmentList=store.state.equipmentSelList
var equipmentList=JSON.parse(localStorage.getItem('equipmentSelList'))
var equipmentList=JSON.parse(localStorage.getItem('equipmentSelList')?localStorage.getItem('equipmentSelList'):'[]')
var list = []
var selList={}
var selTure=false
var dataList = []
// equipmentList.forEach(obj => {
// if (obj.deviceId == pageId) {
// // 在找到的对象中添加参数
// if(obj.selList){
// selList = obj.selList;
// selTure=true
// }else{
// selList ={}
// selTure=false
// }
equipmentList.forEach(obj => {
if (obj.deviceId == pageId) {
// 在找到的对象中添加参数
if(obj.selList1){
selList = obj.selList1;
selTure=true
}else{
selList ={}
selTure=false
}
// }
// });
}
});
data.forEach((el, index) => {
Xdata.push(el.time)
@ -411,11 +412,12 @@ export function realTimeLine1(id, data,pageId) {
})
// if(!selTure){
// dataList.forEach((el, index) => {
// selList[el.name]=(index==0?true:false)
// })
// }
// 默认全部显示
if(!selTure){
dataList.forEach((el, index) => {
selList[el.name]=true
})
}
dataList.forEach((el, index) => {
list.push({
name: el.name,
@ -557,16 +559,16 @@ export function realTimeLine1(id, data,pageId) {
option && myChart.setOption(option);
myChart.resize();
// myChart.on('legendselectchanged', function (params) {
// equipmentList.forEach((obj,index) => {
// if (obj.deviceId== pageId) {
// // 在找到的对象中添加参数
// obj.selList=params.selected
myChart.on('legendselectchanged', function (params) {
equipmentList.forEach((obj,index) => {
if (obj.deviceId== pageId) {
// 在找到的对象中添加参数
obj.selList1=params.selected
// }
// });
// localStorage.setItem('equipmentSelList', JSON.stringify(equipmentList))
// });
}
});
localStorage.setItem('equipmentSelList', JSON.stringify(equipmentList))
});
window.addEventListener("resize", function () {
myChart.resize();
});
@ -579,25 +581,25 @@ export function realTimeLine2(id, data,pageId) {
var Xdata = []
// var equipmentList=store.state.equipmentSelList
var equipmentList=JSON.parse(localStorage.getItem('equipmentSelList'))
// var equipmentList=JSON.parse(localStorage.getItem('equipmentSelList'))
var list = []
var selList={}
var selTure=false
var dataList = []
equipmentList.forEach(obj => {
if (obj.deviceId == pageId) {
// 在找到的对象中添加参数
if(obj.selList){
selList = obj.selList;
selTure=true
}else{
selList ={}
selTure=false
}
// equipmentList.forEach(obj => {
// if (obj.deviceId == pageId) {
// // 在找到的对象中添加参数
// if(obj.selList){
// selList = obj.selList;
// selTure=true
// }else{
// selList ={}
// selTure=false
// }
}
});
// }
// });
data.forEach((el, index) => {
Xdata.push(el.time)
@ -736,16 +738,16 @@ export function realTimeLine2(id, data,pageId) {
option && myChart.setOption(option);
myChart.resize();
myChart.on('legendselectchanged', function (params) {
equipmentList.forEach((obj,index) => {
if (obj.deviceId== pageId) {
// 在找到的对象中添加参数
obj.selList=params.selected
// myChart.on('legendselectchanged', function (params) {
// equipmentList.forEach((obj,index) => {
// if (obj.deviceId== pageId) {
// // 在找到的对象中添加参数
// obj.selList=params.selected
}
});
localStorage.setItem('equipmentSelList', JSON.stringify(equipmentList))
});
// }
// });
// localStorage.setItem('equipmentSelList', JSON.stringify(equipmentList))
// });
window.addEventListener("resize", function () {
myChart.resize();
});

View File

@ -12,6 +12,7 @@ export default new Vuex.Store({
equipmentSelList:[],//存储当前echarts的sel数组
equipmentIndex: 1,//当前在第几个设备
equipmentName: null,//当前设备 小设备的各个名字
iccidList:[],//各个设备iccid的数组
nameList: ['One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Elven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen'],
formulaNum: [16, 48, 80, 112, 144, 176, 208, 240],
ControlData:null,//控制器五方数据

View File

@ -2,6 +2,7 @@
<div class="index">
<div class="header">
<div class="header-left">
<img class="logo-img" src="../assets/image/logo-img.png" alt="">
<img class="logo-bg" src="../assets/image/logo.png" alt="">
<div class="logo-title" v-if="mainData">
@ -22,7 +23,8 @@
<div class="header-right" v-if="userInfo">
<img src="../assets/image/avatar.png" alt="">
<div class="user-data">
<div class="name">欢迎{{ userInfo.nickName }}</div>
<div class="name">欢迎{{ userInfo.nickName }}
</div>
<div class="time" v-if="time"> {{ time.year.year }}-{{ time.year.month }}-{{ time.year.date }}</div>
</div>
<div class="login-out" @click="loginOut"></div>
@ -315,6 +317,41 @@ export default {
return 'formula'
}
},
getQibenGeticcid(){
const store = this.$store.state
var data=this.devicesList.map(device => ({
deviceId: device.deviceId,
iccid: device.iccidcode,
deviceName: device.deviceTypeName
}));
var iccidList=[]
var userInfo = localStorage.getItem('userInfo') ? JSON.parse(localStorage.getItem('userInfo')) : { userid: -1 }
this.api.popupwindow({userId:userInfo.userid}).then(res1=>{
data.forEach((el,index)=>{
this.api.qibenGeticcid(el).then(res=>{
if(res.data.code==200){
iccidList.push(res.data.data)
this.$store.state.iccidList=iccidList
if(res1.data.data&&res.data.data.expired){
setTimeout(() => {
this.$notify({
title: '提示',
dangerouslyUseHTMLString: true,
message: `<div><span class="color-red">${res.data.data.deviceName}</span>卡号为${res.data.data.iccid},物联网卡即将到期,剩余时间<span class="color-red">${res.data.data.daysDifference}天</span>,请联系管理员。</div>`,
duration:60000,//10s
});
}, 10);
}
}
})
})
})
},
//
getEqbyid(selTrue) {
const that = this
@ -323,6 +360,11 @@ export default {
this.api.selUserbyid(userInfo.userid).then((res) => {
if (res.data.code == 200) {
var data=res.data.data.devices
this.devicesList=res.data.data.devices
if(selTrue){
this.getQibenGeticcid(data)
}
this.$store.state.equipmentList =data.map((item, index) => {
return {
...item,

View File

@ -134,6 +134,7 @@ export default {
pageSize: 999,
isEquipment: store.equipmentList[index - 1].deviceName == 30 ? 1 : 0
}
var data1 = store.equipmentList[index - 1].deviceId
this.api.selFsTime(data).then(res => {
this.loading.close()
if (res.data.code == 200) {
@ -149,10 +150,11 @@ export default {
})
};
});
realTimeLine1('realTime-line', chartsData)
realTimeLine1('realTime-line', chartsData,data1)
} else {
var chartsData=[]
realTimeLine1('realTime-line', chartsData)
realTimeLine1('realTime-line', chartsData,data1)
this.$message.error(res.data.msg);
}
})

View File

@ -2218,16 +2218,16 @@ export default {
left: 0;
z-index: 99;
-webkit-mask-image: linear-gradient(90deg,
transparent 22%,
transparent 0%,
transparent 10%,
blue 30%,
blue 70%,
transparent 75%,
blue 20%,
blue 80%,
transparent 90%,
transparent 100%);
.map1 {
width: 60%;
height: 60%;
width: 90%;
height:90%;
// background: url('../assets/img/map.png') center no-repeat;
// background-size: 100% 100%;
// -webkit-mask-image: linear-gradient(0deg, transparent 5%,
@ -2238,7 +2238,7 @@ export default {
// transparent 100%);
-webkit-mask-image: linear-gradient(transparent 0%,
blue 8%,
blue 85%,
blue 92%,
transparent 100%);
// transform: scale(0.6);
position: absolute;
@ -2256,9 +2256,9 @@ export default {
z-index: 10;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 5%,
blue 93%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
@ -2294,9 +2294,9 @@ export default {
z-index: 10;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 5%,
blue 93%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
@ -2360,12 +2360,12 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
top: -64px;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 5%,
blue 93%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
@ -2443,12 +2443,11 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
top: -64px;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 2%,
blue 97%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
height: auto;
@ -2591,12 +2590,11 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
top: -64px;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 2%,
blue 97%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
@ -2642,13 +2640,12 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
top: -64px;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 2%,
blue 97%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
height: auto;
@ -2676,12 +2673,12 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
top: -64px;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 2%,
blue 97%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
@ -2781,12 +2778,12 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
top: -64px;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 2%,
blue 97%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
@ -2905,12 +2902,12 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
top: -64px;
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 2%,
blue 97%,
transparent 99%);
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
width: 100%;
@ -3011,9 +3008,9 @@ export default {
// left: 0.5rem;
z-index: 10;
-webkit-mask-image: linear-gradient(90deg,
transparent 4%,
blue 18%,
blue 88%,
transparent 0%,
blue 13%,
blue 87%,
transparent 100%);
.drag_img {
@ -3029,6 +3026,7 @@ export default {
width: 0.7rem;
height: 0.86rem;
position: absolute;
cursor: pointer;
top: 5%;
left: 22%;
z-index: 99;
@ -3038,6 +3036,7 @@ export default {
width: 0.7rem;
height: 0.86rem;
position: absolute;
cursor: pointer;
top: 23%;
left: 41%;
z-index: 99;
@ -3047,6 +3046,7 @@ export default {
width: 0.7rem;
height: 0.86rem;
position: absolute;
cursor: pointer;
top: 43%;
left: 15%;
z-index: 99;
@ -3056,6 +3056,7 @@ export default {
width: 0.7rem;
height: 0.86rem;
position: absolute;
cursor: pointer;
top: 3%;
left: 64%;
z-index: 99;
@ -3065,6 +3066,7 @@ export default {
width: 0.7rem;
height: 0.86rem;
position: absolute;
cursor: pointer;
top: 29%;
left: 78%;
z-index: 99;
@ -3074,6 +3076,7 @@ export default {
width: 0.7rem;
height: 0.86rem;
position: absolute;
cursor: pointer;
top: 63%;
left: 65%;
z-index: 99;
@ -3083,6 +3086,7 @@ export default {
width: 1.04rem;
height: 1.18rem;
position: absolute;
cursor: pointer;
top: 42%;
left: 45%;
z-index: 99;

File diff suppressed because it is too large Load Diff

View File

@ -36,7 +36,7 @@
</div>
<!-- 控制器/施肥机 -->
<div class="page-content new-data" v-else :class="deviceName !=1 ? 'control-page' : ''">
<div class="page-iccid"><span>卡号:{{$store.state.equipmentList[indexs - 1].iccidcode?$store.state.equipmentList[indexs - 1].iccidcode:''}}</span>&nbsp;&nbsp;&nbsp;<span>到期时间: </span><span :class="getPackageTimeColor()?'color-red':''">{{getPackageTime()}}<span v-if="getPackageTimeColor()">(即将到期)</span></span> </div>
<div class="control-view" v-if="deviceName !=1">
<div class="title" @click='weatherModel = true'>气象站:</div>
<vue-seamless class="control-list" :data="controlList" :class-option="defaultOption1">
@ -749,6 +749,9 @@ export default {
this.deviceName = store.equipmentList[this.indexs - 1].deviceName
this.deviceState = store.equipmentList[this.indexs - 1].deviceState
clearInterval(this.statusInterval) && this.statusInterval
this.inputData = [];
this.list = []
this.updateTime=''
this.nowDevicestatus=[]
setTimeout(() => {
@ -758,8 +761,6 @@ export default {
that.player = null
}
that.dataInit();
}, 0);
},
},
@ -772,6 +773,7 @@ export default {
// this.getTime()
setTimeout(() => {
that.dataInit();
that.timer && clearInterval(that.timer)
@ -795,6 +797,16 @@ export default {
this.$bus.$off('refreshTime')
},
methods: {
getPackageTime(){
var item= this.$store.state.iccidList.find(item=>item.iccid==this.$store.state.equipmentList[this.indexs - 1].iccidcode)
return item? item.packageTime:'无数据'
},
getPackageTimeColor(){
var item= this.$store.state.iccidList.find(item=>item.iccid==this.$store.state.equipmentList[this.indexs - 1].iccidcode)
return item? item.expired:false
},
openVolt(){
this.voltModel=true
},
@ -1163,6 +1175,8 @@ export default {
if(res.data.code==200){
this.typeSelList=res.data.data
}else{
this.typeSelList=[]
}
})
var list = store.typeList
@ -1215,6 +1229,8 @@ export default {
})
})
} else {
this.inputData = [];
this.list = []
// this.$message.error(res.data.msg);
}
});
@ -1225,6 +1241,7 @@ export default {
var chartsData = res.data.data
realTimeLine('realTime-line', chartsData, data1)
} else {
var chartsData = []
// this.$message.error(res.data.msg);
}
})
@ -1297,6 +1314,8 @@ export default {
})
})
} else {
this.inputData = [];
this.list = []
// this.$message.error(res.data.msg);
}
});
@ -1340,6 +1359,7 @@ export default {
var chartsData = res.data.data
realTimeLine('realTime-line', chartsData, data1)
} else {
var chartsData = []
// this.$message.error(res.data.msg);
}
})
@ -1427,6 +1447,8 @@ export default {
var chartsData = res.data.data
realTimeLine('realTime-line', chartsData, equipmentId)
})
}else{
}
})
@ -1488,6 +1510,8 @@ export default {
})
} else {
// this.$message.error(res.data.msg);
this.inputData =[];
this.list = []
}
});
var data1 = store.equipmentList[this.indexs - 1].deviceId

View File

@ -39,12 +39,14 @@ module.exports = {
publicPath: process.env.NODE_ENV === "production" ? "./" : "/",
devServer: {
// https:true,
client: {
overlay: false // 编译错误时,取消全屏覆盖(建议关掉)
},
proxy: {
"/api": {
target: 'https://api.lihe-control.com', //地址
// target: 'http://jiaxingtest.a1.luyouxia.net:21114', //地址
// target: 'http://jiaxingtest.a1.luyouxia.net:25762', //地址
changeOrigin: true,
pathRewrite: {
"^/api": "",