From 6dbbc9c86afa617901ab603c6a82f6621b07bf06 Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期三, 26 八月 2026 09:54:13 +0800
Subject: [PATCH] feat(erp): 增加采购与销售订单订金校验逻辑,限制不得超过优惠后总金额 - **采购订单 (`src/views/erp/purchase/order/data.ts`)**: 为 `depositPrice`(支付订金)字段增加双重校验,动态绑定 `max` 属性到 `totalPrice`,并添加动态表单 rules,超出时提示“订金不能大于优惠后金额”。 - **销售订单 (`src/views/erp/sale/order/data.ts`)**: 复用同等防错机制,限制 `depositPrice`(收取订金)输入不能超过优惠后金额,超过时给予相应报错提示。

---
 src/views/ai/chat/index/modules/message/files.vue |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/views/ai/chat/index/modules/message/files.vue b/src/views/ai/chat/index/modules/message/files.vue
index 5220899..5cbc411 100644
--- a/src/views/ai/chat/index/modules/message/files.vue
+++ b/src/views/ai/chat/index/modules/message/files.vue
@@ -1,12 +1,16 @@
 <script setup lang="ts">
 import { computed } from 'vue';
 
-import { IconifyIcon } from '..\..\..\..\..\..\packages\icons\src';
-import { getFileIcon, getFileNameFromUrl, getFileTypeClass } from '..\..\..\..\..\..\packages\utils\src';
+import { IconifyIcon } from '@vben/icons';
+import { getFileIcon, getFileNameFromUrl, getFileTypeClass, isImage } from '@vben/utils';
+
+import { FilePreviewModal, useFilePreview } from '#/components/file-preview';
 
 const props = defineProps<{
   attachmentUrls?: string[];
 }>();
+
+const { openPreview, previewState } = useFilePreview();
 
 /** 杩囨护鎺夌┖鍊肩殑闄勪欢鍒楄〃 */
 const validAttachmentUrls = computed(() => {
@@ -15,7 +19,11 @@
 
 /** 鐐瑰嚮鏂囦欢 */
 function handleFileClick(url: string) {
-  window.open(url, '_blank');
+  if (isImage(url)) {
+    window.open(url, '_blank');
+  } else {
+    openPreview(url);
+  }
 }
 </script>
 
@@ -50,4 +58,9 @@
       </div>
     </div>
   </div>
+  <FilePreviewModal
+    v-model:visible="previewState.visible.value"
+    :file-url="previewState.fileUrl.value"
+    :file-name="previewState.fileName.value"
+  />
 </template>

--
Gitblit v1.9.3