1
							
								
								
									
										176
									
								
								src/api/index.js
									
									
									
									
									
								
							
							
						
						@ -28,6 +28,33 @@ function sendGetRequest(url, data) {
 | 
				
			|||||||
      })
 | 
					      })
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					function sendUploadRequest(url, data) {
 | 
				
			||||||
 | 
					  // 一个状态为resolve(包裹的是数据)
 | 
				
			||||||
 | 
					  // 或者状态为reject (包裹的是错误信息)
 | 
				
			||||||
 | 
					  // 的promise对象
 | 
				
			||||||
 | 
					  return new Promise(function (resolve, reject) {
 | 
				
			||||||
 | 
					    axios.post(url, data, {
 | 
				
			||||||
 | 
					      headers: {
 | 
				
			||||||
 | 
					        'Content-Type': 'multipart/form-data',
 | 
				
			||||||
 | 
					        // 'Content-Type': 'application/json; charset=utf-8',
 | 
				
			||||||
 | 
					        'token': (localStorage.getItem('token') ? localStorage.getItem('token') : '')
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }).then(
 | 
				
			||||||
 | 
					      (res) => {
 | 
				
			||||||
 | 
					        if (res.data.code == 401) {
 | 
				
			||||||
 | 
					          localStorage.removeItem('token')
 | 
				
			||||||
 | 
					          router.push({
 | 
				
			||||||
 | 
					            name: 'login'
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        resolve(res);
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      (err) => {
 | 
				
			||||||
 | 
					        reject(err);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function sendPostRequest(url, data) {
 | 
					function sendPostRequest(url, data) {
 | 
				
			||||||
  // 一个状态为resolve(包裹的是数据)
 | 
					  // 一个状态为resolve(包裹的是数据)
 | 
				
			||||||
@ -85,7 +112,32 @@ function sendDelRequest(url, data) {
 | 
				
			|||||||
    );
 | 
					    );
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					function sendPutRequest(url, data) {
 | 
				
			||||||
 | 
					  // 一个状态为resolve(包裹的是数据)
 | 
				
			||||||
 | 
					  // 或者状态为reject (包裹的是错误信息)
 | 
				
			||||||
 | 
					  // 的promise对象
 | 
				
			||||||
 | 
					  return new Promise(function (resolve, reject) {
 | 
				
			||||||
 | 
					    axios.put(url, data, {
 | 
				
			||||||
 | 
					      headers: {
 | 
				
			||||||
 | 
					        // 'Content-Type': 'application/json; charset=utf-8',
 | 
				
			||||||
 | 
					        'token': (localStorage.getItem('token') ? localStorage.getItem('token') : '')
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }).then(
 | 
				
			||||||
 | 
					      (res) => {
 | 
				
			||||||
 | 
					        if (res.data.code == 401) {
 | 
				
			||||||
 | 
					          localStorage.removeItem('token')
 | 
				
			||||||
 | 
					          router.push({
 | 
				
			||||||
 | 
					            name: 'login'
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        resolve(res);
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      (err) => {
 | 
				
			||||||
 | 
					        reject(err);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
//总接口域名
 | 
					//总接口域名
 | 
				
			||||||
axios.defaults.baseURL = "/api";
 | 
					axios.defaults.baseURL = "/api";
 | 
				
			||||||
axios.defaults.timeout = 30000; // 设置全局默认请求超时时间为10秒
 | 
					axios.defaults.timeout = 30000; // 设置全局默认请求超时时间为10秒
 | 
				
			||||||
@ -101,6 +153,14 @@ export default {
 | 
				
			|||||||
  post(data) {
 | 
					  post(data) {
 | 
				
			||||||
    return sendPostRequest("", data);
 | 
					    return sendPostRequest("", data);
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  delete(data) {
 | 
				
			||||||
 | 
					    return sendDelRequest("", data);
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  put(data) {
 | 
				
			||||||
 | 
					    return sendPutRequest("", data);
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //接口开始()
 | 
					  //接口开始()
 | 
				
			||||||
  //登录
 | 
					  //登录
 | 
				
			||||||
@ -401,6 +461,116 @@ cameraStop(cameraSerialNumber,cameraChannelNumber,num) {
 | 
				
			|||||||
},
 | 
					},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//管理模块
 | 
				
			||||||
 | 
					//根据用户ID获取账户设备
 | 
				
			||||||
 | 
					selUserbyid(data){
 | 
				
			||||||
 | 
					  return sendGetRequest(`/sel/userbyid/`+data, '')
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//根据设备ID获取设备状态值
 | 
				
			||||||
 | 
					selControlPermissions(data){
 | 
				
			||||||
 | 
					  return sendGetRequest(`/getcontrol/selControlPermissions`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//根据设备ID修改设备状态值
 | 
				
			||||||
 | 
					putpermission(data){
 | 
				
			||||||
 | 
					  return sendPutRequest(`/getcontrol/putpermission`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//根据设备ID获取设备控制值
 | 
				
			||||||
 | 
					selpermission(data){
 | 
				
			||||||
 | 
					  return sendGetRequest(`/getcontrol/selpermission`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//根据设备ID修改设备控制值
 | 
				
			||||||
 | 
					putControlpermission(data){
 | 
				
			||||||
 | 
					  return sendPutRequest(`/getcontrol/putControlpermission`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//根据ID修改施肥机数据
 | 
				
			||||||
 | 
					updatedevice(data){
 | 
				
			||||||
 | 
					  return sendPutRequest(`/device/updatedevice`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//根据ID修改施肥机名字
 | 
				
			||||||
 | 
					updateFsname(data){
 | 
				
			||||||
 | 
					  return sendPutRequest(`/update/fsname`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//根据用户ID添加小程序气象站
 | 
				
			||||||
 | 
					addphoneeqData(data) {
 | 
				
			||||||
 | 
					    return sendPostRequest(`/getcontrol/addphoneeqData`, data)
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					//根据用户ID删除小程序气象站
 | 
				
			||||||
 | 
					delphoneeqData(data) {
 | 
				
			||||||
 | 
					  return sendDelRequest(`/getcontrol/delphoneeqData`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//根据用户ID修改小程序气象站
 | 
				
			||||||
 | 
					updatephoneeqData(data) {
 | 
				
			||||||
 | 
					  return sendPutRequest(`/getcontrol/updatephoneeqData`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//修改大数据信息
 | 
				
			||||||
 | 
					updateDataDevice(data) {
 | 
				
			||||||
 | 
					  return sendPutRequest(`/getcontrol/updateBigData`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//小程序手机控制权限模块查询
 | 
				
			||||||
 | 
					wxgetpermission(data) {
 | 
				
			||||||
 | 
					  return sendGetRequest(`/getcontrol/wxgetpermission`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//查询所有用户
 | 
				
			||||||
 | 
					adminAll(data){
 | 
				
			||||||
 | 
					  return sendGetRequest(`/admin/all`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//更新用户信息
 | 
				
			||||||
 | 
					updateUser(data){
 | 
				
			||||||
 | 
					  return sendPutRequest(`/admin/add/userEquipment`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//添加用户信息
 | 
				
			||||||
 | 
					addUser(data){
 | 
				
			||||||
 | 
					  return sendPostRequest(`/admin/user`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//修改密码
 | 
				
			||||||
 | 
					updatePwd(data){
 | 
				
			||||||
 | 
					  return sendPutRequest(`/user/update/pwd`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//设备查询
 | 
				
			||||||
 | 
					seldevice(data){
 | 
				
			||||||
 | 
					  return sendGetRequest(`/admin/seldevice`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//删除设备信息
 | 
				
			||||||
 | 
					deldevice(data){
 | 
				
			||||||
 | 
					  return sendDelRequest(`/admin/deldevice`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//修改手机控制名称
 | 
				
			||||||
 | 
					updatewxgetpermission(data){
 | 
				
			||||||
 | 
					  return sendPutRequest(`/getcontrol/updatewxgetpermission`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//管理员/用户页面删除关联设备信息
 | 
				
			||||||
 | 
					delUserByid(data){
 | 
				
			||||||
 | 
					  return sendDelRequest(`/admin/delUserByid`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//管理员/用户页面添加关联设备信息
 | 
				
			||||||
 | 
					addUserByid(data){
 | 
				
			||||||
 | 
					  return sendPostRequest(`/admin/addUserByid`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//查询控制器权限
 | 
				
			||||||
 | 
					selectallPermissions(data){
 | 
				
			||||||
 | 
					  return sendGetRequest(`/getcontrol/selectallPermissions`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					//新增标准控制器权限
 | 
				
			||||||
 | 
					addpermissionall(equipmentId, data) {
 | 
				
			||||||
 | 
					    return sendPostRequest(`/getcontrol/addpermissionall?deviceId=${equipmentId}`, data)
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  //管理控制器权限删除
 | 
				
			||||||
 | 
					  delpermission(id1, id2) {
 | 
				
			||||||
 | 
					    return sendDelRequest(`/getcontrol/delpermission?deviceId=${id1}&permissionid=${id2}`, '')
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  //管理控制器权限添加
 | 
				
			||||||
 | 
					  addpermission(id1, id2) {
 | 
				
			||||||
 | 
					    return sendPostRequest(`/getcontrol/addpermission?deviceId=${id1}&permissionid=${id2}`, '')
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					//管理 设备管理添加设备
 | 
				
			||||||
 | 
					addDevice(data){
 | 
				
			||||||
 | 
					  return sendPostRequest(`/admin/addDevice`, data)
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //二维码溯源
 | 
					  //二维码溯源
 | 
				
			||||||
  //查看农事作物信息
 | 
					  //查看农事作物信息
 | 
				
			||||||
  getAgriculturalInformation(data) {
 | 
					  getAgriculturalInformation(data) {
 | 
				
			||||||
@ -419,5 +589,9 @@ cameraStop(cameraSerialNumber,cameraChannelNumber,num) {
 | 
				
			|||||||
  uploadImage(data) {
 | 
					  uploadImage(data) {
 | 
				
			||||||
    return sendPostRequest(`/code/uploadImage`, data)
 | 
					    return sendPostRequest(`/code/uploadImage`, data)
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  //管理页面上传图片
 | 
				
			||||||
 | 
					  manageUploadImage(data) {
 | 
				
			||||||
 | 
					    return sendUploadRequest(`/user/upload`, data)
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -1,20 +1,21 @@
 | 
				
			|||||||
@charset "UTF-8";
 | 
					@charset "UTF-8";
 | 
				
			||||||
.scroll, .el-dropdown-menu, .index .index-content > .left, .index .index-content > .right.right-page .page-content, .formula .page-content, .realTime, .realTime .page-content .realTime-bottom.weather .left-view-new, .history .page-content .el-table--scrollable-x .el-table__body-wrapper, .vrcode-table .vrcode-table-view.table-view .el-table__body-wrapper, .vrcode-model .el-dialog {
 | 
					.scroll, .el-dropdown-menu, .index .index-content > .left, .index .index-content > .right.right-page .page-content, .formula .page-content, .realTime, .realTime .page-content .realTime-bottom.weather .left-view-new, .history .page-content .el-table--scrollable-x .el-table__body-wrapper, .vrcode-model .el-dialog, .el-table .el-table__body-wrapper {
 | 
				
			||||||
  overflow-y: auto;
 | 
					  overflow-y: auto;
 | 
				
			||||||
 | 
					  flex-wrap: nowrap !important;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.scroll::-webkit-scrollbar, .el-dropdown-menu::-webkit-scrollbar, .index .index-content > .left::-webkit-scrollbar, .index .index-content > .right.right-page .page-content::-webkit-scrollbar, .formula .page-content::-webkit-scrollbar, .realTime::-webkit-scrollbar, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar, .vrcode-table .vrcode-table-view.table-view .el-table__body-wrapper::-webkit-scrollbar, .vrcode-model .el-dialog::-webkit-scrollbar {
 | 
					.scroll::-webkit-scrollbar, .el-dropdown-menu::-webkit-scrollbar, .index .index-content > .left::-webkit-scrollbar, .index .index-content > .right.right-page .page-content::-webkit-scrollbar, .formula .page-content::-webkit-scrollbar, .realTime::-webkit-scrollbar, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar, .vrcode-model .el-dialog::-webkit-scrollbar, .el-table .el-table__body-wrapper::-webkit-scrollbar {
 | 
				
			||||||
  /*滚动条整体*/
 | 
					  /*滚动条整体*/
 | 
				
			||||||
  width: 10px;
 | 
					  width: 10px;
 | 
				
			||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.scroll::-webkit-scrollbar-track, .el-dropdown-menu::-webkit-scrollbar-track, .index .index-content > .left::-webkit-scrollbar-track, .index .index-content > .right.right-page .page-content::-webkit-scrollbar-track, .formula .page-content::-webkit-scrollbar-track, .realTime::-webkit-scrollbar-track, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar-track, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-track, .vrcode-table .vrcode-table-view.table-view .el-table__body-wrapper::-webkit-scrollbar-track, .vrcode-model .el-dialog::-webkit-scrollbar-track {
 | 
					.scroll::-webkit-scrollbar-track, .el-dropdown-menu::-webkit-scrollbar-track, .index .index-content > .left::-webkit-scrollbar-track, .index .index-content > .right.right-page .page-content::-webkit-scrollbar-track, .formula .page-content::-webkit-scrollbar-track, .realTime::-webkit-scrollbar-track, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar-track, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-track, .vrcode-model .el-dialog::-webkit-scrollbar-track, .el-table .el-table__body-wrapper::-webkit-scrollbar-track {
 | 
				
			||||||
  /*滚动条轨道*/
 | 
					  /*滚动条轨道*/
 | 
				
			||||||
  background: #013769;
 | 
					  background: #013769;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.scroll::-webkit-scrollbar-thumb, .el-dropdown-menu::-webkit-scrollbar-thumb, .index .index-content > .left::-webkit-scrollbar-thumb, .index .index-content > .right.right-page .page-content::-webkit-scrollbar-thumb, .formula .page-content::-webkit-scrollbar-thumb, .realTime::-webkit-scrollbar-thumb, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar-thumb, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb, .vrcode-table .vrcode-table-view.table-view .el-table__body-wrapper::-webkit-scrollbar-thumb, .vrcode-model .el-dialog::-webkit-scrollbar-thumb {
 | 
					.scroll::-webkit-scrollbar-thumb, .el-dropdown-menu::-webkit-scrollbar-thumb, .index .index-content > .left::-webkit-scrollbar-thumb, .index .index-content > .right.right-page .page-content::-webkit-scrollbar-thumb, .formula .page-content::-webkit-scrollbar-thumb, .realTime::-webkit-scrollbar-thumb, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar-thumb, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb, .vrcode-model .el-dialog::-webkit-scrollbar-thumb, .el-table .el-table__body-wrapper::-webkit-scrollbar-thumb {
 | 
				
			||||||
  /*滚动条里面的滑块*/
 | 
					  /*滚动条里面的滑块*/
 | 
				
			||||||
  width: 4px;
 | 
					  width: 4px;
 | 
				
			||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
@ -22,11 +23,11 @@
 | 
				
			|||||||
  border: 3px solid #013769;
 | 
					  border: 3px solid #013769;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.scroll::-webkit-scrollbar-thumb:hover, .el-dropdown-menu::-webkit-scrollbar-thumb:hover, .index .index-content > .left::-webkit-scrollbar-thumb:hover, .index .index-content > .right.right-page .page-content::-webkit-scrollbar-thumb:hover, .formula .page-content::-webkit-scrollbar-thumb:hover, .realTime::-webkit-scrollbar-thumb:hover, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar-thumb:hover, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb:hover, .vrcode-table .vrcode-table-view.table-view .el-table__body-wrapper::-webkit-scrollbar-thumb:hover, .vrcode-model .el-dialog::-webkit-scrollbar-thumb:hover {
 | 
					.scroll::-webkit-scrollbar-thumb:hover, .el-dropdown-menu::-webkit-scrollbar-thumb:hover, .index .index-content > .left::-webkit-scrollbar-thumb:hover, .index .index-content > .right.right-page .page-content::-webkit-scrollbar-thumb:hover, .formula .page-content::-webkit-scrollbar-thumb:hover, .realTime::-webkit-scrollbar-thumb:hover, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar-thumb:hover, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-thumb:hover, .vrcode-model .el-dialog::-webkit-scrollbar-thumb:hover, .el-table .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
 | 
				
			||||||
  /*滚动条鼠标事件,鼠标放上去出现的事件*/
 | 
					  /*滚动条鼠标事件,鼠标放上去出现的事件*/
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.scroll::-webkit-scrollbar-corner, .el-dropdown-menu::-webkit-scrollbar-corner, .index .index-content > .left::-webkit-scrollbar-corner, .index .index-content > .right.right-page .page-content::-webkit-scrollbar-corner, .formula .page-content::-webkit-scrollbar-corner, .realTime::-webkit-scrollbar-corner, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar-corner, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-corner, .vrcode-table .vrcode-table-view.table-view .el-table__body-wrapper::-webkit-scrollbar-corner, .vrcode-model .el-dialog::-webkit-scrollbar-corner {
 | 
					.scroll::-webkit-scrollbar-corner, .el-dropdown-menu::-webkit-scrollbar-corner, .index .index-content > .left::-webkit-scrollbar-corner, .index .index-content > .right.right-page .page-content::-webkit-scrollbar-corner, .formula .page-content::-webkit-scrollbar-corner, .realTime::-webkit-scrollbar-corner, .realTime .page-content .realTime-bottom.weather .left-view-new::-webkit-scrollbar-corner, .history .page-content .el-table--scrollable-x .el-table__body-wrapper::-webkit-scrollbar-corner, .vrcode-model .el-dialog::-webkit-scrollbar-corner, .el-table .el-table__body-wrapper::-webkit-scrollbar-corner {
 | 
				
			||||||
  /*滚动条边角*/
 | 
					  /*滚动条边角*/
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -274,6 +275,7 @@
 | 
				
			|||||||
  font-family: Microsoft YaHei;
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
  font-weight: bold;
 | 
					  font-weight: bold;
 | 
				
			||||||
  color: #FFFFFF;
 | 
					  color: #FFFFFF;
 | 
				
			||||||
 | 
					  margin: 0 !important;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.table-title > img {
 | 
					.table-title > img {
 | 
				
			||||||
@ -812,48 +814,107 @@
 | 
				
			|||||||
  padding: 20px 30px 0;
 | 
					  padding: 20px 30px 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view {
 | 
					.table-view {
 | 
				
			||||||
  background: transparent;
 | 
					  background: transparent;
 | 
				
			||||||
  margin-top: 30px;
 | 
					  margin-top: 30px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .cell {
 | 
					.table-view .cell {
 | 
				
			||||||
  text-align: center;
 | 
					  text-align: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .el-table .warning-row {
 | 
					.table-view .el-table .warning-row {
 | 
				
			||||||
  background: rgba(0, 180, 255, 0.2);
 | 
					  background: rgba(0, 180, 255, 0.2);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .el-table .success-row {
 | 
					.table-view .el-table .success-row {
 | 
				
			||||||
  background: rgba(0, 47, 94, 0.35);
 | 
					  background: rgba(0, 47, 94, 0.35);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .el-table::before,
 | 
					.table-view .el-table::before,
 | 
				
			||||||
.formula .page-content .table-view .el-table--border::after {
 | 
					.table-view .el-table--border::after {
 | 
				
			||||||
  height: 0;
 | 
					  height: 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .el-table,
 | 
					.table-view .el-table,
 | 
				
			||||||
.formula .page-content .table-view .el-table tr,
 | 
					.table-view .el-table tr,
 | 
				
			||||||
.formula .page-content .table-view .el-table td.el-table__cell {
 | 
					.table-view .el-table td.el-table__cell {
 | 
				
			||||||
  border: none;
 | 
					  border: none;
 | 
				
			||||||
  background: transparent;
 | 
					  background: transparent;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .el-table th.el-table__cell.is-leaf {
 | 
					.table-view .el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell {
 | 
				
			||||||
 | 
					  border: none;
 | 
				
			||||||
 | 
					  background-color: transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-view .el-table th.el-table__cell.is-leaf {
 | 
				
			||||||
  border: none;
 | 
					  border: none;
 | 
				
			||||||
  background: rgba(0, 180, 255, 0.2);
 | 
					  background: rgba(0, 180, 255, 0.2);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .el-table th.el-table__cell.is-leaf .cell {
 | 
					.table-view .el-table th.el-table__cell.is-leaf .cell {
 | 
				
			||||||
  font-size: 18px;
 | 
					  font-size: 18px;
 | 
				
			||||||
  font-family: Microsoft YaHei;
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
  font-weight: bold;
 | 
					  font-weight: bold;
 | 
				
			||||||
  color: #FFFFFF;
 | 
					  color: #FFFFFF;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .status {
 | 
					.table-view .table-flex {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-view .table-operate {
 | 
				
			||||||
 | 
					  height: 30px;
 | 
				
			||||||
 | 
					  white-space: nowrap;
 | 
				
			||||||
 | 
					  border-radius: 4px;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  font-weight: 400;
 | 
				
			||||||
 | 
					  font-size: 14px;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					  min-width: 66px;
 | 
				
			||||||
 | 
					  margin: 0 5px;
 | 
				
			||||||
 | 
					  color: #FFFFFF;
 | 
				
			||||||
 | 
					  padding: 0 7px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-view .table-operate.blue {
 | 
				
			||||||
 | 
					  background: #0294E2;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-view .table-operate.red {
 | 
				
			||||||
 | 
					  background: #FF9191;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-view .table-operate > img {
 | 
				
			||||||
 | 
					  width: 16px;
 | 
				
			||||||
 | 
					  height: auto;
 | 
				
			||||||
 | 
					  margin-right: 5px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-view .table-type {
 | 
				
			||||||
 | 
					  padding: 0 15px;
 | 
				
			||||||
 | 
					  height: 30px;
 | 
				
			||||||
 | 
					  background: rgba(0, 186, 255, 0.15);
 | 
				
			||||||
 | 
					  border-radius: 3px;
 | 
				
			||||||
 | 
					  border: 1px solid rgba(0, 186, 255, 0.4);
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  font-weight: 400;
 | 
				
			||||||
 | 
					  font-size: 16px;
 | 
				
			||||||
 | 
					  color: #00FFB9;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-view .status {
 | 
				
			||||||
  width: 100px;
 | 
					  width: 100px;
 | 
				
			||||||
  height: 34px;
 | 
					  height: 34px;
 | 
				
			||||||
  background: #0294E2;
 | 
					  background: #0294E2;
 | 
				
			||||||
@ -869,22 +930,22 @@
 | 
				
			|||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .status.status1 {
 | 
					.table-view .status.status1 {
 | 
				
			||||||
  background: #00BB88;
 | 
					  background: #00BB88;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .status.noSel {
 | 
					.table-view .status.noSel {
 | 
				
			||||||
  opacity: 0.5;
 | 
					  opacity: 0.5;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .type0 {
 | 
					.table-view .type0 {
 | 
				
			||||||
  font-size: 16px;
 | 
					  font-size: 16px;
 | 
				
			||||||
  font-family: Microsoft YaHei;
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
  font-weight: 400;
 | 
					  font-weight: 400;
 | 
				
			||||||
  color: #FF9191;
 | 
					  color: #FF9191;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .type1 {
 | 
					.table-view .type1 {
 | 
				
			||||||
  display: flex;
 | 
					  display: flex;
 | 
				
			||||||
  align-items: center;
 | 
					  align-items: center;
 | 
				
			||||||
  justify-content: center;
 | 
					  justify-content: center;
 | 
				
			||||||
@ -895,11 +956,11 @@
 | 
				
			|||||||
  white-space: nowrap;
 | 
					  white-space: nowrap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .type1 > div {
 | 
					.table-view .type1 > div {
 | 
				
			||||||
  justify-content: center;
 | 
					  justify-content: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .type2 {
 | 
					.table-view .type2 {
 | 
				
			||||||
  width: 140px;
 | 
					  width: 140px;
 | 
				
			||||||
  height: 34px;
 | 
					  height: 34px;
 | 
				
			||||||
  background: #0294E2;
 | 
					  background: #0294E2;
 | 
				
			||||||
@ -915,13 +976,13 @@
 | 
				
			|||||||
  justify-content: center;
 | 
					  justify-content: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .type2 img {
 | 
					.table-view .type2 img {
 | 
				
			||||||
  width: 14px;
 | 
					  width: 14px;
 | 
				
			||||||
  height: 14px;
 | 
					  height: 14px;
 | 
				
			||||||
  margin-right: 10px;
 | 
					  margin-right: 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.formula .page-content .table-view .type2.noSel {
 | 
					.table-view .type2.noSel {
 | 
				
			||||||
  opacity: 0.5;
 | 
					  opacity: 0.5;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2889,10 +2950,6 @@
 | 
				
			|||||||
  justify-content: center;
 | 
					  justify-content: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.vrcode-table .vrcode-table-view.table-view .el-table__cell.gutter {
 | 
					 | 
				
			||||||
  display: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.vrcode-table .vrcode-table-view.table-view .isOpen {
 | 
					.vrcode-table .vrcode-table-view.table-view .isOpen {
 | 
				
			||||||
  width: 80px;
 | 
					  width: 80px;
 | 
				
			||||||
  height: 30px;
 | 
					  height: 30px;
 | 
				
			||||||
@ -2936,6 +2993,10 @@
 | 
				
			|||||||
  margin-right: 5px;
 | 
					  margin-right: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-btn.w-100 {
 | 
				
			||||||
 | 
					  width: 100px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.vrcode-btn.blue-btn {
 | 
					.vrcode-btn.blue-btn {
 | 
				
			||||||
  background: #00A6FF;
 | 
					  background: #00A6FF;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2964,7 +3025,6 @@
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.vrcode-btn.cancle-btn {
 | 
					.vrcode-btn.cancle-btn {
 | 
				
			||||||
  width: 100px;
 | 
					 | 
				
			||||||
  background: rgba(0, 186, 255, 0.15);
 | 
					  background: rgba(0, 186, 255, 0.15);
 | 
				
			||||||
  border: 2px solid rgba(0, 186, 255, 0.4);
 | 
					  border: 2px solid rgba(0, 186, 255, 0.4);
 | 
				
			||||||
  font-size: 16px;
 | 
					  font-size: 16px;
 | 
				
			||||||
@ -2977,6 +3037,134 @@
 | 
				
			|||||||
  border: 2px solid rgba(0, 186, 255, 0.6);
 | 
					  border: 2px solid rgba(0, 186, 255, 0.6);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input {
 | 
				
			||||||
 | 
					  margin-bottom: 15px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input.w-400 input {
 | 
				
			||||||
 | 
					  width: 400px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input.w-350 input {
 | 
				
			||||||
 | 
					  width: 350px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input.w-160 input {
 | 
				
			||||||
 | 
					  width: 160px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input.w-180 input {
 | 
				
			||||||
 | 
					  width: 180px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input .search-input {
 | 
				
			||||||
 | 
					  margin: 0 10px;
 | 
				
			||||||
 | 
					  height: 40px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input .input-title {
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  font-weight: 400;
 | 
				
			||||||
 | 
					  font-size: 16px;
 | 
				
			||||||
 | 
					  color: #FFFFFF;
 | 
				
			||||||
 | 
					  margin-bottom: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input input {
 | 
				
			||||||
 | 
					  width: 240px;
 | 
				
			||||||
 | 
					  height: 44px;
 | 
				
			||||||
 | 
					  background: rgba(0, 186, 255, 0.15);
 | 
				
			||||||
 | 
					  border: 2px solid rgba(0, 186, 255, 0.4);
 | 
				
			||||||
 | 
					  padding-left: 15px;
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  font-weight: 400;
 | 
				
			||||||
 | 
					  color: #FFFFFF;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input input::placeholder {
 | 
				
			||||||
 | 
					  color: #92B1D0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .el-dialog {
 | 
				
			||||||
 | 
					  background: rgba(0, 59, 114, 0.8);
 | 
				
			||||||
 | 
					  border: 2px solid rgba(0, 186, 255, 0.35);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .el-dialog__body .vrcode-content {
 | 
				
			||||||
 | 
					  padding: 10px 22px 0 !important;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  justify-content: space-between;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .el-dialog__footer {
 | 
				
			||||||
 | 
					  padding: 15px 22px;
 | 
				
			||||||
 | 
					  border-top: 1px solid rgba(0, 180, 255, 0.35);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .dialog-footer {
 | 
				
			||||||
 | 
					  justify-content: flex-start;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .manage-right .manage-img {
 | 
				
			||||||
 | 
					  width: 380px;
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					  background: rgba(0, 132, 255, 0.15);
 | 
				
			||||||
 | 
					  border: 2px solid rgba(0, 132, 255, 0.35);
 | 
				
			||||||
 | 
					  padding: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .manage-right .manage-img img {
 | 
				
			||||||
 | 
					  width: 360px;
 | 
				
			||||||
 | 
					  height: auto;
 | 
				
			||||||
 | 
					  min-height: 200px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .manage-right .manage-img #sel-img {
 | 
				
			||||||
 | 
					  width: 0;
 | 
				
			||||||
 | 
					  height: 0;
 | 
				
			||||||
 | 
					  position: absolute;
 | 
				
			||||||
 | 
					  left: 0;
 | 
				
			||||||
 | 
					  top: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .manage-text {
 | 
				
			||||||
 | 
					  width: 240px;
 | 
				
			||||||
 | 
					  height: 160px;
 | 
				
			||||||
 | 
					  text-align: left;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  flex-direction: column;
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  line-height: 28px;
 | 
				
			||||||
 | 
					  font-weight: 400;
 | 
				
			||||||
 | 
					  font-size: 14px;
 | 
				
			||||||
 | 
					  color: #00C0F7;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .manage-img-small {
 | 
				
			||||||
 | 
					  width: 240px;
 | 
				
			||||||
 | 
					  height: 160px;
 | 
				
			||||||
 | 
					  background: rgba(0, 132, 255, 0.15);
 | 
				
			||||||
 | 
					  border: 2px solid rgba(0, 132, 255, 0.35);
 | 
				
			||||||
 | 
					  padding: 10px;
 | 
				
			||||||
 | 
					  margin-top: 25px;
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .manage-img-small #sel-img {
 | 
				
			||||||
 | 
					  width: 0;
 | 
				
			||||||
 | 
					  height: 0;
 | 
				
			||||||
 | 
					  position: absolute;
 | 
				
			||||||
 | 
					  left: 0;
 | 
				
			||||||
 | 
					  top: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vrcode-model.manage-model .manage-img-small img {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.vrcode-model .model-return-btn {
 | 
					.vrcode-model .model-return-btn {
 | 
				
			||||||
  position: absolute;
 | 
					  position: absolute;
 | 
				
			||||||
  right: 30px;
 | 
					  right: 30px;
 | 
				
			||||||
@ -3445,7 +3633,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.model-sel {
 | 
					.model-sel {
 | 
				
			||||||
  display: flex;
 | 
					  display: flex;
 | 
				
			||||||
  flex-wrap: wrap;
 | 
					  flex-wrap: wrap !important;
 | 
				
			||||||
  align-items: center;
 | 
					  align-items: center;
 | 
				
			||||||
  min-height: 200px;
 | 
					  min-height: 200px;
 | 
				
			||||||
  max-height: 700px;
 | 
					  max-height: 700px;
 | 
				
			||||||
@ -3731,3 +3919,171 @@
 | 
				
			|||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
  min-height: 200px;
 | 
					  min-height: 200px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-btn {
 | 
				
			||||||
 | 
					  min-width: 140px;
 | 
				
			||||||
 | 
					  height: 40px;
 | 
				
			||||||
 | 
					  border-radius: 3px;
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  font-weight: 400;
 | 
				
			||||||
 | 
					  font-size: 16px;
 | 
				
			||||||
 | 
					  color: #FFFFFF;
 | 
				
			||||||
 | 
					  background: rgba(0, 186, 255, 0.15);
 | 
				
			||||||
 | 
					  border-radius: 3px;
 | 
				
			||||||
 | 
					  border: 2px solid rgba(0, 186, 255, 0.4);
 | 
				
			||||||
 | 
					  padding: 0 15px;
 | 
				
			||||||
 | 
					  margin: 7.5px 20px 7.5px 0 !important;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-btn.active {
 | 
				
			||||||
 | 
					  background: #0294E2;
 | 
				
			||||||
 | 
					  border: 2px solid transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-btn img {
 | 
				
			||||||
 | 
					  margin-right: 5px;
 | 
				
			||||||
 | 
					  width: 14px;
 | 
				
			||||||
 | 
					  height: auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-page {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  background: rgba(0, 92, 178, 0.15);
 | 
				
			||||||
 | 
					  padding: 20px 30px;
 | 
				
			||||||
 | 
					  border: 2px solid rgba(0, 186, 255, 0.2);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-title-btn {
 | 
				
			||||||
 | 
					  min-width: 100px;
 | 
				
			||||||
 | 
					  height: 40px;
 | 
				
			||||||
 | 
					  padding: 0 15px;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  font-weight: bold;
 | 
				
			||||||
 | 
					  font-size: 16px;
 | 
				
			||||||
 | 
					  color: #FFFFFF;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					  border-radius: 3px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-title-btn > img {
 | 
				
			||||||
 | 
					  width: 14px;
 | 
				
			||||||
 | 
					  height: auto;
 | 
				
			||||||
 | 
					  margin-right: 9px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-title-btn.blue {
 | 
				
			||||||
 | 
					  background: #0294E2;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-title-btn.red {
 | 
				
			||||||
 | 
					  background: #FF9191;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.videoManage .table-view {
 | 
				
			||||||
 | 
					  margin-top: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.videoManage .flex-title {
 | 
				
			||||||
 | 
					  padding-top: 0;
 | 
				
			||||||
 | 
					  justify-content: space-between;
 | 
				
			||||||
 | 
					  border-bottom: 1px solid transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.el-table .el-table__body-wrapper::-webkit-scrollbar {
 | 
				
			||||||
 | 
					  /*滚动条整体*/
 | 
				
			||||||
 | 
					  width: 17px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.el-table .el-table__body-wrapper::-webkit-scrollbar-thumb {
 | 
				
			||||||
 | 
					  /*滚动条里面的滑块*/
 | 
				
			||||||
 | 
					  width: 4px;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					  background: #0294E2;
 | 
				
			||||||
 | 
					  border: 5px solid #013769;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.el-table .el-table__cell.gutter {
 | 
				
			||||||
 | 
					  display: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-dropdown {
 | 
				
			||||||
 | 
					  width: 240px !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-dropdown.w-400 {
 | 
				
			||||||
 | 
					  width: 400px !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-dropdown.w-350 {
 | 
				
			||||||
 | 
					  width: 350px !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel {
 | 
				
			||||||
 | 
					  margin-right: 30px;
 | 
				
			||||||
 | 
					  margin-bottom: 15px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel .input-title {
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  font-weight: 400;
 | 
				
			||||||
 | 
					  font-size: 16px;
 | 
				
			||||||
 | 
					  color: #FFFFFF;
 | 
				
			||||||
 | 
					  margin-bottom: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel.w-400 .el-dropdown-link {
 | 
				
			||||||
 | 
					  width: 400px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel.w-350 .el-dropdown-link {
 | 
				
			||||||
 | 
					  width: 350px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel .el-dropdown-link {
 | 
				
			||||||
 | 
					  width: 240px;
 | 
				
			||||||
 | 
					  height: 44px;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel .el-dropdown-link input {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  background: rgba(0, 186, 255, 0.15);
 | 
				
			||||||
 | 
					  border: 2px solid rgba(0, 186, 255, 0.4);
 | 
				
			||||||
 | 
					  font-size: 16px;
 | 
				
			||||||
 | 
					  padding-left: 15px;
 | 
				
			||||||
 | 
					  font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					  font-weight: 400;
 | 
				
			||||||
 | 
					  color: #FFFFFF;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel .el-dropdown-link input::placeholder {
 | 
				
			||||||
 | 
					  color: #92B1D0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel .el-dropdown-link .arrow {
 | 
				
			||||||
 | 
					  width: 33px;
 | 
				
			||||||
 | 
					  height: 24px;
 | 
				
			||||||
 | 
					  border-left: 1px solid #fff;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  position: absolute;
 | 
				
			||||||
 | 
					  right: 0;
 | 
				
			||||||
 | 
					  top: 50%;
 | 
				
			||||||
 | 
					  transform: translateY(-50%);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel .el-dropdown-link .arrow > img {
 | 
				
			||||||
 | 
					  width: 6px;
 | 
				
			||||||
 | 
					  height: 4px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								src/assets/css/main.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						@ -1,6 +1,6 @@
 | 
				
			|||||||
.scroll {
 | 
					.scroll {
 | 
				
			||||||
    overflow-y: auto;
 | 
					    overflow-y: auto;
 | 
				
			||||||
 | 
					    flex-wrap: nowrap!important;
 | 
				
			||||||
    &::-webkit-scrollbar {
 | 
					    &::-webkit-scrollbar {
 | 
				
			||||||
        /*滚动条整体*/
 | 
					        /*滚动条整体*/
 | 
				
			||||||
        width: 10px;
 | 
					        width: 10px;
 | 
				
			||||||
@ -302,7 +302,7 @@
 | 
				
			|||||||
    font-family: Microsoft YaHei;
 | 
					    font-family: Microsoft YaHei;
 | 
				
			||||||
    font-weight: bold;
 | 
					    font-weight: bold;
 | 
				
			||||||
    color: #FFFFFF;
 | 
					    color: #FFFFFF;
 | 
				
			||||||
 | 
					    margin: 0!important;
 | 
				
			||||||
    >img {
 | 
					    >img {
 | 
				
			||||||
        width: 60px;
 | 
					        width: 60px;
 | 
				
			||||||
        height: 60px;
 | 
					        height: 60px;
 | 
				
			||||||
@ -501,6 +501,7 @@
 | 
				
			|||||||
                background-size: 100% 100%;
 | 
					                background-size: 100% 100%;
 | 
				
			||||||
                cursor: pointer;
 | 
					                cursor: pointer;
 | 
				
			||||||
                flex-shrink: 0;
 | 
					                flex-shrink: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                &:hover {
 | 
					                &:hover {
 | 
				
			||||||
                    background: url(../image/login-out-hover.png) no-repeat center;
 | 
					                    background: url(../image/login-out-hover.png) no-repeat center;
 | 
				
			||||||
                    background-size: 100% 100%;
 | 
					                    background-size: 100% 100%;
 | 
				
			||||||
@ -583,11 +584,13 @@
 | 
				
			|||||||
            width: 180px;
 | 
					            width: 180px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    &.input-sel-w140 {
 | 
					    &.input-sel-w140 {
 | 
				
			||||||
        .el-dropdown-link {
 | 
					        .el-dropdown-link {
 | 
				
			||||||
            width: 140px;
 | 
					            width: 140px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .el-dropdown-link {
 | 
					    .el-dropdown-link {
 | 
				
			||||||
        width: 300px;
 | 
					        width: 300px;
 | 
				
			||||||
        height: 44px;
 | 
					        height: 44px;
 | 
				
			||||||
@ -865,119 +868,180 @@
 | 
				
			|||||||
        padding: 20px 30px 0;
 | 
					        padding: 20px 30px 0;
 | 
				
			||||||
        @extend .scroll;
 | 
					        @extend .scroll;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table-view {
 | 
					 | 
				
			||||||
            background: transparent;
 | 
					 | 
				
			||||||
            margin-top: 30px;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .cell {
 | 
					    }
 | 
				
			||||||
                text-align: center;
 | 
					}
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .el-table .warning-row {
 | 
					.table-view {
 | 
				
			||||||
                background: rgba(0, 180, 255, 0.2);
 | 
					    background: transparent;
 | 
				
			||||||
            }
 | 
					    margin-top: 30px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .el-table .success-row {
 | 
					    .cell {
 | 
				
			||||||
                background: rgba(0, 47, 94, 0.35);
 | 
					        text-align: center;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					    .el-table .warning-row {
 | 
				
			||||||
 | 
					        background: rgba(0, 180, 255, 0.2);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .el-table::before,
 | 
					    .el-table .success-row {
 | 
				
			||||||
            .el-table--border::after {
 | 
					        background: rgba(0, 47, 94, 0.35);
 | 
				
			||||||
                height: 0;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .el-table,
 | 
					    }
 | 
				
			||||||
            .el-table tr,
 | 
					 | 
				
			||||||
            .el-table td.el-table__cell {
 | 
					 | 
				
			||||||
                border: none;
 | 
					 | 
				
			||||||
                background: transparent;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .el-table th.el-table__cell.is-leaf {
 | 
					    .el-table::before,
 | 
				
			||||||
                border: none;
 | 
					    .el-table--border::after {
 | 
				
			||||||
                background: rgba(0, 180, 255, 0.2);
 | 
					        height: 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                .cell {
 | 
					    .el-table,
 | 
				
			||||||
                    font-size: 18px;
 | 
					    .el-table tr,
 | 
				
			||||||
                    font-family: Microsoft YaHei;
 | 
					    .el-table td.el-table__cell {
 | 
				
			||||||
                    font-weight: bold;
 | 
					        border: none;
 | 
				
			||||||
                    color: #FFFFFF;
 | 
					        background: transparent;
 | 
				
			||||||
                }
 | 
					    }
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .status {
 | 
					    .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
 | 
				
			||||||
                width: 100px;
 | 
					        border: none;
 | 
				
			||||||
                height: 34px;
 | 
					        background-color: transparent;
 | 
				
			||||||
                background: #0294E2;
 | 
					    }
 | 
				
			||||||
                border-radius: 3px;
 | 
					 | 
				
			||||||
                display: flex;
 | 
					 | 
				
			||||||
                align-items: center;
 | 
					 | 
				
			||||||
                justify-content: center;
 | 
					 | 
				
			||||||
                margin: 0 auto;
 | 
					 | 
				
			||||||
                font-size: 18px;
 | 
					 | 
				
			||||||
                font-family: Microsoft YaHei;
 | 
					 | 
				
			||||||
                font-weight: bold;
 | 
					 | 
				
			||||||
                color: #FFFFFF;
 | 
					 | 
				
			||||||
                cursor: pointer;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                &.status1 {
 | 
					    .el-table th.el-table__cell.is-leaf {
 | 
				
			||||||
 | 
					        border: none;
 | 
				
			||||||
 | 
					        background: rgba(0, 180, 255, 0.2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    background: #00BB88;
 | 
					        .cell {
 | 
				
			||||||
                }
 | 
					            font-size: 18px;
 | 
				
			||||||
 | 
					            font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            color: #FFFFFF;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                &.noSel {
 | 
					    .table-flex {
 | 
				
			||||||
                    opacity: 0.5;
 | 
					        width: 100%;
 | 
				
			||||||
                }
 | 
					        height: 100%;
 | 
				
			||||||
            }
 | 
					        display: flex;
 | 
				
			||||||
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        justify-content: center;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .type0 {
 | 
					    .table-operate {
 | 
				
			||||||
                font-size: 16px;
 | 
					        height: 30px;
 | 
				
			||||||
                font-family: Microsoft YaHei;
 | 
					        white-space: nowrap;
 | 
				
			||||||
                font-weight: 400;
 | 
					        border-radius: 4px;
 | 
				
			||||||
                color: #FF9191;
 | 
					        display: flex;
 | 
				
			||||||
            }
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        justify-content: center;
 | 
				
			||||||
 | 
					        font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					        font-weight: 400;
 | 
				
			||||||
 | 
					        font-size: 14px;
 | 
				
			||||||
 | 
					        cursor: pointer;
 | 
				
			||||||
 | 
					        min-width: 66px;
 | 
				
			||||||
 | 
					        margin: 0 5px;
 | 
				
			||||||
 | 
					        color: #FFFFFF;
 | 
				
			||||||
 | 
					        padding: 0 7px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .type1 {
 | 
					        &.blue {
 | 
				
			||||||
                display: flex;
 | 
					            background: #0294E2;
 | 
				
			||||||
                align-items: center;
 | 
					        }
 | 
				
			||||||
                justify-content: center;
 | 
					 | 
				
			||||||
                font-size: 16px;
 | 
					 | 
				
			||||||
                font-family: Microsoft YaHei;
 | 
					 | 
				
			||||||
                font-weight: 400;
 | 
					 | 
				
			||||||
                color: #FFFFFF;
 | 
					 | 
				
			||||||
                white-space: nowrap;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                >div {
 | 
					        &.red {
 | 
				
			||||||
                    justify-content: center
 | 
					            background: #FF9191;
 | 
				
			||||||
                }
 | 
					        }
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .type2 {
 | 
					        >img {
 | 
				
			||||||
                width: 140px;
 | 
					            width: 16px;
 | 
				
			||||||
                height: 34px;
 | 
					            height: auto;
 | 
				
			||||||
                background: #0294E2;
 | 
					            margin-right: 5px;
 | 
				
			||||||
                border-radius: 3px;
 | 
					        }
 | 
				
			||||||
                margin: 0 auto;
 | 
					    }
 | 
				
			||||||
                display: flex;
 | 
					 | 
				
			||||||
                align-items: center;
 | 
					 | 
				
			||||||
                font-size: 16px;
 | 
					 | 
				
			||||||
                font-family: Microsoft YaHei;
 | 
					 | 
				
			||||||
                font-weight: 400;
 | 
					 | 
				
			||||||
                color: #FFFFFF;
 | 
					 | 
				
			||||||
                cursor: pointer;
 | 
					 | 
				
			||||||
                justify-content: center;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                img {
 | 
					    .table-type {
 | 
				
			||||||
                    width: 14px;
 | 
					        padding: 0 15px;
 | 
				
			||||||
                    height: 14px;
 | 
					        height: 30px;
 | 
				
			||||||
                    margin-right: 10px;
 | 
					        background: rgba(0, 186, 255, 0.15);
 | 
				
			||||||
                }
 | 
					        border-radius: 3px;
 | 
				
			||||||
 | 
					        border: 1px solid rgba(0, 186, 255, 0.4);
 | 
				
			||||||
 | 
					        display: flex;
 | 
				
			||||||
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        justify-content: center;
 | 
				
			||||||
 | 
					        font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					        font-weight: 400;
 | 
				
			||||||
 | 
					        font-size: 16px;
 | 
				
			||||||
 | 
					        color: #00FFB9;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                &.noSel {
 | 
					    .status {
 | 
				
			||||||
                    opacity: 0.5;
 | 
					        width: 100px;
 | 
				
			||||||
                }
 | 
					        height: 34px;
 | 
				
			||||||
            }
 | 
					        background: #0294E2;
 | 
				
			||||||
 | 
					        border-radius: 3px;
 | 
				
			||||||
 | 
					        display: flex;
 | 
				
			||||||
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        justify-content: center;
 | 
				
			||||||
 | 
					        margin: 0 auto;
 | 
				
			||||||
 | 
					        font-size: 18px;
 | 
				
			||||||
 | 
					        font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					        font-weight: bold;
 | 
				
			||||||
 | 
					        color: #FFFFFF;
 | 
				
			||||||
 | 
					        cursor: pointer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        &.status1 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            background: #00BB88;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        &.noSel {
 | 
				
			||||||
 | 
					            opacity: 0.5;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .type0 {
 | 
				
			||||||
 | 
					        font-size: 16px;
 | 
				
			||||||
 | 
					        font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					        font-weight: 400;
 | 
				
			||||||
 | 
					        color: #FF9191;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .type1 {
 | 
				
			||||||
 | 
					        display: flex;
 | 
				
			||||||
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        justify-content: center;
 | 
				
			||||||
 | 
					        font-size: 16px;
 | 
				
			||||||
 | 
					        font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					        font-weight: 400;
 | 
				
			||||||
 | 
					        color: #FFFFFF;
 | 
				
			||||||
 | 
					        white-space: nowrap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        >div {
 | 
				
			||||||
 | 
					            justify-content: center
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .type2 {
 | 
				
			||||||
 | 
					        width: 140px;
 | 
				
			||||||
 | 
					        height: 34px;
 | 
				
			||||||
 | 
					        background: #0294E2;
 | 
				
			||||||
 | 
					        border-radius: 3px;
 | 
				
			||||||
 | 
					        margin: 0 auto;
 | 
				
			||||||
 | 
					        display: flex;
 | 
				
			||||||
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        font-size: 16px;
 | 
				
			||||||
 | 
					        font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					        font-weight: 400;
 | 
				
			||||||
 | 
					        color: #FFFFFF;
 | 
				
			||||||
 | 
					        cursor: pointer;
 | 
				
			||||||
 | 
					        justify-content: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        img {
 | 
				
			||||||
 | 
					            width: 14px;
 | 
				
			||||||
 | 
					            height: 14px;
 | 
				
			||||||
 | 
					            margin-right: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        &.noSel {
 | 
				
			||||||
 | 
					            opacity: 0.5;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2213,15 +2277,18 @@
 | 
				
			|||||||
                                align-items: center;
 | 
					                                align-items: center;
 | 
				
			||||||
                                justify-content: center;
 | 
					                                justify-content: center;
 | 
				
			||||||
                                cursor: pointer;
 | 
					                                cursor: pointer;
 | 
				
			||||||
                                &:active{
 | 
					
 | 
				
			||||||
 | 
					                                &:active {
 | 
				
			||||||
                                    background: #22B2FF;
 | 
					                                    background: #22B2FF;
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                >img {
 | 
					                                >img {
 | 
				
			||||||
                                    margin-right: 12px;
 | 
					                                    margin-right: 12px;
 | 
				
			||||||
                                    width: 22px;
 | 
					                                    width: 22px;
 | 
				
			||||||
                                    height: auto;
 | 
					                                    height: auto;
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                                >div{
 | 
					
 | 
				
			||||||
 | 
					                                >div {
 | 
				
			||||||
                                    white-space: nowrap;
 | 
					                                    white-space: nowrap;
 | 
				
			||||||
                                    width: 40px;
 | 
					                                    width: 40px;
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
@ -3096,13 +3163,7 @@
 | 
				
			|||||||
                justify-content: center;
 | 
					                justify-content: center;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .el-table__body-wrapper {
 | 
					 | 
				
			||||||
                @extend .scroll;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
            .el-table__cell.gutter {
 | 
					 | 
				
			||||||
                display: none;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            .isOpen {
 | 
					            .isOpen {
 | 
				
			||||||
                width: 80px;
 | 
					                width: 80px;
 | 
				
			||||||
@ -3149,7 +3210,9 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    border-radius: 3px;
 | 
					    border-radius: 3px;
 | 
				
			||||||
 | 
					    &.w-100{
 | 
				
			||||||
 | 
					        width: 100px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    &.blue-btn {
 | 
					    &.blue-btn {
 | 
				
			||||||
        background: #00A6FF;
 | 
					        background: #00A6FF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -3179,7 +3242,7 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    &.cancle-btn {
 | 
					    &.cancle-btn {
 | 
				
			||||||
        width: 100px;
 | 
					        // width: 100px;
 | 
				
			||||||
        background: rgba(0, 186, 255, 0.15);
 | 
					        background: rgba(0, 186, 255, 0.15);
 | 
				
			||||||
        border: 2px solid rgba(0, 186, 255, 0.4);
 | 
					        border: 2px solid rgba(0, 186, 255, 0.4);
 | 
				
			||||||
        font-size: 16px;
 | 
					        font-size: 16px;
 | 
				
			||||||
@ -3192,8 +3255,133 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					.manage-input{
 | 
				
			||||||
 | 
					    margin-bottom: 15px;
 | 
				
			||||||
 | 
					    &.w-400{
 | 
				
			||||||
 | 
					        input{
 | 
				
			||||||
 | 
					            width: 400px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }  
 | 
				
			||||||
 | 
					    &.w-350{
 | 
				
			||||||
 | 
					        input{
 | 
				
			||||||
 | 
					            width: 350px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } 
 | 
				
			||||||
 | 
					    &.w-160{
 | 
				
			||||||
 | 
					        input{
 | 
				
			||||||
 | 
					            width: 160px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }  
 | 
				
			||||||
 | 
					    &.w-180{
 | 
				
			||||||
 | 
					        input{
 | 
				
			||||||
 | 
					            width:180px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    .search-input{
 | 
				
			||||||
 | 
					        margin: 0 10px;
 | 
				
			||||||
 | 
					        height: 40px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    .input-title{
 | 
				
			||||||
 | 
					        font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					        font-weight: 400;
 | 
				
			||||||
 | 
					        font-size: 16px;
 | 
				
			||||||
 | 
					        color: #FFFFFF;
 | 
				
			||||||
 | 
					        margin-bottom: 10px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    input{
 | 
				
			||||||
 | 
					        width: 240px;
 | 
				
			||||||
 | 
					height: 44px;
 | 
				
			||||||
 | 
					background: rgba(0,186,255,0.15);
 | 
				
			||||||
 | 
					border: 2px solid rgba(0,186,255,0.4);
 | 
				
			||||||
 | 
					padding-left: 15px;
 | 
				
			||||||
 | 
					font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					font-weight: 400;
 | 
				
			||||||
 | 
					color: #FFFFFF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&::placeholder {
 | 
				
			||||||
 | 
					color: #92B1D0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
.vrcode-model {
 | 
					.vrcode-model {
 | 
				
			||||||
 | 
					    &.manage-model{
 | 
				
			||||||
 | 
					        .el-dialog{
 | 
				
			||||||
 | 
					            background: rgba(0,59,114,0.8);
 | 
				
			||||||
 | 
					            border: 2px solid rgba(0, 186, 255,0.35);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .el-dialog__body{
 | 
				
			||||||
 | 
					            .vrcode-content{
 | 
				
			||||||
 | 
					                padding:  10px 22px 0!important;
 | 
				
			||||||
 | 
					                display: flex;
 | 
				
			||||||
 | 
					                // align-items: center;
 | 
				
			||||||
 | 
					                justify-content: space-between;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .el-dialog__footer{
 | 
				
			||||||
 | 
					            padding: 15px 22px;
 | 
				
			||||||
 | 
					            border-top: 1px solid rgba(0, 180, 255, 0.35);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .dialog-footer{
 | 
				
			||||||
 | 
					            justify-content: flex-start;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .manage-right{
 | 
				
			||||||
 | 
					            .manage-img{
 | 
				
			||||||
 | 
					                width: 380px;
 | 
				
			||||||
 | 
					                position: relative;
 | 
				
			||||||
 | 
					// height: 290px;
 | 
				
			||||||
 | 
					background: rgba(0,132,255,0.15);
 | 
				
			||||||
 | 
					border: 2px solid rgba(0,132,255,0.35);
 | 
				
			||||||
 | 
					img{
 | 
				
			||||||
 | 
					width:360px;
 | 
				
			||||||
 | 
					height:auto;
 | 
				
			||||||
 | 
					min-height: 200px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					padding: 10px;
 | 
				
			||||||
 | 
					#sel-img{
 | 
				
			||||||
 | 
					width: 0;
 | 
				
			||||||
 | 
					height: 0;
 | 
				
			||||||
 | 
					position: absolute;
 | 
				
			||||||
 | 
					left: 0;
 | 
				
			||||||
 | 
					top: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .manage-text{
 | 
				
			||||||
 | 
					            width: 240px;
 | 
				
			||||||
 | 
					            height: 160px;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            align-items: center;
 | 
				
			||||||
 | 
					            justify-content: center;
 | 
				
			||||||
 | 
					            flex-direction: column;
 | 
				
			||||||
 | 
					            font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					            line-height: 28px;
 | 
				
			||||||
 | 
					font-weight: 400;
 | 
				
			||||||
 | 
					font-size: 14px;
 | 
				
			||||||
 | 
					color: #00C0F7;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .manage-img-small{
 | 
				
			||||||
 | 
					            width: 240px;
 | 
				
			||||||
 | 
					height: 160px;
 | 
				
			||||||
 | 
					background: rgba(0,132,255,0.15);
 | 
				
			||||||
 | 
					border: 2px solid rgba(0,132,255,0.35);
 | 
				
			||||||
 | 
					padding: 10px;
 | 
				
			||||||
 | 
					margin-top: 25px;
 | 
				
			||||||
 | 
					position: relative;
 | 
				
			||||||
 | 
					#sel-img{
 | 
				
			||||||
 | 
					    width: 0;
 | 
				
			||||||
 | 
					    height: 0;
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    top: 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					img{
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    .model-return-btn {
 | 
					    .model-return-btn {
 | 
				
			||||||
        position: absolute;
 | 
					        position: absolute;
 | 
				
			||||||
        right: 30px;
 | 
					        right: 30px;
 | 
				
			||||||
@ -3677,7 +3865,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.model-sel {
 | 
					.model-sel {
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    flex-wrap: wrap;
 | 
					    flex-wrap: wrap!important;
 | 
				
			||||||
    align-items: center;
 | 
					    align-items: center;
 | 
				
			||||||
    min-height: 200px;
 | 
					    min-height: 200px;
 | 
				
			||||||
    max-height: 700px;
 | 
					    max-height: 700px;
 | 
				
			||||||
@ -3949,21 +4137,23 @@
 | 
				
			|||||||
        .el-table th.el-table__cell.is-leaf .cell {
 | 
					        .el-table th.el-table__cell.is-leaf .cell {
 | 
				
			||||||
            font-size: 14px !important;
 | 
					            font-size: 14px !important;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .table-title{
 | 
					
 | 
				
			||||||
 | 
					        .table-title {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            display: flex;
 | 
					            display: flex;
 | 
				
			||||||
            align-items: center;
 | 
					            align-items: center;
 | 
				
			||||||
            padding-bottom: 5px;
 | 
					            padding-bottom: 5px;
 | 
				
			||||||
            justify-content: space-between;
 | 
					            justify-content: space-between;
 | 
				
			||||||
            border-bottom:2px solid rgba(0, 180, 255, 0.5);
 | 
					            border-bottom: 2px solid rgba(0, 180, 255, 0.5);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .image-list{
 | 
					
 | 
				
			||||||
 | 
					        .image-list {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            display: flex;
 | 
					            display: flex;
 | 
				
			||||||
    flex-wrap: wrap;
 | 
					            flex-wrap: wrap;
 | 
				
			||||||
    align-items: center;
 | 
					            align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            >div{
 | 
					            >div {
 | 
				
			||||||
                width: 380px;
 | 
					                width: 380px;
 | 
				
			||||||
                height: auto;
 | 
					                height: auto;
 | 
				
			||||||
                background: rgba(0, 132, 255, 0.15);
 | 
					                background: rgba(0, 132, 255, 0.15);
 | 
				
			||||||
@ -3971,7 +4161,8 @@
 | 
				
			|||||||
                margin: 7.5px;
 | 
					                margin: 7.5px;
 | 
				
			||||||
                padding: 10px;
 | 
					                padding: 10px;
 | 
				
			||||||
                flex-shrink: 0;
 | 
					                flex-shrink: 0;
 | 
				
			||||||
                .el-image{
 | 
					
 | 
				
			||||||
 | 
					                .el-image {
 | 
				
			||||||
                    cursor: pointer;
 | 
					                    cursor: pointer;
 | 
				
			||||||
                    min-height: 200px;
 | 
					                    min-height: 200px;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@ -3979,3 +4170,184 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-btn {
 | 
				
			||||||
 | 
					    min-width: 140px;
 | 
				
			||||||
 | 
					    height: 40px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    border-radius: 3px;
 | 
				
			||||||
 | 
					    font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					    font-weight: 400;
 | 
				
			||||||
 | 
					    font-size: 16px;
 | 
				
			||||||
 | 
					    color: #FFFFFF;
 | 
				
			||||||
 | 
					    background: rgba(0, 186, 255, 0.15);
 | 
				
			||||||
 | 
					    border-radius: 3px;
 | 
				
			||||||
 | 
					    border: 2px solid rgba(0, 186, 255, 0.4);
 | 
				
			||||||
 | 
					    padding: 0 15px;
 | 
				
			||||||
 | 
					    margin:7.5px 20px 7.5px 0!important;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    cursor: pointer;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    &.active {
 | 
				
			||||||
 | 
					        background: #0294E2;
 | 
				
			||||||
 | 
					        border: 2px solid transparent;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    img {
 | 
				
			||||||
 | 
					        margin-right: 5px;
 | 
				
			||||||
 | 
					        width: 14px;
 | 
				
			||||||
 | 
					        height: auto;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-page {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    background: rgba(0, 92, 178, 0.15);
 | 
				
			||||||
 | 
					    padding: 20px 30px;
 | 
				
			||||||
 | 
					    border: 2px solid rgba(0, 186, 255, 0.2);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-title-btn {
 | 
				
			||||||
 | 
					    min-width: 100px;
 | 
				
			||||||
 | 
					    height: 40px;
 | 
				
			||||||
 | 
					    padding: 0 15px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    >img {
 | 
				
			||||||
 | 
					        width: 14px;
 | 
				
			||||||
 | 
					        height: auto;
 | 
				
			||||||
 | 
					        margin-right: 9px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					    font-weight: bold;
 | 
				
			||||||
 | 
					    font-size: 16px;
 | 
				
			||||||
 | 
					    color: #FFFFFF;
 | 
				
			||||||
 | 
					    cursor: pointer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    &.blue {
 | 
				
			||||||
 | 
					        background: #0294E2;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    &.red {
 | 
				
			||||||
 | 
					        background: #FF9191;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    border-radius: 3px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.videoManage {
 | 
				
			||||||
 | 
					    .table-view {
 | 
				
			||||||
 | 
					        margin-top: 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .flex-title {
 | 
				
			||||||
 | 
					        padding-top: 0;
 | 
				
			||||||
 | 
					        justify-content: space-between;
 | 
				
			||||||
 | 
					        border-bottom: 1px solid transparent;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // >.flex-view {
 | 
				
			||||||
 | 
					    //     justify-content: space-between;
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.el-table{
 | 
				
			||||||
 | 
					    .el-table__body-wrapper {
 | 
				
			||||||
 | 
					        @extend .scroll;
 | 
				
			||||||
 | 
					        &::-webkit-scrollbar {
 | 
				
			||||||
 | 
					            /*滚动条整体*/
 | 
				
			||||||
 | 
					            width: 17px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        &::-webkit-scrollbar-thumb {
 | 
				
			||||||
 | 
					            /*滚动条里面的滑块*/
 | 
				
			||||||
 | 
					            width: 4px;
 | 
				
			||||||
 | 
					            cursor: pointer;
 | 
				
			||||||
 | 
					            background: #0294E2;
 | 
				
			||||||
 | 
					            border: 5px solid #013769;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .el-table__cell.gutter {
 | 
				
			||||||
 | 
					        display: none;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.manage-dropdown{
 | 
				
			||||||
 | 
					    width: 240px!important;
 | 
				
			||||||
 | 
					    &.w-400{
 | 
				
			||||||
 | 
					        width: 400px!important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					      &.w-350{
 | 
				
			||||||
 | 
					            width: 350px!important;
 | 
				
			||||||
 | 
					    } 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.manage-input-sel {
 | 
				
			||||||
 | 
					    margin-right: 30px;
 | 
				
			||||||
 | 
					    margin-bottom: 15px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .input-title{
 | 
				
			||||||
 | 
					        font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					        font-weight: 400;
 | 
				
			||||||
 | 
					        font-size: 16px;
 | 
				
			||||||
 | 
					        color: #FFFFFF;
 | 
				
			||||||
 | 
					        margin-bottom: 10px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    &.w-400{
 | 
				
			||||||
 | 
					        .el-dropdown-link{
 | 
				
			||||||
 | 
					            width: 400px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					      &.w-350{
 | 
				
			||||||
 | 
					        .el-dropdown-link{
 | 
				
			||||||
 | 
					            width: 350px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } 
 | 
				
			||||||
 | 
					    .el-dropdown-link {
 | 
				
			||||||
 | 
					        width: 240px;
 | 
				
			||||||
 | 
					        height: 44px;
 | 
				
			||||||
 | 
					        cursor: pointer;
 | 
				
			||||||
 | 
					        position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        input {
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					            height: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            background: rgba(0,186,255,0.15);
 | 
				
			||||||
 | 
					            border: 2px solid rgba(0,186,255,0.4);
 | 
				
			||||||
 | 
					            font-size: 16px;
 | 
				
			||||||
 | 
					            padding-left: 15px;
 | 
				
			||||||
 | 
					            font-family: Microsoft YaHei;
 | 
				
			||||||
 | 
					            font-weight: 400;
 | 
				
			||||||
 | 
					            color: #FFFFFF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            &::placeholder {
 | 
				
			||||||
 | 
					                color: #92B1D0;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .arrow {
 | 
				
			||||||
 | 
					            width: 33px;
 | 
				
			||||||
 | 
					            height: 24px;
 | 
				
			||||||
 | 
					            border-left: 1px solid #fff;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            align-items: center;
 | 
				
			||||||
 | 
					            justify-content: center;
 | 
				
			||||||
 | 
					            position: absolute;
 | 
				
			||||||
 | 
					            right: 0;
 | 
				
			||||||
 | 
					            top: 50%;
 | 
				
			||||||
 | 
					            transform: translateY(-50%);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            >img {
 | 
				
			||||||
 | 
					                width: 6px;
 | 
				
			||||||
 | 
					                height: 4px;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/add-btn.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 119 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/dataDevice.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/deviceInfoManage.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/deviceManage.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/deviceSet.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/deviceStatusSet.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/manage-btn-icon0.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 204 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/manage-btn-icon1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 160 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/manage-btn-icon2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 491 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/table-delete.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 352 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/table-edit.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 386 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/table-edit1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 401 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/userInfoControl.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/videoManage.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/manageImg/weatherData.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.0 KiB  | 
@ -93,7 +93,45 @@ const routes = [
 | 
				
			|||||||
    },{
 | 
					    },{
 | 
				
			||||||
      path: '/manage',
 | 
					      path: '/manage',
 | 
				
			||||||
      name: 'manage',
 | 
					      name: 'manage',
 | 
				
			||||||
      component: () => import('../views/manage/index.vue')
 | 
					      component: () => import('../views/manage/index.vue'),
 | 
				
			||||||
 | 
					      redirect: '/deviceStatusSet',
 | 
				
			||||||
 | 
					      children:[{
 | 
				
			||||||
 | 
					        path: '/deviceStatusSet',
 | 
				
			||||||
 | 
					        name: 'deviceStatusSet',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/deviceStatusSet.vue')
 | 
				
			||||||
 | 
					      },{
 | 
				
			||||||
 | 
					        path: '/deviceSet',
 | 
				
			||||||
 | 
					        name: 'deviceSet',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/deviceSet.vue')
 | 
				
			||||||
 | 
					      },{
 | 
				
			||||||
 | 
					        path: '/deviceInfoManage',
 | 
				
			||||||
 | 
					        name: 'deviceInfoManage',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/deviceInfoManage.vue')
 | 
				
			||||||
 | 
					      },{
 | 
				
			||||||
 | 
					        path: '/weatherData',
 | 
				
			||||||
 | 
					        name: 'weatherData',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/weatherData.vue')
 | 
				
			||||||
 | 
					      },{
 | 
				
			||||||
 | 
					        path: '/dataDevice',
 | 
				
			||||||
 | 
					        name: 'dataDevice',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/dataDevice.vue')
 | 
				
			||||||
 | 
					      },{
 | 
				
			||||||
 | 
					        path: '/mobileControl',
 | 
				
			||||||
 | 
					        name: 'mobileControl',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/mobileControl.vue')
 | 
				
			||||||
 | 
					      },{
 | 
				
			||||||
 | 
					        path: '/userInfoControl',
 | 
				
			||||||
 | 
					        name: 'userInfoControl',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/userInfoControl.vue')
 | 
				
			||||||
 | 
					      },{
 | 
				
			||||||
 | 
					        path: '/deviceManage',
 | 
				
			||||||
 | 
					        name: 'deviceManage',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/deviceManage.vue')
 | 
				
			||||||
 | 
					      },{
 | 
				
			||||||
 | 
					        path: '/videoManage',
 | 
				
			||||||
 | 
					        name: 'videoManage',
 | 
				
			||||||
 | 
					        component: () => import('../views/manage/videoManage.vue')
 | 
				
			||||||
 | 
					      },]
 | 
				
			||||||
    },  {
 | 
					    },  {
 | 
				
			||||||
      path: '/control',
 | 
					      path: '/control',
 | 
				
			||||||
      name: 'control',
 | 
					      name: 'control',
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@
 | 
				
			|||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="index-content">
 | 
					        <div class="index-content">
 | 
				
			||||||
            <div class="left collapse" v-if="routerNow!='manage'">
 | 
					            <div class="left collapse" v-if="manageList.indexOf(routerNow)==-1">
 | 
				
			||||||
                <el-collapse v-model="activeNames">
 | 
					                <el-collapse v-model="activeNames">
 | 
				
			||||||
                    <template v-for="item, index in leftList">
 | 
					                    <template v-for="item, index in leftList">
 | 
				
			||||||
                        <el-collapse-item :name="index + 1" :key="index" v-if="!item.isRouter">
 | 
					                        <el-collapse-item :name="index + 1" :key="index" v-if="!item.isRouter">
 | 
				
			||||||
@ -52,7 +52,7 @@
 | 
				
			|||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <!-- 管理的左侧 -->
 | 
					            <!-- 管理的左侧 -->
 | 
				
			||||||
            <div class="left collapse" v-else>
 | 
					            <div class="left collapse" v-else>
 | 
				
			||||||
                <el-collapse v-model="activeNames">
 | 
					                <el-collapse v-model="activeNames1">
 | 
				
			||||||
                    <template v-for="item, index in leftList1">
 | 
					                    <template v-for="item, index in leftList1">
 | 
				
			||||||
                        <el-collapse-item :name="index + 1" :key="index" v-if="!item.isRouter">
 | 
					                        <el-collapse-item :name="index + 1" :key="index" v-if="!item.isRouter">
 | 
				
			||||||
                            <template slot="title" class="collapse-title">
 | 
					                            <template slot="title" class="collapse-title">
 | 
				
			||||||
@ -100,7 +100,7 @@ export default {
 | 
				
			|||||||
                // { name: '设备菜单', router: '', routerList: [], img: require('../assets/image/header-img5.png') },
 | 
					                // { name: '设备菜单', router: '', routerList: [], img: require('../assets/image/header-img5.png') },
 | 
				
			||||||
                //systemManage systemManage
 | 
					                //systemManage systemManage
 | 
				
			||||||
                // manage
 | 
					                // manage
 | 
				
			||||||
                { name: '管理', router: '', routerList: ['manage'], img: require('../assets/image/header-img6.png') },
 | 
					                { name: '管理', router: 'manage', routerList: ['manage','dataDevice','deviceStatusSet','deviceSet','deviceInfoManage','weatherData','mobileControl','userInfoControl','deviceManage','videoManage'], img: require('../assets/image/header-img6.png') },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                { name: '大数据', router: 'largeScreen', routerList: ['largeScreen'], img: require('../assets/image/header-img8.png') }
 | 
					                { name: '大数据', router: 'largeScreen', routerList: ['largeScreen'], img: require('../assets/image/header-img8.png') }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
@ -116,20 +116,29 @@ export default {
 | 
				
			|||||||
            leftList1: [
 | 
					            leftList1: [
 | 
				
			||||||
                { name: '管理', img: require('../assets/image/index-icon.png'), list: [], router: 'manage', isRouter: true, },
 | 
					                { name: '管理', img: require('../assets/image/index-icon.png'), list: [], router: 'manage', isRouter: true, },
 | 
				
			||||||
                { name: '用户管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
 | 
					                { name: '用户管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
 | 
				
			||||||
                    {deviceTypeName:'控制器设备状态值设置',router:'',index:0},
 | 
					                    {deviceTypeName:'控制器设备状态值设置',router:'deviceStatusSet',index:0},
 | 
				
			||||||
                    {deviceTypeName:'控制器设备设定值设置',router:'',index:1},
 | 
					                    {deviceTypeName:'控制器设备设定值设置',router:'deviceSet',index:1},
 | 
				
			||||||
                    {deviceTypeName:'设备信息管理',router:'',index:2},
 | 
					                    {deviceTypeName:'设备信息管理',router:'deviceInfoManage',index:2},
 | 
				
			||||||
                    {deviceTypeName:'设备绑定气象站数据',router:'',index:3},
 | 
					                    {deviceTypeName:'设备绑定气象站数据',router:'weatherData',index:3},
 | 
				
			||||||
                    {deviceTypeName:'大数据设备信息',router:'',index:4},
 | 
					                    {deviceTypeName:'大数据设备信息',router:'dataDevice',index:4},
 | 
				
			||||||
                    {deviceTypeName:'手机控制模块信息',router:'',index:5},
 | 
					                    {deviceTypeName:'手机控制模块信息',router:'mobileControl',index:5},
 | 
				
			||||||
                ] },
 | 
					                ] },
 | 
				
			||||||
                { name: '管理员管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
 | 
					                { name: '管理员管理', routerList: [''], img: require('../assets/image/left-img0.png'), list: [
 | 
				
			||||||
                    {deviceTypeName:'用户信息管理',router:'',index:6},
 | 
					                    {deviceTypeName:'用户信息管理',router:'userInfoControl',index:6},
 | 
				
			||||||
                    {deviceTypeName:'设备管理',router:'',index:7},
 | 
					                    {deviceTypeName:'设备管理',router:'deviceManage',index:7},
 | 
				
			||||||
                    {deviceTypeName:'摄像头信息管理',router:'',index:8},
 | 
					                    // {deviceTypeName:'摄像头信息管理',router:'videoManage',index:8},
 | 
				
			||||||
                ] },
 | 
					                ] },
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            activeNames: [],
 | 
					            manageList:['deviceStatusSet',
 | 
				
			||||||
 | 
					'deviceSet',
 | 
				
			||||||
 | 
					'deviceInfoManage',
 | 
				
			||||||
 | 
					'weatherData',
 | 
				
			||||||
 | 
					'dataDevice',
 | 
				
			||||||
 | 
					'mobileControl',
 | 
				
			||||||
 | 
					'userInfoControl',
 | 
				
			||||||
 | 
					'deviceManage',
 | 
				
			||||||
 | 
					'videoManage',],
 | 
				
			||||||
 | 
					            activeNames1: [3,2],
 | 
				
			||||||
            routerNow: 'realTime',
 | 
					            routerNow: 'realTime',
 | 
				
			||||||
            deviceName: 1,
 | 
					            deviceName: 1,
 | 
				
			||||||
            routerIndex: 1,
 | 
					            routerIndex: 1,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										204
									
								
								src/views/manage/dataDevice.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,204 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="dataDevice manage-page">
 | 
				
			||||||
 | 
					    <div class="table-title">
 | 
				
			||||||
 | 
					      <img src="../../assets/manageImg/dataDevice.png" alt="">大数据设备信息
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="table-view">
 | 
				
			||||||
 | 
					      <el-table :data="tableData" :row-class-name="tableRowClassName" height="620" style="width: 100%">
 | 
				
			||||||
 | 
					        <el-table-column prop="deviceId" label="设备code码" width="180px">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="greenhouseName" label="设备名称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="greenhouseVariety" label="品种">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="greenhouseNums" label="数量">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="growthStageName" label="生长阶段">
 | 
				
			||||||
 | 
					          <template slot-scope="scope">
 | 
				
			||||||
 | 
					            <div class="table-flex">
 | 
				
			||||||
 | 
					              <div class="table-type">
 | 
				
			||||||
 | 
					                {{ scope.row.growthStageName }}
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column label="操作">
 | 
				
			||||||
 | 
					          <template slot-scope="scope">
 | 
				
			||||||
 | 
					            <div class="table-flex">
 | 
				
			||||||
 | 
					              <div class="table-operate blue" @click="openModel(scope.row)">
 | 
				
			||||||
 | 
					                <img src="../../assets/manageImg/table-edit.png" alt="">编辑
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					              <!-- <el-popconfirm title="这一段内容确定删除吗?">
 | 
				
			||||||
 | 
					                <div class="table-operate red" slot="reference">
 | 
				
			||||||
 | 
					                  <img src="../../assets/manageImg/table-delete.png" alt="">删除
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					              </el-popconfirm> -->
 | 
				
			||||||
 | 
					            </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">
 | 
				
			||||||
 | 
					        编辑
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="vrcode-content" v-if="nowData">
 | 
				
			||||||
 | 
					        <div class="manage-left">
 | 
				
			||||||
 | 
					          <!-- <div class="manage-input">
 | 
				
			||||||
 | 
					                        <div class="input-title">设备code码</div>
 | 
				
			||||||
 | 
					                        <input type="text" v-model="nowData.deviceId" placeholder="请输入设备code码">
 | 
				
			||||||
 | 
					                    </div> -->
 | 
				
			||||||
 | 
					          <div class="manage-input-sel">
 | 
				
			||||||
 | 
					            <div class="input-title">关联气象站设备code码</div>
 | 
				
			||||||
 | 
					            <el-dropdown @command="handleCommand">
 | 
				
			||||||
 | 
					              <div class="el-dropdown-link">
 | 
				
			||||||
 | 
					                <input v-model="nowData.deviceId" type="text" class="input-input" placeholder="请选择气象站设备code码">
 | 
				
			||||||
 | 
					                <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 typeSelList
 | 
				
			||||||
 | 
					                " :key="index" :command="item.deviceId">{{ item.deviceTypeName }}</el-dropdown-item>
 | 
				
			||||||
 | 
					              </el-dropdown-menu>
 | 
				
			||||||
 | 
					            </el-dropdown>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">品种</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.greenhouseVariety" placeholder="请输入品种">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">生长阶段</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.growthStageName" placeholder="请输入生长阶段">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">设备名称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.greenhouseName" placeholder="请输入设备名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">数量</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.greenhouseNums" placeholder="请输入数量">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="manage-right">
 | 
				
			||||||
 | 
					          <div class="manage-img">
 | 
				
			||||||
 | 
					            <label for="sel-img">
 | 
				
			||||||
 | 
					              <img class="" :src="nowData.greenhouseImage" alt="">
 | 
				
			||||||
 | 
					            </label>
 | 
				
			||||||
 | 
					            <input ref="fileInput" type="file" :multiple="false" id="sel-img" accept="image/*"
 | 
				
			||||||
 | 
					              @change="handleImageChange($event, 0)" />
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					        <div class="vrcode-btn blue-btn w-100" @click="confirmModel">确定</div>
 | 
				
			||||||
 | 
					        <div class="vrcode-btn cancle-btn w-100" @click="addModel = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      tableData: [],
 | 
				
			||||||
 | 
					      addModel: false,
 | 
				
			||||||
 | 
					      nowData: null,
 | 
				
			||||||
 | 
					      typeSelList: [],
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() { this.dataInit() },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    dataInit() {
 | 
				
			||||||
 | 
					      var user = JSON.parse(localStorage.getItem('userInfo'))
 | 
				
			||||||
 | 
					      this.api.selUserbyid(user.userid).then(res => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.tableData = res.data.data.bigDataControls
 | 
				
			||||||
 | 
					          res.data.data.devices.forEach((el, index) => {
 | 
				
			||||||
 | 
					            if (el.deviceName == 10) {
 | 
				
			||||||
 | 
					              this.typeSelList.push(el)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getData1(data) {
 | 
				
			||||||
 | 
					      var name = ''
 | 
				
			||||||
 | 
					      this.typeSelList.forEach((el, index) => {
 | 
				
			||||||
 | 
					        if (el.deviceId == data) {
 | 
				
			||||||
 | 
					          name = el.deviceTypeName
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      return name
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleCommand(e) {
 | 
				
			||||||
 | 
					      this.nowData.deviceId = e
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    confirmModel() {
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      var data = this.nowData
 | 
				
			||||||
 | 
					      this.api.updateDataDevice(data).then(res => {
 | 
				
			||||||
 | 
					        this.loading.close()
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.dataInit()
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel = false
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel1 = false
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openModel(item) {
 | 
				
			||||||
 | 
					      this.nowData = JSON.parse(JSON.stringify(item))
 | 
				
			||||||
 | 
					      this.addModel = true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleImageChange(event, type) {
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        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 });
 | 
				
			||||||
 | 
					        // 处理转换后的文件...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        var data = { file: convertedFile }
 | 
				
			||||||
 | 
					        this.api.manageUploadImage(data).then(res => {
 | 
				
			||||||
 | 
					          this.loading.close()
 | 
				
			||||||
 | 
					          if (res.data.code == 200) {
 | 
				
			||||||
 | 
					            this.nowData.greenhouseImage = res.data.msg
 | 
				
			||||||
 | 
					            this.$refs.fileInput.value = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      reader.readAsArrayBuffer(file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
							
								
								
									
										444
									
								
								src/views/manage/deviceInfoManage.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,444 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="deviceSet manage-page">
 | 
				
			||||||
 | 
					    <div class="table-title">
 | 
				
			||||||
 | 
					      <img src="../../assets/manageImg/deviceInfoManage.png" alt="">设备信息管理
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="flex-view">
 | 
				
			||||||
 | 
					      <div class="manage-btn" @click="active = 0" :class="active == 0 ? 'active' : ''">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/manage-btn-icon2.png" alt="">
 | 
				
			||||||
 | 
					        施肥机
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="manage-btn" @click="active = 1" :class="active == 1 ? 'active' : ''">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/manage-btn-icon1.png" alt="">
 | 
				
			||||||
 | 
					        控制器
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="table-view" v-if="active == 0">
 | 
				
			||||||
 | 
					      <el-table :data="tableData" :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="操作" width="260px">
 | 
				
			||||||
 | 
					          <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 class="table-operate red" @click="openModelName(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" v-else>
 | 
				
			||||||
 | 
					      <el-table :data="tableData1" :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="openModel1(scope.row, scope.$index)">
 | 
				
			||||||
 | 
					                <img src="../../assets/manageImg/table-edit.png" alt="">编辑
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					      </el-table>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <el-dialog title="提示" top="10vh" :visible.sync="addModel" width="700px" class="vrcode-model manage-model"
 | 
				
			||||||
 | 
					      :append-to-body="true">
 | 
				
			||||||
 | 
					      <div class="vrcode-model-title">
 | 
				
			||||||
 | 
					        编辑
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="vrcode-content" v-if="nowData">
 | 
				
			||||||
 | 
					        <div class="manage-left">
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">设备code码</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.deviceId" disabled placeholder="请输入设备code码">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">设备名称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.deviceTypeName" placeholder="请输入设备名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">施肥机状态页名称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.stationName" placeholder="请输入施肥机状态页名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">摄像机名称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.cameraSerialNumber" placeholder="请输入摄像机名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">摄像机通道号</div>
 | 
				
			||||||
 | 
					            <input type="number" v-model="nowData.cameraChannelNumber" placeholder="请输入对应摄像机通道号">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">排序</div>
 | 
				
			||||||
 | 
					            <input type="number" v-model="nowData.equipmentStatu" placeholder="请输入排序">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="manage-right">
 | 
				
			||||||
 | 
					          <div class="manage-img">
 | 
				
			||||||
 | 
					            <label for="sel-img">
 | 
				
			||||||
 | 
					              <img class="" :src="nowData.hls" alt="小程序图片">
 | 
				
			||||||
 | 
					            </label>
 | 
				
			||||||
 | 
					            <input ref="fileInput" type="file" :multiple="false" id="sel-img" accept="image/*"
 | 
				
			||||||
 | 
					              @change="handleImageChange($event, 0)" />
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					        <div class="vrcode-btn blue-btn w-100" @click="changeAddModel">确定</div>
 | 
				
			||||||
 | 
					        <div class="vrcode-btn cancle-btn w-100" @click="addModel = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <el-dialog title="提示" top="10vh" :visible.sync="changeName" width="760px" class="vrcode-model manage-model"
 | 
				
			||||||
 | 
					      :append-to-body="true">
 | 
				
			||||||
 | 
					      <div class="vrcode-model-title">
 | 
				
			||||||
 | 
					        修改更多名称
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="vrcode-content" v-if="nameList">
 | 
				
			||||||
 | 
					        <div class="manage-left">
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <div class="input-title">施肥配方1-8</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.fertilizationOne" placeholder="施肥1">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.fertilizationTwo" placeholder="施肥2">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.fertilizationThree" placeholder="施肥3">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.fertilizationFour" placeholder="施肥4">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.fertilizationFive" placeholder="施肥5">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.fertilizationSix" placeholder="施肥6">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.fertilizationSeven" placeholder="施肥7">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.fertilizationEight" placeholder="施肥8">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="manage-center">
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <div class="input-title">灌溉组1-8</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidOne" placeholder="灌溉组1">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidTwo" placeholder="灌溉组2">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidThree" placeholder="灌溉组3">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidFour" placeholder="灌溉组4">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidFive" placeholder="灌溉组5">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidSix" placeholder="灌溉组6">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidSeven" placeholder="灌溉组7">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidEight" placeholder="灌溉组8">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					        <div class="manage-center">
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <div class="input-title">灌溉组9-16</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidNine" placeholder="灌溉组9">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidTen" placeholder="灌溉组10">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidElven" placeholder="灌溉组11">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidTwelve" placeholder="灌溉组12">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidThirteen" placeholder="灌溉组13">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidFourteen" placeholder="灌溉组14">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidFifteen" placeholder="灌溉组15">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.solenoidSixteen" placeholder="灌溉组16">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					        <div class="manage-right">
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <div class="input-title">外控设备1-4</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.externalOne" placeholder="外控设备1">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.externalTwo" placeholder="外控设备2">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.externalThree" placeholder="外控设备3">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-160">
 | 
				
			||||||
 | 
					            <input type="text" v-model="nameList.externalFour" placeholder="外控设备4">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					        <div class="vrcode-btn blue-btn w-100" @click="changeAddModel2">确定</div>
 | 
				
			||||||
 | 
					        <div class="vrcode-btn cancle-btn w-100" @click="changeName = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <el-dialog 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" v-if="nowData1">
 | 
				
			||||||
 | 
					        <div class="manage-left">
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">设备code码</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData1.deviceId" disabled placeholder="请输入设备code码">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">摄像机名称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData1.cameraSerialNumber" placeholder="请输入摄像机名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">排序</div>
 | 
				
			||||||
 | 
					            <input type="number" v-model="nowData1.equipmentStatu" placeholder="请输入排序">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-img-small">
 | 
				
			||||||
 | 
					            <label for="sel-img">
 | 
				
			||||||
 | 
					              <img class="" :src="nowData1.hls" alt="">
 | 
				
			||||||
 | 
					            </label>
 | 
				
			||||||
 | 
					            <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="请输入设备名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">摄像机通道号</div>
 | 
				
			||||||
 | 
					            <input type="number" v-model="nowData1.cameraChannelNumber" placeholder="请输入摄像机通道号">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-text">
 | 
				
			||||||
 | 
					            如果有摄像机则每小时都会定时更新<br>
 | 
				
			||||||
 | 
					            小程序摄像机主页面图片,<br>
 | 
				
			||||||
 | 
					            如果没有摄像机则可以自定义更改图片<br>
 | 
				
			||||||
 | 
					            地址信息。
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					        <div class="vrcode-btn blue-btn w-100" @click="changeAddModel1">确定</div>
 | 
				
			||||||
 | 
					        <div class="vrcode-btn cancle-btn w-100" @click="addModel1 = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      active: 0,
 | 
				
			||||||
 | 
					      tableData: [],
 | 
				
			||||||
 | 
					      tableData1: [],
 | 
				
			||||||
 | 
					      addModel: false,
 | 
				
			||||||
 | 
					      addModel1: false,
 | 
				
			||||||
 | 
					      changeName: false,
 | 
				
			||||||
 | 
					      nowData: null,
 | 
				
			||||||
 | 
					      nowData1: null,
 | 
				
			||||||
 | 
					      nameList:null,
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() { this.dataInit() },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    dataInit() {
 | 
				
			||||||
 | 
					      var user = JSON.parse(localStorage.getItem('userInfo'))
 | 
				
			||||||
 | 
					      this.api.selUserbyid(user.userid).then(res => {
 | 
				
			||||||
 | 
					        this.tableData = []
 | 
				
			||||||
 | 
					        this.tableData1 = []
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          res.data.data.devices.forEach((el, index) => {
 | 
				
			||||||
 | 
					            if (el.deviceName == 10) {
 | 
				
			||||||
 | 
					              this.tableData1.push(el)
 | 
				
			||||||
 | 
					            } else if (el.deviceName == 1) {
 | 
				
			||||||
 | 
					              this.tableData.push(el)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    changeAddModel() {
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      var data = this.nowData
 | 
				
			||||||
 | 
					      this.api.updatedevice(data).then(res => {
 | 
				
			||||||
 | 
					        this.loading.close()
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.dataInit()
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel = false
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel = false
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openModelName(item,index){
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      var data={deviceId:item.deviceId}
 | 
				
			||||||
 | 
					      this.api.getByid(data).then(res=>{
 | 
				
			||||||
 | 
					        this.loading.close()
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.nameList=res.data.data
 | 
				
			||||||
 | 
					          this.changeName=true
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					    changeAddModel1() {
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      var data = this.nowData1
 | 
				
			||||||
 | 
					      this.api.updatedevice(data).then(res => {
 | 
				
			||||||
 | 
					        this.loading.close()
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.dataInit()
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel1 = false
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel1 = false
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    changeAddModel2(){
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      var data = this.nameList
 | 
				
			||||||
 | 
					      this.api.updateFsname(data).then(res=>{
 | 
				
			||||||
 | 
					        this.loading.close()
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          this.changeName = false
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					          this.changeName = false
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleImageChange(event,type) {
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        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 });
 | 
				
			||||||
 | 
					        // 处理转换后的文件...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        var data = { file: convertedFile }
 | 
				
			||||||
 | 
					        this.api.manageUploadImage(data).then(res => {
 | 
				
			||||||
 | 
					          this.loading.close()
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          if(type==0){
 | 
				
			||||||
 | 
					            this.nowData.hls=res.data.msg
 | 
				
			||||||
 | 
					            this.$refs.fileInput.value = '';
 | 
				
			||||||
 | 
					          }else{
 | 
				
			||||||
 | 
					            this.nowData1.hls=res.data.msg 
 | 
				
			||||||
 | 
					            this.$refs.fileInput1.value = '';
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					         
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					         
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      reader.readAsArrayBuffer(file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openModel(item, index) {
 | 
				
			||||||
 | 
					      this.nowData = JSON.parse(JSON.stringify(item))
 | 
				
			||||||
 | 
					      this.addModel = true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openModel1(item, index) {
 | 
				
			||||||
 | 
					      this.nowData1 = JSON.parse(JSON.stringify(item))
 | 
				
			||||||
 | 
					      this.addModel1 = true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
							
								
								
									
										401
									
								
								src/views/manage/deviceManage.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,401 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="videoManage manage-page deviceManage">
 | 
				
			||||||
 | 
					    <div class="flex-view flex-title">
 | 
				
			||||||
 | 
					      <div class="table-title">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/deviceManage.png" alt="">设备管理
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="table-title-btn blue" @click="openAddModel1">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/add-btn.png" alt="">添加
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <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="">
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <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">
 | 
				
			||||||
 | 
					        查询
 | 
				
			||||||
 | 
					      </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-column prop="deviceTypeName" label="设备名称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="cameraSerialNumber" label="设备关联摄像头名称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="cameraChannelNumber" label="设备关联摄像头通道">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="userName" label="设备关联用户名称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <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>
 | 
				
			||||||
 | 
					              <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="">删除
 | 
				
			||||||
 | 
					                </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>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <el-dialog 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>
 | 
				
			||||||
 | 
					          {{ 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>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <el-dialog 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码">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <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>
 | 
				
			||||||
 | 
					              </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-menu>
 | 
				
			||||||
 | 
					            </el-dropdown>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">关联摄像头名称</div>
 | 
				
			||||||
 | 
					            <input type="number" v-model="nowData1.cameraSerialNumber" placeholder="请输入摄像头名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-img-small">
 | 
				
			||||||
 | 
					            <label for="sel-img">
 | 
				
			||||||
 | 
					              <img class="" :src="nowData1.hls" alt="">
 | 
				
			||||||
 | 
					            </label>
 | 
				
			||||||
 | 
					            <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="请输入设备名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">关联摄像头通道</div>
 | 
				
			||||||
 | 
					            <input type="number" v-model="nowData1.cameraChannelNumber" placeholder="请输入摄像机通道号">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					          <div class="manage-text">
 | 
				
			||||||
 | 
					            如果有摄像机则每小时都会定时更新<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>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      tableData: [],
 | 
				
			||||||
 | 
					      currentPage: 1,
 | 
				
			||||||
 | 
					      pageSize: 10,
 | 
				
			||||||
 | 
					      searchName: '',
 | 
				
			||||||
 | 
					      searchID: '',
 | 
				
			||||||
 | 
					      total: 0,
 | 
				
			||||||
 | 
					      roleModel: false,
 | 
				
			||||||
 | 
					      selDevicestatus: [],
 | 
				
			||||||
 | 
					      allDevicestatus: [],
 | 
				
			||||||
 | 
					      nowDevicestatus: [],
 | 
				
			||||||
 | 
					      nowDeviceId:'',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      //添加设备
 | 
				
			||||||
 | 
					      addModel1:false,
 | 
				
			||||||
 | 
					      nowData1:{
 | 
				
			||||||
 | 
					        deviceState:0,
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      deviceType:'',
 | 
				
			||||||
 | 
					      deviceSel: [{ label: '控制器', value: 10, }, { label: '施肥机', value: 1, }, { label: '气象站', value:30, }],
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() { this.dataInit() },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    dataInit() {
 | 
				
			||||||
 | 
					      // var user = JSON.parse(localStorage.getItem('userInfo'))
 | 
				
			||||||
 | 
					      // this.api.selUserbyid(user.userid).then(res => {
 | 
				
			||||||
 | 
					      //   if (res.data.code == 200) {
 | 
				
			||||||
 | 
					      //     this.deviceList = res.data.data.devices
 | 
				
			||||||
 | 
					      //   }
 | 
				
			||||||
 | 
					      // })
 | 
				
			||||||
 | 
					      this.pageSize = 10
 | 
				
			||||||
 | 
					      this.currentPage = 1
 | 
				
			||||||
 | 
					      setTimeout(() => {
 | 
				
			||||||
 | 
					        this.getData()
 | 
				
			||||||
 | 
					      }, 0);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getDeviceType(e) {
 | 
				
			||||||
 | 
					      if (e == '控制器') {
 | 
				
			||||||
 | 
					        return 10
 | 
				
			||||||
 | 
					      } else if(e == '施肥机'){
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					      } else if(e == '气象站'){
 | 
				
			||||||
 | 
					        return 30
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleCommand1(e) {
 | 
				
			||||||
 | 
					      this.nowData1.deviceName = this.getDeviceType(e)
 | 
				
			||||||
 | 
					      this.deviceType = e
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openRoleModel(deviceId) {
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      this.selDevicestatus = []
 | 
				
			||||||
 | 
					      this.nowDeviceId=deviceId
 | 
				
			||||||
 | 
					      var data = { deviceId: deviceId }
 | 
				
			||||||
 | 
					      // 线调取全部权限
 | 
				
			||||||
 | 
					      this.api.selectallPermissions().then(res => {
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.allDevicestatus = res.data.data
 | 
				
			||||||
 | 
					          // this.roleModel=true
 | 
				
			||||||
 | 
					          // 再根据deviceId调取单个设备权限 并且查询共同name
 | 
				
			||||||
 | 
					          this.getcontrol_cpermission()
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.loading.close()
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openAddModel1(){
 | 
				
			||||||
 | 
					      this.nowData1={
 | 
				
			||||||
 | 
					        deviceState:0,
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      this.addModel1=true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    addDevice(){
 | 
				
			||||||
 | 
					      if (!this.nowData1.deviceId) {
 | 
				
			||||||
 | 
					        this.$message.error('设备code码还未填写');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!this.nowData1.deviceName) {
 | 
				
			||||||
 | 
					        this.$message.error('设备类型还未选择');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!this.nowData1.deviceTypeName) {
 | 
				
			||||||
 | 
					        this.$message.error('设备名称还未填写');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      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
 | 
				
			||||||
 | 
					        } 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)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      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 });
 | 
				
			||||||
 | 
					        // 处理转换后的文件...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        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=>{
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          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
 | 
				
			||||||
 | 
					            } 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()
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }))
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    confirmDel(item) {
 | 
				
			||||||
 | 
					      var data = { id: item.deviceId }
 | 
				
			||||||
 | 
					      this.api.deldevice(data).then(res => {
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          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
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      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
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleSizeChange(val) {
 | 
				
			||||||
 | 
					      this.pageSize = val
 | 
				
			||||||
 | 
					      setTimeout(() => {
 | 
				
			||||||
 | 
					        this.getData()
 | 
				
			||||||
 | 
					      }, 0);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleCurrentChange(val) {
 | 
				
			||||||
 | 
					      this.currentPage = val
 | 
				
			||||||
 | 
					      setTimeout(() => {
 | 
				
			||||||
 | 
					        this.getData()
 | 
				
			||||||
 | 
					      }, 0);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
							
								
								
									
										147
									
								
								src/views/manage/deviceSet.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,147 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="deviceStatusSet manage-page">
 | 
				
			||||||
 | 
					    <div class="table-title">
 | 
				
			||||||
 | 
					      <img src="../../assets/manageImg/deviceSet.png" alt="">设备状态设备
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="flex-view scroll">
 | 
				
			||||||
 | 
					      <div class="manage-btn" v-for="item,index in topList" :key="index" @click="topChange(item,index)" :class="active == index ? 'active' : ''">
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					       {{item.deviceTypeName}}
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="table-view">
 | 
				
			||||||
 | 
					      <el-table :data="tableData" :row-class-name="tableRowClassName" height="580" style="width: 100%">
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					        <el-table-column  label="序号" width="120px">
 | 
				
			||||||
 | 
					          <template slot-scope="scope">
 | 
				
			||||||
 | 
					              <div>{{scope.$index+1 }}
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </template>
 | 
				
			||||||
 | 
					</el-table-column>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <el-table-column prop="permissionName" label="设备名称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="nickName" label="设备别名">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="sort"  width="120px" 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 title="提示" top="15vh" :visible.sync="addModel" width="564px" class="vrcode-model manage-model" :append-to-body="true">
 | 
				
			||||||
 | 
					      <div class="vrcode-model-title">
 | 
				
			||||||
 | 
					              编辑
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div class="vrcode-content" v-if="changeData">
 | 
				
			||||||
 | 
					              <div class="manage-left">
 | 
				
			||||||
 | 
					                    <div class="manage-input">
 | 
				
			||||||
 | 
					                        <div class="input-title">设备别名</div>
 | 
				
			||||||
 | 
					                        <input type="text" v-model="changeData.nickName" placeholder="请输入设备别名">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					              <div class="manage-right">
 | 
				
			||||||
 | 
					                    <div class="manage-input">
 | 
				
			||||||
 | 
					                        <div class="input-title">排序</div>
 | 
				
			||||||
 | 
					                        <input type="number" v-model="changeData.sort" placeholder="请输入新排序">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					                <div class="vrcode-btn blue-btn w-100" @click="confirmModel">确定</div>
 | 
				
			||||||
 | 
					                <div class="vrcode-btn cancle-btn w-100" @click="addModel = false">取消</div>
 | 
				
			||||||
 | 
					            </span>
 | 
				
			||||||
 | 
					        </el-dialog>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      tableData: [],
 | 
				
			||||||
 | 
					          topList:[],
 | 
				
			||||||
 | 
					          active:0,
 | 
				
			||||||
 | 
					          addModel:false,
 | 
				
			||||||
 | 
					          changeData:null,
 | 
				
			||||||
 | 
					          modelIndex:0,
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  watch:{
 | 
				
			||||||
 | 
					    active(newVal,oldVal){
 | 
				
			||||||
 | 
					      this.getData(this.topList[newVal])
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() {this.dataInit() },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    confirmModel(){
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					    lock: true,
 | 
				
			||||||
 | 
					    text: '加载中',
 | 
				
			||||||
 | 
					    spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					    background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					      this.api.putControlpermission(this.changeData).then(res=>{
 | 
				
			||||||
 | 
					        this.loading.close()
 | 
				
			||||||
 | 
					        if(res.data.code==200){
 | 
				
			||||||
 | 
					          this.getData(this.topList[this.active])
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel=false
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel=false
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openModel(item,index){
 | 
				
			||||||
 | 
					      this.changeData=JSON.parse(JSON.stringify(item))
 | 
				
			||||||
 | 
					      this.addModel=true
 | 
				
			||||||
 | 
					      this.modelIndex=index
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					   dataInit(){
 | 
				
			||||||
 | 
					      var user=   JSON.parse(localStorage.getItem('userInfo'))
 | 
				
			||||||
 | 
					      this.api.selUserbyid(user.userid).then(res=>{
 | 
				
			||||||
 | 
					        this.topList=[] 
 | 
				
			||||||
 | 
					        if(res.data.code==200){
 | 
				
			||||||
 | 
					          res.data.data.devices.forEach((el,index)=>{
 | 
				
			||||||
 | 
					            if(el.deviceName==10){
 | 
				
			||||||
 | 
					              this.topList.push(el)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					          setTimeout(() => {
 | 
				
			||||||
 | 
					            this.getData(this.topList[0])
 | 
				
			||||||
 | 
					          }, 0);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getData(item){
 | 
				
			||||||
 | 
					      var data={deviceId:item.deviceId}
 | 
				
			||||||
 | 
					      this.api.selpermission(data).then(res=>{
 | 
				
			||||||
 | 
					        if(res.data.code==200){
 | 
				
			||||||
 | 
					          this.tableData=res.data.data
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    topChange(item,index){
 | 
				
			||||||
 | 
					      this.active = index
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
							
								
								
									
										140
									
								
								src/views/manage/deviceStatusSet.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,140 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="deviceStatusSet manage-page">
 | 
				
			||||||
 | 
					    <div class="table-title">
 | 
				
			||||||
 | 
					      <img src="../../assets/manageImg/deviceStatusSet.png" alt="">设备状态设备
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="flex-view scroll">
 | 
				
			||||||
 | 
					      <div class="manage-btn" v-for="item,index in topList" :key="index" @click="topChange(item,index)" :class="active == index ? 'active' : ''">
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					       {{item.deviceTypeName}}
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="table-view">
 | 
				
			||||||
 | 
					      <el-table :data="tableData" :row-class-name="tableRowClassName" height="580" style="width: 100%">
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					        <el-table-column  label="序号" width="120px">
 | 
				
			||||||
 | 
					          <template slot-scope="scope">
 | 
				
			||||||
 | 
					              <div>{{scope.$index+1 }}
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </template>
 | 
				
			||||||
 | 
					</el-table-column>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <el-table-column prop="permissionName" label="设备名称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="nickName" label="设备别名">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="sort"  width="120px" 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 title="提示" top="15vh" :visible.sync="addModel" width="564px" class="vrcode-model manage-model" :append-to-body="true">
 | 
				
			||||||
 | 
					      <div class="vrcode-model-title">
 | 
				
			||||||
 | 
					              编辑
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div class="vrcode-content" v-if="changeData">
 | 
				
			||||||
 | 
					              <div class="manage-left">
 | 
				
			||||||
 | 
					                    <div class="manage-input">
 | 
				
			||||||
 | 
					                        <div class="input-title">设备别名</div>
 | 
				
			||||||
 | 
					                        <input type="text" v-model="changeData.nickName" placeholder="请输入设备别名">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					              <div class="manage-right">
 | 
				
			||||||
 | 
					                    <div class="manage-input">
 | 
				
			||||||
 | 
					                        <div class="input-title">排序</div>
 | 
				
			||||||
 | 
					                        <input type="number" v-model="changeData.sort" placeholder="请输入新排序">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					                <div class="vrcode-btn blue-btn w-100" @click="confirmModel">确定</div>
 | 
				
			||||||
 | 
					                <div class="vrcode-btn cancle-btn w-100" @click="addModel = false">取消</div>
 | 
				
			||||||
 | 
					            </span>
 | 
				
			||||||
 | 
					        </el-dialog>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      tableData: [],
 | 
				
			||||||
 | 
					          topList:[],
 | 
				
			||||||
 | 
					          active:0,
 | 
				
			||||||
 | 
					          addModel:false,
 | 
				
			||||||
 | 
					          changeData:null,
 | 
				
			||||||
 | 
					          modelIndex:0,
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  watch:{
 | 
				
			||||||
 | 
					    active(newVal,oldVal){
 | 
				
			||||||
 | 
					      this.getData(this.topList[newVal])
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() {this.dataInit() },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    confirmModel(){
 | 
				
			||||||
 | 
					      this.api.putpermission(this.changeData).then(res=>{
 | 
				
			||||||
 | 
					        if(res.data.code==200){
 | 
				
			||||||
 | 
					          this.getData(this.topList[this.active])
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel=false
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					          this.addModel=false
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openModel(item,index){
 | 
				
			||||||
 | 
					      this.changeData=JSON.parse(JSON.stringify(item))
 | 
				
			||||||
 | 
					      this.addModel=true
 | 
				
			||||||
 | 
					      this.modelIndex=index
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					   dataInit(){
 | 
				
			||||||
 | 
					      var user=   JSON.parse(localStorage.getItem('userInfo'))
 | 
				
			||||||
 | 
					      this.api.selUserbyid(user.userid).then(res=>{
 | 
				
			||||||
 | 
					        this.topList=[] 
 | 
				
			||||||
 | 
					        if(res.data.code==200){
 | 
				
			||||||
 | 
					          res.data.data.devices.forEach((el,index)=>{
 | 
				
			||||||
 | 
					            if(el.deviceName==10){
 | 
				
			||||||
 | 
					              this.topList.push(el)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					          setTimeout(() => {
 | 
				
			||||||
 | 
					            this.getData(this.topList[0])
 | 
				
			||||||
 | 
					          }, 0);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getData(item){
 | 
				
			||||||
 | 
					      var data={deviceId:item.deviceId}
 | 
				
			||||||
 | 
					      this.api.selControlPermissions(data).then(res=>{
 | 
				
			||||||
 | 
					        if(res.data.code==200){
 | 
				
			||||||
 | 
					          this.tableData=res.data.data
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    topChange(item,index){
 | 
				
			||||||
 | 
					      this.active = index
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
@ -5,11 +5,6 @@
 | 
				
			|||||||
</template>
 | 
					</template>
 | 
				
			||||||
  <script>
 | 
					  <script>
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  // 当控制器整体页面关闭时 清楚控制器数据
 | 
					 | 
				
			||||||
  beforeDestroy() {
 | 
					 | 
				
			||||||
    var store = this.$store.state;
 | 
					 | 
				
			||||||
    // store.ControlData = null;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    return {};
 | 
					    return {};
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
@ -18,6 +13,12 @@ export default {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
  <style lang="scss">
 | 
					  <style lang="scss">
 | 
				
			||||||
 | 
					  .manage-index{
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    padding: 20px 20px 20px 30px;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										157
									
								
								src/views/manage/mobileControl.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,157 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="videoManage manage-page  deviceSet">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div class="flex-view flex-title">
 | 
				
			||||||
 | 
					      <div class="table-title">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/deviceInfoManage.png" alt="">手机控制模块信息
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <!-- <div class="table-title-btn blue" @click="openModel({}, 0)">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/add-btn.png" alt="">添加
 | 
				
			||||||
 | 
					      </div> -->
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="flex-view scroll">
 | 
				
			||||||
 | 
					      <div class="manage-btn" v-for="item, index in topList" :key="index" @click="topChange(item, index)"
 | 
				
			||||||
 | 
					        :class="active == index ? 'active' : ''">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {{ item.deviceTypeName }}
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="table-view">
 | 
				
			||||||
 | 
					      <el-table :data="tableData" :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="id" label="id">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="name" label="规划名称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="nickName" 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, 1)">
 | 
				
			||||||
 | 
					                <img src="../../assets/manageImg/table-edit.png" alt="">编辑
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					      </el-table>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <el-dialog title="提示" top="10vh" :visible.sync="addModel" 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">规划名称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.name" :disabled="modelName == '编辑' ? true : false" placeholder="规划名称">
 | 
				
			||||||
 | 
					          </div> -->
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">手机控制名称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.nickName" placeholder="请输入手机控制名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="manage-right">
 | 
				
			||||||
 | 
					         
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					        <div class="vrcode-btn blue-btn w-100" @click="confirmBtn">确定</div>
 | 
				
			||||||
 | 
					        <div class="vrcode-btn cancle-btn w-100" @click="addModel = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      active: 0,
 | 
				
			||||||
 | 
					      tableData: [],
 | 
				
			||||||
 | 
					      topList: [],
 | 
				
			||||||
 | 
					      addModel: false,
 | 
				
			||||||
 | 
					      nowData: {
 | 
				
			||||||
 | 
					        name:"",
 | 
				
			||||||
 | 
					        nickName:"",
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      deviceId:'',
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  watch: {
 | 
				
			||||||
 | 
					    active(newVal, oldVal) {
 | 
				
			||||||
 | 
					      this.getData(this.topList[newVal])
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() { this.dataInit() },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    openModel(item, type) {
 | 
				
			||||||
 | 
					     
 | 
				
			||||||
 | 
					        this.nowData = JSON.parse(JSON.stringify(item))
 | 
				
			||||||
 | 
					        this.addModel = true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    dataInit() {
 | 
				
			||||||
 | 
					      var user = JSON.parse(localStorage.getItem('userInfo'))
 | 
				
			||||||
 | 
					      this.api.selUserbyid(user.userid).then(res => {
 | 
				
			||||||
 | 
					        this.topList = []
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
 | 
					          res.data.data.devices.forEach((el, index) => {
 | 
				
			||||||
 | 
					            if (el.deviceName == 10) {
 | 
				
			||||||
 | 
					              this.topList.push(el)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					          setTimeout(() => {
 | 
				
			||||||
 | 
					            this.getData(this.topList[0])
 | 
				
			||||||
 | 
					          }, 0);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getData(item) {
 | 
				
			||||||
 | 
					      var data = { deviceId: item.deviceId }
 | 
				
			||||||
 | 
					      this.api.wxgetpermission(data).then(res => {
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.tableData = res.data.data
 | 
				
			||||||
 | 
					          this.deviceId=item.deviceId
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    confirmBtn() {
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      var data = {...this.nowData,deviceId:this.deviceId}
 | 
				
			||||||
 | 
					              this.api.updatewxgetpermission(data).then(res => {
 | 
				
			||||||
 | 
					          this.loading.close()
 | 
				
			||||||
 | 
					          if (res.data.code == 200) {
 | 
				
			||||||
 | 
					            this.dataInit()
 | 
				
			||||||
 | 
					            this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
							
								
								
									
										471
									
								
								src/views/manage/userInfoControl.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,471 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="videoManage manage-page">
 | 
				
			||||||
 | 
					    <div class="flex-view flex-title">
 | 
				
			||||||
 | 
					      <div class="table-title">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/userInfoControl.png" alt="">用户信息管理
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="table-title-btn blue" @click="openModel({}, 0)">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/add-btn.png" alt="">添加
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <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="">
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="table-title-btn blue" @click="dataInit">
 | 
				
			||||||
 | 
					        查询
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="table-view">
 | 
				
			||||||
 | 
					      <el-table :data="tableList" :row-class-name="tableRowClassName" height="540" style="width: 100%">
 | 
				
			||||||
 | 
					        <el-table-column prop="userName" v-model="nowData.userName" label="用户名">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="nickName" v-model="nowData.nickName" label="昵称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <el-table-column prop="phonenumber" v-model="nowData.phonenumber" 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, 1)">
 | 
				
			||||||
 | 
					                <img src="../../assets/manageImg/table-edit.png" alt="">编辑
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					              <div class="table-operate red" @click="openPassword(scope.row, 1)">
 | 
				
			||||||
 | 
					                <img src="../../assets/manageImg/table-edit1.png" alt="">修改密码
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </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>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <el-dialog title="提示" top="10vh" :visible.sync="passwordModel" width="460px" 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  w-400">
 | 
				
			||||||
 | 
					            <div class="input-title">原密码</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="pwdData.oldPassword" placeholder="请输入原密码">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input  w-400">
 | 
				
			||||||
 | 
					            <div class="input-title">新密码</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="pwdData.password" placeholder="请输入新密码">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input  w-400">
 | 
				
			||||||
 | 
					            <div class="input-title">确认密码</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="confirmPwd" placeholder="请输入确认密码">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <!-- <div class="manage-right">
 | 
				
			||||||
 | 
					           
 | 
				
			||||||
 | 
					              </div> -->
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					        <div class="vrcode-btn blue-btn w-100" @click="confirmPwdBtn">确定</div>
 | 
				
			||||||
 | 
					        <div class="vrcode-btn cancle-btn w-100" @click="passwordModel = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					    <el-dialog title="提示" top="10vh" :visible.sync="addDeviceModel" width="460px" class="vrcode-model manage-model"
 | 
				
			||||||
 | 
					      :append-to-body="true" :close-on-click-modal="false">
 | 
				
			||||||
 | 
					      <div class="vrcode-model-title">
 | 
				
			||||||
 | 
					        添加设备
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="vrcode-content">
 | 
				
			||||||
 | 
					        <div class="manage-left">
 | 
				
			||||||
 | 
					          <div class="manage-input  w-400">
 | 
				
			||||||
 | 
					            <div class="input-title">设备code码</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="openData.deviceId" placeholder="请输入设备code码">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <!-- <div class="manage-input  w-400">
 | 
				
			||||||
 | 
					            <div class="input-title">设备类型</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="openData.password" placeholder="请输入新密码">
 | 
				
			||||||
 | 
					          </div> -->
 | 
				
			||||||
 | 
					          <div class="manage-input-sel w-400" 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>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					              <el-dropdown-menu slot="dropdown" class="manage-dropdown w-400">
 | 
				
			||||||
 | 
					                <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  w-400">
 | 
				
			||||||
 | 
					            <div class="input-title">排序</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="openData.equipmentStatu" placeholder="请输入排序">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <!-- <div class="manage-right">
 | 
				
			||||||
 | 
					           
 | 
				
			||||||
 | 
					              </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="addDeviceModel = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					    <el-dialog title="提示" top="10vh" :visible.sync="addModel" width="760px" class="vrcode-model manage-model"
 | 
				
			||||||
 | 
					      :append-to-body="true" :close-on-click-modal="false">
 | 
				
			||||||
 | 
					      <div class="vrcode-model-title">
 | 
				
			||||||
 | 
					        {{ modelName }}
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="vrcode-content">
 | 
				
			||||||
 | 
					        <div class="manage-left">
 | 
				
			||||||
 | 
					          <div class="manage-input w-350">
 | 
				
			||||||
 | 
					            <div class="input-title">用户名</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.userName" placeholder="请输入用户名">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input w-350">
 | 
				
			||||||
 | 
					            <div class="input-title">手机号</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.phonenumber" placeholder="请输入手机号">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="manage-right">
 | 
				
			||||||
 | 
					          <div class="manage-input  w-350">
 | 
				
			||||||
 | 
					            <div class="input-title">昵称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.nickName" placeholder="请输入昵称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="manage-input-sel w-350" style="margin: 0;">
 | 
				
			||||||
 | 
					            <div class="input-title">角色</div>
 | 
				
			||||||
 | 
					            <el-dropdown @command="handleCommand">
 | 
				
			||||||
 | 
					              <div class="el-dropdown-link">
 | 
				
			||||||
 | 
					                <input v-model="role" 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 w-350">
 | 
				
			||||||
 | 
					                <el-dropdown-item v-for="item, index in typeSelList
 | 
				
			||||||
 | 
					                " :key="index" :command="item.label">{{ item.label }}</el-dropdown-item>
 | 
				
			||||||
 | 
					              </el-dropdown-menu>
 | 
				
			||||||
 | 
					            </el-dropdown>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <!-- <div class="manage-input  w-180">
 | 
				
			||||||
 | 
					            <div class="input-title">关联设备ID</div>
 | 
				
			||||||
 | 
					            <input type="text" :title="nowData.device" v-model="nowData.device" disabled placeholder="请输入关联设备ID">
 | 
				
			||||||
 | 
					          </div> -->
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="vrcode-content" style="padding-top: 0;" v-if="modelName!='添加'">
 | 
				
			||||||
 | 
					        <div class="manage-left">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="manage-right">
 | 
				
			||||||
 | 
					          <div class="table-title-btn blue" @click="openaddDeviceModel">
 | 
				
			||||||
 | 
					            添加
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="table-view" style="margin-top: 5px;"  v-if="modelName!='添加'">
 | 
				
			||||||
 | 
					        <el-table :data="nowData.equipments" :row-class-name="tableRowClassName" height="300" style="width: 100%">
 | 
				
			||||||
 | 
					          <el-table-column prop="deviceId" v-model="nowData.userName" label="设备code码">
 | 
				
			||||||
 | 
					          </el-table-column>
 | 
				
			||||||
 | 
					          <el-table-column prop="equipmentName" v-model="nowData.nickName" label="设备类型">
 | 
				
			||||||
 | 
					            <template slot-scope="scope">
 | 
				
			||||||
 | 
					              <div>{{ getEquipmentName(scope.row.equipmentName) }}</div>
 | 
				
			||||||
 | 
					            </template>
 | 
				
			||||||
 | 
					          </el-table-column>
 | 
				
			||||||
 | 
					          <el-table-column prop="equipmentStatu" v-model="nowData.phonenumber" label="排序">
 | 
				
			||||||
 | 
					          </el-table-column>
 | 
				
			||||||
 | 
					          <el-table-column label="操作">
 | 
				
			||||||
 | 
					            <template slot-scope="scope">
 | 
				
			||||||
 | 
					              <div class="table-flex">
 | 
				
			||||||
 | 
					                <el-popconfirm @confirm="delDevice(scope.row, scope.$index)" title="这一段内容确定删除吗?" icon-color="red">
 | 
				
			||||||
 | 
					                  <div class="table-operate red" slot="reference">
 | 
				
			||||||
 | 
					                    <img src="../../assets/manageImg/table-delete.png" alt="">删除
 | 
				
			||||||
 | 
					                  </div>
 | 
				
			||||||
 | 
					                </el-popconfirm>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </template>
 | 
				
			||||||
 | 
					          </el-table-column>
 | 
				
			||||||
 | 
					        </el-table>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					        <div class="vrcode-btn blue-btn w-100" @click="confirmEdit">确定</div>
 | 
				
			||||||
 | 
					        <div class="vrcode-btn cancle-btn w-100" @click="addModel = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      currentPage: 1,
 | 
				
			||||||
 | 
					      pageSize: 10,
 | 
				
			||||||
 | 
					      tableList: [],
 | 
				
			||||||
 | 
					      total: 0,
 | 
				
			||||||
 | 
					      modelName: '添加',
 | 
				
			||||||
 | 
					      addModel: false,//编辑弹窗
 | 
				
			||||||
 | 
					      passwordModel: false,//修改密码弹窗
 | 
				
			||||||
 | 
					      addDeviceModel: false,//添加设备弹窗
 | 
				
			||||||
 | 
					      nowData: {
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      role: '',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      openData: {},
 | 
				
			||||||
 | 
					      searchName: '',
 | 
				
			||||||
 | 
					      deviceList: [],
 | 
				
			||||||
 | 
					      pwdData: {
 | 
				
			||||||
 | 
					        "oldPassword": "",
 | 
				
			||||||
 | 
					        "password": "",
 | 
				
			||||||
 | 
					        "id": ''
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      confirmPwd: '',
 | 
				
			||||||
 | 
					      typeSelList: [{ label: '管理员', value: 1, }, { label: '用户', value: 2, }],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      deviceType:'',
 | 
				
			||||||
 | 
					      deviceSel: [{ label: '控制器', value: 10, }, { label: '施肥机', value: 1, }, { label: '气象站', value:30, }],
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() { this.dataInit() },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    dataInit() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      this.pageSize = 10
 | 
				
			||||||
 | 
					      this.currentPage = 1
 | 
				
			||||||
 | 
					      setTimeout(() => {
 | 
				
			||||||
 | 
					        this.getData()
 | 
				
			||||||
 | 
					      }, 0);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    addDevice() {
 | 
				
			||||||
 | 
					      if (!this.openData.deviceId) {
 | 
				
			||||||
 | 
					        this.$message.error('设备code码还未填写');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!this.openData.equipmentName) {
 | 
				
			||||||
 | 
					        this.$message.error('设备类型还未选择');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!this.openData.equipmentStatu) {
 | 
				
			||||||
 | 
					        this.$message.error('排序还未填写');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      // if(this.modelName=='添加'){
 | 
				
			||||||
 | 
					      //   this.nowData.equipments.push(this.openData)
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
 | 
					      // }else{
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
 | 
					      // }
 | 
				
			||||||
 | 
					        this.api.addUserByid({...this.openData,userId:this.nowData.id}).then(res=>{
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					          if (res.data.code == 200) {
 | 
				
			||||||
 | 
					            this.nowData.equipments.push({...this.openData,userId:this.nowData.id})
 | 
				
			||||||
 | 
					          this.addDeviceModel=false
 | 
				
			||||||
 | 
					          this.getData()
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    //弹窗删除设备
 | 
				
			||||||
 | 
					    delDevice(item, index) {
 | 
				
			||||||
 | 
					      var data = { deviceId: item.deviceId }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      this.api.delUserByid(data).then(res => {
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.nowData.equipments.splice(index, 1)
 | 
				
			||||||
 | 
					          this.getData()
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getEquipmentName(e) {
 | 
				
			||||||
 | 
					      if (e == 10) {
 | 
				
			||||||
 | 
					        return '控制器'
 | 
				
			||||||
 | 
					      } else if (e == '1') {
 | 
				
			||||||
 | 
					        return '施肥机'
 | 
				
			||||||
 | 
					      } else if (e == '30') {
 | 
				
			||||||
 | 
					        return '气象站'
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        return ''
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getData() {
 | 
				
			||||||
 | 
					      var data = {
 | 
				
			||||||
 | 
					        page: this.currentPage,
 | 
				
			||||||
 | 
					        pageSize: this.pageSize,
 | 
				
			||||||
 | 
					        nickName: this.searchName
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      this.api.adminAll(data).then(res => {
 | 
				
			||||||
 | 
					        this.loading.close()
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.tableList = res.data.data.user
 | 
				
			||||||
 | 
					          this.total = res.data.data.total
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    confirmEdit() {
 | 
				
			||||||
 | 
					      if (!this.nowData.userName) {
 | 
				
			||||||
 | 
					        this.$message.error('用户名还未填写');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!this.nowData.phonenumber) {
 | 
				
			||||||
 | 
					        this.$message.error('手机号还未填写');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!this.nowData.nickName) {
 | 
				
			||||||
 | 
					        this.$message.error('昵称还未填写');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!this.nowData.role) {
 | 
				
			||||||
 | 
					        this.$message.error('角色还未选择');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					      if (this.modelName == '添加') {
 | 
				
			||||||
 | 
					        this.api.addUser(this.nowData).then(res=>{
 | 
				
			||||||
 | 
					          if (res.data.code == 200) {
 | 
				
			||||||
 | 
					            this.getData()
 | 
				
			||||||
 | 
					            this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        if (!this.nowData.equipments.length) {
 | 
				
			||||||
 | 
					        this.$message.error('请添加一个设备');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					        this.api.updateUser(this.nowData).then(res => {
 | 
				
			||||||
 | 
					          if (res.data.code == 200) {
 | 
				
			||||||
 | 
					            this.getData()
 | 
				
			||||||
 | 
					            this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getRole(e) {
 | 
				
			||||||
 | 
					      if (e == '管理员') {
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        return 2
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleCommand(e) {
 | 
				
			||||||
 | 
					      this.nowData.role = this.getRole(e)
 | 
				
			||||||
 | 
					      this.role = e
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getDeviceType(e) {
 | 
				
			||||||
 | 
					      if (e == '控制器') {
 | 
				
			||||||
 | 
					        return 10
 | 
				
			||||||
 | 
					      } else if(e == '施肥机'){
 | 
				
			||||||
 | 
					        return 1
 | 
				
			||||||
 | 
					      } else if(e == '气象站'){
 | 
				
			||||||
 | 
					        return 30
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleCommand1(e) {
 | 
				
			||||||
 | 
					      this.openData.equipmentName = this.getDeviceType(e)
 | 
				
			||||||
 | 
					      this.deviceType = e
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    confirmPwdBtn() {
 | 
				
			||||||
 | 
					      if (this.confirmPwd != this.pwdData.password) {
 | 
				
			||||||
 | 
					        this.$message.error('两次密码不一致');
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      this.api.updatePwd(this.pwdData).then(res => {
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          this.passwordModel = false
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					          this.passwordModel = false
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openaddDeviceModel(){
 | 
				
			||||||
 | 
					      this.addDeviceModel = true
 | 
				
			||||||
 | 
					      this.openData={}
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openModel(item, type) {
 | 
				
			||||||
 | 
					      if (type == 0) {
 | 
				
			||||||
 | 
					        this.modelName = '添加'
 | 
				
			||||||
 | 
					        this.addModel = true
 | 
				
			||||||
 | 
					        this.nowData = {
 | 
				
			||||||
 | 
					          equipments: [],
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        this.role = ''
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        this.modelName = '编辑'
 | 
				
			||||||
 | 
					        this.addModel = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // const deviceIds = this.deviceList.map(device => device.deviceId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // // 使用 join 方法将 deviceId 连接成一个字符串,以逗号隔开
 | 
				
			||||||
 | 
					        // const deviceIdString = deviceIds.join(',');
 | 
				
			||||||
 | 
					        this.nowData = JSON.parse(JSON.stringify(item))
 | 
				
			||||||
 | 
					        if (this.nowData.role == 1) {
 | 
				
			||||||
 | 
					          this.role = '管理员'
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          this.role = '用户'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if(!this.nowData.role){
 | 
				
			||||||
 | 
					          this.nowData.role=2
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openPassword(item) {
 | 
				
			||||||
 | 
					      this.pwdData = {
 | 
				
			||||||
 | 
					        "oldPassword": "",
 | 
				
			||||||
 | 
					        "password": "",
 | 
				
			||||||
 | 
					        "id": item.id
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      this.passwordModel = true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleSizeChange(val) {
 | 
				
			||||||
 | 
					      this.pageSize = val
 | 
				
			||||||
 | 
					      setTimeout(() => {
 | 
				
			||||||
 | 
					        this.getData()
 | 
				
			||||||
 | 
					      }, 0);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    handleCurrentChange(val) {
 | 
				
			||||||
 | 
					      this.currentPage = val
 | 
				
			||||||
 | 
					      setTimeout(() => {
 | 
				
			||||||
 | 
					        this.getData()
 | 
				
			||||||
 | 
					      }, 0);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
							
								
								
									
										83
									
								
								src/views/manage/videoManage.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,83 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="videoManage manage-page">
 | 
				
			||||||
 | 
					    <div class="flex-view flex-title">
 | 
				
			||||||
 | 
					      <div class="table-title">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/videoManage.png" alt="">摄像头信息管理
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="table-title-btn blue" @click="addModel=true">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/add-btn.png" alt="">添加
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="table-view">
 | 
				
			||||||
 | 
					      <el-table :data="tableData" :row-class-name="tableRowClassName" height="620" style="width: 100%">
 | 
				
			||||||
 | 
					        <el-table-column prop="data1" label="摄像头名称">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <el-table-column label="操作">
 | 
				
			||||||
 | 
					          <template slot-scope="scope">
 | 
				
			||||||
 | 
					            <div class="table-flex">
 | 
				
			||||||
 | 
					              <div class="table-operate blue"  @click="addModel=true">
 | 
				
			||||||
 | 
					                <img src="../../assets/manageImg/table-edit.png" alt="">编辑
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					      </el-table>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <el-dialog title="提示" top="10vh" :visible.sync="addModel" width="560px" 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">摄像头名称</div>
 | 
				
			||||||
 | 
					                        <input type="text" placeholder="请输入设备code码">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    <div class="manage-input">
 | 
				
			||||||
 | 
					                        <div class="input-title">公司名称</div>
 | 
				
			||||||
 | 
					                        <input type="text" placeholder="请输入品种">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					              <div class="manage-right">
 | 
				
			||||||
 | 
					                <div class="manage-input">
 | 
				
			||||||
 | 
					                        <div class="input-title">摄像头appkey</div>
 | 
				
			||||||
 | 
					                        <input type="text" placeholder="请输入设备code码">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    <div class="manage-input">
 | 
				
			||||||
 | 
					                        <div class="input-title">摄像头secert</div>
 | 
				
			||||||
 | 
					                        <input type="text" placeholder="请输入品种">
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					                <div class="vrcode-btn blue-btn w-100" @click="addModel = false">确定</div>
 | 
				
			||||||
 | 
					                <div class="vrcode-btn cancle-btn w-100" @click="addModel = false">取消</div>
 | 
				
			||||||
 | 
					            </span>
 | 
				
			||||||
 | 
					        </el-dialog>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      tableData: [{ data1: 'AD548695' }],
 | 
				
			||||||
 | 
					      addModel:false,
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() { },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
							
								
								
									
										187
									
								
								src/views/manage/weatherData.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,187 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <div class="videoManage manage-page ">
 | 
				
			||||||
 | 
					    <div class="flex-view flex-title">
 | 
				
			||||||
 | 
					      <div class="table-title">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/deviceManage.png" alt="">设备绑定气象站数据
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="table-title-btn blue" @click="openModel({}, 0)">
 | 
				
			||||||
 | 
					        <img src="../../assets/manageImg/add-btn.png" alt="">添加
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="table-view">
 | 
				
			||||||
 | 
					      <el-table :data="tableData" :row-class-name="tableRowClassName" height="620" style="width: 100%">
 | 
				
			||||||
 | 
					        <el-table-column prop="deviceId" label="关联气象站设备code码">
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					        <!-- <el-table-column prop="data2" label="关联气象站设备名称">
 | 
				
			||||||
 | 
					        </el-table-column> -->
 | 
				
			||||||
 | 
					        <el-table-column prop="deviceName" 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, 1)">
 | 
				
			||||||
 | 
					                <img src="../../assets/manageImg/table-edit.png" alt="">编辑
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					              <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="">删除
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					              </el-popconfirm>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					        </el-table-column>
 | 
				
			||||||
 | 
					      </el-table>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <el-dialog title="提示" top="10vh" :visible.sync="addModel" width="564px" class="vrcode-model manage-model"
 | 
				
			||||||
 | 
					      :append-to-body="true">
 | 
				
			||||||
 | 
					      <div class="vrcode-model-title">
 | 
				
			||||||
 | 
					        {{ modelName }}
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="vrcode-content">
 | 
				
			||||||
 | 
					        <div class="manage-left">
 | 
				
			||||||
 | 
					          <!-- <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">关联气象站设备code码</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.deviceId" :disabled="modelName == '编辑' ? true : false"
 | 
				
			||||||
 | 
					              placeholder="请输入设备code码">
 | 
				
			||||||
 | 
					          </div> -->
 | 
				
			||||||
 | 
					          <div class="manage-input-sel">
 | 
				
			||||||
 | 
					            <div class="input-title">关联气象站设备code码</div>
 | 
				
			||||||
 | 
					            <el-dropdown @command="handleCommand">
 | 
				
			||||||
 | 
					              <div class="el-dropdown-link">
 | 
				
			||||||
 | 
					                <input v-model="nowData.deviceId" type="text" class="input-input" placeholder="请选择气象站设备code码">
 | 
				
			||||||
 | 
					                <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 typeSelList
 | 
				
			||||||
 | 
					                " :key="index" :command="item.deviceId">{{ item.deviceTypeName}}</el-dropdown-item>
 | 
				
			||||||
 | 
					              </el-dropdown-menu>
 | 
				
			||||||
 | 
					            </el-dropdown>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="manage-right">
 | 
				
			||||||
 | 
					          <div class="manage-input">
 | 
				
			||||||
 | 
					            <div class="input-title">关联气象站名称</div>
 | 
				
			||||||
 | 
					            <input type="text" v-model="nowData.deviceName" placeholder="请输入气象站名称">
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <span slot="footer" class="dialog-footer">
 | 
				
			||||||
 | 
					        <div class="vrcode-btn blue-btn w-100" @click="confirmBtn">确定</div>
 | 
				
			||||||
 | 
					        <div class="vrcode-btn cancle-btn w-100" @click="addModel = false">取消</div>
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					    </el-dialog>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      tableData: [],
 | 
				
			||||||
 | 
					      addModel: false,
 | 
				
			||||||
 | 
					      nowData: { deviceId: '', deviceName: '' },
 | 
				
			||||||
 | 
					      modelName: '添加',
 | 
				
			||||||
 | 
					      typeSelList: [],
 | 
				
			||||||
 | 
					      TypeSel: '',
 | 
				
			||||||
 | 
					      selId:'',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() { this.dataInit() },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    dataInit() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      var user = JSON.parse(localStorage.getItem('userInfo'))
 | 
				
			||||||
 | 
					      this.api.selUserbyid(user.userid).then(res => {
 | 
				
			||||||
 | 
					        this.typeSelList=[] 
 | 
				
			||||||
 | 
					        if (res.data.code == 200) {
 | 
				
			||||||
 | 
					          this.tableData = res.data.data.equipments
 | 
				
			||||||
 | 
					          res.data.data.devices.forEach((el,index)=>{
 | 
				
			||||||
 | 
					            if(el.deviceName==10){
 | 
				
			||||||
 | 
					              this.typeSelList.push(el)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    openModel(item, type) {
 | 
				
			||||||
 | 
					      if (type == 0) {
 | 
				
			||||||
 | 
					        this.modelName = '添加'
 | 
				
			||||||
 | 
					        this.addModel = true
 | 
				
			||||||
 | 
					        this.nowData= { deviceId: '', deviceName: '' }
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        this.modelName = '编辑'
 | 
				
			||||||
 | 
					        this.nowData = JSON.parse(JSON.stringify(item))
 | 
				
			||||||
 | 
					        this.addModel = true
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    confirmBtn() {
 | 
				
			||||||
 | 
					      this.loading = this.$loading({
 | 
				
			||||||
 | 
					        lock: true,
 | 
				
			||||||
 | 
					        text: '加载中',
 | 
				
			||||||
 | 
					        spinner: 'el-icon-loading',
 | 
				
			||||||
 | 
					        background: 'rgba(0, 0, 0, 0.7)'
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      var user = JSON.parse(localStorage.getItem('userInfo'))
 | 
				
			||||||
 | 
					      var data = { ...this.nowData, userId: user.userid }
 | 
				
			||||||
 | 
					      if (this.modelName == '编辑') {
 | 
				
			||||||
 | 
					        this.api.updatephoneeqData(data).then(res => {
 | 
				
			||||||
 | 
					          this.loading.close()
 | 
				
			||||||
 | 
					          if (res.data.code == 200) {
 | 
				
			||||||
 | 
					            this.dataInit()
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        this.api.addphoneeqData(data).then(res => {
 | 
				
			||||||
 | 
					          this.loading.close()
 | 
				
			||||||
 | 
					          if (res.data.code == 200) {
 | 
				
			||||||
 | 
					            this.dataInit()
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					            this.addModel = false
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getData1(data) {
 | 
				
			||||||
 | 
					            var name = ''
 | 
				
			||||||
 | 
					            this.typeSelList.forEach((el, index) => {
 | 
				
			||||||
 | 
					                if (el.deviceId == data) {
 | 
				
			||||||
 | 
					                    name = el.deviceTypeName
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					            return name
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    handleCommand(e) {
 | 
				
			||||||
 | 
					     this.nowData.deviceId= e
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					confirmDel(item){
 | 
				
			||||||
 | 
					  var data={id:item.id}
 | 
				
			||||||
 | 
					  this.api.delphoneeqData(data).then(res=>{
 | 
				
			||||||
 | 
					    if (res.data.code == 200) {
 | 
				
			||||||
 | 
					            this.dataInit()
 | 
				
			||||||
 | 
					            this.$message.success(res.data.msg);
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.$message.error(res.data.msg);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					    tableRowClassName({ row, rowIndex }) {
 | 
				
			||||||
 | 
					      if (rowIndex % 2 == 1) {
 | 
				
			||||||
 | 
					        return 'warning-row';
 | 
				
			||||||
 | 
					      } else if (rowIndex % 2 == 0) {
 | 
				
			||||||
 | 
					        return 'success-row';
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return '';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss"></style>
 | 
				
			||||||
@ -528,8 +528,8 @@ export default {
 | 
				
			|||||||
            //选择内容
 | 
					            //选择内容
 | 
				
			||||||
            typeSelList: [{ name: '1#平均空气温度', value: 1, },
 | 
					            typeSelList: [{ name: '1#平均空气温度', value: 1, },
 | 
				
			||||||
            { name: '2#平均空气温度', value: 2, },
 | 
					            { name: '2#平均空气温度', value: 2, },
 | 
				
			||||||
            { name: '1#光亮度', value: 3, },
 | 
					            { name: '1#平均光亮度', value: 3, },
 | 
				
			||||||
            { name: '1#二氧化碳', value: 4, },
 | 
					            { name: '1#平均二氧化碳', value: 4, },
 | 
				
			||||||
            { name: '1#平均土壤温度', value: 5, },
 | 
					            { name: '1#平均土壤温度', value: 5, },
 | 
				
			||||||
            { name: '1#平均土壤湿度', value: 6, },],
 | 
					            { name: '1#平均土壤湿度', value: 6, },],
 | 
				
			||||||
            typeSelList1: [{ name: '大于(>)', value: 1, },
 | 
					            typeSelList1: [{ name: '大于(>)', value: 1, },
 | 
				
			||||||
 | 
				
			|||||||