li.shaoyi 2 роки тому
батько
коміт
0df058a125
32 змінених файлів з 89 додано та 428 видалено
  1. 4 1
      android/fxgl.txt
  2. 1 1
      public/config/appconfig.json
  3. 1 0
      src/business/login/index.ts
  4. 15 20
      src/constants/order.ts
  5. 10 0
      src/packages/mobile/router/index.ts
  6. 6 6
      src/packages/mobile/views/order/list/Index.vue
  7. 4 4
      src/packages/mobile/views/order/list/components/goodsorder/detail/Index.vue
  8. 0 0
      src/packages/mobile/views/order/list/components/goodsorder/history/Index.vue
  9. 5 8
      src/packages/mobile/views/order/list/components/goodstrade/detail/Index.vue
  10. 0 0
      src/packages/mobile/views/order/list/components/goodstrade/history/Index.vue
  11. 0 54
      src/packages/mobile/views/order/list/components/hisgoodsorder/detail/Index.vue
  12. 0 56
      src/packages/mobile/views/order/list/components/hisgoodstrade/detail/Index.vue
  13. 0 55
      src/packages/mobile/views/order/list/components/hislistingorder/detail/Index.vue
  14. 0 56
      src/packages/mobile/views/order/list/components/hislistingtrade/detail/Index.vue
  15. 0 54
      src/packages/mobile/views/order/list/components/hisswaporder/detail/Index.vue
  16. 0 56
      src/packages/mobile/views/order/list/components/hisswaptrade/detail/Index.vue
  17. 1 1
      src/packages/mobile/views/order/list/components/listingorder/detail/Index.vue
  18. 6 6
      src/packages/mobile/views/order/list/components/listingorder/history/Index.vue
  19. 3 3
      src/packages/mobile/views/order/list/components/listingtrade/detail/Index.vue
  20. 0 0
      src/packages/mobile/views/order/list/components/listingtrade/history/Index.vue
  21. 1 1
      src/packages/mobile/views/order/list/components/swaporder/detail/Index.vue
  22. 0 0
      src/packages/mobile/views/order/list/components/swaporder/history/Index.vue
  23. 3 6
      src/packages/mobile/views/order/list/components/swaptrade/detail/Index.vue
  24. 0 0
      src/packages/mobile/views/order/list/components/swaptrade/history/Index.vue
  25. 1 1
      src/packages/mobile/views/order/list/components/transferorder/detail/Index.vue
  26. 1 1
      src/packages/mobile/views/order/list/components/transfertrade/detail/Index.vue
  27. 10 6
      src/packages/mobile/views/order/position/components/goods/close/Index.vue
  28. 2 6
      src/packages/mobile/views/order/position/components/goods/list/Index.vue
  29. 1 1
      src/packages/mobile/views/order/position/components/transfer/detail/Index.vue
  30. 5 5
      src/services/websocket/quote.ts
  31. 8 19
      src/services/websocket/trade.ts
  32. 1 1
      src/stores/modules/enum.ts

+ 4 - 1
android/fxgl.txt

@@ -32,4 +32,7 @@ App Name: 铁合金掌上行演示版
 多元演示
 cn.muchinfo.demo_v1.0.0.apk
 http://103.40.249.126:18280/cfg?key=mtp_20
-210000006/Aa123456
+210000006/Aa123456
+
+甘碳联合
+http://8.130.36.162:8280/cfg?key=mtp_20 

+ 1 - 1
public/config/appconfig.json

@@ -1,5 +1,5 @@
 {
   "version": "1.0.0",
   "versionCode": "100000",
-  "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204"
+  "apiUrl": "http://192.168.31.158:18240/cfg?key=dev_104"
 }

+ 1 - 0
src/business/login/index.ts

@@ -45,6 +45,7 @@ export function useLogin(persist = false) {
             accountStore.getAccountList(),
         ])
         futuresStore.getGoodsList()
+        tradeSocket.connect()
     }
 
     // 用户登录

+ 15 - 20
src/constants/order.ts

@@ -62,19 +62,6 @@ export function getWrTradeTypeList() {
     ]
 }
 
