huangbin 4 rokov pred
rodič
commit
f76263732a

+ 19 - 0
src/services/bus/market.ts

@@ -1,5 +1,6 @@
 import { TradeMode } from "@/common/constants/enumCommon";
 import APP from '@/services';
+import { message } from "ant-design-vue";
 import { Marketrun } from "../go/commonMarket/interface";
 import { Market } from "../go/useInfo/interface";
 
@@ -30,4 +31,22 @@ export function getMarketRunByTradeMode(trademode: TradeMode): Marketrun | null
         result = temp ? temp : null;
     }
     return result
+}
+
+// 判断市场是否在运行
+export function marketIsRun(trademode: TradeMode) {
+    const marketInfo = getMarketRunByTradeMode(trademode)
+    let result = false
+    if (marketInfo) {
+        if (marketInfo.runstatus === 2) {
+            result = true
+        } else {
+            message.error(`市场未开市:runstatus${marketInfo.runstatus}`)
+            result = false
+        }
+
+    } else {
+        console.warn(`没有找到trademode${trademode}对应的市场信息`)
+    }
+    return result
 }

+ 6 - 2
src/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_blocs/components/delisting/index.vue

@@ -164,14 +164,14 @@ import { DGFactoryItems, HdWRDealOrderReq, WrBargainApplyReq, WRGoodsInfo } from
 import { getAccountTypeList, getSelectedAccountId, getUserId } from '@/services/bus/account';
 import { v4 as uuidv4 } from 'uuid';
 import moment, { Moment } from 'moment';
-import { getMarketRunByTradeMode } from '@/services/bus/market';
+import { getMarketRunByTradeMode, marketIsRun } from '@/services/bus/market';
 import { QueryOrderQuoteMyqQsp, WrOrderQuote } from '@/services/go/wrtrade/interface';
 
 import { validateAction } from '@/common/setup/form';
 
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 
-import { BuyOrSell } from '@/common/constants/enumCommon';
+import { BuyOrSell, TradeMode } from '@/common/constants/enumCommon';
 import { getCanUseMoney } from '@/services/bus/account';
 import { TempWrOrderQuoteDetail } from '@/views/market/spot_trade/components/post_buying/interface';
 import { handleForm, handleSpotWarrant } from './setup';
