li.shaoyi 2 lat temu
rodzic
commit
8c95091c28

+ 1 - 1
android/fxgl.txt

@@ -34,5 +34,5 @@ cn.muchinfo.demo_v1.0.0.apk
 http://103.40.249.126:18280/cfg?key=mtp_20
 210000006/Aa123456
 
-甘碳联合
+甘肃碳交
 http://8.130.36.162:8280/cfg?key=mtp_20 

+ 1 - 1
public/language/zh-cn.json

@@ -1,5 +1,5 @@
 {
     "app": {
-        "name": "铁合金掌上行"
+        "name": "多元世纪"
     }
 }

+ 16 - 2
src/packages/mobile/components/base/waterfall/index.vue

@@ -9,7 +9,7 @@
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, watch, nextTick } from 'vue'
+import { shallowRef, watch, nextTick, onActivated } from 'vue'
 
 const props = defineProps({
     //数据列表
@@ -59,6 +59,12 @@ const render = () => {
                     })
                 }
 
+                if (!el.offsetWidth) {
+                    // 在 keepalive 组件下,如果在数据未全部加载出来之前跳转了页面,这会导致元素获取不到宽度,从而影响瀑布流布局的正常显示
+                    // 所以需要停止还未加载完成的数据渲染,待页面重新打开后继续加载
+                    break
+                }
+
                 const space = (props.column - 1) * props.gap // 总间距
                 const width = (el.offsetWidth - space) / props.column // 每列的宽度
 
@@ -77,16 +83,24 @@ const render = () => {
                     li.style.left = (width * index) + (props.gap * index) + 'px'
                     hightList[index] += li.offsetHeight + props.gap
                 }
+
+                total.value++
             }
 
             const maxHeight = Math.max(...hightList); // 获取数组中最大值
             el.style.height = (maxHeight - props.gap) + 'px'
-            total.value = nodes.length
         }
     })
 }
 
 watch(() => props.dataList, () => render())
+
+onActivated(() => {
+    // 对未完成加载的数据进行渲染
+    if (props.dataList.length > total.value) {
+        render()
+    }
+})
 </script>
 
 <style lang="less">

+ 19 - 17
src/packages/mobile/views/goods/detail/components/listing/Index.vue

@@ -1,7 +1,7 @@
 <template>
     <app-popup class="goods-listing" :title="'挂牌'" v-model:show="showModal" :refresh="refresh">
         <Form class="goods-listing__form" ref="formRef" @submit="onSubmit">
-            <Tabs class="van-tabs--list" v-model:active="formData.BuyOrSell" :swipe-threshold="2">
+            <Tabs class="van-tabs--list" v-model:active="formData.BuyOrSell" :swipe-threshold="2" @change="onTabChange">
                 <Tab title="挂牌买入" :name="BuyOrSell.Buy" />
                 <Tab title="挂牌卖出" :name="BuyOrSell.Sell" />
             </Tabs>
@@ -25,8 +25,8 @@
             </Field>
             <Field name="OrderPrice" :rules="formRules.OrderPrice" label="价格">
                 <template #input>
-                    <Stepper v-model="formData.OrderPrice" input-width="100" :default-value="defaultPrice" theme="round"
-                        button-size="22" :auto-fixed="false" :decimal-length="quote?.decimalplace" />
+                    <Stepper v-model="formData.OrderPrice" input-width="100" theme="round" button-size="22"
+                        :auto-fixed="false" :decimal-length="quote?.decimalplace" />
                 </template>
             </Field>
             <Field name="OrderQty" :rules="formRules.OrderQty" label="数量">
@@ -43,7 +43,7 @@
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, computed, onMounted } from 'vue'
+import { shallowRef, onMounted } from 'vue'
 import { Form, FormInstance, Button, FieldRule, Field, Tab, Tabs, Stepper, Radio, RadioGroup } from 'vant'
 import { BuyOrSell } from '@/constants/order'
 import { useOrder } from '@/business/trade'
@@ -69,19 +69,6 @@ const refresh = shallowRef(true) // 是否刷新父组件数据
 const buildType = shallowRef(EBuildType.BUILDTYPE_OPEN)
 const { formData, formSubmit } = useOrder()
 
