董国庆
2026-03-26 1e22b0c384f40f1fd42a6e7f957661005f0dc24c
修改ui全局table和图片
35个文件已修改
351 ■■■■■ 已修改文件
.trae/skills/通用规范/SKILL.md 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/attendance/address/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/attendance/shift/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/attendance/statistics/detail.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/attendance/statistics/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/message/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/personnel/personnelManagement/components/PersonnelFormModal.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/personnel/personnelManagement/detail.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/personnel/personnelManagement/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/taskOrder/taskOrderCenter/components/AddFormModal.vue 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/taskOrder/taskOrderCenter/components/RegularDetailModal.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/taskOrder/taskOrderCenter/components/detailModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operations/taskOrder/taskOrderCenter/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/review/personnel/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/review/policyApplication/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/ticket/feedback/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/ticket/feedbackType/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/ticket/workOrder/components/WorkOrderHandleModal.vue 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/ticket/workOrder/detail.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/ticket/workOrder/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/accountPermission/accountManagement/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/accountPermission/permissionGroup/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/appVersion/appVersionManage/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/navigationAndRoutePlanning/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/order/evaluationRecord/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/order/orderManagement/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/pricingManagement/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/transactionStrategy/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/active/coupon/BatchSendModal.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/active/coupon/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/banner/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/contentCenter/components/ContentForm.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/whitelistManagement/invitationCode/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/whitelistManagement/whitelist/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/whitelistManagement/whitelistLog/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.trae/skills/通用规范/SKILL.md
@@ -4,4 +4,6 @@
---
1,如果有页面有table,那么需要给table设置空状态的插槽,参考src\views\businessOperations\geofenceManagement\index.vue 页面的插槽
2,如果有图片,并且图片的路径是变量而不是固定路径或固定地址,需要设置图片加载失败的默认图片@/assets/element-img/error-img.png。需要注意,图片可能有img和组件的nimage
2,如果有图片,需要判断图片的src,
如果src是相对路径或者绝对路径,或者固定的图片地址,则不需要更改,
如果src是变量,需要设置图片加载失败的默认图片@/assets/element-img/error-img.png。需要注意,图片可能有img和组件的nimage
src/views/operations/attendance/address/index.vue
@@ -263,7 +263,13 @@
      </template>
      <div class="flex-1 flex flex-col h-full">
        <n-data-table class="flex-1" :columns="columns" :data="listData" :loading="loading" :bordered="false"
          flex-height :scroll-x="tableScrollX" :header-height="18" :row-height="18" />
          flex-height :scroll-x="tableScrollX" :header-height="18" :row-height="18">
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination :count="count" :page="pageParams.pageNum" :page-size="pageParams.pageSize"
          class="robotaxi-pagination mt-12px" @change="changePage" />
      </div>
src/views/operations/attendance/shift/index.vue
@@ -267,7 +267,13 @@
          :scroll-x="tableScrollX"
          :header-height="18"
          :row-height="18"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="total"
          :page="pageParams.pageNum"
src/views/operations/attendance/statistics/detail.vue
@@ -185,7 +185,13 @@
      </template>
      <NSpace vertical :size="12">
        <n-data-table :columns="columns" :data="detailList" :loading="loading" :bordered="false" :header-height="18"
          :row-height="18" :scroll-x="1500" />
          :row-height="18" :scroll-x="1500">
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination :count="total" :page="pageParams.pageNum" :page-size="pageParams.pageSize" @change="changePage" />
      </NSpace>
    </n-card>
src/views/operations/attendance/statistics/index.vue
@@ -223,7 +223,13 @@
          :scroll-x="tableScrollX"
          :header-height="18"
          :row-height="18"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="total"
          :page="pageParams.pageNum"
src/views/operations/message/index.vue
@@ -138,7 +138,13 @@
          :bordered="false"
          :header-height="18"
          :row-height="18"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
      </div>
    </n-card>
src/views/operations/personnel/personnelManagement/components/PersonnelFormModal.vue
@@ -274,7 +274,7 @@
                <img :src="uploadAvatarImg" class="avatar-trigger-img">
              </div>
              <div v-else class="avatar-preview">
                <img class="avatar-img" :src="avatarUrl">
                <img class="avatar-img" :src="avatarUrl" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
                <img class="avatar-delete" :src="deleteImg" @click.stop="handleRemove">
                <img class="avatar-edit" :src="editImg" @click.stop="handleReupload">
              </div>
src/views/operations/personnel/personnelManagement/detail.vue
@@ -133,17 +133,17 @@
            :src="personnelInfo.idCardFrontUrl"
            object-fit="cover"
            class="rounded-4px border border-[#E5E5E5]"
            fallback-src="/src/assets/element-img/error-img.png"
          />
          <n-image
            width="213"
            height="120"
            v-if="personnelInfo.idCardBackUrl"
            :src="personnelInfo.idCardBackUrl"
            object-fit="cover"
            class="rounded-4px border border-[#E5E5E5]"
            fallback-src="/src/assets/element-img/error-img.png"
          />
        </div>
        <div v-else class="text-14px text-[#919191]">-</div>
      </div>
      <div class="mb-16px">
@@ -151,12 +151,11 @@
        <n-image
          width="213"
          height="120"
          v-if="personnelInfo.driverLicenseUrl"
          :src="personnelInfo.driverLicenseUrl"
          object-fit="cover"
          fallback-src="/src/assets/element-img/error-img.png"
          class="rounded-4px border border-[#E5E5E5]"
        />
        <div v-else class="text-14px text-[#919191]">-</div>
      </div>
      <div>
@@ -164,12 +163,11 @@
        <n-image
          width="213"
          height="120"
          v-if="personnelInfo.noCriminalRecordUrl"
          :src="personnelInfo.noCriminalRecordUrl"
          object-fit="cover"
          class="rounded-4px border border-[#E5E5E5]"
          fallback-src="/src/assets/element-img/error-img.png"
        />
        <div v-else class="text-14px text-[#919191]">-</div>
      </div>
    </n-card>
