浏览代码

有无仓单挂牌

li.shaoyi 3 年之前
父节点
当前提交
d94c4d34c7

+ 1 - 1
public/config/app.config.json

@@ -1,3 +1,3 @@
 {
-    "apiUrl": "http://192.168.31.203:8080/cfg?key=test_203"
+    "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204"
 }

+ 29 - 35
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/index.vue

@@ -11,8 +11,8 @@
       </div>
       <div class="mtp-modal__container form-row">
         <a-form ref="formRef" :model="formState" :rules="rules">
-          <a-form-item label="挂牌方式" name="marketid">
-            <a-select class="inlineFormSelect" v-model:value="formState.marketid" @change="handleMarket" placeholder="请选择挂牌方式">
+          <a-form-item label="交易市场" name="marketid">
+            <a-select class="inlineFormSelect" v-model:value="formState.marketid" @change="handleMarket" placeholder="请选择交易市场">
               <!-- <a-select-option :value="1">一口价</a-select-option>
                   <a-select-option :value="2">浮动价</a-select-option>
                   <a-select-option :value="3">贸易圈</a-select-option>-->
@@ -85,14 +85,14 @@
           <a-form-item label="履约模板" required>
             <div class="block">
               <div class="block-content">
-                <span :class="['clickBox', formState.permanceTempName ? 'white' : '']" @click="openPermance">{{ formState.permanceTempName ? formState.permanceTempName : '选择履约模板' }}</span>
-                <svg class="block-content__suffix icon svg-icon" aria-hidden="true" @click="openPermance">
+                <span :class="['clickBox', formState.permanceTempName ? 'white' : '']" @click="handlePermance">{{ formState.permanceTempName ? formState.permanceTempName : '选择履约模板' }}</span>
+                <svg class="block-content__suffix icon svg-icon" aria-hidden="true" @click="handlePermance">
                   <use xlink:href="#icon-moban" />
                 </svg>
               </div>
             </div>
           </a-form-item>
-          <a-form-item label="指定用户" v-if="isAgreemt()">
+          <a-form-item label="指定用户" v-if="isAgreemt()" required>
             <div class="block">
               <div class="block-content">
                 <div class="block-content">
@@ -175,7 +175,6 @@ import { hdWROrder } from '@/services/proto/warehousetrade';
 import { WRGoodsInfo } from '@/services/proto/warehousetrade/interface';
 import { addSubscribeQuotation, removeSubscribeQuotation } from '@/services/socket/quota';
 import Bus from '@/utils/eventBus';
-import { getGoodsPrice } from '@/views/market/market-spot/components/buy-sell-market/setup';
 import { message } from 'ant-design-vue';
 import moment from 'moment';
 import { v4 as uuidv4, v4 } from 'uuid';
@@ -216,32 +215,17 @@ export default defineComponent({
     const { goodsGroup, goodsList, groupsChange, findGoodsCode } = handleGoods();
 
     // 获取仓单贸易市场
-    const { spotMarkets } = queryMarketSection(false)
+    const { spotMarkets, handleMarket } = queryMarketSection(true)
 
-    // 切换市场
-    function handleMarket(value: number) {
-      formState.friends = [];
-      const market = spotMarkets.value.find((e) => e.marketid === value);
-      if (market) {
-        switch (market.listingmode) {
-          // 浮动价
-          case 2: {
-            formState.WRPriceType = 2;
-          }
-          // 贸易圈
-          case 3: {
-            formState.isSpecified = 1;
-          }
-          // 指定价
-          case 4: {
-            formState.isSpecified = 2;
-          }
-          default: {
-            formState.WRPriceType = 1;
-            formState.isSpecified = 0;
-          }
-        }
+    // 点选履约模板
+    function handlePermance() {
+      // 必须先选择市场再选择对应的履约模板
+      if (!formState.marketid) {
+        message.info('请先选择市场')
+        return
       }
+
+      openPermance()
     }
 
     // 切换商品组
@@ -328,7 +312,7 @@ export default defineComponent({
             // WRFactorTypeId: '2121626946446000001', // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
             WRFactorTypeId: props.selectedRow.wrfactortypeid, // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
             IsSpecified: res.isSpecified, // 是否指定对手 0:不指定 1:指定 uint32
-            MatchAccIDs: [], // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
+            MatchAccIDs: res.friends, // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
             OrderQty: res.OrderQty, // 委托数量(可挂部分数据量) ======
             DeliveryGoodsID: props.selectedRow.deliverygoodsid, // 交割商品商品ID
             WRPriceType: res.WRPriceType, // 价格方式 1:固定价 2:浮动价
@@ -357,6 +341,14 @@ export default defineComponent({
             MarginFlag: 0,
             DelistMinQty: res.DelistMinQty, // 起摘数量
           };
+
+          if (isAgreemt()) {
+            if (!formState.friends.length) {
+              message.error('请选择用户');
+              return;
+            }
+          }
+
           if (isBlocs()) {
             // 贸易圈 是后加的, 处理贸易圈
             // if (!formState.permanceTempName) {
@@ -370,7 +362,6 @@ export default defineComponent({
               }
             }
             const obj = {
-              MatchAccIDs: res.friends,
               TimevalidType: 3, // 时间有效类型 1:当日有效 2:本周有效 3:指定时间有效 4:一直有效
               MarginFlag: 1, // 挂牌是否指定保证金 0:否 1:是
               MarginAlgorithm: 1, // 指定保证金方式 1:比率 2:固定
@@ -385,6 +376,8 @@ export default defineComponent({
             cancel(true);
           });
         });
+      } else {
+        message.error('市场信息未获取到,请联系管理员!');
       }
     }
 
@@ -429,7 +422,8 @@ export default defineComponent({
       handleMarket,
       spotMarkets,
       handleSelectedAccount,
-    };
-  },
-});
+      handlePermance
+    }
+  }
+})
 </script>

+ 1 - 0
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/interface.ts

@@ -9,4 +9,5 @@ export interface ListingForm extends BlocsListingForm {
     goodsid: number | undefined,
     marketid: number | undefined,   // 当前选择挂牌市场ID
     isSpecified: number, // 是否指定对手
+    listingmode: number, // 挂牌方式 1:一口价 2:浮动价 3:贸易圈 4:协议指定
 }

+ 51 - 10
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/setup.ts

@@ -33,6 +33,7 @@ function initFormData(): ListingForm {
         permaceTempId: 0,
         marketid: undefined,
         isSpecified: 0,
+        listingmode: 0,
     }
 }
 
@@ -88,19 +89,23 @@ export function handleGoods() {
 
 
 export function handleNumAndPrice() {
-    function isFloat() {
-        return formState.marketid === 2;
-    }
+    // 一口价
     function isFixed() {
-        return formState.marketid === 1;
+        return formState.listingmode === 1;
     }
+    // 浮动价
+    function isFloat() {
+        return formState.listingmode === 2;
+    }
+    // 贸易圈
     function isBlocs() {
-        return formState.marketid === 3;
+        return formState.listingmode === 3;
     }
     // 协议指定
     function isAgreemt() {
-        return formState.marketid === 4;
+        return formState.listingmode === 4;
     }
+
     // 获取选中的资金账号
     const hasRules = () => getRules().length > 0
     //  摘牌金额
@@ -158,11 +163,47 @@ export function queryMarketSection(isPre: boolean) {
         })
         spotMarkets.value = resMarkets
 
-        const market = resMarkets.find((e) => e.listingmode === formState.WRPriceType)
-        if (market) {
-            formState.marketid = market.marketid;
+        if (resMarkets.length) {
+            const marketid = resMarkets[0].marketid;
+            handleMarket(marketid);
         }
     })
 
-    return { spotMarkets };
+    const handleMarket = (marketid: number) => {
+        formState.friends = [];
+        formState.marketid = marketid;
+        const market = spotMarkets.value.find((e) => e.marketid === marketid);
+        if (market) {
+            formState.listingmode = market.listingmode
+            switch (market.listingmode) {
+                // 浮动价
+                case 2: {
+                    formState.WRPriceType = 2;
+                    formState.isSpecified = 0;
+                    break;
+                }
+                // 贸易圈
+                case 3: {
+                    formState.WRPriceType = 1;
+                    formState.isSpecified = 1;
+                    break;
+                }
+                // 指定价
+                case 4: {
+                    formState.WRPriceType = 1;
+                    formState.isSpecified = 2;
+                    break;
+                }
+                default: {
+                    formState.WRPriceType = 1;
+                    formState.isSpecified = 0;
+                }
+            }
+        }
+    }
+
+    return {
+        spotMarkets,
+        handleMarket
+    };
 }