-// 默认价格
-const defaultPrice = computed(() => {
-    const { ask = 0, bid = 0, preclose = 0 } = quote.value ?? {}
-    switch (formData.BuyOrSell) {
-        case BuyOrSell.Buy:
-            return ask
-        case BuyOrSell.Sell:
-            return bid
-        default:
-            return preclose
-    }
-})
-
 // 提交挂牌
 const onSubmit = () => {
     const { marketid = 0 } = quote.value ?? {}
@@ -122,6 +109,20 @@ const formRules: { [key in keyof Proto.OrderReq]?: FieldRule[] } = {
     }],
 }
 
+const onTabChange = () => {
+    const { ask = 0, bid = 0, presettle = 0 } = quote.value ?? {}
+    switch (formData.BuyOrSell) {
+        case BuyOrSell.Buy:
+            formData.OrderPrice = ask || presettle
+            break
+        case BuyOrSell.Sell:
+            formData.OrderPrice = bid || presettle
+            break
+        default:
+            formData.OrderPrice = presettle
+    }
+}
+
 // 关闭弹窗
 const closed = (isRefresh = true) => {
     refresh.value = isRefresh
@@ -130,6 +131,7 @@ const closed = (isRefresh = true) => {
 
 onMounted(() => {
     formData.BuyOrSell = BuyOrSell.Buy
+    onTabChange()
 })
 
 // 暴露组件属性给父组件调用

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

@@ -26,8 +26,7 @@
                         <Field name="OrderPrice" :rules="formRules.OrderPrice" label="平仓价格">
                             <template #input>
                                 <Stepper v-model="formData.OrderPrice" input-width="100" theme="round" button-size="22"
-                                    :min="0" :default-value="defaultPrice" :decimal-length="selectedRow.decimalplace"
-                                    :auto-fixed="false" />
+                                    :min="0" :decimal-length="selectedRow.decimalplace" :auto-fixed="false" />
                             </template>
                         </Field>
                         <Field name="OrderQty" :rules="formRules.OrderQty" label="平仓数量">
@@ -47,7 +46,7 @@
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, PropType, computed } from 'vue'
+import { shallowRef, PropType, onMounted, computed } from 'vue'
 import AppModal from '@/components/base/modal/index.vue'
 import { CellGroup, Cell, Button, FieldRule, Form, Field, Stepper } from 'vant'
 import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
@@ -78,19 +77,6 @@ const closepl = computed(() => {
     return (last * curpositionqty * agreeunit - curholderamount) * (buyorsell === BuyOrSell.Buy ? 1 : -1)
 })
 
-// 默认平仓价格
-const defaultPrice = computed(() => {
-    const { bid, ask, preclose = 0 } = quote.value ?? {}
-    switch (props.selectedRow.buyorsell) {
-        case BuyOrSell.Buy:
-            return bid || preclose
-        case BuyOrSell.Sell:
-            return ask || preclose
-        default:
-            return preclose
-    }
-})
-
 // 表单验证规则
 const formRules: { [key in keyof Proto.OrderReq]?: FieldRule[] } = {
     OrderPrice: [{
@@ -118,7 +104,7 @@ const onCloseSumit = () => {
         formData.Header = { GoodsID: goodsid }
         formData.MarketID = marketid
         formData.PriceMode = EPriceMode.PRICEMODE_LIMIT
-        formData.BuyOrSell = buyorsell === 0 ? 1 : 0
+        formData.BuyOrSell = buyorsell === BuyOrSell.Buy ? BuyOrSell.Sell : BuyOrSell.Buy
         formData.GoodsID = goodsid
         formData.ListingSelectType = EListingSelectType.LISTINGSELECTTYPE_DELISTINGTHENLISTING
         formData.DelistingType = EDelistingType.DELISTINGTYPE_PRICE
@@ -144,6 +130,20 @@ const closed = (isRefresh = false) => {
     showModal.value = false
 }
 
+onMounted(() => {
+    const { bid, ask, presettle = 0 } = quote.value ?? {}
+    switch (props.selectedRow.buyorsell) {
+        case BuyOrSell.Buy:
+            formData.OrderPrice = ask || presettle
+            break
+        case BuyOrSell.Sell:
+            formData.OrderPrice = bid || presettle
+            break
+        default:
+            formData.OrderPrice = presettle
+    }
+})
+
 // 暴露组件属性给父组件调用
 defineExpose({
     closed,

+ 7 - 3
src/packages/mobile/views/order/position/components/spot/listing/Index.vue

@@ -22,8 +22,8 @@
                     </Field>
                     <Field name="FixedPrice" :rules="formRules.FixedPrice" label="挂牌价格">
                         <template #input>
-                            <Stepper v-model="formData.FixedPrice" :default-value="selectedRow.spotgoodsprice" theme="round"
-                                :decimal-length="2" :auto-fixed="false" button-size="22" />
+                            <Stepper v-model="formData.FixedPrice" theme="round" :decimal-length="2" :auto-fixed="false"
+                                button-size="22" />
                         </template>
                     </Field>
                 </CellGroup>
@@ -38,7 +38,7 @@
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
+import { shallowRef, PropType, onMounted } from 'vue'
 import { CellGroup, Cell, Button, Stepper, Field, Form, FormInstance, FieldRule } from 'vant'
 import { fullloading } from '@/utils/vant'
 import { useHdWROrder } from '@/business/trade'
@@ -95,6 +95,10 @@ const closed = (isRefresh = false) => {
     showModal.value = false
 }
 
+onMounted(() => {
+    formData.FixedPrice = props.selectedRow.spotgoodsprice
+})
+
 // 暴露组件属性给父组件调用
 defineExpose({
     closed,

+ 7 - 3
src/packages/mobile/views/order/position/components/transfer/listing/Index.vue

@@ -19,8 +19,8 @@
                     </Field>
                     <Field name="OrderPrice" :rules="formRules.OrderPrice" label="转让价">
                         <template #input>
-                            <Stepper v-model="formData.OrderPrice" :default-value="selectedRow.presaleprice" theme="round"
-                                :decimal-length="2" :auto-fixed="false" button-size="22" />
+                            <Stepper v-model="formData.OrderPrice" theme="round" :decimal-length="2" :auto-fixed="false"
+                                button-size="22" />
                         </template>
                     </Field>
                     <Field name="OrderQty" :rules="formRules.OrderQty" label="转让数量">
@@ -41,7 +41,7 @@
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, PropType, computed } from 'vue'
+import { shallowRef, PropType, computed, onMounted } from 'vue'
 import { CellGroup, Form, Field, Stepper, Button, FieldRule, FormInstance } from 'vant'
 import { fullloading, dialog } from '@/utils/vant'
 import { useOrder } from '@/business/trade'
@@ -107,6 +107,10 @@ const onSubmit = () => {
     })
 }
 
+onMounted(() => {
+    formData.OrderPrice = props.selectedRow.presaleprice
+})
+
 // 暴露组件属性给父组件调用
 defineExpose({
     closed,

+ 7 - 3
src/packages/mobile/views/spot/detail/components/listing/index.vue

@@ -4,8 +4,8 @@
         <Form class="supply-demand-listing__form" ref="formRef" @submit="onSubmit">
             <Field name="FixedPrice" :rules="formRules.FixedPrice" label="挂牌价格">
                 <template #input>
-                    <Stepper v-model="formData.FixedPrice" :default-value="quoteItem.spotgoodsprice" theme="round"
-                        :decimal-length="2" :auto-fixed="false" button-size="22" />
+                    <Stepper v-model="formData.FixedPrice" theme="round" :decimal-length="2" :auto-fixed="false"
+                        button-size="22" />
                 </template>
             </Field>
             <!-- <Field name="WRFactorTypeId" :rules="formRules.WRFactorTypeId" label="现货仓单" is-link
@@ -43,7 +43,7 @@
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
+import { shallowRef, PropType, onMounted } from 'vue'
 import { Form, Field, Stepper, Button, FieldRule, FormInstance } from 'vant'
 import { fullloading, dialog } from '@/utils/vant'
 import { useAccountStore } from '@/stores'
@@ -150,6 +150,10 @@ queryHoldLB({
     selectedRow.value = res.data[0]
 })
 
+onMounted(() => {
+    formData.FixedPrice = props.quoteItem.spotgoodsprice
+})
+
 // 暴露组件属性给父组件调用
 defineExpose({
     closed,