src/views/operations/personnel/personnelManagement/index.vue
@@ -269,7 +269,7 @@
      return (
        <div class="flex items-center gap-2">
          {avatarUrl ? (
            <img src={avatarUrl} alt="头像" class="w-24px h-24px rounded-full object-cover" />
            <img src={avatarUrl} alt="头像" class="w-24px h-24px rounded-full object-cover" onError={(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }} />
          ) : row.sex === 1 ? (
            <img src="/src/assets/element-img/avatar.png" class="w-24px h-24px rounded-full" alt="默认男头像" />
          ) : (
@@ -456,7 +456,13 @@
          :header-height="18"
          class="flex-1"
          :row-height="18"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination :count="total" class="robotaxi-pagination mt-12px" :page="pageParams.pageNum" :page-size="pageParams.pageSize" @change="changePage" />
      </div>
    </n-card>
src/views/operations/taskOrder/taskOrderCenter/components/AddFormModal.vue
@@ -479,6 +479,7 @@
                v-if="file.url"
                :src="file.url"
                class="image-thumb"
                @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
              <div v-else class="image-thumb image-thumb--placeholder" />
              <img
src/views/operations/taskOrder/taskOrderCenter/components/RegularDetailModal.vue
@@ -155,7 +155,7 @@
  >
    <div v-if="currentDetail" class="regular-detail">
      <div class="vehicle-header">
        <img :src="vehicleImage" class="vehicle-image">
        <img :src="vehicleImage" class="vehicle-image" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
        <div class="vehicle-text">
          <div class="plate-number">
            {{ currentDetail.plateNumber || "-" }}
@@ -265,7 +265,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -280,7 +280,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -295,7 +295,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -312,7 +312,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -328,7 +328,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -393,7 +393,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -436,7 +436,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -477,7 +477,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -492,7 +492,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -507,7 +507,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -522,7 +522,7 @@
                v-for="(item, idx) in getValidImageList(currentDetail.fogLight)"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -535,7 +535,7 @@
                )"
                :key="idx"
                :src="item.url"
                class="thumb"
                class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              />
            </div>
          </div> -->
@@ -552,7 +552,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            />
          </div>
        </div>
@@ -565,7 +565,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            />
          </div>
        </div>
@@ -578,7 +578,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            />
          </div>
        </div>
@@ -591,7 +591,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            />
          </div>
        </div> -->
@@ -607,7 +607,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            />
          </div>
        </div> -->
@@ -618,7 +618,7 @@
              v-for="(item, idx) in getValidImageList(currentDetail.lostItems)"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            />
          </div>
        </div> -->
@@ -652,7 +652,7 @@
              v-for="(item, idx) in getValidImageList(currentDetail.taskImage)"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -705,7 +705,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -744,7 +744,7 @@
              )"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -784,7 +784,7 @@
              v-for="(item, idx) in getValidImageList(currentDetail.taskImage)"
              :key="idx"
              :src="item.url"
              class="thumb"
              class="thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
src/views/operations/taskOrder/taskOrderCenter/components/detailModal.vue
@@ -224,7 +224,7 @@
            <img
              v-if="getVehicleImage(formModel.accidentDetailVO.vehiclePictures)"
              :src="getVehicleImage(formModel.accidentDetailVO.vehiclePictures)"
              class="w-112px h-64px mr-16px accident-vehicle-image"
              class="w-112px h-64px mr-16px accident-vehicle-image" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
            <div>
              <div class="plateNumber mb-8px">
@@ -257,7 +257,7 @@
                v-for="(item, idx) in getValidImageList(formModel.accidentDetailVO.taskImage)"
                :key="idx"
                :src="item.url"
                class="w-56px h-56px accident-thumb"
                class="w-56px h-56px accident-thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -266,7 +266,7 @@
              <img
                v-if="parseAvatarUrl(formModel.accidentDetailVO.reportUserAvatar)"
                :src="parseAvatarUrl(formModel.accidentDetailVO.reportUserAvatar)"
                class="w-40px h-40px accident-avatar"
                class="w-40px h-40px accident-avatar" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
              <div class="flex-1 min-w-0">
                <div class="label mb-4px">
@@ -333,7 +333,7 @@
                v-for="(item, idx) in getValidImageList(formModel.accidentDetailVO.situationImage)"
                :key="idx"
                :src="item.url"
                class="w-56px h-56px accident-thumb"
                class="w-56px h-56px accident-thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -349,7 +349,7 @@
                v-for="(item, idx) in getValidImageList(formModel.accidentDetailVO.disposalImage)"
                :key="idx"
                :src="item.url"
                class="w-56px h-56px accident-thumb"
                class="w-56px h-56px accident-thumb" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
            </div>
          </div>
@@ -358,7 +358,7 @@
              <img
                v-if="parseAvatarUrl(formModel.accidentDetailVO.handleUserAvatar)"
                :src="parseAvatarUrl(formModel.accidentDetailVO.handleUserAvatar)"
                class="w-40px h-40px accident-avatar"
                class="w-40px h-40px accident-avatar" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
              >
              <div class="flex-1 min-w-0">
                <div class="label mb-4px">
@@ -388,7 +388,7 @@
        <div class="mb-16px flex items-center">
          <img
            v-if="formModel.detectionDetailVO?.vehiclePictures" :src="formModel.detectionDetailVO.vehiclePictures"
            class="w-112px h-64px mr-16px"
            class="w-112px h-64px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
          >
          <div>
            <div class="plateNumber mb-8px">
@@ -455,7 +455,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.detectionDetailVO.sensorCleaningPicture)" :key="idx"
              :src="item.url" class="w-56px h-56px mr-16px"
              :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -466,7 +466,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.detectionDetailVO.interactiveScreenPicture)" :key="idx"
              :src="item.url" class="w-56px h-56px mr-16px"
              :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -477,7 +477,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.detectionDetailVO.helpButtonPicture)" :key="idx"
              :src="item.url" class="w-56px h-56px mr-16px"
              :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -488,7 +488,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.detectionDetailVO.paymentFunctionPicture)" :key="idx"
              :src="item.url" class="w-56px h-56px mr-16px"
              :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -499,7 +499,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.detectionDetailVO.systemCheckPicture)" :key="idx"
              :src="item.url" class="w-56px h-56px mr-16px"
              :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -521,7 +521,7 @@
        <div class="mb-16px flex items-center">
          <img
            v-if="formModel.chargingDetailVO?.vehiclePictures.url" :src="formModel.chargingDetailVO.vehiclePictures.url"
            class="w-112px h-64px mr-16px"
            class="w-112px h-64px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
          >
          <div>
            <div class="plateNumber mb-8px">