+ 17 - 12
src/views/order/setup.ts

@@ -139,21 +139,26 @@ export const useOrderWarrant = (hasWR: 0 | 1) => {
     }
     // 挂牌方式
     function getWrPriceType({ wrpricetype, isspecified, canbargain }: WrOrderDetail) {
-        let result = '--'
-        if (isspecified) {
-            if (canbargain) {
-                result = '贸易圈-可议价'
-            } else {
-                result = '贸易圈'
+        switch (isspecified) {
+            case 0: {
+                if (wrpricetype === 1) {
+                    return '一口价'
+                } else {
+                    return '浮动价'
+                }
             }
-        } else {
-            if (wrpricetype === 1) {
-                result = '一口价'
-            } else {
-                result = '浮动价'
+            case 1: {
+                if (canbargain) {
+                    return '贸易圈-可议价'
+                } else {
+                    return '贸易圈'
+                }
+            }
+            case 2: {
+                return '协议指定'
             }
         }
-        return result
+        return '--';
     }
     // 是否显示 议价单 按钮
     function isShowBarginBtn({ isspecified, canbargain }: WrOrderDetail) {

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

@@ -89,7 +89,7 @@
               </div>
             </div>
           </a-form-item>
-          <a-form-item label="指定用户" v-if="isAgreemt()">
+          <a-form-item label="指定用户" v-if="isAgreemt()" required>
             <div class="block">
               <div class="block-content">
                 <div class="block-content">
@@ -303,7 +303,7 @@ export default defineComponent({
             // WRFactorTypeId: '2121626946446000001', // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
             WRFactorTypeId: props.selectedRow.wrfactortypeid, // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
             IsSpecified: res.isSpecified, // 是否指定对手 0:不指定 1:指定 uint32
-            MatchAccIDs: [], // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
+            MatchAccIDs: res.friends, // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
             OrderQty: res.OrderQty, // 委托数量(可挂部分数据量) ======
             DeliveryGoodsID: props.selectedRow.deliverygoodsid, // 交割商品商品ID
             WRPriceType: res.WRPriceType, // 价格方式 1:固定价 2:浮动价
@@ -332,6 +332,14 @@ export default defineComponent({
             MarginFlag: 0,
             DelistMinQty: res.DelistMinQty, // 起摘数量
           };
+
+          if (isAgreemt()) {
+            if (!formState.friends.length) {
+              message.error('请选择用户');
+              return;
+            }
+          }
+
           if (isBlocs()) {
             // 贸易圈 是后加的, 处理贸易圈
             // if (!formState.permanceTempName) {
@@ -345,7 +353,6 @@ export default defineComponent({
               }
             }
             const obj = {
-              MatchAccIDs: res.friends,
               TimevalidType: 3, // 时间有效类型 1:当日有效 2:本周有效 3:指定时间有效 4:一直有效
               MarginFlag: 1, // 挂牌是否指定保证金 0:否 1:是
               MarginAlgorithm: 1, // 指定保证金方式 1:比率 2:固定
@@ -355,6 +362,7 @@ export default defineComponent({
             };
             Object.assign(param, obj);
           }
+
           requestResultLoadingAndInfo(hdWROrder, param, loading, ['挂牌成功', '挂牌失败:']).then(() => {
             Bus.$emit('spotTrade', true);
             cancel(true);

+ 10 - 2
src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/setup.ts

@@ -173,19 +173,24 @@ export function queryMarketSection(isPre: boolean) {
         const market = spotMarkets.value.find((e) => e.marketid === marketid);
         if (market) {
             formState.listingmode = market.listingmode
-            debugger
             switch (market.listingmode) {
                 // 浮动价
                 case 2: {
                     formState.WRPriceType = 2;
+                    formState.isSpecified = 0;
+                    break;
                 }
                 // 贸易圈
                 case 3: {
+                    formState.WRPriceType = 1;
                     formState.isSpecified = 1;
+                    break;
                 }
                 // 指定价
                 case 4: {
+                    formState.WRPriceType = 1;
                     formState.isSpecified = 2;
+                    break;
                 }
                 default: {
                     formState.WRPriceType = 1;
@@ -195,5 +200,8 @@ export function queryMarketSection(isPre: boolean) {
         }
     }
 
-    return { spotMarkets, handleMarket };
+    return {
+        spotMarkets,
+        handleMarket
+    }
 }