Compare commits
2 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
433bb6c897 | |
|
|
73334b4ee1 |
40
App.vue
40
App.vue
|
|
@ -53,6 +53,12 @@
|
||||||
handleoginversion() {
|
handleoginversion() {
|
||||||
let that = this
|
let that = this
|
||||||
that.$model.getLoginVersion({}).then(res => {
|
that.$model.getLoginVersion({}).then(res => {
|
||||||
|
// let language = res.data.language == "zh" ? 'zh-Hans' : res.data.language
|
||||||
|
let language = "zh"
|
||||||
|
uni.setLocale(language)
|
||||||
|
that.$i18n.locale = language
|
||||||
|
that.$store.commit('changeLocale', language)
|
||||||
|
uni.setStorageSync('language', language)
|
||||||
that.$store.dispatch("getHomeConfig") //配置接口信息
|
that.$store.dispatch("getHomeConfig") //配置接口信息
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
that.$tools.handleUserList()
|
that.$tools.handleUserList()
|
||||||
|
|
@ -78,6 +84,8 @@
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '发现新版本',
|
title: '发现新版本',
|
||||||
content: '检查到新版本' + res.data.version + ',是否更新?',
|
content: '检查到新版本' + res.data.version + ',是否更新?',
|
||||||
|
cancelText: that.$t('btnSancellation'),
|
||||||
|
confirmText: that.$t('btnConfirm'),
|
||||||
success: (modalRes) => {
|
success: (modalRes) => {
|
||||||
if (modalRes.confirm) { //确定更新
|
if (modalRes.confirm) { //确定更新
|
||||||
if (platform === 'android') { //安卓更新
|
if (platform === 'android') { //安卓更新
|
||||||
|
|
@ -102,31 +110,19 @@
|
||||||
// console.error('Error fetching data:', error);
|
// console.error('Error fetching data:', error);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 微信小程序更新
|
handleTabBarItem() {
|
||||||
updataWeiXin() {
|
|
||||||
let that = this
|
let that = this
|
||||||
const updateManager = uni.getUpdateManager()
|
uni.setTabBarItem({
|
||||||
// 请求完新版本信息的回调
|
index: 0,
|
||||||
updateManager.onCheckForUpdate(function(res) {
|
text: that.$t('titleHome')
|
||||||
// console.log("是否有新版本", res.hasUpdate)
|
|
||||||
})
|
})
|
||||||
updateManager.onUpdateReady(function() {
|
uni.setTabBarItem({
|
||||||
uni.showModal({
|
index: 1,
|
||||||
title: '更新提示',
|
text: that.$t('titleCount')
|
||||||
content: '新版本已经准备好,是否重启应用?',
|
|
||||||
success: function(res) {
|
|
||||||
if (res.confirm) {
|
|
||||||
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
|
||||||
updateManager.applyUpdate()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
updateManager.onUpdateFailed(function() {
|
|
||||||
uni.showModal({
|
|
||||||
title: '新版本更新失败',
|
|
||||||
content: '请退出并移除小程序,重新打开...',
|
|
||||||
})
|
})
|
||||||
|
uni.setTabBarItem({
|
||||||
|
index: 2,
|
||||||
|
text: that.$t('titleMe')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<!-- 早午晚餐 -->
|
<!-- 早午晚餐 -->
|
||||||
<view class="everyDay">
|
<view class="everyDay">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view><text class="quan"></text>卡路里分析</view>
|
<view><text class="quan"></text>{{$t("countCalorieAnalysis")}}</view>
|
||||||
</view>
|
</view>
|
||||||
<div class="chart-wrap">
|
<div class="chart-wrap">
|
||||||
<qiun-data-charts type="ring" :opts="opts" :chartData="chartData" :canvas2d="true" canvasId="everyDay01"/>
|
<qiun-data-charts type="ring" :opts="opts" :chartData="chartData" :canvas2d="true" canvasId="everyDay01"/>
|
||||||
|
|
@ -23,15 +23,15 @@
|
||||||
<!--营养元素分析 -->
|
<!--营养元素分析 -->
|
||||||
<view class="everyDay">
|
<view class="everyDay">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view><text class="quan"></text>营养元素能量占比</view>
|
<view><text class="quan"></text>{{$t("countNutrientElementEnergyProportion")}}</view>
|
||||||
</view>
|
</view>
|
||||||
<div class="chart-wrap">
|
<div class="chart-wrap">
|
||||||
<qiun-data-charts type="ring" :opts="opts2" :chartData="chartData2" :canvas2d="true" canvasId="everyDay02"/>
|
<qiun-data-charts type="ring" :opts="opts2" :chartData="chartData2" :canvas2d="true" canvasId="everyDay02"/>
|
||||||
</div>
|
</div>
|
||||||
<view class="foodtools">
|
<view class="foodtools">
|
||||||
<view class="top">
|
<view class="top">
|
||||||
<view>营养分类</view>
|
<view>{{$t("countNutritionClassification")}}</view>
|
||||||
<view>摄入</view>
|
<view>{{$t("countIntake")}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="type">
|
<view class="type">
|
||||||
<view class="name">
|
<view class="name">
|
||||||
|
|
@ -66,7 +66,7 @@
|
||||||
<!--营养元素排行榜 -->
|
<!--营养元素排行榜 -->
|
||||||
<view class="everyDay">
|
<view class="everyDay">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view><text class="quan"></text>营养元素排行榜</view>
|
<view><text class="quan"></text>{{$t("countNutritionElementRankingList")}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="foodtools rank_list">
|
<view class="foodtools rank_list">
|
||||||
<view class="topname">{{details.carbohydrate.name}}</view>
|
<view class="topname">{{details.carbohydrate.name}}</view>
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<!-- 成分统计 -->
|
<!-- 成分统计 -->
|
||||||
<view class="everyDay">
|
<view class="everyDay">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view><text class="quan"></text>成分统计</view>
|
<view><text class="quan"></text>{{$t('countComponentStatistics')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="progress">
|
<view class="progress">
|
||||||
<div class="chart-wrap">
|
<div class="chart-wrap">
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
<view class="foodtools">
|
<view class="foodtools">
|
||||||
<view class="type">
|
<view class="type">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view><text class="quan"></text>食物类型</view>
|
<view><text class="quan"></text>{{$t('countFoodTypes')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="list" v-if="info.list.length">
|
<view class="list" v-if="info.list.length">
|
||||||
<uni-swipe-action>
|
<uni-swipe-action>
|
||||||
|
|
@ -54,13 +54,13 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else class="nolist">
|
<view v-else class="nolist">
|
||||||
<image src="/static/none.png"></image>
|
<image src="/static/none.png"></image>
|
||||||
<view>暂无食物</view>
|
<view>{{$t('countNoFood')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 添加食物 -->
|
<!-- 添加食物 -->
|
||||||
<view class="add" @click="handleAddFood()">
|
<view class="add" @click="handleAddFood()">
|
||||||
<text>+</text>添加食物
|
<text>+</text>{{$t('countAddFood')}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -74,11 +74,11 @@
|
||||||
<image :src="activeFoodDetail.pic_url" mode="aspectFill"></image>
|
<image :src="activeFoodDetail.pic_url" mode="aspectFill"></image>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<view class="name">{{activeFoodDetail.name}}</view>
|
<view class="name">{{activeFoodDetail.name}}</view>
|
||||||
<view class="kcal">{{activeFoodDetail.val}}千卡</view>
|
<view class="kcal">{{activeFoodDetail.val}}kcal</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="foodContent">
|
<view class="foodContent">
|
||||||
<view class="title">热量和营养</view>
|
<view class="title">{{$t('CaloriesAndnutrients')}}</view>
|
||||||
<view class="progress">
|
<view class="progress">
|
||||||
<div class="chart-wrap">
|
<div class="chart-wrap">
|
||||||
<qiun-data-charts type="ring" :opts="opts2"
|
<qiun-data-charts type="ring" :opts="opts2"
|
||||||
|
|
@ -94,8 +94,8 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="tips">
|
<view class="tips">
|
||||||
<text>营养素</text>
|
<text>{{$t('Nutrients')}}</text>
|
||||||
<text>{{activeFoodDetail.weight}}含量</text>
|
<text>{{activeFoodDetail.weight}}{{$t('Content')}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="foodDetailList">
|
<view class="foodDetailList">
|
||||||
<view class="foodDetailItem" v-for="(item,index) in activeFoodDetail.nutrients_list"
|
<view class="foodDetailItem" v-for="(item,index) in activeFoodDetail.nutrients_list"
|
||||||
|
|
@ -140,7 +140,7 @@
|
||||||
drawerVisible: false,
|
drawerVisible: false,
|
||||||
chartVisible: false, // 单独控制图表显示
|
chartVisible: false, // 单独控制图表显示
|
||||||
actionOptions: [{
|
actionOptions: [{
|
||||||
text: '删除',
|
text: this.$t('btnDelete'),
|
||||||
style: {
|
style: {
|
||||||
backgroundColor: '#dd524d',
|
backgroundColor: '#dd524d',
|
||||||
borderRadius: '10rpx'
|
borderRadius: '10rpx'
|
||||||
|
|
@ -169,6 +169,9 @@
|
||||||
let that = this
|
let that = this
|
||||||
that.index = options.index
|
that.index = options.index
|
||||||
that.bgimage = that.foodItem[options.index].icon_bg
|
that.bgimage = that.foodItem[options.index].icon_bg
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: this.$t('titleEveryMeal')
|
||||||
|
})
|
||||||
that.handleInfo()
|
that.handleInfo()
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -243,7 +246,7 @@
|
||||||
delAcitionItem(item) {
|
delAcitionItem(item) {
|
||||||
let that = this
|
let that = this
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
content: `是否删除[${item.name}]?`,
|
content: that.$t("WhetherTodelete") + item.name,
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
this.$model.delCEatAction({
|
this.$model.delCEatAction({
|
||||||
|
|
|
||||||
|
|
@ -13,11 +13,11 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="serach-box">
|
<view class="serach-box">
|
||||||
<view class="searchInput">
|
<view class="searchInput">
|
||||||
<input placeholder="请输入..." class="city-serach-input" v-model="search_value" />
|
<input :placeholder="$t('verifyRecord')" class="city-serach-input" v-model="search_value" />
|
||||||
<icon v-if="search_value" class="iconfont icon-error" @click="handlecolse" size="30"></icon>
|
<icon v-if="search_value" class="iconfont icon-error" @click="handlecolse" size="30"></icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="searchBtn">
|
<view class="searchBtn">
|
||||||
<view @click="handleSerach">搜索</view>
|
<view @click="handleSerach">{{$t("Search")}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
<view class="content-box" v-if="!search_list.length">
|
<view class="content-box" v-if="!search_list.length">
|
||||||
<view v-if="history_food.length" class="search-history">
|
<view v-if="history_food.length" class="search-history">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view class="quan mr-5"></view>历史搜索
|
<view class="quan mr-5"></view>{{$t("HistoricalSearch")}}
|
||||||
</view>
|
</view>
|
||||||
<view class="button-container" @click="showAll =! showAll" v-if="history_food.length>10">
|
<view class="button-container" @click="showAll =! showAll" v-if="history_food.length>10">
|
||||||
<image :src="showAll?'/static/arrow-up.png':'/static/arrow-down.png'"></image>
|
<image :src="showAll?'/static/arrow-up.png':'/static/arrow-down.png'"></image>
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="popular-container">
|
<view class="popular-container">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view class="quan mr-5"></view>猜你想搜
|
<view class="quan mr-5"></view>{{$t("wantSearch")}}
|
||||||
</view>
|
</view>
|
||||||
<view class="popular-food-item" v-for="(ite,index) in popular_food" :key="index">
|
<view class="popular-food-item" v-for="(ite,index) in popular_food" :key="index">
|
||||||
<view class="food-title">{{ite.title}}</view>
|
<view class="food-title">{{ite.title}}</view>
|
||||||
|
|
@ -64,17 +64,6 @@
|
||||||
<image src="/static/arrow-down.png"></image>
|
<image src="/static/arrow-down.png"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- #ifdef MP-WEIXIN -->
|
|
||||||
<view class="mic-icon" @touchstart="onVoiceTouchStart" @touchend="onVoiceTouchEnd"
|
|
||||||
@touchcancel="cancelRecording">
|
|
||||||
<uni-icons type="mic-filled" size="20" color="#fff"></uni-icons>
|
|
||||||
语音搜索
|
|
||||||
</view>
|
|
||||||
<!-- <view class="mic-icon mic-icon2" @click="scanCode">
|
|
||||||
<uni-icons type="scan" size="20" color="#fff"></uni-icons>
|
|
||||||
扫一扫
|
|
||||||
</view> -->
|
|
||||||
<!-- #endif -->
|
|
||||||
</view>
|
</view>
|
||||||
<!-- 搜索列表 -->
|
<!-- 搜索列表 -->
|
||||||
<view class="search_list" v-if="search_list.length">
|
<view class="search_list" v-if="search_list.length">
|
||||||
|
|
@ -85,7 +74,7 @@
|
||||||
<text>100g/{{ite.kcal}}kcal</text>
|
<text>100g/{{ite.kcal}}kcal</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="endtext" v-if="!lastPage || page >= lastPage">—— 到底了,看看别的吧 ——</view>
|
<view class="endtext" v-if="!lastPage || page >= lastPage">—— {{$t("msgBottom")}} ——</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 购物车弹框 -->
|
<!-- 购物车弹框 -->
|
||||||
<view class="wrapper activeList" v-if="isShop">
|
<view class="wrapper activeList" v-if="isShop">
|
||||||
|
|
@ -101,13 +90,13 @@
|
||||||
canvasId="search02" />
|
canvasId="search02" />
|
||||||
</view>
|
</view>
|
||||||
<view class="center">
|
<view class="center">
|
||||||
摄入
|
{{$t("countIntake")}}
|
||||||
<text>{{foodInfo[0].today_intake}}</text>
|
<text>{{foodInfo[0].today_intake}}</text>
|
||||||
<view class="unit">Kcal</view>
|
<view class="unit">Kcal</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="mubiao">
|
<view class="mubiao">
|
||||||
目标:<text>{{foodInfo[0].suggestion}}</text>kcal
|
{{$t("titleBody")}}:<text>{{foodInfo[0].suggestion}}</text>kcal
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
|
|
@ -140,8 +129,8 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="box_list_item" v-if="ActiveList.length">
|
<view class="box_list_item" v-if="ActiveList.length">
|
||||||
<view class="length">共<text
|
<view class="length">{{$t("total")}}<text
|
||||||
class="red">{{ActiveList.filter(ite => ite.meals_type == foodName).length}}</text>条记录
|
class="red">{{ActiveList.filter(ite => ite.meals_type == foodName).length}}</text>{{$t("records")}}
|
||||||
</view>
|
</view>
|
||||||
<view class="item" v-for="(ite,ind) in ActiveList" :key="ind"
|
<view class="item" v-for="(ite,ind) in ActiveList" :key="ind"
|
||||||
v-if="ite.meals_type==foodName">
|
v-if="ite.meals_type==foodName">
|
||||||
|
|
@ -158,7 +147,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-else class="nolist list">
|
<view v-else class="nolist list">
|
||||||
<icon class="iconfont icon-wancan"></icon>
|
<icon class="iconfont icon-wancan"></icon>
|
||||||
<text>还没有添加食物</text>
|
<text>{{$t('countNoFood')}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -176,7 +165,7 @@
|
||||||
<image :src="activeType.pic_url" mode="aspectFill"></image>
|
<image :src="activeType.pic_url" mode="aspectFill"></image>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<view class="name">{{activeType.name}}</view>
|
<view class="name">{{activeType.name}}</view>
|
||||||
<view class="kcal">{{activeType.kcal}}千卡/100克</view>
|
<view class="kcal">{{activeType.kcal}}kcal/100克</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -203,8 +192,8 @@
|
||||||
<view class="foodDetail">
|
<view class="foodDetail">
|
||||||
<view class="foodContent">
|
<view class="foodContent">
|
||||||
<view class="tips">
|
<view class="tips">
|
||||||
<text>营养素</text>
|
<text>{{$t('Nutrients')}}</text>
|
||||||
<text>{{(activeType.weight).toFixed(1)}}克含量</text>
|
<text>{{(activeType.weight).toFixed(1)}}g{{$t('Content')}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="foodDetailList">
|
<view class="foodDetailList">
|
||||||
<view class="foodDetailItem" v-for="(item,index) in activeType.nutrients_list"
|
<view class="foodDetailItem" v-for="(item,index) in activeType.nutrients_list"
|
||||||
|
|
@ -221,30 +210,6 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 语音弹框 -->
|
|
||||||
<view class="wrapper" v-if="showAutoSearchDlg">
|
|
||||||
<view class="auto-search-dialog">
|
|
||||||
<view class="auto-search-inner">
|
|
||||||
<view class="voice-wave">
|
|
||||||
<view class="wave-bar"></view>
|
|
||||||
<view class="wave-bar"></view>
|
|
||||||
<view class="wave-bar"></view>
|
|
||||||
<view class="wave-bar"></view>
|
|
||||||
<view class="wave-bar"></view>
|
|
||||||
<view class="wave-bar"></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- s扫一扫弹框 -->
|
|
||||||
<view class="wrapper wrapperScan" v-if="showScanCodeDlg">
|
|
||||||
<view class="auto-search-dialog" @click="showScanCodeDlg = false">
|
|
||||||
<view class="auto-search-inner">
|
|
||||||
<text>提示</text>
|
|
||||||
{{ScanCodeMsg}}
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -252,9 +217,6 @@
|
||||||
import {
|
import {
|
||||||
mapState
|
mapState
|
||||||
} from "vuex";
|
} from "vuex";
|
||||||
// #ifdef MP-WEIXIN
|
|
||||||
const plugin = requirePlugin("WechatSI")
|
|
||||||
// #endif
|
|
||||||
import blueTooth from "@/components/foodIndex/bluetooth_food.vue"
|
import blueTooth from "@/components/foodIndex/bluetooth_food.vue"
|
||||||
import qiunDataCharts from '@/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue';
|
import qiunDataCharts from '@/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue';
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -305,6 +267,9 @@
|
||||||
that.handleList()
|
that.handleList()
|
||||||
that.showScanCodeDlg = false
|
that.showScanCodeDlg = false
|
||||||
that.time = that.countFoodInfo.date
|
that.time = that.countFoodInfo.date
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: this.$t('titleCountSearch')
|
||||||
|
})
|
||||||
that.foodName = options.name
|
that.foodName = options.name
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -318,25 +283,11 @@
|
||||||
deep: true
|
deep: true
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
|
||||||
let that = this
|
|
||||||
// #ifdef MP-WEIXIN
|
|
||||||
that.voiceManager = plugin.getRecordRecognitionManager()
|
|
||||||
that.voiceManager.onStop = function(res) {
|
|
||||||
that.search_value = res.result.replace('。', '')
|
|
||||||
that.handleSerach()
|
|
||||||
}
|
|
||||||
that.voiceManager.onError = function(res) {
|
|
||||||
console.error("error msg", res.retcode)
|
|
||||||
}
|
|
||||||
that.voiceManager.stop()
|
|
||||||
// #endif
|
|
||||||
},
|
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
let that = this
|
let that = this
|
||||||
if (!this.lastPage || this.page >= this.lastPage) {
|
if (!this.lastPage || this.page >= this.lastPage) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '没有更多数据!',
|
title: this.$t('noMoreData'),
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
|
@ -356,35 +307,6 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
scanCode() {
|
|
||||||
let that = this
|
|
||||||
uni.scanCode({
|
|
||||||
onlyFromCamera: true,
|
|
||||||
success: function(res) {
|
|
||||||
console.log('条码类型:' + res.scanType);
|
|
||||||
console.log('条码内容:' + res.result);
|
|
||||||
uni.showLoading({
|
|
||||||
title: '搜索中'
|
|
||||||
});
|
|
||||||
that.$model.getPhotoSearch({
|
|
||||||
barcode: res.result,
|
|
||||||
}).then(res => {
|
|
||||||
uni.hideLoading();
|
|
||||||
console.log("1111111111111", res)
|
|
||||||
if (res.code != 0) {
|
|
||||||
that.ScanCodeMsg = res.msg
|
|
||||||
that.showScanCodeDlg = true
|
|
||||||
return
|
|
||||||
}
|
|
||||||
that.handleDetail(res.data)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
fail: res => {
|
|
||||||
that.$api.msg("您已取消操作")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 购物车早午晚餐切换
|
// 购物车早午晚餐切换
|
||||||
handleToggle(name) {
|
handleToggle(name) {
|
||||||
this.search_value = ""
|
this.search_value = ""
|
||||||
|
|
@ -489,7 +411,7 @@
|
||||||
let that = this
|
let that = this
|
||||||
that.search_list = []
|
that.search_list = []
|
||||||
if (that.search_value == "") {
|
if (that.search_value == "") {
|
||||||
that.$tools.msg("输入关键字后搜索")
|
that.$tools.msg(this.$t('searchkeywords'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
that.$model.getFoodSearch({
|
that.$model.getFoodSearch({
|
||||||
|
|
@ -527,7 +449,7 @@
|
||||||
handledelactive(ite) {
|
handledelactive(ite) {
|
||||||
let that = this
|
let that = this
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
content: `是否删除[${ite.name}]?`,
|
content: this.$t('WhetherTodelete') + ite.name,
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
this.$model.delCEatAction({
|
this.$model.delCEatAction({
|
||||||
|
|
@ -572,9 +494,9 @@
|
||||||
},
|
},
|
||||||
unitConversion(unit) {
|
unitConversion(unit) {
|
||||||
if (unit == 'kcal') {
|
if (unit == 'kcal') {
|
||||||
return '千卡'
|
return 'kcal'
|
||||||
} else if (unit == 'g') {
|
} else if (unit == 'g') {
|
||||||
return '克'
|
return 'g'
|
||||||
}
|
}
|
||||||
return unit
|
return unit
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="kcal">
|
<view class="kcal">
|
||||||
<view class="set">
|
<view class="set">
|
||||||
<input type="digit" v-model="weight" placeholder="请输入" :focus="focus" @blur="handleBlur">
|
<input type="digit" v-model="weight" :placeholder="$t('verifyRecord')" :focus="focus" @blur="handleBlur">
|
||||||
<uni-icons v-if="weight!=''" type="close" size="24" class="uni-iocns" color="#999"
|
<uni-icons v-if="weight!=''" type="close" size="24" class="uni-iocns" color="#999"
|
||||||
@click="handleclear"></uni-icons>
|
@click="handleclear"></uni-icons>
|
||||||
<view class="num">
|
<view class="num">
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="kcal">
|
<view class="kcal">
|
||||||
<view class="text">
|
<view class="text">
|
||||||
营养占比
|
{{$t('countNutritionalProportion')}}
|
||||||
</view>
|
</view>
|
||||||
<view class="slider" v-if="isShow">
|
<view class="slider" v-if="isShow">
|
||||||
<llt-slider-range :model-value="rangeValue" @change="handleChange" />
|
<llt-slider-range :model-value="rangeValue" @change="handleChange" />
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
<text>{{ite}}</text>
|
<text>{{ite}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="subbtn" @click="handleEditKcal">保存</view>
|
<view class="subbtn" @click="handleEditKcal">{{$t('btnSubmit')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -133,7 +133,7 @@
|
||||||
handleEditKcal() {
|
handleEditKcal() {
|
||||||
let that = this
|
let that = this
|
||||||
if (that.weight == '' || Number(that.weight) <= 0) {
|
if (that.weight == '' || Number(that.weight) <= 0) {
|
||||||
that.$tools.msg("请输入卡路里")
|
that.$tools.msg(that.$t('verifyCalorie'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
that.$model.getCountSetUserKcal({
|
that.$model.getCountSetUserKcal({
|
||||||
|
|
@ -147,7 +147,7 @@
|
||||||
fat_p: that.fat_p,
|
fat_p: that.fat_p,
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
that.$tools.msg("设置成功")
|
that.$tools.msg(that.$t('msgSetSuccess'))
|
||||||
that.$store.dispatch('getUserInfo', {
|
that.$store.dispatch('getUserInfo', {
|
||||||
aud_id: that.user.aud_id
|
aud_id: that.user.aud_id
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<view class="list" v-for="(item,ind) in infoList" :key="ind" @click="handleDetail(item)">
|
<view class="list" v-for="(item,ind) in infoList" :key="ind" @click="handleDetail(item)">
|
||||||
<view class="time">{{item.time}}</view>
|
<view class="time">{{item.time}}</view>
|
||||||
<view class="kcal">
|
<view class="kcal">
|
||||||
<view>摄入卡路里<text>{{item.val}}</text>{{item.unit}}</view>
|
<view>{{$t('countIntake')}}{{$t('kcal')}}<text>{{item.val}}</text>{{item.unit}}</view>
|
||||||
<view class="status">
|
<view class="status">
|
||||||
<text class="quan0" :style="'background:'+item.color"></text>
|
<text class="quan0" :style="'background:'+item.color"></text>
|
||||||
{{item.describe}}
|
{{item.describe}}
|
||||||
|
|
@ -13,10 +13,10 @@
|
||||||
<uni-icons type="forward" size="20" color="#666"></uni-icons>
|
<uni-icons type="forward" size="20" color="#666"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="endtext" v-if="!lastPage || page >= lastPage">—— 到底了,看看别的吧 ——</view>
|
<view class="endtext" v-if="!lastPage || page >= lastPage">—— {{$t('msgBottom')}} ——</view>
|
||||||
<view v-if="!infoList.length" class="nolist">
|
<view v-if="!infoList.length" class="nolist">
|
||||||
<icon class="iconfont icon-wancan"></icon>
|
<icon class="iconfont icon-wancan"></icon>
|
||||||
<text>还没有记录哦</text>
|
<text>{{$t('msgNoMoreData')}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
@ -46,6 +46,9 @@
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
let that = this
|
let that = this
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: that.$t('titleHistory')
|
||||||
|
})
|
||||||
that.page = 1
|
that.page = 1
|
||||||
that.handleList()
|
that.handleList()
|
||||||
},
|
},
|
||||||
|
|
@ -53,7 +56,7 @@
|
||||||
let that = this
|
let that = this
|
||||||
if (!this.lastPage || this.page >= this.lastPage) {
|
if (!this.lastPage || this.page >= this.lastPage) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '没有更多数据!',
|
title: that.$t('noMoreData'),
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -2,78 +2,74 @@
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="bg"></view>
|
<view class="bg"></view>
|
||||||
<view class="top">
|
<view class="top">
|
||||||
|
<view class="language">
|
||||||
|
<picker mode="selector" @change="changeClickLanguage" :range="languageList" range-key="name"
|
||||||
|
:value="levelInd">
|
||||||
|
<view>
|
||||||
|
{{$t('titleLanguage')}}
|
||||||
|
<icon class="iconfont icon-arrow-down"></icon>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
<view class="logo">
|
||||||
<image src="../../static/logo2.png"></image>
|
<image src="../../static/logo2.png"></image>
|
||||||
<text>Reedaw</text>
|
<text>Reedaw</text>
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
<view class="login box_shadow">
|
<view class="login box_shadow">
|
||||||
<view class="title">登录</view>
|
<view class="title">{{$t("titleLogin")}}</view>
|
||||||
<view class="toggle cblue" @click="handleToggle">
|
<view class="toggle cblue" @click="handleToggle">
|
||||||
切换登录
|
{{$t("titleToggleLogin")}}
|
||||||
</view>
|
</view>
|
||||||
<view class="editem">
|
<view class="editem">
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="text">手机号/邮箱</view>
|
<view class="text">{{$t("infoEmail")}}</view>
|
||||||
<view class="input">
|
<view class="input">
|
||||||
<input v-model="phone" />
|
<input v-model="phone" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 验证码登录 -->
|
<!-- 验证码登录 -->
|
||||||
<view class="item " v-if="isCode">
|
<view class="item " v-if="isCode">
|
||||||
<view class="text">验证码</view>
|
<view class="text">{{$t("titleCode")}}</view>
|
||||||
<view class="input yanzhengma">
|
<view class="input yanzhengma">
|
||||||
<input class="uni-input" v-model="code" />
|
<input class="uni-input" v-model="code" />
|
||||||
<button class="code" type="none" @click="handleCode" v-model="code"
|
<button class="code" type="none" @click="handleCode" v-model="code"
|
||||||
:disabled="disabled">{{second<60 ? second+'S后重发':'获取验证码'}}
|
:disabled="disabled">{{second<60 ? second+$t("titleSendCodeRetry"):$t("titleSendCode")}}
|
||||||
</button>
|
</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 密码登录 -->
|
<!-- 密码登录 -->
|
||||||
<view class="item " v-else>
|
<view class="item " v-else>
|
||||||
<view class="text">密码</view>
|
<view class="text">{{$t("titlePassword")}}</view>
|
||||||
<view class="input">
|
<view class="input">
|
||||||
<input class="uni-input" v-model="password" />
|
<input class="uni-input" v-model="password" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="forget " v-if="!isCode">
|
<view class="forget " v-if="!isCode">
|
||||||
<text @click="handlePassword('forgetPassword')">忘记密码?</text>
|
<text @click="handlePassword('forgetPassword')">{{$t("titleForgotPassword")}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="xieyi">
|
<view class="xieyi">
|
||||||
<checkbox-group @change="checkboxChange" class="group">
|
<checkbox-group @change="checkboxChange" class="group">
|
||||||
<label>
|
<label>
|
||||||
<checkbox :value="1" style="transform:scale(0.7)" />阅读并同意
|
<checkbox :value="1" style="transform:scale(0.7)" />{{$t("titleAgreementText")}}
|
||||||
<!-- <text @click.stop @click="handleUserXieyi" class="blue">《用户协议》</text>和 -->
|
<text @click.stop @click="handlexieyi" class="blue">《{{$t("titleAgreementContntText")}}》</text>
|
||||||
<text @click.stop @click="handlexieyi" class="blue">《隐私协议》</text>
|
|
||||||
</label>
|
</label>
|
||||||
</checkbox-group>
|
</checkbox-group>
|
||||||
</view>
|
</view>
|
||||||
<view class="btnlogin" @click="handleTelLogin">登录</view>
|
<view class="btnlogin" @click="handleTelLogin">{{$t("titleLogin")}}</view>
|
||||||
<view class="btngroup" @click="handlePassword('register')">
|
<view class="btngroup" @click="handlePassword('register')">
|
||||||
<text>注册</text>
|
<text>{{$t("titleRegister")}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- #ifdef MP-WEIXIN -->
|
|
||||||
<view class="wxbtn">
|
|
||||||
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" v-if="value==1">
|
|
||||||
<view>
|
|
||||||
<image src="../../static/phone.png"></image>
|
|
||||||
</view>
|
|
||||||
<text>手机号快捷登录</text>
|
|
||||||
</button>
|
|
||||||
<button v-else @click="handleIsTel">
|
|
||||||
<view>
|
|
||||||
<image src="../../static/phone.png"></image>
|
|
||||||
</view>
|
|
||||||
<text>手机号快捷登录</text>
|
|
||||||
</button>
|
|
||||||
</view>
|
|
||||||
<!-- #endif -->
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import {
|
||||||
|
mapState
|
||||||
|
} from "vuex";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -87,49 +83,88 @@
|
||||||
loginCode: ""
|
loginCode: ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(["user", 'configInfo', "setLocale"]),
|
||||||
|
languageList() {
|
||||||
|
let that = this
|
||||||
|
let languageList = this.configInfo.language_arr
|
||||||
|
that.levelInd = languageList.findIndex(ite => ite.key == this.setLocale)
|
||||||
|
return languageList
|
||||||
|
}
|
||||||
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
// #ifdef MP-WEIXIN
|
let that = this
|
||||||
this.login()
|
uni.setNavigationBarTitle({
|
||||||
// #endif
|
title: that.$t('titleLogin')
|
||||||
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 勾选协议
|
// 勾选协议
|
||||||
checkboxChange(e) {
|
checkboxChange(e) {
|
||||||
this.value = e.detail.value.length ? e.detail.value[0] : "0"
|
this.value = e.detail.value.length ? e.detail.value[0] : "0"
|
||||||
},
|
},
|
||||||
|
// 语言切换
|
||||||
|
changeClickLanguage(e) {
|
||||||
|
let that = this
|
||||||
|
let key = that.languageList[e.target.value].key
|
||||||
|
let val = that.languageList[e.target.value].val
|
||||||
|
that.levelInd = e.target.value
|
||||||
|
that.$model.getSetLanguage({
|
||||||
|
language: val,
|
||||||
|
}).then(res => {
|
||||||
|
that.$i18n.locale = key
|
||||||
|
uni.setStorageSync('language', key)
|
||||||
|
that.$store.commit('changeLocale', key)
|
||||||
|
that.$store.dispatch("getHomeConfig")
|
||||||
|
that.$tools.handleUserList()
|
||||||
|
that.handleTabBarItem()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleTabBarItem() {
|
||||||
|
let that = this
|
||||||
|
uni.setTabBarItem({
|
||||||
|
index: 0,
|
||||||
|
text: that.$t('titleHome')
|
||||||
|
})
|
||||||
|
uni.setTabBarItem({
|
||||||
|
index: 1,
|
||||||
|
text: that.$t('titleCount')
|
||||||
|
})
|
||||||
|
uni.setTabBarItem({
|
||||||
|
index: 2,
|
||||||
|
text: that.$t('titleMe')
|
||||||
|
})
|
||||||
|
},
|
||||||
// 登录、
|
// 登录、
|
||||||
handleTelLogin() {
|
handleTelLogin() {
|
||||||
let that = this
|
let that = this
|
||||||
let phoneType = that.phone.indexOf("@") !== -1
|
|
||||||
if (that.value == 0) {
|
if (that.value == 0) {
|
||||||
that.$tools.msg("请先确认勾选协议")
|
that.$tools.msg(that.$t("verifyAgreement"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!phoneType && !(/^1[3456789]\d{9}$/.test(that.phone))) {
|
if (!(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
||||||
that.$tools.msg("请输入正确的手机号")
|
that.$tools.msg(that.$t("verifyEmailCorrect"))
|
||||||
return
|
|
||||||
}
|
|
||||||
if (phoneType && !(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
|
||||||
that.$tools.msg("请输入正确的邮箱")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (that.isCode && !that.code) {
|
if (that.isCode && !that.code) {
|
||||||
that.$tools.msg("请输入验证码")
|
that.$tools.msg(that.$t("verifyCode"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!that.isCode && !that.password) {
|
if (!that.isCode && !that.password) {
|
||||||
that.$tools.msg('请输入正确密码')
|
that.$tools.msg(that.$t("verifyPassword"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
let val = that.languageList[that.levelInd].val
|
||||||
this.$model.getonlogin({
|
this.$model.getonlogin({
|
||||||
data: that.phone,
|
data: that.phone,
|
||||||
validate_data: that.isCode ? that.code : that.password,
|
validate_data: that.isCode ? that.code : that.password,
|
||||||
validate_type: that.isCode ? 'code' : 'password'
|
validate_type: that.isCode ? 'code' : 'password',
|
||||||
|
language: val
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log("data", res.data)
|
console.log("data", res.data)
|
||||||
that.$tools.msg(res.msg)
|
that.$tools.msg(res.msg)
|
||||||
if (res.code != 0) return
|
if (res.code != 0) return
|
||||||
that.$tools.msg("登录成功")
|
that.$tools.msg(that.$t("msgLoginSuccess"))
|
||||||
uni.setStorageSync('token', res.data.token)
|
uni.setStorageSync('token', res.data.token)
|
||||||
uni.setStorageSync('aan_id', res.data.aan_id)
|
uni.setStorageSync('aan_id', res.data.aan_id)
|
||||||
that.$tools.handleUserList()
|
that.$tools.handleUserList()
|
||||||
|
|
@ -143,13 +178,8 @@
|
||||||
// 获取验证码
|
// 获取验证码
|
||||||
handleCode() {
|
handleCode() {
|
||||||
let that = this
|
let that = this
|
||||||
let phoneType = that.phone.indexOf("@") !== -1
|
if (!(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
||||||
if (!phoneType && !(/^1[3456789]\d{9}$/.test(that.phone))) {
|
that.$tools.msg(that.$t("verifyEmailCorrect"))
|
||||||
that.$tools.msg("请输入正确的手机号")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (phoneType && !(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
|
||||||
that.$tools.msg("请输入正确的邮箱")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
@ -176,45 +206,10 @@
|
||||||
//
|
//
|
||||||
handleIsTel() {
|
handleIsTel() {
|
||||||
if (this.value == 0) {
|
if (this.value == 0) {
|
||||||
this.$tools.msg("请先确认勾选协议")
|
this.$tools.msg(that.$t("verifyAgreement"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 获取code
|
|
||||||
login() {
|
|
||||||
let that = this
|
|
||||||
uni.login({
|
|
||||||
success(res) {
|
|
||||||
if (res.code) {
|
|
||||||
if (res.errMsg = "login:ok") {
|
|
||||||
that.loginCode = res.code
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 授权
|
|
||||||
getPhoneNumber(res) {
|
|
||||||
const that = this
|
|
||||||
if (res.detail.errMsg == 'getPhoneNumber:ok') {
|
|
||||||
this.$model.getRegisterPhone({
|
|
||||||
code: that.loginCode,
|
|
||||||
encryptedData: res.detail.encryptedData,
|
|
||||||
iv: res.detail.iv,
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.value = 1
|
|
||||||
uni.setStorageSync('token', res.data.token)
|
|
||||||
uni.setStorageSync('aan_id', res.data.aan_id)
|
|
||||||
that.$tools.handleUserList()
|
|
||||||
setTimeout(function() {
|
|
||||||
uni.reLaunch({
|
|
||||||
url: "/pages/index/index"
|
|
||||||
})
|
|
||||||
}, 1000)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleToggle() {
|
handleToggle() {
|
||||||
this.phone = ""
|
this.phone = ""
|
||||||
this.isCode = !this.isCode
|
this.isCode = !this.isCode
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,15 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="list">
|
<view class="list">
|
||||||
<view class="item" @click="handleVersion">
|
<view class="item" @click="handleVersion">
|
||||||
<view class="left">版本更新</view>
|
<view class="left">{{$t("titleVersionUpdate")}}</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<text class="new" v-if="version==-1">新版本{{phoneInfo.versionUrl.version}}</text>
|
<text class="new" v-if="version==-1">{{$t("titleNewVersion")}}{{phoneInfo.versionUrl.version}}</text>
|
||||||
<uni-icons type="right"></uni-icons>
|
<uni-icons type="right"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<a href="https://tc.pcxbc.com/reedaw/privacy_policy" class="href">
|
<a href="https://tc.pcxbc.com/reedaw/privacy_policy" class="href">
|
||||||
<text class="left">隐私协议</text>
|
<text class="left">{{$t("titleAgreementContntText")}}</text>
|
||||||
<uni-icons type="right"></uni-icons>
|
<uni-icons type="right"></uni-icons>
|
||||||
</a>
|
</a>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
if (that.version == -1) {
|
if (that.version == -1) {
|
||||||
if (that.phoneInfo.platform === 'android') {
|
if (that.phoneInfo.platform === 'android') {
|
||||||
uni.setStorageSync('VERSION', that.phoneInfo.versionUrl.version)
|
uni.setStorageSync('VERSION', that.phoneInfo.versionUrl.version)
|
||||||
let showLoading = plus.nativeUI.showWaiting('正在下载')
|
let showLoading = plus.nativeUI.showWaiting(that.$t("msgDownloading"))
|
||||||
dtask = uni.downloadFile({
|
dtask = uni.downloadFile({
|
||||||
url: that.phoneInfo.versionUrl.url,
|
url: that.phoneInfo.versionUrl.url,
|
||||||
success: (downloadRes) => {
|
success: (downloadRes) => {
|
||||||
|
|
@ -84,13 +84,13 @@
|
||||||
},
|
},
|
||||||
fail: () => {
|
fail: () => {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '升级失败',
|
title: that.$t("msgUpgradeFail"),
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
dtask.onProgressUpdate((res) => {
|
dtask.onProgressUpdate((res) => {
|
||||||
showLoading.setTitle(" 正在下载" + res.progress + "% ");
|
showLoading.setTitle(that.$t("msgDownloading") + res.progress + "% ");
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
plus.runtime.launchApplication({
|
plus.runtime.launchApplication({
|
||||||
|
|
@ -98,7 +98,7 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
that.$tools.msg("已经是最新版本了!")
|
that.$tools.msg(that.$t("msgLatestVersion"))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 版本信息
|
// 版本信息
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="common">
|
<view class="common">
|
||||||
<view class="add" @click="handleAddUser">
|
<view class="add" @click="handleAddUser">
|
||||||
<icon class="iconfont icon-tianjia"></icon>添加成员
|
<icon class="iconfont icon-tianjia"></icon>{{$t('titleManageAdd')}}
|
||||||
</view>
|
</view>
|
||||||
<view class="box" v-if="familayList.lenght!=0">
|
<view class="box" v-if="familayList.lenght!=0">
|
||||||
<view class="list">
|
<view class="list">
|
||||||
|
|
@ -16,13 +16,13 @@
|
||||||
{{item.nickname}}
|
{{item.nickname}}
|
||||||
</view>
|
</view>
|
||||||
<view class="title2">
|
<view class="title2">
|
||||||
<text>{{item.gender==1?'男':'女'}}</text>
|
<text>{{item.gender==1?$t('infoMan'):$t('infoWoman')}}</text>
|
||||||
<text>{{item.age}}岁</text>
|
<text>{{item.age}}{{$t('infoAgeunit')}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right" @click.stop>
|
<view class="right" @click.stop>
|
||||||
<view class="blueBtn" @click="editorInfo(item)">编辑</view>
|
<view class="blueBtn" @click="editorInfo(item)">{{$t('btnEdit')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</uni-swipe-action-item>
|
</uni-swipe-action-item>
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else>
|
<view v-else>
|
||||||
没有数据了!
|
{{$t("noMoreData")}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -61,20 +61,22 @@
|
||||||
let that = this
|
let that = this
|
||||||
that.id = that.familayList[ind].id
|
that.id = that.familayList[ind].id
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '友情提示',
|
title: that.$t('msgTitle'),
|
||||||
content: '确定删除该成员吗',
|
content: that.$t("verifyDeleteUser"),
|
||||||
|
cancelText: that.$t('btnSancellation'),
|
||||||
|
confirmText: that.$t('btnConfirm'),
|
||||||
success: function(res) {
|
success: function(res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
that.$model.getDelUser({
|
that.$model.getDelUser({
|
||||||
aud_id: that.id,
|
aud_id: that.id,
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code != 0) return
|
if (res.code != 0) return
|
||||||
that.$tools.msg("删除成功!");
|
that.$tools.msg(that.$t('msgDelete'));
|
||||||
that.familayList.splice(ind, 1)
|
that.familayList.splice(ind, 1)
|
||||||
that.handleUserList()
|
that.handleUserList()
|
||||||
})
|
})
|
||||||
} else if (res.cancel) {
|
} else if (res.cancel) {
|
||||||
that.$tools.msg("您已取消删除!");
|
that.$tools.msg(that.$t('msgCancel'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -8,66 +8,66 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="lan border-bottom">
|
<view class="lan border-bottom">
|
||||||
<view class="left">姓名</view>
|
<view class="left">{{$t('infoNickname')}}</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<input name="name" type="text" v-model="memInfo.nickname" placeholder="请输入姓名" />
|
<input name="name" type="text" v-model="memInfo.nickname" :placeholder="$t('verifyRecord')" />
|
||||||
<uni-icons type="clear" color="#999" v-if="memInfo.nickname" @click="memInfo.nickname=''"
|
<uni-icons type="clear" color="#999" v-if="memInfo.nickname" @click="memInfo.nickname=''"
|
||||||
size="20"></uni-icons>
|
size="20"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="lan border-bottom">
|
<view class="lan border-bottom">
|
||||||
<view class="left">性别</view>
|
<view class="left">{{$t('infoGender')}}</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<view class="radio">
|
<view class="radio">
|
||||||
<uni-icons :type="memInfo.gender==1?'checkbox-filled':'circle'" @click="memInfo.gender=1"
|
<uni-icons :type="memInfo.gender==1?'checkbox-filled':'circle'" @click="memInfo.gender=1"
|
||||||
size="24" :color="memInfo.gender==1?'#fea606':'#dfdfdf'"></uni-icons>男
|
size="24" :color="memInfo.gender==1?'#fea606':'#dfdfdf'"></uni-icons>{{$t('infoMan')}}
|
||||||
</view>
|
</view>
|
||||||
<view class="radio ml-15">
|
<view class="radio ml-15">
|
||||||
<uni-icons :type="memInfo.gender==2?'checkbox-filled':'circle'" @click="memInfo.gender=2"
|
<uni-icons :type="memInfo.gender==2?'checkbox-filled':'circle'" @click="memInfo.gender=2"
|
||||||
size="24" :color="memInfo.gender==2?'#fea606':'#dfdfdf'"></uni-icons>女
|
size="24" :color="memInfo.gender==2?'#fea606':'#dfdfdf'"></uni-icons>{{$t('infoWoman')}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="lan border-bottom">
|
<view class="lan border-bottom">
|
||||||
<view class="left">身高</view>
|
<view class="left">{{$t('infoHeight')}}</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<input name="name" class="mr-5" type="digit" v-model="memInfo.height" placeholder="请输入身高" />CM
|
<input name="name" class="mr-5" type="digit" v-model="memInfo.height" :placeholder="$t('verifyRecord')"/>CM
|
||||||
<uni-icons type="clear" color="#999" v-if="memInfo.height" @click="memInfo.height=''"
|
<uni-icons type="clear" color="#999" v-if="memInfo.height" @click="memInfo.height=''"
|
||||||
size="20"></uni-icons>
|
size="20"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="lan border-bottom">
|
<view class="lan border-bottom">
|
||||||
<view class="left">体重</view>
|
<view class="left">{{$t('infoWeight')}}</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<input name="name" type="digit" class="mr-5" v-model="memInfo.weight" placeholder="请输入体重" />KG
|
<input name="name" type="digit" class="mr-5" v-model="memInfo.weight" :placeholder="$t('verifyRecord')" />KG
|
||||||
<uni-icons type="clear" color="#999" v-if="memInfo.weight" @click="memInfo.weight=''"
|
<uni-icons type="clear" color="#999" v-if="memInfo.weight" @click="memInfo.weight=''"
|
||||||
size="20"></uni-icons>
|
size="20"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="lan border-bottom">
|
<view class="lan border-bottom">
|
||||||
<view class="left">出生日期</view>
|
<view class="left">{{$t('infoBirthday')}}</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<picker mode="date" :end="endDate" @change="maskClick"
|
<picker mode="date" :end="endDate" @change="maskClick"
|
||||||
:value="memInfo.birthday?memInfo.birthday:endDate" :fields="fields">
|
:value="memInfo.birthday?memInfo.birthday:endDate" :fields="fields">
|
||||||
<view class="uni-input">{{memInfo.birthday?memInfo.birthday:'请选择'}}</view>
|
<view class="uni-input">{{memInfo.birthday?memInfo.birthday:$t('verifyPicker')}}}}</view>
|
||||||
<icon class="iconfont icon-arrow-down-bold"></icon>
|
<icon class="iconfont icon-arrow-down-bold"></icon>
|
||||||
</picker>
|
</picker>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="lan border-bottom">
|
<view class="lan border-bottom">
|
||||||
<view class="left">活动系数</view>
|
<view class="left">{{$t('infoActivityCoefficient')}}</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<picker mode="selector" @change="changeClickType" :range="activityLevel" range-key="name"
|
<picker mode="selector" @change="changeClickType" :range="activityLevel" range-key="name"
|
||||||
:value="levelInd">
|
:value="levelInd">
|
||||||
<view>
|
<view>
|
||||||
{{memInfo.activity_level?activityLevel[levelInd].name:'请选择'}}
|
{{memInfo.activity_level?activityLevel[levelInd].name:$t('verifyRecord')}}}}
|
||||||
<icon class="iconfont icon-arrow-down-bold"></icon>
|
<icon class="iconfont icon-arrow-down-bold"></icon>
|
||||||
</view>
|
</view>
|
||||||
</picker>
|
</picker>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btn" @click="confirmInfo">提交</view>
|
<view class="btn" @click="confirmInfo">{{$t('btnSubmit')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -78,8 +78,8 @@
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
sexItem: [
|
sexItem: [
|
||||||
"男",
|
this.$t("infoMan"),
|
||||||
"女"
|
this.$t("infoWoman")
|
||||||
],
|
],
|
||||||
memInfo: {
|
memInfo: {
|
||||||
birthday: "",
|
birthday: "",
|
||||||
|
|
@ -106,6 +106,9 @@
|
||||||
},
|
},
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
let that = this
|
let that = this
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: that.$t('infoPersonalProfile')
|
||||||
|
})
|
||||||
if (options.info) { //编辑
|
if (options.info) { //编辑
|
||||||
let info = JSON.parse(options.info)
|
let info = JSON.parse(options.info)
|
||||||
that.memInfo = info
|
that.memInfo = info
|
||||||
|
|
@ -124,30 +127,33 @@
|
||||||
confirmInfo() {
|
confirmInfo() {
|
||||||
let that = this
|
let that = this
|
||||||
if (!that.memInfo.nickname) {
|
if (!that.memInfo.nickname) {
|
||||||
that.$tools.msg("请输入姓名")
|
that.$tools.msg(that.$t('verifyNickName'))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!that.memInfo.gender) {
|
||||||
|
this.$tools.msg(that.$t('verifyGender'))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!that.memInfo.height) {
|
if (!that.memInfo.height) {
|
||||||
that.$tools.msg("请选择身高")
|
that.$tools.msg(that.$t('verifyHeight'))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!that.memInfo.weight) {
|
if (!that.memInfo.weight) {
|
||||||
that.$tools.msg("请选择体重")
|
that.$tools.msg(that.$t('verifyWeight'))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!that.memInfo.birthday) {
|
if (!that.memInfo.birthday) {
|
||||||
that.$tools.msg("请选择出生日期")
|
that.$tools.msg(that.$t('verifyBirthday'))
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!that.memInfo.activity_level) {
|
|
||||||
that.$tools.msg("请选择活动系数")
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// if (!that.memInfo.activity_level) {
|
||||||
|
// that.$tools.msg("请选择活动系数")
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
let https = that.isEdit ? that.$model.getEditUser(that.memInfo) : that.$model.getAddUser(that.memInfo)
|
let https = that.isEdit ? that.$model.getEditUser(that.memInfo) : that.$model.getAddUser(that.memInfo)
|
||||||
return https.then(res => {
|
return https.then(res => {
|
||||||
console.log("成功", res, that.isEdit, uni.getStorageSync('userid'))
|
console.log("成功", res, that.isEdit, uni.getStorageSync('userid'))
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
that.$tools.msg("提交成功");
|
|
||||||
if (!that.isEdit) {
|
if (!that.isEdit) {
|
||||||
that.addID = res.aud_id
|
that.addID = res.aud_id
|
||||||
}
|
}
|
||||||
|
|
@ -214,7 +220,7 @@
|
||||||
},
|
},
|
||||||
//确定性别
|
//确定性别
|
||||||
onsexArr(e) {
|
onsexArr(e) {
|
||||||
this.memInfo.gender = this.sexItem[e.target.value] == "男" ? 1 : 2
|
this.memInfo.gender = this.sexItem[e.target.value] == this.$t("infoMan") ? 1 : 2
|
||||||
},
|
},
|
||||||
changeClickType(e) {
|
changeClickType(e) {
|
||||||
this.levelInd = e.target.value
|
this.levelInd = e.target.value
|
||||||
|
|
|
||||||
|
|
@ -3,22 +3,22 @@
|
||||||
<view class="login">
|
<view class="login">
|
||||||
<view class="editem">
|
<view class="editem">
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="text">邮箱</view>
|
<view class="text">{{$t("infoEmail")}}</view>
|
||||||
<view class="input">
|
<view class="input">
|
||||||
<input v-model="phone" placeholder="请输入邮箱" />
|
<input v-model="phone" :placeholder="$t('verifyEmail')" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item ">
|
<view class="item ">
|
||||||
<view class="text">验证码</view>
|
<view class="text">{{$t("titleCode")}}</view>
|
||||||
<view class="input yanzhengma">
|
<view class="input yanzhengma">
|
||||||
<input class="uni-input" v-model="code" />
|
<input class="uni-input" v-model="code" />
|
||||||
<button class="code" type="none" @click="handleCode" v-model="code"
|
<button class="code" type="none" @click="handleCode" v-model="code"
|
||||||
:disabled="disabled">{{second<60 ? second+'S后重发':'获取验证码'}}
|
:disabled="disabled">{{second<60 ? second+$t("titleSendCodeRetry"):$t("titleSendCode")}}
|
||||||
</button>
|
</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btnlogin" @click="handleTelLogin">确认</view>
|
<view class="btnlogin" @click="handleOutLogin">{{$t("btnConfirm")}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -33,45 +33,51 @@
|
||||||
second: 60,
|
second: 60,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
let that = this
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: that.$t('btnDeleteAccount')
|
||||||
|
})
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 登录、
|
// 登录、
|
||||||
handleTelLogin() {
|
handleOutLogin() {
|
||||||
let that = this
|
let that = this
|
||||||
if (!(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
uni.showModal({
|
||||||
that.$tools.msg("请输入正确的邮箱")
|
title: that.$t("msgTitle"),
|
||||||
return
|
confirmText: that.$t("btnDelete"),
|
||||||
}
|
content: that.$t("verifyDeleteAccount"),
|
||||||
if (!that.code) {
|
success: function(res) {
|
||||||
that.$tools.msg("请填写验证码")
|
if (res.confirm) {
|
||||||
return
|
that.$model.getDeleteAccount({
|
||||||
}
|
code: that.code
|
||||||
that.$model.getAccountMsg({
|
}).then((res) => {
|
||||||
data: that.phone,
|
if (res.code != 0) return
|
||||||
code: that.code,
|
that.$tools.msg(that.$t('msgDelete'));
|
||||||
}).then(res => {
|
uni.setStorageSync('token', null)
|
||||||
if (res.code != 0) {
|
uni.setStorageSync('aan_id', null)
|
||||||
that.$tools.msg(res.msg)
|
uni.clearStorageSync()
|
||||||
return
|
setTimeout(() => {
|
||||||
} else {
|
uni.reLaunch({
|
||||||
that.$tools.msg("设置成功!")
|
url: "/pageTwo/login/login"
|
||||||
that.$store.commit('changeAccountNumber', {
|
|
||||||
my_email: that.phone
|
|
||||||
})
|
})
|
||||||
uni.redirectTo({
|
}, 3000);
|
||||||
url: "/body/setting/setting"
|
|
||||||
})
|
})
|
||||||
|
} else if (res.cancel) {
|
||||||
|
that.$tools.msg(that.$t("msgCancel"));
|
||||||
}
|
}
|
||||||
}).catch(err => {})
|
},
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 获取验证码
|
// 获取验证码
|
||||||
handleCode() {
|
handleCode() {
|
||||||
let that = this
|
let that = this
|
||||||
if (!that.phone) {
|
if (!that.phone) {
|
||||||
that.$tools.msg("请输入邮箱")
|
that.$tools.msg(that.$t("verifyEmail"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
if (!(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
||||||
that.$tools.msg("请输入正确的邮箱")
|
that.$tools.msg(that.$t("verifyEmailCorrect"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
@ -103,16 +109,16 @@
|
||||||
.content {
|
.content {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
background: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login {
|
.login {
|
||||||
width: calc(100% - 30px);
|
width: calc(100% - 60rpx);
|
||||||
height: auto;
|
height: auto;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 10px;
|
border-radius: 20rpx;
|
||||||
padding: 15px;
|
padding: 30rpx;
|
||||||
background-color: #fff;
|
|
||||||
z-index: 99;
|
z-index: 99;
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
|
|
@ -120,7 +126,7 @@
|
||||||
color: #333;
|
color: #333;
|
||||||
font-size: 40rpx;
|
font-size: 40rpx;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 30rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -136,34 +142,36 @@
|
||||||
.item {
|
.item {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 30rpx;
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
width: 80px;
|
width: 100%;
|
||||||
height: 40px;
|
height: 80rpx;
|
||||||
line-height: 40px;
|
line-height: 80rpx;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input {
|
.input {
|
||||||
width: calc(100% - 100px);
|
width: 100%;
|
||||||
height: 35px;
|
height: 35px;
|
||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
display: flex;
|
display: flex;
|
||||||
position: relative;
|
position: relative;
|
||||||
border: #dfdfdf 1px solid;
|
border: #dfdfdf 1px solid;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 0 10px;
|
padding: 0 20rpx;
|
||||||
background-color: #f7f7f7;
|
background-color: #f7f7f7;
|
||||||
}
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
height: 40px;
|
height: 80rpx;
|
||||||
line-height: 40px;
|
line-height: 80rpx;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 10px;
|
left: 20rpx;
|
||||||
right: 0px;
|
right: 0px;
|
||||||
z-index: 88;
|
z-index: 88;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
|
|
@ -171,18 +179,19 @@
|
||||||
|
|
||||||
.yanzhengma {
|
.yanzhengma {
|
||||||
input {
|
input {
|
||||||
right: 120px;
|
right: 180px;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.code {
|
.code {
|
||||||
width: 110px;
|
color: #333;
|
||||||
|
width: 180px;
|
||||||
background: #dfdfdf;
|
background: #dfdfdf;
|
||||||
font-size: 32rpx;
|
font-size: 14px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
line-height: 40px;
|
line-height: 80rpx;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
@ -197,12 +206,12 @@
|
||||||
|
|
||||||
.btnlogin {
|
.btnlogin {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 15px 0;
|
margin: 30rpx 0;
|
||||||
height: 42px;
|
height: 42px;
|
||||||
line-height: 42px;
|
line-height: 42px;
|
||||||
background: $btncolor;
|
background: $btncolor;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
border-radius: 15px;
|
border-radius: 30rpx;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,19 +3,34 @@
|
||||||
<view class="login">
|
<view class="login">
|
||||||
<view class="editem">
|
<view class="editem">
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="text">密码</view>
|
<view class="text">{{$t("infoEmail")}}</view>
|
||||||
<view class="input">
|
<view class="input">
|
||||||
<input class="uni-input" v-model="password" placeholder="请输入密码" />
|
<input v-model="phone" :placeholder="$t('verifyEmail')" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item ">
|
<view class="item ">
|
||||||
<view class="text">确认密码</view>
|
<view class="text">{{$t("titleCode")}}</view>
|
||||||
|
<view class="input yanzhengma">
|
||||||
|
<input class="uni-input" v-model="code" />
|
||||||
|
<button class="code" type="none" @click="handleCode" v-model="code"
|
||||||
|
:disabled="disabled">{{second<60 ? second+$t("titleSendCodeRetry"):$t("titleSendCode")}}
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="text">{{$t('titlePassword')}}</view>
|
||||||
<view class="input">
|
<view class="input">
|
||||||
<input class="uni-input" v-model="password2" placeholder="请输入确认密码" />
|
<input class="uni-input" v-model="password" :placeholder="$t('verifyPassword')" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<view class="text">{{$t('titleConfirmPassword')}}</view>
|
||||||
|
<view class="input">
|
||||||
|
<input class="uni-input" v-model="password2" :placeholder="$t('verifyPasswordTwo')" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btnlogin" @click="handleTelLogin">确认</view>
|
<view class="btnlogin" @click="handleTelLogin">{{$t('btnSubmit')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -26,26 +41,45 @@
|
||||||
return {
|
return {
|
||||||
password: "",
|
password: "",
|
||||||
password2: "",
|
password2: "",
|
||||||
|
phone: "",
|
||||||
|
code: "",
|
||||||
|
disabled: false,
|
||||||
|
second: 60,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {},
|
onLoad() {
|
||||||
|
let that = this
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: that.$t('titlePasswordEdit')
|
||||||
|
})
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 登录、
|
// 登录、
|
||||||
handleTelLogin() {
|
handleTelLogin() {
|
||||||
let that = this
|
let that = this
|
||||||
|
if (!(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
||||||
|
that.$tools.msg(that.$t("verifyEmailCorrect"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!that.code) {
|
||||||
|
that.$tools.msg(that.$t("verifyCode"))
|
||||||
|
return
|
||||||
|
}
|
||||||
if (!that.password) {
|
if (!that.password) {
|
||||||
that.$tools.msg("请填写密码")
|
that.$tools.msg(that.$t('verifyPassword'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!that.password2) {
|
if (!that.password2) {
|
||||||
that.$tools.msg("请确认密码")
|
that.$tools.msg(that.$t('verifyPasswordTwo'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (that.password2 != that.password) {
|
if (that.password2 != that.password) {
|
||||||
that.$tools.msg("请确认两次密码填写一致")
|
that.$tools.msg(that.$t('verifyPasswordCorrect'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
that.$model.getAccountPassword({
|
that.$model.getAccountPassword({
|
||||||
|
data: that.phone,
|
||||||
|
code: that.code,
|
||||||
password: that.password,
|
password: that.password,
|
||||||
c_password: that.password2,
|
c_password: that.password2,
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
|
|
@ -53,10 +87,9 @@
|
||||||
if (res.code != 0) {
|
if (res.code != 0) {
|
||||||
that.$tools.msg(res.msg)
|
that.$tools.msg(res.msg)
|
||||||
} else {
|
} else {
|
||||||
that.$tools.msg("密码设置成功,请重新登录")
|
that.$tools.msg(that.$t('msgSetSuccess'))
|
||||||
that.$model.getloginOut({}).then((res) => {
|
that.$model.getloginOut({}).then((res) => {
|
||||||
if (res.code != 0) return
|
if (res.code != 0) return
|
||||||
console.log('确定退出', res)
|
|
||||||
uni.setStorageSync('token', null)
|
uni.setStorageSync('token', null)
|
||||||
uni.setStorageSync('aan_id', null)
|
uni.setStorageSync('aan_id', null)
|
||||||
uni.clearStorageSync()
|
uni.clearStorageSync()
|
||||||
|
|
@ -72,6 +105,37 @@
|
||||||
}
|
}
|
||||||
}).catch(err => {})
|
}).catch(err => {})
|
||||||
},
|
},
|
||||||
|
// 获取验证码
|
||||||
|
handleCode() {
|
||||||
|
let that = this
|
||||||
|
if (!that.phone) {
|
||||||
|
that.$tools.msg(that.$t("verifyEmail"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(that.phone))) {
|
||||||
|
that.$tools.msg(that.$t("verifyEmailCorrect"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//
|
||||||
|
that.$model.getSendCode({
|
||||||
|
data: that.phone,
|
||||||
|
}).then(res => {
|
||||||
|
console.log(res)
|
||||||
|
if (res.code != 0) {
|
||||||
|
that.$tools.msg(res.msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
that.disabled = true
|
||||||
|
let interval = setInterval(() => {
|
||||||
|
--that.second
|
||||||
|
}, 1000)
|
||||||
|
setTimeout(() => {
|
||||||
|
clearInterval(interval)
|
||||||
|
that.disabled = false
|
||||||
|
that.second = 60
|
||||||
|
}, 60000)
|
||||||
|
}).catch(err => {})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -80,16 +144,15 @@
|
||||||
.content {
|
.content {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
background: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login {
|
.login {
|
||||||
width: calc(100% - 30px);
|
width: calc(100% - 60rpx);
|
||||||
height: auto;
|
height: auto;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 10px;
|
border-radius: 20rpx;
|
||||||
padding: 15px;
|
padding: 30rpx;
|
||||||
background-color: #fff;
|
|
||||||
z-index: 99;
|
z-index: 99;
|
||||||
|
|
||||||
.editem {
|
.editem {
|
||||||
|
|
@ -104,49 +167,70 @@
|
||||||
.item {
|
.item {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 20rpx;
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
width: 80px;
|
width: 100%;
|
||||||
height: 40px;
|
height: 80rpx;
|
||||||
line-height: 40px;
|
line-height: 80rpx;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input {
|
.input {
|
||||||
width: calc(100% - 100px);
|
width: 100%;
|
||||||
height: 35px;
|
height: 35px;
|
||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
display: flex;
|
display: flex;
|
||||||
position: relative;
|
position: relative;
|
||||||
border: #dfdfdf 1px solid;
|
border: #dfdfdf 1px solid;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 0 10px;
|
padding: 0 20rpx;
|
||||||
background-color: #f7f7f7;
|
background-color: #f7f7f7;
|
||||||
}
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
height: 40px;
|
height: 80rpx;
|
||||||
line-height: 40px;
|
line-height: 80rpx;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 10px;
|
left: 20rpx;
|
||||||
right: 0px;
|
right: 0px;
|
||||||
z-index: 88;
|
z-index: 88;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.yanzhengma {
|
||||||
|
input {
|
||||||
|
right: 180px;
|
||||||
|
font-size: 32rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.code {
|
||||||
|
color: #333;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
height: 35px;
|
||||||
|
font-size: 14px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 180px;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
|
||||||
.btnlogin {
|
.btnlogin {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 15px 0;
|
margin: 30rpx 0;
|
||||||
height: 42px;
|
height: 42px;
|
||||||
line-height: 42px;
|
line-height: 42px;
|
||||||
background: $btncolor;
|
background: $btncolor;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
border-radius: 15px;
|
border-radius: 30rpx;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,22 +3,22 @@
|
||||||
<view class="login">
|
<view class="login">
|
||||||
<view class="editem">
|
<view class="editem">
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="text">手机号</view>
|
<view class="text">{{$t('infoMobile')}}</view>
|
||||||
<view class="input">
|
<view class="input">
|
||||||
<input v-model="phone" placeholder="请输入手机号" />
|
<input v-model="phone" :placeholder="$t('verifyMobile')" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item ">
|
<view class="item ">
|
||||||
<view class="text">验证码</view>
|
<view class="text">{{$t('titleCode')}}</view>
|
||||||
<view class="input yanzhengma">
|
<view class="input yanzhengma">
|
||||||
<input class="uni-input" v-model="code" />
|
<input class="uni-input" v-model="code" />
|
||||||
<button class="code" type="none" @click="handleCode" v-model="code"
|
<button class="code" type="none" @click="handleCode" v-model="code"
|
||||||
:disabled="disabled">{{second<60 ? second+'S后重发':'获取验证码'}}
|
:disabled="disabled">{{second<60 ? second+$t('titleSendCodeRetry'):$t('titleSendCode')}}
|
||||||
</button>
|
</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btnlogin" @click="handleTelLogin">确认</view>
|
<view class="btnlogin" @click="handleTelLogin">{{$t('btnSubmit')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -33,16 +33,22 @@
|
||||||
second: 60,
|
second: 60,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
let that = this
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: that.$t('titlePhone')
|
||||||
|
})
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 登录、
|
// 登录、
|
||||||
handleTelLogin() {
|
handleTelLogin() {
|
||||||
let that = this
|
let that = this
|
||||||
if (!(/^1[3456789]\d{9}$/.test(that.phone))) {
|
if (!(/^1[3456789]\d{9}$/.test(that.phone))) {
|
||||||
that.$tools.msg("请输入正确的手机号")
|
that.$tools.msg(that.$t('verifyMobileCorrect'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!that.code) {
|
if (!that.code) {
|
||||||
that.$tools.msg("请填写验证码")
|
that.$tools.msg(that.$t('verifyCode'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
that.$model.getAccountMsg({
|
that.$model.getAccountMsg({
|
||||||
|
|
@ -53,13 +59,15 @@
|
||||||
that.$tools.msg(res.msg)
|
that.$tools.msg(res.msg)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
that.$tools.msg("设置成功!")
|
that.$tools.msg(that.$t('msgSetSuccess'))
|
||||||
that.$store.commit('changeAccountNumber', {
|
that.$store.commit('changeAccountNumber', {
|
||||||
my_tel: that.phone
|
my_tel: that.phone
|
||||||
})
|
})
|
||||||
|
setTimeout(function() {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: "/body/setting/setting"
|
url: "/body/setting/setting"
|
||||||
})
|
})
|
||||||
|
}, 1000)
|
||||||
}
|
}
|
||||||
}).catch(err => {})
|
}).catch(err => {})
|
||||||
},
|
},
|
||||||
|
|
@ -67,17 +75,16 @@
|
||||||
handleCode() {
|
handleCode() {
|
||||||
let that = this
|
let that = this
|
||||||
if (!that.phone) {
|
if (!that.phone) {
|
||||||
that.$tools.msg("请输入手机号")
|
that.$tools.msg(that.$t('verifyMobile'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!(/^1[3456789]\d{9}$/.test(that.phone))) {
|
if (!(/^1[3456789]\d{9}$/.test(that.phone))) {
|
||||||
that.$tools.msg("请输入正确的手机号")
|
that.$tools.msg(that.$t('verifyMobileCorrect'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
that.$model.getSendCode({
|
that.$model.getSendCode({
|
||||||
data: that.phone,
|
data: that.phone,
|
||||||
// type: that.type
|
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
if (res.code != 0) {
|
if (res.code != 0) {
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,33 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="caritem">
|
<view class="caritem">
|
||||||
<view class="text">头像</view>
|
<view class="text">{{$t('infoAvatar')}}</view>
|
||||||
<image :src="user.head_pic" class="image"></image>
|
<image :src="user.head_pic" class="image"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="caritem">
|
<view class="caritem">
|
||||||
<view class="text">昵称</view>
|
<view class="text">{{$t('infoNickname')}}</view>
|
||||||
<view class="text_r">
|
<view class="text_r">
|
||||||
<text v-if="!isEdit">{{user.nickname}}</text>
|
<text v-if="!isEdit">{{user.nickname}}</text>
|
||||||
<input v-else type="text" v-model='nickname' @blur="handleBlur" />
|
<input v-else type="text" v-model='nickname' @blur="handleBlur" />
|
||||||
<uni-icons type="compose" color="#FEC407" @click="isEdit=true" class="ml-10" size="22"></uni-icons>
|
<uni-icons type="compose" color="#FEC407" @click="isEdit=true" class="ml-10" size="22"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="caritem" @click="navTo('/body/setting/phone')">
|
<!-- <view class="caritem" @click="navTo('/body/setting/phone')">
|
||||||
<view class="text">手机号</view>
|
<view class="text">手机号</view>
|
||||||
<view class="text_r">
|
<view class="text_r">
|
||||||
<text>{{user.my_tel}}</text>
|
<text>{{user.my_tel}}</text>
|
||||||
<uni-icons type="right"></uni-icons>
|
<uni-icons type="right"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<view class="caritem" @click="navTo('/body/setting/password')">
|
||||||
|
<view class="text">{{$t('titleSetPassword')}}</view>
|
||||||
|
<uni-icons type="right"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
<view class="caritem" @click="navTo('/body/setting/email')">
|
<view class="caritem" @click="navTo('/body/setting/email')">
|
||||||
<view class="text">邮箱</view>
|
<view class="text">{{$t('btnDeleteAccount')}}</view>
|
||||||
<view class="text_r">
|
<uni-icons type="forward" size="20" color="#666"></uni-icons>
|
||||||
<text>{{user.my_email}}</text>
|
|
||||||
<uni-icons type="right"></uni-icons>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="caritem" @click="navTo('/body/setting/password')">
|
|
||||||
<view class="text">设置密码</view>
|
|
||||||
<uni-icons type="right"></uni-icons>
|
|
||||||
</view>
|
|
||||||
<view class="btn mb-15" @click="handleOutLogin">删除账号</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -53,32 +49,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleOutLogin() {
|
|
||||||
let that = this
|
|
||||||
uni.showModal({
|
|
||||||
title: '友情提示',
|
|
||||||
confirmText: '删除',
|
|
||||||
content: '删除成功后,该账号的所有关联信息将被清空且无法找回,是否删除?',
|
|
||||||
success: function(res) {
|
|
||||||
if (res.confirm) {
|
|
||||||
that.$model.getdeleteAccount({}).then((res) => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg("删除成功!");
|
|
||||||
uni.setStorageSync('token', null)
|
|
||||||
uni.setStorageSync('aan_id', null)
|
|
||||||
uni.clearStorageSync()
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.reLaunch({
|
|
||||||
url: "/body/login/login"
|
|
||||||
})
|
|
||||||
}, 3000);
|
|
||||||
})
|
|
||||||
} else if (res.cancel) {
|
|
||||||
that.$tools.msg("您已取消操作!");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 修改昵称
|
// 修改昵称
|
||||||
handleBlur() {
|
handleBlur() {
|
||||||
let that = this
|
let that = this
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,163 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
"msgTitle": "نصيحة ودية",
|
||||||
|
"msgUpgradeFail": "فشل الترقية",
|
||||||
|
"msgDownloading": "جاري التحميل",
|
||||||
|
"msgLatestVersion": "هي بالفعل أحدث إصدار!",
|
||||||
|
"msgCancel": "لقد ألغيت العملية!",
|
||||||
|
"msgLoginSuccess": "تم تسجيل الدخول بنجاح!",
|
||||||
|
"msgDelete": "تم الحذف بنجاح",
|
||||||
|
"msgSetSuccess": "تم الإعداد بنجاح",
|
||||||
|
"msgBottom": "النهاية، انتقل إلى شيء آخر",
|
||||||
|
"msgNoMoreData": "لا توجد المزيد من البيانات!",
|
||||||
|
"msgSetPasswordSuccess": "تم تعيين كلمة المرور بنجاح، ادخل إلى البرنامج!",
|
||||||
|
"msgAddUser": "لا يوجد أعضاء حالياً، يرجى إضافتهم أولاً",
|
||||||
|
"verifyNickName": "الرجاء إدخال الاسم المستعار",
|
||||||
|
"verifyNotOptional": "التاريخ المستقبلي غير قابل للاختيار",
|
||||||
|
"verifyDate": "يرجى اختيار تاريخ القياس",
|
||||||
|
"verifyBirthday": "الرجاء اختيار تاريخ الميلاد",
|
||||||
|
"verifyHeight": "من فضلك أدخل الطول",
|
||||||
|
"verifyWeight": "الرجاء إدخال الوزن",
|
||||||
|
"verifyGender": "الرجاء اختيار الجنس",
|
||||||
|
"verifyBontrast": "يرجى اختيار البيانات",
|
||||||
|
"verifyBodyDate": "الرجاء اختيار الوقت الصحيح",
|
||||||
|
"verifyRecord": "الرجاء إدخال",
|
||||||
|
"verifyPicker": "الرجاء الاختيار",
|
||||||
|
"verifyAccount": "يرجى إدخال رقم الهاتف أو البريد الإلكتروني الصحيح",
|
||||||
|
"verifyEmail": "الرجاء إدخال البريد الإلكتروني",
|
||||||
|
"verifyEmailCorrect": "من فضلك أدخل البريد الإلكتروني الصحيح",
|
||||||
|
"verifyMobile": "الرجاء إدخال رقم الهاتف",
|
||||||
|
"verifyMobileCorrect": "الرجاء إدخال رقم الهاتف الصحيح",
|
||||||
|
"verifyCode": "กรุณาป้อนรหัสยืนยัน",
|
||||||
|
"verifyPassword": "الرجاء إدخال كلمة المرور",
|
||||||
|
"verifyPasswordTwo": "الرجاء إدخال كلمة المرور المؤكدة",
|
||||||
|
"verifyPasswordCorrect": "يرجى التأكد من أن كلمة المرور المكتوبة مطابقة في المرةين",
|
||||||
|
"verifyAgreement": "يرجى تأكيد واختيار الاتفاقية أولاً",
|
||||||
|
"verifyOutLogin": "هل ترغب في تسجيل الخروج؟",
|
||||||
|
"verifyDeleteUser": "هل تريد حذف هذا العضو؟",
|
||||||
|
"verifyDeleteHistory": "هل تريد حذف سجل القياس الحالي؟",
|
||||||
|
"verifyDeleteAccount": "بعد الحذف بنجاح، سيتم مسح جميع المعلومات المرتبطة بهذه الحساب ولا يمكن استعادتها، هل ترغب في الحذف؟",
|
||||||
|
"btnConfirm": "تأكيد",
|
||||||
|
"btnSubmit": "إرسال",
|
||||||
|
"btnSancellation": "إلغاء",
|
||||||
|
"btnContinue": "استمر",
|
||||||
|
"btnBack": "عودة",
|
||||||
|
"btnDelete": "حذف",
|
||||||
|
"ConnectionTimeout": "انتهت مهلة الاتصال، انقر لإعادة الاتصال",
|
||||||
|
"Measuring": "في القياس، يرجى وضع الطعام على الميزان",
|
||||||
|
"Weight": "الوزن",
|
||||||
|
"RecordWeight": "يرجى إدخال وزن الطعام",
|
||||||
|
"SearchBluetooth": "البحث عن البلوتوث جاري",
|
||||||
|
"Remeasure": "البيانات غير طبيعية، يرجى إعادة القياس!",
|
||||||
|
"reset": "البيانات غير طبيعية، يرجى إعادة القياس بعد معاودة الصفر!",
|
||||||
|
"Disconnect": "قطع الاتصال",
|
||||||
|
"remeasure": "إعادة القياس",
|
||||||
|
"resetBtn": "إعادة الضبط",
|
||||||
|
"UnitBtn": "وحدة",
|
||||||
|
"SaveResult": "حفظ",
|
||||||
|
"titleHome": "الصفحة الرئيسية",
|
||||||
|
"titleMenu": "وصفة",
|
||||||
|
"titleMenuAdd": "إضافة الوصفة",
|
||||||
|
"titleMenuSearch": "البحث عن وصفات",
|
||||||
|
"titleCount": "حساب الطعام",
|
||||||
|
"titleCountList": "مستودع المكونات",
|
||||||
|
"titleCustomKcal": "سعرات حرارية مخصصة",
|
||||||
|
"titleEveryMeal": "تفاصيل الوجبة",
|
||||||
|
"titleCountSearch": "البحث عن المكونات",
|
||||||
|
"titleeveryDay": "تحليل التغذية",
|
||||||
|
"titleMe": "لي",
|
||||||
|
"titleDetail": "التفاصيل",
|
||||||
|
"titleBody": "الهدف",
|
||||||
|
"titleHistory": "سجل الأكل",
|
||||||
|
"titlePhone": "ربط رقم الهاتف",
|
||||||
|
"titleEmail": "ربط البريد الإلكتروني",
|
||||||
|
"titlePasswordEdit": "تغيير كلمة المرور",
|
||||||
|
"titleSet": "إعداد",
|
||||||
|
"titleDate": "تاريخ",
|
||||||
|
"titleMember": "المواد",
|
||||||
|
"titleManage": "إدارة الأعضاء",
|
||||||
|
"titleManageAdd": "إضافة عضو",
|
||||||
|
"titleAboutUs": "معلومات عنا",
|
||||||
|
"titleSetPassword": "تعيين كلمة المرور",
|
||||||
|
"titlePassword": "كلمة المرور",
|
||||||
|
"titleConfirmPassword": "تأكيد كلمة المرور",
|
||||||
|
"titleForgotPassword": "نسيت كلمة المرور",
|
||||||
|
"titleCode": "رمز التحقق",
|
||||||
|
"titleLanguage": "اللغة",
|
||||||
|
"titleSendCode": "الحصول على رمز التحقق",
|
||||||
|
"titleSendCodeRetry": "إعادة إرسال بعد S",
|
||||||
|
"titleLogin": "تسجيل الدخول",
|
||||||
|
"titleRegister": "التسجيل",
|
||||||
|
"titleToggleLogin": "التبديل إلى تسجيل الدخول",
|
||||||
|
"titleAccountText": "رقم الهاتف/البريد الإلكتروني",
|
||||||
|
"titleAgreementText": "القراءة والموافقة",
|
||||||
|
"titleAgreementContntText": "اتفاقية الخصوصية",
|
||||||
|
"titleVersionUpdate": "تحديث الإصدار",
|
||||||
|
"titleNewVersion": "النسخة الجديدة",
|
||||||
|
"infoActivityCoefficient": "معامل النشاط",
|
||||||
|
"infoPersonalProfile": "الملف الشخصي",
|
||||||
|
"infoMyRecipes": "وصفاتي",
|
||||||
|
"infoMyCollection": "مجموعتي",
|
||||||
|
"infoAvatar": "صورة الملف الشخصي",
|
||||||
|
"infoNickname": "الاسم المستعار",
|
||||||
|
"infoMobile": "رقم الهاتف",
|
||||||
|
"infoEmail": "البريد الإلكتروني",
|
||||||
|
"infoAge": "العمر",
|
||||||
|
"infoAgeunit": "سنة",
|
||||||
|
"infoGender": "الجنس",
|
||||||
|
"infoMan": "رجل",
|
||||||
|
"infoWoman": "أنثى",
|
||||||
|
"infoUnknown": "مجهول",
|
||||||
|
"infoBirthday": "تاريخ الميلاد",
|
||||||
|
"infoHeight": "الطول",
|
||||||
|
"infoWeight": "الوزن",
|
||||||
|
"btnEdit": "تحرير",
|
||||||
|
"btnAdd": "إضافة",
|
||||||
|
"btnDetail": "عرض التفاصيل",
|
||||||
|
"btnDeleteAccount": "حذف الحساب",
|
||||||
|
"btnLogOut": "تسجيل الخروج",
|
||||||
|
"countIntake": "الاستهلاك",
|
||||||
|
"countCalorieIntake": "معدل استهلاك السعرات الحرارية",
|
||||||
|
"countMealdetails": "تفاصيل الوجبة",
|
||||||
|
"countAddFood": "إضافة الطعام",
|
||||||
|
"countNutritionalProportion": "نسبة التغذية",
|
||||||
|
"countComponentStatistics": "إحصاء المكونات",
|
||||||
|
"countCalorieAnalysis": "تحليل السعرات الحرارية",
|
||||||
|
"countNutrientElementEnergyProportion": "نسبة الطاقة للمغذيات",
|
||||||
|
"countNutritionClassification": "تصنيف التغذية",
|
||||||
|
"countNutritionElementRankingList": "ترتيب العناصر الغذائية",
|
||||||
|
"countFoodTypes": "أنواع الطعام",
|
||||||
|
|
||||||
|
"total": "ما مجموعه",
|
||||||
|
"records": "السجلات",
|
||||||
|
"Search": "البحث",
|
||||||
|
"VoiceSearch": "بحث صوتي",
|
||||||
|
"Save": "حفظ",
|
||||||
|
"noMoreData": "لا مزيد من البيانات",
|
||||||
|
"HistoricalSearch": "بحث تاريخي",
|
||||||
|
"wantSearch": "أعتقد أنك تريد تفتيش",
|
||||||
|
"verifyCalorie": "يرجى إدخال السعرات الحرارية",
|
||||||
|
"kcal": "السعرات الحرارية",
|
||||||
|
"countNoFood": "لا يوجد طعام",
|
||||||
|
"msgLoginTips": "انظر المزيد بعد تسجيل الدخول",
|
||||||
|
"Nutrients": "مغذيات",
|
||||||
|
"Content": "المحتوى",
|
||||||
|
"CaloriesAndnutrients": "السعرات الحرارية والتغذية",
|
||||||
|
"ImproveInformation": "تحسين المعلومات",
|
||||||
|
"WhetherTodelete": "هل حذف",
|
||||||
|
"BusinessCooperation": "التعاون التجاري",
|
||||||
|
"verifyActivityCoefficient": "يرجى تحديد معامل النشاط",
|
||||||
|
"devicesTips":"لم يتم تسجيل الجهاز، يرجى التواصل مع البائع لإجراء التحقق من النظام",
|
||||||
|
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,162 @@
|
||||||
|
{
|
||||||
|
"msgTitle": "Freundlicher Hinweis",
|
||||||
|
"msgUpgradeFail": "Aktualisierung fehlgeschlagen",
|
||||||
|
"msgDownloading": "Wird heruntergeladen",
|
||||||
|
"msgLatestVersion": "Es ist bereits die neueste Version!",
|
||||||
|
"msgCancel": "Sie haben die Aktion abgebrochen!",
|
||||||
|
"msgLoginSuccess": "Anmeldung erfolgreich!",
|
||||||
|
"msgDelete": "Erfolgreich gelöscht",
|
||||||
|
"msgSetSuccess": "Erfolgreich eingestellt",
|
||||||
|
"msgBottom": "Ende, schau dir etwas anderes an.",
|
||||||
|
"msgNoMoreData": "Keine weiteren Daten mehr!",
|
||||||
|
"msgSetPasswordSuccess": "Passwort erfolgreich gesetzt, gehen Sie in das Programm!",
|
||||||
|
"msgAddUser": "Keine Mitglieder vorhanden, bitte fügen Sie zunächst hinzu",
|
||||||
|
"verifyNickName": "Bitte geben Sie einen Spitznamen ein",
|
||||||
|
"verifyNotOptional": "Zukünftige Daten können nicht ausgewählt werden",
|
||||||
|
"verifyDate": "Bitte wählen Sie das Messdatum aus",
|
||||||
|
"verifyBirthday": "Bitte wählen Sie das Geburtsdatum aus",
|
||||||
|
"verifyHeight": "Bitte geben Sie Ihre Körpergröße ein.",
|
||||||
|
"verifyWeight": "Geben Sie Ihr Gewicht ein.",
|
||||||
|
"verifyGender": "Bitte wählen Sie Ihr Geschlecht",
|
||||||
|
"verifyBontrast": "Bitte wählen Sie Daten aus",
|
||||||
|
"verifyBodyDate": "Bitte wählen Sie die richtige Zeit aus",
|
||||||
|
"verifyRecord": "Bitte eingeben",
|
||||||
|
"verifyPicker": "Bitte wählen Sie",
|
||||||
|
"verifyAccount": "Bitte geben Sie eine korrekte Handynummer oder E-Mail-Adresse ein",
|
||||||
|
"verifyEmail": "Bitte geben Sie Ihre E-Mail ein",
|
||||||
|
"verifyEmailCorrect": "Bitte geben Sie eine korrekte E-Mail-Adresse ein.",
|
||||||
|
"verifyMobile": "Bitte geben Sie die Handynummer ein.",
|
||||||
|
"verifyMobileCorrect": "Bitte geben Sie die korrekte Handynummer ein.",
|
||||||
|
"verifyCode": "Bitte geben Sie den Sicherheitscode ein.",
|
||||||
|
"verifyPassword": "Bitte geben Sie das Passwort ein",
|
||||||
|
"verifyPasswordTwo": "Bitte geben Sie das Passwort zur Bestätigung ein",
|
||||||
|
"verifyPasswordCorrect": "Bitte bestätigen Sie, dass die beiden Passwörter übereinstimmen.",
|
||||||
|
"verifyAgreement": "Bitte bestätigen und das Abkommen ankreuzen.",
|
||||||
|
"verifyOutLogin": "Sollen Sie sich abmelden?",
|
||||||
|
"verifyDeleteUser": "Soll dieser Mitglied gelöscht werden?",
|
||||||
|
"verifyDeleteHistory": "Sollen die aktuellen Messaufzeichnungen gelöscht werden?",
|
||||||
|
"verifyDeleteAccount": "Nach erfolgreicher Löschung werden alle mit diesem Konto verbundenen Informationen gelöscht und können nicht wiederhergestellt werden. Möchten Sie das Konto löschen?",
|
||||||
|
"btnConfirm": "Bestätigung",
|
||||||
|
"btnSubmit": "einreichen",
|
||||||
|
"btnSancellation": "stornieren",
|
||||||
|
"btnContinue": "fortsetzen",
|
||||||
|
"btnBack": "Zurückkehren",
|
||||||
|
"btnDelete": "löschen",
|
||||||
|
"ConnectionTimeout": "Verbindungszeitüberschreitung, klicken Sie auf erneute Verbindung",
|
||||||
|
"Measuring": "Während der Messung, legen Sie das Essen auf die Waage.",
|
||||||
|
"Weight": "Gewicht",
|
||||||
|
"RecordWeight": "Geben Sie das Gewicht der Lebensmittel ein.",
|
||||||
|
"SearchBluetooth": "Bluetooth-Suche läuft",
|
||||||
|
"Remeasure": "Daten sind abnorm, bitte messen Sie neu!",
|
||||||
|
"reset": "Datenanomalie, bitte zählen Sie zurück und messen Sie neu!",
|
||||||
|
"Disconnect": "Verbindung trennen",
|
||||||
|
"remeasure": "Neue Messung",
|
||||||
|
"resetBtn": "Nullsetzen",
|
||||||
|
"UnitBtn": "Einheit",
|
||||||
|
"SaveResult": "speichern",
|
||||||
|
"titleHome": "Startseite",
|
||||||
|
"titleMenu": "Rezept",
|
||||||
|
"titleMenuAdd": "Rezept hinzufügen",
|
||||||
|
"titleMenuSearch": "Rezepte suchen",
|
||||||
|
"titleCount": "Essensplanung",
|
||||||
|
"titleCountList": "Zutatenlager",
|
||||||
|
"titleCustomKcal": "Benutzerdefinierte Kalorien",
|
||||||
|
"titleEveryMeal": "Detaillierte Speiseinformationen",
|
||||||
|
"titleCountSearch": "Zutaten-Suche",
|
||||||
|
"titleeveryDay": "Ernährungsanalyse",
|
||||||
|
"titleMe": "mein",
|
||||||
|
"titleDetail": "Einzelheiten",
|
||||||
|
"titleBody": "Ziel",
|
||||||
|
"titleHistory": "Essensaufzeichnung",
|
||||||
|
"titlePhone": "Handynummer binden",
|
||||||
|
"titleEmail": "E-Mail-Bindung",
|
||||||
|
"titlePasswordEdit": "Passwort ändern",
|
||||||
|
"titleSet": "Einstellung",
|
||||||
|
"titleDate": "Datum",
|
||||||
|
"titleMember": "Daten",
|
||||||
|
"titleManage": "Mitgliedermanagement",
|
||||||
|
"titleManageAdd": "Mitglied hinzufügen",
|
||||||
|
"titleAboutUs": "Über uns",
|
||||||
|
"titleSetPassword": "Passwort festlegen",
|
||||||
|
"titlePassword": "Passwort",
|
||||||
|
"titleConfirmPassword": "Passwort bestätigen",
|
||||||
|
"titleForgotPassword": "Passwort vergessen",
|
||||||
|
"titleCode": "Bestätigungscode",
|
||||||
|
"titleLanguage": "Sprache.",
|
||||||
|
"titleSendCode": "CAPTCHA-Code abrufen",
|
||||||
|
"titleSendCodeRetry": "Nach S erneut senden",
|
||||||
|
"titleLogin": "Anmelden",
|
||||||
|
"titleRegister": "Registrierung",
|
||||||
|
"titleToggleLogin": "Anmeldungswechsel",
|
||||||
|
"titleAccountText": "Handynummer/E-Mail",
|
||||||
|
"titleAgreementText": "Lesen und zustimmen",
|
||||||
|
"titleAgreementContntText": "Datenschutzrichtlinie",
|
||||||
|
"titleVersionUpdate": "Versionsupdate",
|
||||||
|
"titleNewVersion": "Neue Version",
|
||||||
|
"infoActivityCoefficient": "Aktivitätskoeffizient",
|
||||||
|
"infoPersonalProfile": "Persönliche Daten",
|
||||||
|
"infoMyRecipes": "Mein Rezeptbuch",
|
||||||
|
"infoMyCollection": "Meine Sammlung",
|
||||||
|
"infoAvatar": "Profilbild",
|
||||||
|
"infoNickname": "Spitzname",
|
||||||
|
"infoMobile": "Handynummer",
|
||||||
|
"infoEmail": "E-Mail",
|
||||||
|
"infoAge": "Alter",
|
||||||
|
"infoAgeunit": "Jahr",
|
||||||
|
"infoGender": "Geschlecht",
|
||||||
|
"infoMan": "Mann",
|
||||||
|
"infoWoman": "Frau",
|
||||||
|
"infoUnknown": "Unbekannt",
|
||||||
|
"infoBirthday": "Geburtsdatum",
|
||||||
|
"infoHeight": "Körpergröße",
|
||||||
|
"infoWeight": "Körpergewicht",
|
||||||
|
"btnEdit": "Redaktion",
|
||||||
|
"btnDelete": "löschen",
|
||||||
|
"btnAdd": "hinzufügen",
|
||||||
|
"btnDetail": "Details anzeigen",
|
||||||
|
"btnDeleteAccount": "Konto löschen",
|
||||||
|
"btnLogOut": "Ausloggen",
|
||||||
|
"countIntake": "Aufnahme",
|
||||||
|
"countCalorieIntake": "Wärmeaufnahme",
|
||||||
|
"countMealdetails": "Essensdetails",
|
||||||
|
"countAddFood": "Futtermittel hinzufügen",
|
||||||
|
"countNutritionalProportion": "Anteil der Nährstoffe",
|
||||||
|
"countComponentStatistics": "Zusammensetzung statistik",
|
||||||
|
"countCalorieAnalysis": "Kalorienanalyse",
|
||||||
|
"countNutrientElementEnergyProportion": "Anteil der Nährstoffenergie",
|
||||||
|
"countNutritionClassification": "Ernährungsgruppeneinteilung",
|
||||||
|
"countNutritionElementRankingList": "Ranking der Nährstoffe",
|
||||||
|
"countFoodTypes": "Lebensmitteltyp",
|
||||||
|
|
||||||
|
"total": "mit",
|
||||||
|
"records": "Notiert",
|
||||||
|
"Search": "Suche läuft.",
|
||||||
|
"VoiceSearch": "Jetzt die suche.",
|
||||||
|
"Save": "Intakt",
|
||||||
|
"noMoreData": "Keine weiteren daten",
|
||||||
|
"HistoricalSearch": "Suche in der geschichte",
|
||||||
|
"wantSearch": "Durchsuch das ziel",
|
||||||
|
"verifyCalorie": "Geben sie kalorien ein.",
|
||||||
|
"kcal": "Kalorien",
|
||||||
|
"countNoFood": "Vorübergehende lebensmittelknappheit.",
|
||||||
|
"msgLoginTips": "Loggen sie sich ein und sehen sie mehr nach",
|
||||||
|
"Nutrients": "Spender",
|
||||||
|
"Content": "Hüllen",
|
||||||
|
"CaloriesAndnutrients": "Kalorien und ernährung",
|
||||||
|
"ImproveInformation": "Nachrichten verbessern.",
|
||||||
|
"WhetherTodelete": "Ist sie gelöscht",
|
||||||
|
"BusinessCooperation": "Kooperation seitens der händler",
|
||||||
|
"verifyActivityCoefficient": "Bitte wählen sie die multiplikatoren",
|
||||||
|
"devicesTips":"Gerät nicht registriert. Bitte wenden Sie sich an den Verkäufer zur Systemzertifizierung.",
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,161 @@
|
||||||
|
{
|
||||||
|
"msgTitle": "Friendly Reminder",
|
||||||
|
"msgUpgradeFail": "Upgrade failed",
|
||||||
|
"msgDownloading": "Downloading",
|
||||||
|
"msgLatestVersion": "It's already the latest version!",
|
||||||
|
"msgCancel": "You have canceled the operation!",
|
||||||
|
"msgLoginSuccess": "Login successful!",
|
||||||
|
"msgDelete": "Deleted successfully",
|
||||||
|
"msgSetSuccess": "Setup successful",
|
||||||
|
"msgBottom": "That's it, let's look at something else",
|
||||||
|
"msgNoMoreData": "No more data available!",
|
||||||
|
"msgSetPasswordSuccess": "Password set successfully, entering the program!",
|
||||||
|
"msgAddUser": "Currently, there are no members. Please add one first",
|
||||||
|
"verifyNickName": "Please enter a nickname",
|
||||||
|
"verifyNotOptional": "Future dates are not selectable",
|
||||||
|
"verifyDate": "Please select the measurement date",
|
||||||
|
"verifyBirthday": "Please select your date of birth",
|
||||||
|
"verifyHeight": "Please enter your height",
|
||||||
|
"verifyWeight": "Please enter your weight",
|
||||||
|
"verifyGender": "Please select gender",
|
||||||
|
"verifyBontrast": "Please select data",
|
||||||
|
"verifyBodyDate": "Please choose the correct time",
|
||||||
|
"verifyRecord": "Please enter",
|
||||||
|
"verifyPicker": "Please select",
|
||||||
|
"verifyAccount": "Please enter a correct phone number or email address",
|
||||||
|
"verifyEmail": "Please enter your email",
|
||||||
|
"verifyEmailCorrect": "Please enter a correct email address",
|
||||||
|
"verifyMobile": "Please enter your phone number",
|
||||||
|
"verifyMobileCorrect": "Please enter a correct phone number",
|
||||||
|
"verifyCode": "Please enter the verification code",
|
||||||
|
"verifyPassword": "Please enter the password",
|
||||||
|
"verifyPasswordTwo": "Please enter the confirmation password",
|
||||||
|
"verifyPasswordCorrect": "Please confirm that the passwords entered are identical",
|
||||||
|
"verifyAgreement": "Please confirm and check the agreement first",
|
||||||
|
"verifyOutLogin": "Are you sure you want to log out?",
|
||||||
|
"verifyDeleteUser": "Should this member be deleted?",
|
||||||
|
"verifyDeleteHistory": "Do you want to delete the current measurement record?",
|
||||||
|
"verifyDeleteAccount": "After successful deletion, all associated information of the account will be cleared and cannot be retrieved. Are you sure you want to delete?",
|
||||||
|
"btnConfirm": "confirm",
|
||||||
|
"btnSubmit": "submit",
|
||||||
|
"btnSancellation": "Cancel",
|
||||||
|
"btnContinue": "continue",
|
||||||
|
"btnBack": "return",
|
||||||
|
"ConnectionTimeout": "Connection timed out, click to reconnect",
|
||||||
|
"Measuring": "During the measurement, please place the food on the scale",
|
||||||
|
"Weight": "weight",
|
||||||
|
"RecordWeight": "Please enter food weight",
|
||||||
|
"SearchBluetooth": "In Bluetooth search",
|
||||||
|
"Remeasure": "Data anomaly, please re-measure!",
|
||||||
|
"reset": "Data anomaly, please reset and measure again!",
|
||||||
|
"Disconnect": "Disconnect",
|
||||||
|
"remeasure": "remeasure",
|
||||||
|
"resetBtn": "Tare",
|
||||||
|
"UnitBtn": "unit",
|
||||||
|
"SaveResult": "save",
|
||||||
|
"titleHome": "home",
|
||||||
|
"titleMenu": "recipe",
|
||||||
|
"titleMenuAdd": "Add recipe",
|
||||||
|
"titleMenuSearch": "Search for recipes",
|
||||||
|
"titleCount": "Count food",
|
||||||
|
"titleCountList": "Ingredient library",
|
||||||
|
"titleCustomKcal": "Custom calorie",
|
||||||
|
"titleEveryMeal": "Meal details",
|
||||||
|
"titleCountSearch": "Ingredient search",
|
||||||
|
"titleeveryDay": "Nutritional Analysis",
|
||||||
|
"titleMe": "my",
|
||||||
|
"titleDetail": "Details",
|
||||||
|
"titleBody": "target",
|
||||||
|
"titleHistory": "Diet record",
|
||||||
|
"titlePhone": "Bind mobile number",
|
||||||
|
"titleEmail": "Bind email",
|
||||||
|
"titlePasswordEdit": "Change password",
|
||||||
|
"titleSet": "Settings",
|
||||||
|
"titleDate": "date",
|
||||||
|
"titleMember": "data",
|
||||||
|
"titleManage": "Member Management",
|
||||||
|
"titleManageAdd": "Add member",
|
||||||
|
"titleAboutUs": "About Us",
|
||||||
|
"titleSetPassword": "set password",
|
||||||
|
"titlePassword": "password",
|
||||||
|
"titleConfirmPassword": "Confirm Password",
|
||||||
|
"titleForgotPassword": "Forgot password",
|
||||||
|
"titleCode": "CAPTCHA",
|
||||||
|
"titleLanguage": "Language",
|
||||||
|
"titleSendCode": "Get Verification code",
|
||||||
|
"titleSendCodeRetry": "Resend after S",
|
||||||
|
"titleLogin": "login",
|
||||||
|
"titleRegister": "register",
|
||||||
|
"titleToggleLogin": "Switch login",
|
||||||
|
"titleAccountText": "Mobile phone number/Email",
|
||||||
|
"titleAgreementText": "Read and agree",
|
||||||
|
"titleAgreementContntText": "Privacy Policy",
|
||||||
|
"titleVersionUpdate": "Version Update",
|
||||||
|
"titleNewVersion": "new version",
|
||||||
|
"infoActivityCoefficient": "Activity coefficient",
|
||||||
|
"infoPersonalProfile": "Personal Profile",
|
||||||
|
"infoMyRecipes": "My recipe",
|
||||||
|
"infoMyCollection": "My Collection",
|
||||||
|
"infoAvatar": "avatar",
|
||||||
|
"infoNickname": "nickname",
|
||||||
|
"infoMobile": "mobile phone number",
|
||||||
|
"infoEmail": "email",
|
||||||
|
"infoAge": "age",
|
||||||
|
"infoAgeunit": "year",
|
||||||
|
"infoGender": "gender",
|
||||||
|
"infoMan": "male",
|
||||||
|
"infoWoman": "female",
|
||||||
|
"infoUnknown": "unknown",
|
||||||
|
"infoBirthday": "Birthday",
|
||||||
|
"infoHeight": "height",
|
||||||
|
"infoWeight": "weight",
|
||||||
|
"btnEdit": "edit",
|
||||||
|
"btnDelete": "delete",
|
||||||
|
"btnAdd": "add",
|
||||||
|
"btnDetail": "View details",
|
||||||
|
"btnDeleteAccount": "Delete account",
|
||||||
|
"btnLogOut": "Log out",
|
||||||
|
"countIntake": "intake",
|
||||||
|
"countCalorieIntake": "caloric intake",
|
||||||
|
"countMealdetails": "Meal details",
|
||||||
|
"countAddFood": "Add food",
|
||||||
|
"countNutritionalProportion": "Nutrient composition",
|
||||||
|
"countComponentStatistics": "Ingredient statistics",
|
||||||
|
"countCalorieAnalysis": "Calorie analysis",
|
||||||
|
"countNutrientElementEnergyProportion": "Energy proportion",
|
||||||
|
"countNutritionClassification": "Nutrition classification",
|
||||||
|
"countNutritionElementRankingList": "Nutrient Rankings",
|
||||||
|
"countFoodTypes": "Food type",
|
||||||
|
|
||||||
|
"total": "Total of",
|
||||||
|
"records": "records",
|
||||||
|
"Search": "Search",
|
||||||
|
"VoiceSearch": "VoiceSearch",
|
||||||
|
"Save": "Save",
|
||||||
|
"noMoreData": "There is no more data",
|
||||||
|
"HistoricalSearch": "Historical search",
|
||||||
|
"wantSearch": "I guess you want to search",
|
||||||
|
"verifyCalorie": "Please enter calories",
|
||||||
|
"kcal": "Calorie",
|
||||||
|
"countNoFood": "NO Food Yet",
|
||||||
|
"msgLoginTips": "Log in to view more",
|
||||||
|
"Nutrients": "Nutrients",
|
||||||
|
"Content": "Content",
|
||||||
|
"CaloriesAndnutrients": "Calories and nutrients",
|
||||||
|
"ImproveInformation": "Improve information",
|
||||||
|
"WhetherTodelete": "Whether to delete",
|
||||||
|
"BusinessCooperation": "Businesscooperation",
|
||||||
|
"verifyActivityCoefficient": "Please select the activity coefficient",
|
||||||
|
"devicesTips":"The equipment has not been registered. Please contact the seller for system certification.",
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,163 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
"msgTitle": "Consejo amistoso",
|
||||||
|
"msgUpgradeFail": "Actualización fallida",
|
||||||
|
"msgDownloading": "Descargando",
|
||||||
|
"msgLatestVersion": "Ya es la versión más reciente!",
|
||||||
|
"msgCancel": "Ha cancelado la operación!",
|
||||||
|
"msgLoginSuccess": "Inicio de sesión exitoso!",
|
||||||
|
"msgDelete": "Eliminado con éxito",
|
||||||
|
"msgSetSuccess": "Configuración exitosa",
|
||||||
|
"msgBottom": "Hasta aquí, veamos algo más",
|
||||||
|
"msgNoMoreData": "No hay más datos disponibles!",
|
||||||
|
"msgSetPasswordSuccess": "La configuración de la contraseña ha tenido éxito, entra en el programa!",
|
||||||
|
"msgAddUser": "No hay miembros por el momento, por favor añádelos primero.",
|
||||||
|
"verifyNickName": "Por favor, ingrese un nombre de usuario",
|
||||||
|
"verifyNotOptional": "No se puede seleccionar una fecha futura",
|
||||||
|
"verifyDate": "Por favor, seleccione la fecha de medición",
|
||||||
|
"verifyBirthday": "Por favor, seleccione la fecha de nacimiento",
|
||||||
|
"verifyHeight": "Por favor, ingrese su altura",
|
||||||
|
"verifyWeight": "Por favor, ingrese su peso",
|
||||||
|
"verifyGender": "Por favor, seleccione el género",
|
||||||
|
"verifyBontrast": "Por favor, seleccione los datos",
|
||||||
|
"verifyBodyDate": "Por favor, seleccione la hora correcta",
|
||||||
|
"verifyRecord": "Por favor, ingrese",
|
||||||
|
"verifyPicker": "Por favor, elija",
|
||||||
|
"verifyAccount": "Por favor, ingrese un número de teléfono o correo electrónico correcto",
|
||||||
|
"verifyEmail": "Por favor, introduzca el correo electrónico",
|
||||||
|
"verifyEmailCorrect": "Por favor, ingrese un correo electrónico válido",
|
||||||
|
"verifyMobile": "Por favor, ingrese su número de teléfono",
|
||||||
|
"verifyMobileCorrect": "Por favor, ingrese el número de teléfono correcto.",
|
||||||
|
"verifyCode": "Por favor, ingrese el código de verificación",
|
||||||
|
"verifyPassword": "Por favor, introduzca la contraseña",
|
||||||
|
"verifyPasswordTwo": "Por favor, ingrese la contraseña de confirmación",
|
||||||
|
"verifyPasswordCorrect": "Por favor, confirme que las contraseñas ingresadas coinciden.",
|
||||||
|
"verifyAgreement": "Por favor, confirme y marque el acuerdo primero.",
|
||||||
|
"verifyOutLogin": "¿Deseas cerrar sesión?",
|
||||||
|
"verifyDeleteUser": "¿Eliminar a este miembro?",
|
||||||
|
"verifyDeleteHistory": "¿Eliminar el registro de medición actual?",
|
||||||
|
"verifyDeleteAccount": "Una vez eliminado, toda la información asociada a esta cuenta se borrará y no se podrá recuperar. ¿Desea eliminarla?",
|
||||||
|
"btnConfirm": "confirmar",
|
||||||
|
"btnSubmit": "enviar",
|
||||||
|
"btnSancellation": "Cancelar",
|
||||||
|
"btnContinue": "Continuar",
|
||||||
|
"btnBack": "volver",
|
||||||
|
"btnDelete": "eliminar",
|
||||||
|
"ConnectionTimeout": "Tiempo de espera de conexión agotado, haga clic para reconectar",
|
||||||
|
"Measuring": "Durante la medición, coloque la comida en la báscula.",
|
||||||
|
"Weight": "peso",
|
||||||
|
"RecordWeight": "Ingrese el peso de la comida",
|
||||||
|
"SearchBluetooth": "Buscando Bluetooth",
|
||||||
|
"Remeasure": "Los datos son anómalos, vuelva a medirlos!",
|
||||||
|
"reset": "Los datos son anómalos, por favor reinicie y vuelva a medir!",
|
||||||
|
"Disconnect": "Desconectar",
|
||||||
|
"remeasure": "Volver a medir",
|
||||||
|
"resetBtn": "eliminación",
|
||||||
|
"UnitBtn": "unidad",
|
||||||
|
"SaveResult": "guardar",
|
||||||
|
"titleHome": "Página de inicio",
|
||||||
|
"titleMenu": "Receta",
|
||||||
|
"titleMenuAdd": "Añadir receta",
|
||||||
|
"titleMenuSearch": "Buscar recetas",
|
||||||
|
"titleCount": "Control de alimentos",
|
||||||
|
"titleCountList": "Almacén de ingredientes",
|
||||||
|
"titleCustomKcal": "Calorías personalizadas",
|
||||||
|
"titleEveryMeal": "Detalles de la comida",
|
||||||
|
"titleCountSearch": "Búsqueda de ingredientes",
|
||||||
|
"titleeveryDay": "Análisis nutricional",
|
||||||
|
"titleMe": "mi",
|
||||||
|
"titleDetail": "detalles",
|
||||||
|
"titleBody": "Objetivo",
|
||||||
|
"titleHistory": "Registro de la dieta",
|
||||||
|
"titlePhone": "Vincular número de teléfono",
|
||||||
|
"titleEmail": "Vincular correo electrónico",
|
||||||
|
"titlePasswordEdit": "cambiar la contraseña",
|
||||||
|
"titleSet": "configuración",
|
||||||
|
"titleDate": "fecha",
|
||||||
|
"titleMember": "Materiales",
|
||||||
|
"titleManage": "Gestión de miembros",
|
||||||
|
"titleManageAdd": "Añadir miembros",
|
||||||
|
"titleAboutUs": "Sobre nosotros",
|
||||||
|
"titleSetPassword": "Establecer contraseña",
|
||||||
|
"titlePassword": "contraseña",
|
||||||
|
"titleConfirmPassword": "Confirmar contraseña",
|
||||||
|
"titleForgotPassword": "Olvidé la contraseña",
|
||||||
|
"titleCode": "código de verificación",
|
||||||
|
"titleLanguage": "El lenguaje",
|
||||||
|
"titleSendCode": "Obtener código de verificación",
|
||||||
|
"titleSendCodeRetry": "Reenvío posterior a S",
|
||||||
|
"titleLogin": "Iniciar sesión",
|
||||||
|
"titleRegister": "registro",
|
||||||
|
"titleToggleLogin": "Cambiar de inicio de sesión",
|
||||||
|
"titleAccountText": "Número de teléfono/correo electrónico",
|
||||||
|
"titleAgreementText": "Leer y aceptar",
|
||||||
|
"titleAgreementContntText": "Acuerdo de privacidad",
|
||||||
|
"titleVersionUpdate": "Actualización de versión",
|
||||||
|
"titleNewVersion": "Nueva versión",
|
||||||
|
"infoActivityCoefficient": "factor de actividad",
|
||||||
|
"infoPersonalProfile": "Perfil personal",
|
||||||
|
"infoMyRecipes": "Mi recetario",
|
||||||
|
"infoMyCollection": "Mi colección",
|
||||||
|
"infoAvatar": "Avatar",
|
||||||
|
"infoNickname": "Apodo",
|
||||||
|
"infoMobile": "número de teléfono móvil",
|
||||||
|
"infoEmail": "correo electrónico",
|
||||||
|
"infoAge": "edad",
|
||||||
|
"infoAgeunit": "año",
|
||||||
|
"infoGender": "Género",
|
||||||
|
"infoMan": "hombre",
|
||||||
|
"infoWoman": "mujer",
|
||||||
|
"infoUnknown": "desconocido",
|
||||||
|
"infoBirthday": "Fecha de nacimiento",
|
||||||
|
"infoHeight": "altura",
|
||||||
|
"infoWeight": "Peso",
|
||||||
|
"btnEdit": "editar",
|
||||||
|
"btnDelete": "eliminar",
|
||||||
|
"btnAdd": "añadir",
|
||||||
|
"btnDetail": "Ver detalles",
|
||||||
|
"btnDeleteAccount": "Eliminar la cuenta",
|
||||||
|
"btnLogOut": "Cerrar sesión",
|
||||||
|
"countIntake": "Ingestión",
|
||||||
|
"countCalorieIntake": "Ingesta de calorías",
|
||||||
|
"countMealdetails": "Detalles de la comida",
|
||||||
|
"countAddFood": "Añadir alimentos",
|
||||||
|
"countNutritionalProportion": "Proporción de nutrientes",
|
||||||
|
"countComponentStatistics": "Estadística de componentes",
|
||||||
|
"countCalorieAnalysis": "Análisis de calorías",
|
||||||
|
"countNutrientElementEnergyProportion": "Proporción de energía de los nutrientes",
|
||||||
|
"countNutritionClassification": "Clasificación nutricional",
|
||||||
|
"countNutritionElementRankingList": "Ranking de elementos nutricionales",
|
||||||
|
"countFoodTypes": "Tipo de alimento",
|
||||||
|
|
||||||
|
"total": "total",
|
||||||
|
"records": "Los registros",
|
||||||
|
"Search": "búsqueda",
|
||||||
|
"VoiceSearch": "Búsqueda por voz",
|
||||||
|
"Save": "guardar",
|
||||||
|
"noMoreData": "No hay más datos",
|
||||||
|
"HistoricalSearch": "Búsqueda en historia",
|
||||||
|
"wantSearch": "Supongo que quieres buscar",
|
||||||
|
"verifyCalorie": "Por favor, introduzca calorías",
|
||||||
|
"kcal": "caloría",
|
||||||
|
"countNoFood": "No hay comida todavía",
|
||||||
|
"msgLoginTips": "Iniciar sesión para ver más",
|
||||||
|
"Nutrients": "nutriente",
|
||||||
|
"Content": "Elcontenido",
|
||||||
|
"CaloriesAndnutrients": "Calorías y nutrición",
|
||||||
|
"ImproveInformation": "Perfeccionando el mensaje",
|
||||||
|
"WhetherTodelete": "Eliminar sí no",
|
||||||
|
"BusinessCooperation": "Cooperación empresarial",
|
||||||
|
"verifyActivityCoefficient": "Por favor seleccione el coeficiente de actividad",
|
||||||
|
"devicesTips":"El equipo no está registrado. Por favor, contacte al vendedor para realizar la autenticación del sistema.",
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,161 @@
|
||||||
|
{
|
||||||
|
"msgTitle": "Conseil amical",
|
||||||
|
"msgUpgradeFail": "Mise à niveau échouée",
|
||||||
|
"msgDownloading": "En cours de téléchargement",
|
||||||
|
"msgLatestVersion": "C'est déjà la dernière version !",
|
||||||
|
"msgCancel": "Vous avez annulé l'opération !",
|
||||||
|
"msgLoginSuccess": "Connexion réussie !",
|
||||||
|
"msgDelete": "Suppression réussie",
|
||||||
|
"msgSetSuccess": "Paramètres réussis",
|
||||||
|
"msgBottom": "C'est la fin, regarde quelque chose d'autre.",
|
||||||
|
"msgNoMoreData": "Plus de données disponibles !",
|
||||||
|
"msgSetPasswordSuccess": "Mot de passe configuré avec succès, accédez au programme !",
|
||||||
|
"msgAddUser": "Aucun membre pour le moment, veuillez en ajouter d'abord.",
|
||||||
|
"verifyNickName": "Veuillez entrer un pseudonyme",
|
||||||
|
"verifyNotOptional": "La date future ne peut pas être sélectionnée",
|
||||||
|
"verifyDate": "Veuillez sélectionner la date de mesure",
|
||||||
|
"verifyBirthday": "Veuillez sélectionner la date de naissance",
|
||||||
|
"verifyHeight": "Veuillez entrer votre taille",
|
||||||
|
"verifyWeight": "Veuillez entrer votre poids",
|
||||||
|
"verifyGender": "Veuillez choisir le sexe",
|
||||||
|
"verifyBontrast": "Veuillez sélectionner les données",
|
||||||
|
"verifyBodyDate": "Veuillez choisir l'heure correcte",
|
||||||
|
"verifyRecord": "Veuillez entrer",
|
||||||
|
"verifyPicker": "Veuillez choisir",
|
||||||
|
"verifyAccount": "Veuillez saisir un numéro de téléphone ou une adresse e-mail corrects",
|
||||||
|
"verifyEmail": "Veuillez saisir une adresse e-mail",
|
||||||
|
"verifyEmailCorrect": "Veuillez entrer une adresse e-mail valide.",
|
||||||
|
"verifyMobile": "Veuillez entrer votre numéro de téléphone",
|
||||||
|
"verifyMobileCorrect": "Veuillez saisir un numéro de téléphone correct",
|
||||||
|
"verifyCode": "Veuillez entrer le code de vérification",
|
||||||
|
"verifyPassword": "Veuillez entrer le mot de passe",
|
||||||
|
"verifyPasswordTwo": "Veuillez saisir le mot de passe de confirmation",
|
||||||
|
"verifyPasswordCorrect": "Veuillez confirmer que les deux mots de passe saisis sont identiques.",
|
||||||
|
"verifyAgreement": "Veuillez d'abord confirmer et cocher l'accord.",
|
||||||
|
"verifyOutLogin": "Voulez-vous vous déconnecter ?",
|
||||||
|
"verifyDeleteUser": "Voulez-vous supprimer ce membre ?",
|
||||||
|
"verifyDeleteHistory": "Voulez-vous supprimer l'enregistrement de mesure actuel ?",
|
||||||
|
"verifyDeleteAccount": "Après la suppression réussie, toutes les informations associées à ce compte seront effacées et ne pourront pas être récupérées. Voulez-vous vraiment supprimer ?",
|
||||||
|
"btnConfirm": "confirmer",
|
||||||
|
"btnSubmit": "Soumettre",
|
||||||
|
"btnSancellation": "Annuler",
|
||||||
|
"btnContinue": "Continuer",
|
||||||
|
"btnBack": "retourner",
|
||||||
|
"btnDelete": "supprimer",
|
||||||
|
"ConnectionTimeout": "Déconnexion, cliquez pour se reconnecter",
|
||||||
|
"Measuring": "En cours de mesure, veuillez placer la nourriture sur la balance.",
|
||||||
|
"Weight": "poids",
|
||||||
|
"RecordWeight": "Veuillez entrer le poids de la nourriture",
|
||||||
|
"SearchBluetooth": "Recherche Bluetooth en cours",
|
||||||
|
"Remeasure": "Données anormales, veuillez reprendre la mesure !",
|
||||||
|
"reset": "Données anormales, veuillez les réinitialiser et recommencer la mesure !",
|
||||||
|
"Disconnect": "Déconnexion",
|
||||||
|
"remeasure": "Re-mesurer",
|
||||||
|
"resetBtn": "Réinitialisation",
|
||||||
|
"UnitBtn": "unité",
|
||||||
|
"SaveResult": "sauvegarder",
|
||||||
|
"titleHome": "Page d'accueil",
|
||||||
|
"titleMenu": "Recette",
|
||||||
|
"titleMenuAdd": "Ajouter une recette",
|
||||||
|
"titleMenuSearch": "Rechercher des recettes",
|
||||||
|
"titleCount": "Compter les calories",
|
||||||
|
"titleCountList": "Répertoire des ingrédients",
|
||||||
|
"titleCustomKcal": "Calories personnalisées",
|
||||||
|
"titleEveryMeal": "Détails du repas",
|
||||||
|
"titleCountSearch": "Recherche d'ingrédients",
|
||||||
|
"titleeveryDay": "Analyse nutritionnelle",
|
||||||
|
"titleMe": "mon",
|
||||||
|
"titleDetail": "Détails",
|
||||||
|
"titleBody": "Objectif",
|
||||||
|
"titleHistory": "Journal alimentaire",
|
||||||
|
"titlePhone": "Lier un numéro de téléphone",
|
||||||
|
"titleEmail": "Lier une adresse e-mail",
|
||||||
|
"titlePasswordEdit": "Modifier le mot de passe",
|
||||||
|
"titleSet": "Paramétrage",
|
||||||
|
"titleDate": "date",
|
||||||
|
"titleMember": "Données",
|
||||||
|
"titleManage": "Gestion des membres",
|
||||||
|
"titleManageAdd": "Ajouter un membre",
|
||||||
|
"titleAboutUs": "À propos de nous",
|
||||||
|
"titleSetPassword": "Définir un mot de passe",
|
||||||
|
"titlePassword": "mot de passe",
|
||||||
|
"titleConfirmPassword": "Confirmer le mot de passe",
|
||||||
|
"titleForgotPassword": "Mot de passe oublié",
|
||||||
|
"titleCode": "Code de vérification",
|
||||||
|
"titleLanguage": "Langue (S)",
|
||||||
|
"titleSendCode": "Obtenir le code de vérification",
|
||||||
|
"titleSendCodeRetry": "Réémission après S",
|
||||||
|
"titleLogin": "Connexion",
|
||||||
|
"titleRegister": "Inscription",
|
||||||
|
"titleToggleLogin": "Changer de connexion",
|
||||||
|
"titleAccountText": "Numéro de téléphone / Adresse e-mail",
|
||||||
|
"titleAgreementText": "Lire et accepter",
|
||||||
|
"titleAgreementContntText": "Politique de confidentialité",
|
||||||
|
"titleVersionUpdate": "Mise à jour de version",
|
||||||
|
"titleNewVersion": "Nouvelle version",
|
||||||
|
"infoActivityCoefficient": "Coefficient d'activité",
|
||||||
|
"infoPersonalProfile": "Profil personnel",
|
||||||
|
"infoMyRecipes": "Ma recette",
|
||||||
|
"infoMyCollection": "Ma collection",
|
||||||
|
"infoAvatar": "Avatar",
|
||||||
|
"infoNickname": "Pseudonyme",
|
||||||
|
"infoMobile": "numéro de téléphone portable",
|
||||||
|
"infoEmail": "boîte aux lettres",
|
||||||
|
"infoAge": "Âge",
|
||||||
|
"infoAgeunit": "Année",
|
||||||
|
"infoGender": "Genre",
|
||||||
|
"infoMan": "homme",
|
||||||
|
"infoWoman": "femme",
|
||||||
|
"infoUnknown": "Inconnu",
|
||||||
|
"infoBirthday": "Date de naissance",
|
||||||
|
"infoHeight": "taille",
|
||||||
|
"infoWeight": "poids",
|
||||||
|
"btnEdit": "Éditer",
|
||||||
|
"btnDelete": "supprimer",
|
||||||
|
"btnAdd": "Ajouter",
|
||||||
|
"btnDetail": "Voir les détails",
|
||||||
|
"btnDeleteAccount": "Supprimer le compte",
|
||||||
|
"btnLogOut": "Se déconnecter",
|
||||||
|
"countIntake": "Absorption",
|
||||||
|
"countCalorieIntake": "L'apport calorique",
|
||||||
|
"countMealdetails": "Détails du repas",
|
||||||
|
"countAddFood": "Ajouter des aliments",
|
||||||
|
"countNutritionalProportion": "Proportion nutritionnelle",
|
||||||
|
"countComponentStatistics": "Statistiques des composants",
|
||||||
|
"countCalorieAnalysis": "Analyse des calories",
|
||||||
|
"countNutrientElementEnergyProportion": "La proportion d'énergie des éléments nutritifs",
|
||||||
|
"countNutritionClassification": "Classification nutritionnelle",
|
||||||
|
"countNutritionElementRankingList": "Classement des éléments nutritifs",
|
||||||
|
"countFoodTypes": "Type d'alimentation",
|
||||||
|
|
||||||
|
"total ": "total",
|
||||||
|
"Records ": " un enregistrement",
|
||||||
|
"Search": "rechercher ",
|
||||||
|
"VoiceSearch": "recherche vocale",
|
||||||
|
"Save": "Save",
|
||||||
|
"NoMoreData ": "plus de données",
|
||||||
|
"HistoricalSearch": "recherche historique",
|
||||||
|
"WantSearch ": "devinez que vous voulez rechercher",
|
||||||
|
"VerifyCalorie ": "s’il vous plaît entrer des calories ",
|
||||||
|
"Kcal ": "calories",
|
||||||
|
"CountNoFood ": "pas de nourriture pour le moment ",
|
||||||
|
"MsgLoginTips ": "voir plus après connexion ",
|
||||||
|
"Nutriments ": "nutriments ",
|
||||||
|
"Content": "contenu ",
|
||||||
|
"CaloriesAndnutrients": "calories et nutrition ",
|
||||||
|
"Améliorer l’information ": " améliorer l’information ",
|
||||||
|
"WhetherTodelete": "supprimer ou non ",
|
||||||
|
"BusinessCooperation": "coopération commerciale ",
|
||||||
|
"verifyActivityCoefficient ": "veuillez sélectionner des coefficients d’activité.",
|
||||||
|
"devicesTips":"L'équipement n'est pas enregistré. Veuillez contacter le vendeur pour une authentification du système.",
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
import en from './en.json'
|
||||||
|
import zh from './zh.json'
|
||||||
|
import zhHant from './zh-Hant.json'
|
||||||
|
import ja from './ja.json'
|
||||||
|
import fr from './fr.json'
|
||||||
|
import de from './de.json'
|
||||||
|
import ko from './ko.json'
|
||||||
|
import ru from './ru.json'
|
||||||
|
import pt from './pt.json'
|
||||||
|
import es from './es.json'
|
||||||
|
import ar from './ar.json'
|
||||||
|
export default {
|
||||||
|
zh, //中文
|
||||||
|
ar, //阿拉伯
|
||||||
|
de, //德语
|
||||||
|
en, // 英语
|
||||||
|
es, //西班牙
|
||||||
|
fr, //法语
|
||||||
|
ja, //日语
|
||||||
|
ko, //韩语
|
||||||
|
pt, //葡萄牙
|
||||||
|
ru, //俄语
|
||||||
|
"zh-Hans": zh, //中文
|
||||||
|
'zh-Hant': zhHant, //繁体
|
||||||
|
"en-CN": en,
|
||||||
|
"jp":ja,
|
||||||
|
"fra":fr,
|
||||||
|
"kor":ko,
|
||||||
|
"spa":es,
|
||||||
|
"ara":ar,
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,162 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
"msgTitle": "友情のヒント",
|
||||||
|
"msgUpgradeFail": "アップグレード失敗",
|
||||||
|
"msgDownloading": "ダウンロード中",
|
||||||
|
"msgLatestVersion": "最新バージョンですよ!",
|
||||||
|
"msgCancel": "操作をキャンセルしました!",
|
||||||
|
"msgLoginSuccess": "ログイン成功!",
|
||||||
|
"msgDelete": "削除に成功しました",
|
||||||
|
"msgSetSuccess": "設定完了",
|
||||||
|
"msgBottom": "これ以上ありません。他のものを見てみましょう",
|
||||||
|
"msgNoMoreData": "これ以上データはありません!",
|
||||||
|
"msgSetPasswordSuccess": "パスワード設定完了、プログラムに入ります!",
|
||||||
|
"msgAddUser": "メンバーがまだいません。まず追加してください",
|
||||||
|
"verifyNickName": "ニックネームを入力してください",
|
||||||
|
"verifyNotOptional": "将来の日付は選択できません",
|
||||||
|
"verifyDate": "測定日を選択してください",
|
||||||
|
"verifyBirthday": "生年月日を選択してください",
|
||||||
|
"verifyHeight": "身長を入力してください",
|
||||||
|
"verifyWeight": "体重を入力してください",
|
||||||
|
"verifyGender": "性別を選択してください",
|
||||||
|
"verifyBontrast": "データを選択してください",
|
||||||
|
"verifyBodyDate": "正しい時間を選択してください",
|
||||||
|
"verifyRecord": "入力してください",
|
||||||
|
"verifyPicker": "選択してください",
|
||||||
|
"verifyAccount": "正しい携帯電話番号またはメールアドレスを入力してください",
|
||||||
|
"verifyEmail": "メールアドレスを入力してください",
|
||||||
|
"verifyEmailCorrect": "正しいメールアドレスを入力してください",
|
||||||
|
"verifyMobile": "携帯電話番号を入力してください",
|
||||||
|
"verifyMobileCorrect": "正しい携帯電話番号を入力してください",
|
||||||
|
"verifyCode": "認証コードを入力してください",
|
||||||
|
"verifyPassword": "パスワードを入力してください",
|
||||||
|
"verifyPasswordTwo": "確認用パスワードを入力してください",
|
||||||
|
"verifyPasswordCorrect": "パスワードが一致しているか確認してください",
|
||||||
|
"verifyAgreement": "まず、同意書を確認してチェックしてください",
|
||||||
|
"verifyOutLogin": "ログアウトしますか?",
|
||||||
|
"verifyDeleteUser": "このメンバーを削除しますか?",
|
||||||
|
"verifyDeleteHistory": "現在の測定記録を削除しますか?",
|
||||||
|
"verifyDeleteAccount": "削除に成功すると、そのアカウントに関連するすべての情報が消去され、復元できません。削除しますか?",
|
||||||
|
"btnConfirm": "確認",
|
||||||
|
"btnSubmit": "提出",
|
||||||
|
"btnSancellation": "キャンセル",
|
||||||
|
"btnContinue": "続ける",
|
||||||
|
"btnBack": "戻る",
|
||||||
|
"ConnectionTimeout": "接続タイムアウト、再接続をクリックしてください",
|
||||||
|
"Measuring": "測定中は、食べ物をはかりの上に置いてください",
|
||||||
|
"Weight": "重量",
|
||||||
|
"RecordWeight": "食品の重量を入力してください",
|
||||||
|
"SearchBluetooth": "Bluetooth検索中",
|
||||||
|
"Remeasure": "データに異常があります。再度計測してください!",
|
||||||
|
"reset": "データ異常です。ゼロにしてから再度測定してください!",
|
||||||
|
"Disconnect": "接続を切断",
|
||||||
|
"remeasure": "再測定",
|
||||||
|
"resetBtn": "ゼロクリア",
|
||||||
|
"UnitBtn": "単位",
|
||||||
|
"SaveResult": "保存",
|
||||||
|
"titleHome": "ホームページ",
|
||||||
|
"titleMenu": "レシシピ",
|
||||||
|
"titleMenuAdd": "レシピを追加",
|
||||||
|
"titleMenuSearch": "レシピ検索",
|
||||||
|
"titleCount": "食事の計算",
|
||||||
|
"titleCountList": "食材庫(しょかいく)",
|
||||||
|
"titleCustomKcal": "カスタムカロリー",
|
||||||
|
"titleEveryMeal": "食事の詳細",
|
||||||
|
"titleCountSearch": "食材検索",
|
||||||
|
"titleeveryDay": "栄養分析",
|
||||||
|
"titleMe": "私の",
|
||||||
|
"titleDetail": "詳細",
|
||||||
|
"titleBody": "目標",
|
||||||
|
"titleHistory": "食事記録",
|
||||||
|
"titlePhone": "携帯電話番号の紐付け",
|
||||||
|
"titleEmail": "メールアドレスの紐付け",
|
||||||
|
"titlePasswordEdit": "パスワードを変更する",
|
||||||
|
"titleSet": "設定",
|
||||||
|
"titleDate": "日付",
|
||||||
|
"titleMember": "資料",
|
||||||
|
"titleManage": "メンバー管理",
|
||||||
|
"titleManageAdd": "メンバー追加",
|
||||||
|
"titleAboutUs": "私たちについて",
|
||||||
|
"titleSetPassword": "パスワードを設定する",
|
||||||
|
"titlePassword": "パスワード",
|
||||||
|
"titleConfirmPassword": "確認用パスワード",
|
||||||
|
"titleForgotPassword": "パスワードを忘れた",
|
||||||
|
"titleCode": "認証コード",
|
||||||
|
"titleLanguage": "言語です",
|
||||||
|
"titleSendCode": "認証コードを取得する",
|
||||||
|
"titleSendCodeRetry": "S後再送",
|
||||||
|
"titleLogin": "ログイン",
|
||||||
|
"titleRegister": "登録",
|
||||||
|
"titleToggleLogin": "ログイン切り替え",
|
||||||
|
"titleAccountText": "携帯電話番号/メールアドレス",
|
||||||
|
"titleAgreementText": "読み、同意する",
|
||||||
|
"titleAgreementContntText": "プライバシーポリシー",
|
||||||
|
"titleVersionUpdate": "バージョンアップデート",
|
||||||
|
"titleNewVersion": "新バージョン",
|
||||||
|
"infoActivityCoefficient": "活動係数",
|
||||||
|
"infoPersonalProfile": "個人情報",
|
||||||
|
"infoMyRecipes": "私のレシピ",
|
||||||
|
"infoMyCollection": "私のコレクション",
|
||||||
|
"infoAvatar": "アバター",
|
||||||
|
"infoNickname": "ニックネーム",
|
||||||
|
"infoMobile": "携帯電話番号",
|
||||||
|
"infoEmail": "メールボックス",
|
||||||
|
"infoAge": "年齢",
|
||||||
|
"infoAgeunit": "歳",
|
||||||
|
"infoGender": "性別",
|
||||||
|
"infoMan": "男",
|
||||||
|
"infoWoman": "女(おんな)",
|
||||||
|
"infoUnknown": "未知(みちゅう)",
|
||||||
|
"infoBirthday": "生年月日",
|
||||||
|
"infoHeight": "身長",
|
||||||
|
"infoWeight": "体重",
|
||||||
|
"btnEdit": "編集",
|
||||||
|
"btnDelete": "削除",
|
||||||
|
"btnAdd": "追加",
|
||||||
|
"btnDetail": "詳細を見る",
|
||||||
|
"btnDeleteAccount": "アカウント削除",
|
||||||
|
"btnLogOut": "ログアウト",
|
||||||
|
"countIntake": "摂取",
|
||||||
|
"countCalorieIntake": "熱量摂取",
|
||||||
|
"countMealdetails": "食事の詳細",
|
||||||
|
"countAddFood": "食品を追加する",
|
||||||
|
"countNutritionalProportion": "栄養の割合",
|
||||||
|
"countComponentStatistics": "成分統計",
|
||||||
|
"countCalorieAnalysis": "カロリー分析",
|
||||||
|
"countNutrientElementEnergyProportion": "栄養素のエネルギー割合",
|
||||||
|
"countNutritionClassification": "栄養分類",
|
||||||
|
"countNutritionElementRankingList": "栄養素ランキング",
|
||||||
|
"countFoodTypes": "食品タイプ",
|
||||||
|
|
||||||
|
"total": "共です",
|
||||||
|
"records": "記録します",
|
||||||
|
"Search": "検索します",
|
||||||
|
"VoiceSearch": "音声検索です",
|
||||||
|
"Save": "保存します",
|
||||||
|
"noMoreData": "これ以上のデータはありません",
|
||||||
|
"HistoricalSearch": "履歴検索です",
|
||||||
|
"wantSearch": "あなたが探していると思います",
|
||||||
|
"verifyCalorie": "カロリー入力お願いします。",
|
||||||
|
"kcal": "カロリーです",
|
||||||
|
"countNoFood": "しばらく食べ物がありません",
|
||||||
|
"msgLoginTips": "ログインしてもっと見ます",
|
||||||
|
"Nutrients": "栄養素です",
|
||||||
|
"Content": "含有量です",
|
||||||
|
"CaloriesAndnutrients": "カロリーと栄養です",
|
||||||
|
"ImproveInformation": "情報を補完します",
|
||||||
|
"WhetherTodelete": "削除しますか",
|
||||||
|
"BusinessCooperation": "ビジネス提携です",
|
||||||
|
"verifyActivityCoefficient": "活動係数を選択します",
|
||||||
|
"devicesTips":"機器は登録されていません。販売者に連絡してシステム認証を行ってください。",
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,161 @@
|
||||||
|
{
|
||||||
|
"msgTitle": "친절한 안내",
|
||||||
|
"msgUpgradeFail": "업그레이드 실패",
|
||||||
|
"msgDownloading": "다운로드 중입니다",
|
||||||
|
"msgLatestVersion": "이미 최신 버전입니다!",
|
||||||
|
"msgCancel": "작업을 취소하셨습니다!",
|
||||||
|
"msgLoginSuccess": "로그인 성공!",
|
||||||
|
"msgDelete": "삭제 성공",
|
||||||
|
"msgSetSuccess": "설정 성공",
|
||||||
|
"msgBottom": "끝이에요, 다른 걸 봐요",
|
||||||
|
"msgNoMoreData": "더 이상의 데이터가 없습니다!",
|
||||||
|
"msgSetPasswordSuccess": "비밀번호 설정이 성공적으로 완료되었습니다. 프로그램으로 들어가세요!",
|
||||||
|
"msgAddUser": "멤버가 없습니다. 먼저 추가해 주세요.",
|
||||||
|
"verifyNickName": "닉네임을 입력해 주세요",
|
||||||
|
"verifyNotOptional": "미래 날짜는 선택할 수 없습니다.",
|
||||||
|
"verifyDate": "측정 날짜를 선택해 주세요",
|
||||||
|
"verifyBirthday": "생년월일을 선택해 주세요",
|
||||||
|
"verifyHeight": "키를 입력해 주세요",
|
||||||
|
"verifyWeight": "체중을 입력해 주세요",
|
||||||
|
"verifyGender": "성별을 선택해 주세요",
|
||||||
|
"verifyBontrast": "데이터를 선택해 주세요",
|
||||||
|
"verifyBodyDate": "올바른 시간을 선택해 주세요",
|
||||||
|
"verifyRecord": "입력해 주세요",
|
||||||
|
"verifyPicker": "선택해 주세요",
|
||||||
|
"verifyAccount": "올바른 휴대폰 번호 또는 이메일을 입력해 주세요.",
|
||||||
|
"verifyEmail": "이메일을 입력해 주세요",
|
||||||
|
"verifyEmailCorrect": "올바른 이메일을 입력해 주세요.",
|
||||||
|
"verifyMobile": "휴대폰 번호를 입력해 주세요",
|
||||||
|
"verifyMobileCorrect": "올바른 휴대폰 번호를 입력해 주세요.",
|
||||||
|
"verifyCode": "인증번호를 입력해 주세요",
|
||||||
|
"verifyPassword": "비밀번호를 입력하세요",
|
||||||
|
"verifyPasswordTwo": "비밀번호를 다시 입력해 주세요",
|
||||||
|
"verifyPasswordCorrect": "비밀번호가 일치하는지 확인해 주세요.",
|
||||||
|
"verifyAgreement": "먼저 약관을 확인하고 체크해 주세요.",
|
||||||
|
"verifyOutLogin": "로그아웃 하시겠습니까?",
|
||||||
|
"verifyDeleteUser": "해당 멤버를 삭제하시겠습니까?",
|
||||||
|
"verifyDeleteHistory": "현재 측정 기록을 삭제하시겠습니까?",
|
||||||
|
"verifyDeleteAccount": "삭제 성공 후, 해당 계정의 모든 연관 정보가 지워지고 복구할 수 없으니, 정말로 삭제하시겠습니까?",
|
||||||
|
"btnConfirm": "확인",
|
||||||
|
"btnSubmit": "제출",
|
||||||
|
"btnSancellation": "취소",
|
||||||
|
"btnContinue": "계속",
|
||||||
|
"btnBack": "돌아가다",
|
||||||
|
"btnDelete": "삭제",
|
||||||
|
"ConnectionTimeout": "연결 시간 초과, 재연결을 클릭하세요",
|
||||||
|
"Measuring": "측정 중, 음식을 저울 위에 놓아주세요.",
|
||||||
|
"Weight": "무게",
|
||||||
|
"RecordWeight": "음식 무게를 입력해 주세요",
|
||||||
|
"SearchBluetooth": "블루투스 검색 중",
|
||||||
|
"Remeasure": "데이터 이상, 재측정해 주세요!",
|
||||||
|
"reset": "데이터 이상, 초기화 후 재측정해 주세요!",
|
||||||
|
"Disconnect": "연결 끊기",
|
||||||
|
"remeasure": "재측정",
|
||||||
|
"resetBtn": "제로화",
|
||||||
|
"UnitBtn": "단위",
|
||||||
|
"SaveResult": "저장",
|
||||||
|
"titleHome": "홈페이지",
|
||||||
|
"titleMenu": "레시피",
|
||||||
|
"titleMenuAdd": "레시피 추가",
|
||||||
|
"titleMenuSearch": "레시피 검색",
|
||||||
|
"titleCount": "계식",
|
||||||
|
"titleCountList": "재료 창고",
|
||||||
|
"titleCustomKcal": "사용자 정의 칼로리",
|
||||||
|
"titleEveryMeal": "식사 상세",
|
||||||
|
"titleCountSearch": "재료 검색",
|
||||||
|
"titleeveryDay": "영양 분석",
|
||||||
|
"titleMe": "나의",
|
||||||
|
"titleDetail": "상세",
|
||||||
|
"titleBody": "목표",
|
||||||
|
"titleHistory": "식단 기록",
|
||||||
|
"titlePhone": "휴대폰 번호 바인딩",
|
||||||
|
"titleEmail": "이메일 바인딩",
|
||||||
|
"titlePasswordEdit": "비밀번호 변경",
|
||||||
|
"titleSet": "설정",
|
||||||
|
"titleDate": "날짜",
|
||||||
|
"titleMember": "자료",
|
||||||
|
"titleManage": "멤버 관리",
|
||||||
|
"titleManageAdd": "멤버 추가",
|
||||||
|
"titleAboutUs": "회사 소개",
|
||||||
|
"titleSetPassword": "비밀번호 설정",
|
||||||
|
"titlePassword": "비밀번호",
|
||||||
|
"titleConfirmPassword": "비밀번호 확인",
|
||||||
|
"titleForgotPassword": "비밀번호를 잊어버렸어요",
|
||||||
|
"titleCode": "인증 코드",
|
||||||
|
"titleLanguage": "언어",
|
||||||
|
"titleSendCode": "인증번호 받기",
|
||||||
|
"titleSendCodeRetry": "S 후 재발송",
|
||||||
|
"titleLogin": "로그인",
|
||||||
|
"titleRegister": "등록",
|
||||||
|
"titleToggleLogin": "로그인 전환",
|
||||||
|
"titleAccountText": "휴대폰 번호/이메일",
|
||||||
|
"titleAgreementText": "읽고 동의합니다",
|
||||||
|
"titleAgreementContntText": "개인정보 처리방침",
|
||||||
|
"titleVersionUpdate": "버전 업데이트",
|
||||||
|
"titleNewVersion": "새 버전",
|
||||||
|
"infoActivityCoefficient": "활동 계수",
|
||||||
|
"infoPersonalProfile": "개인 정보",
|
||||||
|
"infoMyRecipes": "내 레시피",
|
||||||
|
"infoMyCollection": "내 컬렉션",
|
||||||
|
"infoAvatar": "프로필 사진",
|
||||||
|
"infoNickname": "별명",
|
||||||
|
"infoMobile": "휴대폰 번호",
|
||||||
|
"infoEmail": "이메일",
|
||||||
|
"infoAge": "나이",
|
||||||
|
"infoAgeunit": "살",
|
||||||
|
"infoGender": "성별",
|
||||||
|
"infoMan": "남자",
|
||||||
|
"infoWoman": "여자",
|
||||||
|
"infoUnknown": "미지",
|
||||||
|
"infoBirthday": "생년월일",
|
||||||
|
"infoHeight": "키",
|
||||||
|
"infoWeight": "체중",
|
||||||
|
"btnEdit": "편집",
|
||||||
|
"btnAdd": "추가",
|
||||||
|
"btnDetail": "상세 내용 확인",
|
||||||
|
"btnDeleteAccount": "계정 삭제",
|
||||||
|
"btnLogOut": "로그아웃",
|
||||||
|
"countIntake": "섭취",
|
||||||
|
"countCalorieIntake": "열량 섭취",
|
||||||
|
"countMealdetails": "식사 상세",
|
||||||
|
"countAddFood": "음식 추가",
|
||||||
|
"countNutritionalProportion": "영양 비율",
|
||||||
|
"countComponentStatistics": "성분 통계",
|
||||||
|
"countCalorieAnalysis": "칼로리 분석",
|
||||||
|
"countNutrientElementEnergyProportion": "영양소 에너지 비율",
|
||||||
|
"countNutritionClassification": "영양 분류",
|
||||||
|
"countNutritionElementRankingList": "영양소 순위표",
|
||||||
|
"countFoodTypes": "음식 유형",
|
||||||
|
|
||||||
|
"total": "모두",
|
||||||
|
"records": "조목 기록",
|
||||||
|
"Search": "검색",
|
||||||
|
"VoiceSearch": "음성 검색",
|
||||||
|
"Save": "저장",
|
||||||
|
"noMoreData": "더 이상 자료가 없습니다",
|
||||||
|
"HistoricalSearch": "과거 기록 검색",
|
||||||
|
"wantSearch": "검색해 보세요",
|
||||||
|
"verifyCalorie": "칼로리를 입력하십시오",
|
||||||
|
"kcal": "칼로리",
|
||||||
|
"countNoFood": "잠시 음식물이 없다.",
|
||||||
|
"msgLoginTips": "로그인 후 더 많은 것을 볼 수 있습니다",
|
||||||
|
"Nutrients": "영양소",
|
||||||
|
"Content": "함량이",
|
||||||
|
"CaloriesAndnutrients": "열량과 영양",
|
||||||
|
"ImproveInformation": "정보를 완벽하게하다.",
|
||||||
|
"WhetherTodelete": "삭제할지 여부",
|
||||||
|
"BusinessCooperation": "상무 합작",
|
||||||
|
"verifyActivityCoefficient": "활동지수를 선택하십시오",
|
||||||
|
"devicesTips":"장비 등록이 되지 않았습니다. 판매자에게 연락하여 시스템 인증을 진행해 주세요.",
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,162 @@
|
||||||
|
{
|
||||||
|
"msgTitle": "Aviso Amigo",
|
||||||
|
"msgUpgradeFail": "Falha na atualização",
|
||||||
|
"msgDownloading": "Em download",
|
||||||
|
"msgLatestVersion": "Já é a versão mais recente!",
|
||||||
|
"msgCancel": "Você cancelou a operação!",
|
||||||
|
"msgLoginSuccess": "Login efetuado com sucesso!",
|
||||||
|
"msgDelete": "Excluir com sucesso",
|
||||||
|
"msgSetSuccess": "Configurações bem-sucedidas",
|
||||||
|
"msgBottom": "Fim da linha, veja outro",
|
||||||
|
"msgNoMoreData": "Não há mais dados!",
|
||||||
|
"msgSetPasswordSuccess": "Senha definida com sucesso,entre no programa!",
|
||||||
|
"msgAddUser": "Nenhum membro por enquanto, adicione um",
|
||||||
|
"verifyNickName": "Por favor insira um apelido",
|
||||||
|
"verifyNotOptional": "Futuras datas não podem ser selecionadas",
|
||||||
|
"verifyDate": "Por favor selecione a data da medição",
|
||||||
|
"verifyBirthday": "Por favor selecione a data de nascimento",
|
||||||
|
"verifyHeight": "Por favor, insira a altura",
|
||||||
|
"verifyWeight": "Digite seu peso",
|
||||||
|
"verifyGender": "Por favor selecione o género",
|
||||||
|
"verifyBontrast": "Por favor selecione dados",
|
||||||
|
"verifyBodyDate": "Por favor selecione o horário correto",
|
||||||
|
"verifyRecord": "Por favor, insira",
|
||||||
|
"verifyPicker": "Por favor, escolha",
|
||||||
|
"verifyAccount": "Por favor insira o número de telemóvel ou e-mail correto",
|
||||||
|
"verifyEmail": "Insira o e-mail",
|
||||||
|
"verifyEmailCorrect": "Insira um e-mail válido",
|
||||||
|
"verifyMobile": "Por favor insira o número de telemóvel",
|
||||||
|
"verifyMobileCorrect": "Por favor insira um número de telemóvel correto",
|
||||||
|
"verifyCode": "Por favor insira o código de verificação",
|
||||||
|
"verifyPassword": "Por favor, insira a senha",
|
||||||
|
"verifyPasswordTwo": "Por favor insira a confirmação da palavra-passe",
|
||||||
|
"verifyPasswordCorrect": "Por favor, confirme que as duas senhas escritas estão iguais",
|
||||||
|
"verifyAgreement": "Por favor, confirme e marque o acordo",
|
||||||
|
"verifyOutLogin": "Sair da sessão?",
|
||||||
|
"verifyDeleteUser": "Tem certeza que deseja excluir o membro?",
|
||||||
|
"verifyDeleteHistory": "Excluir a medida atual?",
|
||||||
|
"verifyDeleteAccount": "Após a exclusão, todos os dados vinculados a esta conta serão apagados e não poderá recuperá-los. Excluir?",
|
||||||
|
"btnConfirm": "confirmar",
|
||||||
|
"btnSubmit": "Enviar a sua candidatura",
|
||||||
|
"btnSancellation": "cancelar",
|
||||||
|
"btnContinue": "Continuar",
|
||||||
|
"btnBack": "Voltar",
|
||||||
|
"btnDelete": "excluir",
|
||||||
|
"ConnectionTimeout": "Tempo de conexão esgotado, clique para reconectar",
|
||||||
|
"Measuring": "Medindo, coloque o alimento na balança",
|
||||||
|
"Weight": "peso",
|
||||||
|
"RecordWeight": "Informe o peso do alimento",
|
||||||
|
"SearchBluetooth": "Pesquisa Bluetooth em",
|
||||||
|
"Remeasure": "Dados anormais, faça a medição novamente!",
|
||||||
|
"reset": "Dados anormais, por favor zerar e medir novamente!",
|
||||||
|
"Disconnect": "Desconectar",
|
||||||
|
"remeasure": "Re-Medir a",
|
||||||
|
"resetBtn": "reinicialização",
|
||||||
|
"UnitBtn": "unidade",
|
||||||
|
"SaveResult": "guardar",
|
||||||
|
"titleHome": "Página inicial",
|
||||||
|
"titleMenu": "receitas de pratos",
|
||||||
|
"titleMenuAdd": "Adicionar Receita",
|
||||||
|
"titleMenuSearch": "Pesquisa de Receitas",
|
||||||
|
"titleCount": "contagem de alimentos",
|
||||||
|
"titleCountList": "Banco de Ingredientes",
|
||||||
|
"titleCustomKcal": "Calorias Personalizadas",
|
||||||
|
"titleEveryMeal": "Detalhes do Almoço",
|
||||||
|
"titleCountSearch": "Busca de Ingredientes",
|
||||||
|
"titleeveryDay": "Análise Nutricional",
|
||||||
|
"titleMe": "meu",
|
||||||
|
"titleDetail": "Detalhes",
|
||||||
|
"titleBody": "Objetivos",
|
||||||
|
"titleHistory": "Registo de dietas e alimentação",
|
||||||
|
"titlePhone": "Vincular o número de telefone",
|
||||||
|
"titleEmail": "Vincular e-mail",
|
||||||
|
"titlePasswordEdit": "Alterar a palavra-passe",
|
||||||
|
"titleSet": "configuração",
|
||||||
|
"titleDate": "data",
|
||||||
|
"titleMember": "Documentos para o",
|
||||||
|
"titleManage": "Administração de Membros",
|
||||||
|
"titleManageAdd": "Adicionar um membro",
|
||||||
|
"titleAboutUs": "Sobre nós",
|
||||||
|
"titleSetPassword": "Definir uma senha",
|
||||||
|
"titlePassword": "Senha",
|
||||||
|
"titleConfirmPassword": "Confirme a Senha",
|
||||||
|
"titleForgotPassword": "Esqueceu a senha",
|
||||||
|
"titleCode": "código de verificação",
|
||||||
|
"titleLanguage": "línguas",
|
||||||
|
"titleSendCode": "Obter código de verificação",
|
||||||
|
"titleSendCodeRetry": "Reenvio posterior S",
|
||||||
|
"titleLogin": "Iniciar sessão",
|
||||||
|
"titleRegister": "Registre-se",
|
||||||
|
"titleToggleLogin": "Alterar o login",
|
||||||
|
"titleAccountText": "Número de celular/email",
|
||||||
|
"titleAgreementText": "Ler e aceitar",
|
||||||
|
"titleAgreementContntText": "Termo de privacidade",
|
||||||
|
"titleVersionUpdate": "Atualização de versão",
|
||||||
|
"titleNewVersion": "nova versão",
|
||||||
|
"infoActivityCoefficient": "Fator de atividade",
|
||||||
|
"infoPersonalProfile": "Perfil",
|
||||||
|
"infoMyRecipes": "As minhas receitas",
|
||||||
|
"infoMyCollection": "Minha Coleção",
|
||||||
|
"infoAvatar": "Foto de perfil",
|
||||||
|
"infoNickname": "Nome do apelido",
|
||||||
|
"infoMobile": "Nº de Telefone",
|
||||||
|
"infoEmail": "caixa de correio",
|
||||||
|
"infoAge": "idade",
|
||||||
|
"infoAgeunit": "Ano",
|
||||||
|
"infoGender": "Gênero",
|
||||||
|
"infoMan": "homem",
|
||||||
|
"infoWoman": "Mulher",
|
||||||
|
"infoUnknown": "Desconhecido",
|
||||||
|
"infoBirthday": "Data de nascimento",
|
||||||
|
"infoHeight": "altura",
|
||||||
|
"infoWeight": "Peso corporal",
|
||||||
|
"btnEdit": "Editores",
|
||||||
|
"btnDelete": "excluir",
|
||||||
|
"btnAdd": "Adicionar",
|
||||||
|
"btnDetail": "Detalhes de Visualização",
|
||||||
|
"btnDeleteAccount": "Excluir conta",
|
||||||
|
"btnLogOut": "Sair",
|
||||||
|
"countIntake": "ingestão",
|
||||||
|
"countCalorieIntake": "intake de calorias",
|
||||||
|
"countMealdetails": "Detalhes dos pratos",
|
||||||
|
"countAddFood": "Adicionar alimentos",
|
||||||
|
"countNutritionalProportion": "Contribuição percentual de nutrientes",
|
||||||
|
"countComponentStatistics": "Estatística de Ingredientes",
|
||||||
|
"countCalorieAnalysis": "Análise de calorias",
|
||||||
|
"countNutrientElementEnergyProportion": "Porcentagem de energia dos nutrientes",
|
||||||
|
"countNutritionClassification": "Classificação nutricional",
|
||||||
|
"countNutritionElementRankingList": "Ranking de nutrientes",
|
||||||
|
"countFoodTypes": "Tipos de alimentos",
|
||||||
|
|
||||||
|
"total": "total",
|
||||||
|
"records": "Um registo",
|
||||||
|
"Search": "busca",
|
||||||
|
"VoiceSearch": "Pesquisa por voz",
|
||||||
|
"Save": "conservação",
|
||||||
|
"noMoreData": "Não há mais dados",
|
||||||
|
"HistoricalSearch": "Pesquisa no histórico",
|
||||||
|
"wantSearch": "Acho que você quer pesquisar",
|
||||||
|
"verifyCalorie": "Por favor, insira calorias",
|
||||||
|
"kcal": "Caloria em calorias",
|
||||||
|
"countNoFood": "Sem comida ainda",
|
||||||
|
"msgLoginTips": "Faça login para ver mais",
|
||||||
|
"Nutrients": "nutriente",
|
||||||
|
"Content": "conteúdo",
|
||||||
|
"CaloriesAndnutrients": "Calorias e nutrição",
|
||||||
|
"ImproveInformation": "Aperfeiçoe a mensagem",
|
||||||
|
"WhetherTodelete": "Apagar sim não",
|
||||||
|
"BusinessCooperation": "Cooperação de negócios",
|
||||||
|
"verifyActivityCoefficient": "Por favor, selecione o coeficiente de atividade",
|
||||||
|
"devicesTips":"O equipamento não foi registrado. Por favor, entre em contato com o vendedor para realizar a autenticação no sistema.",
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,161 @@
|
||||||
|
{
|
||||||
|
"msgTitle": "Дружеское напоминание",
|
||||||
|
"msgUpgradeFail": "Обновление не удалось",
|
||||||
|
"msgDownloading": "Скачивается",
|
||||||
|
"msgLatestVersion": "Это уже самая новая версия!",
|
||||||
|
"msgCancel": "Вы отменили операцию!",
|
||||||
|
"msgLoginSuccess": "Вход выполнен успешно!",
|
||||||
|
"msgDelete": "Удаление успешно",
|
||||||
|
"msgSetSuccess": "Настройка успешно завершена",
|
||||||
|
"msgBottom": "Вот и конец, посмотрим что-то другое.",
|
||||||
|
"msgNoMoreData": "Больше данных нет!",
|
||||||
|
"msgSetPasswordSuccess": "Пароль успешно установлен, вход в программу!",
|
||||||
|
"msgAddUser": "Пока нет участников, сначала добавьте",
|
||||||
|
"verifyNickName": "Введите никнейм",
|
||||||
|
"verifyNotOptional": "Будущие даты нельзя выбрать",
|
||||||
|
"verifyDate": "Пожалуйста, выберите дату измерения",
|
||||||
|
"verifyBirthday": "Пожалуйста, выберите дату рождения",
|
||||||
|
"verifyHeight": "Введите рост",
|
||||||
|
"verifyWeight": "Введите вес",
|
||||||
|
"verifyGender": "Пожалуйста, выберите пол",
|
||||||
|
"verifyBontrast": "Пожалуйста, выберите данные",
|
||||||
|
"verifyBodyDate": "Пожалуйста, выберите правильное время",
|
||||||
|
"verifyRecord": "Пожалуйста, введите",
|
||||||
|
"verifyPicker": "Пожалуйста, выберите",
|
||||||
|
"verifyAccount": "Введите правильный номер телефона или электронную почту",
|
||||||
|
"verifyEmail": "Введите электронную почту",
|
||||||
|
"verifyEmailCorrect": "Введите правильный адрес электронной почты",
|
||||||
|
"verifyMobile": "Введите номер телефона",
|
||||||
|
"verifyMobileCorrect": "Введите правильный номер телефона",
|
||||||
|
"verifyCode": "Введите код подтверждения",
|
||||||
|
"verifyPassword": "Введите пароль",
|
||||||
|
"verifyPasswordTwo": "Пожалуйста, введите подтверждение пароля",
|
||||||
|
"verifyPasswordCorrect": "Пожалуйста, убедитесь, что пароли введены одинаково.",
|
||||||
|
"verifyAgreement": "Пожалуйста, сначала подтвердите и отметьте соглашение.",
|
||||||
|
"verifyOutLogin": "Выйти из учетной записи?",
|
||||||
|
"verifyDeleteUser": "Удалить этого участника?",
|
||||||
|
"verifyDeleteHistory": "Удалить текущую запись измерений?",
|
||||||
|
"verifyDeleteAccount": "После успешного удаления все связанная информация с этого аккаунта будет очищена и не будет восстановлена. Удалить?",
|
||||||
|
"btnConfirm": "подтверждение",
|
||||||
|
"btnSubmit": "отправить",
|
||||||
|
"btnSancellation": "отменить",
|
||||||
|
"btnContinue": "продолжать",
|
||||||
|
"btnBack": "возвращаться",
|
||||||
|
"btnDelete": "удалить",
|
||||||
|
"ConnectionTimeout": "Тайм-аут подключения, нажмите для повторного подключения",
|
||||||
|
"Measuring": "При измерении, пожалуйста, положите еду на весы.",
|
||||||
|
"Weight": "вес",
|
||||||
|
"RecordWeight": "Введите вес еды",
|
||||||
|
"SearchBluetooth": "Поиск Bluetooth",
|
||||||
|
"Remeasure": "Аномальные данные, проведите повторное измерение!",
|
||||||
|
"reset": "Аномальные данные, очистите и проведите повторное измерение!",
|
||||||
|
"Disconnect": "Отключение",
|
||||||
|
"remeasure": "Пересчитать",
|
||||||
|
"resetBtn": "обнуление",
|
||||||
|
"UnitBtn": "единица",
|
||||||
|
"SaveResult": "сохранить",
|
||||||
|
"titleHome": "Главная страница",
|
||||||
|
"titleMenu": "рецепт",
|
||||||
|
"titleMenuAdd": "Добавить рецепт",
|
||||||
|
"titleMenuSearch": "Поиск рецептов",
|
||||||
|
"titleCount": "Планирование питания",
|
||||||
|
"titleCountList": "Склад продуктов",
|
||||||
|
"titleCustomKcal": "Пользовательские калории",
|
||||||
|
"titleEveryMeal": "Детали питания",
|
||||||
|
"titleCountSearch": "Поиск ингредиентов",
|
||||||
|
"titleeveryDay": "анализ питательных веществ",
|
||||||
|
"titleMe": "Мой",
|
||||||
|
"titleDetail": "подробности",
|
||||||
|
"titleBody": "цель",
|
||||||
|
"titleHistory": "Пищевой дневник",
|
||||||
|
"titlePhone": "Привязка номера телефона",
|
||||||
|
"titleEmail": "Привязать электронную почту",
|
||||||
|
"titlePasswordEdit": "изменить пароль",
|
||||||
|
"titleSet": "настройка",
|
||||||
|
"titleDate": "дата",
|
||||||
|
"titleMember": "материалы",
|
||||||
|
"titleManage": "Управление участниками",
|
||||||
|
"titleManageAdd": "Добавить участника",
|
||||||
|
"titleAboutUs": "О нас",
|
||||||
|
"titleSetPassword": "Установить пароль",
|
||||||
|
"titlePassword": "пароль",
|
||||||
|
"titleConfirmPassword": "Подтверждение пароля",
|
||||||
|
"titleForgotPassword": "Забыли пароль",
|
||||||
|
"titleCode": "капча",
|
||||||
|
"titleLanguage": "язык",
|
||||||
|
"titleSendCode": "Получить код подтверждения",
|
||||||
|
"titleSendCodeRetry": "S повторная отправка",
|
||||||
|
"titleLogin": "Войти",
|
||||||
|
"titleRegister": "регистрация",
|
||||||
|
"titleToggleLogin": "Переключение входа",
|
||||||
|
"titleAccountText": "Мобильный номер/электронная почта",
|
||||||
|
"titleAgreementText": "Прочитать и согласиться",
|
||||||
|
"titleAgreementContntText": "Политика конфиденциальности",
|
||||||
|
"titleVersionUpdate": "Обновление версии",
|
||||||
|
"titleNewVersion": "Новая версия",
|
||||||
|
"infoActivityCoefficient": "коэффициент активности",
|
||||||
|
"infoPersonalProfile": "Личные данные",
|
||||||
|
"infoMyRecipes": "Мои рецепты",
|
||||||
|
"infoMyCollection": "Моя коллекция",
|
||||||
|
"infoAvatar": "аватар",
|
||||||
|
"infoNickname": "никнейм",
|
||||||
|
"infoMobile": "номер телефона",
|
||||||
|
"infoEmail": "почта",
|
||||||
|
"infoAge": "возраст",
|
||||||
|
"infoAgeunit": "год",
|
||||||
|
"infoGender": "пол",
|
||||||
|
"infoMan": "мужчина",
|
||||||
|
"infoWoman": "женщина",
|
||||||
|
"infoUnknown": "неизвестный",
|
||||||
|
"infoBirthday": "Дата рождения",
|
||||||
|
"infoHeight": "рост",
|
||||||
|
"infoWeight": "вес",
|
||||||
|
"btnEdit": "редактировать",
|
||||||
|
"btnAdd": "добавить",
|
||||||
|
"btnDetail": "Подробнее",
|
||||||
|
"btnDeleteAccount": "Удалить аккаунт",
|
||||||
|
"btnLogOut": "Выйти из системы",
|
||||||
|
"countIntake": "Потребление",
|
||||||
|
"countCalorieIntake": "Потребление калорий",
|
||||||
|
"countMealdetails": "Детали питания",
|
||||||
|
"countAddFood": "Добавить еду",
|
||||||
|
"countNutritionalProportion": "доля питательных веществ",
|
||||||
|
"countComponentStatistics": "статистика компонентов",
|
||||||
|
"countCalorieAnalysis": "Анализ калорий",
|
||||||
|
"countNutrientElementEnergyProportion": "Доля энергии питательных веществ",
|
||||||
|
"countNutritionClassification": "Классификация питательных веществ",
|
||||||
|
"countNutritionElementRankingList": "Рейтинг питательных элементов",
|
||||||
|
"countFoodTypes": "Типы пищи",
|
||||||
|
|
||||||
|
"total": "на",
|
||||||
|
"records": "Запись.",
|
||||||
|
"Search": "поиск",
|
||||||
|
"VoiceSearch": "Поиск голоса",
|
||||||
|
"Save": "сохран",
|
||||||
|
"noMoreData": "Больше данных нет",
|
||||||
|
"HistoricalSearch": "Поиск истории",
|
||||||
|
"wantSearch": "Полагаю, вы хотите обыскать",
|
||||||
|
"verifyCalorie": "Введите калории.",
|
||||||
|
"kcal": "Калории.",
|
||||||
|
"countNoFood": "Пока нет еды.",
|
||||||
|
"msgLoginTips": "Проверьте больше после входа",
|
||||||
|
"Nutrients": "Питательные вещества.",
|
||||||
|
"Content": "содержан",
|
||||||
|
"CaloriesAndnutrients": "Тепло и питание",
|
||||||
|
"ImproveInformation": "Усовершенствовать информацию",
|
||||||
|
"WhetherTodelete": "Удалить",
|
||||||
|
"BusinessCooperation": "Деловое сотрудничество.",
|
||||||
|
"verifyActivityCoefficient": "Пожалуйста, выберите коэффициент активности",
|
||||||
|
"devicesTips":"Устройство не зарегистрировано, пожалуйста, свяжитесь с продавцом для системной аутентификации",
|
||||||
|
"kg": "kg",
|
||||||
|
"g": "g",
|
||||||
|
"oz": "oz",
|
||||||
|
"ml": "ml",
|
||||||
|
"lb": "lb",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"index.title": "Hello i18n",
|
||||||
|
"index.home": "主頁",
|
||||||
|
"index.component": "組件",
|
||||||
|
"index.api": "API",
|
||||||
|
"index.schema": "Schema",
|
||||||
|
"index.demo": "uni-app 國際化演示",
|
||||||
|
"index.demo-description": "包含 uni-framework、manifest.json、pages.json、tabbar、頁面、組件、API、Schema",
|
||||||
|
"index.detail": "詳情",
|
||||||
|
"index.language": "語言",
|
||||||
|
"index.language-info": "語言信息",
|
||||||
|
"index.system-language": "系統語言",
|
||||||
|
"index.application-language": "應用語言",
|
||||||
|
"index.language-change-confirm": "應用此設置將重啟App"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,164 @@
|
||||||
|
{
|
||||||
|
"msgTitle": "友情提示",
|
||||||
|
"msgUpgradeFail": "升级失败",
|
||||||
|
"msgDownloading": "正在下载",
|
||||||
|
"msgLatestVersion": "已经是最新版本了!",
|
||||||
|
"msgCancel": "您已取消操作!",
|
||||||
|
"msgLoginSuccess": "登录成功!",
|
||||||
|
"msgDelete": "删除成功",
|
||||||
|
"msgSetSuccess": "设置成功",
|
||||||
|
"msgBottom": "到底了,看看别的吧",
|
||||||
|
"msgNoMoreData": "暂无数据!",
|
||||||
|
"msgSetPasswordSuccess": "密码设置成功,进入程序中!",
|
||||||
|
"msgAddUser": "暂无成员,请先添加",
|
||||||
|
"verifyNickName": "请输入昵称",
|
||||||
|
"verifyNotOptional": "未来日期不可选",
|
||||||
|
"verifyDate": "请选择测量日期",
|
||||||
|
"verifyBirthday": "请选择出生日期",
|
||||||
|
"verifyHeight": "请输入身高",
|
||||||
|
"verifyWeight": "请输入体重",
|
||||||
|
"verifyGender": "请选择性别",
|
||||||
|
"verifyBontrast": "请选择数据",
|
||||||
|
"verifyBodyDate": "请选择正确的时间",
|
||||||
|
"verifyRecord": "请输入",
|
||||||
|
"verifyPicker": "请选择",
|
||||||
|
"verifyAccount": "请输入正确的手机号或邮箱",
|
||||||
|
"verifyEmail": "请输入邮箱",
|
||||||
|
"verifyEmailCorrect": "请输入正确的邮箱",
|
||||||
|
"verifyMobile": "请输入手机号",
|
||||||
|
"verifyMobileCorrect": "请输入正确的手机号",
|
||||||
|
"verifyCode": "请输入验证码",
|
||||||
|
"verifyPassword": "请输入密码",
|
||||||
|
"verifyPasswordTwo": "请输入确认密码",
|
||||||
|
"verifyPasswordCorrect": "请确认两次密码填写一致",
|
||||||
|
"verifyAgreement": "请先确认并勾选协议",
|
||||||
|
"verifyOutLogin": "是否退出登录?",
|
||||||
|
"verifyDeleteUser": "是否删除该成员?",
|
||||||
|
"verifyDeleteHistory": "是否删除当前测量记录?",
|
||||||
|
"verifyDeleteAccount": "删除成功后,该账号的所有关联信息将被清空且无法找回,是否删除?",
|
||||||
|
"btnConfirm": "确认",
|
||||||
|
"btnSubmit": "提交",
|
||||||
|
"btnSancellation": "取消",
|
||||||
|
"btnContinue": "继续",
|
||||||
|
"btnBack": "返回",
|
||||||
|
"btnDelete": "删除",
|
||||||
|
"ConnectionTimeout": "连接超时,点击重新连接",
|
||||||
|
"Measuring": "测量中,请将食物放到秤上",
|
||||||
|
"Weight": "重量",
|
||||||
|
"RecordWeight": "请输入食物重量",
|
||||||
|
"SearchBluetooth": "蓝牙搜索中",
|
||||||
|
"Remeasure": "数据异常,请重新测量!",
|
||||||
|
"reset": "数据异常,请清零后重新测量!",
|
||||||
|
"Disconnect": "断开连接",
|
||||||
|
"remeasure": "重新测量",
|
||||||
|
"resetBtn": "清零",
|
||||||
|
"UnitBtn": "单位",
|
||||||
|
"titleHome": "首页",
|
||||||
|
"titleMenu": "菜谱",
|
||||||
|
"titleMenuAdd": "添加食谱",
|
||||||
|
"titleMenuSearch": "搜索菜谱",
|
||||||
|
"titleCount": "计食",
|
||||||
|
"titleCountList": "食材库",
|
||||||
|
"titleCustomKcal": "自定义卡路里",
|
||||||
|
"titleEveryMeal": "餐食详情",
|
||||||
|
"titleCountSearch": "食材搜索",
|
||||||
|
"titleeveryDay": "营养分析",
|
||||||
|
"titleMe": "我的",
|
||||||
|
"titleDetail": "详情",
|
||||||
|
"titleBody": "目标",
|
||||||
|
"titleHistory": "饮食记录",
|
||||||
|
"titlePhone": "绑定手机号",
|
||||||
|
"titleEmail": "绑定邮箱",
|
||||||
|
"titlePasswordEdit": "修改密码",
|
||||||
|
"titleSet": "设置",
|
||||||
|
"titleDate": "日期",
|
||||||
|
"titleMember": "资料",
|
||||||
|
"titleManage": "成员管理",
|
||||||
|
"titleManageAdd": "添加成员",
|
||||||
|
"titleAboutUs": "关于我们",
|
||||||
|
"titleSetPassword": "设置密码",
|
||||||
|
"titlePassword": "密码",
|
||||||
|
"titleConfirmPassword": "确认密码",
|
||||||
|
"titleForgotPassword": "忘记密码",
|
||||||
|
"titleCode": "验证码",
|
||||||
|
"titleLanguage": "语言设置",
|
||||||
|
"titleSendCode": "获取验证码",
|
||||||
|
"titleSendCodeRetry": "S后重发",
|
||||||
|
"titleLogin": "登录",
|
||||||
|
"titleRegister": "注册",
|
||||||
|
"titleToggleLogin": "切换登录",
|
||||||
|
"titleAccountText": "手机号/邮箱",
|
||||||
|
"titleAgreementText": "阅读并同意",
|
||||||
|
"titleAgreementContntText": "隐私协议",
|
||||||
|
"titleVersionUpdate": "版本更新",
|
||||||
|
"titleNewVersion": "新版本",
|
||||||
|
"infoActivityCoefficient": "活动系数",
|
||||||
|
"infoPersonalProfile": "个人资料",
|
||||||
|
"infoMyRecipes": "我的菜谱",
|
||||||
|
"infoMyCollection": "我的收藏",
|
||||||
|
"infoAvatar": "头像",
|
||||||
|
"infoNickname": "昵称",
|
||||||
|
"infoMobile": "手机号",
|
||||||
|
"infoEmail": "邮箱",
|
||||||
|
"infoAge": "年龄",
|
||||||
|
"infoAgeunit": "岁",
|
||||||
|
"infoGender": "性别",
|
||||||
|
"infoMan": "男",
|
||||||
|
"infoWoman": "女",
|
||||||
|
"infoUnknown": "未知",
|
||||||
|
"infoBirthday": "出生日期",
|
||||||
|
"infoHeight": "身高",
|
||||||
|
"infoWeight": "体重",
|
||||||
|
"btnEdit": "编辑",
|
||||||
|
"btnAdd": "添加",
|
||||||
|
"btnDetail": "查看详情",
|
||||||
|
"btnDeleteAccount": "删除账号",
|
||||||
|
"btnLogOut": "退出登录",
|
||||||
|
"countIntake": "摄入",
|
||||||
|
"countCalorieIntake": "热量摄入",
|
||||||
|
"countMealdetails": "餐食详情",
|
||||||
|
"countAddFood": "添加食物",
|
||||||
|
"countNutritionalProportion": "营养占比",
|
||||||
|
"countComponentStatistics": "成分统计",
|
||||||
|
"countCalorieAnalysis": "卡路里分析",
|
||||||
|
"countNutrientElementEnergyProportion": "营养元素能量占比",
|
||||||
|
"countNutritionClassification": "营养分类",
|
||||||
|
"countNutritionElementRankingList": "营养元素排行榜",
|
||||||
|
"countFoodTypes": "食物类型",
|
||||||
|
"total": "共",
|
||||||
|
"records": "条记录",
|
||||||
|
"Search": "搜索",
|
||||||
|
"VoiceSearch": "语音搜索",
|
||||||
|
"Save": "保存",
|
||||||
|
"noMoreData": "没有更多数据了",
|
||||||
|
"HistoricalSearch": "历史搜索",
|
||||||
|
"wantSearch": "猜你想搜",
|
||||||
|
"verifyCalorie": "请输入卡路里",
|
||||||
|
"kcal": "卡路里",
|
||||||
|
"countNoFood": "暂无食物",
|
||||||
|
"msgLoginTips": "登录后查看更多",
|
||||||
|
"Nutrients": "营养素",
|
||||||
|
"Content": "含量",
|
||||||
|
"CaloriesAndnutrients": "热量和营养",
|
||||||
|
"ImproveInformation": "完善信息",
|
||||||
|
"WhetherTodelete": "是否删除",
|
||||||
|
"BusinessCooperation": "商务合作",
|
||||||
|
"verifyActivityCoefficient": "请选择活动系数",
|
||||||
|
"devicesTips": "设备未登记,请联系出售方进行系统认证",
|
||||||
|
"kg": "千克",
|
||||||
|
"g": "克",
|
||||||
|
"oz": "盎司",
|
||||||
|
"ml": "毫升",
|
||||||
|
"lb": "磅",
|
||||||
|
"milkml": "milkml",
|
||||||
|
"Waterml": "Waterml",
|
||||||
|
"floz": "floz",
|
||||||
|
"lboz": "lboz",
|
||||||
|
"st": "st:lb",
|
||||||
|
|
||||||
|
|
||||||
|
"measuringRecord": "测量记录",
|
||||||
|
"newVersion": "发现新版本",
|
||||||
|
"IsUpdate": "是否更新?",
|
||||||
|
"UpdateProgram":"稍后可在'关于我们'内更新程序!"
|
||||||
|
}
|
||||||
18
main.js
18
main.js
|
|
@ -18,15 +18,28 @@ Vue.prototype.$ble = useBluetooth;
|
||||||
import video from '@/video.json'
|
import video from '@/video.json'
|
||||||
Vue.prototype.$video = video;
|
Vue.prototype.$video = video;
|
||||||
|
|
||||||
|
|
||||||
|
// 语言
|
||||||
|
import messages from '@/language/index.js'
|
||||||
|
|
||||||
|
let i18nConfig = {
|
||||||
|
locale: uni.getLocale(),
|
||||||
|
messages
|
||||||
|
}
|
||||||
|
|
||||||
//模拟数据
|
//模拟数据
|
||||||
import json from '@/content.json'
|
import json from '@/content.json'
|
||||||
Vue.prototype.$json = json;
|
Vue.prototype.$json = json;
|
||||||
|
|
||||||
// #ifndef VUE3
|
// #ifndef VUE3
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
import VueI18n from 'vue-i18n'
|
||||||
|
Vue.use(VueI18n)
|
||||||
|
const i18n = new VueI18n(i18nConfig)
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
App.mpType = 'app'
|
App.mpType = 'app'
|
||||||
const app = new Vue({
|
const app = new Vue({
|
||||||
|
i18n,
|
||||||
...App
|
...App
|
||||||
})
|
})
|
||||||
app.$mount()
|
app.$mount()
|
||||||
|
|
@ -36,8 +49,13 @@ app.$mount()
|
||||||
import {
|
import {
|
||||||
createSSRApp
|
createSSRApp
|
||||||
} from 'vue'
|
} from 'vue'
|
||||||
|
import {
|
||||||
|
createI18n
|
||||||
|
} from 'vue-i18n'
|
||||||
|
const i18n = createI18n(i18nConfig)
|
||||||
export function createApp() {
|
export function createApp() {
|
||||||
const app = createSSRApp(App)
|
const app = createSSRApp(App)
|
||||||
|
app.use(i18n)
|
||||||
return {
|
return {
|
||||||
app
|
app
|
||||||
}
|
}
|
||||||
|
|
|
||||||
104
pages/my/me.vue
104
pages/my/me.vue
|
|
@ -9,14 +9,14 @@
|
||||||
<text class="t-icon t-icon-arrow-right-bold"></text>
|
<text class="t-icon t-icon-arrow-right-bold"></text>
|
||||||
</view>
|
</view>
|
||||||
<view class="top top2" v-else @click="handleLogin">
|
<view class="top top2" v-else @click="handleLogin">
|
||||||
登录后查看更多
|
{{$t('msgLoginTips')}}
|
||||||
</view>
|
</view>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<view class="wxlist borderRadius">
|
<view class="wxlist borderRadius">
|
||||||
<view class="list" @click="navTo('/body/my/manage')">
|
<view class="list" @click="navTo('/body/my/manage')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<view class="name">成员管理</view>
|
<view class="name">{{$t('titleManage')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<uni-icons type="right"></uni-icons>
|
<uni-icons type="right"></uni-icons>
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
<view class="list" @click="navTo('/body/history/history')">
|
<view class="list" @click="navTo('/body/history/history')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<view class="name">测量记录</view>
|
<view class="name">{{$t('measuringRecord')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<uni-icons type="right"></uni-icons>
|
<uni-icons type="right"></uni-icons>
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
<view class="list" @click="navTo('/Food/me/mymenu?pageName=我的收藏')">
|
<view class="list" @click="navTo('/Food/me/mymenu?pageName=我的收藏')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<view class="name">我的收藏</view>
|
<view class="name">{{$t('infoMyCollection')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<uni-icons type="right"></uni-icons>
|
<uni-icons type="right"></uni-icons>
|
||||||
|
|
@ -47,25 +47,39 @@
|
||||||
<view class="list" @click="navTo('/Food/me/record')">
|
<view class="list" @click="navTo('/Food/me/record')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<view class="name">饮食记录</view>
|
<view class="name">{{$t('titleHistory')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<uni-icons type="right"></uni-icons>
|
<uni-icons type="right"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- #ifdef APP-PLUS -->
|
|
||||||
<view class="list" @click="navTo('/body/my/about')">
|
<view class="list" @click="navTo('/body/my/about')">
|
||||||
<view class="item border-bottom">
|
<view class="item border-bottom">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<view class="name">关于我们</view>
|
<view class="name">{{$t('titleAboutUs')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<uni-icons type="right"></uni-icons>
|
<uni-icons type="right"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- #endif -->
|
<view class="list">
|
||||||
|
<view class="item border-bottom">
|
||||||
|
<view class="left">
|
||||||
|
<view class="name">{{$t('titleLanguage')}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="right">
|
||||||
|
<picker mode="selector" @change="changeClickLanguage" :range="languageList" range-key="name"
|
||||||
|
:value="levelInd">
|
||||||
|
<view>
|
||||||
|
{{languageList[levelInd].name}}
|
||||||
|
<uni-icons type="right"></uni-icons>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
<view class="list" v-for="(ite,ind) in CooperationUrl" :key="ind">
|
<view class="list" v-for="(ite,ind) in CooperationUrl" :key="ind">
|
||||||
<view class="item border-bottom" @click="navTo('/body/webview/webview?url=' + ite.url)">
|
<view class="item border-bottom" @click="navTo('/body/webview/webview?url=' + ite.url)">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
|
|
@ -77,7 +91,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btn mb-15" v-if="token" @click="handleOutLogin">退出登录</view>
|
<view class="btn mb-15" v-if="token" @click="handleOutLogin">{{$t('btnLogOut')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -89,16 +103,29 @@
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
token: "",
|
token: "",
|
||||||
user: {}
|
user: {},
|
||||||
|
levelInd: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["accountNumber", "familayList", "CooperationUrl", ]),
|
...mapState(["accountNumber", "familayList", "CooperationUrl", "setLocale", "configInfo"]),
|
||||||
nickname() {
|
nickname() {
|
||||||
return this.accountNumber.nickname
|
return this.accountNumber.nickname
|
||||||
},
|
},
|
||||||
userList() {
|
userList() {
|
||||||
return this.familayList
|
return this.familayList
|
||||||
|
},
|
||||||
|
languageList() {
|
||||||
|
let that = this
|
||||||
|
let languageList = this.configInfo.language_arr
|
||||||
|
that.levelInd = languageList.findIndex(ite => ite.key == that.setLocale)
|
||||||
|
return this.configInfo.language_arr
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
nickname() {
|
||||||
|
this.user = {}
|
||||||
|
this.user = this.accountNumber
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
@ -106,11 +133,9 @@
|
||||||
that.token = uni.getStorageSync('token')
|
that.token = uni.getStorageSync('token')
|
||||||
that.handleAccountNumber()
|
that.handleAccountNumber()
|
||||||
},
|
},
|
||||||
watch: {
|
onShow() {
|
||||||
nickname() {
|
let that = this
|
||||||
this.user = {}
|
that.token = uni.getStorageSync('token')
|
||||||
this.user = this.accountNumber
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onPullDownRefresh() {
|
onPullDownRefresh() {
|
||||||
let that = this
|
let that = this
|
||||||
|
|
@ -136,8 +161,10 @@
|
||||||
handleOutLogin() {
|
handleOutLogin() {
|
||||||
let that = this
|
let that = this
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '友情提示',
|
title: that.$t('msgTitle'),
|
||||||
content: '是否退出登录?',
|
content: that.$t('verifyOutLogin'),
|
||||||
|
cancelText: that.$t('btnSancellation'),
|
||||||
|
confirmText: that.$t('btnConfirm'),
|
||||||
success: function(res) {
|
success: function(res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
that.$model.getloginOut({}).then((res) => {
|
that.$model.getloginOut({}).then((res) => {
|
||||||
|
|
@ -152,11 +179,48 @@
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else if (res.cancel) {
|
} else if (res.cancel) {
|
||||||
that.$tools.msg("您已取消操作!");
|
that.$tools.msg($t('msgCancel'));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 语言切换
|
||||||
|
changeClickLanguage(e) {
|
||||||
|
let that = this
|
||||||
|
let key = that.languageList[e.target.value].key
|
||||||
|
let val = that.languageList[e.target.value].val
|
||||||
|
that.levelInd = e.target.value
|
||||||
|
that.$model.getSetLanguage({
|
||||||
|
language: val,
|
||||||
|
}).then(res => {
|
||||||
|
that.$i18n.locale = key
|
||||||
|
uni.setStorageSync('language', key)
|
||||||
|
that.$store.commit('changeLocale', key)
|
||||||
|
that.$store.dispatch("getHomeConfig")
|
||||||
|
that.$tools.handleUserList()
|
||||||
|
that.handleTabBarItem()
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/pages/index/index'
|
||||||
|
})
|
||||||
|
}, 500)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleTabBarItem() {
|
||||||
|
let that = this
|
||||||
|
uni.setTabBarItem({
|
||||||
|
index: 0,
|
||||||
|
text: that.$t('titleHome')
|
||||||
|
})
|
||||||
|
uni.setTabBarItem({
|
||||||
|
index: 1,
|
||||||
|
text: that.$t('titleCount')
|
||||||
|
})
|
||||||
|
uni.setTabBarItem({
|
||||||
|
index: 2,
|
||||||
|
text: that.$t('titleMe')
|
||||||
|
})
|
||||||
|
},
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/body/login/login"
|
url: "/body/login/login"
|
||||||
|
|
@ -166,7 +230,7 @@
|
||||||
navTo(url) {
|
navTo(url) {
|
||||||
let that = this
|
let that = this
|
||||||
if (!that.token) {
|
if (!that.token) {
|
||||||
that.$tools.msg("登录后查看更多!")
|
that.$tools.msg(that.$t('msgLoginTips'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
## reedaw 国内版
|
## reedaw 国内版
|
||||||
小程序+app 纯中文锐动+厨房秤结合版
|
锐动+厨房秤结合版 多语言 纯APP
|
||||||
|
|
@ -8,6 +8,47 @@ export default {
|
||||||
dispatch
|
dispatch
|
||||||
}) {
|
}) {
|
||||||
return model.getHomeConfig({}).then(res => {
|
return model.getHomeConfig({}).then(res => {
|
||||||
|
res.data.language_arr = [{
|
||||||
|
"name": "中文",
|
||||||
|
"val": "zh",
|
||||||
|
"key": "zh"
|
||||||
|
}, {
|
||||||
|
"name": "English",
|
||||||
|
"val": "en",
|
||||||
|
"key": "en"
|
||||||
|
}, {
|
||||||
|
"name": "日本語(Japanese)",
|
||||||
|
"val": "jp",
|
||||||
|
"key": "ja"
|
||||||
|
}, {
|
||||||
|
"name": "Français(French)",
|
||||||
|
"val": "fra",
|
||||||
|
"key": "fr"
|
||||||
|
}, {
|
||||||
|
"name": "Deutsch(German)",
|
||||||
|
"val": "de",
|
||||||
|
"key": "de"
|
||||||
|
}, {
|
||||||
|
"name": "한국어(Korean)",
|
||||||
|
"val": "kor",
|
||||||
|
"key": "ko"
|
||||||
|
}, {
|
||||||
|
"name": "Русский(Russian)",
|
||||||
|
"val": "ru",
|
||||||
|
"key": "ru"
|
||||||
|
}, {
|
||||||
|
"name": "Português(Portuguese)",
|
||||||
|
"val": "pt",
|
||||||
|
"key": "pt"
|
||||||
|
}, {
|
||||||
|
"name": "Español(Spanish)",
|
||||||
|
"val": "spa",
|
||||||
|
"key": "es"
|
||||||
|
}, {
|
||||||
|
"name": "Arabic(العربية)",
|
||||||
|
"val": "ara",
|
||||||
|
"key": "ar"
|
||||||
|
}]
|
||||||
commit('changeConfigInfo', res.data)
|
commit('changeConfigInfo', res.data)
|
||||||
return res.data
|
return res.data
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ export default new Vuex.Store({
|
||||||
area_list: [],
|
area_list: [],
|
||||||
banner: [],
|
banner: [],
|
||||||
meal_list: [],
|
meal_list: [],
|
||||||
|
language_arr: [],
|
||||||
literature: {
|
literature: {
|
||||||
index: [],
|
index: [],
|
||||||
bmi_evaluation: [],
|
bmi_evaluation: [],
|
||||||
|
|
@ -122,6 +123,7 @@ export default new Vuex.Store({
|
||||||
isPublicRecord: false, //公共手动记录弹框
|
isPublicRecord: false, //公共手动记录弹框
|
||||||
isBluetoothTyle: false,
|
isBluetoothTyle: false,
|
||||||
isConnected: false,
|
isConnected: false,
|
||||||
|
setLocale: "zh",
|
||||||
trendInfo: {
|
trendInfo: {
|
||||||
weightList: [],
|
weightList: [],
|
||||||
target_weight: "",
|
target_weight: "",
|
||||||
|
|
@ -227,6 +229,11 @@ export default new Vuex.Store({
|
||||||
state.isPublicRecord = newData
|
state.isPublicRecord = newData
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 设置语言
|
||||||
|
changeLocale(state, newData) {
|
||||||
|
state.setLocale = newData
|
||||||
|
},
|
||||||
|
|
||||||
// 计时
|
// 计时
|
||||||
changeConfigInfo(state, newData) {
|
changeConfigInfo(state, newData) {
|
||||||
state.configInfo = newData
|
state.configInfo = newData
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import $store from '@/store'
|
import $store from '@/store'
|
||||||
import $tools from '@/toolJs/tools.js'
|
import $tools from '@/toolJs/tools.js'
|
||||||
import $model from '@/toolJs/model.js'
|
import $model from '@/toolJs/model.js'
|
||||||
|
import messages from '@/language/index.js'
|
||||||
export default {
|
export default {
|
||||||
msg,
|
msg,
|
||||||
toHex,
|
toHex,
|
||||||
|
|
@ -79,10 +80,13 @@ function msg(str) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function showModal(text) {
|
function showModal(text) {
|
||||||
|
let Language = $store.state.setLocale
|
||||||
|
let $t = messages[Language]
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: "提示",
|
title: $t('msgTitle'),
|
||||||
content: text,
|
content: text,
|
||||||
showCancel: false,
|
showCancel: false,
|
||||||
|
confirmText: $t('btnConfirm'),
|
||||||
success: function(res) {
|
success: function(res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
uni.switchTab({ //返回
|
uni.switchTab({ //返回
|
||||||
|
|
@ -95,6 +99,8 @@ function showModal(text) {
|
||||||
// 版本对比
|
// 版本对比
|
||||||
function compareVersions(version1, version2) {
|
function compareVersions(version1, version2) {
|
||||||
console.log("版本对比", version1, version2)
|
console.log("版本对比", version1, version2)
|
||||||
|
let Language = $store.state.setLocale
|
||||||
|
let $t = messages[Language]
|
||||||
// 将版本号拆分成数字数组
|
// 将版本号拆分成数字数组
|
||||||
var arr1 = version1.split('.').map(Number);
|
var arr1 = version1.split('.').map(Number);
|
||||||
var arr2 = version2.split('.').map(Number);
|
var arr2 = version2.split('.').map(Number);
|
||||||
|
|
@ -108,8 +114,8 @@ function compareVersions(version1, version2) {
|
||||||
if (num1 < num2) {
|
if (num1 < num2) {
|
||||||
// 版本1小于版本2
|
// 版本1小于版本2
|
||||||
return uni.showModal({
|
return uni.showModal({
|
||||||
title: '发现新版本',
|
title: that.$t('newVersion'),
|
||||||
content: '检查到新版本' + version2 + ',是否更新?',
|
content: that.$t('newVersion') + version2 + that.$t('IsUpdate'),
|
||||||
success: (modalRes) => {
|
success: (modalRes) => {
|
||||||
if (modalRes.confirm) { //确定更新
|
if (modalRes.confirm) { //确定更新
|
||||||
if (platform === 'android') { //安卓更新
|
if (platform === 'android') { //安卓更新
|
||||||
|
|
@ -122,7 +128,7 @@ function compareVersions(version1, version2) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
that.$tools.msg("稍后可在'关于我们'内更新程序!")
|
that.$tools.msg(that.$t('UpdateProgram'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue