ソースを参照

feat(TagInfo): 添加外链类型

gitboyzcf 3 週間 前
コミット
a5d105e64e
1 ファイル変更53 行追加3 行削除
  1. 53 3
      src/views/VideoBox/components/TagInfo.vue

+ 53 - 3
src/views/VideoBox/components/TagInfo.vue

@@ -2,7 +2,7 @@
   <n-form
     class="tag-info"
     label-placement="top"
-    label-align="left"
+    label-align="center"
     require-mark-placement="right"
     size="medium"
     flex-1
@@ -15,7 +15,7 @@
       :label="item.label"
       :path="item.value"
       :label-placement="
-        ['video', 'video_s', 'img', 'ball_ptz'].includes(item.type) ? 'top' : 'left'
+        ['video', 'video_s', 'img', 'ball_ptz', 'chain'].includes(item.type) ? 'top' : 'left'
       "
       label-width="auto"
       :show-require-mark="isUpd"
@@ -68,7 +68,7 @@
         </div>
       </template>
       <template v-else-if="item.type === 'video_s'">
-        <n-input v-if="isUpd" style="flex: 1" v-model:value="item.value" />
+        <n-input v-if="isUpd" v-model:value="item.value" />
         <UseFullscreen
           v-if="!isUpd && resizeViode"
           class="flex-1"
@@ -129,6 +129,56 @@
           </div>
         </UseFullscreen>
       </template>
+      <template v-else-if="item.type === 'chain'">
+        <n-input v-if="isUpd" v-model:value="item.value" placeholder="请输入" />
+        <UseFullscreen v-else class="flex-1" v-slot="{ toggle, isFullscreen }">
+          <div class="relative flex-1 h-full popover-screen-full-target">
+            <!-- 全屏按钮 -->
+            <div
+              v-if="item.value"
+              class="all-screen popover-screen-full-trigger"
+              cursor-pointer
+              z-99
+              absolute
+              right-8px
+              top-8px
+            >
+              <Icon
+                icon="icon-park-outline:off-screen"
+                color="#8ac5ff"
+                width="25"
+                height="25"
+                v-if="isFullscreen"
+                @click="toggle"
+              />
+              <Icon
+                icon="iconamoon:screen-full"
+                color="#8ac5ff"
+                width="25"
+                height="25"
+                @click="toggle"
+                v-else
+              />
+            </div>
+
+            <div
+              v-if="item.value && item.loading"
+              w-full
+              h-full
+              flex
+              flex-justify-center
+              flex-items-center
+              absolute
+            >
+              <Icon icon="loading" width="30px" height="30px" color="#8ac5ff" />
+            </div>
+            <iframe :src="item.value" frameborder="0" width="100%" height="100%"></iframe>
+            <!-- <div v-else class="w-full flex justify-center">
+              <n-empty v-if="!item.fileList.length" size="large" description="暂无" />
+            </div> -->
+          </div>
+        </UseFullscreen>
+      </template>
       <template v-else-if="item.type === 'ball_ptz'">
         <div class="w-full" v-for="(v, ii) in item.value" :key="ii">
           <template v-if="isUpd || groupId">