|
|
@@ -29,7 +29,7 @@
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :span="12"
|
|
|
- v-if="formState.WRPriceType === 1">
|
|
|
+ v-if="!isFloat()">
|
|
|
<a-form-item label="挂牌价"
|
|
|
name="FixedPrice">
|
|
|
<a-input-number class="dialogInput"
|
|
|
@@ -40,8 +40,8 @@
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :span="12"
|
|
|
- v-if="formState.WRPriceType === 2">
|
|
|
- <a-form-item label="升贴水"
|
|
|
+ v-if="isFloat()">
|
|
|
+ <a-form-item label="基差"
|
|
|
name="PriceMove">
|
|
|
<a-input-number class="commonInput"
|
|
|
:min="0"
|
|
|
@@ -92,7 +92,7 @@
|
|
|
<a-col :span="12"> </a-col>
|
|
|
</a-row>
|
|
|
<a-row :gutter="24"
|
|
|
- v-if="formState.WRPriceType === 2">
|
|
|
+ v-if="isFloat()">
|
|
|
<a-col :span="24">
|
|
|
<a-form-item label="行情商品"
|
|
|
name="goodsid">
|
|
|
@@ -117,11 +117,39 @@
|
|
|
placeholder="请选择合约">
|
|
|
<a-select-option v-for="item in goodsList"
|
|
|
:value="item.goodsid"
|
|
|
- :key="item.goodsid">{{item.goodsname}}</a-select-option>
|
|
|
+ :key="item.goodsid">{{item.goodsname}}
|
|
|
+ </a-select-option>
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
+ <a-row :gutter="24">
|
|
|
+ <a-col :span="24"
|
|
|
+ class="relative">
|
|
|
+ <a-form-item :label="isFloat() ? '估算金额' : '摘牌金额'">
|
|
|
+ <span class="white ml8">{{getMoney()}}</span>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="24"
|
|
|
+ class="relative">
|
|
|
+ <a-form-item :label="getMargin() ? '履约保证金' : ''">
|
|
|
+ <a-row>
|
|
|
+ <a-col :span="8"
|
|
|
+ v-if="getMargin()">
|
|
|
+ <span class="white ml8">{{getMargin()}}</span>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="4"
|
|
|
+ class="tr">
|
|
|
+ <span class="grey1">可用资金</span>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <span class="white ml8"> {{getCanUseMoney(handleSelectedAccount())}}</span>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+
|
|
|
<a-row :gutter="24"
|
|
|
type="flex"
|
|
|
justify="center">
|
|
|
@@ -132,6 +160,8 @@
|
|
|
:disabled="loading"
|
|
|
@click="submit">卖出</a-button>
|
|
|
<a-button class="ml10 cancelBtn"
|
|
|
+ :loading="loading"
|
|
|
+ :disabled="loading"
|
|
|
@click="cancel">取消</a-button>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
@@ -143,27 +173,29 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
|
-import { defineComponent, PropType, ref } from 'vue';
|
|
|
+import { defineComponent, onMounted, PropType, ref } from 'vue';
|
|
|
import { enumOrderComponents } from '@/common/constants/enumOrderComponents';
|
|
|
import Drawer from '@/common/components/drawer/index.vue';
|
|
|
import { QueryWrPositionReq, WrHoldLB, WrPosition } from '@/services/go/wrtrade/interface';
|
|
|
-import { getInTaAccount, getUserId } from '@/services/bus/account';
|
|
|
+import { getAccountTypeList, getInTaAccount, getSelectedAccount, getUserId } from '@/services/bus/account';
|
|
|
import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
|
|
|
import { hdWROrder } from '@/services/proto/warehousetrade';
|
|
|
-import { v4 as uuidv4 } from 'uuid';
|
|
|
+import { v4 } from 'uuid';
|
|
|
import moment from 'moment';
|
|
|
import { ModalEnum } from '@/common/constants/modalNameEnum';
|
|
|
import { _closeModal } from '@/common/setup/modal/modal';
|
|
|
-import { handleGoods, handleForm } from './setup';
|
|
|
+import { handleGoods, handleForm, handleNumAndPrice, handlePriceRule } from './setup';
|
|
|
import { validateAction } from '@/common/setup/form';
|
|
|
import { ListingForm } from './interface';
|
|
|
-import { getMarketRunByTradeMode } from '@/services/bus/market';
|
|
|
+import { getMarketByTradeMode, getMarketRunByTradeMode } from '@/services/bus/market';
|
|
|
import { message } from 'ant-design-vue';
|
|
|
import { getGoodsGroupsByTradeMode } from '@/services/bus/goods';
|
|
|
import { TradeMode } from '@/common/constants/enumCommon';
|
|
|
import { WRGoodsInfo } from '@/services/proto/warehousetrade/interface';
|
|
|
import { BuyOrSell } from '@/common/constants/enumCommon';
|
|
|
import Bus from '@/utils/eventBus/index';
|
|
|
+import { addSubscribeQuotation, removeSubscribeQuotation } from '@/services/socket/quota';
|
|
|
+import { getCanUseMoney } from '@/services/bus/account';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: ModalEnum.spot_warrant_spot_details_listed,
|
|
|
@@ -176,18 +208,42 @@ export default defineComponent({
|
|
|
},
|
|
|
},
|
|
|
setup(props, context) {
|
|
|
+ const loading = ref<boolean>(false);
|
|
|
+ const marketInfo = getMarketByTradeMode(TradeMode.WarehouseReceiptTrade);
|
|
|
+ if (marketInfo) {
|
|
|
+ // 获取计算规则
|
|
|
+ handlePriceRule(loading, marketInfo.marketid);
|
|
|
+ }
|
|
|
const { visible, cancel } = _closeModal(context);
|
|
|
const { rules, formState, formRef } = handleForm(props.selectedRow);
|
|
|
- const data = props.selectedRow;
|
|
|
- const loading = ref<boolean>(false);
|
|
|
+
|
|
|
const { goodsGroup, goodsList, groupsChange, findGoodsCode } = handleGoods();
|
|
|
+ // 切换商品组
|
|
|
function handleGoodsGroups(value: number) {
|
|
|
groupsChange(value);
|
|
|
formRef.value.validate();
|
|
|
}
|
|
|
- function handleGoodsChange() {
|
|
|
+ const uuid = v4();
|
|
|
+ // 切换商品
|
|
|
+ function handleGoodsChange(id: number) {
|
|
|
+ //行情订阅
|
|
|
+ removeSubscribeQuotation(uuid);
|
|
|
+ const goodsCode = goodsList.value.find((e) => e.goodsid === id)?.goodscode as string;
|
|
|
+ const arr = [{ exchangeCode: 250, goodsCode: goodsCode, subState: 0 }];
|
|
|
+ addSubscribeQuotation(uuid, arr);
|
|
|
formRef.value.validate();
|
|
|
}
|
|
|
+
|
|
|
+ onMounted(() => {
|
|
|
+ removeSubscribeQuotation(uuid);
|
|
|
+ });
|
|
|
+ const { getMoney, getMargin, isFloat } = handleNumAndPrice();
|
|
|
+ // 处理内部资金账号
|
|
|
+ function handleSelectedAccount() {
|
|
|
+ const item = getSelectedAccount();
|
|
|
+ const list = getAccountTypeList([2]);
|
|
|
+ return item.taaccounttype === 2 ? item : list[0];
|
|
|
+ }
|
|
|
function submit() {
|
|
|
const marketInfo = getMarketRunByTradeMode(17);
|
|
|
if (marketInfo) {
|
|
|
@@ -204,7 +260,7 @@ export default defineComponent({
|
|
|
|
|
|
const param = {
|
|
|
AccountID: getInTaAccount(), // 默认内部资金账号第一个
|
|
|
- ClientSerialNo: uuidv4(), // 客户端流水号
|
|
|
+ ClientSerialNo: v4(), // 客户端流水号
|
|
|
// OperateSrc: 2,
|
|
|
ClientType: 4,
|
|
|
// MarketID: marketInfo.marketid,
|
|
|
@@ -218,7 +274,7 @@ export default defineComponent({
|
|
|
IsSpecified: 0, // 是否指定对手 0:不指定 1:指定 uint32
|
|
|
// MatchUserIDs: 0, // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
|
|
|
OrderQty: res.OrderQty, // 委托数量(可挂部分数据量) ======
|
|
|
- DeliveryGoodsID: data.deliverygoodsid, // 交割商品商品ID
|
|
|
+ DeliveryGoodsID: props.selectedRow.deliverygoodsid, // 交割商品商品ID
|
|
|
WRPriceType: res.WRPriceType, // 价格方式 1:固定价 2:浮动价
|
|
|
FixedPrice: res.FixedPrice, // 固定价格
|
|
|
PriceFactor: 1, // 价格系数(浮动价时填写)
|
|
|
@@ -265,6 +321,11 @@ export default defineComponent({
|
|
|
goodsList,
|
|
|
handleGoodsGroups,
|
|
|
handleGoodsChange,
|
|
|
+ isFloat,
|
|
|
+ getMoney,
|
|
|
+ getMargin,
|
|
|
+ getCanUseMoney,
|
|
|
+ handleSelectedAccount,
|
|
|
};
|
|
|
},
|
|
|
});
|