瀏覽代碼

多语言

wxy 4 月之前
父節點
當前提交
e86401794d

+ 7 - 1
src/i18n/zh/forewarning.js

@@ -13,5 +13,11 @@ export default {
     SingleCard:'客户端·单卡预警设置',
     SingleCardUsage:'单卡用量预警',
     ManagementSide:'管理端预警设置',
-    consumed:'池已用量预警'
+    consumed:'池已用量预警',
+    forewarning:'预警',
+    EarlyWarningSetting:'预警设置',
+    AccountBalanceAlarm:'账号余额报警',
+    ReachWarning:'达量预警',
+    EarlyWarningPhone:'预警手机',
+    WarningMailbox:'预警邮箱'
 }

+ 2 - 1
src/i18n/zh/form.js

@@ -81,6 +81,7 @@ export default {
     distributor: "经销商",
     expirationDate: "到期时间",
     pleaseEnter: "请输入",
-    pleaseSelect: "请选择",
   },
+
+  
 }

+ 4 - 0
src/i18n/zh/login.js

@@ -1,3 +1,7 @@
 export default {
   'Welcome': '欢迎登录',
+  userName:'用户名',
+  password:'密码',
+  RememberAccountNumber:'记住账号',
+  disembark:'登录'
 }

+ 88 - 1
src/i18n/zh/lotCard.js

@@ -101,5 +101,92 @@ export default {
     Renewal_time:'更新时间',
     Renewal_timeType:'请选择更新时间',
     sourceCard:'来源',
-    sourceCardType:'请选择来源'
+    sourceCardType:'请选择来源',
+
+    // 卡详情
+     currencyBalance:'SIM货币余额',
+     ActivationDate:'激活日期',
+     DueDate:'到期日期',
+     validity:'有效期',
+     supplier:'供应商',
+     month:'月',
+     CurrentPackageInformation:'当前套餐信息',
+     PackageName:'套餐名称',
+     PackageStatus:'套餐状态',
+     Activated:'已激活',
+     Off:'关闭',
+     expired:'已过期',
+     NotInUse:'未使用',
+     WhetherToGive:'是否赠送套餐',
+     Yes:'是',
+     No:'否',
+     PackageActivationDate:'套餐激活日期',
+     PackageExpirationDate:'套餐过期日期',
+     PlaAvailableData:'套餐可用流量',
+     UnlimitedFlow:'无限流量',
+     PlanUsedData:'套餐已使用流量',
+     PackageUseTrafficToday:'套餐今日使用流量',
+     PackageValidDays:'套餐有效天数',
+     MonthlyConsumption:'月用量',
+     CardPackageInformation:'卡套餐信息',
+     EarlyWarningInformation:'预警信息',
+     RechargeRecord:'充值记录',
+     UsageAmount:'使用量',
+     OperationRecord:'操作记录',
+     SuspensionService:'暂停SIM卡服务',
+     RestoreService:'恢复SIM卡服务',
+     CloseCard:'关闭SIM卡',
+     Jan:'1月',
+     February:'2月',
+     March:'3月',
+     April:'4月',
+     May:'5月',
+     June:'6月',
+     July:'7月',
+     August:'8月',
+     September:'9月',
+     October:'10月',
+     November:'11月',
+     December:'12月',
+     AvailableFlow:'可用流量',
+     Usedflow:'已使用流量',
+     TrafficUsedToday:'今日使用流量',
+     PackageValidity:'套餐有效期(天数)',
+     ExpirationDate:'过期日期',
+     OrderNumber:'订单号',
+     PurchasePackage:'购买套餐',
+     OrderType:'订单类型',
+     PackagePrice:'套餐价格',
+     operator:'运营商',
+     PaymentStatus:'支付状态',
+     OrderDate:'下单日期',
+     ID:'编号',
+     accountCard:'SIM账户(卡号)',
+     FlowRate:'流量',
+     CargoAreaCode:'流量产生国家货地区编号',
+     DetailDate:'详单日期',
+     settingUser:'操作人',
+     Controls:'操作',
+     remark:'备注',
+     userName:'客户名称',
+     bind:'SIM绑定的IMSI',
+     GenerationDate:'SIM生成日期',
+     SimStatus:'SIM状态',
+     TotalFlow:'已使用总流量',
+     MinutesIncomingVoiceCalls:'语音呼入分钟数',
+     MinutesOutgoingVoiceCalls:'语音呼出分钟数',
+     TotalVoiceMinutes:'总语音分钟数',
+     NumberTextMessagesSent:'发短信数',
+     ClosingDate:'SIM关闭日期',
+     SupplierName:'所属供应商名称',
+     CardPackage:'卡套餐',
+     EarlyWarningState:'预警状态',
+     PoolName_Number:'池名称/编号',
+     TheExpirationTime:'沉默期到期时间',
+     UsedPlanData:'已用(套餐流量)',
+     AvailablePlanData:'可用(套餐流量)',
+     used:'已用(加油包流量)',
+     available:'可用(加油包流量)',
+     DefaultRate:'默认速率',
+     CardDetails:'卡详情'
 }  

+ 50 - 0
src/i18n/zh/order.js

@@ -0,0 +1,50 @@
+export default {
+    CardPurchase:'购卡',
+    TariffName:'资费名称',
+    CardType:'卡类型',
+    SilentPeriod:'沉默期',
+    FormationPool:'组池',
+    FlowPool:'流量池',
+    QuantityCardsPurchased:'购卡数量',
+    OrderNum:'订单编号',
+    unshipped:'未发货',
+    shipped:'已发货',
+    MinimumSubscriptionPeriod:'最短订阅周期',
+    MaximumSubscriptionPeriod:'最长订阅周期',
+    Months:'个月',
+    BillingMode:'计费方式',
+    SettlementCycle:'结算周期',
+    StandardPrice:'标准价格',
+    CardNum:'卡数量',
+    AllocationCardNumber:'分配卡号',
+    OrderDetails:'订单详情',
+    CardStatus:'卡状态',
+    CreationTime:'创建时间',
+    normal:'正常',
+    unsubscribe:'退订',
+    TobeReviewed:'待审核',
+    PassTheExamination:'审核通过',
+    rejected:'已驳回',
+    examine:'审核',
+    UploadContract:'上传合同',
+    ViewTheContract:'查看合同',
+    UploadAmount:'上传金额',
+    view:'查看',
+    ChangeValidity:'变更有效期',
+    SalesContract:'销售合同',
+    PurchaseAmount:'采购金额',
+    SerialNumber:'序号',
+    AuditStatus:'审核状态',
+    LogisticsStatus:'物流状态',
+    NumberCardsPurchased:'购卡数',
+    SilentPeriod:'静默期',
+    CarrierName:'运营商名称',
+    tariff:'资费',
+    ContractPhoto:'合同照片',
+    OrderTime:'下单时间',
+    IncorrectInput:'输入有误',
+    ReturnTheCard:'退卡',
+    AuditOpinion:'审核意见',
+    TurnDown:'驳回',
+    ReturnAmount:'退货金额'
+}

+ 4 - 0
src/i18n/zh/setting.js

@@ -3,4 +3,8 @@ export default {
     addSuccess:'添加成功',
     ControlsSuccess:'操作成功',
     deleteSuccess:'删除成功',
+     USD:'美金',
+    yuan:'元',
+    add:'添加',
+    edit:'修改'
 }

+ 10 - 1
src/i18n/zh/tariffManagement.js

@@ -35,5 +35,14 @@ export default {
     userName: '客户名称',
     MRCName: 'MRC费(月租)',
     networkName: '网络接入费',
-    ActivatedNames: '流量大小'
+    ActivatedNames: '流量大小',
+    SetMeal:'套餐',
+    SelectiveTrafficPacket:'选择流量包',
+    BasicInformation:'基本信息',
+    DataPackage:'流量包',
+    BillingInformation:'计费信息',
+    PackageTermMonth:'套餐期限(月)',
+    PackagePrice:'套餐价格',
+    Currency:'币种',
+    AddPackage:'添加套餐'
 }

+ 2 - 1
src/views/exception/errors.vue

@@ -11,9 +11,10 @@
 <script  setup>
 import { useRoute, useRouter } from 'vue-router'
 import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
+
 const router = useRouter()
 const route = useRoute()
