添加俄语版本

This commit is contained in:
浅念
2025-04-08 09:30:48 +08:00
parent 9c93214b0f
commit 8beda0c969
16 changed files with 91 additions and 51 deletions
+13 -2
View File
@@ -102,10 +102,21 @@
page { page {
background-color:#F9F9F9; background-color:#F9F9F9;
height: 100%; height: 100%;
font-size: 28rpx; font-size: 24rpx;
/* line-height: 1.8; */ /* line-height: 1.8; */
} }
uni-input{
font-size: 24rpx;
}
textarea {
font-size: 24rpx;
}
.select{
font-size: 24rpx;
}
.u-radio-group--row{
font-size: 24rpx;
}
.fix-pc-padding { .fix-pc-padding {
padding: 0 50px; padding: 0 50px;
} }
+2 -1
View File
@@ -8,7 +8,7 @@ export function request(options){//封装的requset
let { url,data,method } = options; let { url,data,method } = options;
data = data || {}, data = data || {},
uni.showLoading({ uni.showLoading({
title: '加载中' title: ''
}); });
return new Promise((resolve,rejext)=>{ return new Promise((resolve,rejext)=>{
@@ -23,6 +23,7 @@ export function request(options){//封装的requset
title: res.data.message, title: res.data.message,
icon: 'none' icon: 'none'
}); });
uni.clearStorageSync();
setTimeout(() => { setTimeout(() => {
uni.reLaunch({ uni.reLaunch({
url: '/pages/login/index',// 替换为你要跳转的页面路径 url: '/pages/login/index',// 替换为你要跳转的页面路径
+9 -4
View File
@@ -31,7 +31,7 @@ export default {
title: "Управление клиентами", title: "Управление клиентами",
inputhd: "Введите имя клиента или номер телефона", inputhd: "Введите имя клиента или номер телефона",
followtype: "Способ последующие ", followtype: "Способ последующие ",
Online: "Онлайн последующие ", Online: "Линия",
Visit: "Посещение", Visit: "Посещение",
addfollow: "Добавить последующие", addfollow: "Добавить последующие",
followtime: "Время последующие ", followtime: "Время последующие ",
@@ -85,6 +85,7 @@ export default {
Privacy: "Политика конфиденциальности", Privacy: "Политика конфиденциальности",
UserAgreement: "Пользовательское соглашение", UserAgreement: "Пользовательское соглашение",
copyright: "© Henan Xinyouhe Technology Co., Ltd. Все права защищены", copyright: "© Henan Xinyouhe Technology Co., Ltd. Все права защищены",
logoff:'Списание счетов',
logoffmsg: "Следующая информация будет удалена без возможности восстановления", logoffmsg: "Следующая информация будет удалена без возможности восстановления",
logoffts1: "Идентификационные и учетные данные", logoffts1: "Идентификационные и учетные данные",
logoffts2: "Вся информация о клиентах", logoffts2: "Вся информация о клиентах",
@@ -105,7 +106,7 @@ export default {
tday: "Сегодня", tday: "Сегодня",
threeday: "Последние 3 дня", threeday: "Последние 3 дня",
sevenday: "Последние 7 дней", sevenday: "Последние 7 дней",
followup: "Последующие меры", followup: "Последующие",
deal: "Завершено", deal: "Завершено",
lost: "Потеряно", lost: "Потеряно",
cancel: "Отмена", cancel: "Отмена",
@@ -130,6 +131,8 @@ export default {
emailinput: "Введите email", emailinput: "Введите email",
phone: "Телефон", phone: "Телефон",
agreeMsg: "Я прочитал и согласен с", agreeMsg: "Я прочитал и согласен с",
Privacy:'《Политика конфиденциальности》',
UserAgreement:'《Пользовательское соглашение》',
and: "и", and: "и",
empty: "Нет записей~", empty: "Нет записей~",
times: "Время", times: "Время",
@@ -162,13 +165,15 @@ export default {
auth: "Авторизация Feishu", auth: "Авторизация Feishu",
inputnl: "Выберите", inputnl: "Выберите",
noresults: "Нет результатов", noresults: "Нет результатов",
keyword: "Введите ключевое слово для поиска", keyword: "Ключевые слова поиска",
prompt:'Подсказка',
restoremsg: "Подтвердите восстановление данных клиента?", restoremsg: "Подтвердите восстановление данных клиента?",
onedayn: "В течение 1 дня", onedayn: "В течение 1 дня",
threedayn: "В течение 3 дней", threedayn: "В течение 3 дней",
sevendayn: "В течение 7 дней", sevendayn: "В течение 7 дней",
follow: " последующие ", follow: " последующие",
timeout: "Просрочено", timeout: "Просрочено",
day:'Боже.',
hour: "час", hour: "час",
minute: "мин", minute: "мин",
second: "сек", second: "сек",
+1 -3
View File
@@ -62,8 +62,7 @@ export default {
Countryinput:'请选择国家', Countryinput:'请选择国家',
Company:'公司', Company:'公司',
Companyinput:'去定位', Companyinput:'去定位',
CustomerScreening:'客户筛选' CustomerScreening:'客户筛选'
}, },
mine: { mine: {
desc: '我的', desc: '我的',
@@ -195,5 +194,4 @@ export default {
loading:'加载中', loading:'加载中',
downmp:'下载名片', downmp:'下载名片',
downmpmsg:'确定下载当前名片图吗?', downmpmsg:'确定下载当前名片图吗?',
} }
+3 -2
View File
@@ -23,8 +23,9 @@ import Eyu from '@/common/locales/ru.js';
// 引入并使用vue-i18n // 引入并使用vue-i18n
import VueI18n from 'vue-i18n' import VueI18n from 'vue-i18n'
Vue.use(VueI18n) Vue.use(VueI18n)
console.log(uni.getLocale())
let i18nConfig = { let i18nConfig = {
locale: uni.getLocale(),// 获取已设置的语言 locale: uni.getStorageSync('i18locale')?uni.getStorageSync('i18locale'):uni.getLocale(),// 获取已设置的语言
messages: { messages: {
// 这里的属性名是任意的,您也可以把zh设置为cn等,只是后续切换语言时 // 这里的属性名是任意的,您也可以把zh设置为cn等,只是后续切换语言时
// 要标识这里的语言属性,如:this.$i18n.locale = zh|en|cn|xxx // 要标识这里的语言属性,如:this.$i18n.locale = zh|en|cn|xxx
@@ -36,7 +37,7 @@ let i18nConfig = {
// 构造i18n对象 // 构造i18n对象
const i18n = new VueI18n({ const i18n = new VueI18n({
// 默认语言,这里的local属性,对应message中的cn、en属性 // 默认语言,这里的local属性,对应message中的cn、en属性
locale:uni.getLocale(), locale:uni.getStorageSync('i18locale')?uni.getStorageSync('i18locale'):uni.getLocale(),
// 引入语言文件 // 引入语言文件
messages: { messages: {
// 这里的属性名是任意的,您也可以把zh设置为cn等,只是后续切换语言时 // 这里的属性名是任意的,您也可以把zh设置为cn等,只是后续切换语言时
+3 -2
View File
@@ -422,7 +422,7 @@
padding: 18px 20px; padding: 18px 20px;
align-items: center; align-items: center;
font-weight: 500; font-weight: 500;
font-size: 28rpx; font-size: 24rpx;
color: #666666; color: #666666;
.item{ .item{
width: 90px; width: 90px;
@@ -432,7 +432,7 @@
margin-right: -15px; margin-right: -15px;
} }
.cell1{ .cell1{
font-size: 28rpx; font-size: 24rpx;
padding: 18px 20px; padding: 18px 20px;
align-items: center; align-items: center;
font-weight: 500; font-weight: 500;
@@ -462,6 +462,7 @@
width: 92%; width: 92%;
margin-bottom: 40px; margin-bottom: 40px;
margin: 15px 4%; margin: 15px 4%;
font-size: 28rpx;
} }
.mapcont{ .mapcont{
.header{ .header{
+3 -3
View File
@@ -528,7 +528,7 @@
} }
} }
.name{ .name{
font-size: 32rpx; font-size: 30rpx;
font-weight: bold; font-weight: bold;
margin-right: 10px; margin-right: 10px;
} }
@@ -622,7 +622,7 @@
border-radius: 8px; border-radius: 8px;
color: #3471FF; color: #3471FF;
text-align: center; text-align: center;
padding: 5px 0px; padding: 5px 13px;
} }
.row{ .row{
width: 100%; width: 100%;
@@ -630,7 +630,7 @@
.col4{ .col4{
display: inline-block; display: inline-block;
margin: 4px 3px; margin: 4px 3px;
width: 30%; // width: 30%;
} }
} }
.tagactive{ .tagactive{
+1 -1
View File
@@ -478,7 +478,7 @@
margin-right: -15px; margin-right: -15px;
} }
.cell1{ .cell1{
font-size: 28rpx; font-size: 24rpx;
padding: 18px 20px; padding: 18px 20px;
align-items: center; align-items: center;
font-weight: 500; font-weight: 500;
+8 -20
View File
@@ -6,7 +6,7 @@
<view class="name">{{userdatas.contacts}}</view> <view class="name">{{userdatas.contacts}}</view>
<view class="right"> <view class="right">
<text class="medal" :style="{color:(userdatas.magnitude == 0 ?'#F5AB00' : userdatas.magnitude == 1 ?'#8495B8': '#9B7200')}">{{userdatas.magnitude_txt}}</text> <text class="medal" :style="{color:(userdatas.magnitude == 0 ?'#F5AB00' : userdatas.magnitude == 1 ?'#8495B8': '#9B7200')}">{{userdatas.magnitude_txt}}</text>
<text class="tag" :style="{background:(userdatas.follow == 0 ?'#3471FF' : userdatas.follow == 1 ?'#27C89C': '#FF4040')}">{{userdatas.follow_txt}}</text> <text class="tag" :style="{background:(userdatas.follow == 0 ?'#3471FF' : userdatas.follow == 1 ?'#27C89C': '#FF4040')}">{{userdatas.follow==0?$t('followup'):userdatas.follow==1?$t('deal'):$t('lost')}}</text>
</view> </view>
</view> </view>
<u-line margin="20rpx 0px" color="#fff" :hairline="false"></u-line> <u-line margin="20rpx 0px" color="#fff" :hairline="false"></u-line>
@@ -94,7 +94,7 @@
<u-gap height="10" bgColor="#F6F6F6"></u-gap> <u-gap height="10" bgColor="#F6F6F6"></u-gap>
<view class="steps"> <view class="steps">
<view class="title"> <view class="title">
{{$t('customer.followrecord')}} <text class="status" :style="{color:(datas.follow == 0 ?'#3471FF' : datas.follow == 1 ?'#27C89C': '#FF4040')}">{{datas.follow_txt}}</text> {{$t('customer.followrecord')}} <text class="status" :style="{color:(userdatas.follow == 0 ?'#3471FF' : userdatas.follow == 1 ?'#27C89C': '#FF4040')}">{{userdatas.follow==0?$t('followup'):userdatas.follow==1?$t('deal'):$t('lost')}}</text>
</view> </view>
<u-steps v-if="followList.length>0" :current="followList.length" direction="column" dot> <u-steps v-if="followList.length>0" :current="followList.length" direction="column" dot>
<u-steps-item :title="item.type==1? $t('customer.Online') : $t('customer.Visit') " v-for="(item, index) in followList" :key="index"> <u-steps-item :title="item.type==1? $t('customer.Online') : $t('customer.Visit') " v-for="(item, index) in followList" :key="index">
@@ -135,8 +135,7 @@
<empty :list="followList"></empty> <empty :list="followList"></empty>
</view> </view>
<u-gap height="100" bgColor="#fff"></u-gap> <u-gap height="100" bgColor="#fff"></u-gap>
<view class="foot"> <view class="foot">
<!-- <button class="btn1" @click="shownexttime=true">{{$t('customer.NextReminder')}}</button> -->
<button class="btn" @click="nextFn">{{$t('submit')}}</button> <button class="btn" @click="nextFn">{{$t('submit')}}</button>
</view> </view>
<u-picker closeOnClickOverlay :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :defaultIndex="defaultIndexfj" :show="showgrade" @cancel="cancel('showgrade')" @close="close('showgrade')" :columns="getGradeList" keyName="name" @confirm="gradeHandler"></u-picker> <u-picker closeOnClickOverlay :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :defaultIndex="defaultIndexfj" :show="showgrade" @cancel="cancel('showgrade')" @close="close('showgrade')" :columns="getGradeList" keyName="name" @confirm="gradeHandler"></u-picker>
@@ -617,7 +616,7 @@
} }
} }
.name{ .name{
font-size: 32rpx; font-size: 30rpx;
font-weight: bold; font-weight: bold;
margin-right: 10px; margin-right: 10px;
} }
@@ -686,7 +685,7 @@
padding: 18px 20px; padding: 18px 20px;
align-items: center; align-items: center;
font-weight: 500; font-weight: 500;
font-size: 28rpx; font-size: 24rpx;
color: #666666; color: #666666;
.item{ .item{
width: 90px; width: 90px;
@@ -696,7 +695,7 @@
margin-right: -15px; margin-right: -15px;
} }
.cell1{ .cell1{
font-size: 28rpx; font-size: 24rpx;
padding: 18px 20px; padding: 18px 20px;
align-items: center; align-items: center;
font-weight: 500; font-weight: 500;
@@ -722,19 +721,8 @@
color: white; color: white;
border-radius: 50px; border-radius: 50px;
width: 93%; width: 93%;
height: 96rpx; height:88rpx;
line-height: 96rpx; line-height: 88rpx;
margin-top: 20px;
}
.btn1{
font-size: 28rpx;
border: 1px solid #3471FF;
background: #fff;
color: #3471FF;
border-radius: 50px;
width: 45%;
height: 96rpx;
line-height: 96rpx;
margin-top: 20px; margin-top: 20px;
} }
.addimg{ .addimg{
+2 -2
View File
@@ -3,8 +3,8 @@
<view id="map" style="height: 100vh;"></view> <view id="map" style="height: 100vh;"></view>
<!-- 输入框事件 --> <!-- 输入框事件 -->
<view style="display: flex; padding: 30rpx; position: fixed;width: 93%; background: white; top: 0px;"> <view style="display: flex; padding: 30rpx; position: fixed;width: 93%; background: white; top: 0px;">
<input v-model="value" type="text" id="search-box" placeholder="请输入" class="search" @input="getPlacesList" /> <input v-model="value" type="text" id="search-box" :placeholder="$t('keyword')" class="search" @input="getPlacesList" />
<view class="btn" @click="nextfn">确定</view> <view class="btn" @click="nextfn">{{$t('confirm')}}</view>
</view> </view>
<view class="card" v-if="list.length > 0"> <view class="card" v-if="list.length > 0">
<view class="item" v-for="(item, index) in list" :key="index"> <view class="item" v-for="(item, index) in list" :key="index">
+18 -3
View File
@@ -4,7 +4,7 @@
<template #top> <template #top>
<view class="top"> <view class="top">
<!-- <view class="navbar">{{$t('customer.title')}}</view> --> <!-- <view class="navbar">{{$t('customer.title')}}</view> -->
<uni-nav-bar leftText=" " :fixed="true" :border="false" @clickLeft="leftClick" color="#fff" backgroundColor="#3471ff" :statusBar="true" :title="$t('customer.title')"></uni-nav-bar> <uni-nav-bar leftText=" " :fixed="true" :border="false" @clickLeft="leftClick" color="#fff" backgroundColor="rgba(52,113,255,0)" :statusBar="true" :title="$t('customer.title')"></uni-nav-bar>
<view class="topSearch"> <view class="topSearch">
<view class="left"> <view class="left">
@@ -19,7 +19,7 @@
</view> </view>
</view> </view>
<view class="tabsbg"> <view class="tabsbg">
<u-tabs :list="list1" :current="current" lineColor="#fff" :scrollable="false" @click="tabclick" :inactiveStyle="{color: '#fff'}" :activeStyle="{color: '#fff',fontWeight: '500',transform: 'scale(1.05)'}"></u-tabs> <u-tabs :list="list1" :current="current" lineColor="#fff" :scrollable="isey" @click="tabclick" :inactiveStyle="{color: '#fff'}" :activeStyle="{color: '#fff',fontWeight: '500',transform: 'scale(1.05)'}"></u-tabs>
</view> </view>
</template> </template>
<view class="list"> <view class="list">
@@ -95,6 +95,7 @@
columns:[], columns:[],
list1: [], list1: [],
datalist:[], datalist:[],
isey:false
} }
}, },
onLoad(e) { onLoad(e) {
@@ -111,6 +112,12 @@
uni.removeStorageSync('location') uni.removeStorageSync('location')
}, },
onShow() { onShow() {
// var location = uni.getStorageSync('i18locale')?uni.getStorageSync('i18locale'):uni.getLocale()
// if(location=='ru'){
// this.isey=true
// }else{
// this.isey=false
// }
this.queryList(1, 10) this.queryList(1, 10)
this.options1=[{ this.options1=[{
text: this.$t('delete'), text: this.$t('delete'),
@@ -286,6 +293,12 @@
uni-page-body { uni-page-body {
background-color: #F6F6F6 !important; background-color: #F6F6F6 !important;
} }
::v-deep .u-search__content__input{
font-size: 24rpx !important;
}
::v-deep .u-tabs__wrapper__nav__item__text{
font-size: 28rpx !important;
}
.u-swipe-action-item { .u-swipe-action-item {
margin-bottom: 10px; margin-bottom: 10px;
border-radius: 10px; border-radius: 10px;
@@ -362,6 +375,7 @@
border-radius: 20px 0px 0px 20px; border-radius: 20px 0px 0px 20px;
padding: 3px 10px; padding: 3px 10px;
margin-right: -15px; margin-right: -15px;
text-align: right;
} }
.right{ .right{
display: flex; display: flex;
@@ -380,7 +394,7 @@
justify-content: space-between; justify-content: space-between;
color: #222222; color: #222222;
.name{ .name{
font-size: 32rpx; font-size: 30rpx;
font-weight: bold; font-weight: bold;
margin-right: 10px; margin-right: 10px;
} }
@@ -390,6 +404,7 @@
} }
.ststus{ .ststus{
color: #666666; color: #666666;
text-align: right;
} }
.info,.desc{ .info,.desc{
color: #78758E; color: #78758E;
+1 -1
View File
@@ -3,7 +3,7 @@
<z-paging ref="paging" v-model="datalist" @query="queryList" :empty-view-text="$t('Nodata')"> <z-paging ref="paging" v-model="datalist" @query="queryList" :empty-view-text="$t('Nodata')">
<template #top> <template #top>
<view class="top"> <view class="top">
<uni-nav-bar leftText=" " :fixed="true" :border="false" @clickLeft="leftClick" color="#fff" backgroundColor="#3471ff" :statusBar="true" :title="$t('navbar.highseas')"></uni-nav-bar> <uni-nav-bar leftText=" " :fixed="true" :border="false" @clickLeft="leftClick" color="#fff" backgroundColor="rgba(52,113,255,0)" :statusBar="true" :title="$t('navbar.highseas')"></uni-nav-bar>
</view> </view>
</template> </template>
<view class="list"> <view class="list">
+16 -3
View File
@@ -120,7 +120,11 @@
}, { }, {
label: this.$t('en'), label: this.$t('en'),
id: 'en' id: 'en'
}] },{
label: this.$t('ru'),
id: 'ru'
}
]
], ],
columnstime:[ columnstime:[
[{ [{
@@ -193,8 +197,9 @@
var that = this var that = this
uni.setLocale(e.value[0].id) uni.setLocale(e.value[0].id)
this.$i18n.locale = e.value[0].id this.$i18n.locale = e.value[0].id
// uni.setStorageSync('i18locale', e.value[0].id); uni.setStorageSync('i18locale', e.value[0].id);
this.showlang = false this.showlang = false
console.log(uni.getLocale())
this.columns =[ this.columns =[
[{ [{
label: this.$t('zh'), label: this.$t('zh'),
@@ -202,7 +207,11 @@
}, { }, {
label: this.$t('en'), label: this.$t('en'),
id: 'en' id: 'en'
}] },{
label: this.$t('ru'),
id: 'ru'
}
]
]; ];
this.columnstime =[ this.columnstime =[
[{ [{
@@ -442,6 +451,10 @@
.grid-text { .grid-text {
color: #222222; color: #222222;
font-size: 24rpx; font-size: 24rpx;
white-space: nowrap;
width: 95%;
overflow-x: scroll;
text-align: center;
} }
} }
+8 -2
View File
@@ -82,6 +82,9 @@
}, { }, {
label: this.$t('en'), label: this.$t('en'),
id: 'en' id: 'en'
},{
label: this.$t('ru'),
id: 'ru'
}] }]
], ],
language:uni.getLocale() language:uni.getLocale()
@@ -105,7 +108,7 @@
confirmlang(e) { confirmlang(e) {
uni.setLocale(e.value[0].id) uni.setLocale(e.value[0].id)
this.$i18n.locale = e.value[0].id this.$i18n.locale = e.value[0].id
// uni.setStorageSync('i18locale', e.value[0].id); uni.setStorageSync('i18locale', e.value[0].id);
this.language = e.value[0].id this.language = e.value[0].id
this.showlang = false this.showlang = false
this.columns =[ this.columns =[
@@ -115,6 +118,9 @@
}, { }, {
label: this.$t('en'), label: this.$t('en'),
id: 'en' id: 'en'
},{
label: this.$t('ru'),
id: 'ru'
}] }]
]; ];
this.list1 = [{ this.list1 = [{
@@ -186,7 +192,7 @@
language: this.language, language: this.language,
} }
}).then(res => { }).then(res => {
console.log(res.data.data) uni.setStorageSync('i18locale',this.language);
if (res.data.code == -1) { if (res.data.code == -1) {
uni.showToast({ uni.showToast({
title: res.data.message, title: res.data.message,
+3
View File
@@ -261,5 +261,8 @@
width: 92%; width: 92%;
margin-bottom: 40px; margin-bottom: 40px;
margin: 15px 4%; margin: 15px 4%;
font-size: 28rpx;
height: 88rpx;
line-height:88rpx;
} }
</style> </style>
@@ -8,7 +8,6 @@ import c from '.././z-paging-constant'
import interceptor from '../z-paging-interceptor' import interceptor from '../z-paging-interceptor'
const language = uni.getSystemInfoSync().language; const language = uni.getSystemInfoSync().language;
console.log(uni.getLocale())
export default { export default {
data() { data() {
return { return {
@@ -95,7 +94,6 @@ export default {
}, },
// 获取国际化转换后的文本 // 获取国际化转换后的文本
_getI18nText(key, value) { _getI18nText(key, value) {
console.log(this.finalLanguage)
const dataType = Object.prototype.toString.call(value); const dataType = Object.prototype.toString.call(value);
if (dataType === '[object Object]') { if (dataType === '[object Object]') {
const nextValue = value[this.finalLanguage]; const nextValue = value[this.finalLanguage];