|
@@ -22,7 +22,7 @@
|
|
<div v-if="isBrushes && user_info.Role == 'leader'" @click="onDrawUndo" class="brushesBack" :class="{ disabled: !canUndo }"></div>
|
|
<div v-if="isBrushes && user_info.Role == 'leader'" @click="onDrawUndo" class="brushesBack" :class="{ disabled: !canUndo }"></div>
|
|
<div v-if="user_info.Role == 'leader'" @click="onDraw(!isBrushes)" :class="{ brushesed: isBrushes }" class="brushes"></div>
|
|
<div v-if="user_info.Role == 'leader'" @click="onDraw(!isBrushes)" :class="{ brushesed: isBrushes }" class="brushes"></div>
|
|
|
|
|
|
- <div v-if="user_list.length < 5" class="invitation" @click="openDialog('dialogShare', shareLink)"></div>
|
|
|
|
|
|
+ <div v-if="user_list.length < 5" class="invitation" @click="onClickShare"></div>
|
|
<div v-if="role == 'leader'" class="members" @click="openMember"></div>
|
|
<div v-if="role == 'leader'" class="members" @click="openMember"></div>
|
|
<div v-if="!disableMic" @click="handleMuteAduio" :class="{ mic_off: audioMuted, disabled: !audioDeviceId }" class="mic_on"></div>
|
|
<div v-if="!disableMic" @click="handleMuteAduio" :class="{ mic_off: audioMuted, disabled: !audioDeviceId }" class="mic_on"></div>
|
|
<div v-if="disableMic" class="mic_no" :class="{ disabled: !audioDeviceId }"></div>
|
|
<div v-if="disableMic" class="mic_no" :class="{ disabled: !audioDeviceId }"></div>
|
|
@@ -85,6 +85,12 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <teleport :to="`#app`">
|
|
|
|
+ <div v-if="showShare" @click="showShare = false" class="sharetip">
|
|
|
|
+ <img @click.stop :src="require('@/assets/images/icon/img_scene_share.png')" alt="" />
|
|
|
|
+ </div>
|
|
|
|
+ </teleport>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
@@ -155,6 +161,7 @@ const isBrushes = ref(false);
|
|
const showInput = ref(false);
|
|
const showInput = ref(false);
|
|
const showMember = ref(false);
|
|
const showMember = ref(false);
|
|
const animateActive = ref(false);
|
|
const animateActive = ref(false);
|
|
|
|
+const showShare = ref(false);
|
|
|
|
|
|
const audioMuted = ref(false);
|
|
const audioMuted = ref(false);
|
|
const videoMuted = ref(false);
|
|
const videoMuted = ref(false);
|
|
@@ -190,6 +197,24 @@ const tags = computed(() => {
|
|
return store.getters["tag/tags"] || [];
|
|
return store.getters["tag/tags"] || [];
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+const onClickShare = () => {
|
|
|
|
+ if (browser.detectWeixin()) {
|
|
|
|
+ //ios的ua中无miniProgram,但都有MicroMessenger(表示是微信浏览器)
|
|
|
|
+ wx.miniProgram.getEnv((res) => {
|
|
|
|
+ if (res.miniprogram) {
|
|
|
|
+ showShare.value = true;
|
|
|
|
+ wx.miniProgram.postMessage({ data: { title: "【好友推薦】一起雲逛店吧~", imageUrl: "https://glp-vr.cdfmembers.com/cdf/file/91dd5305525f463286f03a31abd1c154.jpg", h5Url: shareLink.value } });
|
|
|
|
+ //在小程序里
|
|
|
|
+ } else {
|
|
|
|
+ openDialog("dialogShare", shareLink.value);
|
|
|
|
+ // 不在小程序里
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ openDialog("dialogShare", shareLink.value);
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
const userGetOut = (item, i) => {
|
|
const userGetOut = (item, i) => {
|
|
socket.value &&
|
|
socket.value &&
|
|
socket.value.emit("action", {
|
|
socket.value.emit("action", {
|
|
@@ -425,13 +450,25 @@ const userCanSpeak = (item) => {
|
|
};
|
|
};
|
|
|
|
|
|
const onGetOuT = (data) => {
|
|
const onGetOuT = (data) => {
|
|
- console.log(data.id, "data.id == user_info.value.UserId,", user_info.value.UserId);
|
|
|
|
if (data.id == user_info.value.UserId) {
|
|
if (data.id == user_info.value.UserId) {
|
|
emit("closeSocket");
|
|
emit("closeSocket");
|
|
Dialog.toast({ content: `您已被移除` });
|
|
Dialog.toast({ content: `您已被移除` });
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+watch(
|
|
|
|
+ user_list,
|
|
|
|
+ () => {
|
|
|
|
+ if (role.value == "leader") {
|
|
|
|
+ all_mute_mic.value = !user_list.value.some((item) => !item.IsMuted && item.Role == "customer");
|
|
|
|
+ console.log(all_mute_mic.value, "user_list,valueuser_list,valueuser_list,valueuser_list,valueuser_list,valueuser_list,value");
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ deep: true,
|
|
|
|
+ }
|
|
|
|
+);
|
|
|
|
+
|
|
const startFollow = (app) => {
|
|
const startFollow = (app) => {
|
|
app.Connect.follow.start({ follow: role.value == "customer" });
|
|
app.Connect.follow.start({ follow: role.value == "customer" });
|
|
|
|
|
|
@@ -1120,4 +1157,21 @@ onMounted(() => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+.sharetip {
|
|
|
|
+ position: fixed;
|
|
|
|
+ z-index: 99999;
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ left: 0;
|
|
|
|
+ right: 0;
|
|
|
|
+ bottom: 0;
|
|
|
|
+ top: 0;
|
|
|
|
+ background-color: rgba($color: #000000, $alpha: 0.66);
|
|
|
|
+ > img {
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 10%;
|
|
|
|
+ top: 0;
|
|
|
|
+ max-width: 40vw;
|
|
|
|
+ }
|
|
|
|
+}
|
|
</style>
|
|
</style>
|