Browse Source

修改 订单交易 挂牌点选 最大挂买数量

huangbin 4 năm trước cách đây
mục cha
commit
a69527bcf4

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

@@ -1,3 +1,3 @@
 {
-    "apiUrl": "http://192.168.31.139:8080/cfg?key=test_139"
+    "apiUrl": "http://192.168.31.135:8080/cfg?key=test_135"
 }

+ 38 - 33
src/views/market/spot_trade/spot_trade_order_transaction/components/listing/index.vue

@@ -32,12 +32,12 @@
             <a-col :span="24">
               <a-form-item label="挂牌价格"
                            class="relative"
-                           name="price">
+                           name="FixedPrice">
                 <a-input-number class="dialogInput yellowInput"
                                 style="width: 260px"
                                 :min="0"
                                 :max="99999"
-                                v-model:value="formState.price" />
+                                v-model:value="formState.FixedPrice" />
               </a-form-item>
             </a-col>
           </a-row>
@@ -49,8 +49,8 @@
                 <a-input-number class="dialogInput yellowInput"
                                 style="width: 260px"
                                 :min="0"
-                                :max="99999"
-                                v-model:value="formState.num" />
+                                :max="getListingBuyMaxNum()"
+                                v-model:value="formState.OrderQty" />
                 <span class="input-enumdicname-absolute">{{deliverGoods.enumdicname}}</span>
                 <!-- <div class="labelTip">({{selectedRow.delistminqty}}{{selectedRow.enumdicname}}起)</div> -->
               </a-form-item>
@@ -61,13 +61,13 @@
                    class="mt-20">
               <a-form-item>
                 <a-slider :min="0"
-                          v-model:value="formState.num"
+                          v-model:value="formState.OrderQty"
                           :max="deliverGoods.orderqty"
                           class="formSlider"
                           style="width: 260px" />
                 <div class="unit">
                   <span>0</span>
-                  <span>99999{{deliverGoods.enumdicname}}</span>
+                  <span>{{getListingBuyMaxNum()}}{{deliverGoods.enumdicname}}</span>
                 </div>
               </a-form-item>
             </a-col>
@@ -108,26 +108,27 @@
 </template>
 
 <script lang="ts">
-import { PlusOutlined, MinusOutlined } from '@ant-design/icons-vue';
-import { defineComponent, PropType, ref } from 'vue';
 import Drawer from '@/common/components/drawer/index.vue';
-import { getAccountTypeList, getSelectedAccountId, getUserId } from '@/services/bus/account';
-import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
+import { DelistingType, PriceType } from '@/common/constants/enumCommon';
 import { ModalEnum } from '@/common/constants/modalNameEnum';
-import { _closeModal } from '@/common/setup/modal/modal';
-import { handleForm } from './setup';
+import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
 import { validateAction } from '@/common/setup/form';
-import { FormState } from './interface';
-import { getCanUseMoney } from '@/services/bus/account';
+import { _closeModal } from '@/common/setup/modal/modal';
+import { useListingTradeNumAndPrice } from '@/common/setup/trade';
+import { ListingTradeNumAndPrice } from '@/common/setup/trade/interface';
+import { getCanUseMoney, getSelectedAccountId } from '@/services/bus/account';
+import { geLoginID_number } from '@/services/bus/login';
 import { QueryDeliveryRelationRsp } from '@/services/go/delivery/interface';
-import { OrderReq } from '@/services/socket/order/interface';
 import { Order } from '@/services/socket/order';
-import { DelistingType, PriceType } from '@/common/constants/enumCommon';
-import { geLoginID_number } from '@/services/bus/login';
-import { LongType } from '@/services/socket/login/interface';
-import { v4 as uuidv4 } from 'uuid';
+import { OrderReq } from '@/services/socket/order/interface';
+import { MinusOutlined, PlusOutlined } from '@ant-design/icons-vue';
 import moment from 'moment';
