|
@@ -1,141 +1,168 @@
|
|
|
<template>
|
|
<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"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <!--仓单贸易 贸易圈挂牌 挂牌求购 -->
|
|
|
|
|
+ <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-form-item label="挂牌价格" name="FixedPrice" class="inputIconBox">
|
|
|
|
|
+ <a-input-number class="commonInput" style="width: 260px" :min="0" v-model:value="formState.FixedPrice" />
|
|
|
<MinusOutlined />
|
|
<MinusOutlined />
|
|
|
- <PlusOutlined />
|
|
|
|
|
- </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 />
|
|
|
|
|
- <PlusOutlined />
|
|
|
|
|
- <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
|
|
+ <PlusOutlined />
|
|
|
|
|
+ <a-checkbox v-model:checked="priceCheck" class="commonCheckbox">可议价</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">
|
|
|
|
|
- <a-form-item label="起摘数量" name="delistingQty">
|
|
|
|
|
- <a-input-number
|
|
|
|
|
- class="commonInput"
|
|
|
|
|
- v-model:value="formState.delistingQty"
|
|
|
|
|
- :min="0"
|
|
|
|
|
- style="width: 260px"
|
|
|
|
|
- />
|
|
|
|
|
- <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" class="inputIconBox">
|
|
|
|
|
- <a-date-picker
|
|
|
|
|
- style="width: 260px"
|
|
|
|
|
- v-model:value="formState.DeliveryMonth"
|
|
|
|
|
- :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" />
|
|
|
|
|
+ <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"
|
|
|
|
|
+ class="inputIconBox">
|
|
|
|
|
+ <a-date-picker style="width: 260px"
|
|
|
|
|
+ v-model:value="formState.DeliveryMonth"
|
|
|
|
|
+ :allowClear="false"
|
|
|
|
|
+ class="commonDatePicker dialogDatePicker" />
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
|
|
|
- <a-col :span="24" @click="openPermance">
|
|
|
|
|
- <a-form-item label="履约方式" class="inputIconBox">
|
|
|
|
|
- <span class="clickBox">选择履约模板</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" @click="openFriend">
|
|
|
|
|
- <a-form-item label="指定朋友" class="inputIconBox">
|
|
|
|
|
- <span class="clickBox">选择朋友</span>
|
|
|
|
|
- <svg class="icon svg-icon" aria-hidden="true" @click="openFriend">
|
|
|
|
|
- <use xlink:href="#icon-pengyou1" />
|
|
|
|
|
- </svg>
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="24">
|
|
|
|
|
- <a-form-item label="挂牌金额">
|
|
|
|
|
- <span class="white ml8">55555</span>
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="24">
|
|
|
|
|
- <a-form-item label="履约保证金">
|
|
|
|
|
- <span class="white ml8">55555</span>
|
|
|
|
|
- </a-form-item>
|
|
|
|
|
- </a-col>
|
|
|
|
|
- <a-col :span="24">
|
|
|
|
|
- <a-form-item label="可用资金">
|
|
|
|
|
- <span class="white ml8">55555</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>
|
|
</div>
|
|
|
- </Drawer>
|
|
|
|
|
- <!-- 选择朋友 -->
|
|
|
|
|
- <Friend v-if="showFriend" @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"
|
|
|
|
|
+ @cancel="chooseFriend"
|
|
|
|
|
+ @update="chooseFriend" />
|
|
|
|
|
+ <!-- 选择履约模板 -->
|
|
|
|
|
+ <Permance v-if="showPermance"
|
|
|
|
|
+ @cancel="choosePermance"
|
|
|
|
|
+ @update="choosePermance" />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
|
-import { defineComponent, PropType, ref } from 'vue';
|
|
|
|
|
|
|
+import { defineComponent, PropType, ref, UnwrapRef } from 'vue';
|
|
|
import { Des } from '@/common/components/commonDes';
|
|
import { Des } from '@/common/components/commonDes';
|
|
|
import { _closeModal } from '@/common/setup/modal/modal';
|
|
import { _closeModal } from '@/common/setup/modal/modal';
|
|
|
import { ModalEnum } from '@/common/constants/modalNameEnum';
|
|
import { ModalEnum } from '@/common/constants/modalNameEnum';
|
|
@@ -145,10 +172,10 @@ import { hdWROrder } from '@/services/proto/warehousetrade';
|
|
|
import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
|
|
import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
|
|
|
import { DGFactoryItems, WRGoodsInfo } from '@/services/proto/warehousetrade/interface';
|
|
import { DGFactoryItems, WRGoodsInfo } from '@/services/proto/warehousetrade/interface';
|
|
|
import { getAccountTypeList, getUserId } from '@/services/bus/account';
|
|
import { getAccountTypeList, getUserId } from '@/services/bus/account';
|
|
|
-import { v4 as uuidv4 } from 'uuid';
|
|
|
|
|
|
|
+import { v3, v4 as uuidv4 } from 'uuid';
|
|
|
import moment, { Moment } from 'moment';
|
|
import moment, { Moment } from 'moment';
|
|
|
import { getMarketRunByTradeMode } from '@/services/bus/market';
|
|
import { getMarketRunByTradeMode } from '@/services/bus/market';
|
|
|
-import { QueryOrderQuoteMyqQsp, WrOrderQuote } from '@/services/go/wrtrade/interface';
|
|
|
|
|
|
|
+import { QueryOrderQuoteMyqQsp, QueryPermancePlanTmpRsp, WrOrderQuote } from '@/services/go/wrtrade/interface';
|
|
|
import { handleForm, hanldeOpenAndCloseComponent } from './setup';
|
|
import { handleForm, hanldeOpenAndCloseComponent } from './setup';
|
|
|
import { validateAction } from '@/common/setup/form';
|
|
import { validateAction } from '@/common/setup/form';
|
|
|
import { FormParam } from './interface';
|
|
import { FormParam } from './interface';
|
|
@@ -159,6 +186,113 @@ import { getCanUseMoney } from '@/services/bus/account';
|
|
|
import { TempWrOrderQuoteDetail } from '@/views/market/spot_trade/components/post_buying/interface';
|
|
import { TempWrOrderQuoteDetail } from '@/views/market/spot_trade/components/post_buying/interface';
|
|
|
import Friend from './friend.vue';
|
|
import Friend from './friend.vue';
|
|
|
import Permance from './permancePlanTmp.vue';
|
|
import Permance from './permancePlanTmp.vue';
|
|
|
|
|
+import { message } from 'ant-design-vue';
|
|
|
|
|
+import { computed } from '@vue/runtime-core';
|
|
|
|
|
+
|
|
|
|
|
+// 价格
|
|
|
|
|
+const usePrice = (formState: UnwrapRef<FormParam>) => {
|
|
|
|
|
+ const priceCheck = ref<boolean>(false); // 是否可议价
|
|
|
|
|
+ function increasePrice() {
|
|
|
|
|
+ formState.FixedPrice++;
|
|
|
|
|
+ }
|
|
|
|
|
+ function decreasePrice() {
|
|
|
|
|
+ if (formState.FixedPrice) {
|
|
|
|
|
+ formState.FixedPrice--;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return { priceCheck, increasePrice, decreasePrice };
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 数量
|
|
|
|
|
+const useNumber = (formState: UnwrapRef<FormParam>) => {
|
|
|
|
|
+ const numCheck = ref<boolean>(false); // 是否整单
|
|
|
|
|
+ function increaseNumber() {
|
|
|
|
|
+ formState.OrderQty++;
|
|
|
|
|
+ }
|
|
|
|
|
+ function decreaseNumber() {
|
|
|
|
|
+ if (formState.OrderQty) {
|
|
|
|
|
+ formState.OrderQty--;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return { numCheck, increaseNumber, decreaseNumber };
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 交易账号
|
|
|
|
|
+const useAccount = (formState: UnwrapRef<FormParam>) => {
|
|
|
|
|
+ // 资金账号
|
|
|
|
|
+ const accountList = getAccountTypeList([2]);
|
|
|
|
|
+ if (accountList.length) {
|
|
|
|
|
+ formState.accountid = accountList[0].accountid;
|
|
|
|
|
+ }
|
|
|
|
|
+ function getSelectedAccount() {
|
|
|
|
|
+ return accountList.find((e) => e.accountid === formState.accountid);
|
|
|
|
|
+ }
|
|
|
|
|
+ return { getSelectedAccount, accountList };
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 金额
|
|
|
|
|
+const useMoney = (formState: UnwrapRef<FormParam>) => {
|
|
|
|
|
+ // 挂牌金额
|
|
|
|
|
+ function getMoney() {
|
|
|
|
|
+ let result = 0;
|
|
|
|
|
+ const { FixedPrice, OrderQty } = formState;
|
|
|
|
|
+ if (FixedPrice && OrderQty) {
|
|
|
|
|
+ result = FixedPrice * OrderQty;
|
|
|
|
|
+ }
|
|
|
|
|
+ return result ? result.toFixed(2) : '--';
|
|
|
|
|
+ }
|
|
|
|
|
+ // 履约保证金
|
|
|
|
|
+ function getMargin() {
|
|
|
|
|
+ let result = 0;
|
|
|
|
|
+ const { FixedPrice, OrderQty, margin } = formState;
|
|
|
|
|
+ if (FixedPrice && OrderQty && margin) {
|
|
|
|
|
+ result = (FixedPrice * OrderQty * margin) / 100;
|
|
|
|
|
+ }
|
|
|
|
|
+ return result ? result.toFixed(2) : '--';
|
|
|
|
|
+ }
|
|
|
|
|
+ return { getMoney, getMargin };
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 选择朋友
|
|
|
|
|
+const useFriends = (formState: UnwrapRef<FormParam>) => {
|
|
|
|
|
+ const friendCheck = ref<boolean>(false); // 是否不限好友
|
|
|
|
|
+ const showFriend = ref<boolean>(false);
|
|
|
|
|
+ function chooseFriend(value: number[] | false) {
|
|
|
|
|
+ if (value) {
|
|
|
|
|
+ formState.friends = value;
|
|
|
|
|
+ }
|
|
|
|
|
+ showFriend.value = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ function openFriend() {
|
|
|
|
|
+ showFriend.value = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ function getFriendLength() {
|
|
|
|
|
+ return formState.friends.length;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 是否 不限好友
|
|
|
|
|
+ function limiteFriends() {
|
|
|
|
|
+ if (friendCheck.value) {
|
|
|
|
|
+ formState.friends.length = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return { friendCheck, showFriend, chooseFriend, openFriend, getFriendLength, limiteFriends };
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 履约模板
|
|
|
|
|
+const usePermaceTemp = (formState: UnwrapRef<FormParam>) => {
|
|
|
|
|
+ const showPermance = ref<boolean>(false);
|
|
|
|
|
+ function choosePermance(value: QueryPermancePlanTmpRsp | false) {
|
|
|
|
|
+ if (value) {
|
|
|
|
|
+ formState.permanceTempName = value.templatename;
|
|
|
|
|
+ formState.permaceTempId = value.autoid;
|
|
|
|
|
+ }
|
|
|
|
|
+ showPermance.value = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ function openPermance() {
|
|
|
|
|
+ showPermance.value = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ return { showPermance, choosePermance, openPermance };
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
|
emits: ['cancel', 'update'],
|
|
emits: ['cancel', 'update'],
|
|
@@ -172,105 +306,115 @@ export default defineComponent({
|
|
|
},
|
|
},
|
|
|
setup(props, context) {
|
|
setup(props, context) {
|
|
|
const { visible, cancel } = _closeModal(context);
|
|
const { visible, cancel } = _closeModal(context);
|
|
|
|
|
+ // 表单
|
|
|
const { rules, formState, formRef } = handleForm();
|
|
const { rules, formState, formRef } = handleForm();
|
|
|
// 选择朋友
|
|
// 选择朋友
|
|
|
- const { show: showFriend, selected: frineds, close: chooseFriend, open: openFriend } = hanldeOpenAndCloseComponent<number[]>();
|
|
|
|
|
|
|
+ const { friendCheck, showFriend, chooseFriend, openFriend, getFriendLength, limiteFriends } = useFriends(formState);
|
|
|
// 履约模板
|
|
// 履约模板
|
|
|
- const { show: showPermance, selected: selectedPermance, close: choosePermance, open: openPermance } = hanldeOpenAndCloseComponent<number>();
|
|
|
|
|
|
|
+ const { showPermance, choosePermance, openPermance } = usePermaceTemp(formState);
|
|
|
const loading = ref<boolean>(false);
|
|
const loading = ref<boolean>(false);
|
|
|
- const accountList = getAccountTypeList([2]);
|
|
|
|
|
- if (accountList.length) {
|
|
|
|
|
- formState.accountid = accountList[0].accountid;
|
|
|
|
|
- }
|
|
|
|
|
- function getSelectedAccount() {
|
|
|
|
|
- return accountList.find((e) => e.accountid === formState.accountid);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // 摘牌数量
|
|
|
|
|
+ const { numCheck, increaseNumber, decreaseNumber } = useNumber(formState);
|
|
|
function submit() {
|
|
function submit() {
|
|
|
- // const marketInfo = getMarketRunByTradeMode(17);
|
|
|
|
|
- // if (marketInfo) {
|
|
|
|
|
- // validateAction<FormParam>(formRef, formState).then((res) => {
|
|
|
|
|
- // // 现在增加一种挂牌求购的情况
|
|
|
|
|
- // // 这种求购模式会生成一种仓单贸易商品
|
|
|
|
|
- // const wrGoodsInfo: WRGoodsInfo = {
|
|
|
|
|
- // GoodsID: props.selectedRow.goodsid, // uint32 配置商品ID
|
|
|
|
|
- // GoodsCode: props.selectedRow.goodscode, // string 配置商品代码
|
|
|
|
|
- // PriceFactor: 1, // double 商品价格系数
|
|
|
|
|
- // PriceMove: 0, // double 商品升贴水值
|
|
|
|
|
- // WeightRatio: 1, // double 商品重量系数
|
|
|
|
|
- // };
|
|
|
|
|
- // const param = {
|
|
|
|
|
- // AccountID: res.accountid, // 默认内部资金账号第一个
|
|
|
|
|
- // ClientSerialNo: uuidv4(), // 客户端流水号
|
|
|
|
|
- // // OperateSrc: 2,
|
|
|
|
|
- // ClientType: 4,
|
|
|
|
|
- // // MarketID: marketInfo.marketid,
|
|
|
|
|
- // LadingBillId: 0, // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
|
|
|
|
|
- // // LadingBillId: 'uint642081626946446000001', // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
|
|
|
|
|
- // TradeDate: moment(marketInfo.tradedate).format('YYYYMMDD'), // 交易日 string
|
|
|
|
|
- // // SubNum: '0', // 提单子单号
|
|
|
|
|
- // SubNum: 0,
|
|
|
|
|
- // // WRFactorTypeId: '2121626946446000001', // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
|
|
|
|
|
- // WRFactorTypeId: props.selectedRow.wrfactortypeid ? props.selectedRow.wrfactortypeid : 0, // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
|
|
|
|
|
- // IsSpecified: 0, // 是否指定对手 0:不指定 1:指定 uint32
|
|
|
|
|
- // // MatchUserIDs: 0, // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
|
|
|
|
|
- // OrderQty: res.OrderQty, // 委托数量(可挂部分数据量) ======
|
|
|
|
|
- // DeliveryGoodsID: props.selectedRow.deliverygoodsid, // 交割商品商品ID // 有仓单求购
|
|
|
|
|
- // WRPriceType: isFloat() ? 2 : 1, // 价格方式 1:固定价 2:浮动价
|
|
|
|
|
- // FixedPrice: res.FixedPrice, // 固定价格
|
|
|
|
|
- // PriceFactor: 1, // 价格系数(浮动价时填写)
|
|
|
|
|
- // PriceMove: res.PriceMove, // 升贴水(浮动价时填写)
|
|
|
|
|
- // TimevalidType: 4, // 时间有效类型 1:当日有效 2:本周有效 3:指定时间有效 4:一直有效
|
|
|
|
|
- // // ValidTime: moment('2021-08-25 00:00:00').format('YYYY-MM-DD HH:mm:ss'), // 有效期限
|
|
|
|
|
- // ClientOrderTime: moment().format('YYYY-MM-DD HH:mm:ss'),
|
|
|
|
|
- // FirstRatio: 0, // 首付比例
|
|
|
|
|
- // PerformanceTemplateID: 0, // 履约计划模板ID
|
|
|
|
|
- // UserID: getUserId(),
|
|
|
|
|
- // OperatorID: getUserId(), // 操作员账号ID
|
|
|
|
|
- // BuyOrSell: 0, // 买卖方向 0买1卖
|
|
|
|
|
- // PriceDisplayMode: 1, // 浮动价显示方式 1:合并显示 2:分开显示
|
|
|
|
|
- // CanBargain: 0, // 挂牌是否可议价0:不可1:可-摘牌是否议价
|
|
|
|
|
- // Attachment1: '', // 附件1
|
|
|
|
|
- // Attachment2: '', // 附件2
|
|
|
|
|
- // Remark: '', // 备注
|
|
|
|
|
- // ApplyID: 0, // 申请ID
|
|
|
|
|
- // WRTradeGoods: isFloat() ? [wrGoodsInfo] : [],
|
|
|
|
|
- // CanPart: 1, // 是否允许部份摘牌0:不允许;1:允许
|
|
|
|
|
- // WRStandardID: props.selectedRow.wrstandardid,
|
|
|
|
|
- // HasWr: isWR(), // 无仓单挂牌 是否有无仓单
|
|
|
|
|
- // DeliveryMonth: isWR() ? '' : moment(res.DeliveryMonth).format('YYYY-MM'),
|
|
|
|
|
- // FactoryItems: props.selectedRow.wrResult != undefined ? props.selectedRow.wrResult.flatMap((it) => {
|
|
|
|
|
- // return {
|
|
|
|
|
- // DGFactoryItemTypeID: it.dgfactoryitemtypeid, // uint64 要素项类型ID
|
|
|
|
|
- // DGFactoryItemID: it.dgfactoryitemid, // uint64 预约要素项类型值
|
|
|
|
|
- // ItemTypeMode: 1, // uint32 要素项类型模式
|
|
|
|
|
- // };
|
|
|
|
|
- // }): [], // DGFactoryItems 要素类型明细集合(没有仓单要素ID填写)
|
|
|
|
|
- // };
|
|
|
|
|
- // requestResultLoadingAndInfo(hdWROrder, param, loading, ['求购成功', '求购失败:']).then(() => {
|
|
|
|
|
- // cancel(true);
|
|
|
|
|
- // });
|
|
|
|
|
- // });
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ if (!formState.permanceTempName) {
|
|
|
|
|
+ message.error('请选择履约模板');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!friendCheck.value) {
|
|
|
|
|
+ if (formState.friends.length === 0) {
|
|
|
|
|
+ message.error('请选择朋友');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const marketInfo = getMarketRunByTradeMode(17);
|
|
|
|
|
+ if (marketInfo) {
|
|
|
|
|
+ validateAction<FormParam>(formRef, formState).then((res) => {
|
|
|
|
|
+ const param = {
|
|
|
|
|
+ AccountID: res.accountid, // 默认内部资金账号第一个
|
|
|
|
|
+ ClientSerialNo: uuidv4(), // 客户端流水号
|
|
|
|
|
+ // OperateSrc: 2,
|
|
|
|
|
+ ClientType: 4,
|
|
|
|
|
+ // MarketID: marketInfo.marketid,
|
|
|
|
|
+ LadingBillId: 0, // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
|
|
|
|
|
+ // LadingBillId: 'uint642081626946446000001', // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
|
|
|
|
|
+ TradeDate: moment(marketInfo.tradedate).format('YYYYMMDD'), // 交易日 string
|
|
|
|
|
+ // SubNum: '0', // 提单子单号
|
|
|
|
|
+ SubNum: 0,
|
|
|
|
|
+ // WRFactorTypeId: '2121626946446000001', // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
|
|
|
|
|
+ WRFactorTypeId: props.selectedRow.wrfactortypeid ? props.selectedRow.wrfactortypeid : 0, // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
|
|
|
|
|
+ IsSpecified: 1, // 是否指定对手 0:不指定 1:指定 uint32
|
|
|
|
|
+ MatchUserIDs: res.friends, // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
|
|
|
|
|
+ OrderQty: res.OrderQty, // 委托数量(可挂部分数据量) ======
|
|
|
|
|
+ DeliveryGoodsID: props.selectedRow.deliverygoodsid, // 交割商品商品ID // 有仓单求购
|
|
|
|
|
+ WRPriceType: 1, // 价格方式 1:固定价 2:浮动价
|
|
|
|
|
+ FixedPrice: res.FixedPrice, // 固定价格
|
|
|
|
|
+ PriceFactor: 1, // 价格系数(浮动价时填写)
|
|
|
|
|
+ PriceMove: 0, // 升贴水(浮动价时填写)
|
|
|
|
|
+ TimevalidType: 4, // 时间有效类型 1:当日有效 2:本周有效 3:指定时间有效 4:一直有效
|
|
|
|
|
+ ValidTime: moment(formState.vidaliteTime).format('YYYY-MM-DD HH:mm:ss'), // 有效期限
|
|
|
|
|
+ ClientOrderTime: moment().format('YYYY-MM-DD HH:mm:ss'),
|
|
|
|
|
+ FirstRatio: 0, // 首付比例
|
|
|
|
|
+ PerformanceTemplateID: res.permaceTempId, // 履约计划模板ID
|
|
|
|
|
+ UserID: getUserId(),
|
|
|
|
|
+ OperatorID: getUserId(), // 操作员账号ID
|
|
|
|
|
+ BuyOrSell: 0, // 买卖方向 0买1卖
|
|
|
|
|
+ PriceDisplayMode: 1, // 浮动价显示方式 1:合并显示 2:分开显示
|
|
|
|
|
+ CanBargain: 0, // 挂牌是否可议价0:不可1:可-摘牌是否议价
|
|
|
|
|
+ Attachment1: '', // 附件1
|
|
|
|
|
+ Attachment2: '', // 附件2
|
|
|
|
|
+ Remark: '', // 备注
|
|
|
|
|
+ ApplyID: 0, // 申请ID
|
|
|
|
|
+ WRTradeGoods: [],
|
|
|
|
|
+ CanPart: numCheck.value ? 0 : 1, // 是否允许部份摘牌0:不允许;1:允许
|
|
|
|
|
+ WRStandardID: props.selectedRow.wrstandardid,
|
|
|
|
|
+ HasWr: 1, // 无仓单挂牌 是否有无仓单
|
|
|
|
|
+ DeliveryMonth: '',
|
|
|
|
|
+ DelistMinQty: numCheck.value ? formState.delistingQty : 0, // 起摘数量
|
|
|
|
|
+ MarginFlag: 1, // 挂牌是否指定保证金 0:否 1:是
|
|
|
|
|
+ MarginAlgorithm: 1, // 指定保证金方式 1:比率 2:固定
|
|
|
|
|
+ MarginValue: formState.margin, // 指定保证金设置值
|
|
|
|
|
+ AllFriendsFlag: friendCheck.value ? 1 : 0, //是否全好友可见 0:否 1:是
|
|
|
|
|
+ FactoryItems:
|
|
|
|
|
+ props.selectedRow.wrResult != undefined
|
|
|
|
|
+ ? props.selectedRow.wrResult.map((it) => {
|
|
|
|
|
+ return {
|
|
|
|
|
+ DGFactoryItemTypeID: it.dgfactoryitemtypeid, // uint64 要素项类型ID
|
|
|
|
|
+ DGFactoryItemID: it.dgfactoryitemid, // uint64 预约要素项类型值
|
|
|
|
|
+ ItemTypeMode: 1, // uint32 要素项类型模式
|
|
|
|
|
+ };
|
|
|
|
|
+ })
|
|
|
|
|
+ : [], // DGFactoryItems 要素类型明细集合(没有仓单要素ID填写)
|
|
|
|
|
+ };
|
|
|
|
|
+ requestResultLoadingAndInfo(hdWROrder, param, loading, ['求购成功', '求购失败:']).then(() => {
|
|
|
|
|
+ cancel(true);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return {
|
|
return {
|
|
|
submit,
|
|
submit,
|
|
|
cancel,
|
|
cancel,
|
|
|
visible,
|
|
visible,
|
|
|
- accountList,
|
|
|
|
|
rules,
|
|
rules,
|
|
|
formState,
|
|
formState,
|
|
|
formRef,
|
|
formRef,
|
|
|
- getSelectedAccount,
|
|
|
|
|
getCanUseMoney,
|
|
getCanUseMoney,
|
|
|
-
|
|
|
|
|
- showFriend,
|
|
|
|
|
- chooseFriend,
|
|
|
|
|
- openFriend,
|
|
|
|
|
-
|
|
|
|
|
|
|
+ ...usePrice(formState),
|
|
|
|
|
+ ...useAccount(formState),
|
|
|
|
|
+ ...useMoney(formState),
|
|
|
showPermance,
|
|
showPermance,
|
|
|
choosePermance,
|
|
choosePermance,
|
|
|
openPermance,
|
|
openPermance,
|
|
|
|
|
+ numCheck,
|
|
|
|
|
+ increaseNumber,
|
|
|
|
|
+ decreaseNumber,
|
|
|
|
|
+ friendCheck,
|
|
|
|
|
+ showFriend,
|
|
|
|
|
+ chooseFriend,
|
|
|
|
|
+ openFriend,
|
|
|
|
|
+ getFriendLength,
|
|
|
|
|
+ limiteFriends,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|