li.shaoyi 2 năm trước cách đây
mục cha
commit
db24320230

+ 5 - 6
src/business/trade/index.ts

@@ -252,7 +252,7 @@ export function useWrListingCancelOrder() {
                     OperatorID: loginStore.loginId,
                     OrderSrc: OrderSrc.ORDERSRC_CLIENT,
                     OldWRTradeOrderID: Long.fromString(id),
-                    ClientOrderTime: formatDate(new Date().toString(), 'YYYY-MM-DD HH:mm:ss'),
+                    ClientOrderTime: formatDate(new Date().toISOString()),
                     ClientSerialNo: v4(),
                     ClientType: ClientType.Web,
                     BuyOrSell: buyorsell,
@@ -485,18 +485,17 @@ export function useCancelOrder() {
         OperatorID: loginStore.loginId,
         OrderSrc: OrderSrc.ORDERSRC_CLIENT,
         AccountID: accountStore.accountId,
-        ClientSerialNo: v4(),
-        ClientOrderTime: formatDate(new Date().toString(), 'YYYY-MM-DD HH:mm:ss'),
         ClientType: ClientType.Web,
         OperateType: EOperateType.OPERATETYPE_ORDERCANCEL,
     })
-    const cancelSubmit = async (orderid: string) => {
+    const cancelSubmit = async () => {
         try {
             loading.value = true
             return await cancelOrder({
                 data: {
                     ...formData,
-                    OldOrderId: orderid
+                    ClientSerialNo: v4(),
+                    ClientOrderTime: formatDate(new Date().toISOString()),
                 }
             })
         } finally {
@@ -518,7 +517,7 @@ export function useHolderClose() {
     /// 参数信息
     const formData = reactive<Partial<Proto.HolderCloseReq>>({
         ClientSerialNo: v4(),
-        ClientOrderTime: formatDate(new Date().toString(), 'YYYY-MM-DD HH:mm:ss'),
+        ClientOrderTime: formatDate(new Date().toISOString()),
         ClientType: ClientType.Web,
         LoginID: loginStore.loginId,
         AccountID: accountStore.accountId,

+ 4 - 0
src/constants/funcode.ts

@@ -98,4 +98,8 @@ export enum FunCode {
 
     DeliveryOrderReq = 393217, // 交割申报请求
     DeliveryOrderRsp = 393218, // 交割申报应答
+    MakeUpDepositReq = 196715, // 补足定金请求
+    MakeUpDepositRsp = 196716, // 补足定金应答
+    HoldAppendDepositReq = 196719, // 持仓追加定金接口请求
+    HoldAppendDepositRsp = 196720, // 持仓追加定金接口应答
 } 

+ 7 - 6
src/packages/mobile/views/order/list/components/swaporder/detail/Index.vue

@@ -7,7 +7,7 @@
             </template>
             <div v-if="props" class="order-detail__container g-form__container">
                 <CellGroup title="掉期委托信息">
-                    <Cell title="商品代码/名称" :value="selectedRow.goodscode+'/'+selectedRow.goodsname"/>
+                    <Cell title="商品代码/名称" :value="selectedRow.goodscode + '/' + selectedRow.goodsname" />
                     <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
                     <Cell title="委托数量" :value="formatDecimal(selectedRow.orderqty)" />
                     <Cell title="委托价格" :value="formatDecimal(selectedRow.orderprice)" />
@@ -27,7 +27,7 @@
 <script lang="ts" setup>
 import { shallowRef, PropType } from 'vue'
 import AppModal from '@/components/base/modal/index.vue'
-import { CellGroup, Cell, Button, showFailToast } from 'vant'
+import { CellGroup, Cell, Button } from 'vant'
 import { getBuyOrSellName, getWRTradeOrderStatusName } from '@/constants/order'
 import { formatDate, formatDecimal } from '@/filters'
 import { useCancelOrder } from '@/business/trade'
@@ -35,7 +35,7 @@ import { dialog, fullloading } from '@/utils/vant'
 
 const showModal = shallowRef(true)
 // 是否刷新父组件数据
-const refresh = shallowRef(false) 
+const refresh = shallowRef(false)
 const { cancelSubmit, formData } = useCancelOrder()
 
 const props = defineProps({
@@ -50,15 +50,16 @@ const onCancelSumit = () => {
         message: '确认要撤销吗?',
         showCancelButton: true,
     }).then(() => {
-        const { orderid = '' } = props.selectedRow ?? {}
         /// 市场ID
         formData.Header = { MarketID: props.selectedRow.marketid }
+        formData.OldOrderId = props.selectedRow.orderid
+
         /// loding....
         fullloading((hideLoading) => {
-            cancelSubmit(orderid).then(() => {
+            cancelSubmit().then(() => {
                 hideLoading('撤销成功')
             }).catch((err) => {
-                showFailToast(err)
+                hideLoading(err, 'fail')
             })
         })
     })

+ 7 - 5
src/packages/mobile/views/order/list/components/swaporder/list/Index.vue

@@ -42,7 +42,8 @@
                 </div>
                 <div class="g-order-list__btnbar">
                     <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
-                    <Button size="small" v-if="(item.orderstatus === 3 || item.orderstatus === 7)" @click="onCancelSumit(item)" round>撤销</Button>
+                    <Button size="small" v-if="(item.orderstatus === 3 || item.orderstatus === 7)"
+                        @click="onCancelSumit(item)" round>撤销</Button>
                 </div>
             </div>
         </div>
@@ -53,7 +54,7 @@
 
 <script lang="ts" setup>
 import { shallowRef, defineAsyncComponent } from 'vue'
-import { Button, showFailToast } from 'vant'
+import { Button } from 'vant'
 import { useComponent } from '@/hooks/component'
 import { useRequest } from '@/hooks/request'
 import { queryTradeOrderDetail } from '@/services/api/order'
@@ -100,14 +101,15 @@ const onCancelSumit = (item: Model.TradeOrderDetailRsp) => {
         message: '确认要撤销吗?',
         showCancelButton: true,
     }).then(() => {
-        const { orderid = '' } = item ?? {}
         formData.Header = { MarketID: item.marketid }
+        formData.OldOrderId = item.orderid
+
         /// loding....
         fullloading((hideLoading) => {
-            cancelSubmit(orderid).then(() => {
+            cancelSubmit().then(() => {
                 hideLoading('撤销成功')
             }).catch((err) => {
-                showFailToast(err)
+                hideLoading(err, 'fail')
             })
         })
     })

+ 29 - 1
src/packages/mobile/views/order/list/components/transferorder/list/Index.vue

@@ -35,7 +35,7 @@
                 </div>
                 <div class="g-order-list__btnbar">
                     <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
-                    <Button size="small" @click="showComponent('cancel', item)" round>撤销</Button>
+                    <Button size="small" @click="cancel(item)" round>撤销</Button>
                 </div>
             </div>
         </div>
@@ -47,15 +47,19 @@
 <script lang="ts" setup>
 import { shallowRef, defineAsyncComponent } from 'vue'
 import { Button } from 'vant'
+import { fullloading, dialog } from '@/utils/vant'
 import { useComponent } from '@/hooks/component'
 import { useRequest } from '@/hooks/request'
+import { EOperateType } from '@/constants/client'
 import { queryMineTradeOrders } from '@/services/api/transfer'
+import { useCancelOrder } from '@/business/trade'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
 
 const componentMap = new Map<string, unknown>([
     ['detail', defineAsyncComponent(() => import('../detail/Index.vue'))],
 ])
 
+const { cancelSubmit, formData } = useCancelOrder()
 const dataList = shallowRef<Model.MineTradeOrdersRsp[]>([])
 const selectedRow = shallowRef<Model.MineTradeOrdersRsp>()
 const error = shallowRef(false)
@@ -84,4 +88,28 @@ const showComponent = (componentName: string, row: Model.MineTradeOrdersRsp) =>
     selectedRow.value = row
     openComponent(componentName)
 }
+
+// 撤销
+const cancel = (row: Model.MineTradeOrdersRsp) => {
+    dialog({
+        message: '是否撤销该委托单?',
+        showCancelButton: true,
+    }).then(() => {
+        formData.Header = {
+            MarketID: row.marketid,
+            GoodsID: row.goodsid
+        }
+        formData.OldOrderId = row.orderid
+        formData.OperateType = EOperateType.OPERATETYPE_ORDERCANCEL
+
+        fullloading((hideLoading) => {
+            cancelSubmit().then(() => {
+                hideLoading('撤销成功')
+                pullRefreshRef.value?.refresh()
+            }).catch((err) => {
+                hideLoading(err, 'fail')
+            })
+        })
+    })
+}
 </script>

+ 24 - 1
src/packages/mobile/views/order/position/components/presale/list/Index.vue

@@ -50,7 +50,7 @@
                 </div>
                 <div class="g-order-list__btnbar">
                     <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
-                    <Button size="small" @click="showComponent('pickup', item)" round>不足定金</Button>
+                    <Button size="small" @click="depositPayment(item)" round>补足定金</Button>
                 </div>
             </div>
         </div>
@@ -62,9 +62,11 @@
 <script lang="ts" setup>
 import { shallowRef, defineAsyncComponent } from 'vue'
 import { Button } from 'vant'
+import { fullloading, dialog } from '@/utils/vant'
 import { useComponent } from '@/hooks/component'
 import { useRequest } from '@/hooks/request'
 import { queryMineCpTradePreSaleResults } from '@/services/api/presale'
+import { makeUpDeposit } from '@/services/api/trade'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -99,4 +101,25 @@ const showComponent = (componentName: string, row: Model.MineCpTradePreSaleResul
     selectedRow.value = row
     openComponent(componentName)
 }
+
+// 补足定金
+const depositPayment = (row: Model.MineCpTradePreSaleResultsRsp) => {
+    dialog({
+        message: '是否补足转让定金?',
+        showCancelButton: true,
+    }).then(() => {
+        fullloading((hideLoading) => {
+            makeUpDeposit({
+                data: {
+                    TradeID: row.tradeid
+                }
+            }).then(() => {
+                hideLoading('提交成功')
+                pullRefreshRef.value?.refresh()
+            }).catch((err) => {
+                hideLoading(err, 'fail')
+            })
+        })
+    })
+}
 </script>

+ 24 - 2
src/packages/mobile/views/order/position/components/transfer/list/Index.vue

@@ -49,8 +49,7 @@
                     </ul>
                 </div>
                 <div class="g-order-list__btnbar">
-                    <Button size="small" @click="showComponent('detail', item)" round
-                        v-if="item.paystatus === 1">追加定金</Button>
+                    <Button size="small" @click="depositPayment(item)" round v-if="item.paystatus === 1">追加定金</Button>
                     <Button size="small" @click="showComponent('listing', item)" round
                         v-if="item.paystatus === 2">转让</Button>
                     <Button size="small" @click="showComponent('delivery', item)" round
@@ -67,9 +66,11 @@
 <script lang="ts" setup>
 import { shallowRef, defineAsyncComponent } from 'vue'
 import { Button } from 'vant'
+import { fullloading, dialog } from '@/utils/vant'
 import { useComponent } from '@/hooks/component'
 import { useRequest } from '@/hooks/request'
 import { queryMineTradePositionExs } from '@/services/api/transfer'
+import { holdAppendDeposit } from '@/services/api/trade'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -106,4 +107,25 @@ const showComponent = (componentName: string, row: Model.MineTradePositionExsRsp
     selectedRow.value = row
     openComponent(componentName)
 }
+
+// 追加定金
+const depositPayment = (row: Model.MineTradePositionExsRsp) => {
+    dialog({
+        message: '是否追加未付转让定金?',
+        showCancelButton: true,
+    }).then(() => {
+        fullloading((hideLoading) => {
+            holdAppendDeposit({
+                data: {
+                    GoodsID: row.goodsid
+                }
+            }).then(() => {
+                hideLoading('提交成功')
+                pullRefreshRef.value?.refresh()
+            }).catch((err) => {
+                hideLoading(err, 'fail')
+            })
+        })
+    })
+}
 </script>

+ 41 - 0
src/services/api/trade/index.ts

@@ -1,5 +1,11 @@
+import { v4 } from 'uuid'
 import http from '@/services/http'
 import { RequestConfig } from '@/services/http/types'
+import { ClientType } from '@/constants/client'
+import { useLoginStore, useAccountStore } from '@/stores'
+
+const loginStore = useLoginStore()
+const accountStore = useAccountStore()
 
 /**
  * 铁合金现货预售摘牌
@@ -210,4 +216,39 @@ export function deliveryOrder(config: RequestConfig<Partial<Proto.DeliveryOrderR
         requestCode: 'DeliveryOrderReq',
         responseCode: 'DeliveryOrderRsp',
     })
+}
+
+/**
+ * 补足定金
+ */
+export function makeUpDeposit(config: RequestConfig<Partial<Proto.MakeUpDepositReq>>) {
+    return http.mqRequest<Proto.MakeUpDepositRsp>({
+        data: {
+            UserID: loginStore.userId,
+            AccountID: accountStore.accountId,
+            ClientSerialNo: v4(),
+            ClientType: ClientType.Web,
+            ...config.data
+        },
+        requestCode: 'MakeUpDepositReq',
+        responseCode: 'MakeUpDepositRsp',
+        marketId: 48201
+    })
+}
+
+/**
+ * 持仓追加定金
+ */
+export function holdAppendDeposit(config: RequestConfig<Partial<Proto.HoldAppendDepositReq>>) {
+    return http.mqRequest<Proto.HoldAppendDepositRsp>({
+        data: {
+            AccountID: accountStore.accountId,
+            ClientSerialNo: v4(),
+            ClientType: ClientType.Web,
+            ...config.data
+        },
+        requestCode: 'HoldAppendDepositReq',
+        responseCode: 'HoldAppendDepositRsp',
+        marketId: 49201
+    })
 }

+ 1 - 1
src/services/http/index.ts

@@ -180,7 +180,7 @@ export default new (class {
                 ...data.Header,
             }
         }
-        console.log(requestCode, JSON.stringify(data))
+        console.log(requestCode, data)
 
         const config: AxiosRequestConfig = {
             method: 'post',

+ 38 - 0
src/types/proto/trade.d.ts

@@ -539,5 +539,43 @@ declare global {
             DeliveryOrderDetails: DeliveryOrderDetail[]; // 一级生成的订单号
             OrderTime: string; // 接收委托交易的时间
         }
+
+        /** 补足定金请求 */
+        interface MakeUpDepositReq {
+            Header?: IMessageHead; // 消息头
+            TradeID: number; // 成交单号,必填
+            UserID: number; // 用户ID,必填
+            AccountID: number; // 交易账号,必填
+            ClientSerialNo: string; // 客户端流水号
+            ClientType: number; // 终端类型
+        }
+
+        /** 补足定金应答 */
+        interface MakeUpDepositRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            TradeID: number; // 成交单号,必填
+            ClientSerialNo: string; // 客户端流水号
+        }
+
+        /** 持仓追加定金接口请求 */
+        interface HoldAppendDepositReq {
+            Header?: IMessageHead; // 消息头
+            GoodsID: number; // 商品ID,必填
+            AccountID: number; // 交易账号,必填
+            ClientSerialNo: string; // 客户端流水号
+            ClientType: number; // 终端类型
+        }
+
+        /** 持仓追加定金接口应答 */
+        interface HoldAppendDepositRsp {
+            Header?: IMessageHead; // 消息头
+            RetCode: number; // 返回码
+            RetDesc: string; // 描述信息
+            GoodsID: number; // 商品ID,必填
+            AccountID: number; // 交易账号,必填
+            ClientSerialNo: string; // 客户端流水号
+        }
     }
 }