@@ -555,7 +555,7 @@
          </div>
          <div class="imgs">
            <div v-for="(item, idx) in JSON.parse(formModel.chargingDetailVO.startChargingPicture)" :key="idx">
              <img v-if="item?.url" :src="item.url" class="w-56px h-56px mr-16px">
              <img v-if="item?.url" :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </div>
        </div>
@@ -575,7 +575,7 @@
          </div>
          <div class="imgs">
            <div v-for="(item, idx) in JSON.parse(formModel.chargingDetailVO.endChargingPicture)" :key="idx">
              <img v-if="item?.url" :src="item.url" class="w-56px h-56px mr-16px">
              <img v-if="item?.url" :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </div>
        </div>
@@ -587,7 +587,7 @@
        <div class="mb-16px flex items-center">
          <img
            v-if="formModel.preparationDetailVO?.vehiclePictures" :src="formModel.preparationDetailVO.vehiclePictures"
            class="w-112px h-64px mr-16px"
            class="w-112px h-64px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
          >
          <div>
            <div class="plateNumber mb-8px">
@@ -619,7 +619,7 @@
          <div v-if="formModel.preparationDetailVO.headLight" class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.preparationDetailVO.headLight)" :key="idx" :src="item.url"
              class="w-56px h-56px mr-16px"
              class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -630,7 +630,7 @@
          <div v-if="formModel.preparationDetailVO.turnSignal" class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.preparationDetailVO.turnSignal)" :key="idx" :src="item.url"
              class="w-56px h-56px mr-16px"
              class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -641,7 +641,7 @@
          <div v-if="formModel.preparationDetailVO.brakeLight" class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.preparationDetailVO.brakeLight)" :key="idx" :src="item.url"
              class="w-56px h-56px mr-16px"
              class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -652,7 +652,7 @@
          <div v-if="formModel.preparationDetailVO.fogLight" class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.preparationDetailVO.fogLight)" :key="idx" :src="item.url"
              class="w-56px h-56px mr-16px"
              class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -663,7 +663,7 @@
          <div v-if="formModel.preparationDetailVO.bodyEmblem" class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.preparationDetailVO.bodyEmblem)" :key="idx" :src="item.url"
              class="w-56px h-56px mr-16px"
              class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -674,7 +674,7 @@
          <div v-if="formModel.preparationDetailVO.cabinCleaning" class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.preparationDetailVO.cabinCleaning)" :key="idx"
              :src="item.url" class="w-56px h-56px mr-16px"
              :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -685,7 +685,7 @@
          <div v-if="formModel.preparationDetailVO.lostItems" class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.preparationDetailVO.lostItems)" :key="idx" :src="item.url"
              class="w-56px h-56px mr-16px"
              class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
          <div class="label mt-8px">
@@ -710,7 +710,7 @@
        <div class="mb-16px flex items-center">
          <img
            v-if="formModel.cleanDetailVO?.vehiclePictures" :src="formModel.cleanDetailVO.vehiclePictures"
            class="w-112px h-64px mr-16px"
            class="w-112px h-64px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
          >
          <div>
            <div class="plateNumber mb-8px">