-import Long from 'long';
+import { v4 as uuidv4 } from 'uuid';
+import { defineComponent, PropType, ref } from 'vue';
+import { useBlocksAccount } from '../../spot_trade_order_transaction_swap/components/setup';
+import { FormState } from './interface';
+import { handleForm } from './setup';
+
 export default defineComponent({
     name: ModalEnum.spot_trade_warehouse_financing_delisting,
     components: { Drawer, PlusOutlined, MinusOutlined },
@@ -142,19 +143,22 @@ export default defineComponent({
     setup(props, context) {
         const { visible, cancel } = _closeModal(context);
         // 资金账号
-        const accountList = getAccountTypeList([2]);
         const { rules, formState, formRef } = handleForm();
-        if (accountList.length) {
-            formState.accountid = accountList[0].accountid;
-        }
-        function getSelectedAccount() {
-            return accountList.find((e) => e.accountid === formState.accountid);
-        }
+
         const loading = ref<boolean>(false);
-        function getMoney() {
-            return (formState.price * formState.num).toFixed(2);
-        }
-        // const { getMaxNum, getMoney, getMargin } = handleNumAndMoney(props.enumName, props.buyOrSell, props.selectedRow, props.deliverGoods, formState);
+        const { canUseMoney, getSelectedAccount, accountList } = useBlocksAccount(formState);
+
+        // 金额 数量 保证金
+        const param: ListingTradeNumAndPrice<FormState> = {
+            formState,
+            goodscode: props.deliverGoods.goodscode,
+            isFloat: () => {
+                return false;
+            },
+            canUseMoney,
+        };
+        const { getMoney, getListingBuyMaxNum } = useListingTradeNumAndPrice<FormState>(param);
+
         function submit() {
             validateAction<FormState>(formRef, formState).then((res) => {
                 // 挂牌请求 通过挂牌求购进行挂牌
@@ -169,10 +173,10 @@ export default defineComponent({
                     ValidType: 1, // 校验类型 当日有效
                     OperateType: 1, // 操作类型: 申请
                     OrderSrc: 1, // 单据来源: 客户端下单
-                    OrderPrice: res.price, // 委托价格
+                    OrderPrice: res.FixedPrice, // 委托价格
                     OperatorID: Number(geLoginID_number()),
                     // MarketMaxSub: number // 市价允许最大偏差(做市)
-                    OrderQty: res.num, // 委托数量
+                    OrderQty: res.OrderQty, // 委托数量
                     BuyOrSell: 0, // 买卖方向  0 买 1 卖
                     BuildType: 1, // 下单类型  1 建 2 平
                     // CurtQuotePrice: 0, // 保留,计算冻结金额使用
@@ -213,6 +217,7 @@ export default defineComponent({
             getCanUseMoney,
             getSelectedAccount,
             getMoney,
+            getListingBuyMaxNum,
         };
     },
 });

+ 2 - 3
src/views/market/spot_trade/spot_trade_order_transaction/components/listing/interface.ts

@@ -1,6 +1,5 @@
+import { CommomTradeForm } from "@/common/setup/trade/interface";
 
-export interface FormState {
+export interface FormState extends CommomTradeForm {
     accountid: undefined | number,
-    num: number,
-    price: number,
 }

+ 5 - 4
src/views/market/spot_trade/spot_trade_order_transaction/components/listing/setup.ts

@@ -5,16 +5,17 @@ export function handleForm() {
     const formRef = ref();
     const formState: UnwrapRef<FormState> = reactive({
         accountid: undefined,
-        num: 0,
-        price: 0,
+        OrderQty: 0,
+        FixedPrice: 0,
+        PriceMove: 0
     })
     const rules = {
         accountid: [{ required: true, message: '请选择交易账户' }],
-        num: [
+        OrderQty: [
             { required: true, message: '请输入挂牌数量', trigger: 'blur', type: 'number' },
             { message: '挂牌数量不能小于0', min: 1, type: 'number' }
         ],
-        price: [
+        FixedPrice: [
             { required: true, message: '请输入挂牌价格', trigger: 'blur', type: 'number' },
             { message: '挂牌价格不能小于0', min: 1, type: 'number' }
         ],

+ 1 - 1
src/views/market/spot_trade/spot_trade_order_transaction/spot_trade_order_transaction_swap/components/setup.ts

@@ -18,7 +18,7 @@ export const useUserType = () => {
 }
 
 // 交易账号
-export function useBlocksAccount<T extends { accountid: number }>(formState: UnwrapRef<T>) {
+export function useBlocksAccount<T extends { accountid: number | undefined }>(formState: UnwrapRef<T>) {
     // 资金账号
     const accountList = getAccountTypeList([2]);
     if (accountList.length) {

+ 5 - 3
src/views/order/financing_manager/components/financing_manager_contract/components/buyback/index.vue

@@ -64,8 +64,10 @@
             <a-col :span="12">
               <!--(回购数量/合同剩余数量) * 合同剩余金额 -->
               <a-form-item label="本次回购金额">
-                <span
+                <span v-if="selectedRow.remainwrpositionqty"
                       class="white ml10">{{ (((formState.num === 0 ? 1 : formState.num) * selectedRow.remainamount) / selectedRow.remainwrpositionqty).toFixed(2) + " 元" }}</span>
+                <span v-else
+                      class="white ml10">--</span>
               </a-form-item>
             </a-col>
             <a-col :span="12">
@@ -80,13 +82,13 @@
                  class="fixedBtns">
             <a-form-item class="btnCenter">
               <a-button class="listedBtn"
-                        v-if="selectedRow.buybackwrpositionqty !== selectedRow.remainwrpositionqty"
+                        v-if="selectedRow.remainwrpositionqty"
                         :loading="loading"
                         :disabled="loading"
                         @click="submit">提交</a-button>
               <a-button class="listedBtn"
                         v-else
-                        @click="cancel">提交</a-button>
+                        @click="cancel">取消</a-button>
             </a-form-item>
           </a-col>
         </a-row>