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/crm/receivable/modules/form.vue | 20 ++++++++++++++++++--
1 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/views/crm/receivable/modules/form.vue b/src/views/crm/receivable/modules/form.vue
index e826402..d8a3672 100644
--- a/src/views/crm/receivable/modules/form.vue
+++ b/src/views/crm/receivable/modules/form.vue
@@ -1,11 +1,11 @@
<script lang="ts" setup>
import type { CrmReceivableApi } from '#/api/crm/receivable';
-import { computed, ref } from 'vue';
+import { computed, ref, watch } from 'vue';
import { useVbenForm, useVbenModal } from '@vben/common-ui';
-import { message } from 'ant-design-vue';
+import { Alert, message } from 'ant-design-vue';
import { getContractSimpleList } from '#/api/crm/contract';
import {
@@ -31,6 +31,7 @@
const emit = defineEmits(['success']);
const formData = ref<Partial<CrmReceivableApi.Receivable>>();
+const showInvoiceHint = ref(false);
const getTitle = computed(() => {
return formData.value?.id
? $t('ui.actionTitle.edit', ['鍥炴'])
@@ -48,6 +49,14 @@
schema: useFormSchema(),
showDefaultActions: false,
});
+
+/** 鐩戝惉鍚堝悓閫夋嫨锛屾彁绀哄厛寮�绁ㄥ悗鍥炴 */
+watch(
+ () => formApi.form?.values?.contractId,
+ (val) => {
+ showInvoiceHint.value = !!val;
+ },
+);
/** 鏋勫缓鏂板鍥炴鐨勯濉〃鍗� */
async function buildCreateFormData(
@@ -135,6 +144,13 @@
<template>
<Modal :title="getTitle" class="w-2/5">
+ <Alert
+ v-if="showInvoiceHint"
+ type="warning"
+ message="璇峰厛瀹屾垚寮�绁ㄥ苟涓婁紶鍙戠エ闄勪欢锛屽啀杩涜鍥炴鎿嶄綔"
+ show-icon
+ class="mb-4"
+ />
<Form class="mx-4" />
</Modal>
</template>
--
Gitblit v1.9.3