huangbin 4 tahun lalu
induk
melakukan
3cfa07009a

+ 1 - 1
src/common/components/capitalInfo/index.vue

@@ -7,7 +7,7 @@
       <a-select-option v-for="item in getAllTaAccount()"
                        :value="item.accountid"
                        :key="item.accountid">
-        {{item.accountname}}
+        {{item.accountid}}
       </a-select-option>
     </a-select>
     <!-- <a-collapse class="capitalCollapse"

+ 138 - 131
src/views/market/spot_trade/components/buy-sell-market/components/delisting/index.vue

@@ -1,118 +1,123 @@
 <template>
-    <!-- 仓单贸易  一口价    摘牌 -->
-    <Drawer
-        :title="'摘牌'"
-        :placement="'top'"
-        :visible="visible"
-        width="486px"
-        height="479px"
-        class="top"
-    >
-        <div class="delisting">
-            <div class="formBar">
-                <a-form class="inlineForm dialogForm" ref="formRef">
-                    <a-row :gutter="24">
-                        <a-col :span="24">
-                            <a-form-item label="交易账户">
-                                <a-select
-                                    class="inlineFormSelect"
-                                    style="width: 260px"
-                                    placeholder="请选择"
-                                >
-                                    <!-- <a-select-option value="1">一口价</a-select-option>
-                                    <a-select-option value="2">一口价2</a-select-option>-->
-                                </a-select>
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="24">
-                            <a-form-item label="挂牌方">
-                                <span class="white">南方铜业</span>
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="24">
-                            <a-form-item label="挂牌价格">
-                                <span class="yellow">1680.00</span>
-                            </a-form-item>
-                            <a-row :gutter="24">
-                                <a-col :span="24"></a-col>
-                            </a-row>
-                            <a-form-item label="挂牌数量">
-                                <span class="white">100吨</span>
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="24">
-                            <a-form-item label="摘牌数量">
-                                <a-input
-                                    class="commonInput stepper"
-                                    suffix="吨"
-                                    style="width: 260px"
-                                />
-                                <div class="labelTip">(10吨起)</div>
-                                <div class="minusBtn">
-                                    <MinusOutlined />
-                                </div>
-                                <div class="plusBtn">
-                                    <PlusOutlined />
-                                </div>
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="24">
-                            <a-form-item>
-                                <a-progress class="formProgress" :percent="30" />
-                                <div class="unit">
-                                    <span>0</span>
-                                    <span>300吨</span>
-                                </div>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12">&nbsp;</a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="24" class="mt-20">
-                            <a-form-item label="挂牌金额">
-                                <span class="white">50400.00</span>
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="24">
-                            <a-form-item class="tc">
-                                <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>
-        </div>
-    </Drawer>
+  <!-- 仓单贸易  一口价    摘牌 -->
+  <Drawer :title="'摘牌'"
+          :placement="'top'"
+          :visible="visible"
+          width="486px"
+          height="479px"
+          @cancel="cancel"
+          class="top">
+    <div class="delisting">
+      <div class="formBar">
+        <a-form class="inlineForm dialogForm"
+                ref="formRef"
+                :model="formState"
+                :rules="rules">
+          <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-row>
+          <a-row :gutter="24">
+            <a-col :span="24">
+              <a-form-item label="挂牌方">
+                <span class="white">{{selectedRow.username}}</span>
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="24">
+              <a-form-item label="挂牌价格">
+                <span class="yellow">{{selectedRow.fixedprice}}</span>
+              </a-form-item>
+              <a-row :gutter="24">
+                <a-col :span="24"></a-col>
+              </a-row>
+              <a-form-item label="挂牌数量">
+                <span class="white">{{selectedRow.orderqty}}吨</span>
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="24">
+              <a-form-item label="摘牌数量"
+                           name="num">
+                <a-input-number class="dialogInput"
+                                style="width: 260px"
+                                v-model:value="formState.num"
+                                suffix="吨" />
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="12"
+                   class="mt-20">
+              <a-form-item>
+                <a-slider :min="0"
+                          v-model:value="formState.num"
+                          :max="selectedRow.orderqty"
+                          class="formSlider" />
+                <div class="unit">
+                  <span>1</span>
+                  <span>{{selectedRow.orderqty}}</span>
+                </div>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">&nbsp;</a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="24"
+                   class="mt-20">
+              <a-form-item label="挂牌金额">
+                <span class="white">50400.00</span>
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="24">
+              <a-form-item class="tc">
+                <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>
+    </div>
+  </Drawer>
 </template>
 
 <script lang="ts">
 import { PlusOutlined, MinusOutlined } from '@ant-design/icons-vue';
 import { defineComponent, PropType, ref } from 'vue';
