Selaa lähdekoodia

refactor(business): 优化多个组件的展示内容和权限控制- 修改 API 用户管理组件中的用户姓名显示字段
- 更新配置管理、赛事管理和政策管理组件的列表展示内容
- 为赛事管理组件的操作按钮添加权限控制
- 优化服务条款和隐私政策组件的空内容显示

fugui001 4 kuukautta sitten
vanhempi
commit
0a152efd45

+ 5 - 0
src/api/system/business/apiUsers/types.ts

@@ -254,6 +254,11 @@ export interface UserForm extends BaseEntity {
    * 参赛数
    */
   tournamentCount?: number;
+
+  /**
+   * 真实姓名
+   */
+  realName?: string;
 }
 
 export interface UserQuery extends PageQuery {

+ 3 - 3
src/views/system/business/apiUsers/index.vue

@@ -133,7 +133,7 @@
         </el-form-item>
 
         <el-form-item label="用户姓名" prop="loginPass">
-          <el-input v-model="form.loginName" disabled />
+          <el-input v-model="form.realName" disabled />
         </el-form-item>
         <el-form-item label="手机号" prop="phone">
           <el-input v-model="form.phone" disabled />
@@ -495,9 +495,9 @@ const loadItemOptions = async () => {
       // 使用 unknown 中间类型进行类型转换
       const data = res.data as unknown as { id: number; name: string }[];
 
-      // 过滤掉 id === 1 的项,并映射为 { id, label } 结构
+      // 过滤掉 id === 2 的项,并映射为 { id, label } 结构
       const list = data
-        .filter((item) => item.id !== 1) // ✅ 过滤掉 id 为 1 的选项
+        .filter((item) => item.id !== 2) // ✅ 过滤掉 id 为 1 的选项
         .map((item) => ({
           id: item.id,
           label: item.name

+ 5 - 0
src/views/system/business/config/index.vue

@@ -98,6 +98,11 @@
         </el-table-column>
 
         <el-table-column label="状态" align="center" prop="statusText" />
+        <el-table-column label="创建时间" align="center" prop="createdAt" width="180">
+          <template #default="scope">
+            <span>{{ parseTime(scope.row.createdAt, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+          </template>
+        </el-table-column>
         <el-table-column label="操作" align="center" width="320">
           <template #default="scope">
             <!-- 查看按钮 -->

+ 1 - 0
src/views/system/business/ofService/index.vue

@@ -51,6 +51,7 @@
             <el-tag v-else type="info">否</el-tag>
           </template>
         </el-table-column>
+        <el-table-column label="创建时间" align="center" prop="createTime" />
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-tooltip content="修改" placement="top">

+ 1 - 1
src/views/system/business/ofService/indexPreview.vue

@@ -22,7 +22,7 @@ const fetchTos = async () => {
   try {
     const res = await getTermsServiceListMax();
     // 处理获取到的内容,确保格式良好
-    const formattedContent = handleContentFormatting(res.data.content);
+    const formattedContent = handleContentFormatting(res.data.content || '<p>暂无服务条款内容</p>');
     tosContent.value = DOMPurify.sanitize(formattedContent);
   } catch (error) {
     console.error('获取服务条款失败', error);

+ 1 - 0
src/views/system/business/policy/index.vue

@@ -51,6 +51,7 @@
             <el-tag v-else type="info">否</el-tag>
           </template>
         </el-table-column>
+        <el-table-column label="创建时间" align="center" prop="createTime" />
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-tooltip content="修改" placement="top">

+ 1 - 1
src/views/system/business/policy/indexPolicyPreview.vue

@@ -189,7 +189,7 @@ const fetchPolicy = async () => {
 
 /* 处理可能的空白内容 */
 .policy-content:empty::before {
-  content: '暂无隐私政策内容';
+  content: '暂无内容';
   color: #999;
   font-style: italic;
 }

+ 5 - 5
src/views/system/business/tournaments/index.vue

@@ -47,7 +47,7 @@
 
           <!-- 新增的 “盲注管理” 按钮 -->
           <el-col :span="1.5">
-            <el-button type="info" plain icon="Operation">
+            <el-button type="info" plain icon="Operation" v-hasPermi="['business:tournaments:manager']">
               <router-link to="/business/structures">盲注表管理</router-link>
             </el-button>
           </el-col>
@@ -108,19 +108,19 @@
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="320">
           <template #default="scope">
             <div class="operation-buttons-vertical">
-              <el-tooltip content="查看" placement="top">
+              <el-tooltip content="查看" placement="top" v-hasPermi="['business:tournaments:query']">
                 <el-button link type="primary" icon="View" @click="openAuditDialog(scope.row.id, 'view')">查看</el-button>
               </el-tooltip>
 
-              <el-tooltip content="编辑" placement="top">
+              <el-tooltip content="编辑" placement="top" v-hasPermi="['business:tournaments:edit']">
                 <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row, 'edit')">编辑</el-button>
               </el-tooltip>
 
-              <el-tooltip content="复制" placement="top">
+              <el-tooltip content="复制" placement="top" v-hasPermi="['business:tournaments:copy']">
                 <el-button link type="primary" icon="Files" @click="handleCopy(scope.row)"> 复制 </el-button>
               </el-tooltip>
 
-              <el-tooltip content="领奖审核" placement="top">
+              <el-tooltip content="领奖审核" placement="top" v-hasPermi="['business:tournaments:audit']">
                 <el-button link type="primary" icon="DocumentChecked" @click="openAuditDialog(scope.row.id, 'audit')">领奖审核</el-button>
               </el-tooltip>
             </div>

+ 5 - 4
src/views/system/business/tournamentsTemplate/index.vue

@@ -4,10 +4,6 @@
       <div v-show="showSearch" class="mb-[20px]">
         <el-card shadow="hover">
           <el-form ref="queryFormRef" :model="queryParams" :inline="true">
-            <el-form-item label="比赛ID" prop="name">
-              <el-input v-model="queryParams.id" placeholder="请输入比赛ID" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-
             <el-form-item label="比赛名称" prop="name">
               <el-input v-model="queryParams.name" placeholder="请输入比赛名称" clearable @keyup.enter="handleQuery" />
             </el-form-item>
@@ -87,6 +83,11 @@
         </el-table-column>
 
         <el-table-column label="状态" align="center" prop="statusText" />
+        <el-table-column label="创建时间" align="center" prop="createdAt" width="180">
+          <template #default="scope">
+            <span>{{ parseTime(scope.row.createdAt, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+          </template>
+        </el-table-column>
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="320">
           <template #default="scope">
             <div class="operation-buttons-vertical">