Handy_Cao 1 年之前
父节点
当前提交
a3be973e3d

+ 69 - 22
public/locales/en-US.json

@@ -464,6 +464,19 @@
             "address": "Address",
             "transferprice": "Price",
             "qty": "Qty",
+            "tradetime": "TradeTime",
+            "holderprice": "HolderPrice",
+            "deliveryinfo": "DeliveryInfo",
+            "tips1": "Please enter the transfer price",
+            "tips2": "Please enter the transfer quantity",
+            "tips3": "Confirm the transfer?",
+            "tips4": "Successful transfer",
+            "tips5": "Do you want to confirm the delivery?",
+            "tips6": "Successful delivery",
+            "tips7": "'Please input the delivery quantity'",
+            "tips8": "Not less than the minimum delivery amount",
+            "tips9": "Please enter the shipping address",
+            "tips10": "Please enter the delivery information",
             "holddetail": {
                 "title": "Hold Detail",
                 "tradetime": "TradeTime",
@@ -492,7 +505,27 @@
             "contactnum": "Mobile",
             "district": "District",
             "address": "Address",
-            "remark": "InvoiceInfo"
+            "remark": "InvoiceInfo",
+            "tips1": "Please select the performance template",
+            "tips2": "Please enter the price",
+            "tips3": "Please input quantity",
+            "tips4": "Insufficient amount available",
+            "tips5": "Successful listing",
+            "tips6": "Submission is successful",
+            "tips7": "Please enter the invoice information",
+            "tips8": "Please enter the shipping address",
+            "tips9": "Please select the delivery area",
+            "tips10": "Please enter your contact information",
+            "tips11": "Please enter the contact person",
+            "tips12": "Please enter the delivery quantity",
+            "receipttype": "InvoiceType:",
+            "username": "InvoicePayable:",
+            "taxpayerid": "TaxNumber:",
+            "receiptbank": "BankName:",
+            "receiptaccount": "BankAccount:",
+            "address1": "BbusinessAddress:",
+            "contactinfo": "BbusinessMobile:",
+            "email": "Email:"
         },
         "presale": {
             "title": "PreSale Position",
@@ -514,31 +547,45 @@
         },
         "transfer": {
             "title": "Transfer Position",
+            "title1": "Transfer Position Detail",
             "subtitle": "Transfer Position Information",
-            "goodsname": "name/code",
-            "buycurholderamount": "buycurholderamount",
-            "buycurpositionqty": "buycurpositionqty",
-            "buyfrozenqty": "buyfrozenqty",
-            "enableqty": "enableqty",
-            "sellname": "sellname",
-            "presaleprice": "presaleprice",
-            "tradeamount": "tradeamount",
-            "transferdepositratio": "transferdepositratio",
-            "transferdeposit": "transferdeposit",
-            "depositremain": "depositremain",
-            "paystatus": "paystatus",
-            "lasttradedate": "lasttradedate"
+            "goodsname": "Name/Code",
+            "buycurholderamount": "BuyCurHolderAmount",
+            "buycurpositionqty": "BuyCurPositionQty",
+            "buyfrozenqty": "BuyFrozenQty",
+            "enableqty": "EnableQty",
+            "sellname": "SellName",
+            "presaleprice": "OrderPrice",
+            "tradeamount": "TradeAmount",
+            "transferdepositratio": "TransferDepositRatio",
+            "transferdeposit": "TransferDeposit",
+            "depositremain": "DepositRemain",
+            "paystatus": "PayStatus",
+            "lasttradedate": "LastTradeDate",
+            "deposit": "Deposit",
+            "remainamount": "RemainAmount",
+            "presaleprice1": "PreSalePrice",
+            "limitup":"LimitUp",
+            "limitdown":"LimitDown",
+            "transferprice":"TransferPrice",
+            "transferqty":"TransferQty",
+            "tips1": "Is there any additional unpaid transfer deposit?",
+            "tips2": "Submission is successful",
+            "tips3": "Please enter the price",
+            "tips4": "Please input quantity"
         },
         "swap": {
             "title": "Swap Position",
-            "averageprice": "averageprice",
-            "curpositionqty": "curpositionqty",
-            "curholderamount": "curholderamount",
-            "frozenqty": "frozenqty",
-            "lastprice": "lastprice",
-            "enableqty": "enableqty",
-            "closepl": "closepl",
-            "expiredate": "expiredate"
+            "averageprice": "AveragePrice",
+            "curpositionqty": "CurPositionQty",
+            "curholderamount": "CurHolderAmount",
+            "frozenqty": "FrozenQty",
+            "lastprice": "LastPrice",
+            "enableqty": "EnableQty",
+            "closepl": "ClosePl",
+            "expiredate": "ExpireDate",
+            "tips1": "Are you sure you want to close the position?",
+            "tips12": "Request is successful"
         },
         "pricing": {
             "title": "Pricing Position",

+ 50 - 3
public/locales/zh-CN.json

@@ -465,6 +465,19 @@
             "address": "收货地址",
             "transferprice": "转让价格",
             "qty": "转让量",
+            "tradetime": "交易时间",
+            "holderprice": "持仓价格",
+            "deliveryinfo": "交收信息",
+            "tips1": "请输入转让价格",
+            "tips2": "请输入转让量",
+            "tips3": "确认要转让吗?",
+            "tips4": "转让成功",
+            "tips5": "确认要交收吗?",
+            "tips6": "交收成功",
+            "tips7": "'请输入交收量'",
+            "tips8": "不能小于最小交收量",
+            "tips9": "请输入收货地址",
+            "tips10": "请输入交收信息",
             "holddetail": {
                 "title": "订单明细",
                 "tradetime": "交易时间",
@@ -493,7 +506,27 @@
             "contactnum": "联系方式",
             "district": "收货地区",
             "address": "收货地址",
-            "remark": "发票信息"
+            "remark": "发票信息",
+            "tips1": "请选择履约模板",
+            "tips2": "请输入价格",
+            "tips3": "请输入数量",
+            "tips4": "可用量不足",
+            "tips5": "挂牌成功",
+            "tips6": "提交成功",
+            "tips7": "请输入发票信息",
+            "tips8": "请输入收货地址",
+            "tips9": "请选择收货地区",
+            "tips10": "请输入联系方式",
+            "tips11": "请输入联系人",
+            "tips12": "请输入提货数量",
+            "receipttype": "发票类型:",
+            "username": "发票抬头:",
+            "taxpayerid": "税号:",
+            "receiptbank": "开户银行:",
+            "receiptaccount": "银行账号:",
+            "address1": "企业地址:",
+            "contactinfo": "企业电话:",
+            "email": "邮箱:"
         },
         "presale": {
             "title": "预售持仓",
@@ -515,6 +548,7 @@
         },
         "transfer": {
             "title": "转让持仓",
+            "title1": "转让持仓详情",
             "subtitle": "转让持仓信息",
             "goodsname": "商品代码/名称",
             "buycurholderamount": "持仓金额",
@@ -528,7 +562,18 @@
             "transferdeposit": "转让订金",
             "depositremain": "未付订金",
             "paystatus": "支付状态",
-            "lasttradedate": "最后交易日"
+            "lasttradedate": "最后交易日",
+            "deposit": "已付定金",
+            "remainamount": "剩余金额",
+            "presaleprice1": "预售价",
+            "limitup":"涨停",
+            "limitdown":"跌停",
+            "transferprice":"转让价",
+            "transferqty":"转让量",
+            "tips1": "是否追加未付转让定金?",
+            "tips2": "提交成功",
+            "tips3": "请输入价格",
+            "tips4": "请输入数量"
         },
         "swap": {
             "title": "掉期持仓",
@@ -539,7 +584,9 @@
             "lastprice": "参考价格",
             "enableqty": "可用量",
             "closepl": "参考损益",
-            "expiredate": "到期日"
+            "expiredate": "到期日",
+            "tips1": "确认要平仓吗?",
+            "tips12": "请求成功"
         },
         "pricing": {
             "title": "点价持仓",

+ 6 - 5
src/packages/mobile/views/order/performance/components/breach/Index.vue

@@ -34,7 +34,7 @@ import { CellGroup, Cell, Button, Field, Form, FormInstance, FieldRule } from 'v
 import { dialog, fullloading } from '@/utils/vant'
 import { handleRequestBigNumber } from '@/filters'
 import { usePerformanceContractedApply } from '@/business/performance'
-
+import { i18n } from '@/stores'
 import AppUploader from '@mobile/components/base/uploader/index.vue'
 import AppModal from '@/components/base/modal/index.vue'
 
@@ -49,6 +49,7 @@ const props = defineProps({
     }
 })
 
+const { global: { t } } = i18n
 const { formData, formSubmit } = usePerformanceContractedApply(props.selectedRow.buyorsell)
 const formRef = shallowRef<FormInstance>()
 
@@ -59,13 +60,13 @@ const onUploadSuccess = (filePath: string) => {
 // 表单验证规则
 const formRules: { [key: string]: FieldRule[] } = {
     ApplyRemark: [{
-        message: '请输入备注',
+        message: t('performance.pleaseinputremark'),
         validator: () => {
             return !!formData.value.ApplyRemark
         }
     }],
     Attachment: [{
-        message: '请上传附件',
+        message: t('performance.pleaseuploadtheattachment'),
         validator: () => {
             return !!formData.value.Attachment
         }
@@ -74,7 +75,7 @@ const formRules: { [key: string]: FieldRule[] } = {
 
 const contracted = () => {
     dialog({
-        message: '确认要提交违约申请吗?',
+        message: t('performance.areyousureyouwanttoSubmitadefaultapplication'),
         showCancelButton: true,
     }).then(() => {
         /// PerformancePlanID
@@ -82,7 +83,7 @@ const contracted = () => {
         /// loding....
         fullloading((hideLoading) => {
             formSubmit().then(() => {
-                hideLoading('违约申请成功')
+                hideLoading(t('performance.thedefaultapplicationissuccessful'), 'success')
                 closed(true)
             }).catch((err) => {
                 hideLoading(err, 'fail')

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

@@ -63,7 +63,7 @@ import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
 import { formatDecimal, handleNumberValue } from '@/filters'
 import { useOrder } from '@/business/trade'
 import { dialog, fullloading } from '@/utils/vant'
-import { useFuturesStore } from '@/stores'
+import { useFuturesStore, i18n } from '@/stores'
 import { EBuildType, EDelistingType, EListingSelectType, EOrderOperateType, EPriceMode, EValidType } from '@/constants/client'
 import Stepper from '@mobile/components/base/stepper/index.vue'
 
@@ -77,6 +77,7 @@ const props = defineProps({
     }
 })
 
+const { global: { t } } = i18n
 const futuresStore = useFuturesStore()
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodscode)
 const formRef = shallowRef<FormInstance>()
@@ -90,13 +91,13 @@ const { formSubmit, formData } = useOrder()
 // 表单验证规则
 const formRules: { [key: string]: FieldRule[] } = {
     OrderPrice: [{
-        message: '请输入转让价格',
+        message: t('position.goods.tips1'),
         validator: () => {
             return !!formData.OrderPrice
         }
     }],
     OrderQty: [{
-        message: '请输入转让量',
+        message: t('position.goods.tips2'),
         validator: () => {
             return !!formData.OrderQty
         }
@@ -109,7 +110,7 @@ const onRadioChange = (value: number) => {
 
 const onCloseSumit = () => {
     dialog({
-        message: '确认要转让吗?',
+        message: t('position.goods.tips3'),
         showCancelButton: true,
     }).then(() => {
 
@@ -129,7 +130,7 @@ const onCloseSumit = () => {
         /// loding....
         fullloading((hideLoading) => {
             formSubmit().then(() => {
-                hideLoading('转让成功', 'success')
+                hideLoading(t('position.goods.tips4'), 'success')
                 closed(true)
             }).catch((err) => {
                 hideLoading(err, 'fail')

+ 3 - 3
src/packages/mobile/views/order/position/components/goods/delivery16/index.vue

@@ -2,9 +2,9 @@
 <template>
     <Delivery ref="deliveryRef" v-bind="{ goodsId: selectedRow.goodsid, total: selectedRow.enableqty }">
         <template #header>
-            <Cell title="商品代码/名称" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
-            <Cell title="持仓量" :value="selectedRow.curpositionqty" />
-            <Cell title="可用量" :value="selectedRow.enableqty" />
+            <Cell :title="$t('position.goods.goodsname')" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
+            <Cell :title="$t('position.goods.curpositionqty')" :value="selectedRow.curpositionqty" />
+            <Cell :title="$t('position.goods.enableqty')" :value="selectedRow.enableqty" />
         </template>
     </Delivery>
 </template>

+ 24 - 23
src/packages/mobile/views/order/position/components/goods/delivery50/index.vue

@@ -3,19 +3,19 @@
     <app-modal direction="right-top" height="100%" width="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="交收" @back="closed" />
+                <app-navbar :title="$t('operation.delivery')" @back="closed" />
             </template>
             <Form ref="formRef" class="g-form__container" @submit="onDeliverySumit">
-                <CellGroup title="持仓信息" inset>
-                    <Cell title="商品代码/名称" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
-                    <Cell title="持仓方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
-                    <Cell title="持仓金额" :value="formatDecimal(selectedRow.marketamount)" />
-                    <Cell title="持仓量" :value="selectedRow.curpositionqty" />
-                    <Cell title="冻结量" :value="selectedRow.frozenqty" />
-                    <Cell title="可用量" :value="selectedRow.enableqty" />
-                    <Cell title="最小交收量" :value="selectedRow.mindeliverylot" />
-                    <Cell title="持仓均价" :value="formatDecimal(selectedRow.averageprice)" />
-                    <Cell title="参考损益">
+                <CellGroup :title="$t('position.goods.subtitle')" inset>
+                    <Cell :title="$t('position.goods.goodsname')" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
+                    <Cell :title="$t('position.goods.buyorsell')" :value="getBuyOrSellName(selectedRow.buyorsell)" />
+                    <Cell :title="$t('position.goods.curholderamount')" :value="formatDecimal(selectedRow.marketamount)" />
+                    <Cell :title="$t('position.goods.curpositionqty')" :value="selectedRow.curpositionqty" />
+                    <Cell :title="$t('position.goods.frozenqty')" :value="selectedRow.frozenqty" />
+                    <Cell :title="$t('position.goods.enableqty')" :value="selectedRow.enableqty" />
+                    <Cell :title="$t('position.goods.mindeliverylot')" :value="selectedRow.mindeliverylot" />
+                    <Cell :title="$t('position.goods.averageprice')" :value="formatDecimal(selectedRow.averageprice)" />
+                    <Cell :title="$t('position.goods.closepl')">
                         <template #value>
                             <span :class="selectedRow.closeplColor">
                                 {{ formatDecimal(selectedRow.closepl, selectedRow.decimalplace) }}
@@ -23,19 +23,19 @@
                         </template>
                     </Cell>
                 </CellGroup>
-                <CellGroup title="交收信息" inset>
-                    <Cell title="交收对手方" :value="selectedRow.matchname" />
-                    <Field name="DeliveryLot" type="digit" :rules="formRules.DeliveryLot" label="交收量">
+                <CellGroup :title="$t('position.goods.subtitle2')" inset>
+                    <Cell :title="$t('position.goods.matchname')" :value="selectedRow.matchname" />
+                    <Field name="DeliveryLot" type="digit" :rules="formRules.DeliveryLot" :label="$t('position.goods.deliverylot')">
                         <template #input>
                             <Stepper v-model="formData.DeliveryLot" theme="round" button-size="22" :min="0"
                                 :max="selectedRow.enableqty" :auto-fixed="false" integer />
                         </template>
                     </Field>
-                    <Cell title="交收数量"
+                    <Cell :title="$t('position.goods.deliveryqty')"
                         :value="((formData.DeliveryLot ?? 0) * selectedRow.agreeunit) + selectedRow.goodunit" />
                     <Field name="DeliveryInfo" v-model="formData.DeliveryInfo" type="textarea" autosize clearable
                         :rules="formRules.DeliveryInfo" maxlength="50"
-                        :label="selectedRow.buyorsell === BuyOrSell.Buy ? '收货地址' : '交收信息'" placeholder="必填">
+                        :label="selectedRow.buyorsell === BuyOrSell.Buy ? $t('position.goods.address') : $t('position.goods.deliveryinfo')" :placeholder="$t('common.require')">
                         <template #right-icon v-if="selectedRow.buyorsell === BuyOrSell.Buy">
                             <Icon name="add-o" @click="showContact = true" />
                         </template>
@@ -54,13 +54,13 @@
 
 <script lang="ts" setup>
 import { shallowRef, PropType } from 'vue'
-import AppModal from '@/components/base/modal/index.vue'
 import { CellGroup, Cell, Button, FieldRule, Form, Field, Stepper, FormInstance, Icon } from 'vant'
 import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
 import { formatDecimal } from '@/filters'
 import { useOfflineDelivery } from '@/business/trade'
 import { dialog, fullloading } from '@/utils/vant'
-
+import { i18n } from '@/stores'
+import AppModal from '@/components/base/modal/index.vue'
 import AppContact from '@mobile/components/modules/contact/index.vue'
 
 const props = defineProps({
@@ -73,6 +73,7 @@ const props = defineProps({
     }
 })
 
+const { global: { t } } = i18n
 const showModal = shallowRef(true)
 // 是否刷新父组件数据
 const refresh = shallowRef(false)
@@ -83,17 +84,17 @@ const { formSubmit, formData } = useOfflineDelivery()
 // 表单验证规则
 const formRules: { [key: string]: FieldRule[] } = {
     DeliveryLot: [{
-        message: '请输入交收量',
+        message: t('position.goods.tips7'),
         validator: (val) => {
             if (val >= props.selectedRow.mindeliverylot) {
                 return true
             }
-            return '不能小于最小交收量' + `${props.selectedRow.mindeliverylot}`
+            return t('position.goods.tips8') + `${props.selectedRow.mindeliverylot}`
         }
     }],
     DeliveryInfo: [{
         required: true,
-        message: props.selectedRow.buyorsell === BuyOrSell.Buy ? '请输入收货地址' : '请输入交收信息',
+        message: props.selectedRow.buyorsell === BuyOrSell.Buy ? t('position.goods.tips9') : t('position.goods.tips10'),
         validator: () => {
             return !!formData.DeliveryInfo
         }
@@ -110,7 +111,7 @@ const contactChange = (item: Model.UserReceiveInfoRsp) => {
 
 const onDeliverySumit = () => {
     dialog({
-        message: '确认要交收吗?',
+        message: t('position.goods.tips5'),
         showCancelButton: true,
     }).then(() => {
         const { marketid, goodsid, goodscode, buyorsell } = props.selectedRow
@@ -122,7 +123,7 @@ const onDeliverySumit = () => {
         /// loding....
         fullloading((hideLoading) => {
             formSubmit().then(() => {
-                hideLoading('交收成功')
+                hideLoading(t('position.goods.tips6'), 'success')
                 closed(true)
             }).catch((err) => {
                 hideLoading(err, 'fail')

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

@@ -3,35 +3,35 @@
     <app-modal direction="right-top" height="100%" width="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="转让" @back="closed" />
+                <app-navbar :title="$t('operation.transfer')" @back="closed" />
             </template>
             <Form ref="formRef" class="g-form__container" @submit="onCloseSumit">
-                <CellGroup title="持仓信息" inset>
-                    <Cell title="商品代码/名称" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
-                    <Cell title="持仓方向" :value="getBuyOrSellName(selectedRow.buyorsell)" />
-                    <Cell title="持仓价格" :value="selectedRow.holderprice" />
-                    <Cell title="持仓金额" :value="formatDecimal(selectedRow.holderamount)" />
-                    <Cell title="持仓量" :value="selectedRow.holderqty" />
-                    <Cell title="冻结量" :value="selectedRow.freezeqty" />
-                    <Cell title="可用量" :value="maxQty" />
-                    <Cell title="参考损益">
+                <CellGroup :title="$t('position.goods.subtitle')" inset>
+                    <Cell :title="$t('position.goods.goodsname')" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
+                    <Cell :title="$t('position.goods.buyorsell')" :value="getBuyOrSellName(selectedRow.buyorsell)" />
+                    <Cell :title="$t('position.goods.holderprice')" :value="selectedRow.holderprice" />
+                    <Cell :title="$t('position.goods.curholderamount')" :value="formatDecimal(selectedRow.holderamount)" />
+                    <Cell :title="$t('position.goods.curpositionqty')" :value="selectedRow.holderqty" />
+                    <Cell :title="$t('position.goods.freezeqty')" :value="selectedRow.freezeqty" />
+                    <Cell :title="$t('position.goods.enableqty')" :value="maxQty" />
+                    <Cell :title="$t('position.goods.closepl')">
                         <template #value>
                             <span :class="handlePriceColor(closepl)">
                                 {{ formatDecimal(closepl, selectedRow.decimalplace) }}
                             </span>
                         </template>
                     </Cell>
-                    <Cell title="交易时间" :value="selectedRow.tradetime" />
+                    <Cell :title="$t('position.goods.tradetime')" :value="selectedRow.tradetime" />
                 </CellGroup>
-                <CellGroup title="转让信息" inset>
-                    <Cell title="当前价" :value="handleNumberValue(quote?.last)" />
-                    <Field name="OrderPrice" :rules="formRules.OrderPrice" label="转让价格">
+                <CellGroup :title="$t('position.goods.subtitle3')" inset>
+                    <Cell :title="$t('position.goods.last')" :value="handleNumberValue(quote?.last)" />
+                    <Field name="OrderPrice" :rules="formRules.OrderPrice" :label="$t('position.goods.transferprice')">
                         <template #input>
                             <Stepper v-model="formData.OrderPrice" theme="round" button-size="22" :min="0"
                                 :decimal-length="quote?.decimalplace" :step="quote?.decimalvalue" :auto-fixed="false" />
                         </template>
                     </Field>
-                    <Field name="OrderQty" :rules="formRules.OrderQty" label="转让量">
+                    <Field name="OrderQty" :rules="formRules.OrderQty" :label="$t('position.goods.orderqty')">
                         <template #input>
                             <Stepper v-model="formData.OrderQty" theme="round" button-size="22" :min="0" :max="maxQty"
                                 :auto-fixed="false" integer />
@@ -40,7 +40,7 @@
                 </CellGroup>
             </Form>
             <template #footer>
-                <Button block square type="danger" @click="formRef?.submit">转让</Button>
+                <Button block square type="danger" @click="formRef?.submit">{{ $t('operation.transfer') }}</Button>
             </template>
         </app-view>
     </app-modal>
@@ -54,7 +54,7 @@ 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, usePositionStore } from '@/stores'
+import { useFuturesStore, usePositionStore, i18n } from '@/stores'
 import { EBuildType, EDelistingType, EListingSelectType, EPriceMode, EValidType } from '@/constants/client'
 
 const props = defineProps({
@@ -67,7 +67,7 @@ const props = defineProps({
 const futuresStore = useFuturesStore()
 const positionStore = usePositionStore()
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodscode)
-
+const { global: { t } } = i18n
 // 可用数量
 const maxQty = computed(() => {
     const record = positionStore.positionList.find((e) => e.goodsid === props.selectedRow.goodsid && e.buyorsell === props.selectedRow.buyorsell)
@@ -95,13 +95,13 @@ const { formSubmit, formData } = useOrder()
 // 表单验证规则
 const formRules: { [key: string]: FieldRule[] } = {
     OrderPrice: [{
-        message: '请输入转让价格',
+        message: t('position.goods.tips1'),
         validator: () => {
             return !!formData.OrderPrice
         }
     }],
     OrderQty: [{
-        message: '请输入转让量',
+        message: t('position.goods.tips2'),
         validator: () => {
             return !!formData.OrderQty
         }
@@ -110,7 +110,7 @@ const formRules: { [key: string]: FieldRule[] } = {
 
 const onCloseSumit = () => {
     dialog({
-        message: '确认要转让吗?',
+        message: t('position.goods.tips3'),
         showCancelButton: true,
     }).then(() => {
 
@@ -131,7 +131,7 @@ const onCloseSumit = () => {
         /// loding....
         fullloading((hideLoading) => {
             formSubmit().then(() => {
-                hideLoading('转让成功', 'success')
+                hideLoading(t('position.goods.tips4'), 'success')
                 closed(true)
             }).catch((err) => {
                 hideLoading(err, 'fail')

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

@@ -16,13 +16,13 @@
                 <CellGroup :title="$t('position.spot.subtitle2')" inset>
                     <Performance ref="performanceRef" tmptype="0,2" name="PerformanceTemplateID"
                         v-model="formData.PerformanceTemplateID" />
-                    <Field name="OrderQty" :rules="formRules.OrderQty" label="挂牌量">
+                    <Field name="OrderQty" :rules="formRules.OrderQty" :label="$t('position.spot.orderqty')">
                         <template #input>
                             <Stepper v-model="formData.OrderQty" theme="round" button-size="22"
                                 :default-value="selectedRow.enableqty" :auto-fixed="false" integer />
                         </template>
                     </Field>
-                    <Field name="FixedPrice" :rules="formRules.FixedPrice" label="挂牌价格">
+                    <Field name="FixedPrice" :rules="formRules.FixedPrice" label="$t('position.spot.fixedprice')">
                         <template #input>
                             <Stepper v-model="formData.FixedPrice" theme="round" :decimal-length="2" :auto-fixed="false"
                                 button-size="22" />
@@ -45,6 +45,7 @@ import { CellGroup, Cell, Button, Stepper, Field, Form, FormInstance, FieldRule
 import { fullloading } from '@/utils/vant'
 import { handleRequestBigNumber } from '@/filters'
 import { useHdWROrder } from '@/business/trade'
+import { i18n } from '@/stores'
 import AppModal from '@/components/base/modal/index.vue'
 
 const Performance = defineAsyncComponent(() => import('@mobile/components/modules/performance/index.vue'))
@@ -56,6 +57,7 @@ const props = defineProps({
     }
 })
 
+const { global: { t } } = i18n
 const { formData, listingSubmit } = useHdWROrder()
 const formRef = shallowRef<FormInstance>()
 const performanceRef = shallowRef()
@@ -65,23 +67,23 @@ const refresh = shallowRef(false) // 是否刷新父组件数据
 // 表单验证规则
 const formRules: { [key in keyof Proto.HdWROrderReq]?: FieldRule[] } = {
     PerformanceTemplateID: [{
-        message: '请选择履约模板',
+        message: t('position.spot.tips1'),
         validator: () => {
             return !!formData.PerformanceTemplateID
         }
     }],
     FixedPrice: [{
-        message: '请输入价格',
+        message: t('position.spot.tips2'),
         validator: () => {
             return !!formData.FixedPrice
         }
     }],
     OrderQty: [{
-        message: '请输入数量',
+        message: t('position.spot.tips3'),
         validator: (val) => {
             if (val) {
                 if (val > props.selectedRow.enableqty) {
-                    return '可用量不足'
+                    return t('position.spot.tips4')
                 }
                 return true
             }
@@ -100,7 +102,7 @@ const onSubmit = () => {
 
     fullloading((hideLoading) => {
         listingSubmit().then(() => {
-            hideLoading('挂牌成功', 'success')
+            hideLoading(t('position.spot.tips5'), 'success')
             closed(true)
         }).catch((err) => {
             hideLoading(err, 'fail')

+ 35 - 33
src/packages/mobile/views/order/position/components/spot/pickup/Index.vue

@@ -4,49 +4,49 @@
         <template #default="{ animation }">
             <app-view class="g-form">
                 <template #header>
-                    <app-navbar title="提货" @back="closed" />
+                    <app-navbar :title="$t('operation.pickup')" @back="closed" />
                 </template>
                 <Form ref="formRef" class="g-form__container" @submit="onSubmit">
-                    <CellGroup title="现货持仓信息" inset>
-                        <Cell title="商品代码/名称" :value="`${selectedRow.wrstandardcode}/${selectedRow.wrstandardname}`" />
-                        <Cell title="仓库" :value="selectedRow.warehousename" />
-                        <Cell title="库存量" :value="selectedRow.qty" />
-                        <Cell title="冻结量" :value="selectedRow.freezerqty" />
-                        <Cell title="可用量" :value="selectedRow.enableqty" />
+                    <CellGroup :title="$t('position.spot.subtitle')" inset>
+                        <Cell :title="$t('position.spot.goodsname')" :value="`${selectedRow.wrstandardcode}/${selectedRow.wrstandardname}`" />
+                        <Cell :title="$t('position.spot.warehousename')" :value="selectedRow.warehousename" />
+                        <Cell :title="$t('position.spot.qty')" :value="selectedRow.qty" />
+                        <Cell :title="$t('position.spot.freezerqty')" :value="selectedRow.freezerqty" />
+                        <Cell :title="$t('position.spot.enableqty')" :value="selectedRow.enableqty" />
                     </CellGroup>
-                    <CellGroup title="挂牌信息" inset>
-                        <Field name="OrderQty" :rules="formRules.orderQty" label="提货数量">
+                    <CellGroup :title="$t('position.spot.subtitle2')" inset>
+                        <Field name="OrderQty" :rules="formRules.orderQty" :label="$t('position.spot.orderqty2')">
                             <template #input>
                                 <Stepper v-model="orderQty" theme="round" button-size="22" :auto-fixed="false" integer />
                             </template>
                         </Field>
-                        <Field label="提货方式" is-link>
+                        <Field :label="$t('position.spot.appointmentmodel')" is-link>
                             <template #input>
                                 <app-select v-model="formData.AppointmentModel" :options="getAppointmentModelOutList()" />
                             </template>
                         </Field>
-                        <Field name="ContractName" label="联系人" v-model="formData.ContactName" placeholder="必填"
+                        <Field name="ContractName" :label="$t('position.spot.contactname')" v-model="formData.ContactName" :placeholder="$t('common.require')"
                             :rules="formRules.ContactName" right-icon="add-o" @click-right-icon="showContact = true" />
-                        <Field name="ContactNum" label="联系方式" v-model="formData.ContactNum" placeholder="必填"
+                        <Field name="ContactNum" :label="$t('position.spot.contactnum')" v-model="formData.ContactNum" :placeholder="$t('common.require')"
                             :rules="formRules.ContactNum" />
                         <template v-if="formData.AppointmentModel === 1">
-                            <Field :rules="formRules.Region" name="Region" label="收货地区" is-link v-if="!animation">
+                            <Field :rules="formRules.Region" name="Region" :label="$t('position.spot.district')" is-link v-if="!animation">
                                 <template #input>
                                     <component :is="AppRegion" v-model="formData.DistrictID" v-model:label="regionName"
                                         @finish="onRegionFinish" />
                                 </template>
                             </Field>
-                            <Field name="Address" type="textarea" label="收货地址" row="2" v-model="formData.Address"
-                                placeholder="必填" :rules="formRules.Address" />
+                            <Field name="Address" type="textarea" :label="$t('position.spot.address')" row="2" v-model="formData.Address"
+                                :placeholder="$t('common.require')" :rules="formRules.Address" />
                         </template>
-                        <Field name="AppointmentRemark" type="textarea" label="发票信息" rows="2" autosize
-                            v-model="formData.AppointmentRemark" placeholder="必填" :rules="formRules.AppointmentRemark"
+                        <Field name="AppointmentRemark" type="textarea" :label="$t('position.spot.remark')" rows="2" autosize
+                            v-model="formData.AppointmentRemark" :placeholder="$t('common.require')" :rules="formRules.AppointmentRemark"
                             right-icon="add-o" @click-right-icon="showReceipt = true" />
                     </CellGroup>
                 </Form>
                 <template #footer>
                     <div class="g-form__footer">
-                        <Button block square type="danger" @click="formRef?.submit">提货</Button>
+                        <Button block square type="danger" @click="formRef?.submit">{{ $t('operation.pickup') }}</Button>
                     </div>
                 </template>
             </app-view>
@@ -64,6 +64,7 @@ import { validateRules } from '@/constants/regex'
 import { getReceiptTypeName } from '@/constants/receipt'
 import { getAppointmentModelOutList } from '@/constants/order'
 import { useWrOutInApply } from '@/business/trade'
+import { i18n } from '@/stores'
 
 import AppModal from '@/components/base/modal/index.vue'
 import AppSelect from '@mobile/components/base/select/index.vue'
@@ -80,6 +81,7 @@ const props = defineProps({
     }
 })
 
+const { global: { t } } = i18n
 const { formData, applySubmit, orderQty } = useWrOutInApply(props.selectedRow)
 const formRef = shallowRef<FormInstance>()
 const showModal = shallowRef(true)
@@ -91,18 +93,18 @@ const regionName = shallowRef('') // 地区名称
 // 表单验证规则
 const formRules: { [key in keyof Proto.WROutApplyReq | 'orderQty' | 'Region']?: FieldRule[] } = {
     orderQty: [{
-        message: '请输入提货数量',
+        message: t('position.spot.tips12'),
         validator: () => {
             return !!orderQty.value
         }
     }],
     ContactName: [{
         required: true,
-        message: '请输入联系人',
+        message: t('position.spot.tips11'),
     }],
     ContactNum: [{
         required: true,
-        message: '请输入联系方式',
+        message: t('position.spot.tips10'),
         validator: (val) => {
             if (validateRules.phone.validate(val)) {
                 return true
@@ -111,18 +113,18 @@ const formRules: { [key in keyof Proto.WROutApplyReq | 'orderQty' | 'Region']?:
         }
     }],
     Region: [{
-        message: '请选择收货地区',
+        message: t('position.spot.tips9'),
         validator: () => {
             return !!formData.ProvinceID && !!formData.CityID && !!formData.DistrictID
         }
     }],
     Address: [{
         required: true,
-        message: '请输入收货地址',
+        message: t('position.spot.tips8'),
     }],
     AppointmentRemark: [{
         required: true,
-        message: '请输入发票信息',
+        message: t('position.spot.tips7'),
     }],
 }
 
@@ -153,35 +155,35 @@ const receiptChange = (item: Model.WrUserReceiptInfoRsp) => {
         if (value !== '') {
             switch (key) {
                 case 'receipttype': {
-                    formData.AppointmentRemark += '发票类型:' + getReceiptTypeName(Number(value)) + '\n'
+                    formData.AppointmentRemark += t('position.spot.receipttype') + getReceiptTypeName(Number(value)) + '\n'
                     break
                 }
                 case 'username': {
-                    formData.AppointmentRemark += '发票抬头:' + value + '\n'
+                    formData.AppointmentRemark += t('position.spot.username') + value + '\n'
                     break
                 }
                 case 'taxpayerid': {
-                    formData.AppointmentRemark += '税号:' + value + '\n'
+                    formData.AppointmentRemark += t('position.spot.taxpayerid') + value + '\n'
                     break
                 }
                 case 'receiptbank': {
-                    formData.AppointmentRemark += '开户银行:' + value + '\n'
+                    formData.AppointmentRemark += t('position.spot.receiptbank') + value + '\n'
                     break
                 }
                 case 'receiptaccount': {
-                    formData.AppointmentRemark += '银行账号:' + value + '\n'
+                    formData.AppointmentRemark += t('position.spot.receiptaccount') + value + '\n'
                     break
                 }
                 case 'address': {
-                    formData.AppointmentRemark += '企业地址:' + value + '\n'
+                    formData.AppointmentRemark += t('position.spot.address1') + value + '\n'
                     break
                 }
                 case 'contactinfo': {
-                    formData.AppointmentRemark += '企业电话:' + value + '\n'
+                    formData.AppointmentRemark += t('position.spot.contactinfo') + value + '\n'
                     break
                 }
                 case 'email': {
-                    formData.AppointmentRemark += '邮箱:' + value + '\n'
+                    formData.AppointmentRemark += t('position.spot.email') + value + '\n'
                     break
                 }
             }
@@ -192,7 +194,7 @@ const receiptChange = (item: Model.WrUserReceiptInfoRsp) => {
 const onSubmit = () => {
     fullloading((hideLoading) => {
         applySubmit().then(() => {
-            hideLoading('提交成功', 'success')
+            hideLoading(t('position.spot.tips6'), 'success')
             closed(true)
         }).catch((err) => {
             hideLoading(err, 'fail')

+ 12 - 11
src/packages/mobile/views/order/position/components/swap/close/Index.vue

@@ -20,31 +20,31 @@
                         <div class="g-order-list__content">
                             <ul>
                                 <li>
-                                    <span>订单均价</span>
+                                    <span>{{ $t('position.swap.averageprice') }}</span>
                                     <span>{{ formatDecimal(item.holderprice) }}</span>
                                 </li>
                                 <li>
-                                    <span>持有量</span>
+                                    <span>{{ $t('position.swap.curpositionqty') }}</span>
                                     <span>{{ item.holderqty }}</span>
                                 </li>
                                 <li>
-                                    <span>订单金额</span>
+                                    <span>{{ $t('position.swap.curholderamount') }}</span>
                                     <span>{{ formatDecimal(item.holderamount) }}</span>
                                 </li>
                                 <li>
-                                    <span>可用量</span>
+                                    <span>{{ $t('position.swap.enableqty') }}</span>
                                     <span>{{ item.holderqty - item.freezeqty }}</span>
                                 </li>
                                 <li>
-                                    <span>参考价格</span>
+                                    <span>{{ $t('position.swap.lastprice') }}</span>
                                     <span :class="refQuote?.lastColor">{{ handleNumberValue(refQuote?.last) }}</span>
                                 </li>
                                 <li>
-                                    <span>到期日</span>
+                                    <span>{{ $t('position.swap.expiredate') }}</span>
                                     <span>{{ formatDate(item.expiredate, 'YYYY/MM/DD') }}</span>
                                 </li>
                                 <li>
-                                    <span>参考损益</span>
+                                    <span>{{ $t('position.swap.closepl') }}</span>
                                     <span :class="handlePriceColor(item.closepl)">
                                         {{ formatDecimal(item.closepl, quote?.decimalplace) }}
                                     </span>
@@ -53,7 +53,7 @@
                         </div>
                         <div class="g-order-list__btnbar">
                             <Button size="small" v-if="useStore.userType === 5 && [1, 3].includes(quote?.goodstradetype ?? 0)" @click="onCloseSubmit(item)"
-                                round>平仓</Button>
+                                round>{{ $t('operation.close') }}</Button>
                         </div>
                     </div>
                 </div>
@@ -72,7 +72,7 @@ import { getBuyOrSellName } from '@/constants/order'
 import { formatDate, formatDecimal, handleRequestBigNumber, handleNumberValue, handlePriceColor, round } from '@/filters'
 import { useHolderClose } from '@/business/trade'
 import { dialog, fullloading } from '@/utils/vant'
-import { useFuturesStore, useUserStore } from '@/stores'
+import { useFuturesStore, useUserStore, i18n } from '@/stores'
 import { BuyOrSell } from '@/constants/order'
 import AppModal from '@/components/base/modal/index.vue'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
@@ -84,6 +84,7 @@ const props = defineProps({
     }
 })
 
+const { global: { t } } = i18n
 const futuresStore = useFuturesStore()
 const dataList = shallowRef<Model.TradeHolderDetailRsp[]>([])
 const showModal = shallowRef(true)
@@ -139,7 +140,7 @@ const computedList = computed(() => dataList.value.map((item) => {
 
 const onCloseSubmit = (row: Model.TradeHolderDetailRsp) => {
     dialog({
-        message: '确认要平仓吗?',
+        message: t('position.swap.tips1'),
         showCancelButton: true,
     }).then(() => {
         const { marketid, goodsid, buyorsell, tradeid } = row
@@ -151,7 +152,7 @@ const onCloseSubmit = (row: Model.TradeHolderDetailRsp) => {
         /// loding....
         fullloading((hideLoading) => {
             holderCloseSubmit().then(() => {
-                hideLoading('请求成功')
+                hideLoading(t('position.swap.tips2'))
                 closed(true)
             }).catch((err) => {
                 hideLoading(err, 'fail')

+ 8 - 8
src/packages/mobile/views/order/position/components/swap/list/Index.vue

@@ -14,31 +14,31 @@
                 <div class="g-order-list__content">
                     <ul>
                         <li>
-                            <span>订单均价</span>
+                            <span>{{ $t('position.swap.averageprice') }}</span>
                             <span>{{ handleNumberValue(formatDecimal(item.averageprice)) }}</span>
                         </li>
                         <li>
-                            <span>持有量</span>
+                            <span>{{ $t('position.swap.curpositionqty') }}</span>
                             <span>{{ item.curpositionqty }}</span>
                         </li>
                         <li>
-                            <span>订单金额</span>
+                            <span>{{ $t('position.swap.curholderamount') }}</span>
                             <span>{{ formatDecimal(item.curholderamount) }}</span>
                         </li>
                         <li>
-                            <span>冻结量</span>
+                            <span>{{ $t('position.swap.frozenqty') }}</span>
                             <span>{{ item.frozenqty }}</span>
                         </li>
                         <li>
-                            <span>参考价格</span>
+                            <span>{{ $t('position.swap.lastprice') }}</span>
                             <span :class="item.lastColor">{{ handleNumberValue(item.lastprice) }}</span>
                         </li>
                         <li>
-                            <span>可用量</span>
+                            <span>{{ $t('position.swap.enableqty') }}</span>
                             <span>{{ item.enableqty }}</span>
                         </li>
                         <li>
-                            <span>参考损益</span>
+                            <span>{{ $t('position.swap.closepl') }}</span>
                             <span :class="item.closeplColor">
                                 {{ formatDecimal(item.closepl, item.decimalplace) }}
                             </span>
@@ -46,7 +46,7 @@
                     </ul>
                 </div>
                 <div class="g-order-list__btnbar">
-                    <Button size="small" @click="showComponent('close', item)" round>明细</Button>
+                    <Button size="small" @click="showComponent('close', item)" round>{{ $t('operation.details') }}</Button>
                 </div>
             </div>
         </div>

+ 6 - 6
src/packages/mobile/views/order/position/components/transfer/delivery/Index.vue

@@ -2,22 +2,22 @@
 <template>
     <Delivery ref="deliveryRef" v-bind="{ goodsId: selectedRow.goodsid, total: selectedRow.buycurpositionqty }">
         <template #header>
-            <Cell title="商品代码/名称" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
-            <Cell title="持仓量" :value="selectedRow.buycurpositionqty" />
-            <Cell title="可用量" :value="enableqty" />
+            <Cell :title="$t('position.transfer.goodsname')" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
+            <Cell :title="$t('position.transfer.buycurpositionqty')" :value="selectedRow.buycurpositionqty" />
+            <Cell :title="$t('position.transfer.enableqty')" :value="enableqty" />
         </template>
         <template #form="{ qty, discount }" v-if="false">
-            <Field label="总货款">
+            <Field :label="$t('position.transfer.tradeamount')">
                 <template #input>
                     {{ payment(qty).toFixed(2) }}
                 </template>
             </Field>
-            <Field label="已付定金">
+            <Field :label="$t('position.transfer.deposit')">
                 <template #input>
                     {{ deposit(qty).toFixed(2) }}
                 </template>
             </Field>
-            <Field label="剩余金额">
+            <Field :label="$t('position.transfer.remainamount')">
                 <template #input>
                     {{ available(qty, discount).toFixed(2) }}
                 </template>

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

@@ -3,23 +3,23 @@
     <app-modal direction="right-top" height="100%" width="100%" v-model:show="showModal">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="转让持仓详情" @back="closed" />
+                <app-navbar :title="$t('position.transfer.title1')" @back="closed" />
             </template>
             <div class="g-form__container">
-                <CellGroup title="转让持仓信息">
-                    <Cell title="商品代码/名称" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
-                    <Cell title="持仓金额" :value="selectedRow.buycurholderamount" />
-                    <Cell title="持仓量" :value="selectedRow.buycurpositionqty" />
-                    <Cell title="冻结量" :value="selectedRow.buyfrozenqty" />
-                    <Cell title="可用量" :value="selectedRow.buycurpositionqty - selectedRow.buyfrozenqty" />
-                    <Cell title="发售方" :value="selectedRow.sellname" />
-                    <Cell title="订货价" :value="selectedRow.presaleprice" />
-                    <Cell title="总货款" :value="selectedRow.buycurpositionqty * selectedRow.presaleprice" />
-                    <Cell title="转让订金比例" :value="parsePercent(selectedRow.transferdepositratio)" />
-                    <Cell title="转让订金" :value="selectedRow.transferdeposit" />
-                    <Cell title="未付订金" :value="selectedRow.depositremain" />
-                    <Cell title="支付状态" :value="getPayStatusName(selectedRow.paystatus)" />
-                    <Cell title="最后交易日" :value="selectedRow.lasttradedate" />
+                <CellGroup :title="$t('position.transfer.subtitle')">
+                    <Cell :title="$t('position.transfer.goodsname')" :value="`${selectedRow.goodscode}/${selectedRow.goodsname}`" />
+                    <Cell :title="$t('position.transfer.buycurholderamount')" :value="selectedRow.buycurholderamount" />
+                    <Cell :title="$t('position.transfer.buycurpositionqty')" :value="selectedRow.buycurpositionqty" />
+                    <Cell :title="$t('position.transfer.buyfrozenqty')" :value="selectedRow.buyfrozenqty" />
+                    <Cell :title="$t('position.transfer.enableqty')" :value="selectedRow.buycurpositionqty - selectedRow.buyfrozenqty" />
+                    <Cell :title="$t('position.transfer.sellname')" :value="selectedRow.sellname" />
+                    <Cell :title="$t('position.transfer.presaleprice')" :value="selectedRow.presaleprice" />
+                    <Cell :title="$t('position.transfer.tradeamount')" :value="selectedRow.buycurpositionqty * selectedRow.presaleprice" />
+                    <Cell :title="$t('position.transfer.transferdepositratio')" :value="parsePercent(selectedRow.transferdepositratio)" />
+                    <Cell :title="$t('position.transfer.transferdeposit')" :value="selectedRow.transferdeposit" />
+                    <Cell :title="$t('position.transfer.depositremain')" :value="selectedRow.depositremain" />
+                    <Cell :title="$t('position.transfer.paystatus')" :value="getPayStatusName(selectedRow.paystatus)" />
+                    <Cell :title="$t('position.transfer.lasttradedate')" :value="selectedRow.lasttradedate" />
                 </CellGroup>
             </div>
         </app-view>

+ 16 - 15
src/packages/mobile/views/order/position/components/transfer/list/Index.vue

@@ -15,47 +15,47 @@
                 <div class="g-order-list__content">
                     <ul>
                         <li>
-                            <span>持仓量</span>
+                            <span>{{ $t('position.transfer.buycurpositionqty') }}</span>
                             <span>{{ item.buycurpositionqty }}</span>
                         </li>
                         <li>
-                            <span>订货价</span>
+                            <span>{{ $t('position.transfer.presaleprice') }}</span>
                             <span>{{ item.presaleprice }}</span>
                         </li>
                         <li>
-                            <span>持仓金额</span>
+                            <span>{{ $t('position.transfer.buycurholderamount') }}</span>
                             <span>{{ formatDecimal(item.buycurholderamount) }}</span>
                         </li>
                         <li>
-                            <span>转让定金比例</span>
+                            <span>{{ $t('position.transfer.transferdepositratio') }}</span>
                             <span>{{ parsePercent(item.transferdepositratio) }}</span>
                         </li>
                         <li>
-                            <span>转让定金</span>
+                            <span>{{ $t('position.transfer.transferdeposit') }}</span>
                             <span>{{ item.transferdeposit }}</span>
                         </li>
                         <li>
-                            <span>未付定金</span>
+                            <span>{{ $t('position.transfer.depositremain') }}</span>
                             <span>{{ item.depositremain }}</span>
                         </li>
                         <li>
-                            <span>最后交易日</span>
+                            <span>{{ $t('position.transfer.lasttradedate') }}</span>
                             <span>{{ item.lasttradedate }}</span>
                         </li>
                         <li>
-                            <span>可用量</span>
+                            <span>{{ $t('position.transfer.enableqty') }}</span>
                             <span>{{ item.buycurpositionqty - item.buyfrozenqty }}</span>
                         </li>
                     </ul>
                 </div>
                 <div class="g-order-list__btnbar">
                     <Button size="small" @click="depositPayment(item)" round
-                        v-if="item.paystatus === PayStatus.UnPay">追加定金</Button>
+                        v-if="item.paystatus === PayStatus.UnPay">{{ $t('operation.deposit2') }}</Button>
                     <Button size="small" @click="showComponent('listing', item)" round
-                        v-if="item.paystatus === 2">转让</Button>
+                        v-if="item.paystatus === 2">{{ $t('operation.transfer') }}</Button>
                     <Button size="small" @click="showComponent('delivery', item)" round
-                        v-if="item.paystatus === 2">交收</Button>
-                    <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
+                        v-if="item.paystatus === 2">{{ $t('operation.delivery') }}</Button>
+                    <Button size="small" @click="showComponent('detail', item)" round>{{ $t('operation.details') }}</Button>
                 </div>
             </div>
         </div>
@@ -74,6 +74,7 @@ import { useRequest } from '@/hooks/request'
 import { queryMineTradePositionExs } from '@/services/api/transfer'
 import { holdAppendDeposit } from '@/services/api/trade'
 import { PayStatus, getPayStatusName } from '@/constants/order'
+import { i18n } from '@/stores'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -81,7 +82,7 @@ const componentMap = new Map<string, unknown>([
     ['listing', defineAsyncComponent(() => import('../listing/Index.vue'))], // 挂牌
     ['delivery', defineAsyncComponent(() => import('../delivery/Index.vue'))], // 交收
 ])
-
+const { global: { t } } = i18n
 const dataList = shallowRef<Model.MineTradePositionExsRsp[]>([])
 const selectedRow = shallowRef<Model.MineTradePositionExsRsp>()
 const error = shallowRef(false)
@@ -114,7 +115,7 @@ const showComponent = (componentName: string, row: Model.MineTradePositionExsRsp
 // 追加定金
 const depositPayment = (row: Model.MineTradePositionExsRsp) => {
     dialog({
-        message: '是否追加未付转让定金?',
+        message: t('position.transfer.tips1'),
         showCancelButton: true,
     }).then(() => {
         fullloading((hideLoading) => {
@@ -123,7 +124,7 @@ const depositPayment = (row: Model.MineTradePositionExsRsp) => {
                     GoodsID: row.goodsid
                 }
             }).then(() => {
-                hideLoading('提交成功')
+                hideLoading(t('position.transfer.tips2'))
                 pullRefreshRef.value?.refresh()
             }).catch((err) => {
                 hideLoading(err, 'fail')

+ 13 - 12
src/packages/mobile/views/order/position/components/transfer/listing/Index.vue

@@ -7,39 +7,39 @@
             </template>
             <Form ref="formRef" :label-width="100" class="g-form__container" @submit="onSubmit">
                 <CellGroup inset>
-                    <Field label="商品代码/名称">
+                    <Field :label="$t('position.transfer.goodsname')">
                         <template #input>
                             <span>{{ selectedRow.goodscode }}/{{ selectedRow.goodsname }}</span>
                         </template>
                     </Field>
-                    <Field label="预售价">
+                    <Field :label="$t('position.transfer.presaleprice1')">
                         <template #input>
                             <span>{{ selectedRow.presaleprice }}</span>
                         </template>
                     </Field>
-                    <Field label="可用量">
+                    <Field :label="$t('position.transfer.enableqty')">
                         <template #input>
                             <span>{{ enableqty }}</span>
                         </template>
                     </Field>
-                    <Field label="涨停">
+                    <Field :label="$t('position.transfer.limitup')">
                         <template #input>
                             <span>{{ handleNumberValue(quote?.limitup) }}</span>
                         </template>
                     </Field>
-                    <Field label="跌停">
+                    <Field :label="$t('position.transfer.limitdown')">
                         <template #input>
                             <span>{{ handleNumberValue(quote?.limitdown) }}</span>
                         </template>
                     </Field>
-                    <Field name="OrderPrice" :rules="formRules.OrderPrice" label="转让价">
+                    <Field name="OrderPrice" :rules="formRules.OrderPrice" :label="$t('position.transfer.transferprice')">
                         <template #input>
                             <Stepper v-model="formData.OrderPrice" theme="round" :min="quote?.limitdown"
                                 :max="quote?.limitup" :step="quote?.decimalvalue"
                                 :decimal-length="selectedRow.decimalplace" :auto-fixed="false" button-size="22" />
                         </template>
                     </Field>
-                    <Field name="OrderQty" :rules="formRules.OrderQty" label="转让量">
+                    <Field name="OrderQty" :rules="formRules.OrderQty" :label="$t('position.transfer.transferqty')">
                         <template #input>
                             <Stepper v-model="formData.OrderQty" theme="round" :max="enableqty" button-size="22"
                                 :auto-fixed="false" integer />
@@ -49,7 +49,7 @@
             </Form>
             <template #footer>
                 <div class="g-form__footer">
-                    <Button block square type="danger" @click="formRef?.submit">提交</Button>
+                    <Button block square type="danger" @click="formRef?.submit">{{ $t('operation.submit') }}</Button>
                 </div>
             </template>
         </app-view>
@@ -62,7 +62,7 @@ import { CellGroup, Form, Field, Stepper, Button, FieldRule, FormInstance } from
 import { fullloading, dialog } from '@/utils/vant'
 import { handleNumberValue } from '@/filters'
 import { useOrder } from '@/business/trade'
-import { useFuturesStore } from '@/stores'
+import { useFuturesStore, i18n } from '@/stores'
 import AppModal from '@/components/base/modal/index.vue'
 import { BuyOrSell } from '@/constants/order'
 import { EPriceMode, EValidType, EListingSelectType, EBuildType } from '@/constants/client'
@@ -74,6 +74,7 @@ const props = defineProps({
     },
 })
 
+const { global: { t } } = i18n
 const { formData, formSubmit } = useOrder()
 const { getGoodsQuote } = useFuturesStore()
 const formRef = shallowRef<FormInstance>()
@@ -84,13 +85,13 @@ const quote = getGoodsQuote(props.selectedRow.goodscode)
 // 表单验证规则
 const formRules: { [key in keyof Proto.OrderReq]?: FieldRule[] } = {
     OrderPrice: [{
-        message: '请输入价格',
+        message: t('position.transfer.tips3'),
         validator: () => {
             return !!formData.OrderPrice
         }
     }],
     OrderQty: [{
-        message: '请输入数量',
+        message: t('position.transfer.tips4'),
         validator: () => {
             return !!formData.OrderQty
         }
@@ -120,7 +121,7 @@ const onSubmit = () => {
     fullloading((hideLoading) => {
         formSubmit().then(() => {
             hideLoading()
-            dialog('提交成功').then(() => closed(true))
+            dialog(t('position.transfer.tips2')).then(() => closed(true))
         }).catch((err) => {
             hideLoading(err, 'fail')
         })