Handy_Cao 1 rok temu
rodzic
commit
c891f41247
93 zmienionych plików z 430 dodań i 248 usunięć
  1. 19 0
      public/locales/en-US.json
  2. 19 0
      public/locales/zh-CN.json
  3. 5 2
      src/packages/pc/components/base/table-filter/index.vue
  4. 4 1
      src/packages/pc/components/base/upload/index.vue
  5. 4 3
      src/packages/pc/components/layouts/header/components/avater/index.vue
  6. 12 11
      src/packages/pc/components/layouts/header/components/cancel/index.vue
  7. 5 3
      src/packages/pc/components/layouts/header/components/modify/index.vue
  8. 6 5
      src/packages/pc/components/layouts/header/components/report/index.vue
  9. 4 3
      src/packages/pc/components/layouts/header/components/setting/index.vue
  10. 2 2
      src/packages/pc/components/modules/delivery/index.vue
  11. 4 2
      src/packages/pc/components/modules/goods-detail/index.vue
  12. 7 4
      src/packages/pc/components/modules/goods-detail/order/delisting/index.vue
  13. 2 2
      src/packages/pc/components/modules/goods-detail/order/index.vue
  14. 5 2
      src/packages/pc/views/account/address/components/default/index.vue
  15. 5 2
      src/packages/pc/views/account/address/components/delete/index.vue
  16. 5 2
      src/packages/pc/views/account/address/components/edit/index.vue
  17. 6 4
      src/packages/pc/views/account/address/index.vue
  18. 5 2
      src/packages/pc/views/account/holddeposit/components/deposit/index.vue
  19. 4 3
      src/packages/pc/views/account/holdsign/components/cancel/index.vue
  20. 5 2
      src/packages/pc/views/account/holdsign/components/sign/index.vue
  21. 5 2
      src/packages/pc/views/account/holdsign/index.vue
  22. 5 2
      src/packages/pc/views/account/receipt/components/delete/index.vue
  23. 5 2
      src/packages/pc/views/account/receipt/components/edit/index.vue
  24. 4 2
      src/packages/pc/views/account/receipt/index.vue
  25. 5 2
      src/packages/pc/views/account/sign/components/cancel/index.vue
  26. 3 2
      src/packages/pc/views/account/sign/components/certification-aq/index.vue
  27. 5 2
      src/packages/pc/views/account/sign/components/certification/index.vue
  28. 4 2
      src/packages/pc/views/account/sign/components/protocol/index.vue
  29. 6 5
      src/packages/pc/views/account/sign/components/sign/index.vue
  30. 9 8
      src/packages/pc/views/account/sign/index.vue
  31. 4 2
      src/packages/pc/views/auth/forget/index.vue
  32. 3 2
      src/packages/pc/views/auth/login/index.vue
  33. 4 3
      src/packages/pc/views/footer/capital/summary/deposit/index.vue
  34. 5 4
      src/packages/pc/views/footer/capital/summary/withdraw/index.vue
  35. 6 3
      src/packages/pc/views/footer/goods/delivery/cancel/index.vue
  36. 1 1
      src/packages/pc/views/footer/goods/delivery/index.vue
  37. 4 3
      src/packages/pc/views/footer/goods/detail/components/transfer/index.vue
  38. 3 2
      src/packages/pc/views/footer/goods/detail/index.vue
  39. 4 3
      src/packages/pc/views/footer/goods/order/cancel/index.vue
  40. 5 2
      src/packages/pc/views/footer/goods/order/clear/index.vue
  41. 2 2
      src/packages/pc/views/footer/goods/order/index.vue
  42. 5 2
      src/packages/pc/views/footer/goods/position/components/delivery50/index.vue
  43. 4 4
      src/packages/pc/views/footer/goods/position/components/transfer/index.vue
  44. 3 1
      src/packages/pc/views/footer/inout/agreement/index.vue
  45. 4 3
      src/packages/pc/views/footer/inout/in/confirm/index.vue
  46. 4 3
      src/packages/pc/views/footer/inout/out/add/index.vue
  47. 4 2
      src/packages/pc/views/footer/performance/components/contracted/index.vue
  48. 5 2
      src/packages/pc/views/footer/performance/components/delay/index.vue
  49. 3 1
      src/packages/pc/views/footer/performance/components/details/index.vue
  50. 5 2
      src/packages/pc/views/footer/performance/components/edit/index.vue
  51. 5 2
      src/packages/pc/views/footer/performance/components/manual/index.vue
  52. 4 2
      src/packages/pc/views/footer/presell/presellposition/deposit/index.vue
  53. 1 1
      src/packages/pc/views/footer/presell/presellposition/index.vue
  54. 4 3
      src/packages/pc/views/footer/presell/transferorder/cancel/index.vue
  55. 5 3
      src/packages/pc/views/footer/presell/transferposition/append/index.vue
  56. 5 5
      src/packages/pc/views/footer/presell/transferposition/index.vue
  57. 4 4
      src/packages/pc/views/footer/presell/transferposition/listing/index.vue
  58. 4 3
      src/packages/pc/views/footer/pricing/detail/components/transfer/index.vue
  59. 3 2
      src/packages/pc/views/footer/pricing/detail/index.vue
  60. 5 4
      src/packages/pc/views/footer/pricing/order/cancel/index.vue
  61. 4 2
      src/packages/pc/views/footer/pricing/order/index.vue
  62. 4 4
      src/packages/pc/views/footer/pricing/position/components/transfer/index.vue
  63. 1 1
      src/packages/pc/views/footer/pricing/position/index.vue
  64. 5 3
      src/packages/pc/views/footer/spot/order/cancel/index.vue
  65. 3 2
      src/packages/pc/views/footer/spot/order/index.vue
  66. 4 3
      src/packages/pc/views/footer/spot/position/components/listing/index.vue
  67. 4 2
      src/packages/pc/views/footer/spot/position/components/pickup/index.vue
  68. 4 4
      src/packages/pc/views/footer/spot/position/index.vue
  69. 4 2
      src/packages/pc/views/footer/swap/order/cancel/index.vue
  70. 3 2
      src/packages/pc/views/footer/swap/order/index.vue
  71. 5 5
      src/packages/pc/views/footer/swap/position/close/index.vue
  72. 1 1
      src/packages/pc/views/footer/swap/position/index.vue
  73. 6 5
      src/packages/pc/views/market/trade/goods/list/listing/index.vue
  74. 4 3
      src/packages/pc/views/market/trade/presell/ballot/detail/delisting/index.vue
  75. 5 2
      src/packages/pc/views/market/trade/presell/ballot/detail/index.vue
  76. 4 3
      src/packages/pc/views/market/trade/presell/bidding/detail/delisting/index.vue
  77. 5 2
      src/packages/pc/views/market/trade/presell/bidding/detail/index.vue
  78. 4 3
      src/packages/pc/views/market/trade/presell/transfer/listing/index.vue
  79. 6 5
      src/packages/pc/views/market/trade/pricing/list/listing/index.vue
  80. 4 3
      src/packages/pc/views/market/trade/spot/listing/index.vue
  81. 4 3
      src/packages/pc/views/market/trade/spot/order/delisting/index.vue
  82. 4 1
      src/packages/pc/views/market/trade/spot/order/detail/index.vue
  83. 6 5
      src/packages/pc/views/market/trade/spot/order/index.vue
  84. 4 3
      src/packages/pc/views/market/trade/spot/order/listing/index.vue
  85. 5 4
      src/packages/pc/views/market/trade/swap/detail/index.vue
  86. 5 3
      src/packages/pc/views/market/trade/swap/detail/listing/index.vue
  87. 5 3
      src/packages/pc/views/market/trade/swap/detail/order/delisting/index.vue
  88. 3 1
      src/packages/pc/views/market/trade/swap/detail/order/protocol/index.vue
  89. 5 2
      src/packages/pc/views/system/menu/components/edit/index.vue
  90. 4 3
      src/packages/pc/views/system/menu/index.vue
  91. 6 3
      src/packages/pc/views/system/role/components/auth/index.vue
  92. 1 0
      src/stores/modules/setting.ts
  93. 1 0
      src/types/model/common.d.ts

+ 19 - 0
public/locales/en-US.json

@@ -26,6 +26,9 @@
         "startdate": "StartDate",
         "enddate": "EndDate",
         "choice": "Please choice",