-
-/**
- * 获取	委托单据类型列表
- * @returns 
- */
-export function getBuildTypeList() {
-    return [
-        { label: '建仓', value: BuildType.Open },
-        { label: '平仓', value: BuildType.Close },
-        { label: '先平后建', value: BuildType.CloseOpen },
-    ]
-}
-
 /**
  * 获取买卖方向名称
  * @returns 
@@ -93,7 +80,15 @@ export function getWrTradeTypeName(value: number) {
 }
 
 /**
- * 获取买卖方向名称
+ * 获取委托单据类型列表
+ * @returns 
+ */
+export function getBuildTypeList() {
+    return getEnumTypeList('buildtype')
+}
+
+/**
+ * 获取委托单据类型名称
  * @returns 
  */
 export function getBuildTypeName(value: number) {
@@ -299,18 +294,18 @@ export function getPayStatusName(value: number) {
 }
 
 /**
- * 获取摘牌类型列表
+ * 获取挂牌点选类型列表
  * @returns 
  */
-export function getDelistingTypeList() {
-    return getEnumTypeList('delistingtype')
+export function getListingSelectTypeList() {
+    return getEnumTypeList('listingselecttype')
 }
 
 /**
- * 获取摘牌类型名称
+ * 获取挂牌点选类型名称
  * @returns 
  */
-export function getDelistingTypeName(value: number) {
-    const enums = getDelistingTypeList()
+export function getListingSelectTypeName(value: number) {
+    const enums = getListingSelectTypeList()
     return getEnumTypeName(enums, value)
 }

+ 10 - 0
src/packages/mobile/router/index.ts

@@ -46,6 +46,16 @@ const routes: Array<RouteRecordRaw> = [
             name: 'home-presale',
             component: () => import('../views/presale/list/Index.vue'),
           },
+          // {
+          //   path: 'goods',
+          //   name: 'home-goods',
+          //   component: () => import('../views/goods/list/Index.vue'),
+          // },
+          // {
+          //   path: 'spot',
+          //   name: 'home-spot',
+          //   component: () => import('../views/spot/list/Index.vue'),
+          // },
           {
             path: 'transfer',
             name: 'home-transfer',

+ 6 - 6
src/packages/mobile/views/order/list/Index.vue

@@ -60,23 +60,23 @@ const componentMap = new Map<string, unknown>([
     ['presale', defineAsyncComponent(() => import('./components/presale/list/Index.vue'))], // 预售认购
     ['hispresale', defineAsyncComponent(() => import('./components/presale/history/index.vue'))], // 历史预售认购
     ['swaporder', defineAsyncComponent(() => import('./components/swaporder/list/Index.vue'))], // 掉期委托
+    ['hisswaporder', defineAsyncComponent(() => import('./components/swaporder/history/Index.vue'))], // 历史掉期委托
     ['swaptrade', defineAsyncComponent(() => import('./components/swaptrade/list/Index.vue'))], // 掉期成交
+    ['hisswaptrade', defineAsyncComponent(() => import('./components/swaptrade/history/Index.vue'))], // 历史掉期成交
     ['goodsorder', defineAsyncComponent(() => import('./components/goodsorder/list/Index.vue'))], // 订单委托
+    ['hisgoodsorder', defineAsyncComponent(() => import('./components/goodsorder/history/Index.vue'))], // 历史订单委托
     ['goodstrade', defineAsyncComponent(() => import('./components/goodstrade/list/Index.vue'))], // 订单成交
+    ['hisgoodstrade', defineAsyncComponent(() => import('./components/goodstrade/history/Index.vue'))], // 历史订单成交
     ['transferorder', defineAsyncComponent(() => import('./components/transferorder/list/Index.vue'))], // 转让委托
     ['histransferorder', defineAsyncComponent(() => import('./components/transferorder/history/index.vue'))], // 历史转让委托
     ['transfertrade', defineAsyncComponent(() => import('./components/transfertrade/list/Index.vue'))], // 转让成交
     ['histransfertrade', defineAsyncComponent(() => import('./components/transfertrade/history/index.vue'))], // 历史转让委托
-    ['hisswaporder', defineAsyncComponent(() => import('./components/hisswaporder/list/Index.vue'))], // 历史掉期委托
-    ['hisswaptrade', defineAsyncComponent(() => import('./components/hisswaptrade/list/Index.vue'))], // 历史掉期成交
-    ['hisgoodsorder', defineAsyncComponent(() => import('./components/hisgoodsorder/list/Index.vue'))], // 历史订单委托
-    ['hisgoodstrade', defineAsyncComponent(() => import('./components/hisgoodstrade/list/Index.vue'))], // 历史订单成交
     ['pricingorder', defineAsyncComponent(() => import('./components/pricingorder/list/Index.vue'))], // 挂牌点价委托
     ['pricingtrade', defineAsyncComponent(() => import('./components/pricingtrade/list/Index.vue'))], // 挂牌点价成交
     ['listingtrade', defineAsyncComponent(() => import('./components/listingtrade/list/Index.vue'))], // 挂牌委托
+    ['hislistingtrade', defineAsyncComponent(() => import('./components/listingtrade/history/Index.vue'))], // 历史挂牌委托
     ['listingorder', defineAsyncComponent(() => import('./components/listingorder/list/Index.vue'))], // 挂牌成交
-    ['hislistingtrade', defineAsyncComponent(() => import('./components/hislistingtrade/list/Index.vue'))], // 历史挂牌委托
-    ['hislistingorder', defineAsyncComponent(() => import('./components/hislistingorder/list/Index.vue'))], // 历史挂牌成交
+    ['hislistingorder', defineAsyncComponent(() => import('./components/listingorder/history/Index.vue'))], // 历史挂牌成交
 ])
 
 const onMoreClick = () => {

+ 4 - 4
src/packages/mobile/views/order/list/components/goodsorder/detail/Index.vue

@@ -3,14 +3,14 @@
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="详细" @back="closed" />
+                <app-navbar title="订单委托单" @back="closed" />
             </template>
-            <div v-if="props" class="order-detail__container g-form__container">
+            <div class="order-detail__container g-form__container">
                 <CellGroup title="订单委托信息">
                     <Cell title="商品代码/名称" :value="selectedRow.goodscode + '/' + selectedRow.goodsname" />
                     <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
                     <Cell title="类型" :value="getBuildTypeName(selectedRow.buildtype)" />
-                    <Cell title="摘牌类型" :value="getDelistingTypeName(selectedRow.delistingtype)" />
+                    <Cell title="挂摘类型" :value="getListingSelectTypeName(selectedRow.listingselecttype)" />
                     <Cell title="委托数量" :value="formatDecimal(selectedRow.orderqty)" />
                     <Cell title="委托价格" :value="formatDecimal(selectedRow.orderprice)" />
                     <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
@@ -30,7 +30,7 @@
 import { shallowRef, PropType } from 'vue'
 import AppModal from '@/components/base/modal/index.vue'
 import { CellGroup, Cell, Button } from 'vant'
-import { getBuyOrSellName, getWRTradeOrderStatusName, getBuildTypeName, getDelistingTypeName } from '@/constants/order'
+import { getBuyOrSellName, getWRTradeOrderStatusName, getBuildTypeName, getListingSelectTypeName } from '@/constants/order'
 import { formatDate, formatDecimal } from '@/filters'
 import { useCancelOrder } from '@/business/trade'
 import { dialog, fullloading } from '@/utils/vant'

+ 0 - 0
src/packages/mobile/views/order/list/components/hisgoodsorder/list/Index.vue → src/packages/mobile/views/order/list/components/goodsorder/history/Index.vue


+ 5 - 8
src/packages/mobile/views/order/list/components/goodstrade/detail/Index.vue

@@ -1,13 +1,13 @@
-<!-- 我的订单- 掉期成交 - 详情 -->
+<!-- 我的订单- 订单成交 - 详情 -->
 <template>
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="详细" @back="closed" />
+                <app-navbar title="订单成交单" @back="closed" />
             </template>
-            <div v-if="props" class="order-detail__container g-form__container">
-                <CellGroup title="掉期成交信息">
-                    <Cell title="商品代码/名称" :value="selectedRow.goodscode+'/'+selectedRow.goodsname"/>
+            <div class="order-detail__container g-form__container">
+                <CellGroup title="订单成交信息">
+                    <Cell title="商品代码/名称" :value="selectedRow.goodscode + '/' + selectedRow.goodsname" />
                     <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
                     <Cell title="类型" :value="getBuildTypeName(selectedRow.buildtype)" />
                     <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
@@ -19,9 +19,6 @@
                     <Cell title="成交单号" :value="selectedRow.tradeid" />
                 </CellGroup>
             </div>
-            <div v-else>
-                <Empty />
-            </div>
         </app-view>
     </app-modal>
 </template>

+ 0 - 0
src/packages/mobile/views/order/list/components/hisgoodstrade/list/Index.vue → src/packages/mobile/views/order/list/components/goodstrade/history/Index.vue


+ 0 - 54
src/packages/mobile/views/order/list/components/hisgoodsorder/detail/Index.vue

@@ -1,54 +0,0 @@
-<!-- 我的订单- 历史订单订单 - 详情 -->
-<template>
-    <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
-        <app-view class="g-form">
-            <template #header>
-                <app-navbar title="详细" @back="closed" />
-            </template>
-            <div v-if="props" class="order-detail__container g-form__container">
-                <CellGroup title="掉期订单信息">
-                    <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)" />
-                    <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
-                    <Cell title="委托状态" :value="getWRTradeOrderStatusName(selectedRow.orderstatus)" />
-                    <Cell title="委托时间" :value="formatDate(selectedRow.ordertime)" />
-                    <Cell title="委托单号" :value="selectedRow.orderid" />
-                </CellGroup>
-            </div>
-            <div v-else>
-                <Empty />
-            </div>
-        </app-view>
-    </app-modal>
-</template>
-
-<script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
-import AppModal from '@/components/base/modal/index.vue'
-import { CellGroup, Cell } from 'vant'
-import { getBuyOrSellName, getWRTradeOrderStatusName } from '@/constants/order'
-import { formatDate, formatDecimal } from '@/filters'
-
-const showModal = shallowRef(true)
-const refresh = shallowRef(false) // 是否刷新父组件数据
-
-const props = defineProps({
-    selectedRow: {
-        type: Object as PropType<Model.TradeOrderDetailRsp>,
-        required: true,
-    }
-})
-
-// 关闭弹窗
-const closed = (isRefresh = false) => {
-    refresh.value = isRefresh
-    showModal.value = false
-}
-
-// 暴露组件属性给父组件调用
-defineExpose({
-    closed,
-})
-</script>

+ 0 - 56
src/packages/mobile/views/order/list/components/hisgoodstrade/detail/Index.vue

@@ -1,56 +0,0 @@
-<!-- 我的持仓- 历史订单成交 - 平仓 -->
-<template>
-    <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
-        <app-view class="g-form">
-            <template #header>
-                <app-navbar title="详细" @back="closed" />
-            </template>
-            <div v-if="props" class="order-detail__container g-form__container">
-                <CellGroup title="掉期订单信息">
-                    <Cell title="商品代码/名称" :value="selectedRow.goodscode+'/'+selectedRow.goodsname"/>
-                    <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
-                    <Cell title="类型" :value="getBuildTypeName(selectedRow.buildtype)" />
-                    <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
-                    <Cell title="成交价格" :value="formatDecimal(selectedRow.tradeprice)" />
-                    <Cell title="手续费" :value="formatDecimal(selectedRow.charge)" />
-                    <Cell title="平仓损益" :value="formatDecimal(selectedRow.closepl)" />
-                    <Cell title="对手方" :value="selectedRow.matchaccountid" />
-                    <Cell title="成交时间" :value="formatDate(selectedRow.tradetime)" />
-                    <Cell title="成交单号" :value="selectedRow.tradeid" />
-                </CellGroup>
-            </div>
-            <div v-else>
-                <Empty />
-            </div>
-        </app-view>
-    </app-modal>
-</template>
-
-<script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
-import { CellGroup, Cell } from 'vant'
-import AppModal from '@/components/base/modal/index.vue'
-import { formatDate, formatDecimal } from '@/filters'
-import { getBuyOrSellName, getBuildTypeName } from '@/constants/order'
-
-const showModal = shallowRef(true)
-const refresh = shallowRef(false) // 是否刷新父组件数据
-
-const props = defineProps({
-    selectedRow: {
-        type: Object as PropType<Model.HisTradeDetailRsp>,
-        required: true,
-    }
-})
-
-// 关闭弹窗
-const closed = (isRefresh = false) => {
-    refresh.value = isRefresh
-    showModal.value = false
-}
-
-// 暴露组件属性给父组件调用
-defineExpose({
-    closed,
-})
-</script>

+ 0 - 55
src/packages/mobile/views/order/list/components/hislistingorder/detail/Index.vue

@@ -1,55 +0,0 @@
-<!-- 我的订单- 历史挂牌委托 - 详情 -->
-<template>
-    <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
-        <app-view class="g-form">
-            <template #header>
-                <app-navbar title="详细" @back="closed" />
-            </template>
-            <div v-if="props" class="order-detail__container g-form__container">
-                <CellGroup title="历史挂牌委托信息">
-                    <Cell title="商品代码/名称" :value="selectedRow.deliverygoodscode + '/' + selectedRow.deliverygoodsname" />
-                    <Cell title="仓库" :value="selectedRow.warehousename" />
-                    <Cell title="仓库" :value="getWrTradeTypeName(selectedRow.wrtradetype)" />
-                    <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
-                    <Cell title="委托价格" :value="formatDecimal(selectedRow.fixedprice)" />
-                    <Cell title="委托数量" :value="formatDecimal(selectedRow.orderqty)" />
-                    <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
-                    <Cell title="撤销数量" :value="formatDecimal(selectedRow.cancelqty)" />
-                    <Cell title="委托时间" :value="formatDate(selectedRow.ordertime)" />wrtradeorderstatus
-                    <Cell title="委托状态" :value="getWRTradeOrderStatusName(selectedRow.wrtradeorderstatus)" />
-                    <Cell title="委托单号" :value="selectedRow.wrtradeorderid" />
-                </CellGroup>
-            </div>
-        </app-view>
-    </app-modal>
-</template>
-
-<script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
-import AppModal from '@/components/base/modal/index.vue'
-import { CellGroup, Cell } from 'vant'
-import { getBuyOrSellName, getWRTradeOrderStatusName, getWrTradeTypeName } from '@/constants/order'
-import { formatDate, formatDecimal } from '@/filters'
-
-const showModal = shallowRef(true)
-// 是否刷新父组件数据
-const refresh = shallowRef(false)
-
-const props = defineProps({
-    selectedRow: {
-        type: Object as PropType<Model.WrOrderDetailRsp>,
-        required: true,
-    }
-})
-
-// 关闭弹窗
-const closed = (isRefresh = false) => {
-    refresh.value = isRefresh
-    showModal.value = false
-}
-
-// 暴露组件属性给父组件调用
-defineExpose({
-    closed,
-})
-</script>

+ 0 - 56
src/packages/mobile/views/order/list/components/hislistingtrade/detail/Index.vue

@@ -1,56 +0,0 @@
-<!-- 我的订单- 历史挂牌成交 - 详情 -->
-<template>
-    <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
-        <app-view class="g-form">
-            <template #header>
-                <app-navbar title="详细" @back="closed" />
-            </template>
-            <div v-if="props" class="order-detail__container g-form__container">
-                <CellGroup title="历史挂牌成交信息">
-                    <Cell title="商品代码/名称" :value="selectedRow.deliverygoodscode+'/'+selectedRow.deliverygoodsname"/>
-                    <Cell title="仓库" :value="selectedRow.warehousename" />
-                    <Cell title="类型" :value="getWrTradeTypeName(selectedRow.wrtradetype)" />
-                    <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
-                    <Cell title="成交价格" :value="formatDecimal(selectedRow.tradeprice)" />
-                    <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
-                    <Cell title="成交金额" :value="formatDecimal(selectedRow.tradeqty*selectedRow.tradeprice)" />
-                    <Cell title="成交时间" :value="formatDate(selectedRow.tradetime)" />
-                    <Cell title="对手方" :value="selectedRow.matchaccountid" />
-                    <Cell title="成交单号" :value="selectedRow.wrtradedetailid" />
-                </CellGroup>
-            </div>
-            <div v-else>
-                <Empty />
-            </div>
-        </app-view>
-    </app-modal>
-</template>
-
-<script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
-import { CellGroup, Cell } from 'vant'
-import { formatDate, formatDecimal } from '@/filters'
-import AppModal from '@/components/base/modal/index.vue'
-import { getBuyOrSellName, getWrTradeTypeName } from '@/constants/order'
-
-const showModal = shallowRef(true)
-const refresh = shallowRef(false) // 是否刷新父组件数据
-
-const props = defineProps({
-    selectedRow: {
-        type: Object as PropType<Model.WrTradeDetailRsp>,
-        required: true,
-    }
-})
-
-// 关闭弹窗
-const closed = (isRefresh = false) => {
-    refresh.value = isRefresh
-    showModal.value = false
-}
-
-// 暴露组件属性给父组件调用
-defineExpose({
-    closed,
-})
-</script>

+ 0 - 54
src/packages/mobile/views/order/list/components/hisswaporder/detail/Index.vue

@@ -1,54 +0,0 @@
-<!-- 我的订单- 历史掉期订单 - 详情 -->
-<template>
-    <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
-        <app-view class="g-form">
-            <template #header>
-                <app-navbar title="详细" @back="closed" />
-            </template>
-            <div v-if="props" class="order-detail__container g-form__container">
-                <CellGroup title="掉期委托信息">
-                    <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)" />
-                    <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
-                    <Cell title="委托状态" :value="getWRTradeOrderStatusName(selectedRow.orderstatus)" />
-                    <Cell title="委托时间" :value="formatDate(selectedRow.ordertime)" />
-                    <Cell title="委托单号" :value="selectedRow.orderid" />
-                </CellGroup>
-            </div>
-            <div v-else>
-                <Empty />
-            </div>
-        </app-view>
-    </app-modal>
-</template>
-
-<script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
-import AppModal from '@/components/base/modal/index.vue'
-import { CellGroup, Cell } from 'vant'
-import { getBuyOrSellName, getWRTradeOrderStatusName } from '@/constants/order'
-import { formatDate, formatDecimal } from '@/filters'
-
-const showModal = shallowRef(true)
-const refresh = shallowRef(false) // 是否刷新父组件数据
-
-const props = defineProps({
-    selectedRow: {
-        type: Object as PropType<Model.TradeOrderDetailRsp>,
-        required: true,
-    }
-})
-
-// 关闭弹窗
-const closed = (isRefresh = false) => {
-    refresh.value = isRefresh
-    showModal.value = false
-}
-
-// 暴露组件属性给父组件调用
-defineExpose({
-    closed,
-})
-</script>

+ 0 - 56
src/packages/mobile/views/order/list/components/hisswaptrade/detail/Index.vue

@@ -1,56 +0,0 @@
-<!-- 我的持仓- 历史掉期成交 - 平仓 -->
-<template>
-    <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
-        <app-view class="g-form">
-            <template #header>
-                <app-navbar title="详细" @back="closed" />
-            </template>
-            <div v-if="props" class="order-detail__container g-form__container">
-                <CellGroup title="掉期成交信息">
-                    <Cell title="商品代码/名称" :value="selectedRow.goodscode+'/'+selectedRow.goodsname"/>
-                    <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
-                    <Cell title="类型" :value="getBuildTypeName(selectedRow.buildtype)" />
-                    <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
-                    <Cell title="成交价格" :value="formatDecimal(selectedRow.tradeprice)" />
-                    <Cell title="手续费" :value="formatDecimal(selectedRow.charge)" />
-                    <Cell title="平仓盈亏" :value="formatDecimal(selectedRow.closepl)" />
-                    <Cell title="对手方" :value="selectedRow.matchaccountid" />
-                    <Cell title="成交时间" :value="formatDate(selectedRow.tradetime)" />
-                    <Cell title="成交单号" :value="selectedRow.tradeid" />
-                </CellGroup>
-            </div>
-            <div v-else>
-                <Empty />
-            </div>
-        </app-view>
-    </app-modal>
-</template>
-
-<script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
-import { CellGroup, Cell } from 'vant'
-import AppModal from '@/components/base/modal/index.vue'
-import { formatDate, formatDecimal } from '@/filters'
-import { getBuyOrSellName, getBuildTypeName } from '@/constants/order'
-
-const showModal = shallowRef(true)
-const refresh = shallowRef(false) // 是否刷新父组件数据
-
-const props = defineProps({
-    selectedRow: {
-        type: Object as PropType<Model.HisTradeDetailRsp>,
-        required: true,
-    }
-})
-
-// 关闭弹窗
-const closed = (isRefresh = false) => {
-    refresh.value = isRefresh
-    showModal.value = false
-}
-
-// 暴露组件属性给父组件调用
-defineExpose({
-    closed,
-})
-</script>

+ 1 - 1
src/packages/mobile/views/order/list/components/listingorder/detail/Index.vue

@@ -3,7 +3,7 @@
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="详细" @back="closed" />
+                <app-navbar title="挂牌委托单" @back="closed" />
             </template>
             <div v-if="props" class="order-detail__container g-form__container">
                 <CellGroup title="挂牌委托信息">

+ 6 - 6
src/packages/mobile/views/order/list/components/hislistingorder/list/Index.vue → src/packages/mobile/views/order/list/components/listingorder/history/Index.vue

@@ -6,13 +6,13 @@
                 <app-navbar title="历史挂牌委托" @back="closed" />
             </template>
             <Cell title="查询日期" :value="date" @click="show = true" is-link></Cell>
-            <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
-        :page-count="pageCount" @refresh="run">
+            <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error"
+                v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="run">
                 <div class="g-order-list">
                     <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
                         <div class="g-order-list__titlebar">
                             <div class="left">
-                                <h5>{{ item.goodscode }}/{{ item.goodsname }}</h5>
+                                <h5>{{ item.deliverygoodscode }}/{{ item.deliverygoodsname }}</h5>
                             </div>
                         </div>
                         <div class="g-order-list__content">
@@ -56,11 +56,11 @@
                         </div>
                     </div>
                 </div>
-                <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)" @closed="closeComponent"
-                    v-if="componentId" />
+                <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
+                    @closed="closeComponent" v-if="componentId" />
             </app-pull-refresh>
             <Calendar :show="show" type="range" :max-date="new Date()" :min-date="moment().subtract(1, 'years').toDate()"
-            @close="onClose" @confirm="onConfirm" />
+                @close="onClose" @confirm="onConfirm" />
         </app-view>
     </app-modal>
 </template>

+ 3 - 3
src/packages/mobile/views/order/list/components/listingtrade/detail/Index.vue

@@ -3,17 +3,17 @@
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="详细" @back="closed" />
+                <app-navbar title="挂牌成交单" @back="closed" />
             </template>
             <div v-if="props" class="order-detail__container g-form__container">
                 <CellGroup title="挂牌成交信息">
-                    <Cell title="商品代码/名称" :value="selectedRow.deliverygoodscode+'/'+selectedRow.deliverygoodsname"/>
+                    <Cell title="商品代码/名称" :value="selectedRow.deliverygoodscode + '/' + selectedRow.deliverygoodsname" />
                     <Cell title="仓库" :value="selectedRow.warehousename" />
                     <Cell title="类型" :value="getWrTradeTypeName(selectedRow.wrtradetype)" />
                     <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
                     <Cell title="成交价格" :value="formatDecimal(selectedRow.tradeprice)" />
                     <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
-                    <Cell title="成交金额" :value="formatDecimal(selectedRow.tradeqty*selectedRow.tradeprice)" />
+                    <Cell title="成交金额" :value="formatDecimal(selectedRow.tradeqty * selectedRow.tradeprice)" />
                     <Cell title="成交时间" :value="formatDate(selectedRow.tradetime)" />
                     <Cell title="对手方" :value="selectedRow.matchaccountid" />
                     <Cell title="成交单号" :value="selectedRow.wrtradedetailid" />

+ 0 - 0
src/packages/mobile/views/order/list/components/hislistingtrade/list/Index.vue → src/packages/mobile/views/order/list/components/listingtrade/history/Index.vue


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

@@ -3,7 +3,7 @@
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="详细" @back="closed" />
+                <app-navbar title="掉期委托单" @back="closed" />
             </template>
             <div v-if="props" class="order-detail__container g-form__container">
                 <CellGroup title="掉期委托信息">

+ 0 - 0
src/packages/mobile/views/order/list/components/hisswaporder/list/Index.vue → src/packages/mobile/views/order/list/components/swaporder/history/Index.vue


+ 3 - 6
src/packages/mobile/views/order/list/components/swaptrade/detail/Index.vue

@@ -3,11 +3,11 @@
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="详细" @back="closed" />
+                <app-navbar title="掉期成交单" @back="closed" />
             </template>
-            <div v-if="props" class="order-detail__container g-form__container">
+            <div 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="getBuildTypeName(selectedRow.buildtype)" />
                     <Cell title="成交数量" :value="formatDecimal(selectedRow.tradeqty)" />
@@ -19,9 +19,6 @@
                     <Cell title="成交单号" :value="selectedRow.tradeid" />
                 </CellGroup>
             </div>
-            <div v-else>
-                <Empty />
-            </div>
         </app-view>
     </app-modal>
 </template>

+ 0 - 0
src/packages/mobile/views/order/list/components/hisswaptrade/list/Index.vue → src/packages/mobile/views/order/list/components/swaptrade/history/Index.vue


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

@@ -6,7 +6,7 @@
                 <app-navbar title="转让委托单" @back="closed" />
             </template>
             <div class="g-form__container">
-                <CellGroup title="预售认购信息">
+                <CellGroup title="转让委托信息">
                     <Cell title="商品代码/名称" :value="selectedRow.goodsname" />
                     <Cell title="转让数量" :value="selectedRow.orderqty" />
                     <Cell title="转让价" :value="selectedRow.orderprice" />

+ 1 - 1
src/packages/mobile/views/order/list/components/transfertrade/detail/Index.vue

@@ -6,7 +6,7 @@
                 <app-navbar title="转让成交单" @back="closed" />
             </template>
             <div class="g-form__container">
-                <CellGroup title="预售认购信息">
+                <CellGroup title="转让成交信息">
                     <Cell title="商品代码/名称" :value="selectedRow.goodsname" />
                     <Cell title="方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
                     <Cell title="转让数量" :value="selectedRow.tradeqty" />

+ 10 - 6
src/packages/mobile/views/order/position/components/goods/close/Index.vue

@@ -1,4 +1,4 @@
-<!-- 我的订单- 订单持仓 - 平仓 -->
+<!-- 我的持仓- 订单持仓 - 平仓 -->
 <template>
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
@@ -9,12 +9,16 @@
                 <CellGroup title="持仓信息">
                     <Cell title="商品代码/名称" :value="selectedRow.goodscode + '/' + selectedRow.goodsname" />
                     <Cell title="持仓方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
-                    <Cell title="持仓金额" :value="formatDecimal(selectedRow.holderamount)" />
+                    <Cell title="持仓金额" :value="formatDecimal(selectedRow.curholderamount)" />
                     <Cell title="持仓数量" :value="formatDecimal(selectedRow.curpositionqty)" />
                     <Cell title="冻结数量" :value="formatDecimal(selectedRow.frozenqty)" />
                     <Cell title="可用数量" :value="formatDecimal(selectedRow.enableqty)" />
                     <Cell title="持仓均价" :value="formatDecimal(selectedRow.averageprice)" />
-                    <Cell title="参考损益" :value="formatDecimal(closepl)" />
+                    <Cell title="参考损益">
+                        <template #value>
+                            <span :class="closepl ? 'g-up-color' : 'g-down-color'">{{ formatDecimal(closepl) }}</span>
+                        </template>
+                    </Cell>
                 </CellGroup>
                 <CellGroup title="平仓信息">
                     <Cell title="当前价" :value="handleNumberValue(quote?.last)" />
@@ -70,8 +74,8 @@ const { formSubmit, formData } = useOrder()
 // 损益
 const closepl = computed(() => {
     const { last = 0 } = quote.value ?? {}
-    const { curpositionqty, holderamount, agreeunit, buyorsell } = props.selectedRow
-    return (last * curpositionqty * agreeunit - holderamount) * (buyorsell === BuyOrSell.Buy ? 1 : -1)
+    const { curpositionqty, curholderamount, agreeunit, buyorsell } = props.selectedRow
+    return (last * curpositionqty * agreeunit - curholderamount) * (buyorsell === BuyOrSell.Buy ? 1 : -1)
 })
 
 // 默认平仓价格
@@ -105,7 +109,7 @@ const formRules: { [key in keyof Proto.OrderReq]?: FieldRule[] } = {
 
 const onCloseSumit = () => {
     dialog({
-        message: '确认要撤销吗?',
+        message: '确认要平仓吗?',
         showCancelButton: true,
     }).then(() => {
 

+ 2 - 6
src/packages/mobile/views/order/position/components/goods/list/Index.vue

@@ -21,7 +21,7 @@
                         </li>
                         <li>
                             <span>持仓均价:</span>
-                            <span>{{ item.averageprice === 0.0 ? '--' : formatDecimal(item.averageprice) }}</span>
+                            <span>{{ handleNumberValue(formatDecimal(item.averageprice)) }}</span>
                         </li>
                         <li>
                             <span>冻结数量:</span>
@@ -35,10 +35,6 @@
                             <span>可用数量:</span>
                             <span>{{ formatDecimal(item.enableqty) }}</span>
                         </li>
-                        <li>
-                            <span>参考损益:</span>
-                            <span>--</span>
-                        </li>
                     </ul>
                 </div>
                 <div class="g-order-list__btnbar">
@@ -61,7 +57,7 @@ import { useRequest } from '@/hooks/request'
 import { queryTradePosition } from '@/services/api/order'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
 import { getBuyOrSellName } from '@/constants/order'
-import { formatDecimal } from '@/filters'
+import { formatDecimal, handleNumberValue } from '@/filters'
 import { useUserStore } from '@/stores'
 
 const componentMap = new Map<string, unknown>([

+ 1 - 1
src/packages/mobile/views/order/position/components/transfer/detail/Index.vue

@@ -6,7 +6,7 @@
                 <app-navbar title="转让持仓详情" @back="closed" />
             </template>
             <div class="g-form__container">
-                <CellGroup title="预售认购信息">
+                <CellGroup title="转让持仓信息">
                     <Cell title="商品代码/名称" :value="selectedRow.goodsname" />
                     <Cell title="持仓金额" :value="selectedRow.buycurholderamount" />
                     <Cell title="持仓数量" :value="selectedRow.buycurpositionqty" />

+ 5 - 5
src/services/websocket/quote.ts

@@ -23,18 +23,18 @@ export default new (class {
         }
 
         this.socket.onPush = (p) => {
-            const { mainClassNumber, content } = p;
+            const { mainClassNumber, content } = p
             if (mainClassNumber === 65 && content) {
-                const result = parseReceivePush(content);
+                const result = parseReceivePush(content)
                 // 通知上层 行情推送
-                eventBus.$emit('QuotePushNotify', result);
+                eventBus.$emit('QuotePushNotify', result)
             }
         }
     }
 
     private async connect() {
-        const res = await service.onReady();
-        await this.socket.connect(res.quoteWS, this.loginStore.token);
+        const res = await service.onReady()
+        await this.socket.connect(res.quoteWS, this.loginStore.token)
     }
 
     /**

+ 8 - 19
src/services/websocket/trade.ts

@@ -1,4 +1,3 @@
-import { v4 } from 'uuid'
 import { timerInterceptor } from '@/utils/timer'
 import { FunCode } from '@/constants/funcode'
 import { useLoginStore } from '@/stores'
@@ -15,39 +14,29 @@ export default new (class {
 
     constructor() {
         this.socket.onPush = (p) => {
-            const { funCode } = p;
-            const delay = 1000; // 延迟推送消息,防止短时间内重复请求
+            const { funCode } = p
+            const delay = 1000 // 延迟推送消息,防止短时间内重复请求
 
             switch (funCode) {
                 case FunCode.MoneyChangedNotify: {
                     timerInterceptor.debounce(() => {
                         // 通知上层 资金变动
-                        eventBus.$emit('MoneyChangedNotify');
+                        eventBus.$emit('MoneyChangedNotify')
                     }, delay, funCode.toString())
-                    break;
+                    break
                 }
                 default: {
                     if (funCode) {
-                        console.warn('接收到未定义的通知', funCode);
+                        console.warn('接收到未定义的通知', funCode)
                     }
                 }
             }
         }
     }
 
-    private async connect() {
-        const res = await service.onReady();
-        await this.socket.connect(res.tradeWS, this.loginStore.token);
-    }
-
-    /**
-     * 交易请求
-     */
-    async send() {
-        // await this.connect().catch((err) => {
-        //     msg.fail && msg.fail(err);
-        // })
-        // return this.socket.send(msg);
+    async connect() {
+        const res = await service.onReady()
+        await this.socket.connect(res.tradeWS, this.loginStore.token)
     }
 
     /**

+ 1 - 1
src/stores/modules/enum.ts

@@ -12,7 +12,7 @@ export interface EnumType {
     disabled?: boolean;
 }
 
-const enumKeys = ['clientType', 'scoreConfigType', 'GZBSCPayStatus', 'performanceStatus', 'handlestatus', 'performanceType', 'accountBusinessCode', 'certificatetype', 'signstatus', 'thjOrderStatus', 'THJDeliveryMode', 'goodsunit', 'WROutInApplyStatus2', 'THJTransferStatus', 'WRTradeOrderStatus', 'THJMarket', 'THJProfitRoleType', 'appointmentModelOut', 'orderstatus', 'Pricemode2', 'delistingtype'] as const
+const enumKeys = ['clientType', 'scoreConfigType', 'GZBSCPayStatus', 'performanceStatus', 'handlestatus', 'performanceType', 'accountBusinessCode', 'certificatetype', 'signstatus', 'thjOrderStatus', 'THJDeliveryMode', 'goodsunit', 'WROutInApplyStatus2', 'THJTransferStatus', 'WRTradeOrderStatus', 'THJMarket', 'THJProfitRoleType', 'appointmentModelOut', 'orderstatus', 'Pricemode2', 'buildtype', 'listingselecttype'] as const
 
 const enumMap = new Map<typeof enumKeys[number], ShallowRef<Model.EnumRsp[]>>()