li.shaoyi há 2 anos atrás
pai
commit
f4b5c43a02

+ 1 - 1
android/fxgl.txt

@@ -21,5 +21,5 @@ http://8.130.36.162:8280/cfg?key=mtp_20
 
 
 黔鑫生态
-cn.muchinfo.qxst_demo_v1.0.0.apk
+cn.muchinfo.qxst_v1.0.0.apk
 http://8.130.72.213:8280/cfg?key=mtp_20

+ 65 - 0
src/business/order/index.ts

@@ -0,0 +1,65 @@
+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
+    }
+}

+ 8 - 14
src/packages/sbyj/views/home/main/index.vue

@@ -46,11 +46,9 @@ import { Cell, CellGroup, PullRefresh } from "vant";
 import { formatDate } from "@/filters";
 import { useNavigation } from '@/packages/sbyj/router/navigation';
 import { queryImageConfigs, getJ10News } from "@/services/api/common";
-import { useLoginStore } from '@/stores'
 import Banner from '@/packages/sbyj/components/base/banner/index.vue'
 import Iconfont from '@/packages/sbyj/components/base/iconfont/index.vue'
 
-const loginStore = useLoginStore();
 const { routerTo, setGlobalUrlParams } = useNavigation();
 const refreshing = shallowRef(false); // 是否处于加载中状态
 const topBanners = shallowRef<string[]>([]); // 轮播图列表
@@ -58,18 +56,14 @@ const newsList = shallowRef<Model.J10NewsRsp[]>([]); // 资讯列表
 
 // 跳转导航页面
 const switchTab = (tabIndex: number) => {
-  if (loginStore.token) {
-    setGlobalUrlParams({ tabIndex })
-    switch (tabIndex) {
-      case 1:
-        routerTo('home-market', true)
-        break
-      case 2:
-        routerTo('home-news', true)
-        break
-    }
-  } else {
-    routerTo('user-login')
+  setGlobalUrlParams({ tabIndex })
+  switch (tabIndex) {
+    case 1:
+      routerTo('home-market', true)
+      break
+    case 2:
+      routerTo('home-news', true)
+      break
   }
 }
 

+ 14 - 16
src/packages/sbyj/views/market/detail/index.vue

@@ -38,7 +38,7 @@
         </div>
         <div class="market-detail__list">
             <div class="g-order-list">
-                <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
+                <div class="g-order-list__box" v-for="(item, index) in orderComputedList" :key="index">
                     <div class="g-order-list__titlebar">
                         <div class="left">
                             <h4>
@@ -115,24 +115,22 @@ import { Form, Field, Stepper, Button, FieldRule, FormInstance, Radio, RadioGrou
 import { useNavigation } from '@/packages/sbyj/router/navigation'
 import { useFuturesStore } from '@/stores'
 import { getGoodsUnitName } from '@/constants/unit'
-import { querySBYJMyOrders } from '@/services/api/order'
-import { useRequest } from '@/hooks/request'
 import { formatDecimal, parsePercent, handleNumberValue } from '@/filters'
 import { useComponent } from '@/hooks/component'
 import { fullloading, dialog } from '@/utils/vant'
 import { EPriceMode, EValidType, EOrderOperateType, EBuildType } from '@/constants/client'
 import { BuyOrSell } from '@/constants/order'
+import { useSBYJOrder } from '@/business/order'
 import quoteSocket from '@/services/websocket/quote'
 import eventBus from '@/services/bus'
 
-const formRef = shallowRef<FormInstance>()
 const { getQueryString } = useNavigation()
 const { formData, formSubmit } = useOrder()
 const futuresStore = useFuturesStore()
+const formRef = shallowRef<FormInstance>()
 const goodscode = getQueryString('goodscode')
 const quote = futuresStore.getGoodsQuote(goodscode)
 const qtyStep = shallowRef(1) // 数量步长
-const error = shallowRef(false)
 const subscribe = quoteSocket.createSubscribe()
 const selectedRow = shallowRef<Model.SBYJMyOrderRsp>()
 const orderQty = shallowRef(1) // 数量
@@ -143,11 +141,13 @@ const componentMap = new Map<string, unknown>([
     ['delivery', defineAsyncComponent(() => import('../../order/list/components/market-order-delivery/index.vue'))], // 交收
     ['closeholder', defineAsyncComponent(() => import('../../order/list/components/close-holder/index.vue'))], // 转让
 ])
-const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {
-    getSBYJMyOrders()
-})
+
+const { getSBYJMyOrders, orderComputedList } = useSBYJOrder()
+const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => getOrderList())
+
 // 合约乘数
 const agreeunit = computed(() => quote.value?.agreeunit ?? 0)
+
 // 数量步长列表
 const qtyStepList = computed(() => {
     return [
@@ -158,14 +158,11 @@ const qtyStepList = computed(() => {
     ]
 })
 
-const { dataList, run: getSBYJMyOrders } = useRequest(querySBYJMyOrders, {
-    params: {
-        goodsId: quote?.value?.goodsid
-    },
-    onError: () => {
-        error.value = true
-    }
-})
+const getOrderList = () => {
+    getSBYJMyOrders({
+        goodsId: quote.value?.goodsid
+    })
+}
 
 const commit = (buyOrSell: BuyOrSell) => {
     formData.BuyOrSell = buyOrSell
@@ -229,6 +226,7 @@ onMounted(() => {
     subscribe.start(goodscode)
     orderQty.value = agreeunit.value
     qtyStep.value = qtyStepList.value[0]
+    getOrderList()
 })
 
 onUnmounted(() => {