li.shaoyi 3 years ago
parent
commit
e83ed52918

+ 17 - 15
src/hooks/form/verify.ts

@@ -46,31 +46,33 @@ export const useVerifyListingNum = <T extends object, k extends keyof T>(formSta
 export const useVerifyListingBasis = <T, k extends keyof T>(formState: T, key: k) => {
     const v_basis = async (rule: RuleObject, value: number) => {
         if (formState[key]) {
-            if (value) {
+            if (typeof value === 'number') {
                 const goodsCode = getGoodsById(formState[key] as unknown as number)?.goodscode as string;
                 const quote = getQuoteDayInfoByCode(goodsCode);
                 if (quote) {
                     const { basisdownratio, basisupratio } = getRules()[0];
-                    // 最小值 = 基差下限百分比 * 昨收 * -1
-                    const minValue = (basisdownratio * quote.preclose * -1).toFixed(2);
-                    // 最大值 = 基差上限百分比 * 昨收
-                    const maxValue = (basisupratio * quote.preclose).toFixed(2);
+                    // 最小值 = 基差下限百分比 * 昨盘价 * -1
+                    const minValue = (basisdownratio * quote.presettle * -1).toFixed(2);
+                    // 最大值 = 基差上限百分比 * 昨盘价
+                    const maxValue = (basisupratio * quote.presettle).toFixed(2);
 
-                    if (value < Number(minValue)) {
-                        return Promise.reject(`基差不能小于${minValue}`);
+                    if (value >= Number(minValue) && value <= Number(maxValue)) {
+                        return Promise.resolve();
+                    } else {
+                        if (value < Number(minValue)) {
+                            return Promise.reject(`基差不能小于${minValue}`);
+                        }
+                        if (value > Number(maxValue)) {
+                            return Promise.reject(`基差不能大于${maxValue}`);
+                        }
                     }
-                    if (value > Number(maxValue)) {
-                        return Promise.reject(`基差不能大于${maxValue}`);
-                    }
-                    return Promise.resolve();
                 }
-                return Promise.reject('商品合约不存在');
+                return Promise.reject('合约不存在');
             } else {
-                // return Promise.reject('请输入基差');
-                return Promise.resolve();
+                return Promise.reject('请输入基差');
             }
         } else {
-            return Promise.reject('请选择商品合约');
+            return Promise.reject('请选择合约');
         }
     };
     return { v_basis }

+ 1 - 1
src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/index.vue

@@ -280,7 +280,7 @@ export default defineComponent({
     // 估算价
     function getPrice() {
       let result = '--';
-      if (goodsCode.value) {
+      if (goodsCode.value && typeof formState.PriceMove === 'number') {
         const goodsPrice = getQuoteDayInfoByCodeFindPrice(goodsCode.value);
         if (goodsPrice && goodsPrice !== '--') {
           // 有实时行情价格