@@ -732,7 +732,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.cleanDetailVO.taskImage)" :key="idx" :src="item.url"
              class="w-56px h-56px mr-16px"
              class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -754,7 +754,7 @@
        <div class="mb-16px flex items-center">
          <img
            v-if="formModel.repairDetailVO?.vehiclePictures" :src="formModel.repairDetailVO.vehiclePictures"
            class="w-112px h-64px mr-16px"
            class="w-112px h-64px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
          >
          <div>
            <div class="plateNumber mb-8px">
@@ -783,7 +783,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.repairDetailVO.startRepairPicture)" :key="idx"
              :src="item.url" class="w-56px h-56px mr-16px"
              :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -804,7 +804,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.repairDetailVO.repairMoneyDetail)" :key="idx"
              :src="item.url" class="w-56px h-56px mr-16px"
              :src="item.url" class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
@@ -826,7 +826,7 @@
        <div class="mb-16px flex items-center">
          <img
            v-if="formModel.routineDetailVO?.vehiclePictures" :src="formModel.routineDetailVO.vehiclePictures"
            class="w-112px h-64px mr-16px"
            class="w-112px h-64px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
          >
          <div>
            <div class="plateNumber mb-8px">
@@ -851,7 +851,7 @@
          <div class="imgs">
            <img
              v-for="(item, idx) in JSON.parse(formModel.routineDetailVO.taskImage)" :key="idx" :src="item.url"
              class="w-56px h-56px mr-16px"
              class="w-56px h-56px mr-16px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }"
            >
          </div>
        </div>
src/views/operations/taskOrder/taskOrderCenter/index.vue
@@ -559,7 +559,13 @@
          :header-height="18"
          :row-height="18"
          :scroll-x="tableScrollX"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          class="robotaxi-pagination mt-12px"
          :count="total"
