Bläddra i källkod

fix: 云烟成雨

shuisheng 1 år sedan
förälder
incheckning
0aa6da0f80

+ 3 - 0
src/hooks/tipModal/index.vue

@@ -22,6 +22,7 @@
             {{ cancelButtonText }}
           </div>
           <div
+            v-if="!hiddenConfirm"
             :class="{ btn: 1, next: 1, hiddenCancel }"
             @click="handleOk()"
           >
@@ -48,6 +49,7 @@ export default defineComponent({
     const show = ref(false);
     const hiddenCancel = ref(false);
     const hiddenClose = ref(false);
+    const hiddenConfirm = ref(false);
     const maskClosable = ref(true);
     const domRef = ref();
     watch([() => show.value, () => domRef.value], ([val1, val2]) => {
@@ -69,6 +71,7 @@ export default defineComponent({
       show,
       hiddenCancel,
       hiddenClose,
+      hiddenConfirm,
       maskClosable,
       domRef,
       handleCancel,

+ 8 - 2
src/hooks/use-push.ts

@@ -159,7 +159,10 @@ export function usePush() {
       if (newVal) {
         const res = await handleUserHasLiveRoom();
         if (!res) {
-          await useTip({ content: '你还没有直播间,是否立即开通?' });
+          await useTip({
+            content: '你还没有直播间,是否立即开通?',
+            maskClosable: false,
+          });
           await handleCreateUserLiveRoom();
         } else {
           roomName.value = liveRoomInfo.value?.name || '';
@@ -212,7 +215,10 @@ export function usePush() {
     if (!loginTip()) return;
     const flag = await handleUserHasLiveRoom();
     if (!flag) {
-      await useTip({ content: '你还没有直播间,是否立即开通?' });
+      await useTip({
+        content: '你还没有直播间,是否立即开通?',
+        maskClosable: false,
+      });
       await handleCreateUserLiveRoom();
       return;
     }

+ 4 - 0
src/hooks/use-tip.ts

@@ -15,16 +15,20 @@ export function useTip(data: {
   width?: string;
   content: string | VNode;
   hiddenCancel?: boolean;
+  hiddenConfirm?: boolean;
   hiddenClose?: boolean;
+  maskClosable?: boolean;
   confirmButtonText?: string;
   cancelButtonText?: string;
 }) {
   instance.show = true;
   instance.title = data.title || '提示';
   instance.width = data.width || '320px';
+  instance.maskClosable = !!data.maskClosable;
   instance.content = data.content;
   instance.hiddenCancel = !!data.hiddenCancel;
   instance.hiddenClose = !!data.hiddenClose;
+  instance.hiddenConfirm = !!data.hiddenConfirm;
   instance.confirmButtonText = data.confirmButtonText || '确认';
   instance.cancelButtonText = data.cancelButtonText || '取消';
   return new Promise((resolve, reject) => {

+ 10 - 2
src/views/profile/index.vue

@@ -15,12 +15,18 @@
     <br />
     <div class="pull-url">
       <span
-        v-if="!userInfo?.live_rooms?.length"
+        v-if="
+          !userInfo?.live_rooms?.length &&
+          userStore.userInfo?.id === userInfo?.id
+        "
         class="link"
         @click="openLiveRoom"
       >
         未开通
       </span>
+      <span v-else-if="!userInfo?.live_rooms?.length">
+        该用户未开通直播间
+      </span>
       <div v-else>
         <div>
           直播间地址:
@@ -33,7 +39,9 @@
           </a>
         </div>
         <div>直播间名称:{{ userInfo?.live_rooms?.[0].name }}</div>
-        <div>直播间简介:{{ userInfo?.live_rooms?.[0].desc }}</div>
+        <div>
+          直播间简介:{{ userInfo?.live_rooms?.[0].desc || '暂无简介' }}
+        </div>
         <div>
           直播间分区:{{ userInfo.live_rooms[0].areas?.[0].name || '暂无分区' }}
         </div>

+ 6 - 8
src/views/push/index.vue

@@ -433,11 +433,6 @@
       v-if="showOpenMicophoneTipCpt"
       @close="showOpenMicophoneTipCpt = false"
     ></OpenMicophoneTipCpt>
-
-    <NoLiveTipModalCpt
-      v-if="showNoLiveTipModalCpt"
-      @close="showNoLiveTipModalCpt = false"
-    ></NoLiveTipModalCpt>
   </div>
 </template>
 
@@ -511,7 +506,6 @@ import {
 import { NODE_ENV } from 'script/constant';
 
 import MediaModalCpt from './mediaModal/index.vue';
-import NoLiveTipModalCpt from './noLiveTipModal/index.vue';
 import OpenMicophoneTipCpt from './openMicophoneTip/index.vue';
 import SelectMediaModalCpt from './selectMediaModal/index.vue';
 
@@ -559,7 +553,6 @@ const recording = ref(false);
 const showOpenMicophoneTipCpt = ref(false);
 const showSelectMediaModalCpt = ref(false);
 const showMediaModalCpt = ref(false);
-const showNoLiveTipModalCpt = ref(false);
 const isEdit = ref(false);
 const topRef = ref<HTMLDivElement>();
 const bottomRef = ref<HTMLDivElement>();
@@ -615,7 +608,11 @@ watch(
   (newval) => {
     if (!newval) {
       handleEndLive();
-      showNoLiveTipModalCpt.value = true;
+      useTip({
+        content: '直播已结束',
+        hiddenCancel: true,
+        hiddenConfirm: true,
+      });
     } else {
       uploadLivePreview();
     }
@@ -1205,6 +1202,7 @@ function handleShare() {
     title: '分享',
     confirmButtonText: '复制',
     hiddenCancel: true,
+    maskClosable: false,
   })
     .then(() => {
       copyToClipBoard(getLiveRoomPageUrl(+roomId.value));

+ 0 - 29
src/views/push/noLiveTipModal/index.vue

@@ -1,29 +0,0 @@
-<template>
-  <div class="no-live-tip-modal">
-    <Modal
-      title="提示"
-      :mask-closable="false"
-      @close="emits('close')"
-    >
-      <div>直播已结束</div>
-      <template #footer></template>
-    </Modal>
-  </div>
-</template>
-
-<script lang="ts" setup>
-withDefaults(
-  defineProps<{
-    msg?: string;
-  }>(),
-  {
-    msg: '',
-  }
-);
-const emits = defineEmits(['close', 'ok']);
-</script>
-
-<style lang="scss" scoped>
-.no-live-tip-modal {
-}
-</style>

+ 1 - 1
src/views/rank/index.vue

@@ -359,7 +359,7 @@ async function getSigninList() {
   try {
     fullLoading({ loading: true });
     const res = await fetchSigninList({
-      orderName: 'nums',
+      orderName: 'sum_nums',
       orderBy: 'desc',
     });
     if (res.code === 200) {