marymelisa il y a 4 ans
Parent
commit
8a6bb18c95
19 fichiers modifiés avec 622 ajouts et 554 suppressions
  1. 42 20
      src/common/components/permanceTemp/addPermanceTemp.vue
  2. 19 0
      src/common/constants/enumsName.ts
  3. 12 5
      src/common/setup/warehouse_receipt_trade/listing.ts
  4. 4 3
      src/services/proto/warehousetrade/interface.ts
  5. 41 49
      src/views/market/spot_trade/components/filter/index.vue
  6. 2 2
      src/views/market/spot_trade/spot_trade_order_transaction/components/detail/index.vue
  7. 0 1
      src/views/market/spot_trade/spot_trade_order_transaction/setup.ts
  8. 59 63
      src/views/market/spot_trade/spot_trade_reference_market/index.vue
  9. 27 13
      src/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_blocs/components/delisting/index.vue
  10. 1 1
      src/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_blocs/components/post-buying/index.vue
  11. 29 14
      src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/delisting/index.vue
  12. 1 1
      src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/post-buying/index.vue
  13. 5 5
      src/views/order/commodity_contract/components/commodity_contract_settlement/index.vue
  14. 1 1
      src/views/order/commodity_contract/components/commodity_contract_summary/components/commodity_contract_summary_settlement/index.vue
  15. 20 3
      src/views/order/commodity_contract/components/commodity_contract_summary/components/commodity_contract_summary_settlement/setup.ts
  16. 255 268
      src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/index.vue
  17. 34 40
      src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_pending_order/index.vue
  18. 3 3
      src/views/order/spot_warran/components/spot_warrant_pending_order/index.vue
  19. 67 62
      src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/index.vue

+ 42 - 20
src/common/components/permanceTemp/addPermanceTemp.vue

@@ -52,6 +52,7 @@
                              :rules="rules.domains.stepvalue">
                   <a-input-number class="commonInput dialogTableInput"
                                   :disabled="isSummary(parent)"
+                                  :max="100"
                                   style="width: 135px"
                                   type="number"
                                   v-model:value="parent.stepvalue"></a-input-number>
@@ -118,6 +119,7 @@ import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo
 import { addPerformanceTemp } from '@/services/proto/performance';
 import { geLoginID_number } from '@/services/bus/login';
 import { onMounted } from '@vue/runtime-core';
+import { RuleObject } from 'ant-design-vue/lib/form/interface';
 
 // 初始化 模板
 const initTemp = (): PermanceTemp => {
@@ -154,17 +156,21 @@ const useEditeTemp = (typeList: Ref<QueryWrPerformanceStepTypeRsp[]>) => {
     }
     // 汇总
     function isSummary({ steptypename }: PermanceTemp) {
-        return steptypename === '买方支付汇总' || steptypename === '卖方收款汇总' ? true : false;
+        return steptypename === '买方支付' || steptypename === '卖方收款' ? false : true;
     }
     // 切换步骤类型
     function stepTypeChange(item: PermanceTemp) {
         const stepType = findTemp(item)!;
         item.steptypename = stepType.steptypename;
         // 卖方收款汇总值必须为100%;
-        if (isSummary(item)) {
-            item.stepvalue = 100;
-        }
+        // if (!isSummary(item)) {
+        //     item.stepvalue = 100;
+        // }
     }
+    // function isDisable(temp: PermanceTemp) {
+    //     const { steptypename } = findTemp(temp)!;
+    //     return steptypename === '买方支付' || steptypename === '卖方收款';
+    // }
     return { isSummary, stepTypeChange };
 };
 
@@ -202,23 +208,39 @@ const userForm = (selectedRow: QueryPermancePlanTmpRsp) => {
         }
         return Promise.resolve();
     }
