Ver Fonte

优化表格显示

Shinohara Haruna há 5 meses atrás
pai
commit
c0d31a9e2a

+ 4 - 4
smsb-plus-ui/src/components/MediaFileSelector.vue

@@ -27,15 +27,15 @@
       <el-table v-loading="dialogLoading" ref="fileTable" :data="fileList" reserve-selection row-key="id"
         @selection-change="handleSelectionFile" @select="handleSelect" @select-all="handleSelectAll">
         <el-table-column type="selection" width="55" header-align="center" :selectable="isSelectableRow" />
-        <el-table-column label="类型" header-align="center" prop="type" width="80">
+        <el-table-column label="类型" header-align="left" prop="type" width="80">
           <template #default="scope">
             <dict-tag :options="smsb_source_type" :value="scope.row.type" />
           </template>
         </el-table-column>
         <el-table-column label="原名" header-align="left" prop="originalName" width="150" :show-overflow-tooltip="true" />
-        <el-table-column label="大小" header-align="center" prop="size" />
-        <el-table-column label="时长" header-align="center" prop="duration" />
-        <el-table-column label="截图" header-align="center" prop="screenshot">
+        <el-table-column label="大小" header-align="left" prop="size" />
+        <el-table-column label="时长" header-align="left" prop="duration" />
+        <el-table-column label="截图" header-align="left" prop="screenshot">
           <template #default="scope">
             <image-preview :src="scope.row.screenshot" style="width: 40px; height: 40px; cursor: pointer" />
           </template>

+ 27 - 10
smsb-plus-ui/src/views/smsb/itemProgram/index.vue

@@ -5,9 +5,9 @@
       <div v-show="showSearch" class="mb-[10px]">
         <el-card shadow="hover">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true">
-            <el-form-item label="节目ID" prop="programId">
+            <!-- <el-form-item label="节目ID" prop="programId">
               <el-input v-model="queryParams.programId" placeholder="请输入节目ID" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item label="节目名称" prop="name">
               <el-input v-model="queryParams.name" placeholder="请输入节目名称" clearable @keyup.enter="handleQuery" />
             </el-form-item>
@@ -15,12 +15,12 @@
               <el-input v-model="queryParams.resolutionRatio" placeholder="请输入分辨率" clearable
                 @keyup.enter="handleQuery" />
             </el-form-item>
-            <el-form-item label="图片地址" prop="imgUrl">
+            <!-- <el-form-item label="图片地址" prop="imgUrl">
               <el-input v-model="queryParams.imgUrl" placeholder="请输入图片地址" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-            <el-form-item label="节目时长" prop="duration">
+            </el-form-item> -->
+            <!-- <el-form-item label="节目时长" prop="duration">
               <el-input v-model="queryParams.duration" placeholder="请输入节目时长" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item label="所属个人" prop="user">
               <el-input v-model="queryParams.user" placeholder="请输入所属个人" clearable @keyup.enter="handleQuery" />
             </el-form-item>
@@ -61,10 +61,14 @@
         <el-table-column label="节目ID" align="center" prop="programId" />
         <el-table-column label="节目名称" align="center" prop="name" />
         <el-table-column label="分辨率" align="center" prop="resolutionRatio" />
-        <el-table-column label="图片地址" align="center" prop="imgUrl" />
-        <el-table-column label="状态" align="center" prop="status" />
-        <el-table-column label="节目时长" align="center" prop="duration" />
-        <el-table-column label="所属个人" align="center" prop="user" />
+        <!-- <el-table-column label="图片地址" align="center" prop="imgUrl" /> -->
+        <!-- <el-table-column label="状态" align="center" prop="status" /> -->
+        <!-- <el-table-column label="节目时长" align="center" prop="duration" /> -->
+        <el-table-column label="所属个人" align="center">
+          <template #default="scope">
+            <span>{{ userNickNameMap[scope.row.user] || scope.row.user || '-' }}</span>
+          </template>
+        </el-table-column>
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-tooltip content="修改" placement="top">
@@ -113,12 +117,14 @@
 
 <script setup name="ItemProgram" lang="ts">
 import { listItemProgram, getItemProgram, delItemProgram, addItemProgram, updateItemProgram } from '@/api/smsb/source/item_program';
+import { getUser, optionSelect, UserVO } from '@/api/system/user';
 import { useUserStore } from '@/store/modules/user';
 import { ItemProgramVO, ItemProgramQuery, ItemProgramForm } from '@/api/smsb/source/item_program_type';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 
 const itemProgramList = ref<ItemProgramVO[]>([]);
+const userNickNameMap = reactive<Record<string, string>>({});
 const buttonLoading = ref(false);
 const loading = ref(true);
 const showSearch = ref(true);
@@ -171,6 +177,17 @@ const getList = async () => {
   const res = await listItemProgram(queryParams.value);
   itemProgramList.value = res.rows;
   total.value = res.total;
+  // 收集所有 userId
+  const userIds = Array.from(new Set(res.rows.map((item: any) => item.user).filter(Boolean)));
+  if (userIds.length > 0) {
+    try {
+      // 批量获取用户信息
+      const userRes = await optionSelect(userIds);
+      (userRes.data || []).forEach((u: UserVO) => {
+        userNickNameMap[u.userId] = u.nickName;
+      });
+    } catch (e) { }
+  }
   loading.value = false;
 };