-import { enumOrderComponents } from '@/common/constants/enumOrderComponents';
 import Drawer from '@/common/components/drawer/index.vue';
-import { QueryWrPositionReq, WrOrderQuote, WrOrderQuoteDetail, WrPosition } from '@/services/go/wrtrade/interface';
-import { getSelectedAccountId, getUserId } from '@/services/bus/account';
+import { WrOrderQuote, WrOrderQuoteDetail } from '@/services/go/wrtrade/interface';
+import { getAccountTypeList, getSelectedAccountId, getUserId } from '@/services/bus/account';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import { HdWRDealOrder, hdWROrder } from '@/services/proto/warehousetrade';
+import { HdWRDealOrder } from '@/services/proto/warehousetrade';
 import { v4 as uuidv4 } from 'uuid';
 import moment from 'moment';
 import { ModalEnum } from '@/common/constants/modalNameEnum';
 import { HdWRDealOrderReq } from '@/services/proto/warehousetrade/interface';
-import { Long } from '@/services/socket/login/interface/long';
 import { _closeModal } from '@/common/setup/modal/modal';
 import { message } from 'ant-design-vue';
-
+import { handleForm } from './setup';
+import { validateAction } from '@/common/setup/form';
+import { ListingForm } from './interface';
 export default defineComponent({
     name: ModalEnum.spot_trade_warehouse_delisting,
     components: { Drawer, PlusOutlined, MinusOutlined },
@@ -130,47 +135,49 @@ export default defineComponent({
 
     setup(props, context) {
         const { visible, cancel } = _closeModal(context);
+        const accountList = getAccountTypeList([2]);
         const data = props.selectedRow;
+        const { rules, formState, formRef } = handleForm(props.selectedRow);
         console.log('data', data);
-        const num = ref<number>(0);
         const loading = ref<boolean>(false);
         function submit() {
-            if (!num.value) {
-                message.error('请输入数量!');
-                return;
-            }
-            // 摘卖方向
-            const param: HdWRDealOrderReq = {
-                UserID: getUserId(), // uint32 用户ID
-                AccountID: getSelectedAccountId(), // uint64 资金账号
-                RelatedWRTradeOrderID: props.selectedRow.wrtradeorderid, // uint64 关联委托单号(摘牌委托关联挂牌委托单ID)
-                WRTransferUserID: props.selectedRow.userid, // uint32 仓单受让用户
-                OrderQty: num.value, // uint64 委托数量
-                OrderSrc: 0, // uint32 委托来源
-                ClientSerialNo: uuidv4(), // string 客户端流水号
-                ClientOrderTime: moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), // string 客户端委托时间
-                ClientType: 4, // uint32 终端类型
-                OperatorID: getUserId(), // uint64 操作员账号ID
-                BuyOrSell: 0, // uint32 买卖方向
-                ApplyID: 0, // uint64 申请ID
-                LadingBillId: 0, // uint64 提单id(wrholdlb的LadingBillId字段),卖的时候填写
-                SubNum: 0, // uint64 提单子单号(wrholdlb的SubNum字段),卖的时候填写
-                WRFactorTypeId: props.parantSelectedRow.wrfactortypeid, // uint64 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写
-                TradeDate: moment().format('YYYYMMDD'), // string 交易日
-                DeliveryMonth: '', // string 交收月
-                HasWr: 1, // uint32 是否有仓单-0:没有仓单 1:有仓单
-            };
-            // console.log(param);
-            requestResultLoadingAndInfo(HdWRDealOrder, param, loading, ['摘牌成功', '摘牌失败:']).then(() => {
-                cancel(true);
+            validateAction<ListingForm>(formRef, formState).then((res) => {
+                // 摘卖方向
+                const param: HdWRDealOrderReq = {
+                    UserID: getUserId(), // uint32 用户ID
+                    AccountID: getSelectedAccountId(), // uint64 资金账号
+                    RelatedWRTradeOrderID: props.selectedRow.wrtradeorderid, // uint64 关联委托单号(摘牌委托关联挂牌委托单ID)
+                    WRTransferUserID: props.selectedRow.userid, // uint32 仓单受让用户
+                    OrderQty: res.num as number, // uint64 委托数量
+                    OrderSrc: 0, // uint32 委托来源
+                    ClientSerialNo: uuidv4(), // string 客户端流水号
+                    ClientOrderTime: moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), // string 客户端委托时间
+                    ClientType: 4, // uint32 终端类型
+                    OperatorID: getUserId(), // uint64 操作员账号ID
+                    BuyOrSell: 0, // uint32 买卖方向
+                    ApplyID: 0, // uint64 申请ID
+                    LadingBillId: 0, // uint64 提单id(wrholdlb的LadingBillId字段),卖的时候填写
+                    SubNum: 0, // uint64 提单子单号(wrholdlb的SubNum字段),卖的时候填写
+                    WRFactorTypeId: props.parantSelectedRow.wrfactortypeid, // uint64 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写
+                    TradeDate: moment().format('YYYYMMDD'), // string 交易日
+                    DeliveryMonth: '', // string 交收月
+                    HasWr: 1, // uint32 是否有仓单-0:没有仓单 1:有仓单
+                };
+                // console.log(param);
+                requestResultLoadingAndInfo(HdWRDealOrder, param, loading, ['摘牌成功', '摘牌失败:']).then(() => {
+                    cancel(true);
+                });
             });
         }
 
         return {
             visible,
             cancel,
+            accountList,
             submit,
-            num,
+            rules,
+            formState,
+            formRef,
         };
     },
 });

+ 4 - 0
src/views/market/spot_trade/components/buy-sell-market/components/delisting/interface.ts

@@ -0,0 +1,4 @@
+export interface ListingForm {
+    accountid: undefined | number,
+    num: number,
+}

+ 17 - 0
src/views/market/spot_trade/components/buy-sell-market/components/delisting/setup.ts

@@ -0,0 +1,17 @@
+import { WrOrderQuoteDetail } from "@/services/go/wrtrade/interface";
+import { reactive, ref, UnwrapRef } from "vue";
+import { ListingForm } from "./interface";
+
+export function handleForm(data: WrOrderQuoteDetail) {
+    const formRef = ref();
+    const formState: UnwrapRef<ListingForm> = reactive({
+        accountid: undefined,
+        num: 0,
+    })
+    const rules = {
+        accountid: [{ required: true, message: '请选择交易账户' }],
+        num: [{ required: true, message: '请输入摘牌数量', trigger: 'blur', type: 'number', min: 1, ma: data.orderqty }],
+
+    }
+    return { rules, formState, formRef }
+}

+ 1 - 0
src/views/market/spot_trade/components/post_buying/index.vue

@@ -106,6 +106,7 @@ export default defineComponent({
         },
     },
     setup(props, context) {
+        debugger;
         const { visible, cancel } = _closeModal(context);
         return {
             cancel,

+ 129 - 135
src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/index.vue

@@ -1,142 +1,136 @@
 <template>
-    <!-- 现货仓单 现货明细 挂牌 -->
-    <Drawer :title="'挂牌'" :placement="'bottom'" :visible="visible" @cancel="cancel">
-        <div class="listed">
-            <div class="condition">
-                <a-button class="conditionBtn">{{selectedRow.deliverygoodsname}}</a-button>
-                <a-button class="conditionBtn">{{selectedRow.wrtypename}}</a-button>
-                <a-button class="conditionBtn">{{selectedRow.warehousename}}</a-button>
-            </div>
-            <div class="formBar">
-                <a-form
-                    class="inlineForm dialogForm"
-                    ref="formRef"
-                    :model="formState"
-                    :rules="rules"
-                >
-                    <a-row :gutter="24">
-                        <a-col :span="12">
-                            <a-form-item label="挂牌方式" name="WRPriceType">
-                                <a-select
-                                    class="inlineFormSelect"
-                                    default-value="1"
-                                    v-model:value="formState.WRPriceType"
-                                    style="width: 140px"
-                                >
-                                    <a-select-option :value="1">一口价</a-select-option>
-                                    <a-select-option :value="2">浮动价</a-select-option>
-                                </a-select>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12" v-if="formState.WRPriceType === 1">
-                            <a-form-item label="挂牌价" name="FixedPrice">
-                                <a-input-number
-                                    class="dialogInput"
-                                    style="width: 140px"
-                                    v-model:value="formState.FixedPrice"
-                                    placeholder="请输入挂牌价"
-                                />
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12" v-if="formState.WRPriceType === 2">
-                            <a-form-item label="升贴水" name="PriceMove">
-                                <a-input
-                                    class="commonInput"
-                                    v-model:value="formState.PriceMove"
-                                    style="width: 140px"
-                                />
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="12">
-                            <a-form-item label="挂牌数量" name="OrderQty">
-                                <a-input-number
-                                    class="dialogInput"
-                                    style="width: 140px"
-                                    :suffix="selectedRow.enumdicname"
-                                    v-model:value="formState.OrderQty"
-                                    placeholder="请输入挂牌数量"
-                                />
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12">
-                            <a-form-item label="起摘数量" class="relative">
-                                <a-input
-                                    class="commonInput"
-                                    :suffix="selectedRow.enumdicname"
-                                    style="width: 140px"
-                                />
-                                <div class="tip">最小单位:1{{selectedRow.enumdicname}}</div>
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="12" class="mt-20">
-                            <a-form-item>
-                                <a-slider
-                                    v-model:value="formState.OrderQty"
-                                    :min="0"
-                                    :max="selectedRow.enableqty"
-                                    class="formSlider"
-                                />
-                                <!-- <a-progress class="formProgress"
-                                :percent="30" />-->
-                                <div class="unit">
-                                    <span>0</span>
-                                    <span>{{selectedRow.enableqty}}{{selectedRow.enumdicname}}</span>
-                                </div>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12">&nbsp;</a-col>
-                    </a-row>
-                    <a-row :gutter="24" v-if="formState.WRPriceType === 2">
-                        <a-col :span="24">
-                            <a-form-item label="行情商品" name="goodsid">
-                                <!-- <a-select class="inlineFormSelect"
+  <!-- 现货仓单 现货明细 挂牌 -->
+  <Drawer :title="'挂牌'"
+          :placement="'bottom'"
+          :visible="visible"
+          @cancel="cancel">
+    <div class="listed">
+      <div class="condition">
+        <a-button class="conditionBtn">{{selectedRow.deliverygoodsname}}</a-button>
+        <a-button class="conditionBtn">{{selectedRow.wrtypename}}</a-button>
+        <a-button class="conditionBtn">{{selectedRow.warehousename}}</a-button>
+      </div>
+      <div class="formBar">
+        <a-form class="inlineForm dialogForm"
+                ref="formRef"
+                :model="formState"
+                :rules="rules">
+          <a-row :gutter="24">
+            <a-col :span="12">
+              <a-form-item label="挂牌方式"
+                           name="WRPriceType">
+                <a-select class="inlineFormSelect"
+                          default-value="1"
+                          v-model:value="formState.WRPriceType"
+                          style="width: 140px">
+                  <a-select-option :value="1">一口价</a-select-option>
+                  <a-select-option :value="2">浮动价</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12"
+                   v-if="formState.WRPriceType === 1">
+              <a-form-item label="挂牌价"
+                           name="FixedPrice">
+                <a-input-number class="dialogInput"
+                                style="width: 140px"
+                                v-model:value="formState.FixedPrice"
+                                placeholder="请输入挂牌价" />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12"
+                   v-if="formState.WRPriceType === 2">
+              <a-form-item label="升贴水"
+                           name="PriceMove">
+                <a-input class="commonInput"
+                         v-model:value="formState.PriceMove"
+                         style="width: 140px" />
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="12">
+              <a-form-item label="挂牌数量"
+                           name="OrderQty">
+                <a-input-number class="dialogInput"
+                                style="width: 140px"
+                                :suffix="selectedRow.enumdicname"
+                                v-model:value="formState.OrderQty"
+                                placeholder="请输入挂牌数量" />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item label="起摘数量"
+                           class="relative">
+                <a-input class="commonInput"
+                         :suffix="selectedRow.enumdicname"
+                         style="width: 140px" />
+                <div class="tip">最小单位:1{{selectedRow.enumdicname}}</div>
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24">
+            <a-col :span="12"
+                   class="mt-20">
+              <a-form-item>
+                <a-slider v-model:value="formState.OrderQty"
+                          :min="0"
+                          :max="selectedRow.enableqty"
+                          class="formSlider" />
+                <div class="unit">
+                  <span>0</span>
+                  <span>{{selectedRow.enableqty}}{{selectedRow.enumdicname}}</span>
+                </div>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">&nbsp;</a-col>
+          </a-row>
+          <a-row :gutter="24"
+                 v-if="formState.WRPriceType === 2">
+            <a-col :span="24">
+              <a-form-item label="行情商品"
+                           name="goodsid">
+                <!-- <a-select class="inlineFormSelect"
                           style="width: 135px"
                           placeholder="请择交易所">
                                 </a-select>-->
-                                <a-select
-                                    class="inlineFormSelect ml5"
-                                    @change="groupsChange"
-                                    style="width: 135px"
-                                    v-model:value="formState.goodsgroupid"
-                                    placeholder="请选择商品"
-                                >
-                                    <a-select-option
-                                        v-for="item in goodsGroup"
-                                        :value="item.goodsgroupid"
-                                        :key="item.goodsgroupid"
-                                    >{{item.goodsgroupname}}</a-select-option>
-                                </a-select>
-                                <a-select
-                                    class="inlineFormSelect ml5"
-                                    style="width: 135px"
-                                    v-model:value="formState.goodsid"
-                                    placeholder="请选择合约"
-                                >
-                                    <a-select-option
-                                        v-for="item in goodsList"
-                                        :value="item.goodsid"
-                                        :key="item.goodsid"
-                                    >{{item.goodsname}}</a-select-option>
-                                </a-select>
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24" type="flex" justify="center">
-                        <a-col :span="24">
-                            <a-form-item class="tc">
-                                <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>
-        </div>
-    </Drawer>
+                <a-select class="inlineFormSelect ml5"
+                          @change="groupsChange"
+                          style="width: 135px"
+                          v-model:value="formState.goodsgroupid"
+                          placeholder="请选择商品">
+                  <a-select-option v-for="item in goodsGroup"
+                                   :value="item.goodsgroupid"
+                                   :key="item.goodsgroupid">{{item.goodsgroupname}}
+                  </a-select-option>
+                </a-select>
+                <a-select class="inlineFormSelect ml5"
+                          style="width: 135px"
+                          v-model:value="formState.goodsid"
+                          placeholder="请选择合约">
+                  <a-select-option v-for="item in goodsList"
+                                   :value="item.goodsid"
+                                   :key="item.goodsid">{{item.goodsname}}</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="24"
+                 type="flex"
+                 justify="center">
+            <a-col :span="24">
+              <a-form-item class="tc">
+                <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>
+    </div>
+  </Drawer>
 </template>
 
 <script lang="ts">