li.shaoyi 2 jaren geleden
bovenliggende
commit
6325235156

+ 12 - 5
public/config/router.json

@@ -21,17 +21,24 @@
                         "children": [
                             {
                                 "authType": 3,
+                                "title": "转让",
+                                "code": "bottom_goods_position_transfer",
+                                "component": "views/footer/goods/position/components/transfer/index.vue",
+                                "className": "el-button--danger"
+                            },
+                            {
+                                "authType": 3,
                                 "title": "交收",
-                                "code": "bottom_goods_position_delivery",
+                                "code": "bottom_goods_position_delivery16",
                                 "component": "views/footer/goods/position/components/delivery/index.vue",
                                 "className": "el-button--primary"
                             },
                             {
                                 "authType": 3,
-                                "title": "转让",
-                                "code": "bottom_goods_position_transfer",
-                                "component": "views/footer/goods/position/components/transfer/index.vue",
-                                "className": "el-button--danger"
+                                "title": "交收",
+                                "code": "bottom_goods_position_delivery50",
+                                "component": "views/footer/goods/position/components/delivery/index.vue",
+                                "className": "el-button--primary"
                             }
                         ]
                     },

+ 6 - 3
src/packages/pc/views/market/trade/goods/list/index.vue

@@ -83,7 +83,7 @@ const props = defineProps({
 
 const subscribe = quoteSocket.createSubscribe()
 const globalStore = useGlobalStore()
-const { setMarketId, $toRefs } = useFuturesStore()
+const { setMarketId, onResponse, $toRefs } = useFuturesStore()
 const { marketGoodsList, selectedGoodsId } = $toRefs()
 
 const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => true, false)
@@ -113,6 +113,11 @@ const onRowClick = (row: Model.GoodsQuote) => {
     openComponent('detail')
 }
 
+onResponse(() => {
+    const goodsCodes = marketGoodsList.value.map((e) => e.goodscode)
+    subscribe.start(...goodsCodes)
+})
+
 onMounted(() => {
     switch (props.code) {
         case 'market_trade_goods_50101':
@@ -128,8 +133,6 @@ onMounted(() => {
             setMarketId(50104)
             break
     }
-    const goodsCodes = marketGoodsList.value.map((e) => e.goodscode)
-    subscribe.start(...goodsCodes)
     globalStore.showGoodsListing = true
 })
 

+ 6 - 3
src/packages/pc/views/market/trade/presell/transfer/index.vue

@@ -83,7 +83,7 @@ const componentMap = new Map<string, unknown>([
 
 const subscribe = quoteSocket.createSubscribe()
 const globalStore = useGlobalStore()
-const { setMarketId, $toRefs } = useFuturesStore()
+const { setMarketId, onResponse, $toRefs } = useFuturesStore()
 const { marketGoodsList, selectedGoodsId } = $toRefs()
 
 const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => true, false)
@@ -113,6 +113,11 @@ const onRowClick = (row: Model.GoodsQuote) => {
     openComponent('detail')
 }
 
+onResponse(() => {
+    const goodsCodes = marketGoodsList.value.map((e) => e.goodscode)
+    subscribe.start(...goodsCodes)
+})
+
 onMounted(() => {
     switch (props.code) {
         case 'market_trade_presell_49201':
@@ -122,8 +127,6 @@ onMounted(() => {
             setMarketId(16201)
             break
     }
-    const goodsCodes = marketGoodsList.value.map((e) => e.goodscode)
-    subscribe.start(...goodsCodes)
     globalStore.showTransferListing = true
 })
 

+ 12 - 4
src/packages/pc/views/market/trade/presell/transfer/listing/index.vue

@@ -68,12 +68,14 @@ import { BuyOrSell, getBuyOrSellList } from '@/constants/order'
 import { useRequest } from '@/hooks/request'
 import { queryMineTradePositionExs } from '@/services/api/transfer'
 import { useOrder } from '@/business/trade'
+import { usePosition } from '@/business/position'
 import { useFuturesStore, useSettingStore } from '@/stores'
 import Forex from '@pc/components/modules/quote/forex/index.vue'
 import Icon from '@pc/components/base/icon/index.vue'
 
 const settingStore = useSettingStore()
 const futuresStore = useFuturesStore()
+const { getOrderQty, positionList: ll } = usePosition(16)
 const { selectedGoodsId, selectedGoods, marketGoodsList } = futuresStore.$toRefs()
 const { formData, loading, formSubmit } = useOrder()
 const formRef = shallowRef<FormInstance>()
@@ -97,8 +99,14 @@ const { dataList: positionList, run: getMineTradePositionExs } = useRequest(quer
 
 // 可用数量
 const enableqty = computed(() => {
-    const [firstItem] = positionList.value
-    return firstItem ? firstItem.buycurpositionqty - firstItem.buyfrozenqty : 0
+    console.log(ll.value, selectedGoods.value)
+    if (selectedGoods.value?.trademode === 16) {
+
+        return getOrderQty(BuyOrSell.Buy, selectedGoodsId.value)
+    } else {
+        const [firstItem] = positionList.value
+        return firstItem ? firstItem.buycurpositionqty - firstItem.buyfrozenqty : 0
+    }
 })
 
 // 价格步长
@@ -165,8 +173,8 @@ const onSubmit = () => {
     formRef.value?.validate((valid) => {
         if (valid) {
             ElMessageBox.confirm(
-                '*若存在价格匹配的反方向委托订单,系统将会自动撤销。',
-                '是否立即挂牌?'
+                '是否立即挂牌?',
+                '提示'
             ).then(() => {
                 const { marketid = 0, goodsid = 0 } = selectedGoods.value ?? {}
                 formData.MarketID = marketid

+ 16 - 1
src/stores/modules/futures.ts

@@ -16,6 +16,8 @@ export const useFuturesStore = defineStore(() => {
     const quoteWatchMap = new Map<string, { keys: string[]; callback: (value: Partial<Model.QuoteDayRsp>) => void; }>()
     // 市场ID
     const marketIds = shallowRef<number[]>([])
+    // 请求响应成功的回调集合
+    const rsponseTask = new Set<() => void>()
 
     const state = reactive({
         loading: false,
@@ -33,6 +35,16 @@ export const useFuturesStore = defineStore(() => {
     // 当前选中的商品
     const selectedGoods = computed(() => state.goodsQuoteList.find((e) => e.goodsid === state.selectedGoodsId))
 
+    // 请求响应成功后触发
+    const onResponse = (callback: () => void) => {
+        if (state.goodsQuoteList.length) {
+            setTimeout(() => callback(), 0)
+        } else {
+            rsponseTask.add(callback)
+            onUnmounted(() => rsponseTask.delete(callback))
+        }
+    }
+
     // 设置市场ID
     const setMarketId = (...values: number[]) => {
         marketIds.value = values
@@ -49,6 +61,7 @@ export const useFuturesStore = defineStore(() => {
 
     // 获取商品列表
     const getGoodsList = () => {
+        state.loading = true
         timerTask.clearTimeout('quoteDay')
         queryErmcpGoods().then((res) => {
             state.goodsList = res.data
@@ -59,7 +72,6 @@ export const useFuturesStore = defineStore(() => {
         })
         // 获取商品盘面信息
         const getQuoteDay = (codes: string[]) => {
-            state.loading = true
             queryQuoteDay({
                 data: {
                     goodsCodes: codes.join(',')
@@ -68,6 +80,8 @@ export const useFuturesStore = defineStore(() => {
                 res.data.forEach((item) => {
                     updateGoodsQuote(item)
                 })
+                rsponseTask.forEach((fn) => fn())
+                rsponseTask.clear()
             }).finally(() => {
                 state.loading = false
                 if (!state.selectedGoodsId) {
@@ -355,6 +369,7 @@ export const useFuturesStore = defineStore(() => {
         ...toRefs(state),
         marketGoodsList,
         selectedGoods,
+        onResponse,
         setMarketId,
         getQuotePrice,
         getGoodsList,