| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { ref, computed } from 'vue'
- import { BuyOrSell } from '@/constants/order'
- import { querySBYJMyOrders } from '@/services/api/order'
- import { useFuturesStore } from '@/stores'
- /**
- * 水贝亿爵订单业务
- * @param selectedRow
- * @returns
- */
- export const useSBYJOrder = (selectedRow?: Model.SBYJMyOrderRsp) => {
- const futuresStore = useFuturesStore()
- const loading = ref(false)
- const orderList = ref<Model.SBYJMyOrderRsp[]>([])
- const orderComputedList = computed(() => {
- orderList.value.forEach((e) => {
- e.tHDetailEx.depositRate = calcDepositRate(e)
- })
- return orderList.value
- })
- // 订单详情
- const detail = computed(() => {
- const result = { ...selectedRow }
- if (selectedRow) {
- result.depositRate = calcDepositRate(selectedRow)
- }
- return result
- })
- // 计算定金率
- const calcDepositRate = ({ tHDetailEx }: Model.SBYJMyOrderRsp) => {
- const quote = futuresStore.getGoodsQuote(tHDetailEx.goodsID)
- const { ask = 0, bid = 0, agreeunit = 0 } = quote.value ?? {}
- // 计算浮动盈亏 (根据方向取买卖价 * 手数 * 合约乘数 - 持仓金额) * 方向标识
- const float = (tHDetailEx.buyOrSell === BuyOrSell.Buy ? bid : ask) * tHDetailEx.holderQty * agreeunit - tHDetailEx.holderAmount
- const floatpl = float * (tHDetailEx.buyOrSell === BuyOrSell.Buy ? 1 : -1)
- // 计算定金率 (已付定金 + 补充定金 +盈亏 - 已计滞纳金) / 已付定金
- const depositRate = (tHDetailEx.payedDeposit + tHDetailEx.restockDeposit + floatpl - tHDetailEx.callAteFee) / tHDetailEx.payedDeposit
- return depositRate
- }
- // 获取订单列表
- const getSBYJMyOrders = async (params?: Model.SBYJMyOrderReq) => {
- loading.value = true
- try {
- const res = await querySBYJMyOrders({
- data: {
- ...params
- }
- })
- orderList.value = res.data
- } finally {
- loading.value = false
- }
- }
- return {
- orderList,
- orderComputedList,
- detail,
- getSBYJMyOrders
- }
- }
|