This commit is contained in:
SelfRidicule 2024-08-22 18:30:58 +08:00
parent ddd03bca87
commit 2ef2928f3a
8 changed files with 622 additions and 59 deletions

View File

@ -27,4 +27,56 @@ export function getOpenDoorRecordRq(data) {
method: "post", method: "post",
data data
}); });
} }
// 获取所有房间
export function getAllRoomInfoRq() {
return request({
url: `/api/wisdom/getAllRoomInfo`,
method: "post",
});
}
// 根据房间获取对应设备列表
export function getAllDeviceInfoByRoomIdRq(id) {
return request({
url: `/api/wisdom/getAllDeviceInfoByRoomId?id=${id}`,
method: "get",
});
}
// 根据房间获取对应情景列表
export function getAllPanelInfoByRoomIdRq(id) {
return request({
url: `/api/wisdom/getAllPanelInfoByRoomId?id=${id}`,
method: "get",
});
}
// 根据设备id调用对接接口
//{
// "deviceId": 15,
// "actionArg": true,
// "bir": 74,
// "colourTemperature": 31,
// "coverType": "test_1f24337e3bf8"
// }
export function callApiByDeviceIdRq(data) {
return request({
url: `/api/wisdom/callApiByDeviceId`,
method: "post",
data
});
}
// 查询设备详情
export function getDeviceInfoRq(id) {
return request({
url: `/api/wisdom/getDeviceInfo?id=${id}`,
method: "get",
});
}

View File

