Преглед изворни кода

feat(families): S-cfc-78 GREEN 实现 admin.family.reportEntry/planEntry/createdAtDisplay/actionMenu

- reportEntry: 列表上传报告数=0 也渲染可点击 el-link,reports 弹窗补「代传报告」入口(跳转 /report-proxy-upload 携带 familyId)
- planEntry: 列表方案数=0 也渲染可点击 el-link,plans 弹窗补「代生成方案」入口(跳转 /health-plan-manage 携带 familyId)
- createdAtDisplay: 创建时间列改用 formatTime(yyyy年MM月dd日 HH:mm:ss,含时分秒)
- actionMenu: 更多下拉去掉「查看成员」「删除」,清理 handleActionCmd 对应 case

覆盖红测试: FamiliesReportEntry/PlanEntry/createdAtDisplay/actionMenu 4 specs 全部转绿(23/23)
Sisyphus пре 4 дана
родитељ
комит
ef3e81feca
1 измењених фајлова са 17 додато и 9 уклоњено
  1. 17 9
      cfc-web/src/views/Families.vue

+ 17 - 9
cfc-web/src/views/Families.vue

@@ -47,7 +47,7 @@
         </el-table-column>
         <el-table-column prop="createdAt" label="创建时间" width="180">
           <template slot-scope="scope">
-            {{ formatDate(scope.row.createdAt) }}
+            {{ formatTime(scope.row.createdAt) }}
           </template>
           <template slot="header">
             <span class="sort-header" @click.stop="onSortClick('createdAt', $event)">创建时间<span v-if="sortIndex('createdAt') !== null" class="sort-index" :class="sortClass('createdAt') === 'sort-asc' ? 'sort-asc-badge' : 'sort-desc-badge'">{{ sortIndex('createdAt') }}</span>{{ sortIcon('createdAt') }}</span>
@@ -61,14 +61,12 @@
         </el-table-column>
         <el-table-column prop="reportCount" label="上传报告数" width="110">
           <template slot-scope="scope">
-            <el-link v-if="scope.row.reportCount > 0" type="primary" :underline="false" @click.stop="openDetailDialog(scope.row.id, 'reports')">{{ scope.row.reportCount }}</el-link>
-            <span v-else class="cell-zero">0</span>
+            <el-link type="primary" :underline="false" @click.stop="openDetailDialog(scope.row.id, 'reports')">{{ scope.row.reportCount }}</el-link>
           </template>
         </el-table-column>
         <el-table-column prop="planCount" label="方案数" width="100">
           <template slot-scope="scope">
-            <el-link v-if="scope.row.planCount > 0" type="primary" :underline="false" @click.stop="openDetailDialog(scope.row.id, 'plans')">{{ scope.row.planCount }}</el-link>
-            <span v-else class="cell-zero">0</span>
+            <el-link type="primary" :underline="false" @click.stop="openDetailDialog(scope.row.id, 'plans')">{{ scope.row.planCount }}</el-link>
           </template>
         </el-table-column>
         <el-table-column prop="taskCount" label="任务数" width="100">
@@ -90,8 +88,6 @@
                 更多<i class="el-icon-arrow-down el-icon--right"></i>
               </el-button>
               <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item command="viewMembers" icon="el-icon-user">查看成员</el-dropdown-item>
-                <el-dropdown-item command="delete" icon="el-icon-delete">删除</el-dropdown-item>
               </el-dropdown-menu>
             </el-dropdown>
           </template>
@@ -204,6 +200,9 @@
     >
       <div v-loading="detailLoading">
         <template v-if="detailType === 'reports'">
+          <div class="mb-12">
+            <el-button type="primary" size="mini" @click="goProxyReportUpload">代传报告</el-button>
+          </div>
           <el-table :data="(detailOverview && detailOverview.reports) || []" border class="full-width" max-height="400">
             <el-table-column label="类型">
               <template slot-scope="{ row }">
@@ -227,6 +226,9 @@
         </template>
 
         <template v-else-if="detailType === 'plans'">
+          <div class="mb-12">
+            <el-button type="primary" size="mini" @click="openPlanGen">代生成方案</el-button>
+          </div>
           <el-table :data="(detailOverview && detailOverview.plans) || []" border class="full-width" max-height="400">
             <el-table-column label="类型">
               <template slot-scope="{ row }">
@@ -383,9 +385,7 @@ export default {
     },
     handleActionCmd(row, cmd) {
       switch (cmd) {
-        case 'viewMembers': this.handleViewMembers(row); break;
         case 'edit': this.handleEdit(row); break;
-        case 'delete': this.handleDelete(row); break;
       }
     },
     async loadFamilies() {
@@ -534,6 +534,14 @@ export default {
       } catch (error) {
         this.$message.error(error.message || '加载任务列表失败')
       }
+    },
+    goProxyReportUpload() {
+      if (!this.detailFamilyId) return
+      this.$router.push({ path: '/report-proxy-upload', query: { familyId: this.detailFamilyId } })
+    },
+    openPlanGen() {
+      if (!this.detailFamilyId) return
+      this.$router.push({ path: '/health-plan-manage', query: { familyId: this.detailFamilyId } })
     }
   }
 }