shinnosuke
2026-08-14 b8981bd3646edae734499819b6e0adb8acfc2843
fix(admin): 优化学校地址布局并统一家属卡注册时间
4个文件已修改
74 ■■■■■ 已修改文件
talent-card-admin/src/style.css 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-admin/src/views/FamilyCardView.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-admin/src/views/MerchantCreateView.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/service/DependentCardApplyAdminService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-admin/src/style.css
@@ -696,6 +696,26 @@
  background: #ffffff;
}
.merchant-school-address-panel {
  margin-top: 12px;
  padding: 20px 28px 18px;
  background: #ffffff;
}
.merchant-school-address-title {
  margin: 0 0 16px;
  color: #111827;
  font-size: 14px;
  font-weight: 700;
  text-align: left;
}
.merchant-school-address-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}
.merchant-rights-section-title {
  margin: 0 0 18px 28px;
  color: #111827;
talent-card-admin/src/views/FamilyCardView.vue
@@ -195,7 +195,7 @@
            <el-option v-for="item in statusOptions" :key="item.label" :label="item.label" :value="item.value" />
          </el-select>
        </el-form-item>
        <el-form-item label="申请时间" :class="{ 'family-card-filter-date': isManagement }">
        <el-form-item :label="isManagement ? '注册时间' : '申请时间'" :class="{ 'family-card-filter-date': isManagement }">
          <el-date-picker
            v-model="filters.applyTime"
            type="daterange"
talent-card-admin/src/views/MerchantCreateView.vue
@@ -2500,25 +2500,6 @@
          </div>
        </div>
        <div v-if="isChildcareMerchant" class="merchant-rights-parking-address-panel" style="padding: 0 100px;">
          <div class="parking-address-header">学校地址</div>
          <div class="parking-address-table-wrapper">
            <el-table :data="schoolAddresses" border>
              <el-table-column label="名称" prop="name" />
              <el-table-column label="地址" prop="address" />
              <el-table-column label="操作" width="120" align="center">
                <template #default="{ $index }">
                  <el-button link type="danger" @click="removeSchool($index)">删除</el-button>
                  <el-button link type="primary" @click="openSchoolDialog($index)">详情</el-button>
                </template>
              </el-table-column>
            </el-table>
            <div style="text-align: center; margin-top: 16px;">
              <el-button plain @click="openSchoolDialog(-1)">新增</el-button>
            </div>
          </div>
        </div>
        <div v-if="isApprovalMerchant" class="merchant-rights-parking-address-panel" style="padding: 0 32px;">
          <div class="parking-address-header">商家权益</div>
          <div class="parking-address-table-wrapper">
@@ -2572,6 +2553,23 @@
        </div>
      </section>
      <section v-if="isChildcareMerchant" class="merchant-school-address-panel">
        <h3 class="merchant-school-address-title">学校地址</h3>
        <el-table :data="schoolAddresses" border>
          <el-table-column label="名称" prop="name" />
          <el-table-column label="地址" prop="address" />
          <el-table-column label="操作" width="120" align="center">
            <template #default="{ $index }">
              <el-button link type="danger" @click="removeSchool($index)">删除</el-button>
              <el-button link type="primary" @click="openSchoolDialog($index)">详情</el-button>
            </template>
          </el-table-column>
        </el-table>
        <div class="merchant-school-address-actions">
          <el-button plain @click="openSchoolDialog(-1)">新增</el-button>
        </div>
      </section>
      <el-button type="primary" class="merchant-create-save" :loading="rightsSaving" @click="saveRights">保存</el-button>
    </template>
talent-card-server/src/main/java/com/talentcard/server/service/DependentCardApplyAdminService.java
@@ -61,7 +61,8 @@
            throw new BusinessException(ErrorCode.BAD_REQUEST, "家属卡管理状态只能为正常或已解绑");
        }
        if (applyStart != null && applyEnd != null && applyStart.isAfter(applyEnd)) {
            throw new BusinessException(ErrorCode.BAD_REQUEST, "申请开始时间不能晚于结束时间");
            throw new BusinessException(ErrorCode.BAD_REQUEST,
                    management ? "注册开始时间不能晚于结束时间" : "申请开始时间不能晚于结束时间");
        }
        int safePage = Math.max(page, 1);
        int safeSize = Math.min(Math.max(size, 1), 100);
@@ -85,15 +86,22 @@
                        .like(DependentCardApply::getTalentCardNo, talentKeyword.trim())
                        .or()
                        .apply("exists (select 1 from talent_user u where u.id = dependent_card_apply.talent_id and u.deleted = 0 and u.id_card_no like concat('%', {0}, '%'))", talentKeyword.trim()))
                .ge(applyStart != null, DependentCardApply::getApplyTime, applyStart == null ? null : applyStart.atStartOfDay())
                .lt(applyEnd != null, DependentCardApply::getApplyTime, applyEnd == null ? null : applyEnd.plusDays(1).atStartOfDay());
                .ge(!management && applyStart != null, DependentCardApply::getApplyTime,
                        applyStart == null ? null : applyStart.atStartOfDay())
                .lt(!management && applyEnd != null, DependentCardApply::getApplyTime,
                        applyEnd == null ? null : applyEnd.plusDays(1).atStartOfDay())
                .ge(management && applyStart != null, DependentCardApply::getAuditTime,
                        applyStart == null ? null : applyStart.atStartOfDay())
                .lt(management && applyEnd != null, DependentCardApply::getAuditTime,
                        applyEnd == null ? null : applyEnd.plusDays(1).atStartOfDay());
        long total = mapper.selectCount(query);
        if (total == 0) {
            return new PageResult<>(List.of(), safePage, safeSize, 0);
        }
        long offset = (long) (safePage - 1) * safeSize;
        List<DependentCardApplyAdminResponse> records = mapper.selectList(
                        query.orderByDesc(DependentCardApply::getApplyTime)
                        query.orderByDesc(management, DependentCardApply::getAuditTime)
                                .orderByDesc(!management, DependentCardApply::getApplyTime)
                                .orderByDesc(DependentCardApply::getId)
                                .last("limit " + safeSize + " offset " + offset)
                ).stream()