|
@@ -4,79 +4,72 @@
|
|
<view class="radar-box">
|
|
<view class="radar-box">
|
|
<view
|
|
<view
|
|
:style="{
|
|
:style="{
|
|
- width: `${length / 200}px`,
|
|
|
|
- height: `${width / 200}px`,
|
|
|
|
- position: 'relative',
|
|
|
|
|
|
+ width: `${length}rpx`,
|
|
|
|
+ height: `${width}rpx`,
|
|
|
|
+ position: 'absolute',
|
|
|
|
+ top: '50%',
|
|
|
|
+ left: '50%',
|
|
|
|
+ transform: `translate(calc(-50% + ${
|
|
|
|
+ xOffset / 2
|
|
|
|
+ }rpx), calc(-50% + ${yOffset / 2}rpx))`,
|
|
|
|
+ border: `9rpx solid #333333`,
|
|
}"
|
|
}"
|
|
- :class="[
|
|
|
|
- width < 25500 && length < 25000
|
|
|
|
- ? 'tranStyle'
|
|
|
|
- : 'center',
|
|
|
|
- ]"
|
|
|
|
|
|
+ class="tranStyle"
|
|
|
|
+ >
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view
|
|
|
|
+ v-for="(item, index) in modules"
|
|
|
|
+ :key="index"
|
|
|
|
+ class="moduleContent"
|
|
>
|
|
>
|
|
<view
|
|
<view
|
|
- v-for="(item, index) in modules"
|
|
|
|
- :key="index"
|
|
|
|
- class="moduleContent"
|
|
|
|
|
|
+ :class="item.type"
|
|
|
|
+ :style="{
|
|
|
|
+ width: `${item.width}rpx`,
|
|
|
|
+ height: `${item.length}rpx`,
|
|
|
|
+ top: `${item.top}rpx`,
|
|
|
|
+ left: `${item.left}rpx`,
|
|
|
|
+ transform: `rotate(${item.rotate}deg)`,
|
|
|
|
+ 'transform-origin': 'center center',
|
|
|
|
+ }"
|
|
|
|
+ @touchmove.prevent="onTouchMove(index, $event)"
|
|
|
|
+ @touchstart="onTouchStart(index, $event)"
|
|
|
|
+ @touchend="onTouchEnd(index, $event)"
|
|
>
|
|
>
|
|
- <view
|
|
|
|
- :class="item.type"
|
|
|
|
- :style="{
|
|
|
|
- width: `${item.width / 2}px`,
|
|
|
|
- height: `${item.length / 2}px`,
|
|
|
|
- top: `${item.top / 2}px`,
|
|
|
|
- left: `${item.left / 2}px`,
|
|
|
|
- transform: `rotate(${item.rotate}deg)`,
|
|
|
|
- 'transform-origin': 'center center',
|
|
|
|
- }"
|
|
|
|
- @touchmove.prevent="onTouchMove(index, $event)"
|
|
|
|
- @touchstart="onTouchStart(index, $event)"
|
|
|
|
- @touchend="onTouchEnd(index, $event)"
|
|
|
|
- >
|
|
|
|
- <image
|
|
|
|
- class="module-img"
|
|
|
|
- :src="`../../static/furnitures/${item.type}.png`"
|
|
|
|
- mode=""
|
|
|
|
- />
|
|
|
|
- </view>
|
|
|
|
|
|
+ <image
|
|
|
|
+ class="module-img"
|
|
|
|
+ :src="`../../static/furnitures/${item.type}.png`"
|
|
|
|
+ mode=""
|
|
|
|
+ />
|
|
</view>
|
|
</view>
|
|
- <template>
|
|
|
|
- <view v-for="item in targetPoints" :key="item.id">
|
|
|
|
- <image
|
|
|
|
- class="action-icon-M"
|
|
|
|
- :style="{
|
|
|
|
- position: 'absolute',
|
|
|
|
- transform: `translate3d(${
|
|
|
|
- item.displayX / 2
|
|
|
|
- }px, ${
|
|
|
|
- -item.displayY / 2
|
|
|
|
- }px, 0) translate(-50%, -50%) scale(${
|
|
|
|
- 1.5 / 2
|
|
|
|
- })`,
|
|
|
|
- zIndex: 9999,
|
|
|
|
- transition: 'transform 1s linear',
|
|
|
|
- willChange: 'transform',
|
|
|
|
- }"
|
|
|
|
- :src="`../../static/${lnbAction}.png`"
|
|
|
|
- mode=""
|
|
|
|
- />
|
|
|
|
- </view>
|
|
|
|
- </template>
|
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
- <!-- <image
|
|
|
|
- class="redar-pic"
|
|
|
|
- src="../../static/rander.png"
|
|
|
|
- mode=""
|
|
|
|
- :style="{
|
|
|
|
- transform:
|
|
|
|
- 'translate(' +
|
|
|
|
- -xOffset / 100 +
|
|
|
|
- 'rpx,' +
|
|
|
|
- -yOffset / 100 +
|
|
|
|
- 'rpx)',
|
|
|
|
- }"
|
|
|
|
- /> -->
|
|
|
|
|
|
+ <template>
|
|
|
|
+ <image
|
|
|
|
+ v-for="item in targetPoints"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ class="action-icon-M"
|
|
|
|
+ :src="`../../static/${lnbAction}.png`"
|
|
|
|
+ :style="{
|
|
|
|
+ position: 'absolute',
|
|
|
|
+ transform: `translate(-50%, -50%) translate3d(${item.displayX}rpx, ${item.displayY}rpx, 0)`,
|
|
|
|
+ transition: 'transform 1s linear',
|
|
|
|
+ willChange: 'transform',
|
|
|
|
+ zIndex: 9999,
|
|
|
|
+ top: '0',
|
|
|
|
+ left: '0',
|
|
|
|
+ width: '50rpx',
|
|
|
|
+ height: '50rpx',
|
|
|
|
+ }"
|
|
|
|
+ />
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <image
|
|
|
|
+ class="redar-pic"
|
|
|
|
+ src="../../static/rander.png"
|
|
|
|
+ mode=""
|
|
|
|
+ />
|
|
</view>
|
|
</view>
|
|
<view class="airbody">
|
|
<view class="airbody">
|
|
<view class="header_top">
|
|
<view class="header_top">
|
|
@@ -414,6 +407,10 @@ export default {
|
|
top: 0,
|
|
top: 0,
|
|
clientIdProp: null,
|
|
clientIdProp: null,
|
|
clientId: null,
|
|
clientId: null,
|
|
|
|
+
|
|
|
|
+ // 重新计算雷达坐标位置
|
|
|
|
+ x_radar: 200,
|
|
|
|
+ y_radar: 200,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
computed: {},
|
|
computed: {},
|
|
@@ -425,10 +422,10 @@ export default {
|
|
const currentY = event.touches[0].clientY;
|
|
const currentY = event.touches[0].clientY;
|
|
const deltaX = Math.round(currentX - startX);
|
|
const deltaX = Math.round(currentX - startX);
|
|
const deltaY = Math.round(currentY - startY);
|
|
const deltaY = Math.round(currentY - startY);
|
|
- let x = Math.round(
|
|
|
|
- this.xxStart + event.currentTarget.offsetLeft * 2
|
|
|
|
- );
|
|
|
|
- let y = Math.round(this.yyEnd - event.currentTarget.offsetTop * 2);
|
|
|
|
|
|
+ // let x = Math.round(
|
|
|
|
+ // this.xxStart + event.currentTarget.offsetLeft * 2
|
|
|
|
+ // );
|
|
|
|
+ // let y = Math.round(this.yyEnd - event.currentTarget.offsetTop * 2);
|
|
|
|
|
|
// 创建新数组避免直接修改原数组
|
|
// 创建新数组避免直接修改原数组
|
|
const updatedModules = [...this.modules];
|
|
const updatedModules = [...this.modules];
|
|
@@ -440,8 +437,8 @@ export default {
|
|
top: Math.round(
|
|
top: Math.round(
|
|
updatedModules[this.draggingIndex].top + deltaY
|
|
updatedModules[this.draggingIndex].top + deltaY
|
|
),
|
|
),
|
|
- x,
|
|
|
|
- y,
|
|
|
|
|
|
+ // x,
|
|
|
|
+ // y,
|
|
};
|
|
};
|
|
|
|
|
|
// Vue 的响应式更新
|
|
// Vue 的响应式更新
|
|
@@ -473,8 +470,8 @@ export default {
|
|
type: featuriesType,
|
|
type: featuriesType,
|
|
width: 0,
|
|
width: 0,
|
|
length: 0,
|
|
length: 0,
|
|
- top: 0,
|
|
|
|
- left: 0,
|
|
|
|
|
|
+ top: 200,
|
|
|
|
+ left: 200,
|
|
rotate: 0,
|
|
rotate: 0,
|
|
};
|
|
};
|
|
switch (featuriesType) {
|
|
switch (featuriesType) {
|
|
@@ -646,6 +643,15 @@ export default {
|
|
},
|
|
},
|
|
|
|
|
|
saveRoom() {
|
|
saveRoom() {
|
|
|
|
+ console.log(this.modules, 9999);
|
|
|
|
+
|
|
|
|
+ if (this.modules.length > 0) {
|
|
|
|
+ this.modules.forEach((item) => {
|
|
|
|
+ item.x = item.left - this.x_radar;
|
|
|
|
+ item.y = this.y_radar - item.top;
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
this.$http
|
|
this.$http
|
|
.post(
|
|
.post(
|
|
"wap/room/saveRoom",
|
|
"wap/room/saveRoom",
|
|
@@ -692,21 +698,13 @@ export default {
|
|
.then((res) => {
|
|
.then((res) => {
|
|
if (res.data.data) {
|
|
if (res.data.data) {
|
|
this.devInfo = res.data.data;
|
|
this.devInfo = res.data.data;
|
|
- this.width =
|
|
|
|
- Math.abs(
|
|
|
|
- this.devInfo.yyEnd - this.devInfo.yyStart
|
|
|
|
- ) * 100;
|
|
|
|
- this.length =
|
|
|
|
- Math.abs(
|
|
|
|
- this.devInfo.xxEnd - this.devInfo.xxStart
|
|
|
|
- ) * 100;
|
|
|
|
-
|
|
|
|
- this.xOffset =
|
|
|
|
- (this.devInfo.xxStart + this.devInfo.xxEnd) * 50;
|
|
|
|
- this.yOffset =
|
|
|
|
- -(this.devInfo.yyStart + this.devInfo.yyEnd) * 50;
|
|
|
|
-
|
|
|
|
- console.log(this.xOffset, this.yOffset, 9999);
|
|
|
|
|
|
+ this.width = Math.abs(
|
|
|
|
+ this.devInfo.yyEnd - this.devInfo.yyStart
|
|
|
|
+ );
|
|
|
|
+ this.length = Math.abs(
|
|
|
|
+ this.devInfo.xxEnd - this.devInfo.xxStart
|
|
|
|
+ );
|
|
|
|
+ this.calculateOffest();
|
|
this.statusLight = this.devInfo.statusLight;
|
|
this.statusLight = this.devInfo.statusLight;
|
|
this.xxStart = this.devInfo.xxStart;
|
|
this.xxStart = this.devInfo.xxStart;
|
|
this.xxEnd = this.devInfo.xxEnd;
|
|
this.xxEnd = this.devInfo.xxEnd;
|
|
@@ -723,6 +721,39 @@ export default {
|
|
console.log(err, 8888);
|
|
console.log(err, 8888);
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
+
|
|
|
|
+ calculateOffest() {
|
|
|
|
+ let xxStart = "";
|
|
|
|
+ let xxEnd = "";
|
|
|
|
+ let yyStart = "";
|
|
|
|
+ let yyEnd = "";
|
|
|
|
+ if (this.devInfo.northAngle == 0) {
|
|
|
|
+ xxStart = this.devInfo.xxStart;
|
|
|
|
+ xxEnd = this.devInfo.xxEnd;
|
|
|
|
+ yyStart = this.devInfo.yyStart;
|
|
|
|
+ yyEnd = this.devInfo.yyEnd;
|
|
|
|
+ }
|
|
|
|
+ if (this.devInfo.northAngle == 90) {
|
|
|
|
+ xxStart = this.devInfo.xxStart;
|
|
|
|
+ xxEnd = this.devInfo.xxEnd;
|
|
|
|
+ yyStart = -this.devInfo.yyEnd;
|
|
|
|
+ yyEnd = -this.devInfo.yyStart;
|
|
|
|
+ }
|
|
|
|
+ if (this.devInfo.northAngle == 180) {
|
|
|
|
+ xxStart = -this.devInfo.xxEnd;
|
|
|
|
+ xxEnd = -this.devInfo.xxStart;
|
|
|
|
+ yyStart = -this.devInfo.yyEnd;
|
|
|
|
+ yyEnd = -this.devInfo.yyStart;
|
|
|
|
+ }
|
|
|
|
+ if (this.devInfo.northAngle == 270) {
|
|
|
|
+ xxStart = -this.devInfo.xxEnd;
|
|
|
|
+ xxEnd = -this.devInfo.xxStart;
|
|
|
|
+ yyStart = this.devInfo.yyStart;
|
|
|
|
+ yyEnd = this.devInfo.yyEnd;
|
|
|
|
+ }
|
|
|
|
+ this.xOffset = xxStart + xxEnd;
|
|
|
|
+ this.yOffset = -(yyStart + yyEnd);
|
|
|
|
+ },
|
|
getRoomInfo(devId) {
|
|
getRoomInfo(devId) {
|
|
this.$http
|
|
this.$http
|
|
.get(`wap/room/readRoom`, {
|
|
.get(`wap/room/readRoom`, {
|
|
@@ -740,7 +771,7 @@ export default {
|
|
clearTimeout(this.inactivityTimer);
|
|
clearTimeout(this.inactivityTimer);
|
|
this.inactivityTimer = setTimeout(() => {
|
|
this.inactivityTimer = setTimeout(() => {
|
|
this.targetPoints = {};
|
|
this.targetPoints = {};
|
|
- console.log("长时间没有点位消除");
|
|
|
|
|
|
+ // console.log("长时间没有点位消除");
|
|
}, 1500);
|
|
}, 1500);
|
|
// 验证topic格式
|
|
// 验证topic格式
|
|
const match = topic.match(/^\/dev\/(.+)\/tracker_targets$/);
|
|
const match = topic.match(/^\/dev\/(.+)\/tracker_targets$/);
|
|
@@ -807,6 +838,7 @@ export default {
|
|
...this.targetPoints,
|
|
...this.targetPoints,
|
|
...newTargetPoints,
|
|
...newTargetPoints,
|
|
};
|
|
};
|
|
|
|
+ // console.log(this.targetPoints, "更新后的点位数据2222");
|
|
if (Array.isArray(this.targetPoints)) {
|
|
if (Array.isArray(this.targetPoints)) {
|
|
this.targetPoints = this.targetPoints.filter(
|
|
this.targetPoints = this.targetPoints.filter(
|
|
(item) => item !== null && item !== undefined
|
|
(item) => item !== null && item !== undefined
|
|
@@ -820,8 +852,8 @@ export default {
|
|
y,
|
|
y,
|
|
z,
|
|
z,
|
|
id,
|
|
id,
|
|
- displayX: x - Number(this.xxStart),
|
|
|
|
- displayY: y - Number(this.yyEnd),
|
|
|
|
|
|
+ displayX: this.x_radar + x,
|
|
|
|
+ displayY: this.y_radar - y,
|
|
lastX: x,
|
|
lastX: x,
|
|
lastY: y,
|
|
lastY: y,
|
|
};
|
|
};
|
|
@@ -839,13 +871,94 @@ export default {
|
|
z,
|
|
z,
|
|
lastX: x,
|
|
lastX: x,
|
|
lastY: y,
|
|
lastY: y,
|
|
- displayX: x - Number(this.xxStart),
|
|
|
|
- displayY: y - Number(this.yyEnd),
|
|
|
|
|
|
+ displayX: this.x_radar + x,
|
|
|
|
+ displayY: this.y_radar - y,
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
return existingPoint;
|
|
return existingPoint;
|
|
},
|
|
},
|
|
|
|
+ initSubscriptions() {
|
|
|
|
+ const topicList = [
|
|
|
|
+ {
|
|
|
|
+ topic: `/dev/${this.clientId}/tracker_targets`,
|
|
|
|
+ key: "unsubscribeFn",
|
|
|
|
+ callback: (message, msgTopic) => {
|
|
|
|
+ const dataMatch = msgTopic.match(
|
|
|
|
+ /^\/dev\/(.+)\/tracker_targets$/
|
|
|
|
+ );
|
|
|
|
+ const cmdMatch = msgTopic.match(
|
|
|
|
+ /^\/mps\/wx_(.+)\/notice$/
|
|
|
|
+ );
|
|
|
|
+ if (dataMatch && dataMatch[1] === this.clientId) {
|
|
|
|
+ this.handleMessage(
|
|
|
|
+ msgTopic,
|
|
|
|
+ message,
|
|
|
|
+ this.clientId
|
|
|
|
+ );
|
|
|
|
+ } else if (cmdMatch) {
|
|
|
|
+ this.$refs.alarmModel.hanOtherMessage(
|
|
|
|
+ msgTopic,
|
|
|
|
+ message
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ topic: `/dev/${this.clientId}/falling_event_change`,
|
|
|
|
+ key: "fallingEventChange",
|
|
|
|
+ callback: (message, msgTopic) => {
|
|
|
|
+ const dataMatch = msgTopic.match(
|
|
|
|
+ /^\/dev\/(.+)\/falling_event_change$/
|
|
|
|
+ );
|
|
|
|
+ if (dataMatch && dataMatch[1] === this.clientId) {
|
|
|
|
+ const dataMessage = JSON.parse(message.toString());
|
|
|
|
+ console.log(dataMessage, 888888);
|
|
|
|
+ if (dataMessage.falling == 1) {
|
|
|
|
+ this.falling = dataMessage.falling;
|
|
|
|
+ this.lnbAction = "actionWarn";
|
|
|
|
+ } else if (
|
|
|
|
+ dataMessage.falling == 2 ||
|
|
|
|
+ dataMessage.falling == 3
|
|
|
|
+ ) {
|
|
|
|
+ this.falling = dataMessage.falling;
|
|
|
|
+ this.lnbAction = "actionSerious";
|
|
|
|
+ } else {
|
|
|
|
+ this.lnbAction = "action8";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ topicList.forEach((item) => {
|
|
|
|
+ // 避免重复订阅
|
|
|
|
+ if (this[item.key]) return;
|
|
|
|
+
|
|
|
|
+ const subscribeFunc = () => {
|
|
|
|
+ const unsubscribe = MqttService.subscribe(
|
|
|
|
+ "DATA",
|
|
|
|
+ item.topic,
|
|
|
|
+ item.callback
|
|
|
|
+ );
|
|
|
|
+ if (unsubscribe) {
|
|
|
|
+ this[item.key] = unsubscribe;
|
|
|
|
+ console.log(`✅ 已成功订阅主题: ${item.topic}`);
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ if (MqttService.dataConnected) {
|
|
|
|
+ subscribeFunc();
|
|
|
|
+ } else {
|
|
|
|
+ // MQTT 未连接,等待重连成功再订阅
|
|
|
|
+ const handler = () => {
|
|
|
|
+ subscribeFunc();
|
|
|
|
+ uni.$off("mqttData-ready", handler);
|
|
|
|
+ };
|
|
|
|
+ uni.$on("mqttData-ready", handler);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
onLoad(options) {
|
|
onLoad(options) {
|
|
this.devId = options.devId;
|
|
this.devId = options.devId;
|
|
@@ -856,32 +969,50 @@ export default {
|
|
this.getRoomInfo(this.devId);
|
|
this.getRoomInfo(this.devId);
|
|
},
|
|
},
|
|
onShow() {
|
|
onShow() {
|
|
- const topic = `/dev/${this.clientId}/tracker_targets`;
|
|
|
|
- // 使用 MqttService.subscribe 管理订阅
|
|
|
|
- this.unsubscribeFn = MqttService.subscribe(
|
|
|
|
- "DATA",
|
|
|
|
- topic,
|
|
|
|
- (message, msgTopic) => {
|
|
|
|
- // console.log(`接收到 ${msgTopic} 消息:`, message);
|
|
|
|
- // 处理消息
|
|
|
|
- const dataMatch = msgTopic.match(
|
|
|
|
- /^\/dev\/(.+)\/tracker_targets$/
|
|
|
|
- );
|
|
|
|
- if (dataMatch && dataMatch[1] === this.clientId) {
|
|
|
|
- this.handleMessage(msgTopic, message, this.clientId);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- );
|
|
|
|
- if (this.unsubscribeFn) {
|
|
|
|
- console.log(`✅ 已成功订阅主题: ${topic}`);
|
|
|
|
|
|
+ // const topic = `/dev/${this.clientId}/tracker_targets`;
|
|
|
|
+ // this.unsubscribeFn = MqttService.subscribe(
|
|
|
|
+ // "DATA",
|
|
|
|
+ // topic,
|
|
|
|
+ // (message, msgTopic) => {
|
|
|
|
+ // const dataMatch = msgTopic.match(
|
|
|
|
+ // /^\/dev\/(.+)\/tracker_targets$/
|
|
|
|
+ // );
|
|
|
|
+ // if (dataMatch && dataMatch[1] === this.clientId) {
|
|
|
|
+ // this.handleMessage(msgTopic, message, this.clientId);
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // );
|
|
|
|
+ // if (this.unsubscribeFn) {
|
|
|
|
+ // console.log(`✅ 已成功订阅主题: ${topic}`);
|
|
|
|
+ // }
|
|
|
|
+ if (MqttService.dataConnected && MqttService.dataClient) {
|
|
|
|
+ // 已连接,直接订阅
|
|
|
|
+ this.initSubscriptions();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|
|
onHide() {
|
|
onHide() {
|
|
- if (this.unsubscribeFn) {
|
|
|
|
- this.unsubscribeFn();
|
|
|
|
- this.unsubscribeFn = null;
|
|
|
|
- }
|
|
|
|
|
|
+ ["unsubscribeFn", "fallingEventChange"].forEach((key) => {
|
|
|
|
+ if (this[key]) {
|
|
|
|
+ this[key]();
|
|
|
|
+ this[key] = null;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ onUnload() {
|
|
|
|
+ // 清理定时器
|
|
|
|
+ clearTimeout(this.autoPlayinterval);
|
|
|
|
+ // 清理自动滑动定时器
|
|
|
|
+ clearInterval(this.setIntervalVal);
|
|
|
|
+ this.setIntervalVal = null;
|
|
|
|
+ this.autoPlayinterval = null;
|
|
|
|
+ // 取消订阅
|
|
|
|
+ ["unsubscribeFn", "fallingEventChange"].forEach((key) => {
|
|
|
|
+ if (this[key]) {
|
|
|
|
+ this[key]();
|
|
|
|
+ this[key] = null;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
@@ -892,46 +1023,17 @@ export default {
|
|
background: #f4f4f4;
|
|
background: #f4f4f4;
|
|
.header_two {
|
|
.header_two {
|
|
width: 750rpx;
|
|
width: 750rpx;
|
|
- border-bottom-left-radius: 35rpx;
|
|
|
|
- border-bottom-right-radius: 35rpx;
|
|
|
|
|
|
+ padding-top: 20rpx;
|
|
background: linear-gradient(180deg, #faede2 0%, #ffffff 100%);
|
|
background: linear-gradient(180deg, #faede2 0%, #ffffff 100%);
|
|
.radar-box {
|
|
.radar-box {
|
|
margin: 0 auto;
|
|
margin: 0 auto;
|
|
position: relative;
|
|
position: relative;
|
|
- display: flex;
|
|
|
|
- align-items: center;
|
|
|
|
- justify-content: center;
|
|
|
|
- width: 710rpx;
|
|
|
|
- height: 710rpx;
|
|
|
|
|
|
+ width: 400rpx;
|
|
|
|
+ height: 400rpx;
|
|
background: #ffffff;
|
|
background: #ffffff;
|
|
border-radius: 37.5rpx;
|
|
border-radius: 37.5rpx;
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
|
|
|
|
- .center {
|
|
|
|
- position: absolute;
|
|
|
|
- overflow: hidden;
|
|
|
|
- background-color: #fff;
|
|
|
|
- border: 8rpx solid #333333;
|
|
|
|
- background-image: url("https://hflnxx.oss-cn-shanghai.aliyuncs.com/IMAGE/20250919/toilet_bg.png");
|
|
|
|
- background-repeat: no-repeat;
|
|
|
|
- background-position: center;
|
|
|
|
- transform: scale(1.3);
|
|
|
|
-
|
|
|
|
- .moduleContent {
|
|
|
|
- position: relative;
|
|
|
|
-
|
|
|
|
- view {
|
|
|
|
- position: absolute;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .module-img {
|
|
|
|
- width: 100%;
|
|
|
|
- height: 100%;
|
|
|
|
- display: block;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
.tranStyle {
|
|
.tranStyle {
|
|
position: absolute;
|
|
position: absolute;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
@@ -940,21 +1042,16 @@ export default {
|
|
background-image: url("https://hflnxx.oss-cn-shanghai.aliyuncs.com/IMAGE/20250919/toilet_bg.png");
|
|
background-image: url("https://hflnxx.oss-cn-shanghai.aliyuncs.com/IMAGE/20250919/toilet_bg.png");
|
|
background-repeat: no-repeat;
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
background-position: center;
|
|
- transform: scale(2.3);
|
|
|
|
-
|
|
|
|
- .moduleContent {
|
|
|
|
- // overflow: hidden;
|
|
|
|
-
|
|
|
|
- // position: relative;
|
|
|
|
- view {
|
|
|
|
- position: absolute;
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+ .moduleContent {
|
|
|
|
+ view {
|
|
|
|
+ position: absolute;
|
|
|
|
+ }
|
|
|
|
|
|
- .module-img {
|
|
|
|
- width: 100%;
|
|
|
|
- height: 100%;
|
|
|
|
- display: block;
|
|
|
|
- }
|
|
|
|
|
|
+ .module-img {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ display: block;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -971,11 +1068,12 @@ export default {
|
|
}
|
|
}
|
|
.redar-pic {
|
|
.redar-pic {
|
|
position: absolute;
|
|
position: absolute;
|
|
- left: 50%;
|
|
|
|
top: 50%;
|
|
top: 50%;
|
|
|
|
+ left: 50%;
|
|
width: 40rpx;
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
height: 40rpx;
|
|
- transform: translate(-50%, -50%); /* 先居中 */
|
|
|
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
|
+ z-index: 20;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|