浏览代码

fix(license): 优化营业执照图片显示逻辑

- 调整图片容器条件渲染位置,避免重复判断
- 使用 el-image 组件 error 插槽优化空状态展示
- 新增无合同时的 empty 状态提示
- 样式优化,确保空状态居中显示

fix(currency): 完善金额格式化边界处理

- 增加对 null、undefined 和空字符串的判断
- 非数字或无效值时返回 "--" 占位符
- 提高函数健壮性,防止异常输入导致错误
congxuesong 3 周之前
父节点
当前提交
0ce97cdcdf
共有 2 个文件被更改,包括 21 次插入14 次删除
  1. 1 1
      src/utils/formatCurrency.ts
  2. 20 13
      src/views/licenseManagement/businessLicense.vue

+ 1 - 1
src/utils/formatCurrency.ts

@@ -1,6 +1,6 @@
 export function formatCurrency(num, decimalPlaces = 2, prefix = "", suffix = "") {
   // 处理非数字情况
-  if (isNaN(num)) return "0.00";
+  if (isNaN(num) || num === null || num === undefined || num === "") return "--";
 
   // 转换为数字并四舍五入
   const number = Number(num);

+ 20 - 13
src/views/licenseManagement/businessLicense.vue

@@ -1,22 +1,22 @@
 <template>
   <div class="card content-box">
     <div class="tip-text">如需更换请联系客服</div>
-    <div class="license-container">
+    <div class="license-container" v-if="licenseImage">
       <div class="license-display">
-        <el-image
-          v-if="licenseImage"
-          :src="licenseImage"
-          fit="contain"
-          class="license-image"
-          :preview-src-list="[licenseImage]"
-        />
-        <div v-else class="empty-image-box">
-          <el-icon class="empty-icon">
-            <Picture />
-          </el-icon>
-        </div>
+        <el-image :src="licenseImage" fit="contain" class="license-image" :preview-src-list="[licenseImage]">
+          <template #error>
+            <div class="empty-image-box">
+              <el-icon class="empty-icon">
+                <Picture />
+              </el-icon>
+            </div>
+          </template>
+        </el-image>
       </div>
     </div>
+    <div v-else class="empty-contract">
+      <el-empty description="暂无合同图片" :image-size="100" />
+    </div>
   </div>
 </template>
 
@@ -99,4 +99,11 @@ const initData = async () => {
     color: var(--el-text-color-placeholder);
   }
 }
+.empty-contract {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  min-height: 570px;
+  padding: 40px 20px;
+}
 </style>