-    function validateStepValue(value: any) {
-        const buyTotal = total('买方支付');
-        const sellTotal = total('卖方收款');
-        if (findIndex('买方支付') !== -1) {
-            if (buyTotal !== 100) {
-                return Promise.reject('买方支付汇总值必须为100%');
-            }
-        }
-        if (findIndex('卖方收款') !== -1) {
-            if (sellTotal !== 100) {
-                return Promise.reject('卖方收款汇总值必须为100%');
+
+    function validateStepValue(rule: any, value: number) {
+        debugger;
+        if (rule.field) {
+            const arr = rule.fullField.split('.');
+            if (Array.isArray(arr) && arr.length === 3) {
+                const index = +arr[1];
+                const item = formState.domains[index];
+                const steptypename = item.steptypename;
+                if (steptypename === '买方支付' || steptypename === '卖方收款') {
+                    if (!value) {
+                        return Promise.reject('请输入步骤值');
+                    }
+                    const buyTotal = total('买方支付');
+                    const sellTotal = total('卖方收款');
+                    if (findIndex('买方支付') !== -1) {
+                        if (buyTotal !== 100) {
+                            return Promise.reject('买方支付汇总值必须为100%');
+                        }
+                    }
+                    if (findIndex('卖方收款') !== -1) {
+                        if (sellTotal !== 100) {
+                            return Promise.reject('卖方收款汇总值必须为100%');
+                        }
+                    }
+
+                    if (sellTotal > buyTotal) {
+                        return Promise.reject('卖方收款不能多于买方付款');
+                    }
+                }
             }
         }
 
-        if (sellTotal > buyTotal) {
-            return Promise.reject('卖方收款不能多于买方付款');
-        }
         return Promise.resolve();
     }
     const rules = {
@@ -229,8 +251,8 @@ const userForm = (selectedRow: QueryPermancePlanTmpRsp) => {
                 { required: true, validator: validateSepeTypeId },
             ],
             stepvalue: [
-                { required: true, message: '请输入步骤值', trigger: 'blur', type: 'number' },
-                { required: true, validator: validateStepValue },
+                // { required: true, message: '请输入步骤值', trigger: 'blur', type: 'number' },
+                { required: true, validator: validateStepValue, type: 'number' },
             ],
             stepdays: { required: true, message: '请输入距离上一步天数', trigger: 'blur', type: 'number' },
         },

+ 19 - 0
src/common/constants/enumsName.ts

@@ -1026,6 +1026,25 @@ export function getBuildTypeName(buildtype: number) {
     }
     return result
 }
+// 交收状态 1:待成交 2:已成交 3:成交失败 4:履约完成
+export function getDeliveryStatusName(status: number) {
+    let result = "--"
+    switch (status) {  // 1:年利率
+        case 1:
+            result = "待成交"
+            break
+        case 2:
+            result = "已成交"
+            break
+        case 3:
+            result = "成交失败"
+            break;
+        case 4:
+            result = "履约完成"
+            break;
+    }
+    return result
+}
 
 /**
  * 资金操作类型

+ 12 - 5
src/common/setup/warehouse_receipt_trade/listing.ts

@@ -1,7 +1,8 @@
 import { getAccountTypeList } from "@/services/bus/account";
 import { QueryPermancePlanTmpRsp } from "@/services/go/wrtrade/interface";
+import { RuleObject } from "ant-design-vue/lib/form/interface";
 import moment from "moment";
-import { onBeforeUnmount, reactive, ref, UnwrapRef } from "vue";
+import { computed, onBeforeUnmount, reactive, ref, UnwrapRef } from "vue";
 import { BlocsListingForm } from './interface';
 
 /************************ ============= 仓单贸易 贸易圈 挂牌 ================ ****************/
@@ -83,6 +84,7 @@ const useBlocksFriends = (formState: UnwrapRef<BlocsListingForm>) => {
     function chooseFriend(value: number[] | false) {
         if (value) {
             formState.friends = value;
+            friendCheck.value = false
         }
         showFriend.value = false;
     }
@@ -92,6 +94,11 @@ const useBlocksFriends = (formState: UnwrapRef<BlocsListingForm>) => {
     function getFriendLength() {
         return formState.friends.length;
     }
+    computed(() => {
+        if (friendCheck) {
+            formState.friends = []
+        }
+    })
     // 是否 不限好友
     function limiteFriends() {
         if (friendCheck.value) {
@@ -131,11 +138,11 @@ const handleForm = () => {
         permanceTempName: '',
         permaceTempId: 0,
     })
-    function validateMargin(value: any, errInfo: string) {
+    function validateMargin(rule: RuleObject, value: number) {
         if (value) {
             return Promise.resolve();
         } else {
-            return Promise.reject('履约保证金比例大于0');
+            return Promise.reject('请输入履约保证金');
         }
     }
     const formRef = ref();
@@ -150,8 +157,8 @@ const handleForm = () => {
             { min: 1, message: '起摘数量不能小于1', type: 'number' }
         ],
         margin: [
-            { required: true, message: '请输入履约保证金', trigger: 'blur', type: 'number' },
-            { validator: validateMargin, trigger: 'blur', type: 'number' }
+            // { required: true, message: '请输入履约保证金', trigger: 'blur', type: 'number' },
+            { required: true, validator: validateMargin, trigger: 'blur', type: 'number' }
         ],
         accountid: [{ required: true, message: '请输入交易账号' }],
         vidaliteTime: [{ required: true, message: '请选择挂牌有效期' }],

+ 4 - 3
src/services/proto/warehousetrade/interface.ts

@@ -77,11 +77,12 @@ export interface HdWRDealOrderReq {
 }
 
 export interface WrBargainApplyReq {
-    WRTradeOrderID: number; // 关联委托单ID
+    // WRTradeOrderID: number; // 关联委托单ID
+    RelatedWRTradeOrderID: number; // 关联委托单ID
     ApplyQty: number; // 摘牌数量
-    UserID: string; //摘牌人用户ID
+    UserID: number; //摘牌人用户ID
     AccountID: string; //摘牌资金账号
-    BuyOrSell: string; //摘牌方向
+    BuyOrSell: number; //摘牌方向
     ApplyPrice: string; //申请价格
     ApplyRemark: string; //申请备注
 }

+ 41 - 49
src/views/market/spot_trade/components/filter/index.vue

@@ -1,56 +1,49 @@
 <template>
-    <!-- 报表通用过滤 -->
-    <div class="filterTable">
-        <div class="filter-custom-table">
-            <a-tree-select
-                v-model:value="selectedFT"
-                @change="changeFT"
-                style="width: 200px"
-                :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
-                :tree-data="FtDeliveryGoods"
-                placeholder="全部商品"
-                :showCheckedStrategy="ALL"
-                tree-default-expand-all
-            ></a-tree-select>
-            <a-select
-                label-in-value
+  <!-- 报表通用过滤 -->
+  <div class="filterTable">
+    <div class="filter-custom-table">
+      <a-tree-select v-model:value="selectedFT"
+                     @change="changeFT"
+                     style="width: 200px"
+                     :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+                     :tree-data="FtDeliveryGoods"
+                     placeholder="全部商品"
+                     :showCheckedStrategy="ALL"
+                     tree-default-expand-all></a-tree-select>
+      <a-select label-in-value
                 class="conditionSelect"
                 v-for="(item, index) in wrLsit"
                 :key="index + '11'"
                 style="width: 120px"
                 v-model:value="item.selected"
-                :placeholder="`全部${item.itemtypename}`"
-            >
-                <a-select-option
-                    v-for="sub in item.itemlst"
-                    :key="sub.dgfactoryitemid"
-                >{{sub.dgfactoryitemvalue}}</a-select-option>
-            </a-select>
-            <a-space direction="vertical" v-if="!isWR()">
-                <a-month-picker
-                    :allowClear="false"
-                    placeholder="全部交收月"
-                    v-model:value="time"
-                    class="commonDatePicker conditionPicker allDatePicker"
-                />
-            </a-space>
-            <a-select
-                class="conditionSelect"
+                :placeholder="`全部${item.itemtypename}`">
+        <a-select-option v-for="sub in item.itemlst"
+                         :key="sub.dgfactoryitemid">{{sub.dgfactoryitemvalue}}</a-select-option>
+      </a-select>
+      <a-space direction="vertical"
+               v-if="!isWR()">
+        <a-month-picker :allowClear="false"
+                        placeholder="全部交收月"
+                        v-model:value="time"
+                        class="commonDatePicker conditionPicker allDatePicker" />
+      </a-space>
+      <a-select class="conditionSelect"
                 v-if="isFloat()"
                 :style="{width: '180px', maxHeight: '400px', overflow: 'auto' }"
                 @change="goodsChange"
-                placeholder="全部期货合约"
-            >
-                <a-select-option
-                    v-for="item in goodsList"
-                    :value="item.goodsid"
-                    :key="item.goodsid"
-                >{{item.goodscode}}({{item.goodsname}})</a-select-option>
-            </a-select>
-            <a-button class="btnDeafault" @click="search(true)" style="width: 80px">筛选</a-button>
-            <a-button class="operBtn" @click="listingAction">挂牌求购</a-button>
-        </div>
+                placeholder="全部期货合约">
+        <a-select-option v-for="item in goodsList"
+                         :value="item.goodsid"
+                         :key="item.goodsid">{{item.goodscode}}({{item.goodsname}})
+        </a-select-option>
+      </a-select>
+      <a-button class="btnDeafault"
+                @click="search(true)"
+                style="width: 80px">筛选</a-button>
+      <a-button class="operBtn"
+                @click="listingAction">挂牌求购</a-button>
     </div>
+  </div>
 </template>
 
 <script lang="ts">
@@ -67,10 +60,11 @@ import { Moment } from 'moment';
 import moment from 'moment';
 import { addSubscribeQuotation, removeSubscribeQuotation } from '@/services/socket/quota';
 import { v4 } from 'uuid';
-import { getGoodsList, getQuoteDayInfoByCodeFindPrice } from '@/services/bus/goods';
+import { getGoodsList, getGoodsListByTrade, getQuoteDayInfoByCodeFindPrice } from '@/services/bus/goods';
 import { Goods } from '@/services/go/ermcp/goodsInfo/interface';
 import { handleIs, setGoodsPrice } from '../buy-sell-market/setup';
-import { BuyOrSell } from '@/common/constants/enumCommon';
+import { BuyOrSell, TradeMode } from '@/common/constants/enumCommon';
+import { getMarketByTradeMode } from '@/services/bus/market';
 
 const ALL = TreeSelect.SHOW_ALL;
 
@@ -106,11 +100,9 @@ export default defineComponent({
             });
         }
         // 全部期货合约
-        const goodsList = ref<Goods[]>([]);
+        const goodsList = getGoodsListByTrade(TradeMode.ListingAndSelection);
         const selectedGoods = ref<Goods>();
-        initData(() => {
-            goodsList.value = getGoodsList();
-        });
+
         const uuid = v4();
         // 切换商品
         function goodsChange(id: number) {

+ 2 - 2
src/views/market/spot_trade/spot_trade_order_transaction/components/detail/index.vue

@@ -48,7 +48,7 @@ export default defineComponent({
     components: { Drawer },
     emits: ['cancel', 'update'],
     props: {
-        parantSelectedRow: {
+        deliverGoods: {
             type: Object as PropType<QueryDeliveryRelationRsp>,
             default: {},
         },
@@ -58,7 +58,7 @@ export default defineComponent({
         const { visible, cancel } = _closeModal(context);
         const lstitem = ref<WrTypeItem[]>();
         const lststep = ref<WrGoodsPerformanceStep[]>();
-        queryResultLoadingAndInfo(queryWrBsGoodsInfo, loading, props.parantSelectedRow.goodsid).then((res) => {
+        queryResultLoadingAndInfo(queryWrBsGoodsInfo, loading, props.deliverGoods.goodsid).then((res) => {
             if (res.length) {
                 lstitem.value = res[0].lstitem;
                 lststep.value = res[0].lststep;

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

@@ -35,7 +35,6 @@ export function handleDeliveryRelation(param: deliverytype[]) {
     }
 
     function getDeliverGoods() {
-        console.log('ddddd', allDeliverGoods.value.filter(e => param.includes(e.deliverytype as deliverytype)))
         return allDeliverGoods.value.filter(e => param.includes(e.deliverytype as deliverytype))
     }
     initData(() => {

+ 59 - 63
src/views/market/spot_trade/spot_trade_reference_market/index.vue

@@ -1,67 +1,63 @@
 <template>
-    <!--参考行情-->
-    <div class="topTableHeight">
-        <a-table
-            :columns="columns"
-            :class="['srcollYTable', isBottom ? '' : 'srcollYTableNoBottom', goodsList.length ? 'noPlaceHolder' : 'hasPlaceHolder']"
-            :scroll="{ x: '100%', y: isBottom ? 'calc(100vh - 378px)' :  'calc(100vh - 138px)'}"
-            :pagination="false"
-            :loading="loading"
-            :expandedRowKeys="expandedRowKeys"
-            :customRow="Rowclick"
-            rowKey="goodscode"
-            ref="tableRef"
-            :data-source="goodsList"
-        >
-            <template #totalturnover="{ text }">
-                <span>{{changeUnit(text)}}</span>
-            </template>
-            <!-- 涨跌 -->
-            <template #change="{ record }">
-                <span>{{quoteChange(record, record.decimalplace)}}</span>
-            </template>
-            <!-- 幅度 -->
-            <template #amplitude="{ record }">
-                <span>{{quoteAmplituOfVibration(record, record.decimalplace)}}</span>
-            </template>
-            <!-- 振幅 -->
-            <template #vibration="{ record }">
-                <span>{{quoteAmplituOfVibration(record, record.decimalplace)}}</span>
-            </template>
-            <template #index="{ index }">
-                <span>{{index + 1}}</span>
-            </template>
-            <!-- 买价 -->
-            <template #bid="{ text, record }">
-                <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
-            </template>
-            <!-- 卖价 -->
-            <template #ask="{ text, record }">
-                <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
-            </template>
-            <!-- 最新价 -->
-            <template #last="{ text, record }">
-                <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
-            </template>
-            <!-- 最低价 -->
-            <template #lowest="{ text, record }">
-                <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
-            </template>
-            <!-- 最高价 -->
-            <template #highest="{ text, record }">
-                <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
-            </template>
-        </a-table>
-        <!-- 右键 -->
-        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="firstBtn"></contextMenu>
-        <component
-            :is="componentId"
-            v-if="componentId"
-            :enumName="name"
-            :selectedRow="selectedRow"
-            @cancel="closeComponent"
-        ></component>
-    </div>
+  <!--参考行情-->
+  <div class="topTableHeight">
+    <a-table :columns="columns"
+             :class="['srcollYTable', isBottom ? '' : 'srcollYTableNoBottom', goodsList.length ? 'noPlaceHolder' : 'hasPlaceHolder']"
+             :scroll="{ x: '100%', y: isBottom ? 'calc(100vh - 378px)' :  'calc(100vh - 138px)'}"
+             :pagination="false"
+             :loading="loading"
+             :expandedRowKeys="expandedRowKeys"
+             :customRow="Rowclick"
+             rowKey="goodscode"
+             ref="tableRef"
+             :data-source="goodsList">
+      <template #totalturnover="{ text }">
+        <span>{{changeUnit(text)}}</span>
+      </template>
+      <!-- 涨跌 -->
+      <template #change="{ record }">
+        <span>{{quoteChange(record, record.decimalplace)}}</span>
+      </template>
+      <!-- 幅度 -->
+      <template #amplitude="{ record }">
+        <span>{{quoteAmplituOfVibration(record, record.decimalplace)}}</span>
+      </template>
+      <!-- 振幅 -->
+      <template #vibration="{ record }">
+        <span>{{quoteAmplituOfVibration(record, record.decimalplace)}}</span>
+      </template>
+      <template #index="{ index }">
+        <span>{{index + 1}}</span>
+      </template>
+      <!-- 买价 -->
+      <template #bid="{ text, record }">
+        <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
+      </template>
+      <!-- 卖价 -->
+      <template #ask="{ text, record }">
+        <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
+      </template>
+      <!-- 最新价 -->
+      <template #last="{ text, record }">
+        <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
+      </template>
+      <!-- 最低价 -->
+      <template #lowest="{ text, record }">
+        <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
+      </template>
+      <!-- 最高价 -->
+      <template #highest="{ text, record }">
+        <span :class="handleQuotePriceColor(text, record.presettle)">{{text}}</span>
+      </template>
+    </a-table>
+    <!-- 右键 -->
+    <!-- <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="firstBtn"></contextMenu> -->
+    <component :is="componentId"
+               v-if="componentId"
+               :enumName="name"
+               :selectedRow="selectedRow"
+               @cancel="closeComponent"></component>
+  </div>
 </template>
 
 <script lang="ts">

+ 27 - 13
src/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_blocs/components/delisting/index.vue

@@ -120,14 +120,14 @@
           <a-row :gutter="24">
             <a-col :span="24">
               <a-form-item label="履约保证金">
-                <span class="white ml8">{{getCanUseMoney(getSelectedAccount())}}</span>
+                <span class="white ml8">{{getMargin()}}</span>
               </a-form-item>
             </a-col>
           </a-row>
           <a-row :gutter="24">
             <a-col :span="24">
               <a-form-item label="可用资金">
-                <span class="white ml8">{{getMargin()}}</span>
+                <span class="white ml8">{{getCanUseMoney(getSelectedAccount())}}</span>
               </a-form-item>
             </a-col>
           </a-row>
@@ -211,19 +211,26 @@ export default defineComponent({
         function getSelectedAccount() {
             return accountList.find((e) => e.accountid === formState.accountid)!;
         }
+        function getPrice() {
+            return isBargin() ? formState.price : props.selectedRow.fixedprice;
+        }
+        function getNum() {
+            return isCanpart() ? formState.num : props.selectedRow.orderqty;
+        }
         // 摘牌金额
         function getMoney() {
-            const price = isBargin() ? formState.price : props.selectedRow.fixedprice;
+            const price = getPrice();
+            const num = getNum();
             if (price) {
-                return (price * props.selectedRow.orderqty).toFixed(2);
+                return (price * num).toFixed(2);
             } else {
                 return '--';
             }
         }
         // 履约保证金
         function getMargin() {
-            const price = isBargin() ? formState.price : props.selectedRow.fixedprice;
-            const num = formState.num;
+            const price = getPrice();
+            const num = getNum();
             let result = 0;
             const { marginvalue } = props.selectedRow;
             if (price && num && marginvalue) {
@@ -271,16 +278,23 @@ export default defineComponent({
 
         function submit() {
             validateAction<ListingForm>(formRef, formState).then((res) => {
+                const price = getPrice();
+                const num = getNum();
                 if (isBargin()) {
                     // 议价摘牌
-                    const param: WrBargainApplyReq = {
-                        WRTradeOrderID: Long.fromString(props.selectedRow.wrtradeorderid),
-                        ApplyQty: 10,
-                        UserID: String(getUserId()),
+                    const param = {
+                        RelatedWRTradeOrderID: props.selectedRow.wrtradeorderid,
+                        ApplyQty: num,
+                        UserID: getUserId(),
                         AccountID: getSelectedAccountId().toString(),
-                        BuyOrSell: props.buyOrSell.toString(),
-                        ApplyPrice: formState.price.toString(),
+                        BuyOrSell: isBuy() ? BuyOrSell.sell : BuyOrSell.buy,
+                        ApplyPrice: price.toString(),
                         ApplyRemark: '',
+                        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
                     };
                     requestResultLoadingAndInfo(wrBargainApply, param, loading, ['议价摘牌成功', '议价摘牌失败:']).then(() => {
                         cancel(true);
@@ -293,7 +307,7 @@ export default defineComponent({
                         AccountID: getSelectedAccountId(), // uint64 资金账号
                         RelatedWRTradeOrderID: props.selectedRow.wrtradeorderid, // uint64 关联委托单号(摘牌委托关联挂牌委托单ID)
                         WRTransferUserID: props.selectedRow.userid, // uint32 仓单受让用户
-                        OrderQty: res.num as number, // uint64 委托数量
+                        OrderQty: num, // uint64 委托数量
                         OrderSrc: 0, // uint32 委托来源
                         ClientSerialNo: uuidv4(), // string 客户端流水号
                         ClientOrderTime: moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), // string 客户端委托时间

+ 1 - 1
src/views/market/spot_trade/warehouse_pre_sale/warehouse_pre_sale_blocs/components/post-buying/index.vue

@@ -272,7 +272,7 @@ export default defineComponent({
                         DelistMinQty: numCheck.value ? formState.delistingQty : 0, // 起摘数量
                         MarginFlag: 1, // 挂牌是否指定保证金 0:否 1:是
                         MarginAlgorithm: 1, // 指定保证金方式 1:比率 2:固定
-                        MarginValue: +(formState.margin / 100).toFixed(2), // 指定保证金设置值
+                        MarginValue: +(formState.margin / 100), // 指定保证金设置值
                         AllFriendsFlag: friendCheck.value ? 1 : 0, //是否全好友可见 0:否 1:是
                         FactoryItems:
                             props.selectedRow.wrResult != undefined

+ 29 - 14
src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/delisting/index.vue

@@ -120,14 +120,14 @@
           <a-row :gutter="24">
             <a-col :span="24">
               <a-form-item label="履约保证金">
-                <span class="white ml8">{{getCanUseMoney(getSelectedAccount())}}</span>
+                <span class="white ml8">{{getMargin()}}</span>
               </a-form-item>
             </a-col>
           </a-row>
           <a-row :gutter="24">
             <a-col :span="24">
               <a-form-item label="可用资金">
-                <span class="white ml8">{{getMargin()}}</span>
+                <span class="white ml8">{{getCanUseMoney(getSelectedAccount())}}</span>
               </a-form-item>
             </a-col>
           </a-row>
@@ -211,19 +211,26 @@ export default defineComponent({
         function getSelectedAccount() {
             return accountList.find((e) => e.accountid === formState.accountid)!;
         }
+        function getPrice() {
+            return isBargin() ? formState.price : props.selectedRow.fixedprice;
+        }
+        function getNum() {
+            return isCanpart() ? formState.num : props.selectedRow.orderqty;
+        }
         // 摘牌金额
         function getMoney() {
-            const price = isBargin() ? formState.price : props.selectedRow.fixedprice;
+            const price = getPrice();
+            const num = getNum();
             if (price) {
-                return (price * props.selectedRow.orderqty).toFixed(2);
+                return (price * num).toFixed(2);
             } else {
                 return '--';
             }
         }
         // 履约保证金
         function getMargin() {
-            const price = isBargin() ? formState.price : props.selectedRow.fixedprice;
-            const num = formState.num;
+            const price = getPrice();
+            const num = getNum();
             let result = 0;
             const { marginvalue } = props.selectedRow;
             if (price && num && marginvalue) {
@@ -271,16 +278,24 @@ export default defineComponent({
 
         function submit() {
             validateAction<ListingForm>(formRef, formState).then((res) => {
+                debugger;
+                const price = getPrice();
+                const num = getNum();
                 if (isBargin()) {
                     // 议价摘牌
-                    const param: WrBargainApplyReq = {
-                        WRTradeOrderID: Long.fromString(props.selectedRow.wrtradeorderid),
-                        ApplyQty: 10,
-                        UserID: String(getUserId()),
+                    const param = {
+                        RelatedWRTradeOrderID: props.selectedRow.wrtradeorderid,
+                        ApplyQty: num,
+                        UserID: getUserId(),
                         AccountID: getSelectedAccountId().toString(),
-                        BuyOrSell: props.buyOrSell.toString(),
-                        ApplyPrice: formState.price.toString(),
+                        BuyOrSell: isBuy() ? BuyOrSell.sell : BuyOrSell.buy,
+                        ApplyPrice: price.toString(),
                         ApplyRemark: '',
+                        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
                     };
                     requestResultLoadingAndInfo(wrBargainApply, param, loading, ['议价摘牌成功', '议价摘牌失败:']).then(() => {
                         cancel(true);
@@ -293,13 +308,13 @@ export default defineComponent({
                         AccountID: getSelectedAccountId(), // uint64 资金账号
                         RelatedWRTradeOrderID: props.selectedRow.wrtradeorderid, // uint64 关联委托单号(摘牌委托关联挂牌委托单ID)
                         WRTransferUserID: props.selectedRow.userid, // uint32 仓单受让用户
-                        OrderQty: res.num as number, // uint64 委托数量
+                        OrderQty: num, // 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 买卖方向
+                        BuyOrSell: isBuy() ? BuyOrSell.sell : BuyOrSell.buy, // uint32 买卖方向
                         ApplyID: 0, // uint64 申请ID
                         LadingBillId: 0, // uint64 提单id(wrholdlb的LadingBillId字段),卖的时候填写
                         SubNum: 0, // uint64 提单子单号(wrholdlb的SubNum字段),卖的时候填写

+ 1 - 1
src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/post-buying/index.vue

@@ -259,7 +259,7 @@ export default defineComponent({
                         DelistMinQty: numCheck.value ? formState.delistingQty : res.delistingQty, // 起摘数量
                         MarginFlag: 1, // 挂牌是否指定保证金 0:否 1:是
                         MarginAlgorithm: 1, // 指定保证金方式 1:比率 2:固定
-                        MarginValue: +(formState.margin / 100).toFixed(2), // 指定保证金设置值
+                        MarginValue: +(formState.margin / 100), // 指定保证金设置值
                         AllFriendsFlag: friendCheck.value ? 1 : 0, //是否全好友可见 0:否 1:是
                         FactoryItems:
                             props.selectedRow.wrResult != undefined

+ 5 - 5
src/views/order/commodity_contract/components/commodity_contract_settlement/index.vue

@@ -37,7 +37,7 @@
       </template>
       <!-- 状态 -->
       <template #deliverystatus="{ record }">
-        <a>{{ getOrderStatusName(record.deliverystatus) }}</a>
+        <a>{{ getDeliveryStatusName(record.deliverystatus) }}</a>
       </template>
     </a-table>
     <component :is="componentId"
@@ -58,7 +58,7 @@ import { ComposeOrderTableParam } from '@/common/setup/table/interface';
 import { queryAmountLog } from '@/services/go/TaAccount';
 import { QueryAmountLogReq } from '@/services/go/TaAccount/interface';
 import { getSelectedAccountId } from '@/services/bus/account';
-import { getBuildTypeName, getOperateTypeEnumItemName, getOperateTypeName, getOrderStatusName } from '@/common/constants/enumsName';
+import { getBuildTypeName, getOperateTypeEnumItemName, getOperateTypeName, getDeliveryStatusName } from '@/common/constants/enumsName';
 import { formatTime } from '@/common/methods';
 import Bus from '@/utils/eventBus/index';
 import { expandIcon } from '@/common/setup/table/clolumn';
@@ -158,11 +158,11 @@ const useColumns = () => {
         },
         {
             key: '9th',
-            dataIndex: 'deliveryamount',
+            dataIndex: 'deliveryprice',
             title: '交收均价',
             align: 'center',
             slots: {
-                customRender: 'deliveryamount',
+                customRender: 'deliveryprice',
             },
             width: 120,
         },
@@ -217,7 +217,7 @@ export default defineComponent({
             formatTime,
             expandIcon,
             getBuildTypeName,
-            getOrderStatusName,
+            getDeliveryStatusName,
             getBuyOrSellName,
         };
     },

+ 1 - 1
src/views/order/commodity_contract/components/commodity_contract_summary/components/commodity_contract_summary_settlement/index.vue

@@ -68,7 +68,7 @@
                 <span>,需合约数量</span>
                 <span class="white">{{getNeedContractNum()}}</span>
               </div>
-              <div class="yellow">升贴水{{selected ? selected.pricemove : '--'}}</div>
+              <div class="yellow">升贴水{{selected ? selected.pricemove * selected.num : '--'}}</div>
             </div>
             <div class="line2"
                  v-if="isBaseSpread()">

+ 20 - 3
src/views/order/commodity_contract/components/commodity_contract_summary/components/commodity_contract_summary_settlement/setup.ts

@@ -1,6 +1,6 @@
 import { handleDeliveryRelation } from "@/common/setup/deliveryRelation";
 import { getSelectedAccountId } from "@/services/bus/account";
-import { getQuoteDayInfoByCode } from "@/services/bus/goods";
+import { getGoodsByCode, getQuoteDayInfoByCode } from "@/services/bus/goods";
 import { QueryDeliveryRelationRsp } from "@/services/go/delivery/interface";
 import { QueryTradePositionRsp } from "@/services/go/ermcp/order/interface";
 import { queryWrDeliveryAvalidHoldLB } from "@/services/go/wrtrade";
@@ -72,12 +72,26 @@ export function handleCheck() {
 
 export function handleCalculation(selectedRow: QueryTradePositionRsp) {
     // 商品合约单位
-    const { agreeunit, goodscode, decimalplace, enableqty } = selectedRow
+    const { decimalplace, enableqty } = selectedRow
+    function getAgreeunit() {
+        let result = 1
+        const pgoodscode = selected.value?.pgoodscode
+        if (pgoodscode) {
+            const item = getGoodsByCode(pgoodscode)
+            if (item) {
+                result = item.agreeunit
+            }
+        }
+        return result
+    }
+
+
     function selctedNum() {
         return selected.value ? selected.value.num.toFixed(0) : '--'
     }
     // 选中数量的 最小变动值 = 合约单位 * 最小交割系数 * 仓单商品的单位r2
     function getStepValue() {
+        const agreeunit = getAgreeunit()
         if (deliveryGoods.value) {
             const { rratio2, mindeliveryqty } = deliveryGoods.value
             return agreeunit * mindeliveryqty * rratio2
@@ -88,6 +102,7 @@ export function handleCalculation(selectedRow: QueryTradePositionRsp) {
     // 可交收数量 = 合约可用手数 * 合约单位 * 最小交割系数 * (仓单商品的单位r2/合约商品的单位r1)
     function getCanSettlementNum() {
         if (deliveryGoods.value) {
+            const agreeunit = getAgreeunit()
             const { rratio1, rratio2, mindeliveryqty } = deliveryGoods.value
             const result = enableqty * agreeunit * mindeliveryqty * (rratio2 / rratio1)
             return result.toFixed(0)
@@ -100,6 +115,7 @@ export function handleCalculation(selectedRow: QueryTradePositionRsp) {
         let result = 0
         if (selected.value?.num) {
             if (deliveryGoods.value) {
+                const agreeunit = getAgreeunit()
                 const { rratio1, rratio2, mindeliveryqty, xdeliveryratio, pdeliveryratio } = deliveryGoods.value
                 result = selected.value.num / (agreeunit * mindeliveryqty * (rratio2 / rratio1))
             }
@@ -130,7 +146,8 @@ export function handleCalculation(selectedRow: QueryTradePositionRsp) {
         if (selected.value) {
             if (num !== '--' && price !== '--') {
                 if (deliveryGoods.value) {
-                    result = (+num) * (+price) * agreeunit + selected.value.pricemove
+                    const agreeunit = getAgreeunit()
+                    result = (+num) * (+price) * agreeunit + (selected.value.pricemove + selected.value.num)
                 }
             }
         }

+ 255 - 268
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/index.vue

@@ -1,277 +1,264 @@
 <template>
-    <!-- 预售仓单 现货明细 挂牌 -->
-    <Drawer
-        :title="'挂牌'"
-        :placement="'right'"
-        class="delistingBottom"
-        :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>
+  <!-- 预售仓单 现货明细 挂牌 -->
+  <Drawer :title="'挂牌'"
+          :placement="'right'"
+          class="delistingBottom"
+          :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>
 
-            <a-form class="inlineForm dialogForm" ref="formRef" :model="formState" :rules="rules">
-                <div class="formBar">
-                    <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-option :value="3">贸易圈</a-select-option>
-                                </a-select>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12" v-if="isFixed()">
-                            <a-form-item label="挂牌价" name="FixedPrice">
-                                <a-input-number
-                                    class="dialogInput"
-                                    :min="0"
-                                    style="width: 140px"
-                                    v-model:value="formState.FixedPrice"
-                                    placeholder="请输入挂牌价"
-                                />
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12" v-if="isBlocs()">
-                            <a-form-item label="挂牌价格" name="FixedPrice" class="inputIconBox">
-                                <a-input-number
-                                    class="commonInput"
-                                    style="width: 140px"
-                                    :min="0"
-                                    v-model:value="formState.FixedPrice"
-                                />
-                                <a-checkbox class="commonCheckbox" v-model:checked="priceCheck">可议价</a-checkbox>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12" v-if="isFloat()">
-                            <a-form-item label="基差" name="PriceMove">
-                                <a-input-number
-                                    class="commonInput"
-                                    :min="0"
-                                    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 !important"
-                                    :min="0"
-                                    v-model:value="formState.OrderQty"
-                                    placeholder="请输入挂牌数量"
-                                />
-                                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12">
-                            <a-form-item label="起摘数量" class="relative" name="DelistMinQty">
-                                <a-input-number
-                                    class="commonInput"
-                                    :min="0"
-                                    v-model:value="formState.DelistMinQty"
-                                    style="width: 140px"
-                                />
-                                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
-                                <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"
-                                    style="width: 140px;"
-                                />
-                                <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">
-                        <a-col :span="12">
-                            <a-form-item label="交收月" name="DeliveryMonth">
-                                <a-month-picker
-                                    style="width: 140px"
-                                    v-model:value="formState.DeliveryMonth"
-                                    :allowClear="false"
-                                    class="commonDatePicker dialogDatePicker"
-                                />
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12">
-                            <a-form-item>&nbsp;</a-form-item>
-                        </a-col>
-                    </a-row>
-                    <template v-if="isBlocs()">
-                        <a-row :gutter="24">
-                            <a-col :span="12">
-                                <a-form-item label="履约保证金" name="margin">
-                                    <a-input-number
-                                        class="commonInput"
-                                        v-model:value="formState.margin"
-                                        :min="0"
-                                        style="width: 140px"
-                                    />
-                                    <span class="input-enumdicname">%</span>
-                                </a-form-item>
-                            </a-col>
-                            <a-col :span="12">
-                                <a-form-item label="挂牌有效期" name="vidaliteTime" class="inputIconBox">
-                                    <a-date-picker
-                                        style="width: 140px"
-                                        v-model:value="formState.vidaliteTime"
-                                        :allowClear="false"
-                                        class="commonDatePicker dialogDatePicker"
-                                    />
-                                </a-form-item>
-                            </a-col>
-                        </a-row>
-                        <a-row :gutter="24">
-                            <a-col :span="12">
-                                <a-form-item label="履约方式" class="inputIconBox">
-                                    <span
-                                        class="clickBox"
-                                        style="width: 140px"
-                                        @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="12">
-                                <a-form-item label="指定朋友" class="inputIconBox">
-                                    <span
-                                        class="clickBox"
-                                        style="width: 140px"
-                                        @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-row>
-                    </template>
-                    <a-row :gutter="24" v-if="isFloat()">
-                        <a-col :span="24">
-                            <a-form-item label="行情商品" name="goodsid">
-                                <!-- <a-select class="inlineFormSelect"
+      <a-form class="inlineForm dialogForm"
+              ref="formRef"
+              :model="formState"
+              :rules="rules">
+        <div class="formBar">
+          <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-option :value="3">贸易圈</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12"
+                   v-if="isFixed()">
+              <a-form-item label="挂牌价"
+                           name="FixedPrice">
+                <a-input-number class="dialogInput"
+                                :min="0"
+                                style="width: 140px"
+                                v-model:value="formState.FixedPrice"
+                                placeholder="请输入挂牌价" />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12"
+                   v-if="isBlocs()">
+              <a-form-item label="挂牌价格"
+                           name="FixedPrice"
+                           class="inputIconBox">
+                <a-input-number class="commonInput"
+                                style="width: 140px"
+                                :min="0"
+                                v-model:value="formState.FixedPrice" />
+                <a-checkbox class="commonCheckbox"
+                            v-model:checked="priceCheck">可议价</a-checkbox>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12"
+                   v-if="isFloat()">
+              <a-form-item label="基差"
+                           name="PriceMove">
+                <a-input-number 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 !important"
+                                :min="0"
+                                v-model:value="formState.OrderQty"
+                                placeholder="请输入挂牌数量" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item label="起摘数量"
+                           class="relative"
+                           name="DelistMinQty">
+                <a-input-number class="commonInput"
+                                :min="0"
+                                v-model:value="formState.DelistMinQty"
+                                style="width: 140px" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
+                <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"
+                          style="width: 140px;" />
+                <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">
+            <a-col :span="12">
+              <a-form-item label="交收月"
+                           name="DeliveryMonth">
+                <a-month-picker style="width: 140px"
+                                v-model:value="formState.DeliveryMonth"
+                                :allowClear="false"
+                                class="commonDatePicker dialogDatePicker" />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item>&nbsp;</a-form-item>
+            </a-col>
+          </a-row>
+          <template v-if="isBlocs()">
+            <a-row :gutter="24">
+              <a-col :span="12">
+                <a-form-item label="履约保证金"
+                             name="margin">
+                  <a-input-number class="commonInput"
+                                  v-model:value="formState.margin"
+                                  :min="0"
+                                  style="width: 140px" />
+                  <span class="input-enumdicname">%</span>
+                </a-form-item>
+              </a-col>
+              <a-col :span="12">
+                <a-form-item label="挂牌有效期"
+                             name="vidaliteTime"
+                             class="inputIconBox">
+                  <a-date-picker style="width: 140px"
+                                 v-model:value="formState.vidaliteTime"
+                                 :allowClear="false"
+                                 class="commonDatePicker dialogDatePicker" />
+                </a-form-item>
+              </a-col>
+            </a-row>
+            <a-row :gutter="24">
+              <a-col :span="12">
+                <a-form-item label="履约方式"
+                             class="inputIconBox">
+                  <span class="clickBox"
+                        style="width: 140px"
+                        @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="12">
+                <a-form-item label="指定朋友"
+                             class="inputIconBox">
+                  <span class="clickBox"
+                        style="width: 140px"
+                        @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-row>
+          </template>
+          <a-row :gutter="24"
+                 v-if="isFloat()">
+            <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="handleGoodsGroups"
-                                    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"
-                                    @change="handleGoodsChange"
-                                    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">
-                        <a-col :span="24" v-if="isFloat()" class="relative">
-                            <a-form-item :label="'估算金额'">
-                                <span class="white ml8">{{getWrMoney()}}</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24" v-if="isFixed()" class="relative">
-                            <a-form-item :label="'摘牌金额'">
-                                <span class="white ml8">{{getWrMoney()}}</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24" v-if="getWrMargin() && !isBlocs()">
-                            <a-form-item :label="getWrMargin() ? '履约保证金' : ''">
-                                <span class="white ml8">{{getWrMargin()}}</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="24" v-if="isBlocs()">
-                            <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(handleSelectedAccount())}}</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"
-                                :loading="loading"
-                                :disabled="loading"
-                                @click="submit"
-                            >卖出</a-button>
-                            <a-button
-                                class="ml10 cancelBtn"
-                                :loading="loading"
-                                :disabled="loading"
-                                @click="cancel"
-                            >取消</a-button>
-                        </a-form-item>
-                    </a-col>
-                </a-row>
-            </a-form>
+                <a-select class="inlineFormSelect ml5"
+                          @change="handleGoodsGroups"
+                          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"
+                          @change="handleGoodsChange"
+                          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">
+            <a-col :span="24"
+                   v-if="isFloat()"
+                   class="relative">
+              <a-form-item :label="'估算金额'">
+                <span class="white ml8">{{getWrMoney()}}</span>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24"
+                   v-if="isFixed()"
+                   class="relative">
+              <a-form-item :label="'摘牌金额'">
+                <span class="white ml8">{{getWrMoney()}}</span>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24"
+                   v-if="getWrMargin() && !isBlocs()">
+              <a-form-item :label="getWrMargin() ? '履约保证金' : ''">
+                <span class="white ml8">{{getWrMargin()}}</span>
+              </a-form-item>
+            </a-col>
+            <a-col :span="24"
+                   v-if="isBlocs()">
+              <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(handleSelectedAccount())}}</span>
+              </a-form-item>
+            </a-col>
+          </a-row>
         </div>
-    </Drawer>
+        <a-row :gutter="24">
+          <a-col :span="24"
+                 class="fixedBtns">
+            <a-form-item class="btnCenter">
+              <a-button class="listedBtn"
+                        :loading="loading"
+                        :disabled="loading"
+                        @click="submit">卖出</a-button>
+              <a-button class="ml10 cancelBtn"
+                        :loading="loading"
+                        :disabled="loading"
+                        @click="cancel">取消</a-button>
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+  </Drawer>
 </template>
 
 <script lang="ts">

+ 34 - 40
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_pending_order/index.vue

@@ -1,42 +1,36 @@
 <template>
-    <!-- 仓单预售 挂单 -->
-    <a-table
-        :columns="columns"
-        class="srcollYTable expandLeftTable"
-        :scroll="{ x: '100%', y: '190px' }"
-        :pagination="false"
-        :loading="loading"
-        :expandedRowKeys="expandedRowKeys"
-        :customRow="Rowclick"
-        :expandIcon="expandIcon"
-        :expandIconAsCell="false"
-        rowKey="key"
-        :data-source="tableList"
-    >
-        <!-- 额外的展开行 -->
-        <template #expandedRowRender="{ record }">
-            <BtnList
-                :btnList="filterBtnList(btnList, record)"
-                class="btn-list-sticky"
-                :record="record"
-                @click="openComponent"
-            />
-        </template>
-        <!--  委托状态-->
-        <template #wrtradeorderstatus="{ record }">
-            <a>{{ getWrTradeOrderStatusName(record.wrtradeorderstatus) }}</a>
-        </template>
-        <!-- 挂牌类型 -->
-        <template #wrtradetype="{ record }">
-            <a>{{ getWrOrderTypeName(record.buyorsell, record.wrtradetype) }}</a>
-        </template>
-    </a-table>
-    <component
-        :is="componentId"
-        v-if="componentId"
-        :selectedRow="selectedRow"
-        @cancel="closeComponent"
-    ></component>
+  <!-- 仓单预售 挂单 -->
+  <a-table :columns="columns"
+           class="srcollYTable expandLeftTable"
+           :scroll="{ x: '100%', y: '190px' }"
+           :pagination="false"
+           :loading="loading"
+           :expandedRowKeys="expandedRowKeys"
+           :customRow="Rowclick"
+           :expandIcon="expandIcon"
+           :expandIconAsCell="false"
+           rowKey="key"
+           :data-source="tableList">
+    <!-- 额外的展开行 -->
+    <template #expandedRowRender="{ record }">
+      <BtnList :btnList="filterBtnList(btnList, record)"
+               class="btn-list-sticky"
+               :record="record"
+               @click="openComponent" />
+    </template>
+    <!--  委托状态-->
+    <template #wrtradeorderstatus="{ record }">
+      <a>{{ getOrderStatusName(record.wrtradeorderstatus) }}</a>
+    </template>
+    <!-- 挂牌类型 -->
+    <template #wrtradetype="{ record }">
+      <a>{{ getWrOrderTypeName(record.buyorsell, record.wrtradetype) }}</a>
+    </template>
+  </a-table>
+  <component :is="componentId"
+             v-if="componentId"
+             :selectedRow="selectedRow"
+             @cancel="closeComponent"></component>
 </template>
 
 <script lang="ts">
@@ -47,7 +41,7 @@ import { QueryWrOrderDetailReq, WrOrderDetail } from '@/services/go/wrtrade/inte
 import { getRecordItemTab } from '@/common/setup/order/orderData';
 import { handleComposeOrderTable } from '@/common/setup/table/compose';
 import { ComposeOrderTableParam } from '@/common/setup/table/interface';
-import { getWrOrderTypeName, getWrTradeOrderStatusName } from '@/common/constants/enumsName';
+import { getWrOrderTypeName, getOrderStatusName } from '@/common/constants/enumsName';
 import { BtnListType } from '@/common/components/btnList/interface';
 import { expandIcon } from '@/common/setup/table/clolumn';
 
@@ -88,7 +82,7 @@ export default defineComponent({
             loading,
             tableList,
             expandIcon,
-            getWrTradeOrderStatusName,
+            getOrderStatusName,
             getWrOrderTypeName,
         };
     },

+ 3 - 3
src/views/order/spot_warran/components/spot_warrant_pending_order/index.vue

@@ -21,7 +21,7 @@
       </template>
       <!--  委托状态-->
       <template #wrtradeorderstatus="{ record }">
-        <a>{{ getWrTradeOrderStatusName(record.wrtradeorderstatus) }}</a>
+        <a>{{ getOrderStatusName(record.wrtradeorderstatus) }}</a>
       </template>
       <!-- 挂牌类型 -->
       <template #wrtradetype="{ record }">
@@ -44,7 +44,7 @@ import { QueryWrOrderDetailReq, WrOrderDetail } from '@/services/go/wrtrade/inte
 import { getRecordItemTab } from '@/common/setup/order/orderData';
 import { handleComposeOrderTable } from '@/common/setup/table/compose';
 import { ComposeOrderTableParam } from '@/common/setup/table/interface';
-import { getWrOrderTypeName, getWrTradeOrderStatusName } from '@/common/constants/enumsName';
+import { getWrOrderTypeName, getOrderStatusName } from '@/common/constants/enumsName';
 import { BtnListType } from '@/common/components/btnList/interface';
 import { expandIcon } from '@/common/setup/table/clolumn';
 
@@ -83,7 +83,7 @@ export default defineComponent({
             ...handleComposeOrderTable<WrOrderDetail>(param),
             loading,
             tableList,
-            getWrTradeOrderStatusName,
+            getOrderStatusName,
             getWrOrderTypeName,
             filterBtnList,
             expandIcon,

+ 67 - 62
src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/index.vue

@@ -57,7 +57,6 @@
                             <a-form-item label="基差" name="PriceMove">
                                 <a-input-number
                                     class="commonInput"
-                                    :min="0"
                                     v-model:value="formState.PriceMove"
                                     style="width: 140px"
                                 />
@@ -86,7 +85,9 @@
                                     style="width: 140px"
                                 />
                                 <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
-                                <div class="tip">最小单位:1{{selectedRow.enumdicname}}</div>
+                                <div
+                                    class="tip"
+                                >最小单位:{{selectedRow.minivalue}}{{selectedRow.enumdicname}}</div>
                             </a-form-item>
                         </a-col>
                     </a-row>
@@ -108,66 +109,70 @@
                         </a-col>
                         <a-col :span="12">&nbsp;</a-col>
                     </a-row>
-                    <!-- <template v-if="isBlocs()"> -->
-                    <a-row :gutter="24">
-                        <a-col :span="12">
-                            <a-form-item label="履约保证金" name="margin">
-                                <a-input-number
-                                    class="commonInput"
-                                    v-model:value="formState.margin"
-                                    :min="0"
-                                    style="width: 140px"
-                                />
-                                <span class="input-enumdicname">%</span>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :span="12">
-                            <a-form-item label="挂牌有效期" name="vidaliteTime" class="inputIconBox">
-                                <a-date-picker
-                                    style="width: 140px"
-                                    v-model:value="formState.vidaliteTime"
-                                    :allowClear="false"
-                                    class="commonDatePicker dialogDatePicker"
-                                />
-                            </a-form-item>
-                        </a-col>
-                    </a-row>
-                    <a-row :gutter="24">
-                        <a-col :span="12">
-                            <a-form-item label="履约方式" class="inputIconBox">
-                                <span
-                                    class="clickBox"
-                                    style="width: 140px"
-                                    @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="12">
-                            <a-form-item label="指定朋友" class="inputIconBox">
-                                <span
-                                    class="clickBox"
-                                    style="width: 140px"
-                                    @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-row>
-                    <!-- </template> -->
+                    <template v-if="isBlocs()">
+                        <a-row :gutter="24">
+                            <a-col :span="12">
+                                <a-form-item label="履约保证金" name="margin">
+                                    <a-input-number
+                                        class="commonInput"
+                                        v-model:value="formState.margin"
+                                        :min="0"
+                                        style="width: 140px"
+                                    />
+                                    <span class="input-enumdicname">%</span>
+                                </a-form-item>
+                            </a-col>
+                            <a-col :span="12">
+                                <a-form-item label="挂牌有效期" name="vidaliteTime" class="inputIconBox">
+                                    <a-date-picker
+                                        style="width: 140px"
+                                        v-model:value="formState.vidaliteTime"
+                                        :allowClear="false"
+                                        class="commonDatePicker dialogDatePicker"
+                                    />
+                                </a-form-item>
+                            </a-col>
+                        </a-row>
+                        <a-row :gutter="24">
+                            <a-col :span="12">
+                                <a-form-item label="履约方式" class="inputIconBox">
+                                    <span
+                                        class="clickBox"
+                                        style="width: 140px"
+                                        @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="12">
+                                <a-form-item label="指定朋友" class="inputIconBox">
+                                    <span
+                                        class="clickBox"
+                                        style="width: 140px"
+                                        @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-row>
+                    </template>
                     <a-row :gutter="24" v-if="isFloat()">
                         <a-col :span="24">
                             <a-form-item label="行情商品" name="goodsid">