src/views/service/review/personnel/index.vue
@@ -67,7 +67,7 @@
    render: (row) => {
      return (
        <div class="flex items-center gap-2">
          {row.avatar && <img src={JSON.parse(row.avatar).url} alt="头像" class="w-24px h-24px rounded-full" />}
          {row.avatar && <img src={JSON.parse(row.avatar).url} alt="头像" class="w-24px h-24px rounded-full" onError={(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }} />}
          {!row.avatar && <div class="w-24px h-24px rounded-full flex justify-center" style="background-color: #F6F7FA;">
            <img src="/src/assets/public/avater.png" class="w-17px h-21px" />
            </div>}
@@ -518,7 +518,13 @@
          :bordered="false"
          :row-key="(row: any) => row.id"
          @update:checked-row-keys="handleCheck"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </NDataTable>
        <Pagination
          :count="count"
          :page="pagination.page"
src/views/service/review/policyApplication/index.vue
@@ -416,7 +416,13 @@
          :bordered="false"
          :row-key="(row: any) => row.id"
          @update:checked-row-keys="handleCheck"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="count"
          :page="pagination.page"
src/views/service/ticket/feedback/index.vue
@@ -62,7 +62,7 @@
    render: (row) => {
      return (
        <div class="flex items-center gap-2">
          {row.avatar && <img src={row.avatar} alt="头像" class="w-24px h-24px rounded-full" />}
          {row.avatar && <img src={row.avatar} alt="头像" class="w-24px h-24px rounded-full" onError={(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }} />}
          {!row.avatar && <div class="w-24px h-24px rounded-full flex justify-center" style="background-color: #F6F7FA;">
            <img src="/src/assets/public/avater.png" class="w-17px h-21px" />
            </div>}
@@ -239,7 +239,13 @@
          :scroll-x="1410"
          :bordered="false"
          :row-key="(row: any) => row.id"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="count"
          :page="pagination.page"
@@ -257,6 +263,7 @@
          v-for="(img, index) in previewImages"
          :key="index"
          :src="img"
          fallback-src="/src/assets/element-img/error-img.png"
        />
      </n-image-group>
    </div>
src/views/service/ticket/feedbackType/index.vue
@@ -203,7 +203,13 @@
          :pagination="false"
          :bordered="false"
          :row-key="(row: FeedbackTypeItem) => row.id"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
      </div>
    </n-card>
src/views/service/ticket/workOrder/components/WorkOrderHandleModal.vue
@@ -259,6 +259,7 @@
                    width="100"
                    height="100"
                    class="rounded-lg"
                    fallback-src="/src/assets/element-img/error-img.png"
                  />
                </div>
              </n-image-group>
src/views/service/ticket/workOrder/detail.vue
@@ -358,6 +358,7 @@
                      :src="item.url"
                      width="120"
                      height="120"
                      fallback-src="/src/assets/element-img/error-img.png"
                    />
                  </div>
                </n-image-group>
@@ -526,6 +527,7 @@
      v-show="false"
      :src="previewUrl"
      :alt="previewName"
      fallback-src="/src/assets/element-img/error-img.png"
    />
    <WorkOrderModal
src/views/service/ticket/workOrder/index.vue
@@ -580,7 +580,13 @@
          :loading="loading"
          :scroll-x="1600"
          :row-key="(row: WorkOrderItem) => row.id"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="count"
          :page="pagination.page"
src/views/system/accountPermission/accountManagement/index.vue
@@ -514,7 +514,13 @@
          flex-height
          :bordered="false"
          @update:checked-row-keys="handleCheck"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </NDataTable>
        <Pagination
          :count="count"
          :page="pageParams.pageNum"
src/views/system/accountPermission/permissionGroup/index.vue
@@ -220,7 +220,13 @@
          :loading="loading"
          :bordered="false"
          :scroll-x="1100"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="count"
          :page="pageParams.pageNum"
src/views/system/appVersion/appVersionManage/index.vue
@@ -308,7 +308,13 @@
          flex-height
          :header-height="18"
          :row-height="18"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="pagination.itemCount"
          :page="pagination.page"
src/views/transaction/navigationAndRoutePlanning/index.vue
@@ -294,7 +294,13 @@
      </template>
      <div class="flex-1 flex flex-col h-full">
        <n-data-table class="flex-1" :columns="columns" :data="listData" :loading="loading" flex-height
          :bordered="false" :header-height="18" :row-height="18" />
          :bordered="false" :header-height="18" :row-height="18">
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination class="robotaxi-pagination mt-12px" :count="count" :page-size="pageParams.pageSize"
          :page="pageParams.pageNum" @change="changePage" />
      </div>
src/views/transaction/order/evaluationRecord/index.vue
@@ -214,7 +214,13 @@
    <n-card class="flex-1 robotaxi-table-card">
      <div class="flex-1 flex flex-col h-full">
        <n-data-table class="flex-1" :columns="columns" :data="listData" :loading="loading" flex-height
          :bordered="false" :header-height="18" :row-height="18" />
          :bordered="false" :header-height="18" :row-height="18">
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination class="robotaxi-pagination mt-12px" :count="count" :page="pageParams.pageNum"
          :page-size="pageParams.pageSize" @change="changePage" />
      </div>
src/views/transaction/order/orderManagement/index.vue
@@ -594,7 +594,13 @@
        <!-- table 区域 -->
        <n-data-table class="flex-1" :row-key="rowKey" :scroll-x="1950" :columns="columns" :data="listData"
          :loading="loading" flex-height :bordered="false" :header-height="18" :row-height="18"
          @update:checked-row-keys="handleCheck" />
          @update:checked-row-keys="handleCheck">
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination :count="count" :page="pageParams.pageNum" :page-size="pageParams.pageSize"
          class="robotaxi-pagination mt-12px" @change="changePage" />
      </div>
src/views/transaction/pricingManagement/index.vue
@@ -227,7 +227,13 @@
        </template>
        <div class="flex-1 flex flex-col h-full">
          <n-data-table class="flex-1" :columns="columns" :data="listData" :loading="loading" flex-height
            :bordered="false" :header-height="18" :row-height="18" />
            :bordered="false" :header-height="18" :row-height="18">
            <template #empty>
              <div class="flex-center">
                <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
              </div>
            </template>
          </n-data-table>
          <Pagination class="robotaxi-pagination mt-12px" :count="count" :page-size="pageParams.pageSize"
            :page="pageParams.pageNum" @change="changePage" />
        </div>
src/views/transaction/transactionStrategy/index.vue
@@ -421,14 +421,26 @@
                <n-form-item label="分单倾向配置" path="splitOrderPreference" required>
                </n-form-item>
                <div class=" w-[424px]">
                  <n-data-table :columns="columns" :data="data" :bordered="false"/>
                  <n-data-table :columns="columns" :data="data" :bordered="false">
                    <template #empty>
                      <div class="flex-center">
                        <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
                      </div>
                    </template>
                  </n-data-table>
                </div>
              </NSpace>
              <NSpace vertical :size="8">
                <n-form-item label="订单价值权重配置" path="orderValueWeight" required>
                </n-form-item>
                <div class=" w-[424px]">
                  <n-data-table :columns="columns1" :data="data1" :bordered="false"/>
                  <n-data-table :columns="columns1" :data="data1" :bordered="false">
                    <template #empty>
                      <div class="flex-center">
                        <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
                      </div>
                    </template>
                  </n-data-table>
                </div>
              </NSpace>
            </NSpace>
src/views/userContent/active/coupon/BatchSendModal.vue
@@ -217,7 +217,13 @@
        <div class="flex-1 overflow-hidden" style="min-height: 0;">
          <!-- 表格区域 -->
          <n-data-table style="height: 100%;" flex-height v-model:checked-row-keys="checkedRowKeys" :columns="columns" :data="list" :loading="loading"
            :bordered="false" :row-key="(row) => row.id" :pagination="false" />
            :bordered="false" :row-key="(row) => row.id" :pagination="false" >
            <template #empty>
              <div class="flex-center">
                <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
              </div>
            </template>
          </n-data-table>
        </div>
        <Pagination :count="total" :page="currentPage" :page-size="pageSize" style="margin-top: 12px; flex-shrink: 0;"
src/views/userContent/active/coupon/index.vue
@@ -279,7 +279,13 @@
          :bordered="false"
          flex-height
          :scroll-x="1280"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="total"
          :page="currentPage"
src/views/userContent/banner/index.vue
@@ -399,7 +399,13 @@
          flex-height
          :bordered="false"
          @update:checked-row-keys="handleCheck"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination
          :count="totalCount"
          :page="searchForm.pageNum"
src/views/userContent/contentCenter/components/ContentForm.vue
@@ -254,7 +254,7 @@
          v-if="contentType === 'image' && formModel.images.length > 0 && formModel.images[0].url"
          class="phone-screen"
        >
          <img :src="formModel.images[0].url" alt="预览内容">
          <img :src="formModel.images[0].url" alt="预览内容" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
        </div>
      </div>
    </div>
src/views/userContent/whitelistManagement/invitationCode/index.vue
@@ -427,7 +427,13 @@
          :header-height="18"
          :row-height="18"
          :scroll-x="1400"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination :count="count" :page-size="pageParams.pageSize" :page="pageParams.pageNum" class="robotaxi-pagination mt-12px" @change="changePage" />
      </div>
    </n-card>
src/views/userContent/whitelistManagement/whitelist/index.vue
@@ -503,7 +503,13 @@
          v-model:checked-row-keys="selectedRowKeys"
          flex-height
          :bordered="false"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </n-data-table>
        <Pagination :key="paginationKey" :count="totalCount" :page="model.pageNum" :page-size="model.pageSize" class="robotaxi-pagination mt-12px" @change="changePage" />
      </div>
    </n-card>
src/views/userContent/whitelistManagement/whitelistLog/index.vue
@@ -262,7 +262,13 @@
          :scroll-x="1110"
          :header-height="18"
          :row-height="18"
        />
        >
          <template #empty>
            <div class="flex-center">
              <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = '/src/assets/element-img/error-img.png' }">
            </div>
          </template>
        </NDataTable>
        <Pagination :count="count" :page="model.pageNum" :page-size="model.pageSize" class="robotaxi-pagination mt-12px" @change="changePage" />
      </div>
    </NCard>