+        "choice1": "Please enter kewords",
+        "yes": "Yes",
+        "no": "No",
         "requestfailure": "Request failed, click Reload"
     },
     "tabbar": {
@@ -46,11 +49,15 @@
     },
     "operation": {
         "add": "Add",
+        "all": "All",
         "submit": "Submit",
+        "edit": "Edit",
         "confirm": "Confirm",
         "delete": "Delete",
         "save": "Save",
+        "order": "Order",
         "cancel": "Cancel",
+        "cancel1": "Cancel Quick",
         "cancel2": "Undo",
         "transfer": "Transfer",
         "delivery": "Delivery",
@@ -62,7 +69,9 @@
         "deposit": "Make Up",
         "deposit2": "Add On",
         "close": "Close",
+        "close1": "Close",
         "default": "Breach",
+        "default1": "Set Default",
         "default2": "ApplyBreach",
         "modify": "Modify",
         "modify2": "Modify Info",
@@ -73,6 +82,15 @@
         "search": "Search",
         "reset": "Reset",
         "disagree": "Disagree",
+        "next": "Next",
+        "upload": "Upload",
+        "chart": "Chart",
+        "restore": "Restore Settings",
+        "savesetting": "Save Settings",
+        "back": "Back",
+        "Withholding": "Withholding Apply",
+        "closeall": "Close All",
+        "openall": "Open All",
         "agree": "Agree"
     },
     "chart": {
@@ -1059,6 +1077,7 @@
         "remark": "Remark",
         "signstatus": "SignStatus",
         "signagain": "SignAgain",
+        "signagreement": "Sign Agreement",
         "cancel": "Cancel",
         "modify": "Modify",
         "addbanksign": "Add Bank Sign",

+ 19 - 0
public/locales/zh-CN.json

@@ -27,6 +27,9 @@
         "startdate": "开始日期",
         "enddate": "结束日期",
         "choice": "请选择",
+        "choice1": "请输入关键字",
+        "yes": "是",
+        "no": "否",
         "requestfailure": "请求失败,点击重新加载"
     },
     "tabbar": {
@@ -47,15 +50,19 @@
     },
     "operation": {
         "add": "新增",
+        "all": "全部出金",
         "submit": "提交",
+        "edit": "编辑",
         "confirm": "确认",
         "delete": "删除",
         "save": "保存",
         "cancel": "取消",
+        "cancel1": "快撤",
         "cancel2": "撤销",
         "transfer": "转让",
         "delivery": "交收",
         "listing": "挂牌",
+        "order": "订立",
         "listing1": "挂牌求购",
         "delisting": "摘牌",
         "pickup": "提货",
@@ -63,7 +70,9 @@
         "deposit": "补足定金",
         "deposit2": "追加定金",
         "close": "平仓",
+        "close1": "关闭",
         "default": "违约",
+        "default1": "设置默认",
         "default2": "申请违约",
         "modify": "修改",
         "modify2": "修改信息",
@@ -74,6 +83,15 @@
         "search": "查询",
         "reset": "重置",
         "disagree": "不同意",
+        "next": "下一步",
+        "upload": "上传",
+        "chart": "图表",
+        "restore": "恢复默认",
+        "savesetting": "保存设置",
+        "back": "返回",
+        "Withholding": "代扣签约申请",
+        "closeall": "全部收起",
+        "openall": "全部展开",
         "agree": "同意"
     },
     "chart": {
@@ -1063,6 +1081,7 @@
         "remark": "备注",
         "signstatus": "状态",
         "signagain": "重新签约",
+        "signagreement": "协议签署",
         "cancel": "解约",
         "modify": "修改",
         "addbanksign": "添加签约账户",

+ 5 - 2
src/packages/pc/components/base/table-filter/index.vue

@@ -4,12 +4,12 @@
       <slot name="before"></slot>
     </el-form-item>
     <el-form-item v-for="item in options.selectList" :key="item.key" :label="item.label">
-      <el-select effect="dark" :placeholder="item.placeholder ?? '请选择'" v-model="item.selectedValue" @change="item.onChange">
+      <el-select effect="dark" :placeholder="item.placeholder ?? t('common.choice')" v-model="item.selectedValue" @change="item.onChange">
         <el-option v-for="option in item.options" :key="option.value" :value="option.value" :label="option.label" />
       </el-select>
     </el-form-item>
     <el-form-item v-for="(item, i) in options.inputList" :key="i" :label="item.label">
-      <el-input :type="item.type" :placeholder="item.placeholder ?? '请输入关键字'" v-model="item.value" />
+      <el-input :type="item.type" :placeholder="item.placeholder ?? t('common.choice1')" v-model="item.value" />
     </el-form-item>
     <el-form-item v-if="$slots.after">
       <slot name="after"></slot>
@@ -28,6 +28,9 @@
 <script lang="ts" setup>
 import { PropType } from 'vue'
 import { FilterOptions } from '@/hooks/datatable/types'
+import { i18n } from '@/stores'
+
+const { t } = i18n.global
 
 defineProps({
   options: {

+ 4 - 1
src/packages/pc/components/base/upload/index.vue

@@ -9,7 +9,7 @@
                 </div>
             </template>
             <slot>
-                <el-button type="primary">上传</el-button>
+                <el-button type="primary">{{ t('operation.upload') }}</el-button>
             </slot>
         </el-upload>
         <el-image-viewer :url-list="imageList.map((e) => e.filePath)" :initial-index="imageIndex" @close="onViewerClose"
@@ -22,6 +22,9 @@ import { shallowRef, shallowReactive, computed, PropType, toRaw, onMounted } fro
 import { ElMessage, UploadProps, UploadRawFile, UploadFile, UploadFiles, UploadInstance, genFileId } from 'element-plus'
 import { getFileUrl } from '@/filters'
 import service from '@/services'
+import { i18n } from '@/stores'
+
+const { t } = i18n.global
 
 const props = defineProps({
     fileTypes: {

+ 4 - 3
src/packages/pc/components/layouts/header/components/avater/index.vue

@@ -8,8 +8,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">保存</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.save') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -19,7 +19,7 @@ import { ref, reactive } from 'vue'
 import type { FormInstance, FormRules } from 'element-plus'
 import { ElMessage } from 'element-plus'
 import { updateUserHeadUrl } from '@/services/api/user'
-import { useLoginStore, useUserStore } from '@/stores'
+import { useLoginStore, useUserStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppUpload from '@pc/components/base/upload/index.vue'
 
@@ -28,6 +28,7 @@ const refresh = ref(false)
 const formRef = ref<FormInstance>()
 const loginStore = useLoginStore()
 const userStore = useUserStore()
+const { t } = i18n.global
 
 const formData = reactive<Model.UserHeadUrlReq>({
     userid: loginStore.userId, // 用户ID

+ 12 - 11
src/packages/pc/components/layouts/header/components/cancel/index.vue

@@ -1,20 +1,20 @@
 <!-- 系统公告 -->
 <template>
-    <app-drawer title="注销服务" :width="600" v-model:show="show" :loading="loading" :refresh="refresh">
-        <h4>账户注销后不能再使用该系统,如果账户有余额需要人工审核才能注销,确定要注销账户吗?</h4>
+    <app-drawer :title="t('user.cancel.title')" :width="600" v-model:show="show" :loading="loading" :refresh="refresh">
+        <h4>{{ t('user.cancel.submitmessage') }}</h4>
         <section class="logoff__details">
-            <h4>为保证您的账号安全,在提交注销申请时,需同时满足以下条件:</h4>
+            <h4>{{ t('user.cancel.tips_1') }}</h4>
             <dl>
-                <dt>1. 账号财产已结清。</dt>
-                <dd>没有资产、欠款、未结清的资金和现货。</dd>
-                <dt>2. 账号处于安全状态。</dt>
-                <dd>账号处于正常使用状态,无被盗风险。</dd>
-                <dt>3. 账号无任何纠纷。</dt>
+                <dt>{{ t('user.cancel.tips_2') }}</dt>
+                <dd>{{ t('user.cancel.tips_3') }}</dd>
+                <dt>{{ t('user.cancel.tips_4') }}</dt>
+                <dd>{{ t('user.cancel.tips_5') }}</dd>
+                <dt>{{ t('user.cancel.tips_6') }}</dt>
             </dl>
         </section>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="danger" @click="onSubmit">确认注销</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="danger" @click="onSubmit">{{ t('user.cancel.confirmcancellation') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -23,10 +23,11 @@
 import { ref } from 'vue'
 import { ElMessage } from 'element-plus'
 import { useAccountCancellation } from '@/business/user'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const { formSubmit, loading } = useAccountCancellation()
-
+const { t } = i18n.global
 const show = ref(true)
 const refresh = ref(false)
 

+ 5 - 3
src/packages/pc/components/layouts/header/components/modify/index.vue

@@ -18,8 +18,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -29,15 +29,17 @@ import { ref } from 'vue'
 import type { FormInstance, FormRules } from 'element-plus'
 import { ElMessage } from 'element-plus'
 import { useAccountPassword } from '@/business/user'
-import eventBus from '@/services/bus'
+import { i18n } from '@/stores'
 import { validateRules } from '@/constants/regex'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
+import eventBus from '@/services/bus'
 
 const { formData, loading, formSubmit } = useAccountPassword(1)
 const show = ref(true)
 const refresh = ref(false)
 const formRef = ref<FormInstance>()
 const Confirmpassword = ref('')
+const { t } = i18n.global
 
 const formRules: FormRules = {
     OldPwd: [{ required: true, message: '请输入原密码', trigger: 'blur' }],

+ 6 - 5
src/packages/pc/components/layouts/header/components/report/index.vue

@@ -9,7 +9,7 @@
                 </el-select>
                 <el-date-picker effect="dark" :type="pickerType" placeholder="查询日期" :value-format="pickerFormat" :clearable="false"
                     v-model="cycletime" />
-                <el-button type="primary" :loading="loading" @click="requestData">查询</el-button>
+                <el-button type="primary" :loading="loading" @click="requestData">{{ t('operation.search') }}</el-button>
             </div>
         </div>
         <app-table-details title="账户信息" :data="currentAccount" :label-width="180" :cell-props="accountDetailProps"
@@ -41,10 +41,10 @@
             <app-table :data="tradedetails" v-model:columns="tradeDetailsTableColumns" />
         </fieldset>
         <template #footer>
-            <el-button type="info" @click="show = false" v-if="!!reportAgree[agreeIndex]?.isAgree">关闭</el-button>
+            <el-button type="info" @click="show = false" v-if="!!reportAgree[agreeIndex]?.isAgree">{{ t('operation.close1') }}</el-button>
             <template v-else>
-                <el-button type="info" @click="onDisAgree">不同意</el-button>
-                <el-button type="primary" @click="onAgree">同意</el-button>
+                <el-button type="info" @click="onDisAgree">{{ t('operation.disagree') }}</el-button>
+                <el-button type="primary" @click="onAgree">{{ t('operation.agree') }}</el-button>
             </template>
         </template>
     </app-drawer>
@@ -53,7 +53,7 @@
 <script lang="ts" setup>
 import { ref, shallowRef, computed, onMounted } from 'vue'
 import eventBus from '@/services/bus'
-import { useLoginStore, useAccountStore, useUserStore } from '@/stores'
+import { useLoginStore, useAccountStore, useUserStore, i18n  } from '@/stores'
 import { formatDate } from '@/filters'
 import { localData } from '@/stores/storage'
 import { queryMarketRun } from '@/services/api/market'
@@ -68,6 +68,7 @@ const loading = ref(false)
 const reporttype = ref(1)
 /// 查询时间
 const cycletime = shallowRef('')
+const { t } = i18n.global
 
 const pickerType = computed(() => reporttype.value === 1 ? 'date' : 'month')
 const pickerFormat = computed(() => reporttype.value === 1 ? 'YYYYMMDD' : 'YYYYMM')

+ 4 - 3
src/packages/pc/components/layouts/header/components/setting/index.vue

@@ -54,8 +54,8 @@
             </el-form>
         </fieldset>
         <template #footer>
-            <el-button type="info" @click="resetSettings">恢复默认</el-button>
-            <el-button type="primary" @click="updateSettings">保存设置</el-button>
+            <el-button type="info" @click="resetSettings">{{ t('operation.restore') }}</el-button>
+            <el-button type="primary" @click="updateSettings">{{ t('operation.savesetting') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -64,13 +64,14 @@
 import { ref } from 'vue'
 import { ElMessageBox, FormInstance } from 'element-plus'
 import { getBuyOrSellList } from '@/constants/order'
-import { useSettingStore } from '@/stores'
+import { useSettingStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const settingStore = useSettingStore()
 const formRef = ref<FormInstance>()
 const show = ref(true)
 const formData = ref({ ...settingStore.userSetting })
+const { t } = i18n.global
 
 const onCancel = () => {
     show.value = false

+ 2 - 2
src/packages/pc/components/modules/delivery/index.vue

@@ -47,8 +47,8 @@
                     :goodunit="deliveryRelation?.enumdicname ?? ''"></slot>
             </div>
             <div class="app-delivery__btnbar">
-                <el-button type="info" @click="onCancel(false)">取消</el-button>
-                <el-button type="primary" @click="onSubmit">交收</el-button>
+                <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+                <el-button type="primary" @click="onSubmit">{{ t('operation.delivery') }}</el-button>
             </div>
         </template>
     </app-drawer>

+ 4 - 2
src/packages/pc/components/modules/goods-detail/index.vue

@@ -21,8 +21,8 @@
                         </template>
                         <slot name="headerRight"></slot>
                         <template v-if="![50, 99, 10].includes(quote?.trademode ?? 0)">
-                            <el-button type="primary" @click="active = false" v-if="active">买卖大厅</el-button>
-                            <el-button type="primary" @click="active = true" v-else>图表</el-button>
+                            <el-button type="primary" @click="active = false" v-if="active">{{ t('quote.buysellhall') }}</el-button>
+                            <el-button type="primary" @click="active = true" v-else>{{ t('operation.chart') }}</el-button>
                         </template>
                     </div>
                 </div>
@@ -40,6 +40,8 @@ import { getRunStatusName } from '@/constants/market'
 import { useRequest } from '@/hooks/request'
 import { queryMarketRun } from '@/services/api/market'
 import { useFuturesStore } from '@/stores'
+import { i18n } from '@/stores'
+const { t } = i18n.global
 
 const Chart = defineAsyncComponent(() => import('./chart/index.vue'))
 const Order = defineAsyncComponent(() => import('./order/index.vue'))

+ 7 - 4
src/packages/pc/components/modules/goods-detail/order/delisting/index.vue

@@ -24,19 +24,19 @@
         <template #footer>
             <template v-if="selectedRow.buyorsell === BuyOrSell.Buy">
                 <el-button type="primary" :disabled="!formData.OrderQty || formData.OrderQty > selectedRow.orderqty"
-                    @click="onSubmit(EBuildType.BUILDTYPE_OPEN)" v-if="quote?.tradeproperty === 1">订立卖出</el-button>
+                    @click="onSubmit(EBuildType.BUILDTYPE_OPEN)" v-if="quote?.tradeproperty === 1">{{ t('quote.ordersell') }}</el-button>
                 <el-button type="primary" :disabled="!formData.OrderQty || !buyQty || (formData.OrderQty > buyQty)"
                     @click="onSubmit(EBuildType.BUILDTYPE_CLOSE)">
-                    <span>转让卖出</span>
+                    <span>{{ t('quote.transfersell') }}</span>
                     <span v-if="buyQty">(≤{{ buyQty }})</span>
                 </el-button>
             </template>
             <template v-if="selectedRow.buyorsell === BuyOrSell.Sell">
                 <el-button type="primary" :disabled="!formData.OrderQty || formData.OrderQty > selectedRow.orderqty"
-                    @click="onSubmit(EBuildType.BUILDTYPE_OPEN)">订立买入</el-button>
+                    @click="onSubmit(EBuildType.BUILDTYPE_OPEN)">{{ t('quote.orderbuy') }}</el-button>
                 <el-button type="primary" :disabled="!formData.OrderQty || !sellQty || (formData.OrderQty > sellQty)"
                     @click="onSubmit(EBuildType.BUILDTYPE_CLOSE)" v-if="quote?.tradeproperty === 1">
-                    <span>转让买入</span>
+                    <span>{{ t('quote.transferbuy') }}</span>
                     <span v-if="sellQty">(≤{{ sellQty }})</span>
                 </el-button>
             </template>
@@ -53,6 +53,9 @@ import { BuyOrSell } from '@/constants/order'
 import { useOrder } from '@/business/trade'
 import { useFuturesStore, usePositionStore } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
+
+const { t } = i18n.global
 
 const props = defineProps({
     selectedRow: {

+ 2 - 2
src/packages/pc/components/modules/goods-detail/order/index.vue

@@ -7,7 +7,7 @@
             <!-- <template #expand="{ row, index }">
                 <div class="buttonbar" v-if="index === 0">
                     <el-button type="primary" size="small" :disabled="row.userid === loginStore.userId"
-                        @click="showComponent('delisting', row)">摘牌</el-button>
+                        @click="showComponent('delisting', row)">{{ t('operation.delisting') }}</el-button>
                 </div>
             </template> -->
         </app-table>
@@ -17,7 +17,7 @@
             <!-- <template #expand="{ row, index }">
                 <div class="buttonbar" v-if="index === 0">
                     <el-button type="primary" size="small" :disabled="row.userid === loginStore.userId"
-                        @click="showComponent('delisting', row)">摘牌</el-button>
+                        @click="showComponent('delisting', row)">{{ t('operation.delisting') }}</el-button>
                 </div>
             </template> -->
         </app-table>

+ 5 - 2
src/packages/pc/views/account/address/components/default/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">该地址是否设为默认?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -14,6 +14,9 @@ import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { useAddressForm } from '@/business/user/address'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
+
+const { t } = i18n.global
 
 const props = defineProps({
     selectedRow: {

+ 5 - 2
src/packages/pc/views/account/address/components/delete/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">是否删除该地址?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.cancel') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -13,8 +13,11 @@
 import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { useAddressForm } from '@/business/user/address'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     selectedRow: {
         type: Object as PropType<Model.UserReceiveInfoRsp>,

+ 5 - 2
src/packages/pc/views/account/address/components/edit/index.vue

@@ -27,8 +27,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -38,9 +38,12 @@ import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
 import { useAddressForm } from '@/business/user/address'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppRegion from '@pc/components/base/region/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     selectedRow: {
         type: Object as PropType<Model.UserReceiveInfoRsp>,

+ 6 - 4
src/packages/pc/views/account/address/index.vue

@@ -15,15 +15,15 @@
         </template>
         <!-- 是否默认 -->
         <template #isdefault="{ value }">
-            {{ value ? '是' : '否' }}
+            {{ value ? t('common.yes') : t('common.no') }}
         </template>
         <!-- 操作 -->
         <template #expand="{ row }">
             <div class="buttonbar">
-                <el-button type="primary" size="small" @click="openComponent('edit')">编辑</el-button>
+                <el-button type="primary" size="small" @click="openComponent('edit')">{{ t('operation.edit') }}</el-button>
                 <el-button type="warning" size="small" v-if="row?.isdefault === 0"
-                    @click="openComponent('default')">设置默认</el-button>
-                <el-button type="danger" size="small" @click="openComponent('delete')">删除</el-button>
+                    @click="openComponent('default')">{{ t('operation.default1') }}</el-button>
+                <el-button type="danger" size="small" @click="openComponent('delete')">{{ t('operation.delete') }}</el-button>
             </div>
         </template>
     </app-table>
@@ -39,6 +39,7 @@ import { getCertificateTypeName } from '@/constants/certificate'
 import { useComponent } from '@/hooks/component'
 import { useDataFilter } from '@/hooks/datatable'
 import { useComposeTable } from '@pc/components/base/table'
+import { i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppFilter from '@pc/components/base/table-filter/index.vue'
 
@@ -51,6 +52,7 @@ const componentMap = new Map<string, unknown>([
 const { rowKey, expandKeys, selectedRow, rowClick } = useComposeTable<Model.UserReceiveInfoRsp>({ rowKey: 'autoid' })
 const { filterOptons } = useDataFilter<Model.UserReceiveInfoReq>()
 const { loading, dataList, run } = useRequest(queryUserReceiveInfo)
+const { t } = i18n.global
 
 const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {
     run()

+ 5 - 2
src/packages/pc/views/account/holddeposit/components/deposit/index.vue

@@ -22,8 +22,8 @@
             <span class="tips" style="color: #b8c3cd;">节假日以通知、公告为准,非交易日请勿操作!</span>
         </fieldset>
         <template #footer>
-            <el-button type="info" @click="onCancel">取消</el-button>
-            <el-button type="primary" @click="formSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="formSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -35,8 +35,11 @@ import { formatDecimal } from '@/filters'
 import { useDoYJF_WithholdInApply, useDoCusBankExtendConfigs } from '@/business/bank'
 import { getServerTime } from '@/services/api/common'
 import moment from 'moment'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const { formData, onSubmit, loading, bankaccountno } = useDoYJF_WithholdInApply()
 const show = ref(true)
 const formRef = ref<FormInstance>()

+ 4 - 3
src/packages/pc/views/account/holdsign/components/cancel/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">确认要解约吗?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -13,10 +13,11 @@
 import { ref } from 'vue'
 import { ElMessage } from 'element-plus'
 import { useDoYJF_WithholdSignOut } from '@/business/bank'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const { onSubmit, loading } = useDoYJF_WithholdSignOut()
-
+const { t } = i18n.global
 const show = ref(true)
 const refresh = ref(false)
 

+ 5 - 2
src/packages/pc/views/account/holdsign/components/sign/index.vue

@@ -26,8 +26,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="formSubmit">下一步</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="formSubmit">{{ t('operation.next') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -39,6 +39,9 @@ import { useDoYJFGetWithholdSignInSMSVCode, useDoYJF_WithholdSignInSMS } from '@
 import { validateRules } from '@/constants/regex'
 import { useDateRange } from '@/hooks/date-picker'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
+
+const { t } = i18n.global
 
 const { formData, onSubmit, loading, bankaccountno } = useDoYJFGetWithholdSignInSMSVCode()
 const { formData: signFormData, onSubmit: onSignSubmit } = useDoYJF_WithholdSignInSMS()

+ 5 - 2
src/packages/pc/views/account/holdsign/index.vue

@@ -5,7 +5,7 @@
         <template #headerLeft>
             <el-button type="primary" size="small"
                 v-if="[SignStatus.Unsigned, SignStatus.Rescinded].includes(signStatus)"
-                @click="showComponent('sign')">代扣签约申请</el-button>
+                @click="showComponent('sign')">{{ t('operation.Withholding') }}</el-button>
         </template>
         <!-- 状态 -->
         <template #accountsignstatus="{ value }">
@@ -15,7 +15,7 @@
         <template #expand="{ row }">
             <div class="buttonbar">
                 <el-button v-if="row.accountsignstatus === SignStatus.Signed" type="danger"
-                    size="small" @click="openComponent('cancel')">解约</el-button>
+                    size="small" @click="openComponent('cancel')">{{ t('banksign.cancel') }}</el-button>
             </div>
         </template>
     </app-table>
@@ -31,8 +31,11 @@ import { useRequest } from '@/hooks/request'
 import { queryGetGtwithholdsigninfo, queryBankAccountSign } from '@/services/api/bank'
 import { getSignStatusName, SignStatus } from '@/constants/bank'
 import { ElMessage } from 'element-plus'
+import { i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 
+const { t } = i18n.global
+
 const componentMap = new Map<string, unknown>([
     ['cancel', defineAsyncComponent(() => import('./components/cancel/index.vue'))],
     ['sign', defineAsyncComponent(() => import('./components/sign/index.vue'))],

+ 5 - 2
src/packages/pc/views/account/receipt/components/delete/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">是否删除该发票?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -13,8 +13,11 @@
 import { shallowRef, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { useInvoiceForm } from '@/business/user/invoice'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     selectedRow: {
         type: Object as PropType<Model.WrUserReceiptInfoRsp>,

+ 5 - 2
src/packages/pc/views/account/receipt/components/edit/index.vue

@@ -31,8 +31,8 @@
             </template>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -42,8 +42,11 @@ import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
 import { useInvoiceForm } from '@/business/user/invoice'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     selectedRow: {
         type: Object as PropType<Model.WrUserReceiptInfoRsp>,

+ 4 - 2
src/packages/pc/views/account/receipt/index.vue

@@ -12,8 +12,8 @@
         <!-- 操作 -->
         <template #expand>
             <div class="buttonbar">
-                <el-button type="primary" size="small" @click="openComponent('edit')">编辑</el-button>
-                <el-button type="danger" size="small" @click="openComponent('delete')">删除</el-button>
+                <el-button type="primary" size="small" @click="openComponent('edit')">{{ t('operation.edit') }}</el-button>
+                <el-button type="danger" size="small" @click="openComponent('delete')">{{ t('operation.delete') }}</el-button>
             </div>
         </template>
     </app-table>
@@ -29,6 +29,7 @@ import { useDataFilter } from '@/hooks/datatable'
 import { useComposeTable } from '@pc/components/base/table'
 import { useRequest } from '@/hooks/request'
 import { queryWrUserReceiptInfo } from '@/services/api/user'
+import { i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppFilter from '@pc/components/base/table-filter/index.vue'
 
@@ -40,6 +41,7 @@ const componentMap = new Map<string, unknown>([
 const { rowKey, expandKeys, rowClick, selectedRow } = useComposeTable<Model.WrUserReceiptInfoRsp>({ rowKey: 'autoid' })
 const { filterOptons } = useDataFilter<Model.WrUserReceiptInfoReq>()
 const { loading, dataList, run } = useRequest(queryWrUserReceiptInfo)
+const { t } = i18n.global
 
 const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {
     run()

+ 5 - 2
src/packages/pc/views/account/sign/components/cancel/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">确认要解约吗?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -13,8 +13,11 @@
 import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { useDoCancelBankSign } from '@/business/bank'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     selectedRow: {
         type: Object as PropType<Model.BankAccountSignRsp>,

+ 3 - 2
src/packages/pc/views/account/sign/components/certification-aq/index.vue

@@ -3,18 +3,19 @@
     <app-drawer title="实名认证" v-model:show="show" :refresh="refresh">
         <div class="g-text-message">请前往手机App进行实名认证</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>  
 
 <script lang="ts" setup>
 import { ref } from 'vue'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const show = ref(true)
 const refresh = ref(false)
-
+const { t } = i18n.global
 
 const onCancel = (isRefresh = false) => {
     show.value = false

+ 5 - 2
src/packages/pc/views/account/sign/components/certification/index.vue

@@ -24,8 +24,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>  
@@ -37,9 +37,12 @@ import { getCertificateTypeList } from "@/constants/account"
 import { addAuthReq } from '@/business/user'
 import { validateRules } from '@/constants/regex'
 import { getIdCardAge } from '@/filters'
+import { i18n } from '@/stores'
 import AppUpload from '@pc/components/base/upload/index.vue'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const show = ref(true)
 const refresh = ref(false)
 const formRef = ref<FormInstance>()

+ 4 - 2
src/packages/pc/views/account/sign/components/protocol/index.vue

@@ -3,19 +3,21 @@
     <app-drawer title="协议签署" v-model:show="show" :refresh="refresh">
         <div class="g-text-message">请前往手机App进行协议签署操作!</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>  
 
 <script lang="ts" setup>
 import { ref } from 'vue'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const show = ref(true)
 const refresh = ref(false)
 
-
 const onCancel = (isRefresh = false) => {
     show.value = false
     refresh.value = isRefresh

+ 6 - 5
src/packages/pc/views/account/sign/components/sign/index.vue

@@ -61,23 +61,24 @@
             </template>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="formSubmit">{{ bankInfo?.signstatus != undefined ? '修改' : '提交' }}</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="formSubmit">{{ bankInfo?.signstatus != undefined ? t('operation.modify') : t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
 
 <script lang="ts" setup>
-import { ref, computed } from 'vue'
+import { ref, computed, shallowRef } from 'vue'
 import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { validateRules } from '@/constants/regex'
 import { useRequest } from '@/hooks/request'
 import { queryBankBranChnumInfo } from '@/services/api/bank'
 import { useDoBankSign, useDoCusBankExtendConfigs, useT2bSMSVerificationCode } from '@/business/bank'
-import { useUserStore } from '@/stores'
+import { useUserStore, i18n } from '@/stores'
 import service from '@/services'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
-import { shallowRef } from 'vue'
+
+const { t } = i18n.global
 
 const { formData, onSubmit, banklist, bankInfo, loading, system_1010 } = useDoBankSign()
 const { configs } = useDoCusBankExtendConfigs(1)

+ 9 - 8
src/packages/pc/views/account/sign/index.vue

@@ -5,13 +5,13 @@
         <template #headerLeft>
             <template v-if="((hasAQAuth && hasSignContract) || !hasAQAuth) && [AuthStatus.Certified, AuthStatus.Submitted].includes(authStatus) && ![SignStatus.Audit, SignStatus.Signing, SignStatus.Signed].includes(signStatus)">
                 <el-button type="primary" size="small"
-                    @click="showComponent('sign')">添加签约账户</el-button>
+                    @click="showComponent('sign')">{{ t('banksign.addbanksign') }}</el-button>
             </template>
             <template v-if="[AuthStatus.Certified, AuthStatus.Submitted].includes(authStatus) && (hasAQAuth && !hasSignContract) ">
-                <el-button type="primary" size="small" @click="showComponent('protocol')">协议签署</el-button>
+                <el-button type="primary" size="small" @click="showComponent('protocol')">{{ t('banksign.signagreement') }}</el-button>
             </template>
             <el-button type="warning" size="small" v-if="authStatus === AuthStatus.Uncertified"
-                @click="openComponent('certification-aq')">实名认证</el-button>
+                @click="openComponent('certification-aq')">{{ t('user.authentication.title') }}</el-button>
         </template>
         <!-- 证件类型 -->
         <template #cardtype="{ value }">
@@ -25,10 +25,10 @@
         <template #expand="{ row }">
             <div class="buttonbar">
                 <el-button v-if="row.signstatus === SignStatus.Signed && cusBank?.canrelease === 1" type="danger"
-                    size="small" @click="openComponent('cancel')">解约</el-button>
+                    size="small" @click="openComponent('cancel')">{{ t('banksign.cancel') }}</el-button>
                 <el-button
                     v-if="[SignStatus.Unsigned, SignStatus.Refuse, SignStatus.Rescinded].includes(row.signstatus) || (row.signstatus === SignStatus.Signed && cusBank?.canmodifysigninfo === 1)"
-                    type="primary" size="small" @click="beforeShowComponent(row)">修改</el-button>
+                    type="primary" size="small" @click="beforeShowComponent(row)">{{ t('operation.modify') }}</el-button>
             </div>
         </template>
     </app-table>
@@ -47,12 +47,12 @@ import { getSignStatusName, SignStatus } from '@/constants/bank'
 import { getCertificateTypeCodeName } from '@/constants/account'
 import { queryUserAccount, queryUsereSignRecords } from '@/services/api/account'
 import { AuthStatus } from '@/constants/account'
-import { useUserStore } from '@/stores'
+import { useUserStore, i18n } from '@/stores'
 import { ElMessage } from 'element-plus'
-import AppTable from '@pc/components/base/table/index.vue'
-import service from '@/services'
 import { queryMdUserSwapProtocol } from '@/services/api/swap'
 import { getUserId, getMemberUserId } from '@/services/methods/user'
+import AppTable from '@pc/components/base/table/index.vue'
+import service from '@/services'
 
 const componentMap = new Map<string, unknown>([
     ['cancel', defineAsyncComponent(() => import('./components/cancel/index.vue'))],
@@ -67,6 +67,7 @@ const authStatus = shallowRef(AuthStatus.Certified) // 实名认证状态
 const signStatus = shallowRef(SignStatus.Unsigned)
 const cusBank = shallowRef<Model.CusBankSignBankRsp>()
 const oem = service.getConfig('oem')
+const { t } = i18n.global
 
 const { rowKey, expandKeys, rowClick, selectedRow } = useComposeTable<Model.BankAccountSignRsp>({ rowKey: 'applyexchticket' })
 const { loading, dataList, run } = useRequest(queryBankAccountSign, {

+ 4 - 2
src/packages/pc/views/auth/forget/index.vue

@@ -21,8 +21,8 @@
                 :rules="formRules.confirmpassword" />
         </el-form-item>
         <el-form-item>
-            <el-button type="primary" @click="formSubmit">重置密码</el-button>
-            <el-button @click="onClose" style="margin-left: auto;">返回</el-button>
+            <el-button type="primary" @click="formSubmit">{{ t('operation.back')}}</el-button>
+            <el-button @click="onClose" style="margin-left: auto;">{{ t('user.forget.resetpwd')}}</el-button>
         </el-form-item>
     </el-form>
 </template>
@@ -34,6 +34,7 @@ import { getEncryptMobile } from '@/filters'
 import { validateRules } from '@/constants/regex'
 import { queryLoginId } from '@/services/api/account'
 import { resetPassword, sendResetVerifyCode } from '@/services/api/common'
+import { i18n } from '@/stores'
 import cryptojs from 'crypto-js'
 import service from '@/services'
 
@@ -41,6 +42,7 @@ const emit = defineEmits(['close'])
 const formRef = ref<FormInstance>()
 const seconds = ref(60) //倒计时剩余时间
 const isCountdown = ref(false) // 是否正在倒计时
+const { t } = i18n.global
 
 // 表单数据
 const formData = reactive<Model.ResetPasswordReq & { confirmpassword: string }>({

+ 3 - 2
src/packages/pc/views/auth/login/index.vue

@@ -36,7 +36,7 @@
       </div>
       <template #footer>
         <span class="dialog-footer">
-          <el-button type="primary" @click="isRegister = false">关闭</el-button>
+          <el-button type="primary" @click="isRegister = false">{{ t('operation.close1') }}</el-button>
         </span>
       </template>
     </el-dialog>
@@ -50,7 +50,7 @@ import { useRoute, useRouter } from 'vue-router'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
 import { useLogin } from '@/business/login'
-import { useGlobalStore, useMenuStore } from '@/stores'
+import { useGlobalStore, useMenuStore, i18n } from '@/stores'
 import service from '@/services'
 import SignLayout from '../components/layout/index.vue'
 import Forget from "../forget/index.vue"
@@ -73,6 +73,7 @@ const rloading = shallowRef(false)
 const showPasswordMidify = shallowRef(false) // 显示修改密码
 const showSliderVerify = shallowRef(true) // 验证滑块组件重载
 const sliderVerifyStatus = shallowRef(false) // 滑块验证状态
+const { t } = i18n.global
 
 const formRules: FormRules = {
   userName: [

+ 4 - 3
src/packages/pc/views/footer/capital/summary/deposit/index.vue

@@ -46,8 +46,8 @@
             <span class="el-form-tips" v-html="msg_324" />
         </fieldset>
         <template #footer>
-            <el-button type="info" @click="onCancel">取消</el-button>
-            <el-button v-if="cusBank?.caninamount === 1" type="primary" @click="doDepositWarning">提交</el-button>
+            <el-button type="info" @click="onCancel">{{ t('operation.cancel') }}</el-button>
+            <el-button v-if="cusBank?.caninamount === 1" type="primary" @click="doDepositWarning">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -57,7 +57,7 @@ import { ref, PropType } from 'vue'
 import { ElMessage, FormInstance, FormRules, ElMessageBox } from 'element-plus'
 import { useDoDeposit, useDoCusBankExtendConfigs } from '@/business/bank'
 import { getServerTime } from '@/services/api/common'
-import { useUserStore } from '@/stores'
+import { useUserStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppUpload from '@pc/components/base/upload/index.vue'
 import moment from 'moment'
@@ -76,6 +76,7 @@ const formRef = ref<FormInstance>()
 const userStore = useUserStore()
 const certificate_photo_url = ref('')
 const { getSystemParamValue } = useUserStore()
+const { t } = i18n.global
 
 const msg_320 = getSystemParamValue('320')
 const msg_321 = getSystemParamValue('321')

+ 5 - 4
src/packages/pc/views/footer/capital/summary/withdraw/index.vue

@@ -12,7 +12,7 @@
             <el-form-item label="出金金额" prop="Amount">
                 <div class="el-form-item--col">
                     <el-input-number placeholder="请输入出金金额" :precision="2" v-model="formData.Amount" />
-                    <el-button type="danger" @click="formData.Amount = fund.AvailableOutMoney">全部出金</el-button>
+                    <el-button type="danger" @click="formData.Amount = fund.AvailableOutMoney">{{ t('operation.all') }}</el-button>
                 </div>
             </el-form-item>
             <template v-for="(item, index) in configs" :key="index">
@@ -39,8 +39,8 @@
             <span class="el-form-tips" v-html="msg" />
         </fieldset>
         <template #footer>
-            <el-button type="info" @click="onCancel">取消</el-button>
-            <el-button v-if="cusBank?.canoutamount === 1" type="primary" @click="doWithDrawWarning">提交</el-button>
+            <el-button type="info" @click="onCancel">{{ t('operation.cancel') }}</el-button>
+            <el-button v-if="cusBank?.canoutamount === 1" type="primary" @click="doWithDrawWarning">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -50,7 +50,7 @@ import { ref } from 'vue'
 import { ElMessage, FormInstance, FormRules, ElMessageBox } from 'element-plus'
 import { useDoWithdraw, useAccountFundInfo, useDoCusBankExtendConfigs } from '@/business/bank'
 import { getServerTime } from '@/services/api/common'
-import { useAccountStore, useUserStore } from '@/stores'
+import { useAccountStore, useUserStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import moment from 'moment'
 
@@ -65,6 +65,7 @@ const { fund } = useAccountFundInfo()
 const { getSystemParamValue } = useUserStore()
 const msg = getSystemParamValue('302')
 const msg_317 = getSystemParamValue('317')
+const { t } = i18n.global
 
 const formRules: FormRules = {
     Amount: [{

+ 6 - 3
src/packages/pc/views/footer/goods/delivery/cancel/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">是否撤销该交收单?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -13,8 +13,11 @@
 import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { handleRequestBigNumber } from '@/filters'
-import AppDrawer from '@pc/components/base/drawer/index.vue'
 import { useCanceofflineDeliveryApplyCancelOrderlOrder } from '@/business/trade'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
+
+const { t } = i18n.global
 
 const props = defineProps({
     selectedRow: {

+ 1 - 1
src/packages/pc/views/footer/goods/delivery/index.vue

@@ -14,7 +14,7 @@
         <template #expand="{ row }">
             <div class="buttonbar">
                 <el-button type="danger" v-if="row.orderstatus === 1" size="small"
-                    @click="showComponent('cancel', row)">撤销</el-button>
+                    @click="showComponent('cancel', row)">{{ t('operation.cancel2') }}</el-button>
             </div>
         </template>
         <template #footer>

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

@@ -38,8 +38,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCloseSumit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCloseSumit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -50,7 +50,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, usePositionStore } from '@/stores'
+import { useFuturesStore, usePositionStore, i18n } from '@/stores'
 import { EBuildType, EDelistingType, EListingSelectType, EPriceMode, EValidType } from '@/constants/client'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
@@ -64,6 +64,7 @@ const props = defineProps({
 const futuresStore = useFuturesStore()
 const positionStore = usePositionStore()
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodscode)
+const { t } = i18n.global
 
 // 可用数量
 const maxQty = computed(() => {

+ 3 - 2
src/packages/pc/views/footer/goods/detail/index.vue

@@ -8,7 +8,7 @@
         <!-- 操作 -->
         <template #operate="{ row }">
             <div class="buttonbar" v-if="row.trademode === 50">
-                <el-button type="danger" size="small" @click="showComponent('transfer', row)">转让</el-button>
+                <el-button type="danger" size="small" @click="showComponent('transfer', row)">{{ t('operation.transfer') }}</el-button>
             </div>
             <span v-else>--</span>
         </template>
@@ -29,7 +29,7 @@ import { useRequest } from '@/hooks/request'
 import { useComponent } from '@/hooks/component'
 import { useLocalPagination } from '@/hooks/pagination'
 import { queryTradeHolderDetail } from '@/services/api/order'
-import { useTableColumnsStore } from '@/stores'
+import { useTableColumnsStore, i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 import eventBus from '@/services/bus'
 
@@ -41,6 +41,7 @@ const { getTableColumns } = useTableColumnsStore()
 const { tableList, showLoadMore, initTableData, loadMore } = useLocalPagination<Model.TradeHolderDetailRsp>()
 const selectedRow = shallowRef<Model.TradeHolderDetailRsp>()
 const tableColumns = shallowRef<Model.TableColumn[]>([])
+const { t } = i18n.global
 
 const { run } = useRequest(queryTradeHolderDetail, {
     params: {

+ 4 - 3
src/packages/pc/views/footer/goods/order/cancel/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh" :style="styles">
         <div class="g-text-message">确认要撤销吗?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -14,7 +14,7 @@ import { ref, PropType, onMounted } from 'vue'
 import { ElMessage, ElLoading } from 'element-plus'
 import { handleRequestBigNumber } from '@/filters'
 import { useCancelOrder } from '@/business/trade'
-import { useSettingStore } from '@/stores'
+import { useSettingStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({
@@ -34,6 +34,7 @@ const { cancelSubmit, formData } = useCancelOrder()
 const loading = ref(false)
 const show = ref(true)
 const refresh = ref(false)
+const { t } = i18n.global
 
 const onCancel = (isRefresh = false) => {
     show.value = false

+ 5 - 2
src/packages/pc/views/footer/goods/order/clear/index.vue

@@ -22,8 +22,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -34,8 +34,11 @@ import { FormInstance, FormRules, ElMessage } from 'element-plus'
 import { handleRequestBigNumber } from '@/filters'
 import { BuyOrSell, getBuyOrSellList } from '@/constants/order'
 import { useCancelOrder } from '@/business/trade'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     dataList: {
         type: Object as PropType<Model.TradeOrderDetailRsp[]>,

+ 2 - 2
src/packages/pc/views/footer/goods/order/index.vue

@@ -5,8 +5,8 @@
         <template #headerRight>
             <div class="buttonbar">
                 <el-button type="primary" size="small" :disabled="selectedRows.length === 0"
-                    @click="openComponent('cancel')">撤销</el-button>
-                <el-button type="primary" size="small" @click="openComponent('clear')">快撤</el-button>
+                    @click="openComponent('cancel')">{{ t('operation.cancel2') }}</el-button>
+                <el-button type="primary" size="small" @click="openComponent('clear')">{{ t('operation.cancel1') }}</el-button>
             </div>
         </template>
         <!-- 方向 -->

+ 5 - 2
src/packages/pc/views/footer/goods/position/components/delivery50/index.vue

@@ -55,8 +55,8 @@
         </el-form>
         <app-address v-model:show="showAddress" @change="onAddressChange" />
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">交收</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.delivery') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -67,9 +67,12 @@ import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { useOfflineDelivery } from '@/business/trade'
 import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
 import { formatDecimal } from '@/filters'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppAddress from '@pc/components/modules/address/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     selectedRow: {
         type: Object as PropType<Model.TradePositionRsp & {

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

@@ -46,8 +46,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCloseSumit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCloseSumit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -58,7 +58,7 @@ import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { useOrder } from '@/business/trade'
 import { formatDecimal, parsePercent } from '@/filters'
 import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
-import { useFuturesStore } from '@/stores'
+import { useFuturesStore, i18n } from '@/stores'
 import { EBuildType, EDelistingType, EListingSelectType, EOrderOperateType, EPriceMode, EValidType } from '@/constants/client'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
@@ -74,7 +74,7 @@ const props = defineProps({
 
 const futuresStore = useFuturesStore()
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodscode)
-
+const { t } = i18n.global
 const { formSubmit, formData, loading } = useOrder()
 const show = ref(true)
 const refresh = ref(false)

+ 3 - 1
src/packages/pc/views/footer/inout/agreement/index.vue

@@ -2,15 +2,17 @@
     <app-drawer title="持仓转让协议" :width="640" v-model:show="show">
         <iframe class="iframe" :src="'./html/cczrxy.htm'" />
         <template #footer>
-            <el-button type="info" @click="onCancel">关闭</el-button>
+            <el-button type="info" @click="onCancel">{{ t('operation.close1') }}</el-button>
         </template>
     </app-drawer>
 </template>
 
 <script lang="ts" setup>
 import { shallowRef } from 'vue'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
 const show = shallowRef(true)
 
 const onCancel = () => {

+ 4 - 3
src/packages/pc/views/footer/inout/in/confirm/index.vue

@@ -11,8 +11,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">确定</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.confirm') }}</el-button>
             <component ref="componentRef" :is="componentMap.get(componentId)" @closed="closeComponent"
                 v-if="componentId" />
         </template>
@@ -25,7 +25,7 @@ import { FormInstance, FormRules, ElMessage } from 'element-plus'
 import { useComponent } from '@/hooks/component'
 import { handleRequestBigNumber } from '@/filters'
 import { holderTransferConfirm } from '@/services/api/trade'
-import { useLoginStore } from '@/stores'
+import { useLoginStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -44,6 +44,7 @@ const formRef = shallowRef<FormInstance>()
 const loading = shallowRef(false)
 const show = shallowRef(true)
 const refresh = shallowRef(false)
+const { t } = i18n.global
 
 // 表单对象
 const formData = reactive({

+ 4 - 3
src/packages/pc/views/footer/inout/out/add/index.vue

@@ -42,8 +42,8 @@
             </el-form>
         </div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
             <component ref="componentRef" :is="componentMap.get(componentId)" @closed="closeComponent"
                 v-if="componentId" />
         </template>
@@ -58,7 +58,7 @@ import { BuyOrSell } from '@/constants/order'
 import { useRequest } from '@/hooks/request'
 import { holderTransferApply } from '@/services/api/trade'
 import { getUserInfo } from '@/services/api/user'
-import { useLoginStore, usePositionStore } from '@/stores'
+import { useLoginStore, usePositionStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -72,6 +72,7 @@ const loading = shallowRef(false)
 const show = shallowRef(true)
 const refresh = shallowRef(false)
 const isAgree = shallowRef(false) // 是否同意协议
+const { t } = i18n.global
 
 const { componentRef, componentId, openComponent, closeComponent } = useComponent()
 

+ 4 - 2
src/packages/pc/views/footer/performance/components/contracted/index.vue

@@ -16,8 +16,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -27,6 +27,7 @@ import { ref, PropType } from 'vue'
 import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleNoneValue, handleNumberValue, handleRequestBigNumber } from '@/filters'
 import { usePerformanceContractedApply } from '@/business/performance'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppUpload from '@pc/components/base/upload/index.vue'
 
@@ -41,6 +42,7 @@ const { loading, formData, formSubmit } = usePerformanceContractedApply(props.se
 const show = ref(true)
 const refresh = ref(false)
 const formRef = ref<FormInstance>()
+const { t } = i18n.global
 
 const formRules: FormRules = {
     Attachment: [{

+ 5 - 2
src/packages/pc/views/footer/performance/components/delay/index.vue

@@ -16,8 +16,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -27,8 +27,11 @@ import { ref, PropType } from 'vue'
 import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleNoneValue, handleNumberValue, handleRequestBigNumber } from '@/filters'
 import { usePerformanceDelayApply } from '@/business/performance'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     selectedRow: {
         type: Object as PropType<Model.PerformancePlanRsp>,

+ 3 - 1
src/packages/pc/views/footer/performance/components/details/index.vue

@@ -72,7 +72,7 @@
             </template>
         </app-table>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -89,6 +89,7 @@ import { PropType, computed, ref, shallowRef } from 'vue'
 import { formatDecimal, handleNoneValue } from '@/filters'
 import { getPerformanceStepStatusName } from '@/constants/order'
 import { useRequest } from '@/hooks/request'
+import { i18n } from '@/stores'
 import { queryWrPerformancePlanStep } from '@/services/api/performance'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppTableDetails from '@pc/components/base/table-details/index.vue'
@@ -101,6 +102,7 @@ const props = defineProps({
     }
 })
 
+const { t } = i18n.global
 const show = ref(true)
 const refresh = ref(false)
 

+ 5 - 2
src/packages/pc/views/footer/performance/components/edit/index.vue

@@ -48,8 +48,8 @@
             </template>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -62,8 +62,11 @@ import { getReceiptTypeName } from '@/constants/receipt'
 import { useRequest } from '@/hooks/request'
 import { queryUserReceiveInfo, queryWrUserReceiptInfo } from '@/services/api/user'
 import { usePerformanceModifyContact } from '@/business/performance'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     code: String,
     selectedRow: {

+ 5 - 2
src/packages/pc/views/footer/performance/components/manual/index.vue

@@ -10,8 +10,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -21,8 +21,11 @@ import { ref, PropType } from 'vue'
 import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleNumberValue, handleRequestBigNumber } from '@/filters'
 import { usePerformanceManualConfirm } from '@/business/performance'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
+const { t } = i18n.global
+
 const props = defineProps({
     selectedRow: {
         type: Object as PropType<Model.PerformancePlanRsp>,

+ 4 - 2
src/packages/pc/views/footer/presell/presellposition/deposit/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">是否补足转让定金?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onMakeUpDeposit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onMakeUpDeposit">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -14,6 +14,7 @@ import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { handleRequestBigNumber } from '@/filters'
 import { makeUpDeposit } from '@/services/api/trade'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({
@@ -26,6 +27,7 @@ const props = defineProps({
 const show = ref(true)
 const refresh = ref(false)
 const loading = ref(false)
+const { t } = i18n.global
 
 const onCancel = (isRefresh = false) => {
     show.value = false

+ 1 - 1
src/packages/pc/views/footer/presell/presellposition/index.vue

@@ -25,7 +25,7 @@
         <!-- 展开行 -->
         <template #expand="{ row }">
             <div class="buttonbar">
-                <el-button type="danger" v-if="row.paystatus === PayStatus.UnPay" size="small" @click="showComponent('deposit', row)">补足定金</el-button>
+                <el-button type="danger" v-if="row.paystatus === PayStatus.UnPay" size="small" @click="showComponent('deposit', row)">{{ t('operation.deposit') }}</el-button>
             </div>
         </template>
         <template #footer>

+ 4 - 3
src/packages/pc/views/footer/presell/transferorder/cancel/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">是否撤销该委托单?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -15,6 +15,7 @@ import { ElMessage } from 'element-plus'
 import { handleRequestBigNumber } from '@/filters'
 import { EOperateType } from '@/constants/client'
 import { useCancelOrder } from '@/business/trade'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({
@@ -25,7 +26,7 @@ const props = defineProps({
 })
 
 const { cancelSubmit, formData, loading } = useCancelOrder()
-
+const { t } = i18n.global
 const show = ref(true)
 const refresh = ref(false)
 

+ 5 - 3
src/packages/pc/views/footer/presell/transferposition/append/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :refresh="refresh">
         <div class="g-text-message">是否追加未付转让定金?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onMakeUpDeposit">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onMakeUpDeposit">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -12,8 +12,9 @@
 <script lang="ts" setup>
 import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
-import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
 import { holdAppendDeposit } from '@/services/api/trade'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({
     selectedRow: {
@@ -22,6 +23,7 @@ const props = defineProps({
     }
 })
 
+const { t } = i18n.global
 const show = ref(true)
 const refresh = ref(false)
 

+ 5 - 5
src/packages/pc/views/footer/presell/transferposition/index.vue

@@ -26,11 +26,11 @@
         <template #expand="{ row }">
             <div class="buttonbar">
                 <el-button type="danger" v-if="row.paystatus === PayStatus.UnPay" size="small"
-                    @click="showComponent('append', row)">追加定金</el-button>
+                    @click="showComponent('append', row)">{{ t('operation.deposit2') }}</el-button>
                 <el-button type="danger" v-if="row.paystatus === 2" size="small"
-                    @click="showComponent('listing', row)">转让</el-button>
+                    @click="showComponent('listing', row)">{{ t('operation.transfer') }}</el-button>
                 <el-button type="primary" v-if="row.paystatus === 2" size="small"
-                    @click="showComponent('delivery', row)">交收</el-button>
+                    @click="showComponent('delivery', row)">{{ t('operation.delivery') }}</el-button>
             </div>
         </template>
         <template #footer>
@@ -48,7 +48,7 @@ import { queryMineTradePositionExs } from '@/services/api/transfer'
 import { getPayStatusName, PayStatus } from '@/constants/order'
 import { useComponent } from '@/hooks/component'
 import { useComposeTable } from '@pc/components/base/table'
-import { useTableColumnsStore } from '@/stores'
+import { useTableColumnsStore, i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -59,7 +59,7 @@ const componentMap = new Map<string, unknown>([
 
 const { getTableColumns } = useTableColumnsStore()
 const tableColumns = shallowRef<Model.TableColumn[]>([])
-
+const { t } = i18n.global
 const { loading, dataList, run } = useRequest(queryMineTradePositionExs, {})
 
 const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {

+ 4 - 4
src/packages/pc/views/footer/presell/transferposition/listing/index.vue

@@ -27,8 +27,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -38,7 +38,7 @@ import { ref, PropType, computed } from 'vue'
 import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleNumberValue } from '@/filters'
 import { useOrder } from '@/business/trade'
-import { useFuturesStore } from '@/stores'
+import { useFuturesStore, i18n } from '@/stores'
 import { BuyOrSell } from '@/constants/order'
 import { EPriceMode, EValidType, EListingSelectType, EBuildType } from '@/constants/client'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
@@ -56,7 +56,7 @@ const { getGoodsQuote } = useFuturesStore()
 const enableqty = computed(() => props.selectedRow.buycurpositionqty - props.selectedRow.buyfrozenqty)
 /// 对应的行情信息
 const quote = getGoodsQuote(props.selectedRow.goodscode)
-
+const { t } = i18n.global
 const { formData, formSubmit, loading } = useOrder()
 const show = ref(true)
 const refresh = ref(false)

+ 4 - 3
src/packages/pc/views/footer/pricing/detail/components/transfer/index.vue

@@ -38,8 +38,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCloseSumit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCloseSumit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -50,7 +50,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, usePositionStore } from '@/stores'
+import { useFuturesStore, usePositionStore, i18n } from '@/stores'
 import { EBuildType, EDelistingType, EListingSelectType, EPriceMode, EValidType } from '@/constants/client'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
@@ -64,6 +64,7 @@ const props = defineProps({
 const futuresStore = useFuturesStore()
 const positionStore = usePositionStore()
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodscode)
+const { t } = i18n.global
 
 // 可用数量
 const maxQty = computed(() => {

+ 3 - 2
src/packages/pc/views/footer/pricing/detail/index.vue

@@ -7,7 +7,7 @@
         </template>
         <!-- 操作 -->
         <template #operate="{ row }">
-            <el-button type="danger" size="small" @click="showComponent('transfer', row)">转让</el-button>
+            <el-button type="danger" size="small" @click="showComponent('transfer', row)">{{ t('operation.transfer') }}</el-button>
         </template>
         <template #append v-if="showLoadMore">
             <el-button size="small" plain @click="loadMore">{{ t('common.loadMore' )}}</el-button>
@@ -26,7 +26,7 @@ import { useRequest } from '@/hooks/request'
 import { useComponent } from '@/hooks/component'
 import { useLocalPagination } from '@/hooks/pagination'
 import { queryTradeHolderDetail } from '@/services/api/order'
-import { useTableColumnsStore } from '@/stores'
+import { useTableColumnsStore, i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 import eventBus from '@/services/bus'
 
@@ -38,6 +38,7 @@ const { getTableColumns } = useTableColumnsStore()
 const { tableList, showLoadMore, initTableData, loadMore } = useLocalPagination<Model.TradeHolderDetailRsp>()
 const selectedRow = shallowRef<Model.TradeHolderDetailRsp>()
 const tableColumns = shallowRef<Model.TableColumn[]>([])
+const { t } = i18n.global
 
 const { run } = useRequest(queryTradeHolderDetail, {
     params: {

+ 5 - 4
src/packages/pc/views/footer/pricing/order/cancel/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">确认要撤销吗?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.cancel') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -12,9 +12,10 @@
 <script lang="ts" setup>
 import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
-import AppDrawer from '@pc/components/base/drawer/index.vue'
 import { useCancelOrder } from '@/business/trade'
 import { handleRequestBigNumber } from '@/filters'
+import { i18n } from '@/stores'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({
     selectedRow: {
@@ -24,7 +25,7 @@ const props = defineProps({
 })
 
 const { cancelSubmit, formData, loading } = useCancelOrder()
-
+const { t } = i18n.global
 const show = ref(true)
 const refresh = ref(false)
 

+ 4 - 2
src/packages/pc/views/footer/pricing/order/index.vue

@@ -26,7 +26,7 @@
         <template #expand="{ row }">
             <div class="buttonbar">
                 <el-button type="danger" v-if="[3, 7].includes(row.orderstatus)" size="small"
-                    @click="showComponent('cancel', row)">撤销</el-button>
+                    @click="showComponent('cancel', row)">{{ t('operation.cancel1') }}</el-button>
             </div>
         </template>
         <template #footer>
@@ -44,9 +44,11 @@ import { queryTradeOrderDetail } from '@/services/api/order'
 import { useComponent } from '@/hooks/component'
 import { getWRTradeOrderStatusName, getBuyOrSellName } from '@/constants/order'
 import { useComposeTable } from '@pc/components/base/table'
-import { useTableColumnsStore } from '@/stores'
+import { useTableColumnsStore, i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 
+const { t } = i18n.global
+
 const componentMap = new Map<string, unknown>([
     ['cancel', defineAsyncComponent(() => import('./cancel/index.vue'))],
 ])

+ 4 - 4
src/packages/pc/views/footer/pricing/position/components/transfer/index.vue

@@ -46,8 +46,8 @@
             </el-form-item>
         </el-form> 
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCloseSumit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCloseSumit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -58,7 +58,7 @@ import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { useOrder } from '@/business/trade'
 import { formatDecimal, parsePercent } from '@/filters'
 import { getBuyOrSellName, BuyOrSell } from '@/constants/order'
-import { useFuturesStore } from '@/stores'
+import { useFuturesStore, i18n } from '@/stores'
 import { EBuildType, EDelistingType, EListingSelectType, EOrderOperateType, EPriceMode, EValidType } from '@/constants/client'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
@@ -77,7 +77,7 @@ const quote = futuresStore.getGoodsQuote(props.position.goodscode)
 const { decimalplace = 0 } = quote.value ?? {}
 const quoteminunit = quote.value?.quoteminunit ?? 1
 const decimalvalue = Math.pow(10.0, -decimalplace)*(quoteminunit == 0 ? 1 : quoteminunit)
-
+const { t } = i18n.global
 const { formSubmit, formData, loading } = useOrder()
 const show = ref(true)
 const refresh = ref(false)

+ 1 - 1
src/packages/pc/views/footer/pricing/position/index.vue

@@ -26,7 +26,7 @@
         </template>
         <!-- 操作 -->
         <template #operate="{ row }">
-            <el-button type="danger" size="small" @click="showComponent('transfer', row)">转让</el-button>
+            <el-button type="danger" size="small" @click="showComponent('transfer', row)">{{ t('operation.transfer') }}</el-button>
         </template>
         <template #footer>
             <component ref="componentRef" v-bind="{ position: selectedRow }" :is="componentMap.get(componentId)"

+ 5 - 3
src/packages/pc/views/footer/spot/order/cancel/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">确认要撤销吗?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -13,8 +13,9 @@
 import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import { handleRequestBigNumber } from '@/filters'
-import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
 import { useWrListingCancelOrder } from '@/business/trade'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({
     selectedRow: {
@@ -27,6 +28,7 @@ const { cancelSubmit, formData, loading } = useWrListingCancelOrder()
 
 const show = ref(true)
 const refresh = ref(false)
+const { t } = i18n.global
 
 const onCancel = (isRefresh = false) => {
     show.value = false

+ 3 - 2
src/packages/pc/views/footer/spot/order/index.vue

@@ -22,7 +22,7 @@
         <template #expand="{ row }">
             <div class="buttonbar">
                 <el-button type="danger" v-if="[3, 7].includes(row.wrtradeorderstatus)" size="small"
-                    @click="showComponent('cancel', row)">撤销</el-button>
+                    @click="showComponent('cancel', row)">{{ t('operation.cancel') }}</el-button>
             </div>
         </template>
         <template #footer>
@@ -40,7 +40,7 @@ import { queryWrOrderDetail } from '@/services/api/order'
 import { useComponent } from '@/hooks/component'
 import { getWrTradeTypeName, getWRTradeOrderStatusName, getWrPriceTypeName } from '@/constants/order'
 import { useComposeTable } from '@pc/components/base/table'
-import { useTableColumnsStore } from '@/stores'
+import { useTableColumnsStore, i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -49,6 +49,7 @@ const componentMap = new Map<string, unknown>([
 
 const { getTableColumns } = useTableColumnsStore()
 const tableColumns = shallowRef<Model.TableColumn[]>([])
+const { t } = i18n.global
 
 const { loading, dataList, run } = useRequest(queryWrOrderDetail, {
     params: {

+ 4 - 3
src/packages/pc/views/footer/spot/position/components/listing/index.vue

@@ -28,8 +28,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="formSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="formSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -40,6 +40,7 @@ import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleRequestBigNumber } from '@/filters'
 import { useHdWROrder } from '@/business/trade'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
 import Performance from '@pc/components/modules/performance/index.vue'
 
 const props = defineProps({
@@ -50,7 +51,7 @@ const props = defineProps({
     code: String
 })
 
-
+const { t } = i18n.global
 const { formData, listingSubmit, loading } = useHdWROrder()
 const show = ref(true)
 const refresh = ref(false)

+ 4 - 2
src/packages/pc/views/footer/spot/position/components/pickup/index.vue

@@ -76,8 +76,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提货</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.pickup') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -90,6 +90,7 @@ import { useRequest } from '@/hooks/request'
 import { getAppointmentModelOutList } from '@/constants/order'
 import { queryUserReceiveInfo, queryWrUserReceiptInfo } from '@/services/api/user'
 import { getReceiptTypeName } from '@/constants/receipt'
+import { i18n } from '@/stores'
 import AppRegion from '@pc/components/base/region/index.vue'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
@@ -108,6 +109,7 @@ const show = ref(true)
 const refresh = ref(false)
 const formRef = ref<FormInstance>()
 const regionName = shallowRef('') // 地区名称
+const { t } = i18n.global
 
 // 表单验证规则
 const formRules: FormRules = {

+ 4 - 4
src/packages/pc/views/footer/spot/position/index.vue

@@ -10,8 +10,8 @@
         <template #expand="{ row }">
             <div class="buttonbar">
                 <el-button type="primary" size="small" @click="showComponent('listing', row)"
-                    v-if="hasTradeMode17">挂牌</el-button>
-                <el-button type="danger" size="small" @click="showComponent('pickup', row)">提货</el-button>
+                    v-if="hasTradeMode17">{{ t('operation.listing') }}</el-button>
+                <el-button type="danger" size="small" @click="showComponent('pickup', row)">{{ t('operation.pickup') }}</el-button>
             </div>
         </template>
         <template #footer>
@@ -28,7 +28,7 @@ import { useRequest } from '@/hooks/request'
 import { useComponent } from '@/hooks/component'
 import { queryHoldLB } from '@/services/api/order'
 import { useComposeTable } from '@pc/components/base/table'
-import { useUserStore, useTableColumnsStore } from '@/stores'
+import { useUserStore, useTableColumnsStore, i18n } from '@/stores'
 import eventBus from '@/services/bus'
 import AppTable from '@pc/components/base/table/index.vue'
 
@@ -41,7 +41,7 @@ const userStore = useUserStore()
 const hasTradeMode17 = userStore.hasMarket('TRADEMODE_SPOT_WRTRADE')
 const { getTableColumns } = useTableColumnsStore()
 const tableColumns = shallowRef<Model.TableColumn[]>([])
-
+const { t } = i18n.global
 const { loading, dataList, run } = useRequest(queryHoldLB)
 
 const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {

+ 4 - 2
src/packages/pc/views/footer/swap/order/cancel/index.vue

@@ -3,8 +3,8 @@
     <app-drawer title="提示" v-model:show="show" :loading="loading" :refresh="refresh">
         <div class="g-text-message">确认要撤销吗?</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onCancelSumit()">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onCancelSumit()">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -13,6 +13,7 @@
 import { ref, PropType } from 'vue'
 import { ElMessage } from 'element-plus'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
 import { useCancelOrder } from '@/business/trade'
 import { handleRequestBigNumber } from '@/filters'
 
@@ -27,6 +28,7 @@ const { cancelSubmit, formData, loading } = useCancelOrder()
 
 const show = ref(true)
 const refresh = ref(false)
+const { t } = i18n.global
 
 const onCancel = (isRefresh = false) => {
     show.value = false

+ 3 - 2
src/packages/pc/views/footer/swap/order/index.vue

@@ -26,7 +26,7 @@
         <template #expand="{ row }">
             <div class="buttonbar">
                 <el-button type="danger" v-if="[3, 7].includes(row.orderstatus)" size="small"
-                    @click="showComponent('cancel', row)">撤销</el-button>
+                    @click="showComponent('cancel', row)">{{ t('operation.cancel2') }}</el-button>
             </div>
         </template>
         <template #footer>
@@ -44,7 +44,7 @@ import { queryTradeOrderDetail } from '@/services/api/order'
 import { useComponent } from '@/hooks/component'
 import { getWRTradeOrderStatusName, getBuyOrSellName } from '@/constants/order'
 import { useComposeTable } from '@pc/components/base/table'
-import { useTableColumnsStore } from '@/stores'
+import { useTableColumnsStore, i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -53,6 +53,7 @@ const componentMap = new Map<string, unknown>([
 
 const { getTableColumns } = useTableColumnsStore()
 const tableColumns = shallowRef<Model.TableColumn[]>([])
+const { t } = i18n.global
 
 const { loading, dataList, run } = useRequest(queryTradeOrderDetail, {
     params: {

+ 5 - 5
src/packages/pc/views/footer/swap/position/close/index.vue

@@ -27,13 +27,13 @@
             <!-- 操作 -->
             <template #operate="{ row }">
                 <div class="buttonbar" v-if="useStore.userType === 5 && [1, 3].includes(quote?.goodstradetype ?? 0)">
-                    <el-button type="danger" size="small" @click="onCloseSubmit(row)">平仓</el-button>
+                    <el-button type="danger" size="small" @click="onCloseSubmit(row)">{{ t('operation.close') }}</el-button>
                 </div>
                 <span v-else>--</span>
             </template>
         </app-table>
         <template #footer>
-            <el-button type="info" @click="show = false">取消</el-button>
+            <el-button type="info" @click="show = false">{{ t('operation.cancel') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -48,10 +48,10 @@ import { queryTradeHolderDetail } from '@/services/api/order'
 import { formatDate, formatDecimal, handlePriceColor, handleRequestBigNumber, round } from '@/filters'
 import { getBuyOrSellName } from '@/constants/order'
 import { ETradeMode } from '@/constants/client'
+import { useFuturesStore, useUserStore, i18n } from '@/stores'
+import { BuyOrSell } from '@/constants/order'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppTable from '@pc/components/base/table/index.vue'
-import { useFuturesStore, useUserStore } from '@/stores'
-import { BuyOrSell } from '@/constants/order'
 
 const props = defineProps({
     position: {
@@ -61,7 +61,7 @@ const props = defineProps({
 })
 
 const { rowKey, expandKeys, rowClick } = useComposeTable<Model.TradeHolderDetailRsp>({ rowKey: 'tradeid' })
-
+const { t } = i18n.global
 const { holderCloseSubmit, formData } = useHolderClose()
 const show = ref(true)
 const refresh = ref(false)

+ 1 - 1
src/packages/pc/views/footer/swap/position/index.vue

@@ -27,7 +27,7 @@
         <!-- 展开行 -->
         <template #expand="{ row }">
             <div class="buttonbar">
-                <el-button type="danger" size="small" @click="showComponent('close', row)">明细</el-button>
+                <el-button type="danger" size="small" @click="showComponent('close', row)">{{ t('operation.details') }}</el-button>
             </div>
         </template>
         <template #footer>

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

@@ -58,21 +58,21 @@
                     <template v-if="formData.BuyOrSell === BuyOrSell.Buy">
                         <el-button ref="submitRef" type="danger" :disabled="!selectedGoodsId || !formData.OrderQty"
                             @click="onBeforeSubmit(EBuildType.BUILDTYPE_OPEN)"
-                            v-if="!selectedGoods?.iscannotbuy">订立</el-button>
+                            v-if="!selectedGoods?.iscannotbuy">{{ t('quote.orderbuy') }}</el-button>
                         <el-button type="primary"
                             :disabled="!formData.OrderQty || !sellQty || (formData.OrderQty > sellQty)"
                             @click="onBeforeSubmit(EBuildType.BUILDTYPE_CLOSE)" v-if="!isTrademode16">
-                            <span>转让</span>
+                            <span>{{ t('quote.transferbuy') }}</span>
                             <span v-if="sellQty">(≤{{ sellQty }})</span>
                         </el-button>
                     </template>
                     <template v-if="formData.BuyOrSell === BuyOrSell.Sell">
                         <el-button ref="submitRef" type="success" :disabled="!selectedGoodsId || !formData.OrderQty"
                             @click="onBeforeSubmit(EBuildType.BUILDTYPE_OPEN)"
-                            v-if="!isTrademode16 && !selectedGoods?.iscannotsell">订立</el-button>
+                            v-if="!isTrademode16 && !selectedGoods?.iscannotsell">{{ t('quote.ordersell') }}</el-button>
                         <el-button type="primary" :disabled="!formData.OrderQty || !buyQty || (formData.OrderQty > buyQty)"
                             @click="onBeforeSubmit(EBuildType.BUILDTYPE_CLOSE)">
-                            <span>转让</span>
+                            <span>{{ t('quote.transfersell') }}</span>
                             <span v-if="buyQty">(≤{{ buyQty }})</span>
                         </el-button>
                     </template>
@@ -88,7 +88,7 @@ import { ElMessage, ElMessageBox, FormInstance, FormRules } from 'element-plus'
 import { EPriceMode, EListingSelectType, EDelistingType, EBuildType, EValidType, EOrderOperateType } from '@/constants/client'
 import { BuyOrSell, getBuyOrSellList } from '@/constants/order'
 import { useOrder } from '@/business/trade'
-import { useFuturesStore, useSettingStore, useAccountStore, usePositionStore } from '@/stores'
+import { useFuturesStore, useSettingStore, useAccountStore, usePositionStore, i18n } from '@/stores'
 import Forex from '@pc/components/modules/quote/forex/index.vue'
 import Icon from '@pc/components/base/icon/index.vue'
 
@@ -102,6 +102,7 @@ const positionStore = usePositionStore()
 const formRef = shallowRef<FormInstance>()
 const qtyStepList = [1, 10, 100] // 数量步长列表
 const qtyStep = shallowRef(qtyStepList[0]) // 数量步长
+const { t } = i18n.global
 
 const priceRef = shallowRef()
 const qtyRef = shallowRef()

+ 4 - 3
src/packages/pc/views/market/trade/presell/ballot/detail/delisting/index.vue

@@ -20,8 +20,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -32,7 +32,7 @@ import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleRequestBigNumber } from '@/filters'
 import { BuyOrSell } from '@/constants/order'
 import { useOrder } from '@/business/trade'
-import { useAccountStore } from '@/stores'
+import { useAccountStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import { EPriceMode, EValidType } from '@/constants/client'
 
@@ -48,6 +48,7 @@ const accountStore = useAccountStore()
 const show = shallowRef(true)
 const refresh = shallowRef(false)
 const formRef = shallowRef<FormInstance>()
+const { t } = i18n.global
 
 // 预售定金
 const deposit = computed(() => {

+ 5 - 2
src/packages/pc/views/market/trade/presell/ballot/detail/index.vue

@@ -18,8 +18,8 @@
             </template>
         </div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">关闭</el-button>
-            <el-button type="primary" @click="onSubmit" v-if="selectedRow.presalestatus === 2">我要认购</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.close1') }}</el-button>
+            <el-button type="primary" @click="onSubmit" v-if="selectedRow.presalestatus === 2">{{ t('quote.ballot.subscribe') }}</el-button>
             <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
                 @closed="closeComponent" v-if="componentId" />
         </template>
@@ -30,6 +30,7 @@
 import { shallowRef, computed, PropType, defineAsyncComponent } from 'vue'
 import { getFileUrl, parsePercent } from '@/filters'
 import { useComponent } from '@/hooks/component'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppTableDetails from '@pc/components/base/table-details/index.vue'
 
@@ -46,6 +47,8 @@ const props = defineProps({
     }
 })
 
+const { t } = i18n.global
+
 const detailProps = [
     { prop: 'refprice', label: '发行价:' },
     { prop: 'sellname', label: '销售方:' },

+ 4 - 3
src/packages/pc/views/market/trade/presell/bidding/detail/delisting/index.vue

@@ -21,8 +21,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -33,7 +33,7 @@ import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleRequestBigNumber, parsePercent } from '@/filters'
 import { BuyOrSell } from '@/constants/order'
 import { useOrder } from '@/business/trade'
-import { useAccountStore, useFuturesStore } from '@/stores'
+import { useAccountStore, useFuturesStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import { EPriceMode, EValidType } from '@/constants/client'
 
@@ -50,6 +50,7 @@ const futuresStore = useFuturesStore()
 const show = shallowRef(true)
 const refresh = shallowRef(false)
 const formRef = shallowRef<FormInstance>()
+const { t } = i18n.global
 
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodsid)
 

+ 5 - 2
src/packages/pc/views/market/trade/presell/bidding/detail/index.vue

@@ -18,8 +18,8 @@
             </template>
         </div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">关闭</el-button>
-            <el-button type="primary" @click="onSubmit" v-if="selectedRow.presalestatus === 2">我要出价</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.close1') }}</el-button>
+            <el-button type="primary" @click="onSubmit" v-if="selectedRow.presalestatus === 2">{{ t('quote.presale.buy') }}</el-button>
             <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
                 @closed="closeComponent" v-if="componentId" />
         </template>
@@ -30,9 +30,12 @@
 import { shallowRef, computed, PropType, defineAsyncComponent } from 'vue'
 import { getFileUrl, parsePercent } from '@/filters'
 import { useComponent } from '@/hooks/component'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppTableDetails from '@pc/components/base/table-details/index.vue'
 
+const { t } = i18n.global
+
 const componentMap = new Map<string, unknown>([
     ['delisting', defineAsyncComponent(() => import('./delisting/index.vue'))], // 摘牌
 ])

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

@@ -48,11 +48,11 @@
                 <el-form-item class="footer-btnbar">
                     <el-button ref="submitRef" type="danger" :loading="loading" :disabled="!selectedGoodsId"
                         @click="onBeforeSubmit"
-                        v-if="formData.BuyOrSell === BuyOrSell.Buy && !selectedGoods?.iscannotbuy">订立</el-button>
+                        v-if="formData.BuyOrSell === BuyOrSell.Buy && !selectedGoods?.iscannotbuy">{{ t('operation.order') }}</el-button>
                     <el-button ref="submitRef" type="primary" :loading="loading"
                         :disabled="!formData.OrderQty || !enableqty || (formData.OrderQty > enableqty)"
                         @click="onBeforeSubmit" v-if="formData.BuyOrSell === BuyOrSell.Sell">
-                        <span>转让</span>
+                        <span>{{ t('operation.transfer') }}</span>
                         <span v-if="enableqty">(≤{{ enableqty }})</span>
                     </el-button>
                 </el-form-item>
@@ -69,7 +69,7 @@ import { BuyOrSell, getBuyOrSellList } from '@/constants/order'
 import { useRequest } from '@/hooks/request'
 import { queryMineTradePositionExs } from '@/services/api/transfer'
 import { useOrder } from '@/business/trade'
-import { useFuturesStore, useSettingStore } from '@/stores'
+import { useFuturesStore, useSettingStore, i18n } from '@/stores'
 import Forex from '@pc/components/modules/quote/forex/index.vue'
 import Icon from '@pc/components/base/icon/index.vue'
 
@@ -80,6 +80,7 @@ const { formData, loading, formSubmit } = useOrder()
 const formRef = shallowRef<FormInstance>()
 const qtyStepList = [1, 10, 100] // 数量步长列表
 const qtyStep = shallowRef(qtyStepList[0]) // 数量步长
+const { t } = i18n.global
 
 const priceRef = shallowRef()
 const qtyRef = shallowRef()

+ 6 - 5
src/packages/pc/views/market/trade/pricing/list/listing/index.vue

@@ -57,21 +57,21 @@
                     <template v-if="formData.BuyOrSell === BuyOrSell.Buy">
                         <el-button ref="submitRef" type="danger" :disabled="!selectedGoodsId || !formData.OrderQty"
                             @click="onBeforeSubmit(BuildType.Open)"
-                            v-if="!selectedGoods?.iscannotbuy">订立</el-button>
+                            v-if="!selectedGoods?.iscannotbuy">{{ t('operation.order') }}</el-button>
                         <el-button type="primary"
                             :disabled="!formData.OrderQty || !sellQty || (formData.OrderQty > sellQty)"
                             @click="onBeforeSubmit(BuildType.Close)" v-if="!isTrademode16">
-                            <span>转让</span>
+                            <span>{{ t('operation.transfer') }}</span>
                             <span v-if="sellQty">(≤{{ sellQty }})</span>
                         </el-button>
                     </template>
                     <template v-if="formData.BuyOrSell === BuyOrSell.Sell">
                         <el-button ref="submitRef" type="success" :disabled="!selectedGoodsId || !formData.OrderQty"
                             @click="onBeforeSubmit(BuildType.Open)"
-                            v-if="!isTrademode16 && !selectedGoods?.iscannotsell">订立</el-button>
+                            v-if="!isTrademode16 && !selectedGoods?.iscannotsell">{{ t('operation.order') }}</el-button>
                         <el-button type="primary" :disabled="!formData.OrderQty || !buyQty || (formData.OrderQty > buyQty)"
                             @click="onBeforeSubmit(BuildType.Close)">
-                            <span>转让</span>
+                            <span>{{ t('operation.transfer') }}</span>
                             <span v-if="buyQty">(≤{{ buyQty }})</span>
                         </el-button>
                     </template>
@@ -86,7 +86,7 @@ import { shallowRef, computed, watch, onMounted } from 'vue'
 import { ElMessage, ElMessageBox, FormInstance, FormRules } from 'element-plus'
 import { BuyOrSell, getBuyOrSellList, getPricemode2List, PriceMode, BuildType } from '@/constants/order'
 import { useOrder } from '@/business/trade'
-import { useFuturesStore, useSettingStore, useAccountStore, usePositionStore } from '@/stores'
+import { useFuturesStore, useSettingStore, useAccountStore, usePositionStore, i18n } from '@/stores'
 import Forex from '@pc/components/modules/quote/forex/index.vue'
 
 const accountStore = useAccountStore()
@@ -99,6 +99,7 @@ const positionStore = usePositionStore()
 const formRef = shallowRef<FormInstance>()
 const qtyStepList = [1, 10, 100] // 数量步长列表
 const qtyStep = shallowRef(qtyStepList[0]) // 数量步长
+const { t } = i18n.global
 
 const priceRef = shallowRef()
 const qtyRef = shallowRef()

+ 4 - 3
src/packages/pc/views/market/trade/spot/listing/index.vue

@@ -37,8 +37,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -50,7 +50,7 @@ import { BuyOrSell } from '@/constants/order'
 import { useRequest } from '@/hooks/request'
 import { queryFtDeliveryGoods, queryWrStandardFactoryItem } from '@/services/api/goods'
 import { useHdWROrder } from '@/business/trade'
-import { useAccountStore } from '@/stores'
+import { useAccountStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import Performance from '@pc/components/modules/performance/index.vue'
 
@@ -60,6 +60,7 @@ const show = shallowRef(true)
 const refresh = shallowRef(false)
 const formRef = shallowRef<FormInstance>()
 const dgFactoryItemId = shallowRef<number>()
+const { t } = i18n.global
 
 const { dataList: ftDeliveryGoodsList } = useRequest(queryFtDeliveryGoods)
 const { dataList: wrStandardFactoryItems, run: getWrStandardFactoryItems } = useRequest(queryWrStandardFactoryItem, { manual: true })

+ 4 - 3
src/packages/pc/views/market/trade/spot/order/delisting/index.vue

@@ -32,8 +32,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -47,7 +47,7 @@ import { useRequest } from '@/hooks/request'
 import { queryPermancePlanTmp } from '@/services/api/performance'
 import { queryHoldLB } from '@/services/api/order'
 import { useHdWRDealOrder } from '@/business/trade'
-import { useAccountStore } from '@/stores'
+import { useAccountStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({
@@ -66,6 +66,7 @@ const accountStore = useAccountStore()
 const show = shallowRef(true)
 const refresh = shallowRef(false)
 const formRef = shallowRef<FormInstance>()
+const { t } = i18n.global
 
 // 查询履约模板
 const { data: permancePlanTmp } = useRequest(queryPermancePlanTmp, {

+ 4 - 1
src/packages/pc/views/market/trade/spot/order/detail/index.vue

@@ -18,7 +18,7 @@
             </template>
         </div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">关闭</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.close1') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -26,6 +26,7 @@
 <script lang="ts" setup>
 import { shallowRef, computed, PropType } from 'vue'
 import { getFileUrl, handleNumberValue } from '@/filters'
+import { i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppTableDetails from '@pc/components/base/table-details/index.vue'
 
@@ -36,6 +37,8 @@ const props = defineProps({
     }
 })
 
+const { t } = i18n.global
+
 const detailProps = [
     { prop: 'sellprice', label: '卖价:' },
     { prop: 'sellqty', label: '卖量:' },

+ 6 - 5
src/packages/pc/views/market/trade/spot/order/index.vue

@@ -37,8 +37,8 @@
                         </li>
                     </ul>
                     <div class="buttonbar">
-                        <el-button type="primary" @click="openComponent('listing')">挂牌求购</el-button>
-                        <el-button type="primary" @click="openComponent('detail')">详情</el-button>
+                        <el-button type="primary" @click="openComponent('listing')">{{ t('operation.listing1') }}</el-button>
+                        <el-button type="primary" @click="openComponent('detail')">{{ t('operation.details') }}</el-button>
                     </div>
                 </div>
             </template>
@@ -49,7 +49,7 @@
                     <template #expand="{ row }">
                         <div class="buttonbar">
                             <el-button type="primary" size="small" :disabled="row.userid === loginStore.userId"
-                                @click="showComponent('delisting', row)">摘牌</el-button>
+                                @click="showComponent('delisting', row)">{{ t('operation.delisting') }}</el-button>
                         </div>
                     </template>
                 </app-table>
@@ -59,7 +59,7 @@
                     <template #expand="{ row }">
                         <div class="buttonbar">
                             <el-button type="primary" size="small" :disabled="row.userid === loginStore.userId"
-                                @click="showComponent('delisting', row)">摘牌</el-button>
+                                @click="showComponent('delisting', row)">{{ t('operation.delisting') }}</el-button>
                         </div>
                     </template>
                 </app-table>
@@ -78,7 +78,7 @@ import { BuyOrSell } from '@/constants/order'
 import { useComponent } from '@/hooks/component'
 import { useComposeTable } from '@pc/components/base/table'
 import { queryOrderQuote, queryOrderQuoteDetail } from '@/services/api/goods'
-import { useLoginStore } from '@/stores'
+import { useLoginStore, i18n } from '@/stores'
 import service from '@/services'
 import eventBus from '@/services/bus'
 import AppTable from '@pc/components/base/table/index.vue'
@@ -92,6 +92,7 @@ const props = defineProps({
 
 const emit = defineEmits(['closed'])
 const oem = service.getConfig('oem')
+const { t } = i18n.global
 
 const componentMap = new Map<string, unknown>([
     ['listing', defineAsyncComponent(() => import('./listing/index.vue'))], // 挂牌

+ 4 - 3
src/packages/pc/views/market/trade/spot/order/listing/index.vue

@@ -22,8 +22,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -36,7 +36,7 @@ import { BuyOrSell } from '@/constants/order'
 import { useRequest } from '@/hooks/request'
 import { queryHoldLB } from '@/services/api/order'
 import { useHdWROrder } from '@/business/trade'
-import { useAccountStore } from '@/stores'
+import { useAccountStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 import Performance from '@pc/components/modules/performance/index.vue'
 
@@ -56,6 +56,7 @@ const accountStore = useAccountStore()
 const show = shallowRef(true)
 const refresh = shallowRef(false)
 const formRef = shallowRef<FormInstance>()
+const { t } = i18n.global
 
 // 持仓记录
 const { data: holdLB } = useRequest(queryHoldLB, {

+ 5 - 4
src/packages/pc/views/market/trade/swap/detail/index.vue

@@ -20,10 +20,10 @@
                             </span>
                         </template>
                         <slot name="headerRight"></slot>
-                        <el-button type="primary" @click="active = false" v-if="active">买卖大厅</el-button>
-                        <el-button type="primary" @click="active = true" v-else>图表</el-button>
+                        <el-button type="primary" @click="active = false" v-if="active">{{ t('quote.buysellhall') }}</el-button>
+                        <el-button type="primary" @click="active = true" v-else>{{ t('operation.chart') }}</el-button>
                         <el-button type="primary" v-if="userStore.userType != 5"
-                            @click="openComponent('listing')">挂牌</el-button>
+                            @click="openComponent('listing')">{{ t('operation.listing') }}</el-button>
                     </div>
                 </div>
             </template>
@@ -42,10 +42,11 @@ import { useComponent } from '@/hooks/component'
 import { getRunStatusName } from '@/constants/market'
 import { useRequest } from '@/hooks/request'
 import { queryMarketRun } from '@/services/api/market'
-import { useFuturesStore, useUserStore } from '@/stores'
+import { useFuturesStore, useUserStore, i18n } from '@/stores'
 
 const Chart = defineAsyncComponent(() => import('@pc/components/modules/goods-detail/chart/index.vue'))
 const Order = defineAsyncComponent(() => import('./order/index.vue'))
+const { t } = i18n.global
 
 const { componentRef, componentId, openComponent, closeComponent } = useComponent()
 const componentMap = new Map<string, unknown>([

+ 5 - 3
src/packages/pc/views/market/trade/swap/detail/listing/index.vue

@@ -52,8 +52,8 @@
             </el-form-item>
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="danger" @click="onSubmit()">确定</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
+            <el-button type="danger" @click="onSubmit()">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -63,7 +63,7 @@ import { shallowRef, PropType, computed } from 'vue'
 import { ElMessage, FormInstance, FormRules, ElMessageBox } from 'element-plus'
 import { EBuildType, EDelistingType, EListingSelectType, EOrderOperateType, EPriceMode, EValidType } from '@/constants/client'
 import { useOrder } from '@/business/trade'
-import { useAccountStore, useFuturesStore, useUserStore } from '@/stores'
+import { useAccountStore, useFuturesStore, useUserStore, i18n } from '@/stores'
 import { useRequest } from '@/hooks/request'
 import { queryTjmdTodayAccountMargin } from '@/services/api/swap'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
@@ -75,6 +75,8 @@ const props = defineProps({
     }
 })
 
+const { t } = i18n.global
+
 const accountStore = useAccountStore()
 const userStore = useUserStore()
 const futuresStore = useFuturesStore()

+ 5 - 3
src/packages/pc/views/market/trade/swap/detail/order/delisting/index.vue

@@ -55,9 +55,9 @@
             </el-form-item> 
         </el-form>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">取消</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.cancel') }}</el-button>
             <el-button type="danger" :disabled="!formData.OrderQty || formData.OrderQty > selectedRow.orderqty"
-                        @click="onSubmit(EBuildType.BUILDTYPE_OPEN)">{{ selectedRow.buyorsell === 0 ? $t('quote.selll') : $t('quote.buy') }}</el-button>
+                        @click="onSubmit(EBuildType.BUILDTYPE_OPEN)">{{ selectedRow.buyorsell === 0 ? t('quote.selll') : t('quote.buy') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -71,7 +71,7 @@ import { BuyOrSell, getBuyOrSellName } from '@/constants/order'
 import { useOrder } from '@/business/trade'
 import { useRequest } from '@/hooks/request'
 import { queryTjmdTodayAccountMargin } from '@/services/api/swap'
-import { useFuturesStore, useAccountStore, useUserStore } from '@/stores'
+import { useFuturesStore, useAccountStore, useUserStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const props = defineProps({
@@ -88,6 +88,8 @@ const props = defineProps({
 const accountStore = useAccountStore()
 const userStore = useUserStore()
 
+const { t } = i18n.global
+
 /// 价格类型
 const priceMove = shallowRef(props.selectedRow.pricemode)
 /// 价格类型

+ 3 - 1
src/packages/pc/views/market/trade/swap/detail/order/protocol/index.vue

@@ -3,18 +3,20 @@
     <app-drawer title="合同签署" v-model:show="show" :refresh="refresh">
         <div class="g-text-message">请前往手机App进行合同签署操作!</div>
         <template #footer>
-            <el-button type="info" @click="onCancel(false)">确认</el-button>
+            <el-button type="info" @click="onCancel(false)">{{ t('operation.confirm') }}</el-button>
         </template>
     </app-drawer>
 </template>  
 
 <script lang="ts" setup>
 import { ref } from 'vue'
+import { i18n } from "@/stores"
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const show = ref(true)
 const refresh = ref(false)
 
+const { t } = i18n.global
 
 const onCancel = (isRefresh = false) => {
     show.value = false

+ 5 - 2
src/packages/pc/views/system/menu/components/edit/index.vue

@@ -58,8 +58,8 @@
             </el-form>
         </template>
         <template #footer>
-            <el-button @click="cancel">取消</el-button>
-            <el-button @click="submit" type="primary">提交</el-button>
+            <el-button @click="cancel">{{ t('operation.cancel') }}</el-button>
+            <el-button @click="submit" type="primary">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -67,6 +67,7 @@
 <script lang="ts" setup>
 import { ref, reactive, PropType, defineAsyncComponent } from 'vue'
 import { AuthType, UrlType, getAuthTypeList, getUrlTypeList } from '@/constants/menu'
+import { i18n } from '@/stores';
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 const components = {
@@ -97,6 +98,8 @@ const props = defineProps({
 const show = ref(true)
 const form = reactive({ ...props.selectedRow })
 
+const { t } = i18n.global
+
 const cancel = () => {
     show.value = false
 }

+ 4 - 3
src/packages/pc/views/system/menu/index.vue

@@ -4,8 +4,8 @@
             <template #headerLeft>
                 <app-action-menu :menus="getActionMenus('system_menu_add')" @click="openComponent" />
                 <el-button type="primary" :icon="isRowExpansion ? 'FolderOpened' : 'Folder'" @click="tableExpandAll">
-                    <span v-if="isRowExpansion">全部收起</span>
-                    <span v-else>全部展开</span>
+                    <span v-if="isRowExpansion">{{ t('operation.closeall') }}</span>
+                    <span v-else>{{ t('operation.openall') }}</span>
                 </el-button>
             </template>
             <template #operate="{ row }">
@@ -22,7 +22,7 @@
 import { ref, onMounted } from 'vue'
 import { useDataTable } from '@/hooks/datatable'
 import { useActionMenu } from '@pc/components/modules/action-menu'
-import { useMenuStore } from '@/stores'
+import { useMenuStore, i18n } from '@/stores'
 import AppActionMenu from '@pc/components/modules/action-menu/index.vue'
 import AppTable from '@pc/components/base/table/index.vue'
 
@@ -30,6 +30,7 @@ const { activeMenu, asyncComponent, getActionMenus, openComponent, closeComponen
 const { dataList } = useDataTable<Model.UserRoutes>()
 const tableRef = ref()
 const isRowExpansion = ref(false)
+const { t } = i18n.global
 
 const columns = ref([
     { field: 'title', label: '菜单', },

+ 6 - 3
src/packages/pc/views/system/role/components/auth/index.vue

@@ -10,15 +10,15 @@
                 show-checkbox check-on-click-node default-expand-all />
         </el-scrollbar>
         <template #footer>
-            <el-button @click="show = false">取消</el-button>
-            <el-button type="primary" @click="show = false">提交</el-button>
+            <el-button @click="show = false">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="show = false">{{ t('operation.submit') }}</el-button>
         </template>
     </app-drawer>
 </template>
 
 <script lang="ts" setup>
 import { ref, PropType } from 'vue'
-import { useMenuStore } from '@/stores'
+import { useMenuStore, i18n } from '@/stores'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
 
 defineProps({
@@ -30,6 +30,9 @@ defineProps({
 
 const menuStore = useMenuStore()
 const show = ref(true)
+
+const { t } = i18n.global
+
 </script>
 
 <style lang="less">

+ 1 - 0
src/stores/modules/setting.ts

@@ -25,6 +25,7 @@ export const useSettingStore = defineStore(() => {
             orderPriceType: 1,
             orderQtyIsEmpty: false,
             orderBuyOrSell: 0,
+            luanguage: "zh-CN"
         }
         return {
             ...defaultValue,

+ 1 - 0
src/types/model/common.d.ts

@@ -336,6 +336,7 @@ declare global {
             orderPriceType: number; // 下单默认价格类型,1=现价,2=对手价,3=实时价,4=实时对手价
             orderQtyIsEmpty: boolean; // 下单后是否清空数量输入框
             orderBuyOrSell: number; // 默认买卖方向
+            luanguage: string; // 语言设置
         }
 
         /** 查询会员商品限制配置表 请求 */