@@ -279,6 +279,10 @@ export default defineComponent({
         }
 
         function submit() {
+            // 判断是否开市
+            if (!marketIsRun(TradeMode.WarehouseReceiptTrade)) {
+                return;
+            }
             validateAction<ListingForm>(formRef, formState).then((res) => {
                 const price = getPrice();
                 const num = getNum();

+ 168 - 160
src/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_blocs/components/post-buying/index.vue

@@ -1,165 +1,168 @@
 <template>
-    <!--仓单贸易 贸易圈挂牌 挂牌求购 -->
-    <Drawer :title="'挂牌求购'" :placement="'right'" :visible="visible" @cancel="cancel" class="top486">
-        <div class="post_buying">
-            <a-form class="inlineForm dialogForm" ref="formRef" :model="formState" :rules="rules">
-                <div class="formBar">
-                    <a-row :gutter="24">
-                        <a-col :span="24">
-                            <a-form-item label="交易账户" name="accountid">
-                                <a-select
-                                    class="inlineFormSelect"
-                                    style="width: 260px"
-                                    v-model:value="formState.accountid"
-                                    placeholder="请选择"
-                                >
-                                    <a-select-option
-                                        v-for="item in accountList"
-                                        :value="item.accountid"
-                                        :key="item.accountid"
-                                    >{{item.accountid}}</a-select-option>
-                                </a-select>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="挂牌价格" name="FixedPrice" class="inputIconBox">
-                                <a-input-number
-                                    class="commonInput"
-                                    style="width: 260px"
-                                    :min="0"
-                                    v-model:value="formState.FixedPrice"
-                                />
-                                <MinusOutlined @click="decreasePrice" />
-                                <PlusOutlined @click="increasePrice" />
-                                <a-checkbox class="commonCheckbox" v-model:checked="priceCheck">可议价</a-checkbox>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="挂牌数量" name="OrderQty" class="inputIconBox">
-                                <a-input-number
-                                    class="commonInput"
-                                    style="width: 260px"
-                                    :min="0"
-                                    v-model:value="formState.OrderQty"
-                                />
-                                <MinusOutlined @click="decreaseNumber" />
-                                <PlusOutlined @click="increaseNumber" />
-                                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
-                                <a-checkbox v-model:checked="numCheck" class="commonCheckbox">整单</a-checkbox>
-                            </a-form-item>
-                        </a-col>
+  <!--仓单贸易 贸易圈挂牌 挂牌求购 -->
+  <Drawer :title="'挂牌求购'"
+          :placement="'right'"
+          :visible="visible"
+          @cancel="cancel"
+          class="top486">
+    <div class="post_buying">
+      <a-form class="inlineForm dialogForm"
+              ref="formRef"
+              :model="formState"
+              :rules="rules">
+        <div class="formBar">
+          <a-row :gutter="24">
+            <a-col :span="24">
+              <a-form-item label="交易账户"
+                           name="accountid">
+                <a-select class="inlineFormSelect"
+                          style="width: 260px"
+                          v-model:value="formState.accountid"
+                          placeholder="请选择">
+                  <a-select-option v-for="item in accountList"
+                                   :value="item.accountid"
+                                   :key="item.accountid">{{item.accountid}}</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="挂牌价格"
+                           name="FixedPrice"
+                           class="inputIconBox">
+                <a-input-number class="commonInput"
+                                style="width: 260px"
+                                :min="0"
+                                v-model:value="formState.FixedPrice" />
+                <MinusOutlined @click="decreasePrice" />
+                <PlusOutlined @click="increasePrice" />
+                <a-checkbox class="commonCheckbox"
+                            v-model:checked="priceCheck">可议价</a-checkbox>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="挂牌数量"
+                           name="OrderQty"
+                           class="inputIconBox">
+                <a-input-number class="commonInput"
+                                style="width: 260px"
+                                :min="0"
+                                v-model:value="formState.OrderQty" />
+                <MinusOutlined @click="decreaseNumber" />
+                <PlusOutlined @click="increaseNumber" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
+                <a-checkbox v-model:checked="numCheck"
+                            class="commonCheckbox">整单</a-checkbox>
+              </a-form-item>
+            </a-col>
 
-                        <a-col :span="24" v-if="!numCheck">
-                            <a-form-item label="起摘数量" name="delistingQty">
-                                <a-input-number
-                                    class="commonInput"
-                                    v-model:value="formState.delistingQty"
-                                    :min="0"
-                                    style="width: 260px !important"
-                                />
-                                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="履约保证金" name="margin">
-                                <a-input-number
-                                    class="commonInput"
-                                    v-model:value="formState.margin"
-                                    :min="0"
-                                    style="width: 260px"
-                                />
-                                <span class="input-enumdicname">%</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="交收月" name="DeliveryMonth">
-                                <a-month-picker
-                                    style="width: 140px"
-                                    v-model:value="formState.DeliveryMonth"
-                                    :allowClear="'false'"
-                                    class="commonDatePicker dialogDatePicker"
-                                />
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="挂牌有效期" name="vidaliteTime" class="inputIconBox">
-                                <a-date-picker
-                                    style="width: 260px"
-                                    v-model:value="formState.vidaliteTime"
-                                    :allowClear="false"
-                                    class="commonDatePicker dialogDatePicker"
-                                />
-                            </a-form-item>
-                        </a-col>
+            <a-col :span="24"
+                   v-if="!numCheck">
+              <a-form-item label="起摘数量"
+                           name="delistingQty">
+                <a-input-number class="commonInput"
+                                v-model:value="formState.delistingQty"
+                                :min="0"
+                                style="width: 260px !important" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="履约保证金"
+                           name="margin">
+                <a-input-number class="commonInput"
+                                v-model:value="formState.margin"
+                                :min="0"
+                                style="width: 260px" />
+                <span class="input-enumdicname">%</span>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="交收月"
+                           name="DeliveryMonth">
+                <a-month-picker style="width: 140px"
+                                v-model:value="formState.DeliveryMonth"
+                                :allowClear="'false'"
+                                class="commonDatePicker dialogDatePicker" />
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="挂牌有效期"
+                           name="vidaliteTime"
+                           class="inputIconBox">
+                <a-date-picker style="width: 260px"
+                               v-model:value="formState.vidaliteTime"
+                               :allowClear="false"
+                               class="commonDatePicker dialogDatePicker" />
+              </a-form-item>
+            </a-col>
 
-                        <a-col :span="24">
-                            <a-form-item label="履约方式" class="inputIconBox">
-                                <span
-                                    class="clickBox"
-                                    @click="openPermance"
-                                >{{formState.permanceTempName ? formState.permanceTempName : '选择履约模板'}}</span>
-                                <svg
-                                    class="icon svg-icon"
-                                    aria-hidden="true"
-                                    @click="openPermance"
-                                >
-                                    <use xlink:href="#icon-moban" />
-                                </svg>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="指定朋友" class="inputIconBox">
-                                <span
-                                    class="clickBox"
-                                    @click="openFriend"
-                                >{{getFriendLength() ? `已选${getFriendLength() }人` : '选择朋友'}}</span>
-                                <svg class="icon svg-icon" aria-hidden="true" @click="openFriend">
-                                    <use xlink:href="#icon-pengyou1" />
-                                </svg>
-                                <a-checkbox
-                                    class="commonCheckbox"
-                                    v-model:checked="friendCheck"
-                                    @change="limiteFriends"
-                                >不限</a-checkbox>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="挂牌金额">
-                                <span class="white ml8">{{getMoney()}}</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="履约保证金">
-                                <span class="white ml8">{{getMargin()}}</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24">
-                            <a-form-item label="可用资金">
-                                <span class="white ml8">{{getCanUseMoney(getSelectedAccount())}}</span>
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                </div>
-                <a-row :gutter="24">
-                    <a-col :span="24" class="fixedBtns">
-                        <a-form-item class="btnCenter">
-                            <a-button class="listedBtn" @click="submit">买入</a-button>
-                            <a-button class="ml10 cancelBtn" @click="cancel">取消</a-button>
-                        </a-form-item>
-                    </a-col>
-                </a-row>
-            </a-form>
+            <a-col :span="24">
+              <a-form-item label="履约方式"
+                           class="inputIconBox">
+                <span class="clickBox"
+                      @click="openPermance">{{formState.permanceTempName ? formState.permanceTempName : '选择履约模板'}}</span>
+                <svg class="icon svg-icon"
+                     aria-hidden="true"
+                     @click="openPermance">
+                  <use xlink:href="#icon-moban" />
+                </svg>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="指定朋友"
+                           class="inputIconBox">
+                <span class="clickBox"
+                      @click="openFriend">{{getFriendLength() ? `已选${getFriendLength() }人` : '选择朋友'}}</span>
+                <svg class="icon svg-icon"
+                     aria-hidden="true"
+                     @click="openFriend">
+                  <use xlink:href="#icon-pengyou1" />
+                </svg>
+                <a-checkbox class="commonCheckbox"
+                            v-model:checked="friendCheck"
+                            @change="limiteFriends">不限</a-checkbox>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="挂牌金额">
+                <span class="white ml8">{{getMoney()}}</span>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="履约保证金">
+                <span class="white ml8">{{getMargin()}}</span>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-item label="可用资金">
+                <span class="white ml8">{{getCanUseMoney(getSelectedAccount())}}</span>
+              </a-form-item>
+            </a-col>
+          </a-row>
         </div>
-    </Drawer>
-    <!-- 选择朋友 -->
-    <Friend
-        v-if="showFriend"
-        :friends="formState.friends"
-        @cancel="chooseFriend"
-        @update="chooseFriend"
-    />
-    <!-- 选择履约模板 -->
-    <Permance v-if="showPermance" @cancel="choosePermance" @update="choosePermance" />
+        <a-row :gutter="24">
+          <a-col :span="24"
+                 class="fixedBtns">
+            <a-form-item class="btnCenter">
+              <a-button class="listedBtn"
+                        @click="submit">买入</a-button>
+              <a-button class="ml10 cancelBtn"
+                        @click="cancel">取消</a-button>
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+  </Drawer>
+  <!-- 选择朋友 -->
+  <Friend v-if="showFriend"
+          :friends="formState.friends"
+          @cancel="chooseFriend"
+          @update="chooseFriend" />
+  <!-- 选择履约模板 -->
+  <Permance v-if="showPermance"
+            @cancel="choosePermance"
+            @update="choosePermance" />
 </template>
 
 <script lang="ts">
@@ -174,7 +177,7 @@ import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo
 import { getUserId } from '@/services/bus/account';
 import { v3, v4 as uuidv4 } from 'uuid';
 import moment, { Moment } from 'moment';
-import { getMarketRunByTradeMode } from '@/services/bus/market';
+import { getMarketRunByTradeMode, marketIsRun } from '@/services/bus/market';
 import { validateAction } from '@/common/setup/form';
 import { getCanUseMoney } from '@/services/bus/account';
 import { TempWrOrderQuoteDetail } from '@/views/market/spot_trade/components/post_buying/interface';
@@ -183,6 +186,7 @@ import Permance from '@/common/components/permanceTemp/choosePermancePlanTmp.vue
 import { BlocsListingForm } from '@/common/setup/warehouse_receipt_trade/interface';
 import { message } from 'ant-design-vue';
 import { useBlocksPrice, useBlocksNumber, useBlocksAccount, useBlocksMoney, useBlocksFriends, useBlocksPermaceTemp, handleForm } from '@/common/setup/warehouse_receipt_trade/listing';
+import { TradeMode } from '@/common/constants/enumCommon';
 
 export default defineComponent({
     emits: ['cancel', 'update'],
@@ -213,7 +217,11 @@ export default defineComponent({
         // 摘牌数量
         const { numCheck, increaseNumber, decreaseNumber } = useBlocksNumber(formState);
         function submit() {
-            const marketInfo = getMarketRunByTradeMode(17);
+            // 判断是否开市
+            if (!marketIsRun(TradeMode.WarehouseReceiptTrade)) {
+                return;
+            }
+            const marketInfo = getMarketRunByTradeMode(TradeMode.WarehouseReceiptTrade);
             if (marketInfo) {
                 validateAction<BlocsListingForm>(formRef, formState).then((res) => {
                     if (!formState.permanceTempName) {

+ 7 - 3
src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/delisting/index.vue

@@ -164,14 +164,14 @@ import { DGFactoryItems, HdWRDealOrderReq, WrBargainApplyReq, WRGoodsInfo } from
 import { getAccountTypeList, getSelectedAccountId, getUserId } from '@/services/bus/account';
 import { v4 as uuidv4 } from 'uuid';
 import moment, { Moment } from 'moment';
-import { getMarketRunByTradeMode } from '@/services/bus/market';
+import { getMarketRunByTradeMode, marketIsRun } from '@/services/bus/market';
 import { QueryOrderQuoteMyqQsp, WrOrderQuote } from '@/services/go/wrtrade/interface';
 
 import { validateAction } from '@/common/setup/form';
 
 import { EnumRouterName } from '@/common/constants/enumRouterName';
 
-import { BuyOrSell } from '@/common/constants/enumCommon';
+import { BuyOrSell, TradeMode } from '@/common/constants/enumCommon';
 import { getCanUseMoney } from '@/services/bus/account';
 import { TempWrOrderQuoteDetail } from '@/views/market/spot_trade/components/post_buying/interface';
 import { handleForm, handleSpotWarrant } from './setup';
@@ -238,7 +238,7 @@ export default defineComponent({
             if (price && num && marginvalue) {
                 result = price * num * marginvalue;
             }
-            return result ? Math.floor(2) : '--';
+            return result ? Math.floor(result * 100) / 100 : '--';
         }
         function getMaxNum() {
             const qty = props.selectedRow.orderqty;
@@ -279,6 +279,10 @@ export default defineComponent({
         }
 
         function submit() {
+            // 判断是否开市
+            if (!marketIsRun(TradeMode.WarehouseReceiptTrade)) {
+                return;
+            }
             validateAction<ListingForm>(formRef, formState).then((res) => {
                 const price = getPrice();
                 const num = getNum();

+ 7 - 2
src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/post-buying/index.vue

@@ -168,7 +168,7 @@ import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo
 import { getUserId } from '@/services/bus/account';
 import { v3, v4 as uuidv4 } from 'uuid';
 import moment, { Moment } from 'moment';
-import { getMarketRunByTradeMode } from '@/services/bus/market';
+import { getMarketRunByTradeMode, marketIsRun } from '@/services/bus/market';
 import { validateAction } from '@/common/setup/form';
 import { getCanUseMoney } from '@/services/bus/account';
 import { TempWrOrderQuoteDetail } from '@/views/market/spot_trade/components/post_buying/interface';
@@ -178,6 +178,7 @@ import { message } from 'ant-design-vue';
 import { useBlocksPrice, useBlocksNumber, useBlocksAccount, useBlocksMoney, useBlocksFriends, useBlocksPermaceTemp, handleForm } from '@/common/setup/warehouse_receipt_trade/listing';
 
 import { BlocsListingForm } from '@/common/setup/warehouse_receipt_trade/interface';
+import { TradeMode } from '@/common/constants/enumCommon';
 
 export default defineComponent({
     emits: ['cancel', 'update'],
@@ -203,7 +204,11 @@ export default defineComponent({
         // 摘牌数量
         const { numCheck, increaseNumber, decreaseNumber } = useBlocksNumber(formState);
         function submit() {
-            const marketInfo = getMarketRunByTradeMode(17);
+            // 判断是否开市
+            if (!marketIsRun(TradeMode.WarehouseReceiptTrade)) {
+                return;
+            }
+            const marketInfo = getMarketRunByTradeMode(TradeMode.WarehouseReceiptTrade);
             if (marketInfo) {
                 validateAction<BlocsListingForm>(formRef, formState).then((res) => {
                     if (!formState.permanceTempName) {