|
@@ -73,12 +73,29 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
- <view class="bottom" @click="gotoSurvey('/pagesA/survey/survey')">
|
|
|
+ <!-- <view class="bottom">
|
|
|
<image src="../../static/linkService.png" mode="" />
|
|
|
- <!-- <button>联系客服</button> -->
|
|
|
<button open-type="contact">联系客服</button>
|
|
|
- </view>
|
|
|
- <view class="bot_version"> v3.0.10 </view>
|
|
|
+ </view> -->
|
|
|
+
|
|
|
+ <movable-area class="movable-area" direction="all">
|
|
|
+ <movable-view
|
|
|
+ class="movable-button"
|
|
|
+ :x="pos.x"
|
|
|
+ :y="pos.y"
|
|
|
+ direction="all"
|
|
|
+ @change="onChange"
|
|
|
+ @touchend="onTouchEnd"
|
|
|
+ v-if="showService"
|
|
|
+ >
|
|
|
+ <image src="../../static/linkService.png" class="icon" />
|
|
|
+ <span class="pulse"></span>
|
|
|
+ <span class="pulse"></span>
|
|
|
+ <button open-type="contact" class="contact-btn"></button>
|
|
|
+ </movable-view>
|
|
|
+ </movable-area>
|
|
|
+
|
|
|
+ <view class="bot_version"> v3.0.12 </view>
|
|
|
<view
|
|
|
class="shareInfo"
|
|
|
@click="goDeviceShare()"
|
|
@@ -159,6 +176,18 @@ export default {
|
|
|
warmTypeList: [],
|
|
|
isIniTenMinutes: false,
|
|
|
showModle: false,
|
|
|
+ // 修改我的客服点位
|
|
|
+ pos: { x: 0, y: 0 },
|
|
|
+ selectX: 0,
|
|
|
+ selectY: 0,
|
|
|
+ screenWidth: 0,
|
|
|
+ screenHeight: 0,
|
|
|
+ btnWidth: 0,
|
|
|
+ btnHeight: 0,
|
|
|
+ margin: 0, // 边距
|
|
|
+ windowWidth: 0,
|
|
|
+ dragTimer: null,
|
|
|
+ showService: false,
|
|
|
};
|
|
|
},
|
|
|
computed: {},
|
|
@@ -296,13 +325,39 @@ export default {
|
|
|
?.eventDesc || "未知"
|
|
|
);
|
|
|
},
|
|
|
- gotoSurvey(path) {
|
|
|
- uni.navigateTo({
|
|
|
- url: path,
|
|
|
+ onChange(e) {
|
|
|
+ this.selectX = e.detail.x;
|
|
|
+ this.selectY = e.detail.y;
|
|
|
+ },
|
|
|
+ onTouchEnd() {
|
|
|
+ uni.getSystemInfo({
|
|
|
+ success: (res) => {
|
|
|
+ this.windowWidth = Number(res.windowWidth / 2);
|
|
|
+ },
|
|
|
});
|
|
|
+ // console.log(this.selectX, this.selectY, "777777");
|
|
|
+ // if (this.selectX >= this.windowWidth) {
|
|
|
+ // this.selectX = 0;
|
|
|
+ // } else {
|
|
|
+ // this.selectX = 0;
|
|
|
+ // }
|
|
|
+ this.selectX = 0;
|
|
|
+ this.pos.x = this.selectX;
|
|
|
+ this.pos.y = this.selectY;
|
|
|
+ uni.setStorageSync("posLocationX", this.pos.x);
|
|
|
+ uni.setStorageSync("posLocationY", this.pos.y);
|
|
|
},
|
|
|
},
|
|
|
- onLoad() {},
|
|
|
+ onLoad() {
|
|
|
+ if (
|
|
|
+ !uni.getStorageSync("posLocationX") ||
|
|
|
+ !uni.getStorageSync("posLocationY")
|
|
|
+ ) {
|
|
|
+ this.pos = { x: 0, y: 0 };
|
|
|
+ }
|
|
|
+ this.pos.x = uni.getStorageSync("posLocationX");
|
|
|
+ this.pos.y = uni.getStorageSync("posLocationY");
|
|
|
+ },
|
|
|
onShow() {
|
|
|
if (uni.getStorageSync("userId")) {
|
|
|
this.getperSonInfo();
|
|
@@ -311,6 +366,7 @@ export default {
|
|
|
this.getWarnList();
|
|
|
this.showModle = true;
|
|
|
this.isIniTenMinutes = true;
|
|
|
+ this.showService = true;
|
|
|
}
|
|
|
// 配置服务器
|
|
|
let selectedService = uni.getStorageSync("sercviceChoice");
|
|
@@ -386,7 +442,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
.right {
|
|
|
- z-index: 99;
|
|
|
+ z-index: 2;
|
|
|
padding-right: 100rpx;
|
|
|
}
|
|
|
|
|
@@ -484,23 +540,6 @@ export default {
|
|
|
height: 28rpx;
|
|
|
}
|
|
|
|
|
|
-.bottom button {
|
|
|
- all: unset;
|
|
|
- margin: 0;
|
|
|
- padding: 0;
|
|
|
- border: none;
|
|
|
- background: none;
|
|
|
- font: inherit;
|
|
|
- text-align: inherit;
|
|
|
- line-height: normal;
|
|
|
- outline: none;
|
|
|
- box-shadow: none;
|
|
|
- -webkit-appearance: none;
|
|
|
- margin-left: 6rpx;
|
|
|
- color: #a1aab4;
|
|
|
- font-size: 28rpx;
|
|
|
-}
|
|
|
-
|
|
|
.bot_version {
|
|
|
opacity: 0.4;
|
|
|
position: absolute;
|
|
@@ -615,7 +654,84 @@ export default {
|
|
|
line-height: 40rpx;
|
|
|
white-space: nowrap;
|
|
|
}
|
|
|
+.movable-area {
|
|
|
+ position: fixed;
|
|
|
+ width: 100%;
|
|
|
+ height: 80%;
|
|
|
+}
|
|
|
|
|
|
+.movable-button {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ z-index: 999;
|
|
|
+ align-items: center;
|
|
|
+ width: 80rpx;
|
|
|
+ height: 80rpx;
|
|
|
+}
|
|
|
+
|
|
|
+.movable-button .icon {
|
|
|
+ pointer-events: none;
|
|
|
+ width: 80rpx;
|
|
|
+ height: 80rpx;
|
|
|
+}
|
|
|
+
|
|
|
+.movable-button .contact-btn {
|
|
|
+ position: absolute;
|
|
|
+ width: 80rpx;
|
|
|
+ height: 80rpx;
|
|
|
+ background: none;
|
|
|
+ border: none;
|
|
|
+ padding: 0;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ z-index: 10;
|
|
|
+}
|
|
|
+
|
|
|
+/* 去掉伪元素 after 样式 */
|
|
|
+.movable-button .contact-btn::after,
|
|
|
+.movable-button .contact-btn::before,
|
|
|
+wx-button::after,
|
|
|
+wx-button::before {
|
|
|
+ content: none !important;
|
|
|
+ border: none !important;
|
|
|
+ background: transparent !important;
|
|
|
+ box-shadow: none !important;
|
|
|
+}
|
|
|
+
|
|
|
+.pulse {
|
|
|
+ position: absolute;
|
|
|
+ pointer-events: none;
|
|
|
+ top: 50%;
|
|
|
+ left: 50%;
|
|
|
+ width: 80rpx;
|
|
|
+ height: 80rpx;
|
|
|
+ border: 2px solid #ffd700; /* 黄色边框 */
|
|
|
+ border-radius: 50%;
|
|
|
+ transform: translate(-50%, -50%) scale(1);
|
|
|
+ opacity: 0.6;
|
|
|
+ animation: pulseAnim 2s ease-out infinite;
|
|
|
+ z-index: 4;
|
|
|
+}
|
|
|
+
|
|
|
+/* 第二个 pulse 动画延迟,产生连续效果 */
|
|
|
+.pulse:nth-child(2) {
|
|
|
+ animation-delay: 0.75s;
|
|
|
+}
|
|
|
+
|
|
|
+@keyframes pulseAnim {
|
|
|
+ 0% {
|
|
|
+ transform: translate(-50%, -50%) scale(1);
|
|
|
+ opacity: 0.6;
|
|
|
+ }
|
|
|
+ 70% {
|
|
|
+ transform: translate(-50%, -50%) scale(2);
|
|
|
+ opacity: 0;
|
|
|
+ }
|
|
|
+ 100% {
|
|
|
+ transform: translate(-50%, -50%) scale(2);
|
|
|
+ opacity: 0;
|
|
|
+ }
|
|
|
+}
|
|
|
/* 无限无缝滚动 */
|
|
|
@keyframes scrollUp {
|
|
|
0% {
|