|
|
@@ -1,9 +1,19 @@
|
|
|
<template>
|
|
|
<!-- 挂牌求购 -->
|
|
|
- <Drawer :title="'挂牌求购'" :placement="'right'" :visible="visible" @cancel="cancel" class="top">
|
|
|
+ <Drawer :title="enumName === EnumRouterName.warehouse_pre_sale_price ? '挂牌' : '挂牌求购'" :placement="'right'" :visible="visible" @cancel="cancel" class="top">
|
|
|
<div class="post_buying">
|
|
|
<a-form class="inlineForm dialogForm" ref="formRef" :model="formState" :rules="rules">
|
|
|
<div class="formBar">
|
|
|
+ <a-row :gutter="24" v-if="showListingType">
|
|
|
+ <a-col :span="24">
|
|
|
+ <a-form-item label="挂牌方式">
|
|
|
+ <a-radio-group class="commonRadioGroup" v-model:value="listingType">
|
|
|
+ <a-radio value="buy">求购</a-radio>
|
|
|
+ <a-radio value="sell">出售</a-radio>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
<a-row :gutter="24">
|
|
|
<a-col :span="24">
|
|
|
<a-form-item label="交易账户" name="accountid">
|
|
|
@@ -128,8 +138,10 @@ import { BuyOrSell } from '@/common/constants/enumCommon';
|
|
|
import { getCanUseMoney } from '@/services/bus/account';
|
|
|
import { message } from 'ant-design-vue';
|
|
|
import Permance from '@/common/components/permanceTemp/choosePermancePlanTmp.vue';
|
|
|
-import { QueryPermancePlanTmpRsp } from '@/services/go/wrtrade/interface';
|
|
|
+import { queryWrPosition } from '@/services/go/wrtrade';
|
|
|
+import { QueryPermancePlanTmpRsp, WrPosition } from '@/services/go/wrtrade/interface';
|
|
|
import APP from '@/services';
|
|
|
+import { getRulesByMarketid } from '@/services/bus/rules';
|
|
|
|
|
|
export default defineComponent({
|
|
|
emits: ['cancel', 'update'],
|
|
|
@@ -161,6 +173,9 @@ export default defineComponent({
|
|
|
const { rules, formState, formRef } = handleForm(props.selectedRow);
|
|
|
const loading = ref<boolean>(false);
|
|
|
const accountList = getAccountTypeList([2]);
|
|
|
+ const listingType = ref<'buy' | 'sell'>('buy'); // 挂牌方式
|
|
|
+ const showListingType = ref(false); // 是否显示挂牌方式
|
|
|
+
|
|
|
if (accountList.length) {
|
|
|
formState.accountid = accountList[0].accountid;
|
|
|
}
|
|
|
@@ -171,13 +186,38 @@ export default defineComponent({
|
|
|
|
|
|
switch (props.enumName) {
|
|
|
// 仓单贸易
|
|
|
- case 'warehouse_receipt_trade_price': {
|
|
|
+ case EnumRouterName.warehouse_receipt_trade_price: {
|
|
|
formState.marketid = 17201;
|
|
|
break;
|
|
|
}
|
|
|
// 仓单预售
|
|
|
- case 'warehouse_pre_sale_price': {
|
|
|
+ case EnumRouterName.warehouse_pre_sale_price: {
|
|
|
formState.marketid = 17202;
|
|
|
+ // 仓单预售市场 任务 #3687
|
|
|
+ const marketConfig = getRulesByMarketid(17202);
|
|
|
+ if (marketConfig) {
|
|
|
+ // 是否效验无仓单额度
|
|
|
+ if (marketConfig.nowrquotaflag) {
|
|
|
+ // 获取持仓头寸
|
|
|
+ queryWrPosition({ haswr: 0, querytype: 2, }).then((res) => {
|
|
|
+ const { wrfactortypeid, wrstandardid, warehouseid, dgitemname } = props.selectedRow;
|
|
|
+ let wrPosition: WrPosition | undefined = undefined;
|
|
|
+
|
|
|
+ if (wrfactortypeid) {
|
|
|
+ // 根据仓单要素id查询头寸
|
|
|
+ wrPosition = res.find((e) => e.wrfactortypeid === wrfactortypeid);
|
|
|
+ } else {
|
|
|
+ // 根据商品、仓库、品牌查询持仓头寸
|
|
|
+ wrPosition = res.find((e) => e.wrstandardid === wrstandardid && e.warehouseid === warehouseid && e.wrtypename.includes(dgitemname));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 卖方需要有仓单头寸 “预售可用额度”
|
|
|
+ if (wrPosition && wrPosition?.creditenableqty > 0) {
|
|
|
+ showListingType.value = true;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
default: {
|
|
|
@@ -214,80 +254,78 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
function submit() {
|
|
|
- const marketInfo = APP.get('marketRun').find(({ marketid }: { marketid: number }) => marketid === formState.marketid)
|
|
|
- if (marketInfo) {
|
|
|
- validateAction<FormParam>(formRef, formState).then((res) => {
|
|
|
- // 现在增加一种挂牌求购的情况
|
|
|
- // 这种求购模式会生成一种仓单贸易商品
|
|
|
+ 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 = {
|
|
|
- OrderSrc: 1, // 1=客户端
|
|
|
- AccountID: res.accountid, // 默认内部资金账号第一个
|
|
|
- ClientSerialNo: uuidv4(), // 客户端流水号
|
|
|
- // OperateSrc: 2,
|
|
|
- ClientType: 4,
|
|
|
- MarketID: res.marketid,
|
|
|
- // 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 ? res.PriceMove : 0, // 升贴水(浮动价时填写)
|
|
|
- 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: 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: isFloat() ? [wrGoodsInfo] : [],
|
|
|
- CanPart: 1, // 是否允许部份摘牌0:不允许;1:允许
|
|
|
- WRStandardID: props.selectedRow.wrstandardid,
|
|
|
- HasWr: isWR(), // 无仓单挂牌 是否有无仓单
|
|
|
- DelistMinQty: res.DelistMinQty, // 起摘数量
|
|
|
- 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);
|
|
|
- });
|
|
|
+ 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 = {
|
|
|
+ OrderSrc: 1, // 1=客户端
|
|
|
+ AccountID: res.accountid, // 默认内部资金账号第一个
|
|
|
+ ClientSerialNo: uuidv4(), // 客户端流水号
|
|
|
+ // OperateSrc: 2,
|
|
|
+ ClientType: 4,
|
|
|
+ MarketID: res.marketid,
|
|
|
+ // MarketID: marketInfo.marketid,
|
|
|
+ LadingBillId: 0, // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
|
|
|
+ // LadingBillId: 'uint642081626946446000001', // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
|
|
|
+ TradeDate: moment().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 ? res.PriceMove : 0, // 升贴水(浮动价时填写)
|
|
|
+ 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: 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: isFloat() ? [wrGoodsInfo] : [],
|
|
|
+ CanPart: 1, // 是否允许部份摘牌0:不允许;1:允许
|
|
|
+ WRStandardID: props.selectedRow.wrstandardid,
|
|
|
+ HasWr: isWR(), // 无仓单挂牌 是否有无仓单
|
|
|
+ DelistMinQty: res.DelistMinQty, // 起摘数量
|
|
|
+ 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);
|
|
|
});
|
|
|
- }
|
|
|
+ });
|
|
|
}
|
|
|
return {
|
|
|
+ EnumRouterName,
|
|
|
submit,
|
|
|
cancel,
|
|
|
loading,
|
|
|
@@ -296,6 +334,8 @@ export default defineComponent({
|
|
|
rules,
|
|
|
formState,
|
|
|
formRef,
|
|
|
+ listingType,
|
|
|
+ showListingType,
|
|
|
isFloat,
|
|
|
isWR,
|
|
|
getMaxNum,
|