li.shaoyi 2 years ago
parent
commit
54774d5f45

+ 5 - 4
src/packages/mobile/components/layouts/login/index.vue

@@ -33,8 +33,8 @@
         <span>、</span>
         <span @click="routerTo('rules-yszc')">《隐私政策》</span>
       </div>
-      <div class="login-footer__version" v-if="plus.getSystemInfo('os') !== 'Web'">
-        <span>v{{ appVersion }}</span>
+      <div class="login-footer__version">
+        <span>v1.0.{{ appVersion }}</span>
       </div>
     </div>
   </app-statusbar>
@@ -47,7 +47,6 @@ import { fullloading } from '@/utils/vant'
 import { useLogin } from '@/business/login'
 import { useNavigation } from '@mobile/router/navigation'
 import service from '@/services'
-import plus from '@/utils/h5plus'
 import SliderVerify from '@/components/base/slider-verify/index.vue' // 临时调用,待优化
 import logoImage from '../../../assets/images/login-logo.png'
 
@@ -61,10 +60,12 @@ defineProps({
 const { routerBack, routerTo } = useNavigation()
 const { formData, userLogin } = useLogin()
 const checked = shallowRef(false) // 是否同意协议管理
-const appVersion = plus.getSystemInfo('version') // 应用版本号
 const showSliderVerify = shallowRef(true) // 验证滑块组件重载
 const sliderVerifyStatus = shallowRef(false) // 滑块验证状态
 
+const meta = document.getElementsByTagName('meta')
+const appVersion = meta.namedItem('revised')?.content ?? '0'
+
 // 导航跳转
 const navigationTo = (name: string) => {
   fullloading((hideLoading) => {

+ 13 - 6
src/packages/mobile/views/order/position/components/goods/detail/components/transfer/Index.vue

@@ -12,6 +12,7 @@
                     <Cell title="持仓金额" :value="formatDecimal(selectedRow.holderamount)" />
                     <Cell title="持仓数量" :value="selectedRow.holderqty" />
                     <Cell title="冻结数量" :value="selectedRow.freezeqty" />
+                    <Cell title="可用数量" :value="maxQty" />
                     <Cell title="参考损益">
                         <template #value>
                             <span :class="handlePriceColor(closepl)">{{ formatDecimal(closepl) }}</span>
@@ -30,7 +31,7 @@
                     <Field name="OrderQty" :rules="formRules.OrderQty" label="转让数量">
                         <template #input>
                             <Stepper v-model="formData.OrderQty" theme="round" button-size="22" :min="0"
-                                :max="selectedRow.holderqty" :auto-fixed="false" integer />
+                                :max="maxQty" :auto-fixed="false" integer />
                         </template>
                     </Field>
                 </CellGroup>
@@ -50,20 +51,25 @@ import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
 import { formatDecimal, handleNumberValue, handleRequestBigNumber, handlePriceColor } from '@/filters'
 import { useOrder } from '@/business/trade'
 import { dialog, fullloading } from '@/utils/vant'
-import { useFuturesStore } from '@/stores'
+import { useFuturesStore,usePositionStore } from '@/stores'
 import { EBuildType, EDelistingType, EListingSelectType, EOrderOperateType, EPriceMode, EValidType } from '@/constants/client'
 
 const props = defineProps({
     selectedRow: {
-        type: Object as PropType<Model.TradeHolderDetailRsp & {
-            closepl: number; // 浮动盈亏
-            closeplColor: string; // 浮动盈亏颜色
-        }>,
+        type: Object as PropType<Model.TradeHolderDetailRsp>,
         required: true,
     }
 })
 
 const futuresStore = useFuturesStore()
+const positionStore = usePositionStore()
+
+// 可用数量
+const maxQty = computed(() => {
+    const item = positionStore.positionList.find((e) => e.goodsid === props.selectedRow.goodsid && e.buyorsell === props.selectedRow.buyorsell)
+    return Math.min(item?.enableqty ?? 0, props.selectedRow.holderqty)
+})
+
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodscode)
 // 损益
 const closepl = computed(() => {
@@ -148,6 +154,7 @@ onMounted(() => {
         default:
             formData.OrderPrice = presettle
     }
+    formData.OrderQty = maxQty.value
 })
 
 // 暴露组件属性给父组件调用

+ 21 - 4
src/packages/pc/views/footer/goods/detail/components/transfer/index.vue

@@ -17,13 +17,16 @@
             <el-form-item label="持仓价">
                 <span>{{ formatDecimal(selectedRow.holderprice, selectedRow.decimalplace) }}</span>
             </el-form-item>
+            <el-form-item label="可用数量">
+                <span>{{ maxQty }}</span>
+            </el-form-item>
             <el-form-item label="参考损益">
                 <span :class="handlePriceColor(closepl)">{{ formatDecimal(closepl) }}</span>
             </el-form-item>
             <el-form-item prop="OrderQty" label="转让数量">
                 <div class="g-qty-group">
-                    <el-input-number placeholder="请输入数量" readonly v-model="formData.OrderQty" :precision="0"
-                        :max="selectedRow.holderqty" :min="0" />
+                    <el-input-number placeholder="请输入数量" v-model="formData.OrderQty" :precision="0" :max="maxQty"
+                        :min="0" />
                 </div>
             </el-form-item>
             <el-form-item prop="OrderPrice" label="转让价格">
@@ -44,7 +47,7 @@ import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { useOrder } from '@/business/trade'
 import { formatDecimal, handlePriceColor, handleRequestBigNumber } from '@/filters'
 import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
-import { useFuturesStore } from '@/stores'
+import { useFuturesStore, usePositionStore } from '@/stores'
 import { EBuildType, EDelistingType, EListingSelectType, EOrderOperateType, EPriceMode, EValidType } from '@/constants/client'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
@@ -56,6 +59,14 @@ const props = defineProps({
 })
 
 const futuresStore = useFuturesStore()
+const positionStore = usePositionStore()
+
+// 可用数量
+const maxQty = computed(() => {
+    const item = positionStore.positionList.find((e) => e.goodsid === props.selectedRow.goodsid && e.buyorsell === props.selectedRow.buyorsell)
+    return Math.min(item?.enableqty ?? 0, props.selectedRow.holderqty)
+})
+
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodscode)
 // 损益
 const closepl = computed(() => {
@@ -80,6 +91,12 @@ const formRules: FormRules = {
             return !!formData.OrderPrice
         }
     }],
+    OrderQty: [{
+        message: '请输入转让数量',
+        validator: () => {
+            return !!formData.OrderQty
+        }
+    }],
 }
 
 const onCancel = (isRefresh = false) => {
@@ -126,6 +143,6 @@ onMounted(() => {
         default:
             formData.OrderPrice = presettle
     }
-    formData.OrderQty = props.selectedRow.holderqty
+    formData.OrderQty = maxQty.value
 })
 </script>