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/im/home/composables/useMediaStreamElement.ts | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/src/views/im/home/composables/useMediaStreamElement.ts b/src/views/im/home/composables/useMediaStreamElement.ts
new file mode 100644
index 0000000..aa6ae09
--- /dev/null
+++ b/src/views/im/home/composables/useMediaStreamElement.ts
@@ -0,0 +1,40 @@
+import { type VNodeRef, watch } from 'vue'
+
+/**
+ * 鎶婂搷搴斿紡 MediaStream 鎸傚埌 `<video>` / `<audio>` 鍏冪礌鐨� srcObject 涓婏紱
+ * stream 涓虹┖鏃舵竻鎺� srcObject锛岄伩鍏嶈澶囧叧闂悗鐢婚潰鍗″湪鏈�鍚庝竴甯�
+ */
+export function useMediaStreamElement<T extends HTMLMediaElement>(
+ streamSource: () => MediaStream | null | undefined
+): VNodeRef {
+ let el: T | null = null
+ let currentStream: MediaStream | null | undefined
+
+ const syncStream = () => {
+ if (el) {
+ el.srcObject = currentStream || null
+ }
+ }
+
+ watch(
+ streamSource,
+ (stream) => {
+ currentStream = stream
+ syncStream()
+ },
+ { flush: 'post', immediate: true }
+ )
+
+ return (value) => {
+ if (value instanceof HTMLMediaElement) {
+ el = value as T
+ syncStream()
+ return
+ }
+
+ if (el) {
+ el.srcObject = null
+ }
+ el = null
+ }
+}
--
Gitblit v1.9.3