-const {t} = useI18n();
 const defaultObj = {
   button_text: t('error.Previous'),
   error_code: 404,

+ 2 - 1
src/views/flowPool/customerFlowPool/index.vue

@@ -43,7 +43,8 @@ import { useRoute } from "vue-router";
 import { columns } from "./config";
 import { lotCatdList } from "@/api/path/flowPool.api"
 import { Getdictionary } from '@/mixins/index.js'
-
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const formRef = ref()
 const searchForm = ref({
     "label": "",

+ 2 - 0
src/views/flowPool/index.vue

@@ -83,6 +83,8 @@ import {Getdictionary} from '@/mixins/index.js'
 import Forewarning from "./components/forewarning.vue";
 import add from './components/add.vue'
 import openExport from "./components/openExport.vue"
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const systemStore = useSystemStore()
 const state = ref({
   role: systemStore.getRole,

+ 2 - 0
src/views/flowPool/rearFlowPool/index.vue

@@ -133,6 +133,8 @@ import { useSystemStore } from "@/store/modules/systemStore";
 import add from "../components/add.vue";
 import Forewarning from "../components/forewarning.vue";
 import { Getdictionary } from "@/mixins/index.js";
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const systemStore = useSystemStore();
 const state = reactive({
   dataSource: [],

+ 6 - 4
src/views/login/login-form.vue

@@ -6,7 +6,7 @@
     <a-form ref="loginForm" :model="formData" class="login-form" @submit-success="handleSubmit">
       <a-form-item field="username" :rules="[{ required: true, message: '用户名不能为空' }]"
         :validate-trigger="['change', 'blur']" hide-label>
-        <a-input v-model="formData.username" placeholder="用户名:">
+        <a-input v-model="formData.username" :placeholder="$t('login.userName')">
           <template #prefix>
             <icon-user />
           </template>
@@ -14,7 +14,7 @@
       </a-form-item>
       <a-form-item field="password" :rules="[{ required: true, message: '密码不能为空' }]"
         :validate-trigger="['change', 'blur']" hide-label>
-        <a-input-password v-model="formData.password" placeholder="密码:" allow-clear>
+        <a-input-password v-model="formData.password" :placeholder="$t('login.password')" allow-clear>
           <template #prefix>
             <icon-lock />
           </template>
@@ -25,11 +25,11 @@
       <a-space :size="16" direction="vertical">
         <div class="login-form-password-actions">
           <a-checkbox v-model="rememberPassword">
-            记住账号
+            {{ $t('login.RememberAccountNumber') }}
           </a-checkbox>
           <!-- <a-link>忘记密码</a-link> -->
         </div>
-        <a-button type="primary" html-type="submit" long :loading="formLoading"> 登陆</a-button>
+        <a-button type="primary" html-type="submit" long :loading="formLoading">{{ $t('login.disembark') }}</a-button>
       </a-space>
     </a-form>
   </div>
@@ -43,6 +43,8 @@ import { useSystemStore } from "@/store/modules/systemStore"
 import { useRouter } from 'vue-router'
 import { updateRouteByMenu } from '@/router/router.update'
 import { FormLoginUser } from '@/store/modules/Login'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const router = useRouter()
 const systemStore = useSystemStore()
 const LoginSet = FormLoginUser()

+ 4 - 2
src/views/lotCard/cardList/add.vue

@@ -1,12 +1,14 @@
 <template>
-    <a-modal v-model:visible="modelValue" width="800px" title="添加" @cancel="cancel" @ok="submitStatus" okText="确认"
-        cancelText="取消">
+    <a-modal v-model:visible="modelValue" width="800px" :title="$t('form.Add')" @cancel="cancel" @ok="submitStatus" :okText="$t('form.Confirm')"
+        :cancelText="$t('form.Cancel')">
     </a-modal>
 </template>
 
 <script setup>
 import { ref, defineProps, toRef, defineEmits,watch} from 'vue';
 import { Message } from '@arco-design/web-vue';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,

+ 22 - 22
src/views/lotCard/cardList/config.js

@@ -1,31 +1,31 @@
 export const columns = [
     { title: window.$t('lotCard.iccid'), dataIndex: 'iccid', align: 'center', ellipsis: true },
     { title: window.$t('lotCard.source'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
-    { title: '客户名称', dataIndex: 'userName', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
     { title: 'IMSI', dataIndex: 'currentImsi', align: 'center', ellipsis: true },
-    { title: 'SIM绑定的IMSI', dataIndex: 'currentImsi', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.bind'), dataIndex: 'currentImsi', align: 'center', ellipsis: true },
     // { title: 'SIM货币余额', dataIndex: 'moneyBalances', align: 'center', ellipsis:true  },
-    { title: 'SIM生成日期', dataIndex: 'createTime', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.GenerationDate'), dataIndex: 'createTime', align: 'center', ellipsis: true },
     // { title: '支付方式', dataIndex: 'payType', align: 'center', ellipsis: true },
-    { title: 'SIM状态', dataIndex: 'iccidStatus', align: 'center', ellipsis: true },
-    { title: '已使用总流量', dataIndex: 'dataUsageTotal', slotName: 'dataUsageTotal', align: 'center', ellipsis: true },
-    { title: '语音呼入分钟数', dataIndex: 'voiceMtTotal', align: 'center', ellipsis: true },
-    { title: '语音呼出分钟数', dataIndex: 'voiceMoTotal', align: 'center', ellipsis: true },
-    { title: '总语音分钟数', dataIndex: 'voiceTotal', align: 'center', ellipsis: true },
-    { title: '发短信数', dataIndex: 'smsTotal', align: 'center', ellipsis: true },
-    { title: 'SIM有效期(月)', dataIndex: 'validMonth', align: 'center', ellipsis: true },
-    { title: 'SIM关闭日期', dataIndex: 'closeTime', align: 'center', ellipsis: true },
-    { title: 'SIM激活日期', dataIndex: 'activeTime', align: 'center', ellipsis: true },
-    { title: 'IMSI所属供应商名称', dataIndex: 'currentImsiProvider', align: 'center', ellipsis: true },
-    { title: '卡套餐', dataIndex: 'tariffName', align: 'center', ellipsis: true },
-    { title: '预警状态', dataIndex: 'forewarningStatus', align: 'center', width: 200, ellipsis: true },
-    { title: '池名称/编号', dataIndex: 'poolNum', slotName: 'poolNum', align: 'center', width: 200, ellipsis: true },
-    { title: '沉默期到期时间', dataIndex: 'SilenceEndtime', align: 'center', width: 200, ellipsis: true },
-    { title: '已用(套餐流量)', dataIndex: 'dataUsage', align: 'center', ellipsis: true },
-    { title: '可用(套餐流量)', dataIndex: 'dataTotal', align: 'center', ellipsis: true },
-    { title: '已用(加油包流量)', dataIndex: 'usedBg', align: 'center', ellipsis: true },
-    { title: '可用(加油包流量)', dataIndex: 'usableBg', align: 'center', ellipsis: true },
-    { title: '默认速率', dataIndex: 'dataSpeed', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.SimStatus'), dataIndex: 'iccidStatus', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.TotalFlow'), dataIndex: 'dataUsageTotal', slotName: 'dataUsageTotal', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.MinutesIncomingVoiceCalls'), dataIndex: 'voiceMtTotal', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.MinutesOutgoingVoiceCalls'), dataIndex: 'voiceMoTotal', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.TotalVoiceMinutes'), dataIndex: 'voiceTotal', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.NumberTextMessagesSent'), dataIndex: 'smsTotal', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.validity')+(window.$t('lotCard.month')), dataIndex: 'validMonth', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.ClosingDate'), dataIndex: 'closeTime', align: 'center', ellipsis: true },
+    { title: 'SIM'+window.$t('lotCard.ActivationDate'), dataIndex: 'activeTime', align: 'center', ellipsis: true },
+    { title: 'IMSI'+window.$t('lotCard.SupplierName'), dataIndex: 'currentImsiProvider', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.CardPackage'), dataIndex: 'tariffName', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.EarlyWarningState'), dataIndex: 'forewarningStatus', align: 'center', width: 200, ellipsis: true },
+    { title: window.$t('lotCard.PoolName_Number'), dataIndex: 'poolNum', slotName: 'poolNum', align: 'center', width: 200, ellipsis: true },
+    { title: window.$t('lotCard.TheExpirationTime'), dataIndex: 'SilenceEndtime', align: 'center', width: 200, ellipsis: true },
+    { title: window.$t('lotCard.UsedPlanData'), dataIndex: 'dataUsage', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.AvailablePlanData'), dataIndex: 'dataTotal', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.used'), dataIndex: 'usedBg', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.available'), dataIndex: 'usableBg', align: 'center', ellipsis: true },
+    { title: window.$t('lotCard.DefaultRate'), dataIndex: 'dataSpeed', align: 'center', ellipsis: true },
     {
         title: window.$t('global.common.operations'),
         dataIndex: 'id',

+ 3 - 1
src/views/lotCard/cardList/index.vue

@@ -39,7 +39,7 @@
     
     <div class="top-actions">
       <a-space>
-        <a-button type="primary" @click="showAdd=true">添加</a-button>
+        <a-button type="primary" @click="showAdd=true">{{ $t('form.Add') }}</a-button>
       </a-space>
     </div>
 
@@ -74,6 +74,8 @@ import trafficUseDialog from "./trafficUseDialog.vue";
 import { Getdictionary } from '@/mixins/index.js'
 import Add from './add.vue'
 const { proxy } = getCurrentInstance()
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const formRef = ref()
 const searchForm = ref({
   "iccid": "",

+ 68 - 65
src/views/lotCard/cardList/trafficUseDialog.vue

@@ -1,6 +1,6 @@
 <template>
-  <a-modal width="70%" :visible="visible" :title="'卡详情' + Card_info.iccid" :hide-cancel='true'
-    :ok-text="$t('lotCard.close')" @ok="handleSubmit" @cancel="handleCancel" draggable>
+  <a-modal width="70%" :visible="visible" :title="$t('lotCard.CardDetails') + Card_info.iccid" :hide-cancel='true'  :okText="$t('form.Confirm')"
+  :cancelText="$t('form.Cancel')" @ok="handleSubmit" @cancel="handleCancel" draggable>
     <!-- 卡片信息 -->
     <a-row class="grid-demo" :gutter="24">
       <a-col :span="12">
@@ -18,86 +18,86 @@
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="SIM货币余额">
+              <a-form-item :label="$t('lotCard.currencyBalance')">
                 {{ Card_info.moneyBalances }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="激活日期">
+              <a-form-item :label="$t('lotCard.ActivationDate')">
                 {{ Card_info.activeTime }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="到期日期">
+              <a-form-item :label="$t('lotCard.DueDate')">
                 {{ Card_info.closeTime }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="有效期">
-                {{ Card_info.validMonth }}
+              <a-form-item :label="$t('lotCard.validity')">
+                {{ Card_info.validMonth }} {{ $t('lotCard.month') }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="供应商">
+              <a-form-item :label="$t('lotCard.supplier')">
                 {{ Card_info.currentImsiProvider }}
               </a-form-item>
             </a-col>
           </a-row>
         </a-form>
-        <p>当前套餐信息</p>
+        <p>{{ $t('lotCard.CurrentPackageInformation') }}</p>
         <a-form :model="dataPackage" auto-label-width label-align="left">
           <a-row :gutter="10" wrap>
             <a-col :span="12">
-              <a-form-item label="套餐名称">
+              <a-form-item :label="$t('lotCard.PackageName')">
                 {{ Card_info?.tariffName }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="套餐状态">
+              <a-form-item :label="$t('lotCard.PackageStatus')">
                 {{
-                  dataPackage?.status == 1 ? '已激活' : (dataPackage?.status == 2 ? '关闭' :
-                    dataPackage?.status == 3 ? '已过期' : '未使用')
+                  dataPackage?.status == 1 ? $t('lotCard.Activated') : (dataPackage?.status == 2 ? $t('lotCard.Off') :
+                    dataPackage?.status == 3 ? $t('lotCard.expired') : $t('lotCard.NotInUse'))
                 }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="有效期">
-                {{ dataPackage?.validDays }}
+              <a-form-item :label="$t('lotCard.validity')">
+                {{ dataPackage?.validDays }} {{ $t('lotCard.month') }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="是否赠送套餐">
-                {{ dataPackage?.present == 0 ? '否' : '是' }}
+              <a-form-item :label="$t('lotCard.WhetherToGive')">
+                {{ dataPackage?.present == 0 ? $t('lotCard.No') : $t('lotCard.Yes') }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="套餐激活日期">
+              <a-form-item :label="$t('lotCard.PackageActivationDate')">
                 {{ dataPackage?.activeTime }}
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="套餐过期日期">
+              <a-form-item :label="$t('lotCard.PackageExpirationDate')">
                 {{ dataPackage?.expiryTime }}
               </a-form-item>
             </a-col>
             <div class="line"></div>
             <a-col :span="12">
-              <a-form-item label="套餐可用流量">
-                {{ dataPackage?.dataTotal == -1 ? '无限流量' : dataPackage?.dataTotal }}MB
+              <a-form-item :label="$t('lotCard.PlaAvailableData')">
+                {{ dataPackage?.dataTotal == -1 ? $t('lotCard.UnlimitedFlow') : dataPackage?.dataTotal }}MB
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="套餐已使用流量">
+              <a-form-item :label="$t('lotCard.PlanUsedData')">
                 {{ dataPackage?.dataUsage }}MB
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="套餐今日使用流量">
+              <a-form-item :label="$T('lotCard.PackageUseTrafficToday')">
                 {{ dataPackage?.dataToday }}MB
               </a-form-item>
             </a-col>
             <a-col :span="12">
-              <a-form-item label="套餐有效天数">
+              <a-form-item :label="$t('lotCard.PackageValidDays')">
                 {{ dataPackage?.validDays }}
               </a-form-item>
             </a-col>
@@ -106,35 +106,37 @@
       </a-col>
       <a-col :span="12">
         <a-tabs>
-          <a-tab-pane key="1" title="月用量">
+          <a-tab-pane key="1" :title="$t('lotCard.MonthlyConsumption')">
             <div class="chart" style="width:100%" id="chartContainer" />
           </a-tab-pane>
-          <a-tab-pane key="2" title="卡套餐信息">
+          <a-tab-pane key="2" :title="$t('lotCard.CardPackageInformation')">
             <a-table :columns="columnsCard" :data="dataCard" :scroll="{ x: 'auto' }" :pagination="false" />
           </a-tab-pane>
-          <a-tab-pane key="3" title="预警信息">
+          <a-tab-pane key="3" :title="$t('lotCard.EarlyWarningInformation')">
             Content of Tab Panel 3
           </a-tab-pane>
-          <a-tab-pane key="4" title="充值记录">
+          <a-tab-pane key="4" :title="$t('lotCard.RechargeRecord')">
             <a-table :columns="columnsTopup" :data="dataTopup" :scroll="{ x: 'auto' }" />
           </a-tab-pane>
-          <a-tab-pane key="5" title="使用量">
+          <a-tab-pane key="5" :title="$t('lotCard.UsageAmount')">
             <a-table :columns="columnsAmount" :data="dataAmount" :scroll="{ x: 'auto' }" :pagination="false" />
           </a-tab-pane>
-          <a-tab-pane key="6" title="操作记录">
+          <a-tab-pane key="6" :title="$t('lotCard.OperationRecord')">
             <a-table :columns="columnsOperation" :data="dataOperation" :scroll="{ x: 'auto' }"
               @page-change="evChangePage" :pagination="pageData" />
           </a-tab-pane>
         </a-tabs>
       </a-col>
     </a-row>
-  
+
     <template #footer>
       <div class="footer_button">
         <!-- <a-button type="primary" status="warning">同步卡信息 V</a-button> -->
-        <a-button type="primary" status="warning" @click="SIMCardService(0)">暂停SIM卡服务</a-button>
-        <a-button type="primary" status="warning" @click="SIMCardService(1)">恢复SIM卡服务</a-button>
-        <a-button type="primary" status="warning">关闭SIM卡</a-button>
+        <a-button type="primary" status="warning" @click="SIMCardService(0)">{{ $t('lotCard.SuspensionService')
+          }}</a-button>
+        <a-button type="primary" status="warning" @click="SIMCardService(1)">{{ $t('lotCard.RestoreService')
+          }}</a-button>
+        <a-button type="primary" status="warning">{{ $t('lotCard.CloseCard') }}</a-button>
       </div>
     </template>
   </a-modal>
@@ -146,7 +148,8 @@ import { Getdictionary } from '@/mixins/index'
 import { Message } from '@arco-design/web-vue'
 // 图表插件
 import * as echarts from "echarts";
-
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n();
 const props = defineProps({});
 
 const emit = defineEmits(['submit']);
@@ -164,7 +167,7 @@ const pageData = ref({
 const option = ref({
   xAxis: {
     type: 'category',
-    data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
+    data: [t('lotCard.Jan'), t('lotCard.February'), t('lotCard.March'), t('lotCard.April'), t('lotCard.May'), t('lotCard.June'), t('lotCard.July'), t('lotCard.August'), t('lotCard.September'), t('lotCard.October'), t('lotCard.November'), t('lotCard.December')]
   },
   yAxis: {
     type: 'value'
@@ -180,46 +183,46 @@ const option = ref({
 // 卡套餐信息
 const columnsCard = [
   {
-    title: '套餐名称',
+    title: t('lotCard.PackageName'),
     dataIndex: 'productName',
     align: 'center', ellipsis: true
   }, {
-    title: '套餐状态',
+    title: t('lotCard.PackageStatus'),
     dataIndex: 'status',
     align: 'center', ellipsis: true
   },
   {
-    title: '有效期(月)',
+    title: t('lotCard.validity')+(t('lotCard.month')),
     dataIndex: 'validMonth',
     align: 'center', ellipsis: true
   },
   {
-    title: '可用流量',
+    title: t('lotCard.AvailableFlow'),
     dataIndex: 'dataTotal',
     align: 'center', ellipsis: true
   },
   {
-    title: '已使用流量',
+    title: t('lotCard.Usedflow'),
     dataIndex: 'dataUsage',
     align: 'center', ellipsis: true
   },
   {
-    title: '今日使用流量',
+    title: t('lotCard.TrafficUsedToday'),
     dataIndex: 'dataToday',
     align: 'center', ellipsis: true
   },
   {
-    title: '套餐有效期(天数)',
+    title: t('lotCard.PackageValidity'),
     dataIndex: 'validDays',
     align: 'center', ellipsis: true
   },
   {
-    title: '激活日期',
+    title: t('lotCard.ActivationDate'),
     dataIndex: 'activeTime',
     align: 'center', ellipsis: true
   },
   {
-    title: '过期日期',
+    title: t('lotCard.ExpirationDate'),
     dataIndex: 'expiryTime',
     align: 'center', ellipsis: true
   },
@@ -229,7 +232,7 @@ const dataCard = ref([])
 // 充值信息
 const columnsTopup = [
   {
-    title: '订单号',
+    title: t('lotCard.OrderNumber'),
     dataIndex: 'productName',
     ellipsis: true,
     align: 'center',
@@ -241,37 +244,37 @@ const columnsTopup = [
     align: 'center',
   },
   {
-    title: '购买套餐',
+    title: t('lotCard.PurchasePackage'),
     dataIndex: 'productName',
     ellipsis: true,
     align: 'center',
   },
   {
-    title: '订单类型',
+    title: t('lotCard.OrderType'),
     dataIndex: 'productName',
     ellipsis: true,
     align: 'center',
   },
   {
-    title: '套餐价格',
+    title: t('lotCard.PackagePrice'),
     dataIndex: 'productName',
     ellipsis: true,
     align: 'center',
   },
   {
-    title: '运营商',
+    title: t('lotCard.operator'),
     dataIndex: 'productName',
     ellipsis: true,
     align: 'center',
   },
   {
-    title: '支付状态',
+    title: t('lotCard.PaymentStatus'),
     dataIndex: 'productName',
     ellipsis: true,
     align: 'center',
   },
   {
-    title: '下单日期',
+    title: t('lotCard.OrderDate'),
     dataIndex: 'productName',
     ellipsis: true,
     align: 'center',
@@ -281,7 +284,7 @@ const dataTopup = ref([])
 // 使用量
 const columnsAmount = [
   {
-    title: '编号',
+    title: t('lotCard.ID'),
     dataIndex: 'productId',
     align: 'center', ellipsis: true
   },
@@ -292,22 +295,22 @@ const columnsAmount = [
   },
 
   {
-    title: 'SIM账户(卡号)',
+    title: t('lotCard.accountCard'),
     dataIndex: 'account',
     align: 'center', ellipsis: true
   },
   {
-    title: '流量(MB)',
+    title: `${t('lotCard.FlowRate')}(MB)`,
     dataIndex: 'usage',
     align: 'center', ellipsis: true
   },
   {
-    title: '流量产生国家货地区编号',
+    title: t('lotCard.CargoAreaCode'),
     dataIndex: 'countryNo',
     align: 'center', ellipsis: true
   },
   {
-    title: '详单日期',
+    title: t('lotCard.DetailDate'),
     dataIndex: 'date',
     align: 'center', ellipsis: true
   },
@@ -317,7 +320,7 @@ const dataAmount = ref([])
 // 操作记录
 const columnsOperation = [
   {
-    title: '操作人',
+    title: t('lotCard.settingUser'),
     dataIndex: 'userId',
     ellipsis: true,
     align: 'center',
@@ -329,19 +332,19 @@ const columnsOperation = [
     align: 'center',
   },
   {
-    title: '来源',
+    title: t('lotCard.source'),
     dataIndex: 'source',
     ellipsis: true,
     align: 'center',
   },
   {
-    title: '操作',
+    title: t('lotCard.Controls'),
     dataIndex: 'operation',
     ellipsis: true,
     align: 'center',
   },
   {
-    title: '备注',
+    title: t('lotCard.remark'),
     dataIndex: 'remark',
     ellipsis: true,
     align: 'center',
@@ -357,9 +360,9 @@ const open = (data) => {
   dataPackage.value = data.dataPackage[0]
   // 卡套餐信息
   dataCard.value = (data.dataPackage || []).map(val => {
-    const status = val.status == 1 ? '已激活' : (val.status == 2 ? '关闭' :
-      val.status == 3 ? '已过期' : '未使用')
-    const tatal = val.dataTotal == -1 ? '无限流量' : val.dataTotal
+    const status = val.status == 1 ? t('lotCard.Activated') : (val.status == 2 ? t('lotCard.Off') :
+      val.status == 3 ? t('lotCard.expired') : t('lotCard.NotInUse'))
+    const tatal = val.dataTotal == -1 ? t('lotCard.UnlimitedFlow') : val.dataTotal
     return {
       ...val,
       status: status,
@@ -466,7 +469,7 @@ const optionsRecordSetting = async () => {
   let res = await OperationRecord({
     current: pageData.value.current,
     size: pageData.value.size,
-    iccid:Card_info.value.iccid
+    iccid: Card_info.value.iccid
   })
   let res1 = await Getdictionary('source')
   dataOperation.value = res.data.records.map(res => {

+ 20 - 18
src/views/order/BuyCard/Card.vue

@@ -1,49 +1,49 @@
 <template>
     <!-- 创建 -->
-    <a-modal v-model:visible="modelValue" title="购卡" width="600px" @cancel="closeModal(showAudit, formState)" centered
-        :maskClosable="false" okText="确定" cancelText="关闭" :footer="null">
+    <a-modal v-model:visible="modelValue" :title="$t('order.CardPurchase')" width="600px" @cancel="closeModal(showAudit, formState)" centered
+        :maskClosable="false" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')" :footer="null">
         <a-form ref="formRef" :rules="rules" :model="formState" @submit="submitPurchase">
-            <a-form-item field="customerName" label="客户名称">
+            <a-form-item field="customerName" :label="$t('lotCard.userName')">
                 <div class="audit-txt">{{ userName }}</div>
             </a-form-item>
-            <a-form-item label="运营商" field="source">
-                <a-select v-model="formState.source" :style="{ width: '380px' }" placeholder="请选择运营商">
+            <a-form-item :label="$t('lotCard.operator')" field="source">
+                <a-select v-model="formState.source" :style="{ width: '380px' }" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.operator')">
                     <a-option v-for="item of sourceList" :value="item.value" :label="item.label" />
                 </a-select>
             </a-form-item>
-            <a-form-item label="资费名称" field="tariffId">
-                <a-select v-model="formState.trafficId" :style="{ width: '380px' }" placeholder="请选择资费ID">
+            <a-form-item :label="$t('lotCard.TariffName')" field="tariffId">
+                <a-select v-model="formState.trafficId" :style="{ width: '380px' }" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.TariffName')">
                     <a-option v-for="item of tariffData" :value="item.value" :label="item.label" />
                 </a-select>
             </a-form-item>
-            <a-form-item label="卡类型" field="cardType">
-                <a-select v-model="formState.simType" :style="{ width: '380px' }" placeholder="请选择卡类型">
+            <a-form-item :label="$t('lotCard.CardType')" field="cardType">
+                <a-select v-model="formState.simType" :style="{ width: '380px' }" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.CardType')">
                     <a-option v-for="item of orderType" :value="item.value" :label="item.label" />
                 </a-select>
             </a-form-item>
-            <a-form-item label="沉默期">
-                <a-select v-model="formState.periodOfSilence" :style="{ width: '380px' }" placeholder="请选择沉默期">
+            <a-form-item :label="$t('lotCard.SilentPeriod')">
+                <a-select v-model="formState.periodOfSilence" :style="{ width: '380px' }" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.SilentPeriod')">
                     <a-option v-for="item of silenceOptions" :value="item.value" :label="item.label" />
                 </a-select>
             </a-form-item>
-            <a-form-item label="组池" field="flowPool">
+            <a-form-item :label="$t('lotCard.FormationPool')" field="flowPool">
                 <a-radio-group v-model="formState.isTrafficPool" :options="flowPoolData">
                     <template #label="{ data }">
                         <a-tag>{{ data.label }}</a-tag>
                     </template>
                 </a-radio-group>
             </a-form-item>
-            <a-form-item label="流量池" v-if="formState.isTrafficPool == 1">
-                <a-select v-model="formState.poolId" :style="{ width: '380px' }" placeholder="请选择流量池">
+            <a-form-item :label="$t('lotCard.FlowPool')" v-if="formState.isTrafficPool == 1">
+                <a-select v-model="formState.poolId" :style="{ width: '380px' }" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.FlowPool')">
                     <a-option v-for="item of FlowPool" :value="item.id" :label="item.label" />
                 </a-select>
             </a-form-item>
-            <a-form-item label="购卡数量" field="num">
-                <a-input v-model="formState.quantity" placeholder="请输入购卡数量" />
+            <a-form-item :label="$t('lotCard.QuantityCardsPurchased')" field="num">
+                <a-input v-model="formState.quantity" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.QuantityCardsPurchased')" />
             </a-form-item>
             <a-form-item>
-                <a-button type="primary" html-type="submit" style="margin-right: 10px;">确定</a-button>
-                <a-button @click="closeModal(formState)">取消</a-button>
+                <a-button type="primary" html-type="submit" style="margin-right: 10px;">{{ $t('form.Confirm') }}</a-button>
+                <a-button @click="closeModal(formState)">{{ $t('form.Cancel') }}</a-button>
             </a-form-item>
         </a-form>
     </a-modal>
@@ -55,6 +55,8 @@ import { tariffList, ExampleQueryTrafficPool } from "@/api/path/tariffManagement
 import { Getdictionary } from '@/mixins/index.js'
 import { CardPurchase } from '@/api/path/order'
 import { Message } from '@arco-design/web-vue';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,

+ 26 - 24
src/views/order/BuyCard/detaile.vue

@@ -1,71 +1,71 @@
 <template>
-    <a-modal v-model:visible="modelValue" width="800px" title="订单详情" :closable="false">
+    <a-modal v-model:visible="modelValue" width="800px" :title="$t('order.OrderDetails')" :closable="false">
         <div class="detail-box">
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">订单编号</div>
+                    <div class="item-label">{{ $t('order.OrderNum') }}</div>
                     <div class="item-content">{{ FormDataList.id }}</div>
                 </div>
                 <div class="detail-item">
-                    <div class="item-label">订单状态</div>
+                    <div class="item-label">{{ $t('lotCard.orderType') }}</div>
                     <div class="item-content">
-                        <a-tag color="#168cff" v-if="FormDataList.tmsStatus == 1">未发货</a-tag>
-                        <a-tag color="#00b42a" v-if="FormDataList.tmsStatus == 2">已发货</a-tag>
+                        <a-tag color="#168cff" v-if="FormDataList.tmsStatus == 1">{{ $t('order.unshipped') }}</a-tag>
+                        <a-tag color="#00b42a" v-if="FormDataList.tmsStatus == 2">{{ $t('order.shipped') }}</a-tag>
                     </div>
                 </div>
             </div>
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">运营商</div>
+                    <div class="item-label">{{ $t('lotCard.operator') }}</div>
                     <div class="item-content">{{ FormDataList.sourceName }}</div>
                 </div>
                 <div class="detail-item">
-                    <div class="item-label">资费名称</div>
+                    <div class="item-label">{{ $t('order.TariffName') }}</div>
                     <div class="item-content">{{ tariffForm.label }}</div>
                 </div>
             </div>
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">最短订阅周期</div>
-                    <div class="item-content">{{ tariffForm.settlementCycle?.split('~')[0] }}个月</div>
+                    <div class="item-label">{{  $t('order.MinimumSubscriptionPeriod') }}</div>
+                    <div class="item-content">{{ tariffForm.settlementCycle?.split('~')[0] }} {{ $t('order.Months') }}</div>
                 </div>
                 <div class="detail-item">
-                    <div class="item-label">最长订阅周期</div>
-                    <div class="item-content">{{ tariffForm.settlementCycle?.split('~')[1] }}个月</div>
+                    <div class="item-label">{{  $t('order.MaximumSubscriptionPeriod') }}</div>
+                    <div class="item-content">{{ tariffForm.settlementCycle?.split('~')[1] }} {{ $t('order.Months') }}</div>
                 </div>
             </div>
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">计费方式</div>
+                    <div class="item-label">{{ $t('order.BillingMode') }}</div>
                     <div class="item-content">{{ tariffForm.billingMethodName }}</div>
                 </div>
                 <div class="detail-item">
-                    <div class="item-label">结算周期</div>
+                    <div class="item-label">{{ $t('order.SettlementCycle') }}</div>
                     <div class="item-content">{{ tariffForm.billingcycleName }}</div>
                 </div>
             </div>
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">卡类型</div>
+                    <div class="item-label">{{  $t('order.CardType') }}</div>
                     <div class="item-content">{{ FormDataList.cardType }}</div>
                 </div>
                 <div class="detail-item">
-                    <div class="item-label">标准价格</div>
+                    <div class="item-label">{{  $t('order.StandardPrice') }}</div>
                     <div class="item-content">{{ tariffForm.pricingName }}</div>
                 </div>
             </div>
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">流量池</div>
-                    <div class="item-content">{{ FormDataList.isTrafficPool == 1 ? '是' : '否' }}</div>
+                    <div class="item-label">{{  $t('order.FlowPool') }}</div>
+                    <div class="item-content">{{ FormDataList.isTrafficPool == 1 ?  $t('lotCard.Yes') : $t('lotCard.No') }}</div>
                 </div>
             </div>
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">卡数量</div>
+                    <div class="item-label">{{  $t('order.CardNum') }}</div>
                     <div class="item-content">{{ dataDetail.length }}
                         <a-button type="primary" @click="showCard = true" style="margin-left:10px;"
-                            v-if="userType == 1 && FormDataList.moderationStatus == 2">分配卡号</a-button>
+                            v-if="userType == 1 && FormDataList.moderationStatus == 2">{{ $t('order.AllocationCardNumber') }}</a-button>
                     </div>
                 </div>
             </div>
@@ -75,13 +75,13 @@
         </div>
 
         <template #footer>
-            <a-button @click="cancel">取消</a-button>
+            <a-button @click="cancel">{{ $t('form.Cancel')}}</a-button>
         </template>
     </a-modal>
 
     <!-- 分配卡号 -->
-    <a-modal v-model:visible="showCard" title="分配卡号" @cancel="closeModal(showCard, FormDataList)"
-        @before-ok="showCard = false" okText="确认" cancelText="取消">
+    <a-modal v-model:visible="showCard" :title="$t('order.AllocationCardNumber')" @cancel="closeModal(showCard, FormDataList)"
+        @before-ok="showCard = false" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
         <Upload listType="" minx="1" accept=".xlsx" :handelUpload="customRequest" :showRemoveButton="false">
         </Upload>
     </a-modal>
@@ -93,6 +93,8 @@ import { AcquireOrdertariff, DistributionCard,ReturntheOrderCard } from '@/api/p
 import { Message } from '@arco-design/web-vue';
 import Upload from "@/components/upload/index.vue";
 import { Getdictionary } from '@/mixins/index.js'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,
@@ -115,7 +117,7 @@ const state = ref({
     userType: JSON.parse(localStorage.getItem('user_login_information'))?.userType, // 1平台 2用户
 })
 const { tariffForm, showCard,res1,res2,res3,userType } = toRefs(state.value)
-const columnsDetail = [{ title: 'ICCID', dataIndex: 'iccid' },{ title: '卡状态', dataIndex: 'status' },{ title: '创建时间', dataIndex: 'createdAt' }
+const columnsDetail = [{ title: 'ICCID', dataIndex: 'iccid' },{ title: t('order.CardStatus'), dataIndex: 'status' },{ title: t('order.CreationTime'), dataIndex: 'createdAt' }
 ]
 const dataDetail = ref([])
 
@@ -151,7 +153,7 @@ watch(() => FormDataList.value, val => {
     })
     dataDetail.value = []
     ReturntheOrderCard({id:val.id}).then(res=>{
-        dataDetail.value = res.data.map(val=>({...val,status:val.status==1?'正常':'退订'}))
+        dataDetail.value = res.data.map(val=>({...val,status:val.status==1?t('order.normal'):t('order.unsubscribe')}))
     })
 },{deep: true})
 

+ 42 - 40
src/views/order/BuyCard/index.vue

@@ -10,7 +10,7 @@
         <template #icon>
           <icon-plus-circle />
         </template>
-        <template #default>购卡</template>
+        <template #default>{{ $t('order.CardPurchase') }}</template>
       </a-button>
     </div>
     <!-- 数据表格 -->
@@ -26,65 +26,65 @@
         <div class="line_heis" @click="openDetail(record)">{{ record.id }}</div>
       </template>
       <template #statusType="{ record }">
-        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">待审核</a-tag>
-        <a-tag color="#00b42a" v-if="record.moderationStatus == 2">审核通过</a-tag>
-        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">已驳回</a-tag>
+        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">{{$t('order.CardPurchase')}}</a-tag>
+        <a-tag color="#00b42a" v-if="record.moderationStatus == 2">{{ $t('order.PassTheExamination') }}</a-tag>
+        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">{{$t('order.rejected')}}</a-tag>
       </template>
       <template #LogisticsStatus="{ record }">
-        <a-tag color="#168cff" v-if="record.tmsStatus == 1">未发货</a-tag>
-        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">已发货</a-tag>
+        <a-tag color="#168cff" v-if="record.tmsStatus == 1">{{$t('order.unshipped')}}</a-tag>
+        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">{{$t('order.shipped')}}</a-tag>
       </template>
       <template #operate="{ record }">
         <div class="setting">
           <div v-if="userType == 1">
             <a-button type="text" v-if="record.moderationStatus == 1 && record.status == 1"
-              @click="statusOrder(record)">审核</a-button>
-            <a-button @click="uploadModal(record)" type="text">{{ record.contractImg == '' ? '上传合同' : '查看合同'
+              @click="statusOrder(record)">{{$t('order.examine')}}</a-button>
+            <a-button @click="uploadModal(record)" type="text">{{ record.contractImg == '' ? $t('order.UploadContract') : $t('order.ViewTheContract')
               }}</a-button>
           </div>
           <div v-if="userType == 2">
             <a-button type="text" @click="adminCancel(record)"
-              v-if="record.moderationStatus == 2 && userType !== 1">退订</a-button>
+              v-if="record.moderationStatus == 2 && userType !== 1">{{ $t('order.unsubscribe') }}</a-button>
           </div>
           <a-button @click="openPriceing(record)" type="text"
-            v-if="record.moderationStatus == 2 && userType == 1">上传金额</a-button>
-          <a-button @click="openDetail(record)" type="text">查看</a-button>
+            v-if="record.moderationStatus == 2 && userType == 1">{{ $t('order.UploadAmount') }}</a-button>
+          <a-button @click="openDetail(record)" type="text">{{ $t('order.view') }}</a-button>
           <!-- <a-button @click="openDetail(record)" type="text" v-if="userType !== 1">套餐</a-button>
           <a-button @click="openDetail(record)" type="text" v-if="userType !== 1">资费</a-button> -->
-          <a-button @click="openEndDate(record)" type="text" v-if="userType==1">变更有效期</a-button>
+          <a-button @click="openEndDate(record)" type="text" v-if="userType==1">{{ $t('order.ChangeValidity') }}</a-button>
         </div>
       </template>
     </a-table>
 
 
-    <a-modal v-model:visible="uploadContract" width="600px" title="上传合同"
-      @cancel="closeModal(uploadContract, formContract)" @ok="handleBeforeOk" okText="保存" cancelText="关闭">
+    <a-modal v-model:visible="uploadContract" width="600px" :title="$t('order.UploadContract')"
+      @cancel="closeModal(uploadContract, formContract)" @ok="handleBeforeOk" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
       <a-form :model="formContract" auto-label-width>
-        <a-form-item field="customerName" label="客户名称">
+        <a-form-item field="customerName" :label="$t('lotCard.userName')">
           <div class="audit-txt" style="color:#418035;">{{ FormDataList.userName }}</div>
         </a-form-item>
-        <a-form-item field="orderNumber" label="订单编号">
+        <a-form-item field="orderNumber" :label="$t('order.OrderNum')">
           <div class="audit-txt">{{ FormDataList.id }}</div>
         </a-form-item>
-        <a-form-item field="contractImg" label="销售合同">
+        <a-form-item field="contractImg" :label="$t('order.SalesContract')">
           <Upload v-model:model-value="formContract.contractImg" />
         </a-form-item>
       </a-form>
     </a-modal>
 
-    <a-modal v-model:visible="showPrning" title="上传金额" @cancel="closeModal(showPrning, formPreing)" @ok="handelPriceing"
-      okText="保存" cancelText="关闭">
+    <a-modal v-model:visible="showPrning" :title="$t('order.UploadAmount')" @cancel="closeModal(showPrning, formPreing)" @ok="handelPriceing"
+    :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
       <a-form :model="formPreing" auto-label-width>
-        <a-form-item label="采购金额">
-          <a-input v-model="formPreing.amount" placeholder="请输入采购金额" />
+        <a-form-item :label="$t('order.PurchaseAmount')">
+          <a-input v-model="formPreing.amount" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('order.PurchaseAmount')" />
         </a-form-item>
       </a-form>
     </a-modal>
 
-    <a-modal v-model:visible="showEndDate" title="变更有效期" @cancel="closeModal(showEndDate, formEndDate)"
-      @ok="handelEndDate" okText="确认" cancelText="取消">
+    <a-modal v-model:visible="showEndDate" :title="$t('order.ChangeValidity')" @cancel="closeModal(showEndDate, formEndDate)"
+      @ok="handelEndDate" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
       <a-form :model="formEndDate" auto-label-width>
-        <a-form-item label="有效期">
+        <a-form-item :label="$t('lotCard.validity')">
           <a-date-picker v-model="formEndDate.endDate" style="width: 100%;" />
         </a-form-item>
       </a-form>
@@ -110,6 +110,8 @@ import Status from './status.vue'
 import Detaile from './detaile.vue'
 import Search from '@/components/Search/index.vue'
 import returnCard from './returnCard.vue'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 // 数据层
 const state = ref({
   userName: localStorage.getItem('user_login_information')?.username,
@@ -165,21 +167,21 @@ const {
 } = toRefs(state.value);
 
 const columns = [
-  { title: '序号', dataIndex: 'index', align: 'center', ellipsis: true },
-  { title: '订单编号', slotName: 'id', align: 'center', ellipsis: true },
-  { title: '审核状态', slotName: 'statusType', align: 'center', ellipsis: true },
-  { title: '物流状态', slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
-  { title: '客户名称', dataIndex: 'userName', align: 'center', ellipsis: true },
-  { title: '购卡数', dataIndex: 'quantity', align: 'center', ellipsis: true },
-  { title: '静默期(月)', dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
-  { title: '卡类型', dataIndex: 'cardType', align: 'center', ellipsis: true },
-  { title: '运营商名称', dataIndex: 'sourceName', align: 'center', ellipsis: true },
-  { title: '资费', dataIndex: 'trafficName', align: 'center', ellipsis: true },
-  { title: '采购金额', dataIndex: 'amount', align: 'center', ellipsis: true },
-  { title: '合同照片', slotName: 'image', align: 'center', ellipsis: true },
-  { title: '下单时间', dataIndex: 'createdAt', align: 'center', ellipsis: true },
-  { title: '有效期', dataIndex: 'endDate', align: 'center', ellipsis: true },
-  { title: '操作', slotName: 'operate', align: 'center', ellipsis: true }
+  { title: t('order.SerialNumber'), dataIndex: 'index', align: 'center', ellipsis: true },
+  { title: t('order.OrderNum'), slotName: 'id', align: 'center', ellipsis: true },
+  { title: t('order.AuditStatus'), slotName: 'statusType', align: 'center', ellipsis: true },
+  { title: t('order.LogisticsStatus'), slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
+  { title: t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
+  { title: t('order.NumberCardsPurchased'), dataIndex: 'quantity', align: 'center', ellipsis: true },
+  { title: t('order.SilentPeriod')+(t('lotCard.month')), dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
+  { title: t('order.CardType'), dataIndex: 'cardType', align: 'center', ellipsis: true },
+  { title: t('order.CarrierName'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
+  { title: t('order.tariff'), dataIndex: 'trafficName', align: 'center', ellipsis: true },
+  { title: t('order.PurchaseAmount'), dataIndex: 'amount', align: 'center', ellipsis: true },
+  { title: t('order.ContractPhoto'), slotName: 'image', align: 'center', ellipsis: true },
+  { title: t('order.OrderTime'), dataIndex: 'createdAt', align: 'center', ellipsis: true },
+  { title: t('lotCard.validity'), dataIndex: 'endDate', align: 'center', ellipsis: true },
+  { title: t('lotCard.Controls'), slotName: 'operate', align: 'center', ellipsis: true }
 ];
 
 // 订单列表
@@ -269,7 +271,7 @@ const openPriceing = (data) => {
 
 const handelPriceing = async () => {
   if (formPreing.value.amount == '' || formPreing.value.amount == 0) {
-    return Message.error('输入有误')
+    return Message.error(t('order.IncorrectInput'))
   }
   formPreing.value.amount = Number(formPreing.value.amount)
   let res = await SettingPricing(formPreing.value)

+ 5 - 4
src/views/order/BuyCard/returnCard.vue

@@ -1,6 +1,5 @@
 <template>
-    <a-modal v-model:visible="modelValue" width="800px" title="退卡" @cancel="cancel" @ok="submitStatus" okText="确认"
-        cancelText="取消">
+    <a-modal v-model:visible="modelValue" width="800px" :title="$t('order.ReturnTheCard')" @cancel="cancel" @ok="submitStatus" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
         <a-table row-key="iccid" :columns="columns" :data="data" :row-selection="rowSelection"
              v-model:selectedKeys="selectedKeys" :pagination="pagination" />
     </a-modal>
@@ -10,6 +9,8 @@
 import { ref, defineProps, toRef, defineEmits,watch} from 'vue';
 import { Message } from '@arco-design/web-vue';
 import {ReturntheCard} from '@/api/path/order'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,
@@ -21,7 +22,7 @@ const props = defineProps({
 const modelValue = toRef(props, 'modelValue')
 const emit = defineEmits(['update:modelValue', 'submit'])
 const selectedKeys = ref([])
-const columns = [{ title: 'ICCID', dataIndex: 'iccid' },{ title: '卡状态', dataIndex: 'status' },{ title: '创建时间', dataIndex: 'expireTime' }]
+const columns = [{ title: 'ICCID', dataIndex: 'iccid' },{ title: t('order.CardStatus'), dataIndex: 'status' },{ title: t('order.CreationTime'), dataIndex: 'expireTime' }]
 const data = ref()
 const rowSelection = ref({
       type: 'checkbox',
@@ -34,7 +35,7 @@ const cancel = ()=>{
 }
 const submitStatus = async () => {
     if(selectedKeys.value.length === 0){
-        Message.warning('请选择ICCID')
+        Message.warning($t('form.pleaseSelect')+'ICCID')
         return
     }
     await ReturntheCard({iccids:selectedKeys.value,id:props.id})

+ 12 - 10
src/views/order/BuyCard/status.vue

@@ -1,25 +1,25 @@
 <template>
-    <a-modal v-model:visible="modelValue" width="800px" title="审核" @cancel="cancel" @ok="submitStatus"
-        okText="确认" cancelText="取消">
+    <a-modal v-model:visible="modelValue" width="800px" :title="$t('order.examine')" @cancel="cancel" @ok="submitStatus"
+    :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
         <a-form :model="formStatus" :style="{ width: '600px' }">
-            <a-form-item label="客户名称">
+            <a-form-item :label="$t('lotCard.userName')">
                 {{ FormDataList.userName }}
             </a-form-item>
-            <a-form-item label="订单编号">
+            <a-form-item :label="$t('order.OrderNum')">
                 {{ FormDataList.id }}
             </a-form-item>
-            <a-form-item label="资费名称">
+            <a-form-item :label="$t('order.TariffName')">
                 {{ FormDataList.trafficName }}
             </a-form-item>
-            <a-form-item label="审核意见">
+            <a-form-item :label="$t('order.AuditOpinion')">
                 <a-radio-group v-model="formStatus.moderationStatus" :options="optionsStatus">
                     <template #label="{ data }">
                         <a-tag>{{ data.label }}</a-tag>
                     </template>
                 </a-radio-group>
             </a-form-item>
-            <a-form-item label="备注">
-                <a-textarea placeholder="请输入备注" v-model:model-value="formStatus.moderationNotes" allow-clear />
+            <a-form-item :label="$t('lotCard.remark')">
+                <a-textarea :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.remark')" v-model:model-value="formStatus.moderationNotes" allow-clear />
             </a-form-item>
         </a-form>
     </a-modal>
@@ -29,6 +29,8 @@
 import { ref, onMounted, toRefs, defineProps, toRef, defineEmits } from 'vue';
 import { OrderCardStatus } from '@/api/path/order'
 import { Message } from '@arco-design/web-vue';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,
@@ -50,8 +52,8 @@ const state = ref({
         moderationNotes: '', // 审核备注
     },
     optionsStatus: [
-        { label: '审核通过', value: '2' },
-        { label: '驳回', value: '3' },
+        { label: t('order.PassTheExamination'), value: '2' },
+        { label: t('order.TurnDown'), value: '3' },
     ],
 })
 

+ 28 - 26
src/views/order/ReturnCard/index.vue

@@ -18,29 +18,29 @@
         <div class="line_heis" @click="openDetail(record)">{{ record.id }}</div>
       </template>
       <template #statusType="{ record }">
-        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">待审核</a-tag>
-        <a-tag color="#00b42a" v-if="record.moderationStatus == 2">审核通过</a-tag>
-        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">已驳回</a-tag>
+        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">{{$t('order.CardPurchase')}}</a-tag>
+        <a-tag color="#00b42a" v-if="record.moderationStatus == 2">{{ $t('order.PassTheExamination') }}</a-tag>
+        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">{{$t('order.rejected')}}</a-tag>
       </template>
       <template #LogisticsStatus="{ record }">
-        <a-tag color="#168cff" v-if="record.tmsStatus == 1">未发货</a-tag>
-        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">已发货</a-tag>
+        <a-tag color="#168cff" v-if="record.tmsStatus == 1">{{$t('order.unshipped')}}</a-tag>
+        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">{{$t('order.shipped')}}</a-tag>
       </template>
       <template #operate="{ record }">
         <div class="setting">
           <div v-if="userType == 1">
-            <a-button type="text" v-if="record.moderationStatus == 1" @click="statusOrder(record)">审核</a-button>
+            <a-button type="text" v-if="record.moderationStatus == 1" @click="statusOrder(record)">{{$t('order.examine')}}</a-button>
           </div>
-          <a-button @click="openPriceing(record)" type="text" v-if="record.moderationStatus == 2">上传金额</a-button>
+          <a-button @click="openPriceing(record)" type="text" v-if="record.moderationStatus == 2">{{ $t('order.UploadAmount') }}</a-button>
         </div>
       </template>
     </a-table>
 
-    <a-modal v-model:visible="showPrning" title="上传金额" @cancel="closeModal(showPrning, formPreing)" @ok="handelPriceing"
-      okText="保存" cancelText="关闭">
+    <a-modal v-model:visible="showPrning" :title="$t('order.UploadAmount')" @cancel="closeModal(showPrning, formPreing)" @ok="handelPriceing"
+    :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
       <a-form :model="formPreing" auto-label-width>
-        <a-form-item label="退货金额">
-          <a-input v-model="formPreing.returnAmount" placeholder="请输入退货金额" />
+        <a-form-item :label="$t('order.ReturnAmount')">
+          <a-input v-model="formPreing.returnAmount" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('order.ReturnAmount')" />
         </a-form-item>
       </a-form>
     </a-modal>
@@ -57,6 +57,8 @@ import { SettingPricing } from '@/api/path/order'
 import { Getdictionary } from '@/mixins/index.js'
 import Search from '@/components/Search/index.vue'
 import Status from './status.vue'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 // 数据层
 const state = ref({
   userName: localStorage.getItem('user_login_information')?.username,
@@ -87,21 +89,21 @@ const {
 } = toRefs(state.value);
 
 const columns = [
-  { title: '序号', dataIndex: 'index', align: 'center', ellipsis: true },
-  { title: '订单编号', slotName: 'id', align: 'center', ellipsis: true },
-  { title: '审核状态', slotName: 'statusType', align: 'center', ellipsis: true },
-  { title: '物流状态', slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
-  { title: '客户名称', dataIndex: 'userName', align: 'center', ellipsis: true },
-  { title: '购卡数', dataIndex: 'quantity', align: 'center', ellipsis: true },
-  { title: '静默期(月)', dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
-  { title: '卡类型', dataIndex: 'cardType', align: 'center', ellipsis: true },
-  { title: '运营商名称', dataIndex: 'sourceName', align: 'center', ellipsis: true },
-  { title: '资费', dataIndex: 'trafficName', align: 'center', ellipsis: true },
-  { title: '采购金额', dataIndex: 'amount', align: 'center', ellipsis: true },
-  { title: '合同照片', slotName: 'image', align: 'center', ellipsis: true },
-  { title: '下单时间', dataIndex: 'createdAt', align: 'center', ellipsis: true },
-  { title: '有效期', dataIndex: 'endDate', align: 'center', ellipsis: true },
-  { title: '操作', slotName: 'operate', align: 'center', ellipsis: true }
+{ title: t('order.SerialNumber'), dataIndex: 'index', align: 'center', ellipsis: true },
+  { title: t('order.OrderNum'), slotName: 'id', align: 'center', ellipsis: true },
+  { title: t('order.AuditStatus'), slotName: 'statusType', align: 'center', ellipsis: true },
+  { title: t('order.LogisticsStatus'), slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
+  { title: t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
+  { title: t('order.NumberCardsPurchased'), dataIndex: 'quantity', align: 'center', ellipsis: true },
+  { title: t('order.SilentPeriod')+(t('lotCard.month')), dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
+  { title: t('order.CardType'), dataIndex: 'cardType', align: 'center', ellipsis: true },
+  { title: t('order.CarrierName'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
+  { title: t('order.tariff'), dataIndex: 'trafficName', align: 'center', ellipsis: true },
+  { title: t('order.PurchaseAmount'), dataIndex: 'amount', align: 'center', ellipsis: true },
+  { title: t('order.ContractPhoto'), slotName: 'image', align: 'center', ellipsis: true },
+  { title: t('order.OrderTime'), dataIndex: 'createdAt', align: 'center', ellipsis: true },
+  { title: t('lotCard.validity'), dataIndex: 'endDate', align: 'center', ellipsis: true },
+  { title: t('lotCard.Controls'), slotName: 'operate', align: 'center', ellipsis: true }
 ];
 
 // 订单列表

+ 12 - 10
src/views/order/ReturnCard/status.vue

@@ -1,25 +1,25 @@
 <template>
-    <a-modal v-model:visible="modelValue" width="800px" title="审核" @cancel="cancel" @ok="submitStatus"
-        okText="确认" cancelText="取消">
+    <a-modal v-model:visible="modelValue" width="800px" :title="$t('order.examine')" @cancel="cancel" @ok="submitStatus"
+    :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
         <a-form :model="formStatus" :style="{ width: '600px' }">
-            <a-form-item label="客户名称">
+            <a-form-item :label="$t('lotCard.userName')">
                 {{ FormDataList.userName }}
             </a-form-item>
-            <a-form-item label="订单编号">
+            <a-form-item :label="$t('order.OrderNum')">
                 {{ FormDataList.id }}
             </a-form-item>
-            <a-form-item label="资费名称">
+            <a-form-item :label="$t('order.TariffName')">
                 {{ FormDataList.trafficName }}
             </a-form-item>
-            <a-form-item label="审核意见">
+            <a-form-item :label="$t('order.AuditOpinion')">
                 <a-radio-group v-model="formStatus.moderationStatus" :options="optionsStatus">
                     <template #label="{ data }">
                         <a-tag>{{ data.label }}</a-tag>
                     </template>
                 </a-radio-group>
             </a-form-item>
-            <a-form-item label="备注">
-                <a-textarea placeholder="请输入备注" v-model:model-value="formStatus.moderationNotes" allow-clear />
+            <a-form-item :label="$t('lotCard.remark')">
+                <a-textarea :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.remark')" v-model:model-value="formStatus.moderationNotes" allow-clear />
             </a-form-item>
         </a-form>
     </a-modal>
@@ -29,6 +29,8 @@
 import { ref, onMounted, toRefs, defineProps, toRef, defineEmits } from 'vue';
 import { OrderCardStatus } from '@/api/path/order'
 import { Message } from '@arco-design/web-vue';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,
@@ -50,8 +52,8 @@ const state = ref({
         moderationNotes: '', // 审核备注
     },
     optionsStatus: [
-        { label: '审核通过', value: '2' },
-        { label: '驳回', value: '3' },
+        { label: t('order.PassTheExamination'), value: '2' },
+        { label: t('order.TurnDown'), value: '3' },
     ],
 })
 

+ 11 - 10
src/views/tariffManagement/Management/add.vue

@@ -3,7 +3,7 @@
     <a-modal :title="typeIndex == 1 ? $t('form.Add') : $t('form.Edit')" v-model:visible="modelValue"
         @onCancel="resetForm" centered :maskClosable="false" :footer="null" width="700px" :closable="false">
         <a-form ref="formRef" :rules="rules" :model="formState" @submit="handleSubmit">
-            <div class="formTitle">基本信息</div>
+            <div class="formTitle">{{ $t('tariffManagement.BasicInformation') }}</div>
             <a-form-item :label="$t('tariffManagement.source')" field="source">
                 <a-select v-model="formState.source">
                     <a-option v-for=" item in sourceList" :key="item.id" :value="item.value">{{
@@ -15,7 +15,7 @@
             <template v-if="formState.source">
                 <a-form-item :label="$t('tariffManagement.simDataPlanId')" field="simDataPlanId">
                     <a-select v-model="formState.simDataPlanId">
-                        <a-option v-for=" (item, index) in planList" :key="item.id" :value="item.id"> 流量包{{
+                        <a-option v-for=" (item, index) in planList" :key="item.id" :value="item.id">{{ $t('tariffManagement.DataPackage') }} {{
                             item.productName
                         }}
                         </a-option>
@@ -49,7 +49,7 @@
                     </a-option>
                 </a-select>
             </a-form-item>
-            <div class="formTitle">计费信息</div>
+            <div class="formTitle">{{ $t('tariffManagement.BillingInformation') }}</div>
             <a-form-item field="billingCycle" :label="$t('tariffManagement.billingCycle')" required>
                 <a-radio-group v-model="formState.billingCycle" :options="billingCycleData">
                 </a-radio-group>
@@ -57,7 +57,7 @@
             <a-form-item field="" :label="$t('tariffManagement.pricing')" required>
                 <a-input v-model="formState.pricing" v-if="formState.billingMethod == 2">
                     <template #append>
-                        {{ formState.currency === '0' ? '元' : '美金' }}
+                        {{ formState.currency === '0' ? $t('setting.yuan') : $t('setting.USD') }}
                     </template>
                 </a-input>
                 <a-input v-model="formState.trafficBilling" v-if="formState.billingMethod == 1"></a-input>
@@ -67,7 +67,7 @@
                 </a-select>
                 <a-input v-model="formState.trafficBillingAmount" v-if="formState.billingMethod == 1">
                     <template #append>
-                        {{ formState.currency === '0' ? '元' : '美金' }}
+                        {{ formState.currency === '0' ? $t('setting.yuan') : $t('setting.USD') }}
                     </template>
                 </a-input>
             </a-form-item>
@@ -77,14 +77,14 @@
             <a-form-item :label="$t('tariffManagement.MRCName')" field="mrcAmount">
                 <a-input v-model="formState.mrcAmount">
                     <template #append>
-                        {{ formState.currency === '0' ? '元' : '美金' }}
+                        {{ formState.currency === '0' ? $t('setting.yuan') : $t('setting.USD')}}
                     </template>
                 </a-input>
             </a-form-item>
             <a-form-item :label="$t('tariffManagement.networkName')" field="networkAccessFee">
                 <a-input v-model="formState.networkAccessFee">
                     <template #append>
-                        {{ formState.currency === '0' ? '元' : '美金' }}
+                        {{ formState.currency === '0' ? $t('setting.yuan') : $t('setting.USD') }}
                     </template>
                 </a-input>
             </a-form-item>
@@ -106,7 +106,8 @@ import { getSTSInfoList } from '@/api/path/system.api'
 import { updateTariff, addTariff } from "@/api/path/tariffManagement.api"
 import { Getdictionary } from '@/mixins/index.js'
 import { Message } from '@arco-design/web-vue'
-
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,
@@ -203,7 +204,7 @@ const handleSubmit = ({ values, errors }) => {
 
                 if (code == 200) {
                     Message.success({
-                        content: "修改成功!",
+                        content: t('setting.editSuccess'),
                         duration: 2000,
                     })
                     emit('update:modelValue', false)
@@ -214,7 +215,7 @@ const handleSubmit = ({ values, errors }) => {
                 const { code, data } = await addTariff(formVal)
                 if (code == 200) {
                     Message.success({
-                        content: "添加成功!",
+                        content: t('setting.addSuccess'),
                         duration: 2000,
                     })
                     emit('update:modelValue', false)

+ 13 - 10
src/views/tariffManagement/Management/meal.vue

@@ -1,6 +1,7 @@
 <template>
-    <a-modal width="55%" v-model:visible="modelValue" @ok="handleOk" @cancel="handleCancel" title="套餐">
-        <div class="add"><a-button type="primary" @click="addMeal" v-if="role.getRole == 1">添加套餐</a-button></div>
+    <a-modal width="55%" v-model:visible="modelValue" @ok="handleOk" @cancel="handleCancel" :title="$t('tariffManagement.SetMeal')"  :okText="$t('form.Confirm')"
+    :cancelText="$t('form.Cancel')"> 
+        <div class="add"><a-button type="primary" @click="addMeal" v-if="role.getRole == 1">{{ $t('tariffManagement.AddPackage') }}</a-button></div>
         <div class="item_warp">
             <a-table :columns="columns" :data="wanberFloter" style="margin-top: 20px" :pagination="false"
                 :scroll="{ y: 'auto' }">
@@ -11,7 +12,7 @@
                     <a-input v-model="record.price" />
                 </template>
                 <template #currency="{ record, rowIndex }">
-                    <a-select v-model="record.currency" :style="{ width: '300px' }" placeholder="请选择币种"
+                    <a-select v-model="record.currency" :style="{ width: '300px' }" :placeholder="$t('form.datapoolForm.pleaseSelect')"
                         :disabled="role.getRole !== 1">
                         <a-option v-for="res of Pricing" :value="res.value" :label="res.label" />
                     </a-select>
@@ -21,7 +22,7 @@
                 </template>
                 <template #setting="{ record }">
                     <a class="a-link" href="javascript:;" style="margin-right: 1rem" @click="addUpate(record)">{{
-                        record.id == '' ? '添加' : '修改' }}</a>
+                        record.id == '' ? $t('form.add') : $t('form.edit') }}</a>
                     <a-popconfirm :content="$t('form.Delete')" :ok-text="$t('form.Confirm')"
                         :cancel-text="$t('form.Cancel')" @ok="deletaMeal(record.id)">
                         <a class="a-link" href="javascript:;" v-if="role.getRole == 1">{{
@@ -40,6 +41,8 @@ import { Getdictionary } from '@/mixins/index.js'
 import { useSystemStore } from '@/store/modules/systemStore'
 import { Message } from '@arco-design/web-vue'
 import { addTariffPackage, CheckTariffPackages, UpdateTariffTtems, DeleteTariffItems } from '@/api/path/tariffManagement.api'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,
@@ -57,30 +60,30 @@ const indexSet = ref(0)
 
 const emit = defineEmits(['update:modelValue', 'submit'])
 const columns = [{
-    title: '套餐期限(月)',
+    title: t('tariffManagement.PackageTermMonth'),
     dataIndex: 'period',
     slotName: 'period',
     ellipsis: true,
     align: 'center',
 }, {
-    title: '套餐价格',
+    title: t('tariffManagement.PackagePrice'),
     dataIndex: 'price',
     slotName: 'price',
     ellipsis: true,
     align: 'center',
 }, {
-    title: '币种',
+    title: t('tariffManagement.Currency'),
     dataIndex: 'currency',
     slotName: 'currency',
     ellipsis: true,
     align: 'center',
 }, {
-    title: '套餐名称',
+    title: t('lotCard.PackageName'),
     slotName: 'label',
     ellipsis: true,
     align: 'center',
 }, {
-    title: '操作',
+    title: t('lotCard.Controls'),
     slotName: 'setting',
     ellipsis: true,
     align: 'center',
@@ -128,7 +131,7 @@ const addMeal = () => {
 const deletaMeal = async (ids) => {
     let res = await DeleteTariffItems({ id: ids })
     if (res.code === 200) {
-        Message.success("删除成功")
+        Message.success(t('setting.deleteSuccess'))
         await getList()
     }
 }

+ 16 - 15
src/views/tariffManagement/customer/NewCustomerForm.vue

@@ -1,6 +1,7 @@
 <template>
   <a-modal :visible="visible" :title="editMode ? $t('customer.editCustomer') : $t('customer.addCustomer')"
-           :loading="loading" @ok="handleSubmit" @cancel="handleCancel" :width="720" :okText="$t('customer.confirm')">
+           :loading="loading" @ok="handleSubmit" @cancel="handleCancel" :width="720"  :okText="$t('form.Confirm')"
+           :cancelText="$t('form.Cancel')">
     <a-tabs>
       <!-- 基本信息 Tab -->
       <a-tab-pane key="1" :title="$t('customer.basicInfo')">
@@ -160,54 +161,54 @@
         </a-form>
       </a-tab-pane>
 
-      <a-tab-pane key="5" title="预警">
+      <a-tab-pane key="5" :title="$t('forewarning.forewarning')">
         <a-form :model="formData" :rules="rules" ref="formRef" :label-col-props="{ span: 4 }"
                 :wrapper-col-props="{ span: 20 }">
-          <a-divider>预警设置</a-divider>
-          <a-form-item field="amountWarn" label="账号余额报警" required
+          <a-divider>{{ $t('forewarning.EarlyWarningSetting') }}</a-divider>
+          <a-form-item field="amountWarn" :label="$t('forewarning.AccountBalanceAlarm')" required
                        validate-trigger="blur">
-            <a-input v-model="formData.amountWarn" placeholder="请输入" :max-length="60" :style="{ width: '320px' }"
+            <a-input v-model="formData.amountWarn" :placeholder="$t('form.datapoolForm.pleaseEnter')" :max-length="60" :style="{ width: '320px' }"
                      show-word-limit/>
           </a-form-item>
-          <a-form-item field="arriveWarn" label="达量预警" required
+          <a-form-item field="arriveWarn" :label="$t('forewarning.ReachWarning')" required
                        validate-trigger="blur">
             <a-input-number v-model="formData.arriveWarn" :style="{ width: '320px' }"
-                            placeholder="请输入" allow-clear hide-button>
+                            :placeholder="$t('form.datapoolForm.pleaseEnter')" allow-clear hide-button>
               <template #suffix>
                 %
               </template>
             </a-input-number>
           </a-form-item>
-          <a-form-item field="arriveStop" label="达量停机" required
+          <a-form-item field="arriveStop" :label=" $t('forewarning.ShutDown')" required
                        validate-trigger="blur">
             <a-input-number v-model="formData.arriveStop" :style="{ width: '320px' }"
-                            placeholder="请输入" allow-clear hide-button>
+                            :placeholder="$t('form.datapoolForm.pleaseEnter')" allow-clear hide-button>
               <template #suffix>
                 %
               </template>
             </a-input-number>
             <a-radio-group v-model="formData.arriveStopOperation" :options="reachList"></a-radio-group>
           </a-form-item>
-          <a-form-item field="arriveNetwork" label="达量断网" required
+          <a-form-item field="arriveNetwork" :label="$t('forewarning.NetworkOutage')" required
                        validate-trigger="blur">
             <a-input-number v-model="formData.arriveNetwork" :style="{ width: '320px' }"
-                            placeholder="请输入" allow-clear hide-button>
+                            :placeholder="$t('form.datapoolForm.pleaseEnter')" allow-clear hide-button>
               <template #suffix>
                 %
               </template>
             </a-input-number>
             <a-radio-group v-model="formData.arriveStopNetwork" :options="reachList"></a-radio-group>
           </a-form-item>
-          <a-form-item field="warnPhone" label="预警手机" required
+          <a-form-item field="warnPhone" :label="$t('forewarning.EarlyWarningPhone')" required
                        validate-trigger="blur">
             <a-input-number v-model="formData.warnPhone" :style="{ width: '320px' }"
-                            placeholder="请输入" allow-clear hide-button>
+                            :placeholder="$t('form.datapoolForm.pleaseEnter')" allow-clear hide-button>
             </a-input-number>
           </a-form-item>
-          <a-form-item field="warnEmail" label="预警邮箱" required
+          <a-form-item field="warnEmail" :label="$t('forewarning.WarningMailbox')" required
                        validate-trigger="blur">
             <a-input-number v-model="formData.warnEmail" :style="{ width: '320px' }"
-                            placeholder="请输入" allow-clear hide-button>
+                            :placeholder="$t('form.datapoolForm.pleaseEnter')" allow-clear hide-button>
             </a-input-number>
           </a-form-item>
         </a-form>

+ 5 - 3
src/views/tariffManagement/index.vue

@@ -26,7 +26,7 @@
         <a class="a-link" href="javascript:;" style="margin-right: 1rem" @click="dictShowModel(2, record)" v-if="role.getRole == 1">{{
           $t('form.Edit')
         }}</a>
-        <a class="a-link" href="javascript:;" style="margin-right: 1rem" @click="meal(record)">套餐</a>
+        <a class="a-link" href="javascript:;" style="margin-right: 1rem" @click="meal(record)">{{ $t('tariffManagement.SetMeal') }}</a>
         <!-- 删除 -->
         <a-popconfirm :content="$t('form.Delete')" :ok-text="$t('form.Confirm')" :cancel-text="$t('form.Cancel')"
           @ok="handleDel(record.id)">
@@ -39,7 +39,7 @@
 
 
 
-    <a-modal width="70%" :visible="planVisible" title="选择流量包" @ok="handleSubmitPlan" @cancel="handleCancel">
+    <a-modal width="70%" :visible="planVisible" :title="$t('tariffManagement.SelectiveTrafficPacket')" @ok="handleSubmitPlan" @cancel="handleCancel">
       <!-- 搜索条件区 -->
       <div class="search-section">
         <a-form :model="formData" layout="inline">
@@ -77,6 +77,8 @@ import { useSystemStore } from '@/store/modules/systemStore'
 import Meal from './Management/meal.vue'
 import Add from './Management/add.vue'
 import Search from '@/components/Search/index.vue'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
 const role = useSystemStore()
 const { proxy } = getCurrentInstance()
 const route = useRoute();
@@ -183,7 +185,7 @@ const handleDel = async (id) => {
   const { code } = await deleteTariff({ id })
   if (code == 200) {
     Message.success({
-      content: "删除成功!",
+      content: t('setting.deleteSuccess'),
       duration: 2000,
     })
     intData()