Forráskód Böngészése

Merge branch 'master' of http://47.101.159.18:3000/Muchinfo/MTP2.0_WEB

huangbin 4 éve
szülő
commit
bb6e26ff62

+ 20 - 4
src/assets/styles/mixin.less

@@ -1802,6 +1802,10 @@ input:-internal-autofill-selected {
         .ant-btn+.ant-btn {
             margin-left: 10px;
         }
+        .btn-list {
+            position: absolute;
+            right: 10px;
+        }
     }
 }
 // 买卖大厅表格
@@ -1811,6 +1815,9 @@ input:-internal-autofill-selected {
         table {
             border: 0;
         }
+        .ant-table-content {
+            background: rgba(@m-red1, .1) !important;
+        }
         .ant-table-thead {
             tr {
                 box-shadow: 0px 1px 0px 0px #2E3539;
@@ -1827,6 +1834,9 @@ input:-internal-autofill-selected {
                     text-overflow: ellipsis;
                     overflow: hidden;
                 }
+                th:first-child {
+                    display: none;
+                }
             }
         }
         .ant-table-tbody {
@@ -1843,10 +1853,13 @@ input:-internal-autofill-selected {
                     text-overflow: ellipsis;
                     overflow: hidden;
                 }
-                td:not(:first-child) {
-                    background: rgba(@m-green0, .1);
+                td:not(:first-child :nth-child(2)) {
+                    background: rgba(@m-red1, .1) !important;
                     color: @m-white1;
                 }
+                td:first-child {
+                    display: none;
+                }
             }
             // tr.ant-table-expanded-row:hover { //tr.ant-table-expanded-row,
             //     td {
@@ -1879,10 +1892,13 @@ input:-internal-autofill-selected {
 
 .sellHallTable {
     .ant-table {
+        .ant-table-content {
+            background: rgba(@m-green0, .1);
+        }
         .ant-table-tbody {
             tr {
-                td:not(:first-child) {
-                    background: rgba(@m-red1, .1);
+                td:not(:first-child :nth-child(2)) {
+                    background: rgba(@m-green0, .1) !important;
                 }
             }
         }

+ 49 - 3
src/assets/styles/symbol_no_color/demo_index.html

@@ -55,6 +55,18 @@
           <ul class="icon_lists dib-box">
           
             <li class="dib">
+              <span class="icon iconfont">&#xe62d;</span>
+                <div class="name">用户</div>
+                <div class="code-name">&amp;#xe62d;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe69e;</span>
+                <div class="name">用户</div>
+                <div class="code-name">&amp;#xe69e;</div>
+              </li>
+          
+            <li class="dib">
               <span class="icon iconfont">&#xe66a;</span>
                 <div class="name">方案 (71)</div>
                 <div class="code-name">&amp;#xe66a;</div>
@@ -324,9 +336,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1627805731690') format('woff2'),
-       url('iconfont.woff?t=1627805731690') format('woff'),
-       url('iconfont.ttf?t=1627805731690') format('truetype');
+  src: url('iconfont.woff2?t=1627897449468') format('woff2'),
+       url('iconfont.woff?t=1627897449468') format('woff'),
+       url('iconfont.ttf?t=1627897449468') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -353,6 +365,24 @@
         <ul class="icon_lists dib-box">
           
           <li class="dib">
+            <span class="icon iconfont icon-yonghu4"></span>
+            <div class="name">
+              用户
+            </div>
+            <div class="code-name">.icon-yonghu4
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-yonghu3"></span>
+            <div class="name">
+              用户
+            </div>
+            <div class="code-name">.icon-yonghu3
+            </div>
+          </li>
+          
+          <li class="dib">
             <span class="icon iconfont icon-fangan"></span>
             <div class="name">
               方案 (71)
@@ -759,6 +789,22 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-yonghu4"></use>
+                </svg>
+                <div class="name">用户</div>
+                <div class="code-name">#icon-yonghu4</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-yonghu3"></use>
+                </svg>
+                <div class="name">用户</div>
+                <div class="code-name">#icon-yonghu3</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-fangan"></use>
                 </svg>
                 <div class="name">方案 (71)</div>

+ 11 - 3
src/assets/styles/symbol_no_color/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 2293216 */
-  src: url('iconfont.woff2?t=1627805731690') format('woff2'),
-       url('iconfont.woff?t=1627805731690') format('woff'),
-       url('iconfont.ttf?t=1627805731690') format('truetype');
+  src: url('iconfont.woff2?t=1627897449468') format('woff2'),
+       url('iconfont.woff?t=1627897449468') format('woff'),
+       url('iconfont.ttf?t=1627897449468') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,14 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-yonghu4:before {
+  content: "\e62d";
+}
+
+.icon-yonghu3:before {
+  content: "\e69e";
+}
+
 .icon-fangan:before {
   content: "\e66a";
 }

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
src/assets/styles/symbol_no_color/iconfont.js


+ 14 - 0
src/assets/styles/symbol_no_color/iconfont.json

@@ -6,6 +6,20 @@
   "description": "",
   "glyphs": [
     {
+      "icon_id": "18789269",
+      "name": "用户",
+      "font_class": "yonghu4",
+      "unicode": "e62d",
+      "unicode_decimal": 58925
+    },
+    {
+      "icon_id": "9037996",
+      "name": "用户",
+      "font_class": "yonghu3",
+      "unicode": "e69e",
+      "unicode_decimal": 59038
+    },
+    {
       "icon_id": "8594782",
       "name": "方案 (71)",
       "font_class": "fangan",

BIN
src/assets/styles/symbol_no_color/iconfont.ttf


BIN
src/assets/styles/symbol_no_color/iconfont.woff


BIN
src/assets/styles/symbol_no_color/iconfont.woff2


+ 41 - 40
src/layout/components/header.vue

@@ -1,50 +1,51 @@
 <template>
-  <div>
-    <!-- <img src="../../assets/images/logoHeader.png" /> -->
-    <img src="../../assets/images/headLogo.jpg" />
-    <span>云融</span>
-    <!-- <span>深圳市多元世纪信息技术股份有限公司</span> -->
-  </div>
-  <div class="m-layout-header-right">
-    <div @click="openDrawer">
-      <span>{{ getUserName() }},您好!</span>
+    <div>
+        <!-- <img src="../../assets/images/logoHeader.png" /> -->
+        <img src="../../assets/images/headLogo.jpg" />
+        <span>云融</span>
+        <!-- <span>深圳市多元世纪信息技术股份有限公司</span> -->
     </div>
-    <div class="relative">
-      <!-- <a-input-search ref="userNameInput"
+    <div class="m-layout-header-right">
+        <div @click="openDrawer">
+            <span>{{ getUserName() }},您好!</span>
+        </div>
+        <div class="relative">
+            <!-- <a-input-search ref="userNameInput"
                           class="searchInput"
                           readonly
                           placeholder="请输入代码/名称"
                           @pressEnter="search">
-          </a-input-search> -->
-      <!-- <a-icon type="search" /> -->
-    </div>
-    <div class="news-container">
-      <a-badge @click="openNotice"
-               :dot="getUnReadNoticeLength() > 0">
-        <svg class="icon svg-icon"
-             aria-hidden="true">
-          <use xlink:href="#icon-xiaoxi"></use>
-        </svg>
-      </a-badge>
-    </div>
-    <div>
-      <a-popover v-model:visible="visible"
-                 trigger="click"
-                 placement="bottomRight">
-        <template #content>
-          <div v-for="item in setMenu"
-               @click="chooseSetMenu(item.path)"
-               :key="item.path">{{ item.name }}</div>
-        </template>
-        <a-avatar :size="24">
-          <template #icon>
-            <UserOutlined />
-          </template>
-        </a-avatar>
-      </a-popover>
-      <Setting />
+            </a-input-search>-->
+            <!-- <a-icon type="search" /> -->
+        </div>
+        <div class="news-container">
+            <a-badge @click="openNotice" :dot="getUnReadNoticeLength() > 0">
+                <svg class="icon svg-icon" aria-hidden="true">
+                    <use xlink:href="#icon-xiaoxi" />
+                </svg>
+            </a-badge>
+        </div>
+        <div>
+            <a-popover v-model:visible="visible" trigger="click" placement="bottomRight">
+                <template #content>
+                    <div
+                        v-for="item in setMenu"
+                        @click="chooseSetMenu(item.path)"
+                        :key="item.path"
+                    >{{ item.name }}</div>
+                </template>
+                <a-avatar :size="24">
+                    <template #icon>
+                        <!-- <SettingFilled /> -->
+                        <svg class="icon svg-icon" aria-hidden="true">
+                            <use xlink:href="#icon-yonghu4" />
+                        </svg>
+                    </template>
+                </a-avatar>
+            </a-popover>
+            <Setting />
+        </div>
     </div>
-  </div>
 </template>
 
 <script lang="ts">

+ 26 - 24
src/views/market/spot_trade/components/buy-sell-market/components/buy/index.vue

@@ -1,28 +1,30 @@
 <template>
-  <!-- 买大厅 -->
-  <a-table :columns="columns"
-           class="buyHallTable"
-           :scroll="{ x: '100%', y: 'calc(100vh- 510px)' }"
-           :pagination="false"
-           :loading="loading"
-           :expandedRowKeys="expandedRowKeys"
-           :customRow="Rowclick"
-           rowKey="key"
-           :data-source="tableList">
-    <!-- 额外的展开行 -->
-    <template #expandedRowRender="{ record }">
-      <BtnList :btnList="btnList"
-               :record="record"
-               @click="openComponent" />
-    </template>
-  </a-table>
-  <component :is="componentId"
-             v-if="componentId"
-             :selectedRow="selectedRow"
-             :buyOrSell="BuyOrSell.buy"
-             :enumName="enumName"
-             :parantSelectedRow="parantSelectedRow"
-             @cancel="closeComponent"></component>
+    <!-- 买大厅 -->
+    <a-table
+        :columns="columns"
+        class="buyHallTable"
+        :scroll="{ x: '100%', y: 'calc(100vh- 470px)' }"
+        :pagination="false"
+        :loading="loading"
+        :expandedRowKeys="expandedRowKeys"
+        :customRow="Rowclick"
+        rowKey="key"
+        :data-source="tableList"
+    >
+        <!-- 额外的展开行 -->
+        <template #expandedRowRender="{ record }">
+            <BtnList :btnList="btnList" :record="record" @click="openComponent" />
+        </template>
+    </a-table>
+    <component
+        :is="componentId"
+        v-if="componentId"
+        :selectedRow="selectedRow"
+        :buyOrSell="BuyOrSell.buy"
+        :enumName="enumName"
+        :parantSelectedRow="parantSelectedRow"
+        @cancel="closeComponent"
+    ></component>
 </template>
 
 <script lang="ts">

+ 30 - 0
src/views/market/spot_trade/components/buy-sell-market/components/sell/index.vue

@@ -1,4 +1,33 @@
 <template>
+<<<<<<< HEAD
+    <!-- 卖大厅 -->
+
+    <a-table
+        :columns="columns"
+        class="sellHallTable"
+        :scroll="{ x: '100%', y: 'calc(100vh - 470px)' }"
+        :pagination="false"
+        :loading="loading"
+        :expandedRowKeys="expandedRowKeys"
+        :customRow="Rowclick"
+        rowKey="key"
+        :data-source="tableList"
+    >
+        <!-- 额外的展开行 -->
+        <template #expandedRowRender="{ record }">
+            <BtnList :btnList="btnList" :record="record" @click="openComponent" />
+        </template>
+    </a-table>
+    <component
+        :is="componentId"
+        v-if="componentId"
+        :selectedRow="selectedRow"
+        :enumName="enumName"
+        :buyOrSell="BuyOrSell.sell"
+        :parantSelectedRow="parantSelectedRow"
+        @cancel="closeComponent"
+    ></component>
+=======
   <!-- 卖大厅 -->
   <a-table :columns="columns"
            class="sellHallTable"
@@ -23,6 +52,7 @@
              :buyOrSell="BuyOrSell.sell"
              :parantSelectedRow="parantSelectedRow"
              @cancel="closeComponent"></component>
+>>>>>>> 9da7742240d665a65bdcfef615364c3de97ef348
 </template>
 
 <script lang="ts">

+ 88 - 85
src/views/market/spot_trade/components/buy-sell-market/index.vue

@@ -1,89 +1,84 @@
 <template>
-  <!-- 买卖大厅 -->
-  <div class="buy-sell-market">
-    <div class="buy-sell-market-title">
-      <a class="backIcon"
-         @click="cancel">
-        <LeftOutlined />
-      </a>
-      <div class="titleBtn">
-        <div class="name">{{selectedRow.deliverygoodsname}}</div>
-        <div class="arrowRightIcon"></div>
-      </div>
-      <div class="titleBtn titleBtn2">
-        <div class="arrowLeftIcon"></div>
-        <div class="name">{{selectedRow.wrgoodsname}}</div>
-        <div class="arrowRightIcon"></div>
-      </div>
-      <div class="titleBtn titleBtn3">
-        <div class="arrowLeftIcon"></div>
-        <div class="name">{{selectedRow.warehousename}}</div>
-      </div>
-      <div class="green">
-        <div class="numBlock"
-             v-if="isFloatPrice()">
-          <div class="first">卖基差</div>
-          <div class="last">{{selectedRow.sellpricemove}}</div>
+    <!-- 买卖大厅 -->
+    <div class="buy-sell-market">
+        <div class="buy-sell-market-title">
+            <a class="backIcon" @click="cancel">
+                <LeftOutlined />
+            </a>
+            <div class="titleBtn">
+                <div class="name">{{selectedRow.deliverygoodsname}}</div>
+                <div class="arrowRightIcon"></div>
+            </div>
+            <div class="titleBtn titleBtn2">
+                <div class="arrowLeftIcon"></div>
+                <div class="name">{{selectedRow.wrgoodsname}}</div>
+                <div class="arrowRightIcon"></div>
+            </div>
+            <div class="titleBtn titleBtn3">
+                <div class="arrowLeftIcon"></div>
+                <div class="name">{{selectedRow.warehousename}}</div>
+            </div>
+            <div class="green">
+                <div class="numBlock" v-if="isFloatPrice()">
+                    <div class="first">卖基差</div>
+                    <div class="last">{{selectedRow.sellpricemove}}</div>
+                </div>
+                <div class="numBlock" v-else>
+                    <div class="first">卖价</div>
+                    <div class="last">{{selectedRow.sellprice}}</div>
+                </div>
+                <div class="numBlock">
+                    <div class="first">卖量</div>
+                    <div class="last">{{selectedRow.sellqty}}</div>
+                </div>
+            </div>
+            <div class="red ml35">
+                <div class="numBlock" v-if="isFloatPrice()">
+                    <div class="first">买基差</div>
+                    <div class="last">{{selectedRow.buypricemove}}</div>
+                </div>
+                <div class="numBlock" v-else>
+                    <div class="first">买价</div>
+                    <div class="last">{{selectedRow.buyprice}}</div>
+                </div>
+                <div class="numBlock">
+                    <div class="first">买量</div>
+                    <div class="last">{{selectedRow.buyqty}}</div>
+                </div>
+            </div>
+            <div class="market" v-if="isFloatPrice()">
+                <div class="first">{{selectedRow.goodscode}}</div>
+                <div class="last red">{{getGoodsPrice()}}</div>
+                <LineChartOutlined />
+            </div>
+            <BtnList :btnList="temp(firstBtn)" :record="selectedRow" @click="openComponent" />
         </div>
-        <div class="numBlock"
-             v-else>
-          <div class="first">卖价</div>
-          <div class="last">{{selectedRow.sellprice}}</div>
-        </div>
-        <div class="numBlock">
-          <div class="first">卖量</div>
-          <div class="last">{{selectedRow.sellqty}}</div>
-        </div>
-      </div>
-      <div class="red ml35">
-        <div class="numBlock"
-             v-if="isFloatPrice()">
-          <div class="first">买基差</div>
-          <div class="last">{{selectedRow.buypricemove}}</div>
-        </div>
-        <div class="numBlock"
-             v-else>
-          <div class="first">买价</div>
-          <div class="last">{{selectedRow.buyprice}}</div>
-        </div>
-        <div class="numBlock">
-          <div class="first">买量</div>
-          <div class="last">{{selectedRow.buyqty}}</div>
-        </div>
-      </div>
-      <div class="market"
-           v-if="isFloatPrice()">
-        <div class="first">{{selectedRow.goodscode}}</div>
-        <div class="last red">{{getGoodsPrice()}}</div>
-        <LineChartOutlined />
-      </div>
-      <BtnList :btnList="temp(firstBtn)"
-               :record="selectedRow"
-               @click="openComponent" />
+        <a-row class="buySellHall">
+            <a-col :span="12" v-if="sellMarket.isMarket">
+                <Sell
+                    :enumName="enumName"
+                    ref="sellRef"
+                    :parantSelectedRow="selectedRow"
+                    :btnList="sellMarket.btnList"
+                />
+            </a-col>
+            <a-col :span="12" v-if="buyMarket.isMarket">
+                <Buy
+                    :enumName="enumName"
+                    ref="buy"
+                    :parantSelectedRow="selectedRow"
+                    :btnList="buyMarket.btnList"
+                />
+            </a-col>
+        </a-row>
+        <component
+            :is="componentId"
+            v-if="componentId"
+            :selectedRow="selectedRow"
+            :enumName="enumName"
+            @cancel="closeComponent"
+        ></component>
     </div>
-    <a-row>
-      <a-col :span="12"
-             v-if="sellMarket.isMarket">
-        <Sell :enumName="enumName"
-              ref="sellRef"
-              :parantSelectedRow="selectedRow"
-              :btnList="sellMarket.btnList" />
-      </a-col>
-      <a-col :span="12"
-             v-if="buyMarket.isMarket">
-        <Buy :enumName="enumName"
-             ref="buy"
-             :parantSelectedRow="selectedRow"
-             :btnList="buyMarket.btnList" />
-      </a-col>
-
-    </a-row>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               :enumName="enumName"
-               @cancel="closeComponent"></component>
-  </div>
 </template>
 
 <script lang="ts">
@@ -191,6 +186,14 @@ export default defineComponent({
 });
 </script>
 <style lang="less">
-.buy-sell-market {
-}
+// .buy-sell-market {
+//     .ant-row.buySellHall {
+//         .ant-col:first-child {
+//             background: rgba(@m-green0, 0.1);
+//         }
+//         .ant-col:last-child {
+//             background: rgba(@m-red1, 0.1);
+//         }
+//     }
+// }
 </style>

+ 121 - 0
src/views/market/spot_trade/components/buy-sell-market/setup.ts

@@ -2,6 +2,7 @@ import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { TableKey } from '@/common/methods/table/interface';
 import { getTableColumns, getTableEvent, queryTableList } from "@/common/setup/table";
 import { ref } from 'vue';
+import {WrMarketTradeConfig} from "@/services/go/wrtrade/interface";
 
 
 export function handleBuyAndSellList<T>(menuType: EnumRouterName, isDetail: boolean, tableName: keyof TableKey) {
@@ -81,4 +82,124 @@ export function handleChildComponentMethod() {
         childRef.value?.queryTableAction();
     }
     return { childRef, loadChildComponentData }
+}
+
+export enum WrTradePriceEnum {
+    OnePriceDeListBuy,   // 一口价 摘牌买入
+    OnePriceDeListSale,  // 一口价 摘牌卖出
+    FloatPriceDeListBuy, // 浮动价 摘牌买入
+    FloatPriceDeListSale,// 浮动价 摘牌卖出
+}
+
+/**
+ * 我负责计算摘牌页面需要显示的值
+ * 这里分四种情况
+ * 若履约保证金为0,则不显示括号内容
+ * type 1: 一口价 摘牌买入 摘牌最大数量 = min 挂牌数量,可用资金/(买方履约保证金比例*挂牌价格)                                                                            摘牌金额=挂牌价格*摘牌数量
+ * type 2: 一口价 摘牌卖出 摘牌最大数量 = min(现货库存可用数量,挂牌数量),现货库存数量为所选仓单数量 && 履约保证金=卖方履约保证金比例*摘牌金额,履约保证金为0则括号内容不显示       摘牌金额=挂牌价格*摘牌数量
+ * type 3: 浮动价 摘牌买入 摘牌最大数量 = min {可用资金/(买方履约保证金比例*估算总价),挂牌数量} && 履约保证金=履约保证金比例*估算总额,履约保证金为0则括号内容不显示 && 估算总额=估算总价*摘牌数量 && 估算总价=挂牌基差+期货合约价 && 期货合约取价顺序:现价->实时结算价->昨结算价
+ * type 4:浮动价 摘牌卖出 摘牌最大数量 = min(现货库存可用数量,挂牌数量),现货库存数量为所选仓单数量 && 履约保证金=履约保证金比例*估算总额
+ *
+ * type 1:  in => 输入 {
+ *     挂牌价格, 可用资金, 摘牌数量,  市场交易参数配置, 挂牌数量
+ * } out => {
+ *     履约保证金, 摘牌金额, 摘牌最大数量
+ * }
+ *
+ * type 2: in => 输入 {
+ *     挂牌价格, 仓单数量, 摘牌数量,  市场交易参数配置, 挂牌数量
+ * } out => {
+ *     履约保证金, 摘牌金额, 摘牌最大数量
+ * }
+ *
+ * type 3: in => 输入 {
+ *     期货合约价 + 基差, 可用资金,  摘牌数量,  市场交易参数配置, 挂牌数量
+ * } out => {
+ *     履约保证金, 估算总额, 摘牌最大数量
+ * }
+ *
+ * type 4: in => 输入 {
+ *     期货合约价 + 基差, 仓单数量, 摘牌数量, 市场交易参数配置, 挂牌数量
+ * } out => {
+ *     履约保证金, 估算总额, 摘牌最大数量
+ * }
+ */
+export function ListedViewModel(enumType : WrTradePriceEnum){
+
+    let marginPrice: number = 0  // 履约保证金
+    let amount: number = 0 // 摘牌金额 或 估算总额
+    let maxNum: number = 0 // 摘牌最大数量
+
+    // 负责把输入的数据 转换成 ui需要显示的数据
+    function getCalculate(param: WrParam) {
+        switch (enumType) {
+            case WrTradePriceEnum.FloatPriceDeListBuy: //  浮动价 摘牌买入
+            case WrTradePriceEnum.OnePriceDeListBuy:   //  一口价 摘牌买入
+                if (param.availableFunds === undefined) { // 这里防止异常
+                    maxNum = 0
+                } else {
+                    // 摘牌最大数量 = min 挂牌数量,可用资金/(买方履约保证金比例*挂牌价格)
+                    if (param.config.buymarginalgorithm === 1) {  //  买方保证金模式 1: 比率 2: 固定
+                        maxNum = Math.min(param.listedNum, param.availableFunds as number / param.config.buymarginvalue * param.orderPrice)
+                    } else {
+                        maxNum = Math.min(param.listedNum, param.availableFunds as number / (param.config.buymarginvalue + param.orderPrice))
+                    }
+                }
+                // 摘牌金额 = 挂牌价格 * 摘牌数量
+                amount = param.orderPrice * param.deListNum
+                // 履约保证金=卖方履约保证金比例*摘牌金额,履约保证金为0则括号内容不显示
+                if (param.config.sellmarginalgorithm === 1) { //卖方保证金方式 - 1:比率 2:固定
+                    marginPrice = param.config.sellmarginvalue * amount
+                } else {
+                    marginPrice = param.config.sellmarginvalue + amount
+                }
+                break
+            case WrTradePriceEnum.FloatPriceDeListSale: // 浮动价 摘牌卖出
+            case WrTradePriceEnum.OnePriceDeListSale:  // 一口价  摘牌卖出
+                if (param.warehouseNum === undefined) { // 这里防止异常
+                    maxNum = 0
+                }else{
+                    // 摘牌最大数量 = min(现货库存可用数量,挂牌数量),现货库存数量为所选仓单数量
+                    maxNum = Math.min(param.listedNum, param.warehouseNum as number)
+                }
+                // 摘牌金额 = 挂牌价格 * 摘牌数量
+                amount = param.orderPrice * param.deListNum
+                // 履约保证金=卖方履约保证金比例*摘牌金额,履约保证金为0则括号内容不显示
+                if (param.config.sellmarginalgorithm === 1) { //卖方保证金方式 - 1:比率 2:固定
+                    marginPrice = param.config.sellmarginvalue * amount
+                } else {
+                    marginPrice = param.config.sellmarginvalue + amount
+                }
+                break
+        }
+    }
+
+    const uiParam: UiParam = {
+        marginPrice: marginPrice,
+        amount: amount,
+        maxNum: maxNum
+    }
+
+    return {getCalculate , uiParam}
+}
+
+/**
+ * 需要传入的数据集合
+ */
+export interface WrParam {
+    orderPrice : number  // 挂牌价格 (浮动价是期货合约价 + 基差)  也传这个
+    availableFunds?: number //可用资金(当前账号的可用)
+    warehouseNum?: number  // 仓单数量(如果当前是用自己仓单卖商品给其他人 则需要传自己仓单商品的总数)
+    deListNum: number     // 摘牌数量 (当前选择数量)
+    listedNum: number     // 挂牌数量  (当前单据的挂牌数量)
+    config: WrMarketTradeConfig // 市场交易参数配置 (请求配置返回)
+}
+
+/**
+ *  需要给ui的数据集合
+ */
+export interface UiParam {
+    marginPrice: number  // 履约保证金
+    amount: number       // 摘牌金额 或 估算总额
+    maxNum: number       // 摘牌最大数量
 }

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott