|
@@ -3,7 +3,7 @@
|
|
|
<template #header>
|
|
<template #header>
|
|
|
<app-navbar :title="quote ? `${quote.goodscode}/${quote.goodsname}` : $t('quote.pricing.title')" >
|
|
<app-navbar :title="quote ? `${quote.goodscode}/${quote.goodsname}` : $t('quote.pricing.title')" >
|
|
|
<template #right>
|
|
<template #right>
|
|
|
- <Icon name="bars" size="20px" @click="openComponent('detail')" />
|
|
|
|
|
|
|
+ <Icon v-if="system_1012 != '0'" name="bars" size="20px" @click="openComponent('detail')" />
|
|
|
</template>
|
|
</template>
|
|
|
</app-navbar>
|
|
</app-navbar>
|
|
|
</template>
|
|
</template>
|
|
@@ -62,11 +62,11 @@
|
|
|
</template>
|
|
</template>
|
|
|
</Field> -->
|
|
</Field> -->
|
|
|
<!-- 允许成交范围 -->
|
|
<!-- 允许成交范围 -->
|
|
|
- <Field name="MarketMaxSub" :rules="formRules.MarketMaxSub" :label="$t('quote.pricing.marketmaxsub')" v-if="formData.PriceMode === PriceMode.Market">
|
|
|
|
|
|
|
+ <!-- <Field name="MarketMaxSub" :rules="formRules.MarketMaxSub" :label="$t('quote.pricing.marketmaxsub')" v-if="formData.PriceMode === PriceMode.Market">
|
|
|
<template #input>
|
|
<template #input>
|
|
|
<Stepper v-model="formData.MarketMaxSub" :min="0" :max="999" theme="round" button-size="22" :auto-fixed="false" integer />
|
|
<Stepper v-model="formData.MarketMaxSub" :min="0" :max="999" theme="round" button-size="22" :auto-fixed="false" integer />
|
|
|
</template>
|
|
</template>
|
|
|
- </Field>
|
|
|
|
|
|
|
+ </Field> -->
|
|
|
<!-- 限价 -->
|
|
<!-- 限价 -->
|
|
|
<Field name="OrderPrice" :rules="formRules.OrderPrice" :label="$t('quote.pricing.price')" v-if="formData.PriceMode === PriceMode.Limit">
|
|
<Field name="OrderPrice" :rules="formRules.OrderPrice" :label="$t('quote.pricing.price')" v-if="formData.PriceMode === PriceMode.Limit">
|
|
|
<template #input>
|
|
<template #input>
|
|
@@ -151,7 +151,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
|
-import { useFuturesStore, usePositionStore, i18n } from '@/stores'
|
|
|
|
|
|
|
+import { useFuturesStore, usePositionStore, useUserStore, i18n } from '@/stores'
|
|
|
import { useNavigation } from '@mobile/router/navigation'
|
|
import { useNavigation } from '@mobile/router/navigation'
|
|
|
import { shallowRef, onMounted, computed, defineAsyncComponent } from 'vue'
|
|
import { shallowRef, onMounted, computed, defineAsyncComponent } from 'vue'
|
|
|
import { Form, Field, Button, FieldRule, FormInstance, Radio, RadioGroup, CellGroup, Icon, Tab, Tabs } from 'vant'
|
|
import { Form, Field, Button, FieldRule, FormInstance, Radio, RadioGroup, CellGroup, Icon, Tab, Tabs } from 'vant'
|
|
@@ -160,7 +160,7 @@ import { BuyOrSell, getBuyOrSellList, BuildType, getPricemode2List, PriceMode }
|
|
|
import { useComponent } from '@/hooks/component'
|
|
import { useComponent } from '@/hooks/component'
|
|
|
import { fullloading, dialog } from '@/utils/vant'
|
|
import { fullloading, dialog } from '@/utils/vant'
|
|
|
import { formatDecimal, handleNumberValue, handleRequestBigNumber } from '@/filters'
|
|
import { formatDecimal, handleNumberValue, handleRequestBigNumber } from '@/filters'
|
|
|
-import service from '@/services'
|
|
|
|
|
|
|
+// import service from '@/services'
|
|
|
import Stepper from '@mobile/components/base/stepper/index.vue'
|
|
import Stepper from '@mobile/components/base/stepper/index.vue'
|
|
|
import eventBus from '@/services/bus'
|
|
import eventBus from '@/services/bus'
|
|
|
|
|
|
|
@@ -180,17 +180,25 @@ const quoteminunit = quote.value?.quoteminunit ?? 1.0
|
|
|
const decimalvalue = Math.pow(10.0, -decimalplace)*(quoteminunit == 0 ? 1 : quoteminunit)
|
|
const decimalvalue = Math.pow(10.0, -decimalplace)*(quoteminunit == 0 ? 1 : quoteminunit)
|
|
|
const isTrademode16 = computed(() => quote.value?.trademode === 16)
|
|
const isTrademode16 = computed(() => quote.value?.trademode === 16)
|
|
|
|
|
|
|
|
|
|
+const { getSystemParamValue } = useUserStore()
|
|
|
|
|
+const system_1012 = getSystemParamValue('1012') ?? '1'
|
|
|
|
|
+
|
|
|
|
|
+// const accountStore = useAccountStore()
|
|
|
|
|
+const positionStore = usePositionStore()
|
|
|
|
|
+
|
|
|
const { formData, formSubmit } = useOrder()
|
|
const { formData, formSubmit } = useOrder()
|
|
|
const formRef = shallowRef<FormInstance>()
|
|
const formRef = shallowRef<FormInstance>()
|
|
|
-const qtyStepList = [1, 5, 10, 20, 30, 50] // 数量步长列表
|
|
|
|
|
-const qtyStep = shallowRef(qtyStepList[0]) // 数量步长
|
|
|
|
|
|
|
+// 数量步长列表
|
|
|
|
|
+const qtyStepList = computed(() => {
|
|
|
|
|
+ const system_1009 = Number(getSystemParamValue('1009')) ?? 1
|
|
|
|
|
+ return [1*system_1009, 5*system_1009, 10*system_1009, 20*system_1009, 30*system_1009, 50*system_1009]
|
|
|
|
|
+})
|
|
|
|
|
+const qtyStep = shallowRef(qtyStepList.value[0]) // 数量步长
|
|
|
const fromTrade = true
|
|
const fromTrade = true
|
|
|
|
|
|
|
|
-// const accountStore = useAccountStore()
|
|
|
|
|
-const positionStore = usePositionStore()
|
|
|
|
|
// 持仓汇总
|
|
// 持仓汇总
|
|
|
const position = shallowRef<Model.TradePositionRsp[]>([])
|
|
const position = shallowRef<Model.TradePositionRsp[]>([])
|
|
|
-const oem = service.getConfig('oem')
|
|
|
|
|
|
|
+// const oem = service.getConfig('oem')
|
|
|
|
|
|
|
|
// 点击返回
|
|
// 点击返回
|
|
|
const itemBack = (isPosition: number, buyorsell: BuyOrSell, tradeId: string) => {
|
|
const itemBack = (isPosition: number, buyorsell: BuyOrSell, tradeId: string) => {
|
|
@@ -202,42 +210,26 @@ const { componentRef, componentId, openComponent, closeComponent } = useComponen
|
|
|
|
|
|
|
|
const active = shallowRef('position')
|
|
const active = shallowRef('position')
|
|
|
|
|
|
|
|
-const components = oem === "TCE" ?
|
|
|
|
|
- [{
|
|
|
|
|
- name: 'cancel',
|
|
|
|
|
- title: t('quote.pricing.ordercancel'),
|
|
|
|
|
- component: defineAsyncComponent(() => import('../trade/components/cancel/Index.vue')),
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- name: 'position',
|
|
|
|
|
- title: t('quote.pricing.position'),
|
|
|
|
|
- component: defineAsyncComponent(() => import('@mobile/views/order/position/components/pricing/list/Index.vue')),
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- name: 'holdlb2',
|
|
|
|
|
- title: t('pcroute.bottom.bottom_pricing_detail2'),
|
|
|
|
|
- component: defineAsyncComponent(() => import('../trade/holdlb2/Index.vue')),
|
|
|
|
|
- }] :
|
|
|
|
|
- [{
|
|
|
|
|
- name: 'cancel',
|
|
|
|
|
- title: t('quote.pricing.ordercancel'),
|
|
|
|
|
- component: defineAsyncComponent(() => import('../trade/components/cancel/Index.vue')),
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- name: 'position',
|
|
|
|
|
- title: t('quote.pricing.position'),
|
|
|
|
|
- component: defineAsyncComponent(() => import('@mobile/views/order/position/components/pricing/list/Index.vue')),
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- name: 'holdlb',
|
|
|
|
|
- title: t('quote.pricing.holdlb'),
|
|
|
|
|
- component: defineAsyncComponent(() => import('../trade/holdlb/Index.vue')),
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- name: 'holdlb2',
|
|
|
|
|
- title: t('pcroute.bottom.bottom_pricing_detail2'),
|
|
|
|
|
- component: defineAsyncComponent(() => import('../trade/holdlb2/Index.vue')),
|
|
|
|
|
- }]
|
|
|
|
|
|
|
+const components = [{
|
|
|
|
|
+ name: 'cancel',
|
|
|
|
|
+ title: t('quote.pricing.ordercancel'),
|
|
|
|
|
+ component: defineAsyncComponent(() => import('../trade/components/cancel/Index.vue')),
|
|
|
|
|
+},
|
|
|
|
|
+{
|
|
|
|
|
+ name: 'position',
|
|
|
|
|
+ title: t('quote.pricing.position'),
|
|
|
|
|
+ component: defineAsyncComponent(() => import('@mobile/views/order/position/components/pricing/list/Index.vue')),
|
|
|
|
|
+},
|
|
|
|
|
+// {
|
|
|
|
|
+// name: 'holdlb',
|
|
|
|
|
+// title: t('quote.pricing.holdlb'),
|
|
|
|
|
+// component: defineAsyncComponent(() => import('../trade/holdlb/Index.vue')),
|
|
|
|
|
+// },
|
|
|
|
|
+{
|
|
|
|
|
+ name: 'holdlb2',
|
|
|
|
|
+ title: t('pcroute.bottom.bottom_pricing_detail2'),
|
|
|
|
|
+ component: defineAsyncComponent(() => import('../trade/holdlb2/Index.vue')),
|
|
|
|
|
+}]
|
|
|
|
|
|
|
|
const componentMap = new Map<string, unknown>([
|
|
const componentMap = new Map<string, unknown>([
|
|
|
['detail', defineAsyncComponent(() => import('./components/detail/Index.vue'))],
|
|
['detail', defineAsyncComponent(() => import('./components/detail/Index.vue'))],
|