@ -6,13 +6,13 @@ App({
parkId : '26', // 园区id parkId : '26', // 园区id
parkName : '长阳智会云控', // 园区名称 parkName : '长阳智会云控', // 园区名称
// 本地测试 // 本地测试
// DOMAIN_NAME_PREFIX: 'http://192.168.0.11', DOMAIN_NAME_PREFIX: 'http://192.168.0.30',
// DOMAIN_NAME: 'http://192.168.0.11:9227', //接口域名 DOMAIN_NAME: 'http://192.168.0.30:9227', //接口域名
// IMG_NAME: 'http://192.168.0.11:9227', IMG_NAME: 'http://192.168.0.30:9227',
// 生产 // 生产
DOMAIN_NAME_PREFIX: 'https://www.chuangzhikj.com', // DOMAIN_NAME_PREFIX: 'https://www.chuangzhikj.com',
DOMAIN_NAME: 'https://www.chuangzhikj.com/saas-ics', //接口域名 // DOMAIN_NAME: 'https://www.chuangzhikj.com/saas-ics', //接口域名
IMG_NAME: 'https://www.chuangzhikj.com/saas-ics', // IMG_NAME: 'https://www.chuangzhikj.com/saas-ics',
globals: { globals: {
refreshMyPages: false, refreshMyPages: false,
homedata: {}, homedata: {},

View File

@ -8,8 +8,8 @@ import {
} from "../../../utils/util.js" } from "../../../utils/util.js"
import { import {
cancelOrderRq getAllRoomInfoRq
} from "../../../api/meeting/meetingRoom.js" } from "../../../api/meeting/equipment.js"
Page({ Page({
@ -18,6 +18,7 @@ Page({
*/ */
data: { data: {
IMG_NAME: app.IMG_NAME, IMG_NAME: app.IMG_NAME,
roomList : []
}, },
/** /**
@ -28,13 +29,27 @@ Page({
_this.setData({ _this.setData({
userData: wx.getStorageSync('user'), userData: wx.getStorageSync('user'),
}) })
_this.getData()
},
getData() {
let _this = this
getAllRoomInfoRq().then(res => {
console.log('getAllRoomInfoRq', res);
_this.setData({
roomList : res.rows
})
})
}, },
// 跳转房间 // 跳转房间
jumpRoom(){ jumpRoom(e) {
console.log('jumpRoom' , e);
let id = e.currentTarget.dataset.obj.id
let roomName = e.currentTarget.dataset.obj.meetingName
wx.navigateTo({ wx.navigateTo({
url: '/pages/smartDevice/room/room', url: `/pages/smartDevice/room/room?roomId=${id}&roomName=${roomName}`,
}) })
}, },
@ -50,7 +65,7 @@ Page({
*/ */
onShow() { onShow() {
let _this = this; let _this = this;
}, },
/** /**
@ -87,6 +102,6 @@ Page({
* 用户点击右上角分享 * 用户点击右上角分享
*/ */
onShareAppMessage(e) { onShareAppMessage(e) {
} }
}) })

View File

@ -1,10 +1,10 @@
<view class="containerView public"> <view class="containerView public">
<view class="roomContainer"> <view class="roomContainer">
<view class="roomItem" wx:for="{{10}}" data-obj="{{item}}" bind:tap="jumpRoom"> <view class="roomItem" wx:for="{{roomList}}" data-obj="{{item}}" bind:tap="jumpRoom">
<view class="label">会议室</view> <view class="label">{{item.meetingName}}</view>
<view class="img" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/index/menu-ztyy.png'}});"></view> <view class="img" style="background: no-repeat center/cover url({{IMG_NAME + item.img}});"></view>
<view class="deviceNum">设备数:10</view> <view class="deviceNum">设备数:{{item.deviceNum}}</view>
<view class="sceneNum">场景数:3</view> <view class="sceneNum">场景数:{{item.panelNum}}</view>
</view> </view>
</view> </view>
</view> </view>

View File

@ -14,7 +14,7 @@
border-radius: 10rpx; border-radius: 10rpx;
position: relative; position: relative;
width: 330rpx; width: 330rpx;
height: 260rpx; height: 280rpx;
margin-top: 24rpx; margin-top: 24rpx;
background: white; background: white;

View File

@ -1,5 +1,12 @@
const app = getApp() const app = getApp()
import {
getAllDeviceInfoByRoomIdRq,
getAllPanelInfoByRoomIdRq,
callApiByDeviceIdRq,
getDeviceInfoRq
} from "../../../api/meeting/equipment.js"
Page({ Page({
/** /**
@ -7,37 +14,23 @@ Page({
*/ */
data: { data: {
IMG_NAME: app.IMG_NAME, IMG_NAME: app.IMG_NAME,
roomId: null,
roomName: '',
lockDoor: null,
sceneList: [{ sceneList: [{
name: '茶歇模式', name: '茶歇模式',
url: 'chaxie1.png', url: app.IMG_NAME + '/profile/static/shanghai_changyang/device/scene/' + 'chaxie1.png',
selectUrl: 'chaxie0.png', selectUrl: app.IMG_NAME + '/profile/static/shanghai_changyang/device/scene/' + 'chaxie0.png',
isSelect: false isSelect: false
}, },
{ {
name: '开门模式', name: '开门模式',
url: 'kaimen1.png', url: app.IMG_NAME + '/profile/static/shanghai_changyang/device/scene/' + 'kaimen1.png',
selectUrl: 'kaimen0.png', selectUrl: app.IMG_NAME + '/profile/static/shanghai_changyang/device/scene/' + 'kaimen0.png',
isSelect: false isSelect: false
}, },
{ ],
name: '开门模式', equipmentList: [], // 设备列表
url: 'kaimen1.png',
selectUrl: 'kaimen0.png',
isSelect: false
},
{
name: '开门模式',
url: 'kaimen1.png',
selectUrl: 'kaimen0.png',
isSelect: false
},
{
name: '开门模式',
url: 'kaimen1.png',
selectUrl: 'kaimen0.png',
isSelect: false
}
]
}, },
/** /**
@ -45,21 +38,121 @@ Page({
*/ */
onLoad(options) { onLoad(options) {
let _this = this let _this = this
_this.setData({
...options
})
_this.initScene() // 查询所有设备列表
_this.queryDeviceList()
// 查询情景列表
_this.queryScene()
}, },
initScene() { // 查询情景列表
queryScene() {
let _this = this let _this = this
let sceneList = _this.data.sceneList.map(item => { getAllPanelInfoByRoomIdRq(_this.data.roomId).then(res => {
item.url = app.IMG_NAME + '/profile/static/shanghai_changyang/device/scene/' + item.url console.log('getAllPanelInfoByRoomIdRq', res);
item.selectUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/scene/' + item.selectUrl let sceneList = res.data.map(item => {
return item item.isSelect = false
item.img = app.IMG_NAME + item.img
item.imgOpen = app.IMG_NAME + item.imgOpen
return item
})
_this.setData({
sceneList
})
}) })
_this.setData({ },
sceneList
// 查询所有设备列表
queryDeviceList() {
let _this = this
getAllDeviceInfoByRoomIdRq(_this.data.roomId).then(res => {
console.log('getAllDeviceInfoByRoomIdRq', res);
let equipmentList = res.data.map(item => _this.formatDevice(item))
equipmentList = equipmentList.filter(item => item.type != '门锁')
let lockDoor = res.data.find(item => item.type == '门锁')
_this.setData({
lockDoor,
equipmentList
})
// 查询设备详情
_this.queryDeviceInfo()
}) })
}, },
// 格式化设备数据
formatDevice(item) {
if (item.type == '灯条') {
item.status = false
item.lampCloseUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lamp/' + 'lamp-close.png'
item.lampOpenUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lamp/' + 'lamp-open.png'
item.switchCloseUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lamp/' + 'switch-close.png'
item.switchOpenUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lamp/' + 'switch-open.png'
}
if (item.type == '雾化玻璃') {
item.status = false
item.glassImgUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/glass/glass-close.png'
item.glassImgActivityUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/glass/glass-open.png'
item.glassSwitchImgUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/glass/switch-close.png'
item.glassSwitchImgActivityUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/glass/switch-open.png'
}
if (item.type == '窗帘') {
item.subtype = 'curtain'
item.status = 'close_cover'
item.equipmentCurtainCurtainTopImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/curtain/curtainTop.png'
item.equipmentCurtainWindowImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/curtain/window.png'
item.equipmentCurtainCordFabricImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/curtain/cordFabric.png'
item.curtainSwitchOpenImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/curtain/switch-open.png'
item.curtainSwitchCloseImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/curtain/switch-close.png'
item.curtainStopImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/curtain/stop-black.png'
}
if (item.type == '插座') {
item.status = false
item.socketImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/socket/socket.png'
item.socketSwitchCloseImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/socket/switch-close.png'
item.socketSwitchOpenImg = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/socket/switch-open.png'
}
if (item.type == '调光灯') {
item.status = false
item.lampCloseUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lamp/' + 'lamp-close.png'
item.lampOpenUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lamp/' + 'lamp-open.png'
item.switchCloseUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lamp/' + 'switch-close.png'
item.switchOpenUrl = app.IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lamp/' + 'switch-open.png'
}
return item
},
// 查询设备详情
queryDeviceInfo() {
let _this = this
let equipmentList = _this.data.equipmentList
for (let i = 0; i < equipmentList.length; i++) {
let equipmentData = equipmentList[i];
if (equipmentData.type == '窗帘' || equipmentData.type == '门锁') {
continue
}
//
getDeviceInfoRq(equipmentData.id).then(res => {
console.log('getDeviceInfoRq', equipmentData.type, res);
if (equipmentData.type == '灯条') {
equipmentData.status = res.on
}
if (equipmentData.type == '雾化玻璃') {
equipmentData.status = res.on
}
if (equipmentData.type == '插座') {
equipmentData.status = res.on
}
if (equipmentData.type == '调光灯') {
equipmentData.status = res.on
}
_this.setData({
equipmentList
})
})
}
},
// 选择情景 // 选择情景
selectScene(e) { selectScene(e) {
@ -68,7 +161,7 @@ Page({
let obj = e.currentTarget.dataset.obj let obj = e.currentTarget.dataset.obj
let sceneList = _this.data.sceneList let sceneList = _this.data.sceneList
sceneList = sceneList.map(item => { sceneList = sceneList.map(item => {
if (item.name == obj.name) { if (item.id == obj.id) {
item.isSelect = !item.isSelect item.isSelect = !item.isSelect
} else { } else {
item.isSelect = false item.isSelect = false
@ -80,6 +173,109 @@ Page({
}) })
}, },
// 灯控
lampCall(e) {
console.log('lampCall', e);
let _this = this
let id = e.currentTarget.dataset.obj.id
let equipmentList = _this.data.equipmentList
let equipmentData = equipmentList.find(item => item.id == id)
equipmentData.status = !equipmentData.status
_this.setData({
equipmentList
})
// 调用设备接口
_this.callApiByDevice({
"deviceId": equipmentData.id,
"actionArg": equipmentData.status,
})
},
// 窗帘
curtainSwitch(e) {
console.log('curtainSwitch', e);
let _this = this
let id = e.currentTarget.dataset.obj.id
let status = e.currentTarget.dataset.status
let equipmentList = _this.data.equipmentList
let equipmentData = equipmentList.find(item => item.id == id)
equipmentData.status = status
_this.setData({
equipmentList
})
// 调用设备接口
_this.callApiByDevice({
"deviceId": equipmentData.id,
"coverType": equipmentData.status,
})
},
// 雾化玻璃
glassSwitch(e) {
console.log('glassSwitch', e);
let _this = this
let id = e.currentTarget.dataset.obj.id
let equipmentList = _this.data.equipmentList
let equipmentData = equipmentList.find(item => item.id == id)
equipmentData.status = !equipmentData.status
_this.setData({
equipmentList
})
// 调用设备接口
_this.callApiByDevice({
"deviceId": equipmentData.id,
"actionArg": equipmentData.status,
})
},
// 调光灯
dimmingSwitch(e) {
console.log('dimmingSwitch', e);
let _this = this
let id = e.currentTarget.dataset.obj.id
let equipmentList = _this.data.equipmentList
let equipmentData = equipmentList.find(item => item.id == id)
equipmentData.status = !equipmentData.status
_this.setData({
equipmentList
})
// 调用设备接口
_this.callApiByDevice({
"deviceId": equipmentData.id,
"actionArg": equipmentData.status,
})
},
// 插座开关
socketSwitch(e) {
console.log('socketSwitch', e);
let _this = this
let id = e.currentTarget.dataset.obj.id
let equipmentList = _this.data.equipmentList
let equipmentData = equipmentList.find(item => item.id == id)
equipmentData.status = !equipmentData.status
_this.setData({
equipmentList
})
// 调用设备接口
_this.callApiByDevice({
"deviceId": equipmentData.id,
"actionArg": equipmentData.status,
})
},
// 调用设备接口
callApiByDevice(data) {
callApiByDeviceIdRq(data).then(res => {
console.log('callApiByDeviceIdRq', res);
})
},
/** /**
* 生命周期函数--监听页面初次渲染完成 * 生命周期函数--监听页面初次渲染完成
*/ */

View File

@ -4,14 +4,24 @@
<!-- 顶部名称 --> <!-- 顶部名称 -->
<view class="topHead"> <view class="topHead">
<view class="logoImg" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/shanghai_changyang/index/is_logo.png'}});"></view> <view class="logoImg" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/shanghai_changyang/index/is_logo.png'}});"></view>
<view class="title">大会议室</view> <view class="title">{{roomName}}</view>
</view> </view>
<view class="leftLineTitle" wx:if="{{lockDoor}}">门锁</view>
<view class="lockView">
<!-- <view class="lockImg" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lock/lock.png'}});"></view> -->
<view class="lockSwitchView" wx:if="{{lockDoor}}">
<view class="switchImg" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/shanghai_changyang/device/equipment/lock/lockSwitch.png'}});"></view>
<view class="label">点击开门</view>
</view>
</view>
<view class="leftLineTitle">情景模式</view> <view class="leftLineTitle">情景模式</view>
<view class="sceneView"> <view class="sceneView">
<view bind:tap="selectScene" data-obj="{{item}}" class="sceneItem {{item.isSelect ? 'activity' : ''}}" wx:for="{{sceneList}}" wx:for-item="item" wx:key="*this"> <view bind:tap="selectScene" data-obj="{{item}}" class="sceneItem {{item.isSelect ? 'activity' : ''}}" wx:for="{{sceneList}}" wx:for-item="item" wx:key="*this">
<view class="img" style="background: no-repeat center/cover url({{item.isSelect ? item.selectUrl : item.url }});"></view> <view class="img" style="background: no-repeat center/cover url({{item.isSelect ? item.imgOpen : item.img }});"></view>
<view class="label {{item.isSelect ? 'activity' : ''}}">会议模式</view> <view class="label {{item.isSelect ? 'activity' : ''}}">{{item.panelName}}</view>
<view class="point {{item.isSelect ? 'activity' : ''}}"></view> <view class="point {{item.isSelect ? 'activity' : ''}}"></view>
</view> </view>
</view> </view>
@ -19,8 +29,53 @@
<view class="leftLineTitle">设备列表</view> <view class="leftLineTitle">设备列表</view>
</view> </view>
<view class="equipmentList"> <view class="equipmentList">
<view class="equipmentItem" wx:for="{{6}}" wx:for-item="item" wx:key="*this"> <view class="equipmentItem" wx:for="{{equipmentList}}" wx:for-item="item" wx:key="*this">
<view class="equipmentTitle">{{item.equipmentName}}</view>
<!-- 灯控 -->
<view class="equipmentContent" wx:if="{{item.type == '灯条'}}">
<view class="equipmentLampImg" style="background: no-repeat center/cover url({{item.status ? item.lampOpenUrl : item.lampCloseUrl }});"></view>
<view class="equipmentSwitchImg" style="background: no-repeat center/cover url({{item.status ? item.switchOpenUrl : item.switchCloseUrl }});" bind:tap="lampCall" data-obj="{{item}}"></view>
</view>
<!-- 窗帘 -->
<view class="equipmentContent" wx:if="{{item.type == '窗帘'}}">
<view class="equipmentCurtainView">
<view class="equipmentCurtainCurtainTopImg" style="background: no-repeat center/cover url({{item.equipmentCurtainCurtainTopImg}});"></view>
<view class="equipmentCurtainWindowImg" style="background: no-repeat center/cover url({{item.equipmentCurtainWindowImg}});"></view>
<view class="equipmentCurtainCordFabricView left">
<view class="equipmentCurtainCordFabricImg {{item.status == 'open_cover' ? 'open' : ''}} {{item.status == 'close_cover' ? 'close' : ''}} {{item.status == 'stop_cover' ? 'stop' : ''}} {{item.subtype == 'gauze' ? 'opacity' : ''}}" style="background: no-repeat center/cover url({{item.equipmentCurtainCordFabricImg}});">
</view>
</view>
<view class="equipmentCurtainCordFabricView right">
<view class="equipmentCurtainCordFabricImg {{item.status == 'open_cover' ? 'open' : ''}} {{item.status == 'close_cover' ? 'close' : ''}} {{item.status == 'stop_cover' ? 'stop' : ''}} {{item.subtype == 'gauze' ? 'opacity' : ''}}" style="background: no-repeat center/cover url({{item.equipmentCurtainCordFabricImg}});">
</view>
</view>
</view>
<view class="curtainSwitchOpenImg" data-obj="{{item}}" data-status="open_cover" bind:tap="curtainSwitch" style="background: no-repeat center/cover url({{item.curtainSwitchOpenImg}});">
</view>
<view class="curtainSwitchCloseImg" data-obj="{{item}}" data-status="close_cover" bind:tap="curtainSwitch" style="background: no-repeat center/cover url({{item.curtainSwitchCloseImg}});">
</view>
<view class="curtainStopImg" data-obj="{{item}}" data-status="stop_cover" bind:tap="curtainSwitch" style="background: no-repeat center/cover url({{item.curtainStopImg}});">
</view>
</view>
<!-- 雾化 -->
<view class="equipmentContent" wx:if="{{item.type == '雾化玻璃'}}">
<view class="glassImg" style="background: no-repeat center/cover url({{item.status ? item.glassImgActivityUrl : item.glassImgUrl}});"></view>
<view class="glassSwitchImg" style="background: no-repeat center/cover url({{item.status ? item.glassSwitchImgActivityUrl : item.glassSwitchImgUrl}});" bind:tap="glassSwitch" data-obj="{{item}}"></view>
</view>
<!-- 调光灯 -->
<view class="equipmentContent" wx:if="{{item.type == '调光灯'}}">
<view class="equipmentLampImg" style="background: no-repeat center/cover url({{item.status ? item.lampOpenUrl : item.lampCloseUrl }});"></view>
<view class="equipmentSwitchImg" style="background: no-repeat center/cover url({{item.status ? item.switchOpenUrl : item.switchCloseUrl }});" bind:tap="dimmingSwitch" data-obj="{{item}}"></view>
</view>
<!-- 插座 -->
<view class="equipmentContent" wx:if="{{item.type == '插座'}}">
<view class="socketImg" style="background: no-repeat center/cover url({{item.socketImg}});"></view>
<view class="socketSwitchImg" style="background: no-repeat center/cover url({{item.status ? item.socketSwitchOpenImg : item.socketSwitchCloseImg }});" bind:tap="socketSwitch" data-obj="{{item}}"></view>
</view>
</view> </view>
</view> </view>
</view> </view>

View File

@ -36,6 +36,47 @@
margin-top: 60rpx; margin-top: 60rpx;
} }
.lockView {
display: flex;
justify-content: flex-start;
align-items: center;
margin-top: 30rpx;
}
.lockView .lockImg {
width: 188rpx;
height: 134rpx;
}
.lockView .lockSwitchView {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 180rpx;
height: 180rpx;
background: white;
border-radius: 10rpx;
box-shadow: rgba(204, 204, 204, 0.6) 0px 2px 2px 0px;
transition: 0.1s all;
}
.lockView .lockSwitchView:active {
opacity: 0.4;
}
.lockView .lockSwitchView .switchImg {
width: 60rpx;
height: 60rpx;
}
.lockView .lockSwitchView .label {
margin-top: 20rpx;
font-size: 24rpx;
}
.sceneView { .sceneView {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
@ -93,16 +134,220 @@
.equipmentList { .equipmentList {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-evenly; justify-content: space-between;
align-items: center; align-items: center;
padding: 0 30rpx;
} }
.equipmentList .equipmentItem { .equipmentItem {
box-shadow: rgba(214, 214, 214, 0.5) 0px 1px 0px 0px, rgb(238, 238, 238) 0px 1px 2px 0px; box-shadow: rgba(214, 214, 214, 0.5) 0px 1px 0px 0px, rgb(238, 238, 238) 0px 1px 2px 0px;
border-radius: 10rpx; border-radius: 10rpx;
position: relative; position: relative;
width: 330rpx; width: 330rpx;
height: 260rpx; height: 340rpx;
margin-top: 24rpx; margin-top: 24rpx;
background: white; background: white;
}
.equipmentItem .equipmentTitle {
position: absolute;
left: 31rpx;
top: 24rpx;
width: 160rpx;
font-size: 18rpx;
color: #314773;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.equipmentItem .equipmentContent {
width: 100%;
height: 100%;
}
/* 灯控 */
.equipmentContent .equipmentLampImg {
position: absolute;
z-index: 1;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 248rpx;
height: 287rpx;
}
.equipmentContent .equipmentSwitchImg {
position: absolute;
z-index: 2;
bottom: 20rpx;
left: 50%;
transform: translateX(-50%);
width: 88rpx;
height: 88rpx;
}
/* 窗帘 */
.equipmentContent .equipmentCurtainView {
position: absolute;
z-index: 1;
top: 60rpx;
left: 50%;
transform: translateX(-50%);
width: 200rpx;
height: 180rpx;
}
.equipmentContent .equipmentCurtainCurtainTopImg {
position: absolute;
z-index: 10;
top: 0;
left: 0;
width: 200rpx;
height: 20rpx;
}
.equipmentContent .equipmentCurtainWindowImg {
position: absolute;
z-index: 5;
top: 16rpx;
left: 50%;
transform: translateX(-50%);
width: 200rpx;
height: 158rpx;
}
.equipmentContent .equipmentCurtainCordFabricView {
position: absolute;
z-index: 5;
top: 16rpx;
width: 113rpx;
height: 181rpx;
overflow: hidden;
}
.equipmentContent .equipmentCurtainCordFabricImg {
position: absolute;
top: 0;
width: 100%;
height: 100%;
transition: 1s all;
}
.equipmentContent .equipmentCurtainCordFabricImg.opacity {
opacity: 0.6;
}
.equipmentContent .equipmentCurtainCordFabricView.left {
left: 8rpx;
}
.equipmentContent .equipmentCurtainCordFabricView.left .equipmentCurtainCordFabricImg.open {
right: 100%;
}
.equipmentContent .equipmentCurtainCordFabricView.left .equipmentCurtainCordFabricImg.close {
right: 0;
}
.equipmentContent .equipmentCurtainCordFabricView.left .equipmentCurtainCordFabricImg.stop {
right: 50%;
}
.equipmentContent .equipmentCurtainCordFabricView.right {
right: 8rpx;
}
.equipmentContent .equipmentCurtainCordFabricView.right .equipmentCurtainCordFabricImg.open {
left: 100%;
}
.equipmentContent .equipmentCurtainCordFabricView.right .equipmentCurtainCordFabricImg.close {
left: 0;
}
.equipmentContent .equipmentCurtainCordFabricView.right .equipmentCurtainCordFabricImg.stop {
left: 50%;
}
.equipmentContent .curtainSwitchOpenImg {
position: absolute;
z-index: 1;
left: 30rpx;
bottom: 30rpx;
width: 41rpx;
height: 35rpx;
}
.equipmentContent .curtainSwitchCloseImg {
position: absolute;
z-index: 1;
right: 30rpx;
bottom: 30rpx;
width: 41rpx;
height: 35rpx;
}
.equipmentContent .curtainStopImg {
position: absolute;
z-index: 1;
bottom: 22rpx;
left: 50%;
transform: translateX(-50%);
width: 51rpx;
height: 51rpx;
}
/* 雾化玻璃 */
.equipmentContent .glassImg {
position: absolute;
z-index: 1;
top: 77rpx;
left: 50%;
transform: translateX(-50%);
width: 200rpx;
height: 140rpx;
transition: 1s all;
}
.equipmentContent .glassSwitchImg {
position: absolute;
z-index: 1;
bottom: 22rpx;
left: 50%;
transform: translateX(-50%);
width: 104rpx;
height: 48rpx;
}
/* 插座 */
.equipmentContent .socketImg {
position: absolute;
z-index: 1;
top: 77rpx;
left: 50%;
transform: translateX(-50%);
width: 150rpx;
height: 149rpx;
transition: 1s all;
}
.equipmentContent .socketSwitchImg {
position: absolute;
z-index: 1;
bottom: 28rpx;
left: 50%;
transform: translateX(-50%);
width: 104rpx;
height: 48rpx;
} }