Browse Source

仓的贸易

li.shaoyi 3 years ago
parent
commit
2c682739a1

+ 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"
 }
 }

+ 35 - 55
src/assets/styles/mixin.less

@@ -2475,7 +2475,41 @@ input:-internal-autofill-selected {
 }
 }
 
 
 .topTableHeight {
 .topTableHeight {
-    height: calc(100% - 31px);
+    flex          : 1;
+    overflow      : hidden;
+    display       : flex;
+    flex-direction: column;
+
+    &__container {
+        flex          : 1;
+        overflow      : hidden;
+        display       : flex;
+        flex-direction: column;
+    }
+
+    .condSecondTabTableHalfTop {
+        .ant-table {
+            .ant-table-thead {
+                tr {
+                    th {
+                        background: @m-green1;
+                    }
+                }
+            }
+        }
+    }
+
+    .halfBottom {
+        .ant-table {
+            .ant-table-thead {
+                tr {
+                    th {
+                        background: @m-red2;
+                    }
+                }
+            }
+        }
+    }
 }
 }
 
 
 .topTableHeight40 {
 .topTableHeight40 {
@@ -2680,25 +2714,6 @@ input:-internal-autofill-selected {
 
 
 // 上半部分表格高度
 // 上半部分表格高度
 .topTableHeight {
 .topTableHeight {
-    .srcollYTable {
-        .ant-table {
-            .ant-table-body {
-                min-height: calc(100vh - 378px);
-                max-height: calc(100vh - 378px);
-                background: @m-black2;
-            }
-
-            .ant-table-placeholder {
-                height: calc(100vh - 378px);
-
-                .ant-empty.ant-empty-normal {
-                    margin: 0;
-                }
-            }
-
-        }
-    }
-
     .srcollYTableNoBottom {
     .srcollYTableNoBottom {
         .ant-table {
         .ant-table {
             .ant-table-body {
             .ant-table-body {
@@ -2799,41 +2814,6 @@ input:-internal-autofill-selected {
         }
         }
     }
     }
 
 
-    .condSecondTabTableHalfTop {
-        .ant-table {
-            .ant-table-body {
-                min-height: calc((100vh - 443px)/2 - 13px);
-                max-height: calc((100vh - 443px)/2 - 13px);
-                background: @m-black2;
-            }
-
-            .ant-table-thead {
-                tr {
-                    th {
-                        background: @m-green1;
-                        color     : @m-grey17;
-                    }
-                }
-            }
-
-            .ant-table-placeholder {
-                height: calc((100vh - 443px)/2 - 13px);
-            }
-        }
-    }
-
-    .halfBottom {
-        .ant-table {
-            .ant-table-thead {
-                tr {
-                    th {
-                        background: @m-red2;
-                    }
-                }
-            }
-        }
-    }
-
     .condSecondTabTableHalfTopNoBottom {
     .condSecondTabTableHalfTopNoBottom {
         .ant-table {
         .ant-table {
             .ant-table-body {
             .ant-table-body {

+ 1 - 1
src/common/methods/request/resultInfo.ts

@@ -46,7 +46,7 @@ export function commonResultInfo(fn: Promise<any>, sign: ResultInfo, loading: Re
  * @returns
  * @returns
  */
  */
 export async function requestResultLoadingAndInfo(fn: any, param: any, loading: Ref<boolean>, messageInfo: [string, string] = ['成功', '失败'], isDefaultMsg = false) {
 export async function requestResultLoadingAndInfo(fn: any, param: any, loading: Ref<boolean>, messageInfo: [string, string] = ['成功', '失败'], isDefaultMsg = false) {
-    console.log('请求接口参数: ', param);
+    console.log('Proto请求参数: ', param);
     const [sucInfo, errInfo] = messageInfo
     const [sucInfo, errInfo] = messageInfo
     loading.value = true;
     loading.value = true;
     return new Promise((resolve, reject) => {
     return new Promise((resolve, reject) => {

+ 2 - 0
src/services/dataCenter/index.ts

@@ -1,6 +1,7 @@
 import { reactive, toRefs } from 'vue';
 import { reactive, toRefs } from 'vue';
 import { LoginaccountModel, MarketrunModal, SelectedAccountModel, UserAccountModel, UserInfoModel } from './initDataModel/account';
 import { LoginaccountModel, MarketrunModal, SelectedAccountModel, UserAccountModel, UserInfoModel } from './initDataModel/account';
 import { NeedClearSourceDataType, NoClearSourceDataType } from './interface';
 import { NeedClearSourceDataType, NoClearSourceDataType } from './interface';
+import eventBus from '@/utils/eventBus/index';
 
 
 /**
 /**
  * 需要清空数据中心
  * 需要清空数据中心
@@ -44,6 +45,7 @@ class DataCenter {
 
 
     /** 重置所有数据 */
     /** 重置所有数据 */
     public reset(): void {
     public reset(): void {
+        eventBus.$offall('moneyChangedNtf_UI'); // 取消资金变动通知
         this.data = toRefs<NeedClearSourceDataType>(reactive(Object.assign({}, needClearSourceData)));
         this.data = toRefs<NeedClearSourceDataType>(reactive(Object.assign({}, needClearSourceData)));
     }
     }
 
 

+ 11 - 1
src/services/proto/warehousetrade/index.ts

@@ -5,7 +5,9 @@ import {
     WROutApplyReq, WROutCancelReq, WROutConfirmReq, WRTradeFinanceBuyCancelReq
     WROutApplyReq, WROutCancelReq, WROutConfirmReq, WRTradeFinanceBuyCancelReq
 } from "@/services/proto/warehousetrade/interface";
 } from "@/services/proto/warehousetrade/interface";
 import { protoMiddleware } from "@/services/socket/protobuf/buildReq";
 import { protoMiddleware } from "@/services/socket/protobuf/buildReq";
+import { IMessageHead } from "@/services/socket/protobuf/proto";
 import { HeadEnum } from "@/services/socket/protobuf/protoHeader";
 import { HeadEnum } from "@/services/socket/protobuf/protoHeader";
+import { getInTaAccount } from '@/services/bus/account';
 
 
 
 
 /**
 /**
@@ -13,7 +15,15 @@ import { HeadEnum } from "@/services/socket/protobuf/protoHeader";
  * @param param
  * @param param
  */
  */
 export const hdWROrder = (param: HdWROrderReq): Promise<any> => {
 export const hdWROrder = (param: HdWROrderReq): Promise<any> => {
-    return protoMiddleware<HdWROrderReq>(param, 'HdWROrderReq', 'HdWROrderRsp', HeadEnum.tradeMode17)
+    if (param.MarketID) {
+        const header: IMessageHead = {
+            MarketID: param.MarketID,
+            AccountID: getInTaAccount(),
+        }
+        return protoMiddleware<HdWROrderReq>(param, 'HdWROrderReq', 'HdWROrderRsp', header)
+    } else {
+        return protoMiddleware<HdWROrderReq>(param, 'HdWROrderReq', 'HdWROrderRsp', HeadEnum.tradeMode17)
+    }
 }
 }
 
 
 /**
 /**

+ 1 - 0
src/services/proto/warehousetrade/interface.ts

@@ -42,6 +42,7 @@ export interface HdWROrderReq {
     WRStandardID: number; // uint32 现货品种ID
     WRStandardID: number; // uint32 现货品种ID
     FactoryItems: DGFactoryItems; // DGFactoryItems 要素类型明细集合(没有仓单要素ID填写)
     FactoryItems: DGFactoryItems; // DGFactoryItems 要素类型明细集合(没有仓单要素ID填写)
     DelistMinQty: number; // uint64 起摘数量
     DelistMinQty: number; // uint64 起摘数量
+    MarketID?: number; // 市场ID
 
 
 }
 }
 // 持仓单挂牌应答 0 22 16
 // 持仓单挂牌应答 0 22 16

+ 15 - 11
src/services/socket/protobuf/buildReq.ts

@@ -80,7 +80,7 @@ function buildSoleProtoReq(protobufName: string, reqParams: type.ReqParams) {
         if (ReqKeysMap.has(lowerKey)) {
         if (ReqKeysMap.has(lowerKey)) {
             Req[ReqKeysMap.get(lowerKey)] = reqParams[item];
             Req[ReqKeysMap.get(lowerKey)] = reqParams[item];
         } else {
         } else {
-            console.error(`$报文包中不存在 ${item} 属性}`);
+            console.warn(`报文包中不存在 ${item} 属性}`);
         }
         }
     }
     }
     console.log('Req', Req)
     console.log('Req', Req)
@@ -185,19 +185,23 @@ function parseSoleProtoRsp(rspPackage: any, funCodeName: string): ParseRsp {
     isErrer(rspPackage, funCodeName);
     isErrer(rspPackage, funCodeName);
     const reqPackage = ProtobufCtr.generateProtoContent(funCodeName, rspPackage.content);
     const reqPackage = ProtobufCtr.generateProtoContent(funCodeName, rspPackage.content);
     const { RetCode, Status, RetDesc } = reqPackage;
     const { RetCode, Status, RetDesc } = reqPackage;
-
     if (RetCode !== null) {
     if (RetCode !== null) {
-        if (RetCode === 0) {
-            return { isSuccess: true, result: reqPackage };
-        }
-        if (RetCode === -1) { // 管理端错误消息
-            return { isSuccess: false, result: RetDesc };
-        }
-        if (RetDesc) {
-            return { isSuccess: false, result: Buffer.from(RetDesc, 'base64').toString() };
+        switch (RetCode) {
+            case 0: {
+                return { isSuccess: true, result: reqPackage };
+            }
+            // 管理端错误消息
+            case -1: {
+                return { isSuccess: false, result: RetDesc };
+            }
+            case 12018: {
+                if (RetDesc) {
+                    return { isSuccess: false, result: Buffer.from(RetDesc, 'base64').toString() };
+                }
+            }
         }
         }
         const errMsg = getErrorInfoByCode(String(RetCode));
         const errMsg = getErrorInfoByCode(String(RetCode));
-        const result = errMsg ? errMsg : `未知错误:${RetCode}`;
+        const result = errMsg ? errMsg : `未知错误:${RetDesc || RetCode}`;
         return { isSuccess: false, result };
         return { isSuccess: false, result };
     } else {
     } else {
         // 银行 业务 以 Status 作为判断依据
         // 银行 业务 以 Status 作为判断依据

+ 5 - 0
src/utils/eventBus/index.ts

@@ -70,4 +70,9 @@ export default new (class Bus {
             delete this.subscribe[enentType];
             delete this.subscribe[enentType];
         }
         }
     }
     }
+
+    // 清空所有订阅
+    $clear() {
+        this.subscribe = {};
+    }
 })();
 })();

+ 8 - 10
src/views/market/market-spot/index.vue

@@ -1,10 +1,8 @@
 <template>
 <template>
   <div class="exposure">
   <div class="exposure">
-    <div class="topTableHeight">
-      <FristMenu :list="marketsSetion" :value="'marketsectionname'" @selectMenu="selectSection" />
-      <component :is="componentId" v-if="componentId"></component>
-      <ThirdMenu :list="markets" :value="'marketname'" @selectMenu="onSelectMarket" />
-    </div>
+    <FristMenu :list="marketsSetion" :value="'marketsectionname'" @selectMenu="selectSection" />
+    <component :is="componentId" v-if="componentId"></component>
+    <ThirdMenu :list="markets" :value="'marketname'" @selectMenu="onSelectMarket" />
   </div>
   </div>
 </template>
 </template>
 
 
@@ -87,10 +85,10 @@ export default defineComponent({
 
 
 <style lang="less">
 <style lang="less">
 .home {
 .home {
-  .withus {
-    cursor: pointer;
-    margin-top: 35px;
-    padding-bottom: 25px;
-  }
+    .withus {
+        cursor: pointer;
+        margin-top: 35px;
+        padding-bottom: 25px;
+    }
 }
 }
 </style>
 </style>

+ 29 - 26
src/views/market/market-spot/warehouse_receipt_trade/warehouse_receipt_trade_designate/components/buy/index.vue

@@ -1,34 +1,36 @@
 <template>
 <template>
   <!-- 仓单贸易 贸易圈挂牌 卖-->
   <!-- 仓单贸易 贸易圈挂牌 卖-->
-  <div>
-    <a-table :columns="columns" :class="['srcollYTable', isBottom ? 'condSecondTabTableHalfTop' : 'condSecondTabTableHalfTopNoBottom', 'halfBottom',  tableList.length ? 'noPlaceHolder' : 'hasPlaceHolder']" :scroll="{ x: '100%', y: isBottom ? 'calc((100vh- 443px)/2 - 14px)' : 'calc((100vh - 196px)/2 - 16px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
-      <template #index="{ index }">
-        <span>{{ index + 1 }}</span>
-      </template>
-      <template #marginvalue="{ text }">
-        <span>{{ (text * 100).toFixed(2) + '%'}}</span>
-      </template>
-      <!-- 议价 -->
-      <template #canbargain="{ text }">
-        <span>{{ text ? '是' : '否' }}</span>
-      </template>
-      <!-- 整单 -->
-      <template #canpart="{ text }">
-        <span>{{ text === 1 ? '否' : '是' }}</span>
-      </template>
-      <!-- 挂牌有效期 -->
-      <template #validtime="{ text }">
-        <span>{{ formatTime(text, 'd') }}</span>
-      </template>
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="filterBtn(firstBtn, selectedRow)"></contextMenu>
-    <component :is="componentId" v-if="componentId" :componentId="componentId" :selectedRow="selectedRow" :buyOrSell="BuyOrSell.Buy" @cancel="closeComponent"></component>
-  </div>
+  <mtp-table-scroll>
+    <template #default="{ scroll }">
+      <a-table :columns="columns" class="srcollYTable halfBottom" :scroll="scroll" :pagination="false" :loading="loading" :customRow="Rowclick" :rowKey="(record, index) => index" :data-source="tableList">
+        <template #index="{ index }">
+          <span>{{ index + 1 }}</span>
+        </template>
+        <template #marginvalue="{ text }">
+          <span>{{ (text * 100).toFixed(2) + '%'}}</span>
+        </template>
+        <!-- 议价 -->
+        <template #canbargain="{ text }">
+          <span>{{ text ? '是' : '否' }}</span>
+        </template>
+        <!-- 整单 -->
+        <template #canpart="{ text }">
+          <span>{{ text === 1 ? '否' : '是' }}</span>
+        </template>
+        <!-- 挂牌有效期 -->
+        <template #validtime="{ text }">
+          <span>{{ formatTime(text, 'd') }}</span>
+        </template>
+      </a-table>
+    </template>
+  </mtp-table-scroll>
+  <!-- 右键 -->
+  <!-- <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="filterBtn(firstBtn, selectedRow)"></contextMenu> -->
+  <component :is="componentId" v-if="componentId" :componentId="componentId" :selectedRow="selectedRow" :buyOrSell="BuyOrSell.Buy" @cancel="closeComponent"></component>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-import { EnumRouterName } from '@/common/constants/enumRouterName';
+import MtpTableScroll from '@/common/components/tableScroll/index.vue';
 import { queryTableList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, ComposeTableParam } from '@/common/export/commonTable';
 import { queryTableList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, ComposeTableParam } from '@/common/export/commonTable';
 import { QueryOrderQuoteMyqQsp, QueryOrderQuoteMyqReq, QueryOrderQuoteReq, WrOrderQuote } from '@/services/go/wrtrade/interface';
 import { QueryOrderQuoteMyqQsp, QueryOrderQuoteMyqReq, QueryOrderQuoteReq, WrOrderQuote } from '@/services/go/wrtrade/interface';
 import { queryOrderQuote, queryQueryOrderQuoteMyq } from '@/services/go/wrtrade';
 import { queryOrderQuote, queryQueryOrderQuoteMyq } from '@/services/go/wrtrade';
@@ -44,6 +46,7 @@ import Bus from '@/utils/eventBus/index';
 export default defineComponent({
 export default defineComponent({
   name: 'warehouse_receipt_trade_blocs_buy',
   name: 'warehouse_receipt_trade_blocs_buy',
   components: {
   components: {
+    MtpTableScroll,
     contextMenu,
     contextMenu,
     warehouse_receipt_trade_blocs_delisting: defineAsyncComponent(() => import('../delisting/index.vue')),
     warehouse_receipt_trade_blocs_delisting: defineAsyncComponent(() => import('../delisting/index.vue')),
     warehouse_receipt_trade_blocs_bargain_delisting: defineAsyncComponent(() => import('../delisting/index.vue')),
     warehouse_receipt_trade_blocs_bargain_delisting: defineAsyncComponent(() => import('../delisting/index.vue')),

+ 29 - 26
src/views/market/market-spot/warehouse_receipt_trade/warehouse_receipt_trade_designate/components/sell/index.vue

@@ -1,34 +1,36 @@
 <template>
 <template>
   <!-- 仓单贸易 贸易圈挂牌 买-->
   <!-- 仓单贸易 贸易圈挂牌 买-->
-  <div>
-    <a-table :columns="columns" :class="['srcollYTable', isBottom ? 'condSecondTabTableHalfTop' : 'condSecondTabTableHalfTopNoBottom',  tableList.length ? 'noPlaceHolder' : 'hasPlaceHolder']" :scroll="{ x: '100%', y: isBottom ? 'calc((100vh- 443px)/2 - 14px)' : 'calc((100vh - 196px)/2 - 16px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
-      <template #index="{ index }">
-        <span>{{ index + 1 }}</span>
-      </template>
-      <template #marginvalue="{ text }">
-        <span>{{ (text * 100).toFixed(2) + '%'}}</span>
-      </template>
-      <!-- 议价 -->
-      <template #canbargain="{ text }">
-        <span>{{ text ? '是' : '否' }}</span>
-      </template>
-      <!-- 整单 -->
-      <template #canpart="{ text }">
-        <span>{{ text === 1 ? '否' : '是' }}</span>
-      </template>
-      <!-- 挂牌有效期 -->
-      <template #validtime="{ text }">
-        <span>{{ formatTime(text, 'd') }}</span>
-      </template>
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="filterBtn(firstBtn, selectedRow)"></contextMenu>
-    <component :is="componentId" v-if="componentId" :componentId="componentId" :selectedRow="selectedRow" :buyOrSell="BuyOrSell.sell" @cancel="closeComponent"></component>
-  </div>
+  <mtp-table-scroll>
+    <template #default="{ scroll }">
+      <a-table :columns="columns" class="srcollYTable condSecondTabTableHalfTop" :scroll="scroll" :pagination="false" :loading="loading" :customRow="Rowclick" :rowKey="(record, index) => index" :data-source="tableList">
+        <template #index="{ index }">
+          <span>{{ index + 1 }}</span>
+        </template>
+        <template #marginvalue="{ text }">
+          <span>{{ (text * 100).toFixed(2) + '%'}}</span>
+        </template>
+        <!-- 议价 -->
+        <template #canbargain="{ text }">
+          <span>{{ text ? '是' : '否' }}</span>
+        </template>
+        <!-- 整单 -->
+        <template #canpart="{ text }">
+          <span>{{ text === 1 ? '否' : '是' }}</span>
+        </template>
+        <!-- 挂牌有效期 -->
+        <template #validtime="{ text }">
+          <span>{{ formatTime(text, 'd') }}</span>
+        </template>
+      </a-table>
+    </template>
+  </mtp-table-scroll>
+  <!-- 右键 -->
+  <!-- <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="filterBtn(firstBtn, selectedRow)"></contextMenu> -->
+  <component :is="componentId" v-if="componentId" :componentId="componentId" :selectedRow="selectedRow" :buyOrSell="BuyOrSell.sell" @cancel="closeComponent"></component>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
-import { EnumRouterName } from '@/common/constants/enumRouterName';
+import MtpTableScroll from '@/common/components/tableScroll/index.vue';
 import { queryTableList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, ComposeTableParam } from '@/common/export/commonTable';
 import { queryTableList, contextMenu, defineAsyncComponent, defineComponent, ModalEnum, ComposeTableParam } from '@/common/export/commonTable';
 import { QueryOrderQuoteMyqQsp, QueryOrderQuoteMyqReq, QueryOrderQuoteReq, WrOrderQuote } from '@/services/go/wrtrade/interface';
 import { QueryOrderQuoteMyqQsp, QueryOrderQuoteMyqReq, QueryOrderQuoteReq, WrOrderQuote } from '@/services/go/wrtrade/interface';
 import { queryOrderQuote, queryQueryOrderQuoteMyq } from '@/services/go/wrtrade';
 import { queryOrderQuote, queryQueryOrderQuoteMyq } from '@/services/go/wrtrade';
@@ -44,6 +46,7 @@ import Bus from '@/utils/eventBus/index';
 export default defineComponent({
 export default defineComponent({
   name: 'warehouse_receipt_trade_blocs_sell',
   name: 'warehouse_receipt_trade_blocs_sell',
   components: {
   components: {
+    MtpTableScroll,
     contextMenu,
     contextMenu,
     warehouse_receipt_trade_blocs_delisting: defineAsyncComponent(() => import('../delisting/index.vue')),
     warehouse_receipt_trade_blocs_delisting: defineAsyncComponent(() => import('../delisting/index.vue')),
     warehouse_receipt_trade_blocs_bargain_delisting: defineAsyncComponent(() => import('../delisting/index.vue')),
     warehouse_receipt_trade_blocs_bargain_delisting: defineAsyncComponent(() => import('../delisting/index.vue')),

+ 33 - 38
src/views/market/market-spot/warehouse_receipt_trade/warehouse_receipt_trade_designate/index.vue

@@ -1,17 +1,12 @@
 <template>
 <template>
   <!-- 仓单贸易 贸易圈挂牌-->
   <!-- 仓单贸易 贸易圈挂牌-->
   <div class="topTableHeight">
   <div class="topTableHeight">
-    <Filter :enumName="name"
-            @search="search"
-            @buy="buyOpen" />
-    <div>
+    <Filter :enumName="name" @search="search" @buy="buyOpen" />
+    <div class="topTableHeight__container">
       <Sell />
       <Sell />
       <Buy />
       <Buy />
     </div>
     </div>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent"></component>
+    <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -27,36 +22,36 @@ import { ref } from 'vue';
 import Bus from '@/utils/eventBus';
 import Bus from '@/utils/eventBus';
 
 
 export default defineComponent({
 export default defineComponent({
-    name: EnumRouterName.warehouse_receipt_trade_blocs,
-    components: {
-        Filter,
-        Buy,
-        Sell,
-        postBuying: defineAsyncComponent(() => import('./components/post-buying/index.vue')),
-    },
-    setup() {
-        const isBottom = getShowBottomValue();
-        const selectedRow = ref();
-        function queryFn() {
-            Bus.$emit('spotTrade', true);
-        }
-        // 控制异步组件
-        const { componentId, closeComponent } = handleModalComponent(queryFn, selectedRow);
-        function search() {}
-        function buyOpen(value: any) {
-            componentId.value = 'postBuying';
-            selectedRow.value = value;
-        }
-        return {
-            isBottom,
-            search,
-            buyOpen,
-            componentId,
-            closeComponent,
-            selectedRow,
-            name: EnumRouterName.warehouse_receipt_trade_blocs,
-        };
-    },
+  name: EnumRouterName.warehouse_receipt_trade_blocs,
+  components: {
+    Filter,
+    Buy,
+    Sell,
+    postBuying: defineAsyncComponent(() => import('./components/post-buying/index.vue')),
+  },
+  setup() {
+    const isBottom = getShowBottomValue();
+    const selectedRow = ref();
+    function queryFn() {
+      Bus.$emit('spotTrade', true);
+    }
+    // 控制异步组件
+    const { componentId, closeComponent } = handleModalComponent(queryFn, selectedRow);
+    function search() { }
+    function buyOpen(value: any) {
+      componentId.value = 'postBuying';
+      selectedRow.value = value;
+    }
+    return {
+      isBottom,
+      search,
+      buyOpen,
+      componentId,
+      closeComponent,
+      selectedRow,
+      name: EnumRouterName.warehouse_receipt_trade_blocs,
+    };
+  },
 });
 });
 </script>
 </script>
 <style lang="less">
 <style lang="less">

+ 13 - 7
src/views/market/market-spot/warehouse_receipt_trade/warehouse_receipt_trade_floating_price/index.vue

@@ -1,15 +1,20 @@
 <template>
 <template>
   <!-- 仓单贸易 浮动价挂牌-->
   <!-- 仓单贸易 浮动价挂牌-->
-  <div class="topTableHeight topTableHeight_413">
-    <Filter :enumName="name" @search="search" @filterGoods="filterGoods" @buy="buyOpen" />
-    <a-table :columns="columns" :class="['srcollYTable', isBottom ? 'condSecondTabTable' : 'condSecondTabTableNoBottom', tableList.length ? 'noPlaceHolder' : 'hasPlaceHolder']" :scroll="{ x: '100%', y: isBottom ? 'calc(100vh- 443px)' : 'calc(100vh - 196px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList"></a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="firstBtn"></contextMenu>
-    <component :is="componentId" v-if="componentId" :enumName="name" :selectedRow="selectedRow" @cancel="closeComponent"></component>
-  </div>
+  <mtp-table-scroll>
+    <template #header>
+      <Filter :enumName="name" @search="search" @filterGoods="filterGoods" @buy="buyOpen" />
+    </template>
+    <template #default="{ scroll }">
+      <a-table :columns="columns" class="srcollYTable" :scroll="scroll" :pagination="false" :loading="loading" :customRow="Rowclick" :rowKey="(record, index) => index" :data-source="tableList"></a-table>
+    </template>
+  </mtp-table-scroll>
+  <!-- 右键 -->
+  <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="firstBtn"></contextMenu>
+  <component :is="componentId" v-if="componentId" :enumName="name" :selectedRow="selectedRow" @cancel="closeComponent"></component>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
+import MtpTableScroll from '@/common/components/tableScroll/index.vue';
 import { getShowBottomValue } from '@/common/config/constrolBottom';
 import { getShowBottomValue } from '@/common/config/constrolBottom';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, queryTableList } from '@/common/export/commonTable';
 import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, queryTableList } from '@/common/export/commonTable';
@@ -24,6 +29,7 @@ import Filter from '../../components/filter/index.vue';
 export default defineComponent({
 export default defineComponent({
   name: EnumRouterName.warehouse_receipt_trade_floating_price,
   name: EnumRouterName.warehouse_receipt_trade_floating_price,
   components: {
   components: {
+    MtpTableScroll,
     contextMenu,
     contextMenu,
     Filter,
     Filter,
     warehouse_receipt_trade_floating_price_spot_trade_warehouse_detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
     warehouse_receipt_trade_floating_price_spot_trade_warehouse_detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),

+ 13 - 7
src/views/market/market-spot/warehouse_receipt_trade/warehouse_receipt_trade_price/index.vue

@@ -1,15 +1,20 @@
 <template>
 <template>
   <!-- 仓单贸易 一口价挂牌-->
   <!-- 仓单贸易 一口价挂牌-->
-  <div class="topTableHeight_413 topTableHeight">
-    <Filter :enumName="name" @search="search" @buy="buyOpen" />
-    <a-table :columns="columns" :class="['srcollYTable', isBottom ? 'condSecondTabTable' : 'condSecondTabTableNoBottom', tableList.length ? 'noPlaceHolder' : 'hasPlaceHolder']" :scroll="{ x: '100%', y: isBottom ? 'calc(100vh- 443px)' : 'calc(100vh - 196px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList"></a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="firstBtn"></contextMenu>
-    <component :is="componentId" v-if="componentId" :enumName="name" :selectedRow="selectedRow" @cancel="closeComponent"></component>
-  </div>
+  <mtp-table-scroll>
+    <template #header>
+      <Filter :enumName="name" @search="search" @buy="buyOpen" />
+    </template>
+    <template #default="{ scroll }">
+      <a-table :columns="columns" class="srcollYTable" :scroll="scroll" :pagination="false" :loading="loading" :customRow="Rowclick" :rowKey="(record, index) => index" :data-source="tableList"></a-table>
+    </template>
+  </mtp-table-scroll>
+  <!-- 右键 -->
+  <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="firstBtn"></contextMenu>
+  <component :is="componentId" v-if="componentId" :enumName="name" :selectedRow="selectedRow" @cancel="closeComponent"></component>
 </template>
 </template>
 
 
 <script lang="ts">
 <script lang="ts">
+import MtpTableScroll from '@/common/components/tableScroll/index.vue';
 import { getShowBottomValue } from '@/common/config/constrolBottom';
 import { getShowBottomValue } from '@/common/config/constrolBottom';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, queryTableList } from '@/common/export/commonTable';
 import { ComposeTableParam, contextMenu, defineAsyncComponent, defineComponent, queryTableList } from '@/common/export/commonTable';
@@ -22,6 +27,7 @@ import Filter from '../../components/filter/index.vue';
 export default defineComponent({
 export default defineComponent({
   name: EnumRouterName.warehouse_receipt_trade_price,
   name: EnumRouterName.warehouse_receipt_trade_price,
   components: {
   components: {
+    MtpTableScroll,
     contextMenu,
     contextMenu,
     Filter,
     Filter,
     warehouse_receipt_trade_price_spot_trade_warehouse_detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
     warehouse_receipt_trade_price_spot_trade_warehouse_detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),

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

@@ -558,4 +558,4 @@ export default defineComponent({
 .ml5 {
 .ml5 {
     margin-left: 5px;
     margin-left: 5px;
 }
 }
-</style>;
+</style>

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

@@ -15,7 +15,7 @@
 
 
 <script lang="ts">
 <script lang="ts">
 import { enumOrderComponents } from '@/common/constants/enumOrderComponents';
 import { enumOrderComponents } from '@/common/constants/enumOrderComponents';
-import { queryTableList, BtnList, defineAsyncComponent, defineComponent } from '@/common/export/commonTable';
+import { queryTableList, BtnList, defineComponent } from '@/common/export/commonTable';
 import { queryWrPosition } from '@/services/go/wrtrade';
 import { queryWrPosition } from '@/services/go/wrtrade';
 import { QueryWrPositionReq, WrPosition } from '@/services/go/wrtrade/interface';
 import { QueryWrPositionReq, WrPosition } from '@/services/go/wrtrade/interface';
 import { getRecordItemTab } from '@/common/setup/order/orderData';
 import { getRecordItemTab } from '@/common/setup/order/orderData';