Compare commits
5 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
485e2f72c5 | |
|
|
4ba6974cbf | |
|
|
5b62d3ab22 | |
|
|
433bb6c897 | |
|
|
73334b4ee1 |
|
|
@ -1,2 +1 @@
|
||||||
node_modules/
|
node_modules
|
||||||
unpackage/
|
|
||||||
|
|
|
||||||
50
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,33 +110,21 @@
|
||||||
// console.error('Error fetching data:', error);
|
// console.error('Error fetching data:', error);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 微信小程序更新
|
// handleTabBarItem() {
|
||||||
updataWeiXin() {
|
// let that = this
|
||||||
let that = this
|
// uni.setTabBarItem({
|
||||||
const updateManager = uni.getUpdateManager()
|
// index: 0,
|
||||||
// 请求完新版本信息的回调
|
// text: that.$t('titleHome')
|
||||||
updateManager.onCheckForUpdate(function(res) {
|
// })
|
||||||
// console.log("是否有新版本", res.hasUpdate)
|
// uni.setTabBarItem({
|
||||||
})
|
// index: 1,
|
||||||
updateManager.onUpdateReady(function() {
|
// text: that.$t('titleCount')
|
||||||
uni.showModal({
|
// })
|
||||||
title: '更新提示',
|
// uni.setTabBarItem({
|
||||||
content: '新版本已经准备好,是否重启应用?',
|
// index: 2,
|
||||||
success: function(res) {
|
// text: that.$t('titleMe')
|
||||||
if (res.confirm) {
|
// })
|
||||||
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
// }
|
||||||
updateManager.applyUpdate()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
updateManager.onUpdateFailed(function() {
|
|
||||||
uni.showModal({
|
|
||||||
title: '新版本更新失败',
|
|
||||||
content: '请退出并移除小程序,重新打开...',
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -45,13 +45,11 @@
|
||||||
ranklist: [],
|
ranklist: [],
|
||||||
page: 1,
|
page: 1,
|
||||||
lastPage: '',
|
lastPage: '',
|
||||||
|
isActive: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad(options) {
|
||||||
let that = this
|
let that = this
|
||||||
that.page = 1
|
|
||||||
that.lastPage = ""
|
|
||||||
that.ranklist = []
|
|
||||||
that.getList()
|
that.getList()
|
||||||
},
|
},
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
|
|
@ -65,7 +63,7 @@
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.page++
|
this.page++
|
||||||
this.getList()
|
this.getList(this.page)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
swipeClick(e, index) {
|
swipeClick(e, index) {
|
||||||
|
|
@ -104,7 +102,7 @@
|
||||||
url: "/body/history/historyDetail?id=" + item.id
|
url: "/body/history/historyDetail?id=" + item.id
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getList() {
|
getList(page) {
|
||||||
let that = this
|
let that = this
|
||||||
that.$model.gethistory({
|
that.$model.gethistory({
|
||||||
aud_id: that.user.aud_id,
|
aud_id: that.user.aud_id,
|
||||||
|
|
@ -125,6 +123,10 @@
|
||||||
this.lastPage = res.data.totalpage
|
this.lastPage = res.data.totalpage
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
handleEdit(id) {
|
||||||
|
let that = this
|
||||||
|
that.isActive = that.isActive == id ? null : id
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -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,32 +127,35 @@
|
||||||
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.data.aud_id
|
that.addID = res.aud_id
|
||||||
}
|
}
|
||||||
that.handleUserList()
|
that.handleUserList()
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
let that = this
|
let that = this
|
||||||
let token = uni.getStorageSync('token')
|
let token = uni.getStorageSync('token')
|
||||||
let url = options.url + '?token=' + token + '&id=' + options.id
|
let url = options.url + '?token=' + token + '&id=' + options.id
|
||||||
console.log("11111", options, url, this.webviewUrl)
|
|
||||||
that.webviewUrl = decodeURIComponent(url);
|
that.webviewUrl = decodeURIComponent(url);
|
||||||
console.log("11111", options, url, this.webviewUrl)
|
console.log("11111", options, url, this.webviewUrl)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,147 +0,0 @@
|
||||||
<template>
|
|
||||||
<view class="wrapper" v-if="isRecord">
|
|
||||||
<view class="bg" @click="onTap">
|
|
||||||
<view class="edit" @click.stop>
|
|
||||||
<view class="title">手动记录</view>
|
|
||||||
<!-- -->
|
|
||||||
<view class="editem" @click="hideKeyboard">
|
|
||||||
<view class="left">日期</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker mode="date" :end="endDate" @change="changeLog" :fields="fields">
|
|
||||||
<view class="uni-input">{{regTime?regTime:'请选择'}}</view>
|
|
||||||
<icon class="iconfont icon-arrow-down-bold"></icon>
|
|
||||||
</picker>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="">
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">第一次</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="number1" placeholder="请输入">ml
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">第二次</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="number2" placeholder="请输入">ml
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">第三次</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="number3" placeholder="请输入">ml
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="btn close" @click="onTap()">取消</view>
|
|
||||||
<view class="btn" @click="handleTarget">确定</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
mapState
|
|
||||||
} from "vuex";
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
regTime: "",
|
|
||||||
number1: '',
|
|
||||||
number2: "",
|
|
||||||
number3: "",
|
|
||||||
fields: "",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
props: {
|
|
||||||
rtype: null,
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["user","isRecord"]),
|
|
||||||
endDate() {
|
|
||||||
return this.$tools.getDate("start")
|
|
||||||
},
|
|
||||||
startDate() {
|
|
||||||
return this.$tools.GetDateStr(-90);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 手动记录
|
|
||||||
handleTarget() {
|
|
||||||
let that = this
|
|
||||||
if (!that.regTime) {
|
|
||||||
that.$tools.msg("请选择测量日期")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.number1) {
|
|
||||||
that.$tools.msg("请输入第一次吸气值")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.number2) {
|
|
||||||
that.$tools.msg("请输入第二次吸气值")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.number3) {
|
|
||||||
that.$tools.msg("请输入第三次吸气值")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
that.$model.getLungmeasure({
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
time: that.regTime,
|
|
||||||
one: that.number1,
|
|
||||||
two: that.number2,
|
|
||||||
three: that.number3
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg(res.msg)
|
|
||||||
that.$store.commit("changeRecord", false);
|
|
||||||
that.$store.dispatch("getUserInfo", {
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.$store.dispatch("getLungResult", {
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.regTime = ""
|
|
||||||
that.number1 = ""
|
|
||||||
that.number2 = ""
|
|
||||||
that.number3 = ""
|
|
||||||
that.onTap()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
//
|
|
||||||
changeLog(e) {
|
|
||||||
this.regTime = e.detail.value
|
|
||||||
},
|
|
||||||
onTap() {
|
|
||||||
this.regTime = ""
|
|
||||||
this.number1 = ""
|
|
||||||
this.number2 = ""
|
|
||||||
this.number3 = ""
|
|
||||||
this.$store.commit("changeRecord", false);
|
|
||||||
},
|
|
||||||
hideKeyboard() {
|
|
||||||
uni.hideKeyboard()
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.btn {
|
|
||||||
width: 40%;
|
|
||||||
float: right;
|
|
||||||
margin-top: 15px;
|
|
||||||
background: $maincolor !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit {
|
|
||||||
top: 20%
|
|
||||||
}
|
|
||||||
|
|
||||||
.close {
|
|
||||||
background: #fff !important;
|
|
||||||
float: left;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,223 +0,0 @@
|
||||||
<template>
|
|
||||||
<view class="wrapper" v-if="isPublicRecord">
|
|
||||||
<view class="bg" @click="onTap">
|
|
||||||
<view class="edit" @click.stop>
|
|
||||||
<view class="title">手动记录</view>
|
|
||||||
<view class="editem">
|
|
||||||
<view class="left">项目</view>
|
|
||||||
<view class="right">
|
|
||||||
{{labelName}}
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- -->
|
|
||||||
<view class="editem">
|
|
||||||
<view class="left">日期</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker mode="date" :end="endDate" @change="changeLog" :fields="fields">
|
|
||||||
<view class="uni-input">{{regTime?regTime:'请选择'}}</view>
|
|
||||||
<icon class="iconfont icon-arrow-down-bold"></icon>
|
|
||||||
</picker>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem" v-if="info&&info.list.length&&listType">
|
|
||||||
<view class="name">{{describe}}</view>
|
|
||||||
<view class="right" v-if="listType==4">
|
|
||||||
<picker mode="multiSelector" :range="timeList" :value="timesTndex" @change="bindTimeChange">
|
|
||||||
<view class="size16">{{time_m?time_m+':':'请选择'}}{{time_s?time_s:''}}</view>
|
|
||||||
</picker>
|
|
||||||
<uni-icons type="bottom" class="ml-10 c666"></uni-icons>
|
|
||||||
</view>
|
|
||||||
<view class="right" v-if="listType!=4">
|
|
||||||
<input :type="listType==1?'number':'digit'" v-model="number" placeholder="请输入">
|
|
||||||
{{unit}}
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem" v-if="info&&info.time">
|
|
||||||
<view class="name">时长</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker mode="multiSelector" :range="timeList" :value="timesTndex" @change="bindTimeChange">
|
|
||||||
<view class="size16">{{time_m?time_m+':':'请选择'}}{{time_s?time_s:''}}</view>
|
|
||||||
</picker>
|
|
||||||
<uni-icons type="bottom" class="ml-15 c666"></uni-icons>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem" v-if="info&&info.number">
|
|
||||||
<view class="name">个数</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="number" v-model="number" placeholder="请输入">个
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="btn close" @click="onTap()">取消</view>
|
|
||||||
<view class="btn" @click="handleTarget">确定</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
mapState
|
|
||||||
} from "vuex";
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
name: "",
|
|
||||||
regTime: "",
|
|
||||||
number: '',
|
|
||||||
timeList: [],
|
|
||||||
time_m: "",
|
|
||||||
time_s: "",
|
|
||||||
fields: "",
|
|
||||||
listType: null,
|
|
||||||
describe: "",
|
|
||||||
unit: "",
|
|
||||||
timesTndex: [1, 0],
|
|
||||||
lableTndex: 0,
|
|
||||||
labelName: "",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
props: {
|
|
||||||
rtype: null,
|
|
||||||
active: {
|
|
||||||
type: Number,
|
|
||||||
default: 0
|
|
||||||
},
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["PublicRecord", "isPublicRecord"]),
|
|
||||||
info() {
|
|
||||||
let that = this
|
|
||||||
let info = {
|
|
||||||
height: false,
|
|
||||||
weight: false,
|
|
||||||
number: false,
|
|
||||||
time: false,
|
|
||||||
list: []
|
|
||||||
}
|
|
||||||
if (that.PublicRecord.length) {
|
|
||||||
that.PublicRecord.forEach(ite => {
|
|
||||||
if (ite.id == that.rtype) {
|
|
||||||
info = ite
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if (info && info.list.length) {
|
|
||||||
// console.log("8888888", that.PublicRecord, info, that.active)
|
|
||||||
that.labelName = info.list[that.active].name
|
|
||||||
that.listType = info.list[that.active].type
|
|
||||||
that.describe = info.list[that.active].describe
|
|
||||||
that.unit = info.list[that.active].unit
|
|
||||||
// console.log("手动内容", info, that.active)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
return that.PublicRecord.length ? info : null
|
|
||||||
},
|
|
||||||
endDate() {
|
|
||||||
return this.$tools.getDate("start")
|
|
||||||
},
|
|
||||||
startDate() {
|
|
||||||
return this.$tools.GetDateStr(-90);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
// console.log("999999", that.labelName, that.PublicRecord)
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
let that = this
|
|
||||||
that.timeList = this.$tools.gethms()
|
|
||||||
// #ifdef APP-PLUS
|
|
||||||
that.fields = "time"
|
|
||||||
// #endif
|
|
||||||
// #ifndef APP-PLUS
|
|
||||||
that.fields = "day"
|
|
||||||
// #endif
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
bindTimeChange(e) {
|
|
||||||
let that = this
|
|
||||||
let m = e.target.value[0]
|
|
||||||
let s = e.target.value[1]
|
|
||||||
let time_m = Number(that.timeList[0][m].substring(0, 2)) * 60
|
|
||||||
let time_s = Number(that.timeList[1][s].substring(0, 2))
|
|
||||||
that.timesTndex = e.target.value
|
|
||||||
that.time_m = that.timeList[0][m].substring(0, 2)
|
|
||||||
that.time_s = that.timeList[1][s].substring(0, 2)
|
|
||||||
console.log("时长", that.time_m, that.time_s)
|
|
||||||
},
|
|
||||||
// 手动记录
|
|
||||||
handleTarget() {
|
|
||||||
let that = this
|
|
||||||
if (!that.regTime) {
|
|
||||||
that.$tools.msg("请选择日期")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (that.listType == 4 && (!that.time_m || !that.time_s)) {
|
|
||||||
that.$tools.msg("请输入时长")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (that.listType != 4 && !that.number) {
|
|
||||||
let msg = that.listType == 1 ? '请输入个数' : '请输入时长'
|
|
||||||
that.$tools.msg(msg)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let time_m = that.time_m + ':' + that.time_s
|
|
||||||
that.$model.getpublicmeasure({
|
|
||||||
acd_id: that.rtype,
|
|
||||||
name: that.labelName,
|
|
||||||
record_time: that.regTime,
|
|
||||||
data: that.listType == 4 ? time_m : that.number,
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg(res.msg)
|
|
||||||
that.$store.commit("changeRecord", false);
|
|
||||||
that.$store.dispatch("getUserInfo", {
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
})
|
|
||||||
that.$store.dispatch("getPublicContent", {
|
|
||||||
acd_id: that.rtype,
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.onTap()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
bindTimeChange(e) {
|
|
||||||
let that = this
|
|
||||||
let m = e.target.value[0]
|
|
||||||
let s = e.target.value[1]
|
|
||||||
that.timesTndex = e.target.value
|
|
||||||
let time_m = Number(that.timeList[0][m].substring(0, 2)) * 60
|
|
||||||
let time_s = Number(that.timeList[1][s].substring(0, 2))
|
|
||||||
that.time_m = that.timeList[0][m].substring(0, 2)
|
|
||||||
that.time_s = that.timeList[1][s].substring(0, 2)
|
|
||||||
},
|
|
||||||
//
|
|
||||||
changeLog(e) {
|
|
||||||
this.regTime = e.detail.value
|
|
||||||
},
|
|
||||||
onTap() {
|
|
||||||
this.regTime = ""
|
|
||||||
this.$store.commit("changePublicAdd", false);
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.btn {
|
|
||||||
width: 40%;
|
|
||||||
float: right;
|
|
||||||
margin-top: 15px;
|
|
||||||
background: $maincolor !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit {
|
|
||||||
top: 20%
|
|
||||||
}
|
|
||||||
|
|
||||||
.close {
|
|
||||||
background: #fff !important;
|
|
||||||
float: left;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,376 +0,0 @@
|
||||||
<template>
|
|
||||||
<view class="wrapper" v-if="isRecord">
|
|
||||||
<view class="bg" @click="onTap">
|
|
||||||
<view class="edit" @click.stop>
|
|
||||||
<view class="title">手动记录</view>
|
|
||||||
<view class="editem">
|
|
||||||
<view class="left">日期</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker mode="date" :end="endDate" @change="changeLog" :fields="fields">
|
|
||||||
<view class="uni-input">{{regTime?regTime:'请选择'}}</view>
|
|
||||||
<icon class="iconfont icon-arrow-down-bold"></icon>
|
|
||||||
</picker>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view v-if="rtype!=8&&rtype!=2">
|
|
||||||
<!-- 项目 -->
|
|
||||||
<view class="editem" v-if="info&&info.list.length">
|
|
||||||
<view class="left">项目</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker :range="info.list" range-key="name" :value="lableTndex" @change="bindLableChange">
|
|
||||||
<view class="uni-input">{{name?name:'请选择'}}</view>
|
|
||||||
<icon class="iconfont icon-arrow-down-bold"></icon>
|
|
||||||
</picker>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- 项目时长类型 -->
|
|
||||||
<view class="editem" v-if="info&&info.list.length&&listType">
|
|
||||||
<view class="name">{{describe}}</view>
|
|
||||||
<view class="right" v-if="listType==4">
|
|
||||||
<picker mode="multiSelector" :range="timeList" :value="timesTndex" @change="bindTimeChange">
|
|
||||||
<view class="size16">{{time_m?time_m+':':'请选择'}}{{time_s?time_s:''}}</view>
|
|
||||||
</picker>
|
|
||||||
<uni-icons type="bottom" class="ml-15 c666"></uni-icons>
|
|
||||||
</view>
|
|
||||||
<view class="right" v-if="listType!=4">
|
|
||||||
<input :type="listType==1?'number':'digit'" v-model="number" placeholder="请输入">
|
|
||||||
{{unit}}
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem" v-if="info&&info.time">
|
|
||||||
<view class="name">时长</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker mode="multiSelector" :range="timeList" :value="timesTndex" @change="bindTimeChange">
|
|
||||||
<view class="size16">{{time_m?time_m+':':'请选择'}}{{time_s?time_s:''}}</view>
|
|
||||||
</picker>
|
|
||||||
<uni-icons type="bottom" class="ml-15 c666"></uni-icons>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem" v-if="info&&info.number">
|
|
||||||
<view class="name">个数</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="number" v-model="number" placeholder="请输入">个
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- 身体 -->
|
|
||||||
<view class="" v-if="rtype==2">
|
|
||||||
<view class="editem" v-if="info&&info.height">
|
|
||||||
<view class="name">身高</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="height" placeholder="请输入身高" />cm
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem" v-if="info&&info.weight">
|
|
||||||
<view class="name">体重</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="weight" placeholder="请输入体重">kg
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem" v-if="userInfo.stage=='婴儿'">
|
|
||||||
<view class="left">头围</view>
|
|
||||||
<view class="right">
|
|
||||||
<input v-model="head" type="digit" placeholder="请输入" />cm
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- 肺活量 -->
|
|
||||||
<view class="" v-if="rtype==8">
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">第一次</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="number1" placeholder="请输入">ml
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">第二次</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="number2" placeholder="请输入">ml
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">第三次</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="number3" placeholder="请输入">ml
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="btn close" @click="onTap()">取消</view>
|
|
||||||
<view class="btn" @click="handleTarget">确定</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
mapState
|
|
||||||
} from "vuex";
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
rtype: null,
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
name: "",
|
|
||||||
number: '',
|
|
||||||
regTime: "",
|
|
||||||
number1: '',
|
|
||||||
number2: "",
|
|
||||||
number3: "",
|
|
||||||
time_m: "",
|
|
||||||
time_s: "",
|
|
||||||
weight: "",
|
|
||||||
height: '',
|
|
||||||
timeList: [],
|
|
||||||
lableTndex: 0,
|
|
||||||
timesTndex: [1, 0],
|
|
||||||
listType: null,
|
|
||||||
describe: "",
|
|
||||||
unit: "",
|
|
||||||
fields: "",
|
|
||||||
head: ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["user", "isRecord", "PublicRecord", "labelList"]),
|
|
||||||
userInfo() {
|
|
||||||
return this.user
|
|
||||||
},
|
|
||||||
info() {
|
|
||||||
let that = this
|
|
||||||
let info = {
|
|
||||||
height: false,
|
|
||||||
weight: false,
|
|
||||||
number: false,
|
|
||||||
time: false,
|
|
||||||
list: []
|
|
||||||
}
|
|
||||||
if (that.PublicRecord.length) {
|
|
||||||
that.PublicRecord.forEach(ite => {
|
|
||||||
if (ite.id == that.rtype) {
|
|
||||||
info = ite
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return that.PublicRecord.length ? info : null
|
|
||||||
},
|
|
||||||
endDate() {
|
|
||||||
return this.$tools.getDate("start")
|
|
||||||
},
|
|
||||||
startDate() {
|
|
||||||
return this.$tools.GetDateStr(-90);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
let that = this
|
|
||||||
that.timeList = that.$tools.gethms()
|
|
||||||
// #ifdef APP-PLUS
|
|
||||||
that.fields = "time"
|
|
||||||
// #endif
|
|
||||||
// #ifndef APP-PLUS
|
|
||||||
that.fields = "day"
|
|
||||||
// #endif
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 手动记录
|
|
||||||
handleTarget() {
|
|
||||||
let that = this
|
|
||||||
if (that.rtype == 2) {
|
|
||||||
that.handleinsertmeasure()
|
|
||||||
} else if (that.rtype == 6) {
|
|
||||||
that.handleskipmeasure()
|
|
||||||
} else if (that.rtype == 8) {
|
|
||||||
that.handleLungmeasure()
|
|
||||||
} else {
|
|
||||||
that.handlepublicmeasure()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 通用
|
|
||||||
handlepublicmeasure() {
|
|
||||||
let that = this
|
|
||||||
if (!that.name) {
|
|
||||||
that.$tools.msg("请选择测量项目")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.regTime) {
|
|
||||||
that.$tools.msg("请选择日期")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (that.listType == 4 && (!that.time_m || !that.time_s)) {
|
|
||||||
that.$tools.msg("请输入时长")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (that.listType != 4 && !that.number) {
|
|
||||||
let msg = that.listType == 1 ? '请输入个数' : '请输入时长'
|
|
||||||
that.$tools.msg(msg)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let time_m = that.time_m + ':' + that.time_s
|
|
||||||
that.$model.getpublicmeasure({
|
|
||||||
acd_id: that.rtype,
|
|
||||||
name: that.name,
|
|
||||||
record_time: that.regTime,
|
|
||||||
data: that.listType == 4 ? time_m : that.number,
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg(res.msg)
|
|
||||||
that.$store.dispatch("getUserInfo", {
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
})
|
|
||||||
that.$store.dispatch("getPublicContent", {
|
|
||||||
acd_id: that.rtype,
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.onTap()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 肺活量
|
|
||||||
handleLungmeasure() {
|
|
||||||
let that = this
|
|
||||||
if (!that.regTime) {
|
|
||||||
that.$tools.msg("请选择测量日期")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.number1) {
|
|
||||||
that.$tools.msg("请输入第一次吸气值")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.number2) {
|
|
||||||
that.$tools.msg("请输入第二次吸气值")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.number3) {
|
|
||||||
that.$tools.msg("请输入第三次吸气值")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
that.$model.getLungmeasure({
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
time: that.regTime,
|
|
||||||
one: that.number1,
|
|
||||||
two: that.number2,
|
|
||||||
three: that.number3
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg(res.msg)
|
|
||||||
that.$store.dispatch("getLungResult", {
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.onTap()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 跳绳
|
|
||||||
handleskipmeasure() {
|
|
||||||
let that = this
|
|
||||||
if (!that.regTime) {
|
|
||||||
that.$tools.msg("请选择测量日期")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.number) {
|
|
||||||
that.$tools.msg("请输入跳绳个数")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
that.$model.getskipmeasure({
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
num: that.number,
|
|
||||||
r_time: that.regTime,
|
|
||||||
time_m: that.time_m,
|
|
||||||
time_s: that.time_s,
|
|
||||||
type: "free",
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg(res.msg)
|
|
||||||
that.$store.dispatch("getSkipResult", {
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
})
|
|
||||||
that.onTap()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 身体
|
|
||||||
handleinsertmeasure() {
|
|
||||||
let that = this
|
|
||||||
if (!that.regTime) {
|
|
||||||
that.$tools.msg("请选择测量日期")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.height) {
|
|
||||||
that.$tools.msg("请输入测量身高")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.weight) {
|
|
||||||
that.$tools.msg("请输入测量体重")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
that.$model.getinsertmeasure({
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
time: that.regTime,
|
|
||||||
weight: that.weight,
|
|
||||||
height: that.height,
|
|
||||||
head_data: that.head ? that.head : 0
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg(res.msg)
|
|
||||||
that.$store.dispatch("getResult", {
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.$store.dispatch("getUserInfo", {
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.onTap()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
bindTimeChange(e) {
|
|
||||||
let that = this
|
|
||||||
let m = e.target.value[0]
|
|
||||||
let s = e.target.value[1]
|
|
||||||
that.timesTndex = e.target.value
|
|
||||||
let time_m = Number(that.timeList[0][m].substring(0, 2)) * 60
|
|
||||||
let time_s = Number(that.timeList[1][s].substring(0, 2))
|
|
||||||
that.time_m = that.timeList[0][m].substring(0, 2)
|
|
||||||
that.time_s = that.timeList[1][s].substring(0, 2)
|
|
||||||
},
|
|
||||||
bindLableChange(e) {
|
|
||||||
console.log("e", e)
|
|
||||||
this.name = this.info.list[e.detail.value].name
|
|
||||||
this.listType = this.info.list[e.detail.value].type
|
|
||||||
this.describe = this.info.list[e.detail.value].describe
|
|
||||||
this.unit = this.info.list[e.detail.value].unit
|
|
||||||
},
|
|
||||||
changeLog(e) {
|
|
||||||
this.regTime = e.detail.value
|
|
||||||
},
|
|
||||||
onTap() {
|
|
||||||
let that = this
|
|
||||||
that.name = ""
|
|
||||||
that.weight = ""
|
|
||||||
that.height = ""
|
|
||||||
that.regTime = ""
|
|
||||||
that.number1 = ""
|
|
||||||
that.number2 = ""
|
|
||||||
that.number3 = ""
|
|
||||||
that.number = ''
|
|
||||||
that.time_m = ""
|
|
||||||
that.time_s = ""
|
|
||||||
that.lableTndex = 0
|
|
||||||
that.timesTndex = [1, 0]
|
|
||||||
that.listType = null
|
|
||||||
that.$store.commit("changeRecord", false);
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.btn {
|
|
||||||
width: 40%;
|
|
||||||
float: right;
|
|
||||||
margin-top: 15px;
|
|
||||||
background: $maincolor !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.close {
|
|
||||||
background: #dfdfdf !important;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,148 +0,0 @@
|
||||||
<template>
|
|
||||||
<view class="wrapper">
|
|
||||||
<view class="bg" @click="onTap">
|
|
||||||
<view class="edit" @click.stop>
|
|
||||||
<view class="title">手动记录</view>
|
|
||||||
<!-- -->
|
|
||||||
<view class="editem" @click="hideKeyboard">
|
|
||||||
<view class="left">日期</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker mode="date" :end="endDate" @change="changeLog" :fields="fields">
|
|
||||||
<view class="uni-input">{{regTime?regTime:'请选择'}}</view>
|
|
||||||
<icon class="iconfont icon-arrow-down-bold"></icon>
|
|
||||||
</picker>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="">
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">时长</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker mode="multiSelector" :range="timeList" :value="timesTndex" @change="bindTimeChange">
|
|
||||||
<view class="size16">{{time_m?time_m+':':'请选择'}}{{time_s?time_s:''}}</view>
|
|
||||||
</picker>
|
|
||||||
<uni-icons type="bottom" class="ml-15 c666"></uni-icons>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">个数</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="number" v-model="number" placeholder="请输入">个
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="btn close" @click="onTap()">取消</view>
|
|
||||||
<view class="btn" @click="handleTarget">确定</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
mapState
|
|
||||||
} from "vuex";
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
regTime: "",
|
|
||||||
number: '',
|
|
||||||
timeList: [],
|
|
||||||
time_m: "",
|
|
||||||
time_s: "",
|
|
||||||
timesTndex: [1, 0]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["user"]),
|
|
||||||
endDate() {
|
|
||||||
return this.$tools.getDate("start")
|
|
||||||
},
|
|
||||||
startDate() {
|
|
||||||
return this.$tools.GetDateStr(-90);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.timeList = this.$tools.gethms()
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
bindTimeChange(e) {
|
|
||||||
let that = this
|
|
||||||
let m = e.target.value[0]
|
|
||||||
let s = e.target.value[1]
|
|
||||||
that.timesTndex = e.target.value
|
|
||||||
let time_m = Number(that.timeList[0][m].substring(0, 2)) * 60
|
|
||||||
let time_s = Number(that.timeList[1][s].substring(0, 2))
|
|
||||||
if (Number(time_m + time_s) < 30) {
|
|
||||||
that.time_m = '00'
|
|
||||||
that.time_s = '30'
|
|
||||||
} else {
|
|
||||||
that.time_m = that.timeList[0][m].substring(0, 2)
|
|
||||||
that.time_s = that.timeList[1][s].substring(0, 2)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 手动记录
|
|
||||||
handleTarget() {
|
|
||||||
let that = this
|
|
||||||
if (!that.regTime) {
|
|
||||||
that.$tools.msg("请选择测量日期")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.number) {
|
|
||||||
that.$tools.msg("请输入跳绳个数")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
that.$model.getskipmeasure({
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
r_time: that.regTime,
|
|
||||||
num: that.number,
|
|
||||||
time_m: that.time_m,
|
|
||||||
time_s: that.time_s,
|
|
||||||
type: "free",
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg(res.msg)
|
|
||||||
that.$store.commit("changeRecord", false);
|
|
||||||
that.$store.dispatch("getUserInfo", {
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
})
|
|
||||||
that.$store.dispatch("getSkipResult", {
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
})
|
|
||||||
that.regTime = ""
|
|
||||||
that.weight = ""
|
|
||||||
})
|
|
||||||
},
|
|
||||||
//
|
|
||||||
changeLog(e) {
|
|
||||||
this.regTime = e.detail.value
|
|
||||||
},
|
|
||||||
onTap() {
|
|
||||||
this.regTime = ""
|
|
||||||
this.weight = ""
|
|
||||||
this.$store.commit("changeRecord", false);
|
|
||||||
},
|
|
||||||
hideKeyboard() {
|
|
||||||
uni.hideKeyboard()
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.btn {
|
|
||||||
width: 40%;
|
|
||||||
float: right;
|
|
||||||
margin-top: 15px;
|
|
||||||
background: $maincolor !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit {
|
|
||||||
top: 20%
|
|
||||||
}
|
|
||||||
|
|
||||||
.close {
|
|
||||||
background: #fff !important;
|
|
||||||
float: left;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,133 +0,0 @@
|
||||||
<template>
|
|
||||||
<view class="wrapper wrapperbg">
|
|
||||||
<view class="bg" @click="onTap">
|
|
||||||
<view class="edit" @click.stop>
|
|
||||||
<view class="title">手动记录</view>
|
|
||||||
<!-- -->
|
|
||||||
<view class="editem" @click="hideKeyboard">
|
|
||||||
<view class="left">日期</view>
|
|
||||||
<view class="right">
|
|
||||||
<picker mode="date" :end="endDate" @change="changeLog" :fields="fields">
|
|
||||||
<view class="uni-input">{{regTime?regTime:'请选择'}}</view>
|
|
||||||
<icon class="iconfont icon-arrow-down-bold"></icon>
|
|
||||||
</picker>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="">
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">身高</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="height" placeholder="请输入身高" />cm
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="editem">
|
|
||||||
<view class="name">体重</view>
|
|
||||||
<view class="right">
|
|
||||||
<input type="digit" v-model="weight" placeholder="请输入体重">kg
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="btn close" @click="onTap()">取消</view>
|
|
||||||
<view class="btn" @click="handleTarget">确定</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
mapState
|
|
||||||
} from "vuex";
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
regTime: "",
|
|
||||||
weight: "",
|
|
||||||
height: ''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["user", "isWeight"]),
|
|
||||||
endDate() {
|
|
||||||
return this.$tools.getDate("start")
|
|
||||||
},
|
|
||||||
startDate() {
|
|
||||||
return this.$tools.GetDateStr(-90);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 手动记录
|
|
||||||
handleTarget() {
|
|
||||||
let that = this
|
|
||||||
if (!that.regTime) {
|
|
||||||
that.$tools.msg("请选择测量日期")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.height) {
|
|
||||||
that.$tools.msg("请输入测量身高")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!that.weight) {
|
|
||||||
that.$tools.msg("请输入测量体重")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
that.$store.commit("changeRecord", false);
|
|
||||||
that.$model.getinsertmeasure({
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
time: that.regTime,
|
|
||||||
weight: that.weight,
|
|
||||||
height: that.height,
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code != 0) return
|
|
||||||
that.$tools.msg(res.msg)
|
|
||||||
that.$store.dispatch("getResult", {
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.$store.dispatch("getUserInfo", {
|
|
||||||
aud_id: uni.getStorageSync('userid')
|
|
||||||
})
|
|
||||||
that.$store.dispatch("GetBodyTrendList", {
|
|
||||||
aud_id: uni.getStorageSync('userid'),
|
|
||||||
s_time: that.startDate,
|
|
||||||
e_time: that.endDate
|
|
||||||
})
|
|
||||||
that.regTime = ""
|
|
||||||
that.weight = ""
|
|
||||||
that.height = ""
|
|
||||||
})
|
|
||||||
},
|
|
||||||
//
|
|
||||||
changeLog(e) {
|
|
||||||
this.regTime = e.detail.value
|
|
||||||
},
|
|
||||||
onTap() {
|
|
||||||
this.regTime = ""
|
|
||||||
this.weight = ""
|
|
||||||
this.height = ""
|
|
||||||
this.$store.commit("changeRecord", false);
|
|
||||||
},
|
|
||||||
hideKeyboard() {
|
|
||||||
uni.hideKeyboard()
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.btn {
|
|
||||||
width: 40%;
|
|
||||||
float: right;
|
|
||||||
margin-top: 15px;
|
|
||||||
background: $maincolor !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.edit {
|
|
||||||
top: 20%
|
|
||||||
}
|
|
||||||
|
|
||||||
.close {
|
|
||||||
background: #fff !important;
|
|
||||||
float: left;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -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,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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,6 @@
|
||||||
handlePageScrollTo(id, ind) {
|
handlePageScrollTo(id, ind) {
|
||||||
let that = this
|
let that = this
|
||||||
that.index = ind
|
that.index = ind
|
||||||
that.isShow = false
|
|
||||||
that.handlonLoad()
|
that.handlonLoad()
|
||||||
},
|
},
|
||||||
handlonLoad() {
|
handlonLoad() {
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,8 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="num">
|
<view class="num">
|
||||||
<text>{{ite.diffval}}</text>
|
<text>{{ite.diffval}}</text>
|
||||||
<icon class="t-icon t-icon-xia" v-if="Number(ite.diffval)>0"></icon>
|
<icon class="t-icon t-icon-xia" v-if="ite.diffval.includes('-')"></icon>
|
||||||
<icon class="t-icon t-icon-shang" v-if="Number(ite.diffval)<0"></icon>
|
<icon class="t-icon t-icon-shang" v-else></icon>
|
||||||
<icon class="t-icon t-icon-hengxian"
|
<icon class="t-icon t-icon-hengxian"
|
||||||
v-if="!ite.diffval||ite.diffval=='0.00'||ite.diffval=='00:00:00'"></icon>
|
v-if="!ite.diffval||ite.diffval=='0.00'||ite.diffval=='00:00:00'"></icon>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -108,12 +108,12 @@
|
||||||
if (unit == "10") {
|
if (unit == "10") {
|
||||||
that.unit = "lb"
|
that.unit = "lb"
|
||||||
}
|
}
|
||||||
if (unit == "01") {
|
|
||||||
that.unit = "斤"
|
|
||||||
}
|
|
||||||
if (num == "00") {
|
if (num == "00") {
|
||||||
weight = weight / 10
|
weight = weight / 10
|
||||||
}
|
}
|
||||||
|
if (num == "01") {
|
||||||
|
that.unit = "斤"
|
||||||
|
}
|
||||||
if (num == "10") {
|
if (num == "10") {
|
||||||
if (unit == "10") {
|
if (unit == "10") {
|
||||||
that.unit = "lb"
|
that.unit = "lb"
|
||||||
|
|
|
||||||
34
pages.json
|
|
@ -17,10 +17,22 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// "path": "pages/target/target",
|
||||||
|
// "style": {
|
||||||
|
// "navigationBarTitleText": "优选"
|
||||||
|
// }
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
"path": "pages/target/target",
|
"path": "pages/card/card",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": ""
|
"navigationBarTitleText": "运动"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/count/count",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "饮食"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -345,14 +357,18 @@
|
||||||
"pagePath": "pages/index/index",
|
"pagePath": "pages/index/index",
|
||||||
"iconPath": "static/shou.png",
|
"iconPath": "static/shou.png",
|
||||||
"selectedIconPath": "static/shou2.png",
|
"selectedIconPath": "static/shou2.png",
|
||||||
"text": "首页"
|
"text": "健康"
|
||||||
|
}, {
|
||||||
|
"pagePath": "pages/count/count",
|
||||||
|
"iconPath": "static/yinshi.png",
|
||||||
|
"selectedIconPath": "static/yinshi2.png",
|
||||||
|
"text": "饮食"
|
||||||
|
}, {
|
||||||
|
"pagePath": "pages/card/card",
|
||||||
|
"iconPath": "static/yundong.png",
|
||||||
|
"selectedIconPath": "static/yundong2.png",
|
||||||
|
"text": "运动"
|
||||||
},{
|
},{
|
||||||
"pagePath": "pages/target/target",
|
|
||||||
"iconPath": "static/ping.png",
|
|
||||||
"selectedIconPath": "static/ping2.png",
|
|
||||||
"text": "优选"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pagePath": "pages/my/me",
|
"pagePath": "pages/my/me",
|
||||||
"iconPath": "static/wo.png",
|
"iconPath": "static/wo.png",
|
||||||
"selectedIconPath": "static/wo2.png",
|
"selectedIconPath": "static/wo2.png",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,161 @@
|
||||||
|
<template>
|
||||||
|
<view class="cardContent">
|
||||||
|
<view class="cardList">
|
||||||
|
<view class="caritem" @click="handleNavTol('/pageTwo/charts/charts')">
|
||||||
|
<image src="/static/q5.png"></image>
|
||||||
|
<view>曲线</view>
|
||||||
|
</view>
|
||||||
|
<view class="caritem" @click="handleNavTol('/pageTwo/compk/contrast')">
|
||||||
|
<image src="/static/q3.png"></image>
|
||||||
|
<view>数据对比</view>
|
||||||
|
</view>
|
||||||
|
<view class="caritem" @click="handlerRecord">
|
||||||
|
<image src="/static/q7.png"></image>
|
||||||
|
<view>添加记录</view>
|
||||||
|
</view>
|
||||||
|
<view class="caritem" @click="handleNavTol('/pageTwo/history/history')">
|
||||||
|
<image src="/static/q8.png"></image>
|
||||||
|
<view>历史记录</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="cardListchosen">
|
||||||
|
<view class="item" v-for="(ite,ind) in cardList.chosen_fixed" @click="handleNavTol(ite.page_jump)">
|
||||||
|
<view class="info">
|
||||||
|
<image :src="ite.icon"></image>
|
||||||
|
<view>{{ite.name}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="item" v-for="(ite,ind) in cardList.chosen_yes" @click="handleNavTol(ite.page_jump)">
|
||||||
|
<view class="info">
|
||||||
|
<image :src="ite.icon"></image>
|
||||||
|
<view>{{ite.name}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="setCard" @click="handleSetCard">
|
||||||
|
工具设置
|
||||||
|
</view> -->
|
||||||
|
<!-- 手动记录 -->
|
||||||
|
<record></record>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
mapState
|
||||||
|
} from "vuex";
|
||||||
|
import record from '@/components/cardIndex/record.vue';
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
record,
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(['user', "CardList"]),
|
||||||
|
endDate() {
|
||||||
|
return this.$tools.getDate("start")
|
||||||
|
},
|
||||||
|
startDate() {
|
||||||
|
return this.$tools.GetDateStr(-90);
|
||||||
|
},
|
||||||
|
cardList() {
|
||||||
|
return this.CardList
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
// 手动
|
||||||
|
handlerRecord() {
|
||||||
|
this.$store.commit('changeTsPublicRecord', true)
|
||||||
|
},
|
||||||
|
handleNavTol(url) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: url
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleSetCard() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/pageTwo/cardList/card"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.cardContent {
|
||||||
|
min-height: 100vh;
|
||||||
|
background: #F7F7F7;
|
||||||
|
padding: 5px 0 15PX;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardList {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
background: #fff;
|
||||||
|
margin: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 10px;
|
||||||
|
|
||||||
|
.caritem {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardListchosen {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin: 15px 10px;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 47%;
|
||||||
|
background-color: #fff;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
position: relative;
|
||||||
|
height: 60px;
|
||||||
|
line-height: 60px;
|
||||||
|
border-radius: 5px;
|
||||||
|
|
||||||
|
.info {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
background-color: #f2f2f2;
|
||||||
|
margin-right: 10px;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.setCard {
|
||||||
|
color: $maincolor;
|
||||||
|
margin: 15px;
|
||||||
|
text-align: center;
|
||||||
|
border: 1px solid $maincolor;
|
||||||
|
border-radius: 10px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,476 @@
|
||||||
|
<template>
|
||||||
|
<view class="content-box">
|
||||||
|
<!-- 日期选择 -->
|
||||||
|
<view class="data">
|
||||||
|
<picker mode="date" :end="endDate" @change="changeClickDate" :value="data?data:endDate">
|
||||||
|
<view>
|
||||||
|
{{data?data:"请选择"}}
|
||||||
|
<image src="/static/qie.png"></image>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 称重 -->
|
||||||
|
<view class="blue-tooth" v-if="user.aud_id!=''">
|
||||||
|
<blue-tooth :btnType="btnType"></blue-tooth>
|
||||||
|
</view>
|
||||||
|
<!-- 能量摄入 -->
|
||||||
|
<view class="everyDay">
|
||||||
|
<view class="title">
|
||||||
|
<view><text class="quan"></text>热量摄入</view>
|
||||||
|
<view class="icon" @click="handleSet">
|
||||||
|
<uni-icons type="gear" size="26"></uni-icons>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="jishiqi">
|
||||||
|
<view class="left">
|
||||||
|
<view class="chart-wrap">
|
||||||
|
<view class="charts-box" v-if="handTrue">
|
||||||
|
<qiun-data-charts type="arcbar" :chartData="chartData" :canvas2d="true"
|
||||||
|
canvasId="foodCharts01" />
|
||||||
|
</view>
|
||||||
|
<view class="center">
|
||||||
|
摄入
|
||||||
|
<text>{{foodInfo.nutrients_four[0].today_intake}}</text>
|
||||||
|
<view class="unit">Kcal</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="mubiao">
|
||||||
|
目标:<text>{{foodInfo.nutrients_four[0].suggestion}}</text>kcal
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right">
|
||||||
|
<view class="item" v-for="(ite,ind) in foodInfo.nutrients_four.slice(1)">
|
||||||
|
<view class="left-icon">
|
||||||
|
<image :src="ite.icon"></image>
|
||||||
|
<view class="val" :style="{color:ite.color}">{{ite.proportion_fp||0}}%</view>
|
||||||
|
</view>
|
||||||
|
<view class="right-info">
|
||||||
|
<view class="right-info-top">
|
||||||
|
<text class="name">{{ite.name}}</text>
|
||||||
|
<text class="">
|
||||||
|
{{ite.today_intake||0}}/{{ite.suggestion||0}}g
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
<view class="right-info-bottom">
|
||||||
|
<view class="val" :style="{ width: ite.proportion + '%',background:ite.color}">
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 早午晚餐 -->
|
||||||
|
<view class="foodtools">
|
||||||
|
<view class="type" v-for="(item,index) in foodInfo.list">
|
||||||
|
<view class="title" @click="handledetail(index)">
|
||||||
|
<view class="text">
|
||||||
|
<image :src="item.icon"></image>
|
||||||
|
<view>{{item.name}}</view>
|
||||||
|
<text>{{item.val}}{{item.unit}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detail">
|
||||||
|
餐食详情
|
||||||
|
<uni-icons type="forward" size="20" color="#999"></uni-icons>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="list">
|
||||||
|
<uni-swipe-action>
|
||||||
|
<uni-swipe-action-item v-for="(ite,ind) in item.list" :key="ind" :right-options="actionOptions"
|
||||||
|
@click="delAcitionItem(ite)">
|
||||||
|
<view class="item" @click="showFoodDetail(ite)">
|
||||||
|
<image :src="ite.pic_url" mode="aspectFill"></image>
|
||||||
|
<view class="weight">
|
||||||
|
<view>{{ite.name}}</view>
|
||||||
|
<view class="size12 c999">{{ite.weight}}<text>|</text>{{ite.val}}kcal</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</uni-swipe-action-item>
|
||||||
|
</uni-swipe-action>
|
||||||
|
<view class="add" @click="handleAddFood(item.name)">
|
||||||
|
<text>+</text>添加食物
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="fenxi" @click="navTo('/Food/count/everyDay?page=count')">
|
||||||
|
<image src="/static/fenxi.png"></image>
|
||||||
|
营养分析
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<view class="serachBox">
|
||||||
|
<view class="title">
|
||||||
|
<view class="quan mr-5"></view>教你做
|
||||||
|
</view>
|
||||||
|
<view class="searchInput">
|
||||||
|
<div class="search-wrap" @click="navTo('/Food/search/search')">
|
||||||
|
<text>输入食材快速搜索菜谱</text>
|
||||||
|
<image src="/static/28.png"></image>
|
||||||
|
</div>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 营养含量分析 -->
|
||||||
|
<view v-if="drawerVisible" class="drawerVisible">
|
||||||
|
<view class="bgVisible" @click="handleDrawerClose"></view>
|
||||||
|
<view class="infoVisible">
|
||||||
|
<scroll-view style="height: 100%;" scroll-y="true">
|
||||||
|
<view class="foodDetail">
|
||||||
|
<view class="foodInfo">
|
||||||
|
<image :src="activeFoodDetail.pic_url" mode="aspectFill"></image>
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">{{activeFoodDetail.name}}</view>
|
||||||
|
<view class="kcal">{{activeFoodDetail.val}}千卡</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="foodContent">
|
||||||
|
<view class="title">热量和营养</view>
|
||||||
|
<view class="progress">
|
||||||
|
<div class="chart-wrap" v-if="chartVisible">
|
||||||
|
<qiun-data-charts type="ring" :opts="opts" :chartData="chartData2" :cHeight="280"
|
||||||
|
:cWidth="280" :canvas2d="true" canvasId="foodCharts02" />
|
||||||
|
</div>
|
||||||
|
<view class="info" v-if="activeFoodDetail.nutrients_four">
|
||||||
|
<view class="info-item"
|
||||||
|
v-for="(item,index) in activeFoodDetail.nutrients_four.slice(1)" :key="index">
|
||||||
|
<view class="color" :style="{'background-color':`${item.color}`}">
|
||||||
|
</view>
|
||||||
|
<view>{{item.name}}:{{item.proportion}}%</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="tips">
|
||||||
|
<text>营养素</text>
|
||||||
|
<text>{{activeFoodDetail.weight}}含量</text>
|
||||||
|
</view>
|
||||||
|
<view class="foodDetailList">
|
||||||
|
<view class="foodDetailItem" v-for="(item,index) in activeFoodDetail.nutrients_list"
|
||||||
|
:key="index">
|
||||||
|
<view class="name">{{item.name_ch}}</view>
|
||||||
|
<view class="value">{{item.value}}{{item.unit}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
mapState
|
||||||
|
} from "vuex";
|
||||||
|
import blueTooth from "@/components/foodIndex/bluetooth_food.vue"
|
||||||
|
import qiunDataCharts from '@/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue';
|
||||||
|
export default {
|
||||||
|
name: "food",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
btnType: 1,
|
||||||
|
token: "",
|
||||||
|
index: 0,
|
||||||
|
opts: {
|
||||||
|
background: "transparent",
|
||||||
|
title: {
|
||||||
|
name: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
chartData: {
|
||||||
|
series: [{
|
||||||
|
data: 0,
|
||||||
|
color: "#3CB383"
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
data: '',
|
||||||
|
isBle: true,
|
||||||
|
handTrue: false,
|
||||||
|
chartData2: {},
|
||||||
|
activeFoodDetail: {},
|
||||||
|
drawerVisible: false,
|
||||||
|
chartVisible: false, // 单独控制图表显示
|
||||||
|
actionOptions: [{
|
||||||
|
text: '删除',
|
||||||
|
style: {
|
||||||
|
backgroundColor: '#dd524d',
|
||||||
|
borderRadius: '10rpx'
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
blueTooth,
|
||||||
|
qiunDataCharts
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(["configInfo", "user", "countFoodInfo", "bleValue"]),
|
||||||
|
info() {
|
||||||
|
return this.user
|
||||||
|
},
|
||||||
|
kcalVal() {
|
||||||
|
return this.configInfo.kcal_data
|
||||||
|
},
|
||||||
|
endDate() {
|
||||||
|
return this.$tools.getDate("start")
|
||||||
|
},
|
||||||
|
foodInfo() {
|
||||||
|
let that = this
|
||||||
|
that.handTrue = false
|
||||||
|
that.$nextTick(() => {
|
||||||
|
that.handTrue = true
|
||||||
|
that.chartData.series[0].data = that.user.aud_id ? Number(that.countFoodInfo.nutrients_four[0].proportion) / 100 : 0
|
||||||
|
})
|
||||||
|
that.data = that.user.aud_id ? that.countFoodInfo.date : that.$tools.getDate("start")
|
||||||
|
return that.user.aud_id ? that.countFoodInfo : that.configInfo.default_count_foot
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 详情
|
||||||
|
showFoodDetail(item) {
|
||||||
|
console.log("item", item)
|
||||||
|
let that = this
|
||||||
|
let chart_data = []
|
||||||
|
that.drawerVisible = true;
|
||||||
|
that.opts.color = []
|
||||||
|
that.activeFoodDetail = item
|
||||||
|
for (let i = 1; i < item.nutrients_four.length; ++i) {
|
||||||
|
that.opts.color.push(item.nutrients_four[i].color)
|
||||||
|
chart_data.push({
|
||||||
|
name: item.nutrients_four[i].name,
|
||||||
|
value: Number(item.nutrients_four[i].proportion),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
that.opts.title.name = that.activeFoodDetail.val
|
||||||
|
that.chartData2 = JSON.parse(JSON.stringify({
|
||||||
|
series: [{
|
||||||
|
data: chart_data
|
||||||
|
}]
|
||||||
|
}));
|
||||||
|
that.$nextTick(() => {
|
||||||
|
// 延迟显示图表,确保容器已渲染
|
||||||
|
setTimeout(() => {
|
||||||
|
that.chartVisible = true
|
||||||
|
}, 100)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 餐食详情
|
||||||
|
handledetail(index) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/Food/count/everyMeal?index=" + index
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 设置
|
||||||
|
handleSet() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/Food/count/setting"
|
||||||
|
})
|
||||||
|
},
|
||||||
|
changeClickDate(e) {
|
||||||
|
this.data = e.detail.value
|
||||||
|
this.$store.dispatch("getCountFoodInfo", {
|
||||||
|
aud_id: this.info.aud_id,
|
||||||
|
time: e.detail.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 添加食物
|
||||||
|
handleAddFood(name) {
|
||||||
|
this.isShow = false
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/Food/count/search?name=" + name + "&time=" + this.date
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 功能页面跳转
|
||||||
|
navTo(url) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleDrawerClose() {
|
||||||
|
// 先隐藏图表,再隐藏抽屉
|
||||||
|
this.chartVisible = false
|
||||||
|
this.drawerVisible = false;
|
||||||
|
},
|
||||||
|
// 删除食材
|
||||||
|
delAcitionItem(item) {
|
||||||
|
let that = this
|
||||||
|
uni.showModal({
|
||||||
|
content: `是否删除[${item.name}]?`,
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
this.$model.delCEatAction({
|
||||||
|
aud_id: that.info.aud_id,
|
||||||
|
eat_log_id: item.id
|
||||||
|
}).then(res => {
|
||||||
|
// 删除最新一天食物
|
||||||
|
if (that.foodInfo.date == that.info.food_count.date) {
|
||||||
|
that.$store.dispatch("getUserInfoFood")
|
||||||
|
} else {
|
||||||
|
that.$store.dispatch("getCountFoodInfo", {
|
||||||
|
aud_id: that.info.aud_id,
|
||||||
|
time: that.foodInfo.date
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.content-box {
|
||||||
|
padding-top: 15px;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
background: #f7f7f7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.serachBox {
|
||||||
|
position: initial;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
height: auto;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.searchInput {
|
||||||
|
background: #fff;
|
||||||
|
padding: 10px;
|
||||||
|
width: calc(100% - 20px);
|
||||||
|
position: initial;
|
||||||
|
margin: 10px 0;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.data {
|
||||||
|
width: 100%;
|
||||||
|
background: #fff;
|
||||||
|
height: 90rpx;
|
||||||
|
box-shadow: 0px 1px 5px 2px #dfe2e1fc;
|
||||||
|
margin: 10px;
|
||||||
|
width: calc(100% - 20px);
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-top: 0;
|
||||||
|
|
||||||
|
picker {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
height: 90rpx;
|
||||||
|
position: relative;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
view {
|
||||||
|
width: 100%;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
display: flex;
|
||||||
|
bottom: 0;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.blue-tooth {
|
||||||
|
padding: 10px;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 0 10px;
|
||||||
|
box-shadow: 0px 1px 5px 2px #dfe2e1fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.foodtools {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
|
||||||
|
.type {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
padding: 20rpx;
|
||||||
|
margin: 0 20rpx 20rpx;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
width: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
view {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail {
|
||||||
|
color: #999;
|
||||||
|
display: flex;
|
||||||
|
font-size: 24rpx;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
display: flex;
|
||||||
|
padding: 20rpx 0;
|
||||||
|
border-bottom: 1px solid #f7f7f7;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 90rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: 1px solid #f7f7f7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weight {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
|
||||||
|
text {
|
||||||
|
margin: 0 20rpx;
|
||||||
|
color: #dfdfdf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.add {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.charts-box {
|
||||||
|
width: 250rpx;
|
||||||
|
height: 250rpx;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -33,17 +33,60 @@
|
||||||
登录后查看更多
|
登录后查看更多
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view v-if="token&&Measure.top_list.length" class="body">
|
||||||
<!-- 数据 -->
|
<view class="top">
|
||||||
<view class="toggle">
|
<view class="info box_shadow" v-for="(ite,ind) in Measure.top_list"
|
||||||
<view :class="{'active':toolsIndex==0}" class="toolsItem" @click="handleToolsIndex(0)">身体数据</view>
|
:style="{'backgroundColor':ite.bk_color}" @click="handelCurveDetailed">
|
||||||
<view :class="{'active':toolsIndex==1}" class="toolsItem" @click="handleToolsIndex(1)">饮食数据</view>
|
<view class="title">
|
||||||
<view :class="{'active':toolsIndex==2}" class="toolsItem" @click="handleToolsIndex(2)">健康工具</view>
|
<view class="bold">{{ite.name}}</view>
|
||||||
|
<view class="c999">
|
||||||
|
{{ite.time}}
|
||||||
|
<uni-icons type="right" class="ml-10" color="#999"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="token">
|
</view>
|
||||||
<bodypage v-if="toolsIndex==0"></bodypage>
|
<view class="weight">
|
||||||
<food v-if="toolsIndex==1"></food>
|
<view class="left">
|
||||||
<card v-if="toolsIndex==2"></card>
|
<view class="number"><text class="size26 bold">{{ite.value}}</text>{{ite.unit}}</view>
|
||||||
|
<view class="standard bold size16" :style="{'color':ite.standard_color}">{{ite.standard}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="charts" v-if="handTrue&&ite.curve_list.line.categories.length">
|
||||||
|
<qiun-data-charts type="area" :chartData="ite.curve_list.line" :Width="140" :Height="40"
|
||||||
|
:canvas2d="true" :canvasId="ite.key_name+ind" :opts="opts" :tapLegend="false"
|
||||||
|
:tooltipShow="false" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="Ideal c999" v-if="ite.ideal_weight">
|
||||||
|
<text>理想{{ite.name}}</text>
|
||||||
|
<text>{{ite.ideal_weight}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- -->
|
||||||
|
<view class="function mt-15">
|
||||||
|
<view @click="handlerRecord">
|
||||||
|
<image src="/static/shoudong.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
<view @click="handReport">
|
||||||
|
<image src="/static/shendu.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- -->
|
||||||
|
<view class="tools">
|
||||||
|
<view class="item box_shadow" v-for="(ite,ind) in Measure.card_list"
|
||||||
|
@click="handleTools(ite.key_name)">
|
||||||
|
<view class="top">
|
||||||
|
<image :src="ite.icon"></image>{{ite.name}}
|
||||||
|
</view>
|
||||||
|
<view class="number">
|
||||||
|
<text class="bold"
|
||||||
|
:class="[ite.key_name=='body_level'||ite.key_name=='body_type'?'size14':'size20']">{{ite.value}}</text>{{ite.unit}}
|
||||||
|
</view>
|
||||||
|
<view class="bold size14" :style="{'color':ite.standard_color}">{{ite.standard}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 手动记录 -->
|
||||||
|
<record></record>
|
||||||
</view>
|
</view>
|
||||||
<view class="nolist" v-else>
|
<view class="nolist" v-else>
|
||||||
<image src="/static/none.png"></image>
|
<image src="/static/none.png"></image>
|
||||||
|
|
@ -58,26 +101,47 @@
|
||||||
import {
|
import {
|
||||||
mapState
|
mapState
|
||||||
} from "vuex";
|
} from "vuex";
|
||||||
import bodypage from "@/components/bodyIndex/bodyHome.vue"
|
|
||||||
import food from "@/components/foodIndex/foodHome.vue"
|
|
||||||
import card from "@/components/cardIndex/cardHome.vue"
|
|
||||||
import drawer from "@/components/bodyIndex/drawer.vue"
|
import drawer from "@/components/bodyIndex/drawer.vue"
|
||||||
|
import record from '@/components/bodyIndex/record.vue';
|
||||||
|
import qiunDataCharts from '@/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
token: "",
|
token: "",
|
||||||
// toolsIndex: 0
|
handTrue: false,
|
||||||
|
// Measure: {
|
||||||
|
// card_list: [],
|
||||||
|
// top_list: []
|
||||||
|
// },
|
||||||
|
opts: {
|
||||||
|
padding: [5, 0, 0, 0],
|
||||||
|
dataLabel: false,
|
||||||
|
enableScroll: false,
|
||||||
|
xAxis: {
|
||||||
|
disabled: true,
|
||||||
|
axisLine: false,
|
||||||
|
disableGrid: true,
|
||||||
|
itemCount: 5
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
gridType: "dash",
|
||||||
|
dashLength: 2,
|
||||||
|
disabled: true,
|
||||||
|
axisLine: false,
|
||||||
|
disableGrid: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
food,
|
record,
|
||||||
bodypage,
|
|
||||||
card,
|
|
||||||
drawer,
|
drawer,
|
||||||
|
qiunDataCharts
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["user", "familayList", 'isBluetoothTyle', "isConnected", "configInfo", "bleValue",
|
...mapState(["user", "familayList", 'isBluetoothTyle', "isConnected", "configInfo", "bleValue",
|
||||||
"homeCardIndex"]),
|
"MeasureResult"
|
||||||
|
]),
|
||||||
info() {
|
info() {
|
||||||
return this.user
|
return this.user
|
||||||
},
|
},
|
||||||
|
|
@ -93,8 +157,13 @@
|
||||||
bleTipsText() {
|
bleTipsText() {
|
||||||
return this.bleValue.bleTipsText
|
return this.bleValue.bleTipsText
|
||||||
},
|
},
|
||||||
toolsIndex() {
|
Measure() {
|
||||||
return this.homeCardIndex
|
let that = this
|
||||||
|
that.handTrue = false
|
||||||
|
that.$nextTick(() => {
|
||||||
|
that.handTrue = true
|
||||||
|
})
|
||||||
|
return this.MeasureResult
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
@ -121,7 +190,6 @@
|
||||||
onShow() {
|
onShow() {
|
||||||
let that = this
|
let that = this
|
||||||
that.token = uni.getStorageSync('token')
|
that.token = uni.getStorageSync('token')
|
||||||
console.log("token",that.token)
|
|
||||||
uni.onBluetoothAdapterStateChange(function(res) {
|
uni.onBluetoothAdapterStateChange(function(res) {
|
||||||
that.$store.commit("changeBluetooth", res.available);
|
that.$store.commit("changeBluetooth", res.available);
|
||||||
})
|
})
|
||||||
|
|
@ -145,12 +213,6 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'bleValue.isFood'() {
|
|
||||||
let that = this
|
|
||||||
if (that.bleValue.isFood) {
|
|
||||||
that.$store.commit("changehomeCard", 1);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
|
@ -185,14 +247,36 @@
|
||||||
that.$tools("登录后查看更多")
|
that.$tools("登录后查看更多")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleToolsIndex(ind) {
|
|
||||||
this.$store.commit("changehomeCard", ind);
|
|
||||||
},
|
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: "/body/login/login"
|
url: "/body/login/login"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 详情
|
||||||
|
handleTools(name) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/body/home/body?to=" + name
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 深度
|
||||||
|
handReport() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/body/report/report"
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 趋势
|
||||||
|
handelCurveDetailed() {
|
||||||
|
let that = this
|
||||||
|
setTimeout(function() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: "/body/curve/curve"
|
||||||
|
})
|
||||||
|
}, 200)
|
||||||
|
},
|
||||||
|
// 手动
|
||||||
|
handlerRecord() {
|
||||||
|
this.$store.commit('changeRecord', true)
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -202,6 +286,104 @@
|
||||||
background: #ffc800 !important;
|
background: #ffc800 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.body {
|
||||||
|
background: #f7f7f7;
|
||||||
|
|
||||||
|
|
||||||
|
.info {
|
||||||
|
margin: 15px 10px;
|
||||||
|
padding: 10px;
|
||||||
|
height: auto;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 10px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weight {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
margin-top: 10px;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.left {
|
||||||
|
width: 40%;
|
||||||
|
height: 60px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.target {
|
||||||
|
color: #999;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.charts {
|
||||||
|
width: 50%;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.function {
|
||||||
|
display: flex;
|
||||||
|
margin: 0 5px;
|
||||||
|
width: calc(100% - 10px);
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
view {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tools {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: 0 0 10px;
|
||||||
|
padding-left: 3%;
|
||||||
|
width: 97%;
|
||||||
|
background: #f7f7f7;
|
||||||
|
box-shadow: none;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 40%;
|
||||||
|
background: #fff;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px 3%;
|
||||||
|
margin-right: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.number {
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 15px 0;
|
padding: 15px 0;
|
||||||
|
|
|
||||||
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
|
||||||
BIN
static/add.png
|
Before Width: | Height: | Size: 9.7 KiB |
BIN
static/shou.png
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 6.5 KiB |
BIN
static/shou2.png
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 5.4 KiB |
BIN
static/wo2.png
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
|
@ -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: [],
|
||||||
|
|
@ -76,27 +77,7 @@ export default new Vuex.Store({
|
||||||
nickname: "",
|
nickname: "",
|
||||||
},
|
},
|
||||||
MeasureResult: {
|
MeasureResult: {
|
||||||
body_type_name: "",
|
card_list: [],
|
||||||
body_type_unit: "",
|
|
||||||
body_type_value: "",
|
|
||||||
bottom_list: [],
|
|
||||||
cplist: {
|
|
||||||
moodlist: [],
|
|
||||||
nutritionlist: [],
|
|
||||||
sleeplist: [],
|
|
||||||
sportlist: []
|
|
||||||
},
|
|
||||||
literature: [],
|
|
||||||
record_time: "",
|
|
||||||
score_name: "",
|
|
||||||
score_unit: "",
|
|
||||||
score_value: "",
|
|
||||||
target_current: {
|
|
||||||
target_weight: 0,
|
|
||||||
initial_weight: "",
|
|
||||||
cumulative_weight: "",
|
|
||||||
cumulative_day: ""
|
|
||||||
},
|
|
||||||
top_list: []
|
top_list: []
|
||||||
},
|
},
|
||||||
phoneInfo: {
|
phoneInfo: {
|
||||||
|
|
@ -122,6 +103,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 +209,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'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
require('./common/runtime.js')
|
||||||
|
require('./common/vendor.js')
|
||||||
|
require('./common/main.js')
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
"pages": [
|
||||||
|
"pages/home/home",
|
||||||
|
"pages/skiping/skip",
|
||||||
|
"pages/skiping/charts",
|
||||||
|
"pages/lunging/vitalcapacity",
|
||||||
|
"pages/lunging/charts",
|
||||||
|
"pages/my/me",
|
||||||
|
"pages/score/score",
|
||||||
|
"pages/PublicCards/PublicCards",
|
||||||
|
"pages/body/body",
|
||||||
|
"pages/zixun/list"
|
||||||
|
],
|
||||||
|
"subPackages": [
|
||||||
|
{
|
||||||
|
"root": "pageTwo",
|
||||||
|
"pages": [
|
||||||
|
"history/history",
|
||||||
|
"history/historyDetail",
|
||||||
|
"compk/contrast",
|
||||||
|
"compk/pkdetail",
|
||||||
|
"cardList/card",
|
||||||
|
"business/business",
|
||||||
|
"business/addDevice",
|
||||||
|
"business/search",
|
||||||
|
"score/history",
|
||||||
|
"score/report",
|
||||||
|
"my/manage",
|
||||||
|
"message/list",
|
||||||
|
"my/userInfo",
|
||||||
|
"login/forgetPassword",
|
||||||
|
"login/login",
|
||||||
|
"my/about",
|
||||||
|
"setting/setting",
|
||||||
|
"setting/password",
|
||||||
|
"setting/email",
|
||||||
|
"setting/phone",
|
||||||
|
"devices/search",
|
||||||
|
"devices/G02",
|
||||||
|
"devices/PCL",
|
||||||
|
"devices/PCV02",
|
||||||
|
"devices/PCT01",
|
||||||
|
"devices/B20",
|
||||||
|
"notepad/notepad",
|
||||||
|
"notepad/addNotepad",
|
||||||
|
"PublicCards/charts",
|
||||||
|
"PublicCards/history",
|
||||||
|
"PublicCards/contrast",
|
||||||
|
"PublicCards/pkdetail",
|
||||||
|
"home/inheritHeighet",
|
||||||
|
"home/bmi",
|
||||||
|
"webview/webview"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"window": {
|
||||||
|
"navigationBarTextStyle": "white",
|
||||||
|
"navigationBarTitleText": "",
|
||||||
|
"navigationBarBackgroundColor": "#37cc92",
|
||||||
|
"backgroundColor": "#fff"
|
||||||
|
},
|
||||||
|
"tabBar": {
|
||||||
|
"color": "#333",
|
||||||
|
"fontSize": "14px",
|
||||||
|
"selectedColor": "#37cc92",
|
||||||
|
"backgroundColor": "#fff",
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"pagePath": "pages/home/home",
|
||||||
|
"iconPath": "static/shou.png",
|
||||||
|
"selectedIconPath": "static/shou2.png",
|
||||||
|
"text": "记录"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/zixun/list",
|
||||||
|
"iconPath": "static/ping.png",
|
||||||
|
"selectedIconPath": "static/ping2.png",
|
||||||
|
"text": "资讯"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/my/me",
|
||||||
|
"iconPath": "static/wo.png",
|
||||||
|
"selectedIconPath": "static/wo2.png",
|
||||||
|
"text": "我的"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"usingComponents": {}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
@import './common/main.wxss';
|
||||||
|
|
||||||
|
[data-custom-hidden="true"],[bind-data-custom-hidden="true"]{display: none !important;}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["common/main"],{"0326":function(t,e,o){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o={data:function(){return{}},onLaunch:function(){this.handleCityList(),this.handleCooperationUrl(),this.updataWeiXin(),console.log("App Launch")},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")},methods:{checkForUpdates:function(){var e=this;plus.runtime.getProperty(plus.runtime.appid,(function(o){t.setStorageSync("VERSION",o.version),e.$store.commit("changePhoneInfo",{info:o}),console.log("当前应用版本号",o),e.handleCityList(),e.handleCooperationUrl(),e.handleoginversion(o)}))},handleoginversion:function(t){var e=this;e.$model.getloginversion({}).then((function(t){console.log("是否登录及版本号",t),e.handleCancelUpdate(t.code)}))},handleCancelUpdate:function(e){0==e?t.reLaunch({url:"/pages/home/home?type=1"}):setTimeout((function(){t.reLaunch({url:"/pageTwo/login/login"})}),500)},handleCityList:function(){var t=this;t.$model.getGradeList({}).then((function(e){console.log("|全部地区",e.data),0==e.code&&(t.$store.commit("changeCityList",e.data.area_list),t.$store.commit("changeGradeList",e.data.grade_list),t.$store.commit("changeIdentityList",e.data.identity_list))}))},handleCooperationUrl:function(){var t=this;this.$model.getCooperationUrl({}).then((function(e){console.log("合作服务",e.data),0==e.code&&t.$store.commit("changeCooperationUrl",e.data)}))},updataWeiXin:function(){var e=t.getUpdateManager();e.onCheckForUpdate((function(t){console.log("是否有新版本",t.hasUpdate)})),e.onUpdateReady((function(){t.showModal({title:"更新提示",content:"新版本已经准备好,是否重启应用?",success:function(t){t.confirm&&e.applyUpdate()}})})),e.onUpdateFailed((function(){t.showModal({title:"新版本更新失败",content:"请退出并移除小程序,重新打开..."})}))}}};e.default=o}).call(this,o("df3c")["default"])},"25df":function(t,e,o){},"266f":function(t,e,o){"use strict";o.r(e);var n=o("0326"),a=o.n(n);for(var i in n)["default"].indexOf(i)<0&&function(t){o.d(e,t,(function(){return n[t]}))}(i);e["default"]=a.a},"467f":function(t,e,o){"use strict";o.r(e);var n=o("266f");for(var a in n)["default"].indexOf(a)<0&&function(t){o.d(e,t,(function(){return n[t]}))}(a);o("dad9");var i=o("828b"),r=Object(i["a"])(n["default"],void 0,void 0,!1,null,null,null,!1,void 0,void 0);e["default"]=r.exports},7580:function(t,e,o){"use strict";(function(t,e,n){var a=o("47a9"),i=a(o("7ca3"));o("30b7");var r=a(o("467f")),c=a(o("1160")),l=a(o("7d8e")),d=a(o("8d27")),u=a(o("b788")),f=a(o("455e")),s=a(o("a3d2")),p=a(o("b664")),h=a(o("3240")),g=a(o("4d79"));function m(t,e){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.push.apply(o,n)}return o}t.__webpack_require_UNI_MP_PLUGIN__=o,h.default.prototype.$store=c.default,h.default.prototype.$tools=l.default,h.default.prototype.$Bluetooth=d.default,h.default.prototype.$http=u.default,h.default.prototype.$model=f.default,h.default.prototype.$video=p.default;var v={locale:e.getLocale(),messages:s.default};h.default.use(g.default);var y=new g.default(v);h.default.config.productionTip=!1,r.default.mpType="app";var b=new h.default(function(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?m(Object(o),!0).forEach((function(e){(0,i.default)(t,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):m(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}))}return t}({i18n:y},r.default));n(b).$mount()}).call(this,o("3223")["default"],o("df3c")["default"],o("df3c")["createApp"])},dad9:function(t,e,o){"use strict";var n=o("25df"),a=o.n(n);a.a}},[["7580","common/runtime","common/vendor"]]]);
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["element/drawer"],{"2d56":function(t,e,n){"use strict";n.d(e,"b",(function(){return r})),n.d(e,"c",(function(){return i})),n.d(e,"a",(function(){}));var r=function(){var t=this,e=t.$createElement,n=(t._self._c,t.isDrawe?t.__map(t.List,(function(e,n){var r=t.__get_orig(e),i=t.List.length;return{$orig:r,g0:i}})):null);t.$mp.data=Object.assign({},{$root:{l0:n}})},i=[]},"55f0":function(t,e,n){"use strict";var r=n("90e3"),i=n.n(r);i.a},"634b":function(t,e,n){"use strict";n.r(e);var r=n("2d56"),i=n("8fbb");for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);n("55f0");var c=n("828b"),a=Object(c["a"])(i["default"],r["b"],r["c"],!1,null,"36e4bf37",null,!1,r["a"],void 0);e["default"]=a.exports},"8fbb":function(t,e,n){"use strict";n.r(e);var r=n("f6dd"),i=n.n(r);for(var o in r)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return r[t]}))}(o);e["default"]=i.a},"90e3":function(t,e,n){},f6dd:function(t,e,n){"use strict";(function(t){var r=n("47a9");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=r(n("7ca3")),o=n("8f59");function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?c(Object(n),!0).forEach((function(e){(0,i.default)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var u={data:function(){return{}},computed:a(a({},(0,o.mapState)(["user","familayList","isDrawe"])),{},{userinfo:function(){return this.user},List:function(){return this.familayList}}),methods:{toggle:function(e){t.setStorageSync("userid",e.id),t.setStorageSync("gender",e.gender),this.$store.dispatch("getUserInfo",{aud_id:e.id}),this.$store.dispatch("getResult",{aud_id:e.id}),this.$store.commit("changeDrawe",!1),this.handlePublicRecord(e.id)},handlePublicRecord:function(t){var e=this;e.$model.getPublicRecord({aud_id:t}).then((function(t){console.log("公共手动记录",t),0==t.code&&e.$store.commit("changePublicRecord",t.data)}))},addInfo:function(){t.navigateTo({url:"/pageTwo/my/userInfo"}),this.$store.commit("changeDrawe",!1)},clear:function(){this.$store.commit("changeDrawe",!1)}}};e.default=u}).call(this,n("df3c")["default"])}}]);
|
||||||
|
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
|
||||||
|
'element/drawer-create-component',
|
||||||
|
{
|
||||||
|
'element/drawer-create-component':(function(module, exports, __webpack_require__){
|
||||||
|
__webpack_require__('df3c')['createComponent'](__webpack_require__("634b"))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
[['element/drawer-create-component']]
|
||||||
|
]);
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {},
|
||||||
|
"component": true
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<block wx:if="{{isDrawe}}"><view class="wrapper data-v-36e4bf37"><view data-event-opts="{{[['tap',[['clear',['$event']]]]]}}" class="bg data-v-36e4bf37" bindtap="__e"></view><view class="wrapper_box data-v-36e4bf37"><view class="top data-v-36e4bf37"><block wx:if="{{userinfo.head_pic}}"><image class="headimage mt-10 data-v-36e4bf37" src="{{userinfo.head_pic}}"></image></block><view class="overflow data-v-36e4bf37">{{userinfo.nickname}}</view></view><view class="drawerList data-v-36e4bf37"><block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="index" wx:key="index"><block wx:if="{{item.g0}}"><view data-event-opts="{{[['tap',[['toggle',['$0'],[[['List','',index]]]]]]]}}" class="drawerList_item data-v-36e4bf37" bindtap="__e"><block wx:if="{{item.$orig.head_pic}}"><image class="image1 data-v-36e4bf37" src="{{item.$orig.head_pic}}"></image></block><view class="right data-v-36e4bf37"><view class="name data-v-36e4bf37"><view class="overflow data-v-36e4bf37">{{''+item.$orig.nickname+''}}</view><block wx:if="{{item.$orig.id==userinfo.id}}"><view class="dangqian data-v-36e4bf37">当前</view></block></view><view class="info data-v-36e4bf37"><view class="data-v-36e4bf37">{{item.$orig.gender==1?'男':'女'}}</view><view class="data-v-36e4bf37">{{item.$orig.age+"岁"}}</view></view></view></view></block></block><view data-event-opts="{{[['tap',[['addInfo']]]]}}" class="add data-v-36e4bf37" bindtap="__e">+</view></view></view></view></block>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
.wrapper.data-v-36e4bf37{position:fixed;left:0;right:0;top:0;bottom:0;z-index:999}.wrapper .bg.data-v-36e4bf37{position:fixed;left:0;right:0;top:0;bottom:0;background-color:rgba(0,0,0,.4);z-index:99}.headimage.data-v-36e4bf37{width:50px;height:50px;margin:auto;border-radius:50%;margin-bottom:16rpx}.dangqian.data-v-36e4bf37{font-size:24rpx!important}@-webkit-keyframes wrapper_box-data-v-36e4bf37{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes wrapper_box-data-v-36e4bf37{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["element/headerIndex"],{"2f21":function(e,t,i){"use strict";(function(e){var n=i("47a9");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(i("7ca3")),s=i("8f59");function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function u(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?o(Object(i),!0).forEach((function(t){(0,r.default)(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):o(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var c={name:"headerIndex",components:{drawer:function(){i.e("element/drawer").then(function(){return resolve(i("634b"))}.bind(null,i)).catch(i.oe)}},data:function(){return{value:[2,0],visible:!1,region:"",province:[],city:[],area:[],indicatorStyle:"height: 45px;"}},computed:u(u({},(0,s.mapState)(["user","familayList","cityList"])),{},{info:function(){return this.user},userList:function(){return this.familayList},userAddress:function(){return this.user.address}}),props:{isArea:{type:Boolean,default:!0},isLeft:{type:Boolean,default:!0}},mounted:function(){var e=this;setTimeout((function(){e.isArea&&e.handleCityList()}),1e3)},watch:{userAddress:function(){this.region=this.user.address,this.handleCityList(),this.$emit("getAciveCity",this.region)}},methods:{bindChange:function(e){e.detail.value[0]!=this.value[0]&&(e.detail.value[1]=0),this.value=e.detail.value,this.city=this.province[this.value[0]].list},handlesure:function(){var e=[this.province[this.value[0]].name,this.city[this.value[1]]];this.region=e.join(","),this.visible=!1,this.$emit("getAciveCity",this.region)},handleAddUser:function(t){var i=this;if(e.getStorageSync("token")){var n=i.userList.findIndex((function(e){return e.id==i.info.id}));e.navigateTo({url:1==t?"/pageTwo/my/userInfo?info="+JSON.stringify(i.userList[n]):"/pageTwo/my/userInfo"})}else console.log("headerIndex跳转登录页面"),e.reLaunch({url:"/pageTwo/login/login"})},handleCityList:function(){if(this.cityList.length)if(""!=this.user.address){this.province=this.cityList;var e=this.user.address.split(",")[0],t=this.province.findIndex((function(t){return t.name==e}));this.value[0]=t,console.log("地区",e,t),this.city=this.province[t].list}else this.value=[2,0],this.city=this.cityList[2].list}}};t.default=c}).call(this,i("df3c")["default"])},"36d8":function(e,t,i){},"6ab6":function(e,t,i){"use strict";i.r(t);var n=i("2f21"),r=i.n(n);for(var s in n)["default"].indexOf(s)<0&&function(e){i.d(t,e,(function(){return n[e]}))}(s);t["default"]=r.a},8596:function(e,t,i){"use strict";i.d(t,"b",(function(){return r})),i.d(t,"c",(function(){return s})),i.d(t,"a",(function(){return n}));var n={uniIcons:function(){return Promise.all([i.e("common/vendor"),i.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(i.bind(null,"bbd6"))}},r=function(){var e=this,t=e.$createElement,i=(e._self._c,e.userList.length);e._isMounted||(e.e0=function(t){return e.$store.commit("changeDrawe",!0)},e.e1=function(t){e.visible=!0},e.e2=function(t){e.visible=!1},e.e3=function(t){e.visible=!1}),e.$mp.data=Object.assign({},{$root:{g0:i}})},s=[]},c5cc:function(e,t,i){"use strict";i.r(t);var n=i("8596"),r=i("6ab6");for(var s in r)["default"].indexOf(s)<0&&function(e){i.d(t,e,(function(){return r[e]}))}(s);i("e8c6");var o=i("828b"),u=Object(o["a"])(r["default"],n["b"],n["c"],!1,null,"5b996001",null,!1,n["a"],void 0);t["default"]=u.exports},e8c6:function(e,t,i){"use strict";var n=i("36d8"),r=i.n(n);r.a}}]);
|
||||||
|
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
|
||||||
|
'element/headerIndex-create-component',
|
||||||
|
{
|
||||||
|
'element/headerIndex-create-component':(function(module, exports, __webpack_require__){
|
||||||
|
__webpack_require__('df3c')['createComponent'](__webpack_require__("c5cc"))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
[['element/headerIndex-create-component']]
|
||||||
|
]);
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"component": true,
|
||||||
|
"usingComponents": {
|
||||||
|
"uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons",
|
||||||
|
"drawer": "/element/drawer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<view class="data-v-5b996001"><view class="header data-v-5b996001"><block wx:if="{{$root.g0}}"><view class="top data-v-5b996001"><view data-event-opts="{{[['tap',[['handleAddUser',[1]]]]]}}" class="headimg data-v-5b996001" bindtap="__e"><image src="{{info.head_pic}}" class="data-v-5b996001"></image></view><view data-event-opts="{{[['tap',[['handleAddUser',[1]]]]]}}" class="info data-v-5b996001" bindtap="__e"><view class="size18 bold data-v-5b996001">{{info.nickname}}</view><view class="mt-5 data-v-5b996001"><text class="mr-10 data-v-5b996001">{{"性别:"+(info.gender==1?'男':info.gender==2?'女':'未知')}}</text><text class="ml-10 data-v-5b996001">{{"年龄:"+info.age+"岁"}}</text></view><block wx:if="{{info.measure_model==1}}"><view class="mt-5 data-v-5b996001">{{"当前地区:"+info.address}}</view></block></view><block wx:if="{{isLeft}}"><text data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" class="t-icon t-icon-qiehuan1 data-v-5b996001" bindtap="__e"></text></block></view></block><block wx:else><view data-event-opts="{{[['tap',[['handleAddUser',[2]]]]]}}" class="top data-v-5b996001" bindtap="__e"><view class="info data-v-5b996001">暂无成员,请先添加~</view><view class="add data-v-5b996001">+</view></view></block></view><view class="cityList data-v-5b996001"><block wx:if="{{isArea}}"><view data-event-opts="{{[['tap',[['e1',['$event']]]]]}}" class="area data-v-5b996001" bindtap="__e"><view class="data-v-5b996001">中招地区标准:</view><view class="data-v-5b996001">{{region?region:info.address}}<uni-icons vue-id="f56e3a1c-1" type="bottom" class="data-v-5b996001" bind:__l="__l"></uni-icons></view></view></block><block wx:if="{{visible}}"><view data-event-opts="{{[['tap',[['e2',['$event']]]]]}}" class="visible data-v-5b996001" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="item data-v-5b996001" catchtap="__e"><view class="groupBtn data-v-5b996001"><view data-event-opts="{{[['tap',[['e3',['$event']]]]]}}" bindtap="__e" class="data-v-5b996001">取消</view><view data-event-opts="{{[['tap',[['handlesure']]]]}}" class="sure data-v-5b996001" bindtap="__e">确定</view></view><picker-view class="picker-view data-v-5b996001" value="{{value}}" indicator-style="{{indicatorStyle}}" data-event-opts="{{[['change',[['bindChange',['$event']]]]]}}" bindchange="__e"><picker-view-column class="data-v-5b996001"><block wx:for="{{province}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-5b996001">{{item.name}}</view></block></picker-view-column><picker-view-column class="data-v-5b996001"><block wx:for="{{city}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-5b996001">{{item}}</view></block></picker-view-column></picker-view></view></view></block></view><drawer vue-id="f56e3a1c-2" class="data-v-5b996001" bind:__l="__l"></drawer></view>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
.info.data-v-5b996001{display:flex;flex-wrap:wrap;margin-left:15px;width:calc(100% - 70px)}.info view.data-v-5b996001{width:100%}.info last-child.data-v-5b996001{margin-top:2px!important}.area.data-v-5b996001{margin:15px 10px 0;padding:15px 10px 10px;background-color:#fff;width:calc(100% - 40px);display:flex;border-radius:10px;justify-content:space-between;box-shadow:0 1px 5px 2px rgba(223,226,225,.9882352941176471)}.item.data-v-5b996001{line-height:80rpx;text-align:center}.visible.data-v-5b996001{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background-color:rgba(0,0,0,.6)}.visible .groupBtn.data-v-5b996001{height:50px;line-height:50px;background-color:#fff;display:flex;justify-content:space-between;padding:0 15px;border-bottom:1px solid #dfdfdf;position:absolute;left:0;right:0;bottom:45%;z-index:999}.visible .groupBtn view.data-v-5b996001{height:30px;line-height:30px;padding:0 10px;background-color:#dfdfdf;border-radius:5px;margin-top:10px}.visible .groupBtn .sure.data-v-5b996001{background-color:#37cc92;color:#fff!important}.visible .picker-view.data-v-5b996001{width:100%;height:45%;bottom:0;position:absolute;background-color:#fff}.t-icon-qiehuan1.data-v-5b996001{width:25px;height:25px}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["element/manuallyAdd/publicAdd"],{"08f5":function(t,e,i){"use strict";i.d(e,"b",(function(){return s})),i.d(e,"c",(function(){return r})),i.d(e,"a",(function(){return n}));var n={uniIcons:function(){return Promise.all([i.e("common/vendor"),i.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(i.bind(null,"bbd6"))}},s=function(){var t=this.$createElement,e=(this._self._c,this.isPublicRecord?this.info&&this.info.list.length&&this.listType:null);this.$mp.data=Object.assign({},{$root:{g0:e}})},r=[]},4308:function(t,e,i){"use strict";i.r(e);var n=i("8fd0"),s=i.n(n);for(var r in n)["default"].indexOf(r)<0&&function(t){i.d(e,t,(function(){return n[t]}))}(r);e["default"]=s.a},"8fd0":function(t,e,i){"use strict";(function(t){var n=i("47a9");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s,r,u=n(i("7ca3")),o=i("8f59");function a(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function c(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?a(Object(i),!0).forEach((function(e){(0,u.default)(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}var l=(r={data:function(){return{name:"",regTime:"",number:"",timeList:[],time_m:"",time_s:"",fields:"",listType:null,describe:"",unit:"",timesTndex:[1,0],lableTndex:0,labelName:""}},props:{rtype:null,active:{type:Number,default:0}},computed:c(c({},(0,o.mapState)(["PublicRecord","isPublicRecord"])),{},{info:function(){var t=this,e={height:!1,weight:!1,number:!1,time:!1,list:[]};return t.PublicRecord.length&&(t.PublicRecord.forEach((function(i){i.id==t.rtype&&(e=i)})),e&&e.list.length&&(t.labelName=e.list[t.active].name,t.listType=e.list[t.active].type,t.describe=e.list[t.active].describe,t.unit=e.list[t.active].unit)),t.PublicRecord.length?e:null},endDate:function(){return this.$tools.getDate("start")},startDate:function(){return this.$tools.GetDateStr(-90)}}),mounted:function(){}},(0,u.default)(r,"mounted",(function(){this.timeList=this.$tools.gethms(),this.fields="day"})),(0,u.default)(r,"methods",(s={bindTimeChange:function(t){var e=t.target.value[0],i=t.target.value[1];Number(this.timeList[0][e].substring(0,2)),Number(this.timeList[1][i].substring(0,2));this.timesTndex=t.target.value,this.time_m=this.timeList[0][e].substring(0,2),this.time_s=this.timeList[1][i].substring(0,2),console.log("时长",this.time_m,this.time_s)},handleTarget:function(){var e=this;if(e.regTime)if(4!=e.listType||e.time_m&&e.time_s)if(4==e.listType||e.number){var i=e.time_m+":"+e.time_s;e.$model.getpublicmeasure({acd_id:e.rtype,name:e.labelName,record_time:e.regTime,data:4==e.listType?i:e.number,aud_id:t.getStorageSync("userid")}).then((function(i){0==i.code&&(e.$tools.msg(i.msg),e.$store.commit("changeRecord",!1),e.$store.dispatch("getUserInfo",{aud_id:t.getStorageSync("userid")}),e.$store.dispatch("getPublicContent",{acd_id:e.rtype,aud_id:t.getStorageSync("userid")}),e.onTap())}))}else{var n=1==e.listType?"请输入个数":"请输入时长";e.$tools.msg(n)}else e.$tools.msg("请输入时长");else e.$tools.msg("请选择日期")}},(0,u.default)(s,"bindTimeChange",(function(t){var e=t.target.value[0],i=t.target.value[1];this.timesTndex=t.target.value;Number(this.timeList[0][e].substring(0,2)),Number(this.timeList[1][i].substring(0,2));this.time_m=this.timeList[0][e].substring(0,2),this.time_s=this.timeList[1][i].substring(0,2)})),(0,u.default)(s,"changeLog",(function(t){this.regTime=t.detail.value})),(0,u.default)(s,"onTap",(function(){this.regTime="",this.$store.commit("changePublicAdd",!1)})),s)),r);e.default=l}).call(this,i("df3c")["default"])},"9b53":function(t,e,i){"use strict";i.r(e);var n=i("08f5"),s=i("4308");for(var r in s)["default"].indexOf(r)<0&&function(t){i.d(e,t,(function(){return s[t]}))}(r);i("e4c1");var u=i("828b"),o=Object(u["a"])(s["default"],n["b"],n["c"],!1,null,"fccf681c",null,!1,n["a"],void 0);e["default"]=o.exports},dc56:function(t,e,i){},e4c1:function(t,e,i){"use strict";var n=i("dc56"),s=i.n(n);s.a}}]);
|
||||||
|
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
|
||||||
|
'element/manuallyAdd/publicAdd-create-component',
|
||||||
|
{
|
||||||
|
'element/manuallyAdd/publicAdd-create-component':(function(module, exports, __webpack_require__){
|
||||||
|
__webpack_require__('df3c')['createComponent'](__webpack_require__("9b53"))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
[['element/manuallyAdd/publicAdd-create-component']]
|
||||||
|
]);
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {
|
||||||
|
"uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
|
||||||
|
},
|
||||||
|
"component": true
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<block wx:if="{{isPublicRecord}}"><view class="wrapper data-v-fccf681c"><view data-event-opts="{{[['tap',[['onTap',['$event']]]]]}}" class="bg data-v-fccf681c" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="edit data-v-fccf681c" catchtap="__e"><view class="title data-v-fccf681c">手动记录</view><view class="editem data-v-fccf681c"><view class="left data-v-fccf681c">项目</view><view class="right data-v-fccf681c">{{''+labelName+''}}</view></view><view class="editem data-v-fccf681c"><view class="left data-v-fccf681c">日期</view><view class="right data-v-fccf681c"><picker mode="date" end="{{endDate}}" fields="{{fields}}" data-event-opts="{{[['change',[['changeLog',['$event']]]]]}}" bindchange="__e" class="data-v-fccf681c"><view class="uni-input data-v-fccf681c">{{regTime?regTime:'请选择'}}</view><icon class="iconfont icon-arrow-down-bold data-v-fccf681c"></icon></picker></view></view><block wx:if="{{$root.g0}}"><view class="editem data-v-fccf681c"><view class="name data-v-fccf681c">{{describe}}</view><block wx:if="{{listType==4}}"><view class="right data-v-fccf681c"><picker mode="multiSelector" range="{{timeList}}" value="{{timesTndex}}" data-event-opts="{{[['change',[['bindTimeChange',['$event']]]]]}}" bindchange="__e" class="data-v-fccf681c"><view class="size16 data-v-fccf681c">{{(time_m?time_m+':':'请选择')+(time_s?time_s:'')}}</view></picker><uni-icons class="ml-10 c666 data-v-fccf681c" vue-id="7b9f44c0-1" type="bottom" bind:__l="__l"></uni-icons></view></block><block wx:if="{{listType!=4}}"><view class="right data-v-fccf681c"><input type="{{listType==1?'number':'digit'}}" placeholder="请输入" data-event-opts="{{[['input',[['__set_model',['','number','$event',[]]]]]]}}" value="{{number}}" bindinput="__e" class="data-v-fccf681c"/>{{''+unit+''}}</view></block></view></block><block wx:if="{{info&&info.time}}"><view class="editem data-v-fccf681c"><view class="name data-v-fccf681c">时长</view><view class="right data-v-fccf681c"><picker mode="multiSelector" range="{{timeList}}" value="{{timesTndex}}" data-event-opts="{{[['change',[['bindTimeChange',['$event']]]]]}}" bindchange="__e" class="data-v-fccf681c"><view class="size16 data-v-fccf681c">{{(time_m?time_m+':':'请选择')+(time_s?time_s:'')}}</view></picker><uni-icons class="ml-15 c666 data-v-fccf681c" vue-id="7b9f44c0-2" type="bottom" bind:__l="__l"></uni-icons></view></view></block><block wx:if="{{info&&info.number}}"><view class="editem data-v-fccf681c"><view class="name data-v-fccf681c">个数</view><view class="right data-v-fccf681c"><input type="number" placeholder="请输入" data-event-opts="{{[['input',[['__set_model',['','number','$event',[]]]]]]}}" value="{{number}}" bindinput="__e" class="data-v-fccf681c"/>个</view></view></block><view data-event-opts="{{[['tap',[['onTap']]]]}}" class="btn close data-v-fccf681c" bindtap="__e">取消</view><view data-event-opts="{{[['tap',[['handleTarget',['$event']]]]]}}" class="btn data-v-fccf681c" bindtap="__e">确定</view></view></view></view></block>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
.btn.data-v-fccf681c{width:40%;float:right;margin-top:15px;background:#37cc92!important}.edit.data-v-fccf681c{top:20%}.close.data-v-fccf681c{background:#fff!important;float:left;color:#333}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {
|
||||||
|
"uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
|
||||||
|
},
|
||||||
|
"component": true
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
.btn.data-v-345408ac{width:40%;float:right;margin-top:15px;background:#37cc92!important}.close.data-v-345408ac{background:#dfdfdf!important;float:left}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["element/ren-calendar/ren-calendar"],{a185:function(t,e,n){"use strict";n.r(e);var a=n("d481"),o=n("fbdc");for(var i in o)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return o[t]}))}(i);n("c0df");var r=n("828b"),s=Object(r["a"])(o["default"],a["b"],a["c"],!1,null,"090734d8",null,!1,a["a"],void 0);e["default"]=s.exports},a8fa:function(t,e,n){},c0df:function(t,e,n){"use strict";var a=n("a8fa"),o=n.n(a);o.a},cf37:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a={name:"ren-calendar",props:{weekstart:{type:Number,default:0},markDays:{type:Array,default:function(){return[]}},headerBar:{type:Boolean,default:!0},open:{type:Boolean,default:!0},collapsible:{type:Boolean,default:!0},disabledAfter:{type:Boolean,default:!0}},data:function(){return{weektext:["日","一","二","三","四","五","六"],y:(new Date).getFullYear(),m:(new Date).getMonth()+1,dates:[],positionTop:0,monthOpen:!0,choose:"",month:null}},created:function(){this.dates=this.monthDay(this.y,this.m),!this.open&&this.toggle()},mounted:function(){this.y=(new Date).getFullYear(),this.m=(new Date).getMonth()+1,this.month=this.$tools.getDate("m"),this.choose=this.getToday().date},computed:{weekDay:function(){return this.weektext.slice(this.weekstart).concat(this.weektext.slice(0,this.weekstart))},height:function(){return this.dates.length/7*80+"rpx"}},methods:{formatNum:function(t){var e=Number(t);return e<10?"0"+e:e},getToday:function(){var t=new Date,e=t.getFullYear(),n=t.getMonth(),a=t.getDate(),o=(new Date).getDay(),i="星期"+["日","一","二","三","四","五","六"][o],r={date:e+"-"+this.formatNum(n+1)+"-"+this.formatNum(a),week:i};return r},monthDay:function(t,e){var n=[],a=Number(e),o=new Date(t,a-1,1).getDay(),i=new Date(t,a,0).getDate(),r=new Date(t,a-1,0).getDate(),s=7==this.weekstart?0:this.weekstart,h=function(){return o==s?0:o>s?o-s:7-s+o}(),u=7-(h+i)%7;7==u&&(u=0);for(var c=1;c<=h;c++)n.push({date:this.formatNum(r-h+c),day:s+c-1||7,month:a-1>=0?this.formatNum(a-1):12,year:a-1>=0?t:t-1});for(var m=1;m<=i;m++)n.push({date:this.formatNum(m),day:m%7+o-1||7,month:this.formatNum(a),year:t,isCurM:!0});for(var f=1;f<=u;f++)n.push({date:this.formatNum(f),day:(i+h+s+f-1)%7||7,month:a+1<=11?this.formatNum(a+1):0,year:a+1<=11?t:t+1});return n},isWorkDay:function(t,e,n){var a="".concat(t,"/").concat(e,"/").concat(n),o=new Date(a.replace(/-/g,"/")),i=o.getDay();return 0!=i&&6!=i},isFutureDay:function(t,e,n){var a="".concat(t,"/").concat(e,"/").concat(n),o=new Date(a.replace(/-/g,"/")),i=o.getTime(),r=(new Date).getTime();return i>r},isMarkDay:function(t,e,n){for(var a=!1,o=0;o<this.markDays.length;o++){var i="".concat(t,"-").concat(e,"-").concat(n);if(this.markDays[o]==i){a=!0;break}}return a},isToday:function(t,e,n){var a=t+"-"+e+"-"+n,o=this.getToday().date;return a==o},toggle:function(){var t=this;if(this.monthOpen=!this.monthOpen,this.monthOpen)this.positionTop=0;else{var e=-1;this.dates.forEach((function(n,a){t.isToday(n.year,n.month,n.date)&&(e=a)})),this.positionTop=80*-((Math.ceil((e+1)/7)||1)-1)}},selectOne:function(t,e){var n="".concat(t.year,"-").concat(t.month,"-").concat(t.date),a=new Date(n).getTime(),o=(new Date).getTime(),i=new Date(n).getDay(),r="星期"+["日","一","二","三","四","五","六"][i],s={date:n,week:r};if(!t.isCurM)return!1;if(a>o){if(this.disabledAfter)return console.log("未来日期不可选"),!1;this.choose=n,this.$emit("onDayClick",s)}else this.choose=n,this.$emit("onDayClick",s);console.log(s)},changYearMonth:function(t,e){this.dates=this.monthDay(t,e),this.y=t,this.m=e},changeMonth:function(t){"pre"==t?(this.m+1==2?(this.m=12,this.y=this.y-1):this.m=this.m-1,this.month=this.$tools.getMonth(this.month,-1),this.$emit("onMonthClickPre",this.month)):(this.m+1==13?(this.m=1,this.y=this.y+1):this.m=this.m+1,this.month=this.$tools.getMonth(this.month,1),this.$emit("onMonthClickPre",this.month)),this.dates=this.monthDay(this.y,this.m)}}};e.default=a},d481:function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return i})),n.d(e,"a",(function(){return a}));var a={uniIcons:function(){return Promise.all([n.e("common/vendor"),n.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(n.bind(null,"bbd6"))}},o=function(){var t=this,e=t.$createElement,n=(t._self._c,t.formatNum(t.m)),a=t.__map(t.dates,(function(e,n){var a=t.__get_orig(e),o=t.isToday(e.year,e.month,e.date),i=t.isWorkDay(e.year,e.month,e.date),r=Number(e.date),s=t.isMarkDay(e.year,e.month,e.date)&&e.isCurM;return{$orig:a,m1:o,m2:i,m3:r,m4:s}}));t.$mp.data=Object.assign({},{$root:{m0:n,l0:a}})},i=[]},fbdc:function(t,e,n){"use strict";n.r(e);var a=n("cf37"),o=n.n(a);for(var i in a)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(i);e["default"]=o.a}}]);
|
||||||
|
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
|
||||||
|
'element/ren-calendar/ren-calendar-create-component',
|
||||||
|
{
|
||||||
|
'element/ren-calendar/ren-calendar-create-component':(function(module, exports, __webpack_require__){
|
||||||
|
__webpack_require__('df3c')['createComponent'](__webpack_require__("a185"))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
[['element/ren-calendar/ren-calendar-create-component']]
|
||||||
|
]);
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {
|
||||||
|
"uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
|
||||||
|
},
|
||||||
|
"component": true
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<view class="calendar-wrapper data-v-090734d8"><view class="header data-v-090734d8"><view data-event-opts="{{[['tap',[['changeMonth',['pre']]]]]}}" class="pre data-v-090734d8" bindtap="__e"><uni-icons vue-id="1c647ff0-1" type="back" size="26" class="data-v-090734d8" bind:__l="__l"></uni-icons></view><view class="data-v-090734d8">{{y+'年'+$root.m0+'月'}}</view><view data-event-opts="{{[['tap',[['changeMonth',['next']]]]]}}" class="next data-v-090734d8" bindtap="__e"><uni-icons vue-id="1c647ff0-2" type="forward" size="26" class="data-v-090734d8" bind:__l="__l"></uni-icons></view></view><view class="week data-v-090734d8"><block wx:for="{{weekDay}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="week-day data-v-090734d8">{{item}}</view></block></view><view class="{{['content0','data-v-090734d8',(!monthOpen)?'hide':'']}}" style="{{'height:'+(height)+';'}}"><view class="days data-v-090734d8" style="{{'top:'+(positionTop+'rpx')+';'}}"><block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-090734d8"><view data-event-opts="{{[['tap',[['selectOne',['$0','$event'],[[['dates','',index]]]]]]]}}" class="{{['day','data-v-090734d8',(choose==item.$orig.year+'-'+item.$orig.month+'-'+item.$orig.date&&item.$orig.isCurM)?'choose':'',(!item.$orig.isCurM)?'nolm':'',(item.m1)?'today':'',(item.m2)?'isWorkDay':'']}}" bindtap="__e">{{''+item.m3+''}}</view><block wx:if="{{item.m4}}"><view class="markDay data-v-090734d8"></view></block></view></block></view></view><block wx:if="{{collapsible}}"><image class="{{['weektoggle','data-v-090734d8',(monthOpen)?'down':'']}}" src="https://i.loli.net/2020/07/16/2MmZsucVTlRjSwK.png" mode="scaleToFill" data-event-opts="{{[['tap',[['toggle',['$event']]]]]}}" bindtap="__e"></image></block></view>
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
.calendar-wrapper.data-v-090734d8{color:#bbb7b7;border-radius:10px;font-size:32rpx;text-align:center;background-color:#fff;padding-bottom:10rpx}.calendar-wrapper .header.data-v-090734d8{display:flex;align-items:center;justify-content:center;height:88rpx;color:#42464a;font-size:36rpx;font-weight:700;justify-content:space-around}.calendar-wrapper .header .pre.data-v-090734d8,
|
||||||
|
.calendar-wrapper .header .next.data-v-090734d8{color:#fea606;font-size:32rpx}.calendar-wrapper .week.data-v-090734d8{display:flex;align-items:center;height:80rpx;line-height:80rpx;border-bottom:1rpx solid hsla(0,0%,100%,.2)}.calendar-wrapper .week view.data-v-090734d8{flex:1}.calendar-wrapper .content0.data-v-090734d8{position:relative;overflow:hidden;transition:height .4s ease}.calendar-wrapper .content0 .days.data-v-090734d8{transition:top .3s;display:flex;align-items:center;flex-wrap:wrap;position:relative}.calendar-wrapper .content0 .days .item.data-v-090734d8{position:relative;display:block;height:80rpx;line-height:80rpx;width:calc(100% / 7)}.calendar-wrapper .content0 .days .item .day.data-v-090734d8{font-style:normal;display:inline-block;vertical-align:middle;width:60rpx;height:60rpx;line-height:60rpx;overflow:hidden;border-radius:60rpx}.calendar-wrapper .content0 .days .item .day.choose.data-v-090734d8{background-color:#fea606;color:#fff}.calendar-wrapper .content0 .days .item .day.nolm.data-v-090734d8{color:#fff;opacity:.3}.calendar-wrapper .content0 .days .item .isWorkDay.data-v-090734d8{color:#42464a}.calendar-wrapper .content0 .days .item .notSigned.data-v-090734d8{font-style:normal;width:8rpx;height:8rpx;background:#fa7268;border-radius:10rpx;position:absolute;left:50%;bottom:0;pointer-events:none}.calendar-wrapper .content0 .days .item .today.data-v-090734d8{color:#fff;background-color:#a8c0ff}.calendar-wrapper .content0 .days .item .workDay.data-v-090734d8{font-style:normal;width:8rpx;height:8rpx;background:#4d7df9;border-radius:10rpx;position:absolute;left:50%;bottom:0;pointer-events:none}.calendar-wrapper .content0 .days .item .markDay.data-v-090734d8{font-style:normal;width:8rpx;height:8rpx;background:#fa7268;border-radius:10rpx;position:absolute;left:50%;bottom:0;pointer-events:none}.calendar-wrapper .hide.data-v-090734d8{height:80rpx!important}.calendar-wrapper .weektoggle.data-v-090734d8{width:85rpx;height:32rpx;position:relative;bottom:-42rpx}.calendar-wrapper .weektoggle.down.data-v-090734d8{-webkit-transform:rotate(180deg);transform:rotate(180deg);bottom:0}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["element/slider-fraction"],{"417f":function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"c",(function(){return i})),r.d(t,"a",(function(){}));var n=function(){var e=this.$createElement;this._self._c},i=[]},a499:function(e,t,r){"use strict";r.r(t);var n=r("417f"),i=r("c8ce");for(var o in i)["default"].indexOf(o)<0&&function(e){r.d(t,e,(function(){return i[e]}))}(o);r("f43e");var u=r("828b"),a=Object(u["a"])(i["default"],n["b"],n["c"],!1,null,"ddd3d67e",null,!1,n["a"],void 0);t["default"]=a.exports},b3d7:function(e,t,r){},c8ce:function(e,t,r){"use strict";r.r(t);var n=r("db63"),i=r.n(n);for(var o in n)["default"].indexOf(o)<0&&function(e){r.d(t,e,(function(){return n[e]}))}(o);t["default"]=i.a},db63:function(t,r,n){"use strict";var i=n("47a9");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=i(n("7ca3")),u=n("8f59");function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var c={data:function(){return{regTime:"",number1:"",number2:"",number3:""}},computed:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){(0,o.default)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},(0,u.mapState)(["user","isSlider"])),methods:{handleTarget:function(){var e=this,t=this;t.regTime?t.weight?t.$model.getinsertmeasure({familyid:t.user.familyid,time:t.regTime,weight:t.weight}).then((function(r){0==r.code&&(t.$tools.msg(r.msg),t.$store.commit("changeSlider",!1),t.$store.dispatch("getResult",{birthday:t.user.birthday,familyid:t.user.familyid,height:t.user.height,sex:t.user.sex}),t.$store.dispatch("getUserInfo",{familyid:t.user.familyid}),t.$emit("getList",e.startDate,e.endDate),t.regTime="",t.weight="")})):t.$tools.msg("请输入测量体重"):t.$tools.msg("请选择测量日期")},sliderChange:function(t,r){console.log("value 发生变化:",e.detail.value,r)},onTap:function(){this.regTime="",this.number1="",this.number2="",this.number3="",this.$store.commit("changeSlider",!1)}}};r.default=c},f43e:function(e,t,r){"use strict";var n=r("b3d7"),i=r.n(n);i.a}}]);
|
||||||
|
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
|
||||||
|
'element/slider-fraction-create-component',
|
||||||
|
{
|
||||||
|
'element/slider-fraction-create-component':(function(module, exports, __webpack_require__){
|
||||||
|
__webpack_require__('df3c')['createComponent'](__webpack_require__("a499"))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
[['element/slider-fraction-create-component']]
|
||||||
|
]);
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {},
|
||||||
|
"component": true
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<block wx:if="{{isSlider}}"><view class="wrapper data-v-ddd3d67e"><view data-event-opts="{{[['tap',[['onTap',['$event']]]]]}}" class="bg data-v-ddd3d67e" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="edit data-v-ddd3d67e" catchtap="__e"><view class="title data-v-ddd3d67e">分数占比设置</view><view class="editem data-v-ddd3d67e"><view class="left data-v-ddd3d67e">身体指数</view><view class="right data-v-ddd3d67e"><slider value="10" show-value="{{true}}" block-size="12" block-color="#007aff" data-event-opts="{{[['change',[['sliderChange',['$event']]]]]}}" bindchange="__e" class="data-v-ddd3d67e"></slider></view></view><view class="editem data-v-ddd3d67e"><view class="left data-v-ddd3d67e">1分钟跳绳</view><view class="right data-v-ddd3d67e"><slider value="40" show-value="{{true}}" block-size="12" block-color="#007aff" data-event-opts="{{[['change',[['sliderChange',['$event',2]]]]]}}" bindchange="__e" class="data-v-ddd3d67e"></slider></view></view><view class="editem data-v-ddd3d67e"><view class="left data-v-ddd3d67e">肺活量</view><view class="right data-v-ddd3d67e"><slider value="60" show-value="{{true}}" block-size="12" block-color="#007aff" data-event-opts="{{[['change',[['sliderChange',['$event']]]]]}}" bindchange="__e" class="data-v-ddd3d67e"></slider></view></view><view class="tips data-v-ddd3d67e">*所有项目评分占比和为100%</view><view data-event-opts="{{[['tap',[['onTap']]]]}}" class="btn close data-v-ddd3d67e" bindtap="__e">取消</view><view data-event-opts="{{[['tap',[['handleTarget',['$event']]]]]}}" class="btn data-v-ddd3d67e" bindtap="__e">确定</view></view></view></view></block>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
.edit.data-v-ddd3d67e{width:75%;padding:15px}.edit .editem.data-v-ddd3d67e{padding:0!important;background:#fff!important}.edit .editem .right.data-v-ddd3d67e{width:72%!important}.edit .editem.data-v-ddd3d67e slider{width:100%;padding:0!important;margin:0!important}.btn.data-v-ddd3d67e{width:40%;float:right;margin-top:15px;background:#37cc92!important}.edit.data-v-ddd3d67e{top:20%}.close.data-v-ddd3d67e{background:#dfdfdf!important;float:left}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["element/target/firstweight"],{"108f":function(t,e,r){"use strict";r.d(e,"b",(function(){return n})),r.d(e,"c",(function(){return i})),r.d(e,"a",(function(){}));var n=function(){var t=this.$createElement;this._self._c},i=[]},"116f":function(t,e,r){},"455c":function(t,e,r){"use strict";r.r(e);var n=r("5e38"),i=r.n(n);for(var o in n)["default"].indexOf(o)<0&&function(t){r.d(e,t,(function(){return n[t]}))}(o);e["default"]=i.a},4636:function(t,e,r){"use strict";r.r(e);var n=r("108f"),i=r("455c");for(var o in i)["default"].indexOf(o)<0&&function(t){r.d(e,t,(function(){return i[t]}))}(o);r("5692");var c=r("828b"),a=Object(c["a"])(i["default"],n["b"],n["c"],!1,null,"c949a7ae",null,!1,n["a"],void 0);e["default"]=a.exports},5692:function(t,e,r){"use strict";var n=r("116f"),i=r.n(n);i.a},"5e38":function(t,e,r){"use strict";(function(t){var n=r("47a9");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=n(r("7ca3")),o=r("8f59");function c(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function a(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?c(Object(r),!0).forEach((function(e){(0,i.default)(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var u={props:{type:{}},data:function(){return{regTime:"",weight:"",fields:""}},computed:a(a({},(0,o.mapState)(["user","isFirst"])),{},{endDate:function(){return this.$tools.getDate("start")}}),mounted:function(){this.fields="day"},methods:{handleTarget:function(){var t=this;1==t.type||t.regTime?t.weight?t.$model.getfirstweight({aud_id:t.user.id,time:1==t.type?"":t.regTime?t.regTime:t.user.firstresulttime,weight:t.weight,type:t.type}).then((function(e){console.log("目标,",e),t.$tools.msg(e.msg),0==e.code&&(t.$store.commit("changeFirst",!1),t.$store.commit("changeMeasureResult",{target_current:e.data}),t.regTime="",t.weight="")})):t.$tools.msg("请输入测量体重"):t.$tools.msg("请选择测量日期")},changeLog:function(t){this.regTime=t.detail.value},onTap:function(){this.weight="",this.regTime="",this.$store.commit("changeFirst",!1)},hideKeyboard:function(){t.hideKeyboard()}}};e.default=u}).call(this,r("df3c")["default"])}}]);
|
||||||
|
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
|
||||||
|
'element/target/firstweight-create-component',
|
||||||
|
{
|
||||||
|
'element/target/firstweight-create-component':(function(module, exports, __webpack_require__){
|
||||||
|
__webpack_require__('df3c')['createComponent'](__webpack_require__("4636"))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
[['element/target/firstweight-create-component']]
|
||||||
|
]);
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"usingComponents": {},
|
||||||
|
"component": true
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<block wx:if="{{isFirst}}"><view class="wrapper wrapperbg data-v-c949a7ae"><view data-event-opts="{{[['tap',[['onTap',['$event']]]]]}}" class="bg data-v-c949a7ae" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="edit data-v-c949a7ae" catchtap="__e"><view class="title data-v-c949a7ae">{{type==1?'目标体重':'初始体重'}}</view><block wx:if="{{type!=1}}"><view data-event-opts="{{[['tap',[['hideKeyboard',['$event']]]]]}}" class="editem data-v-c949a7ae" bindtap="__e"><view class="name data-v-c949a7ae">日期</view><view class="right data-v-c949a7ae"><picker mode="date" end="{{endDate}}" fields="{{fields}}" data-event-opts="{{[['change',[['changeLog',['$event']]]]]}}" bindchange="__e" class="data-v-c949a7ae"><view class="uni-input data-v-c949a7ae">{{regTime?regTime:'请选择'}}</view><icon class="iconfont icon-arrow-down-bold data-v-c949a7ae"></icon></picker></view></view></block><view class="editem data-v-c949a7ae"><view class="name data-v-c949a7ae">体重</view><view class="right data-v-c949a7ae"><input type="digit" placeholder="请输入" data-event-opts="{{[['input',[['__set_model',['','weight','$event',[]]]]]]}}" value="{{weight}}" bindinput="__e" class="data-v-c949a7ae"/>kg</view></view><view data-event-opts="{{[['tap',[['onTap']]]]}}" class="btn close data-v-c949a7ae" bindtap="__e">取消</view><view data-event-opts="{{[['tap',[['handleTarget',['$event']]]]]}}" class="btn data-v-c949a7ae" bindtap="__e">确定</view></view></view></view></block>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
.btn.data-v-c949a7ae{width:40%;float:right;margin-top:15px;background:#37cc92!important}.edit.data-v-c949a7ae{top:20%}.close.data-v-c949a7ae{background:#fff!important;float:left;color:#333}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pageTwo/PublicCards/charts"],{"04da":function(t,e,i){"use strict";(function(t){var a=i("47a9");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=a(i("7ca3")),r=i("8f59");function o(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function s(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?o(Object(i),!0).forEach((function(e){(0,n.default)(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):o(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}var c={components:{qiunDataCharts:function(){Promise.all([i.e("common/vendor"),i.e("uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts")]).then(function(){return resolve(i("7135"))}.bind(null,i)).catch(i.oe)}},computed:s(s({},(0,r.mapState)(["labelList"])),{},{endDate:function(){return this.$tools.getDate("start")},startDate:function(){return this.$tools.GetDateStr(-90)}}),data:function(){return{name:"",list:[],acd_id:0,handTrue:!0,active:0,startTime:"",endTime:"",fields:"",weightList:[]}},onLoad:function(t){var e=this;e.active=0,e.acd_id=t.acd_id,e.time=e.startDate,e.labelList.forEach((function(t){if(t.acd_id==e.acd_id)return e.list=t.list,void(e.name=e.list[0])})),e.handlePublicTrendList(),e.fields="day"},methods:{handStartTimeH:function(t){if(this.endTime){if(Date.parse(t.detail.value)>Date.parse(this.endTime))return void this.$tools.msg("请选择正确的时间")}else if(Date.parse(t.detail.value)>Date.parse(this.endDate))return void this.$tools.msg("请选择正确的时间");this.startTime=t.detail.value,this.handlePublicTrendList()},handEndTimeH:function(t){if(this.startTime){if(Date.parse(t.detail.value)<Date.parse(this.startTime))return void this.$tools.msg("请选择正确的时间")}else if(Date.parse(t.detail.value)<Date.parse(this.startDate))return void this.$tools.msg("请选择正确的时间");this.endTime=t.detail.value,this.handlePublicTrendList()},handlePublicTrendList:function(){var e=this;e.$model.getPublicTrendList({aud_id:t.getStorageSync("userid"),acd_id:e.acd_id,s_time:e.startTime?e.startTime:e.startDate,e_time:e.endTime?e.endTime:e.endDate}).then((function(t){0==t.code&&(e.weightList=t.data),console.log("公共曲线",e.weightList)}))},navTo:function(e){t.navigateTo({url:e})}}};e.default=c}).call(this,i("df3c")["default"])},"0c00":function(t,e,i){"use strict";i.r(e);var a=i("eb24"),n=i("6096");for(var r in n)["default"].indexOf(r)<0&&function(t){i.d(e,t,(function(){return n[t]}))}(r);i("f50f");var o=i("828b"),s=Object(o["a"])(n["default"],a["b"],a["c"],!1,null,"55f297e5",null,!1,a["a"],void 0);e["default"]=s.exports},6096:function(t,e,i){"use strict";i.r(e);var a=i("04da"),n=i.n(a);for(var r in a)["default"].indexOf(r)<0&&function(t){i.d(e,t,(function(){return a[t]}))}(r);e["default"]=n.a},"91ff":function(t,e,i){},af3c:function(t,e,i){"use strict";(function(t,e){var a=i("47a9");i("30b7");a(i("3240"));var n=a(i("0c00"));t.__webpack_require_UNI_MP_PLUGIN__=i,e(n.default)}).call(this,i("3223")["default"],i("df3c")["createPage"])},eb24:function(t,e,i){"use strict";i.d(e,"b",(function(){return a})),i.d(e,"c",(function(){return n})),i.d(e,"a",(function(){}));var a=function(){var t=this,e=t.$createElement,i=(t._self._c,t.__map(t.weightList,(function(e,i){var a=t.__get_orig(e),n=e.line.categories.length,r=n?{enableScroll:!0,xAxis:{scrollShow:!1,itemCount:3}}:null;return{$orig:a,g0:n,a0:r}})));t.$mp.data=Object.assign({},{$root:{l0:i}})},n=[]},f50f:function(t,e,i){"use strict";var a=i("91ff"),n=i.n(a);n.a}},[["af3c","common/runtime","common/vendor"]]]);
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"navigationBarTitleText": "运动曲线",
|
||||||
|
"usingComponents": {
|
||||||
|
"qiun-data-charts": "/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<view class="TrendPage data-v-55f297e5"><view class="charts data-v-55f297e5"><view class="boxTime data-v-55f297e5"><view class="one data-v-55f297e5"><picker mode="date" end="{{endDate}}" fields="{{fields}}" value="{{startTime?startTime:startDate}}" data-event-opts="{{[['change',[['handStartTimeH',['$event']]]]]}}" bindchange="__e" class="data-v-55f297e5"><view class="uni-input mr-10 data-v-55f297e5">{{(startTime?startTime:startDate)+''}}<icon class="iconfont icon-arrow-down-bold data-v-55f297e5"></icon></view></picker><view class="center data-v-55f297e5">~</view><picker mode="date" end="{{endDate}}" fields="{{fields}}" value="{{endTime?endTime:endDate}}" data-event-opts="{{[['change',[['handEndTimeH',['$event']]]]]}}" bindchange="__e" class="data-v-55f297e5"><view class="uni-input mr-10 data-v-55f297e5">{{(endTime?endTime:endDate)+''}}<icon class="iconfont icon-arrow-down-bold data-v-55f297e5"></icon></view></picker></view></view></view><view class="box data-v-55f297e5"><view class="boxLine data-v-55f297e5"><block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="index"><view class="line data-v-55f297e5"><block wx:if="{{item.g0}}"><view class="mt-15 mb-15 data-v-55f297e5"><qiun-data-charts vue-id="{{'bd126f08-1-'+index}}" type="column" chartData="{{item.$orig.line}}" canvas2d="{{true}}" canvasId="{{item.$orig.id}}" Width="{{340}}" Height="{{250}}" animation="{{false}}" opts="{{item.a0}}" ontouch="{{true}}" class="data-v-55f297e5" bind:__l="__l"></qiun-data-charts></view></block><block wx:else><view class="data-v-55f297e5"><view class="nolist data-v-55f297e5"><image src="../../static/none.png" class="data-v-55f297e5"></image><text class="data-v-55f297e5">暂无数据,请手动添加~</text></view><view class="title data-v-55f297e5">{{''+item.$orig.title+''}}</view></view></block></view></block></view></view></view>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
.TrendPage.data-v-55f297e5{min-height:100vh}.boxTime.data-v-55f297e5{display:flex;justify-content:center;align-items:center;background-color:#fff;border-radius:10px 10px 0 0}.boxTime .one.data-v-55f297e5{width:100%;display:flex;line-height:25px;justify-content:space-between;align-items:center}.boxTime .center.data-v-55f297e5{width:10%;margin:0 15px}.boxTime picker.data-v-55f297e5{width:50%;border:none;display:flex;justify-content:center}.boxTime .iconfont.data-v-55f297e5{color:#333;font-size:36rpx}.line.data-v-55f297e5{padding-top:15px}.title.data-v-55f297e5{width:100%;text-align:center;color:#999;font-size:14PX;margin-top:15px}.title text.data-v-55f297e5{width:15px;height:10px;margin-right:5px;display:inline-block}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pageTwo/PublicCards/contrast"],{"23c3":function(t,e,i){"use strict";(function(t,e){var n=i("47a9");i("30b7");n(i("3240"));var s=n(i("e3ed"));t.__webpack_require_UNI_MP_PLUGIN__=i,e(s.default)}).call(this,i("3223")["default"],i("df3c")["createPage"])},"727a":function(t,e,i){"use strict";i.r(e);var n=i("8be2"),s=i.n(n);for(var a in n)["default"].indexOf(a)<0&&function(t){i.d(e,t,(function(){return n[t]}))}(a);e["default"]=s.a},"854a":function(t,e,i){"use strict";var n=i("fae3"),s=i.n(n);s.a},"8be2":function(t,e,i){"use strict";(function(t){var n=i("47a9");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(i("7ca3")),a=i("8f59");function r(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function c(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?r(Object(i),!0).forEach((function(e){(0,s.default)(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}var o={data:function(){return{markDays:[],infoList:[],list:[],isActive:[],ActiveDays:[],startM:null,endM:null,isShow:!0,acd_id:"",active:0,labelName:""}},components:{RenCalendar:function(){i.e("element/ren-calendar/ren-calendar").then(function(){return resolve(i("a185"))}.bind(null,i)).catch(i.oe)}},computed:c(c({},(0,a.mapState)(["user","TrendPk","labelList"])),{},{labellist:function(){var t=this,e=[];return t.labelList.forEach((function(i){i.acd_id==t.acd_id&&(e=i.list,t.labelName=i.list[0])})),e},length:function(){return this.isActive.length},endDate:function(){return this.$tools.getDate("start")}}),onLoad:function(t){var e=this;e.acd_id=t.acd_id,e.startM=e.$tools.getDate("m").substring(0,10),e.endM=e.$tools.getDate("m").substring(11,21),e.markDays=[],e.list=[],e.isActive=[],e.ActiveDays=[],e.$nextTick((function(){e.isShow=!0,e.getList(e.startM,e.endM)}))},methods:{getList:function(e,i){var n=this;n.$model.getPublicResultdiff({aud_id:t.getStorageSync("userid"),acd_id:n.acd_id,s_time:e,e_time:i,name:n.labelName}).then((function(t){if(t){n.markDays=t.Dlist,n.list=t.data;for(var e=0;e<t.data.length;e++)Date.parse(n.endDate)==Date.parse(t.data[e].r_t)&&n.infoList.push(t.data[e]);console.log("对比",t)}}))},onMonthClickPre:function(t){console.log("onMonthClickPre",t);var e=t.substring(0,10),i=t.substring(11,21);this.infoList=[],this.markDays=[],this.list=[],this.getList(e,i)},onDayClick:function(t){this.infoList=[];for(var e=0;e<this.list.length;e++)Date.parse(t.date)==Date.parse(this.list[e].r_t)&&this.infoList.push(this.list[e])},addMemberTags:function(t,e){console.log("addMemberTags",t,e),-1==this.isActive.indexOf(t)?(this.isActive.push(t),this.ActiveDays.push(e)):(this.isActive.splice(this.isActive.indexOf(t),1),this.ActiveDays.splice(this.ActiveDays.indexOf(e),1)),this.isActive.length>2&&(this.isActive.splice(0,1),this.ActiveDays.splice(0,1))},handlePK:function(){if(2==this.isActive.length){var e={};e.type=this.acd_id,e.before_id=this.isActive[0],e.after_id=this.isActive[1],console.log("1111",e,this.isActive),t.navigateTo({url:"/pageTwo/compk/pkdetail?info="+JSON.stringify(e)})}else this.$tools.msg("请先选择数据!")},handleActive:function(t,e){var i=this;i.active=e,i.labelName=t,i.startM=i.$tools.getDate("m").substring(0,10),i.endM=i.$tools.getDate("m").substring(11,21),i.list=[],i.infoList=[],i.markDays=[],i.isActive=[],i.ActiveDays=[],i.$nextTick((function(){i.isShow=!0,i.getList(i.startM,i.endM)}))}}};e.default=o}).call(this,i("df3c")["default"])},e07c:function(t,e,i){"use strict";i.d(e,"b",(function(){return s})),i.d(e,"c",(function(){return a})),i.d(e,"a",(function(){return n}));var n={uniIcons:function(){return Promise.all([i.e("common/vendor"),i.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(i.bind(null,"bbd6"))}},s=function(){var t=this,e=t.$createElement,i=(t._self._c,t.infoList.length),n=i?t.__map(t.infoList,(function(e,i){var n=t.__get_orig(e),s=t.isActive.indexOf(e.id),a=t.isActive.indexOf(e.id);return{$orig:n,g1:s,g2:a}})):null;t.$mp.data=Object.assign({},{$root:{g0:i,l0:n}})},a=[]},e3ed:function(t,e,i){"use strict";i.r(e);var n=i("e07c"),s=i("727a");for(var a in s)["default"].indexOf(a)<0&&function(t){i.d(e,t,(function(){return s[t]}))}(a);i("854a");var r=i("828b"),c=Object(r["a"])(s["default"],n["b"],n["c"],!1,null,"0b9a8129",null,!1,n["a"],void 0);e["default"]=c.exports},fae3:function(t,e,i){}},[["23c3","common/runtime","common/vendor"]]]);
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"navigationBarTitleText": "数据对比",
|
||||||
|
"usingComponents": {
|
||||||
|
"uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons",
|
||||||
|
"ren-calendar": "/element/ren-calendar/ren-calendar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<view class="content data-v-0b9a8129"><view class="tabbar data-v-0b9a8129"><scroll-view class="scroll-menu data-v-0b9a8129" style="white-space:nowrap;" scroll-x="true"><block wx:for="{{labellist}}" wx:for-item="item" wx:for-index="index"><view data-event-opts="{{[['tap',[['handleActive',['$0',index],[[['labellist','',index]]]]]]]}}" class="{{['data-v-0b9a8129',active==index?'active':'']}}" bindtap="__e"><text class="data-v-0b9a8129">{{item}}</text></view></block></scroll-view></view><view class="calendar data-v-0b9a8129"><block wx:if="{{isShow}}"><ren-calendar vue-id="e1150da2-1" markDays="{{markDays}}" data-ref="ren" data-event-opts="{{[['^onDayClick',[['onDayClick']]],['^onMonthClickPre',[['onMonthClickPre']]]]}}" bind:onDayClick="__e" bind:onMonthClickPre="__e" class="data-v-0b9a8129 vue-ref" bind:__l="__l"></ren-calendar></block><block wx:if="{{$root.g0}}"><view class="box data-v-0b9a8129"><block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['addMemberTags',['$0','$1'],[[['infoList','',index,'id']],[['infoList','',index]]]]]]]}}" class="list data-v-0b9a8129" bindtap="__e"><view class="item data-v-0b9a8129"><view class="check data-v-0b9a8129"><uni-icons vue-id="{{'e1150da2-2-'+index}}" type="{{item.g1!=-1?'checkbox-filled':'circle'}}" size="22" color="{{item.g2!=-1?'#FEC407':'#dfdfdf'}}" class="data-v-0b9a8129" bind:__l="__l"></uni-icons></view><view class="data-v-0b9a8129">{{item.$orig.v1}}<text class="data-v-0b9a8129">{{item.$orig.v1_name}}</text></view><block wx:if="{{item.$orig.v2}}"><view class="data-v-0b9a8129">{{item.$orig.v2}}<text class="data-v-0b9a8129">{{item.$orig.v2_name}}</text></view></block><block wx:if="{{item.$orig.v3}}"><view class="data-v-0b9a8129">{{item.$orig.v3}}<text class="data-v-0b9a8129">{{item.$orig.v3_name}}</text></view></block></view></view></block></view></block><view class="bottom data-v-0b9a8129"><block wx:for="{{ActiveDays}}" wx:for-item="ite" wx:for-index="ind" wx:key="ind"><block wx:if="{{isActive}}"><view data-event-opts="{{[['tap',[['addMemberTags',['$0','$1'],[[['ActiveDays','',ind,'id']],[['ActiveDays','',ind]]]]]]]}}" class="list data-v-0b9a8129" bindtap="__e"><view class="item borderRadius data-v-0b9a8129"><view class="time data-v-0b9a8129">{{ite.r_t}}</view><view class="data-v-0b9a8129">{{ite.v1}}<text class="data-v-0b9a8129">{{ite.v1_name}}</text></view><block wx:if="{{ite.v2}}"><view class="data-v-0b9a8129">{{ite.v2}}<text class="data-v-0b9a8129">{{ite.v2_name}}</text></view></block><block wx:if="{{ite.v3}}"><view class="data-v-0b9a8129">{{ite.v3}}<text class="data-v-0b9a8129">{{ite.v3_name}}</text></view></block><view class="check data-v-0b9a8129"><uni-icons vue-id="{{'e1150da2-3-'+ind}}" type="clear" size="22" color="#999" class="data-v-0b9a8129" bind:__l="__l"></uni-icons></view></view></view></block></block><block wx:if="{{length==2}}"><view class="pkclass data-v-0b9a8129">vs</view></block></view></view></view>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
.calendar.data-v-0b9a8129{padding-top:60px}.data-v-0b9a8129 .calendar-wrapper{margin:15px}.data-v-0b9a8129 .calendar-wrapper .header{background-color:#fff;color:#37cc92;border-radius:10px 10px 0 0}.data-v-0b9a8129 .calendar-wrapper /deep/uni-icons{color:#37cc92}.item.data-v-0b9a8129{font-size:30rpx!important}.tabbar.data-v-0b9a8129{display:flex;position:fixed;top:0;left:0;right:0;z-index:999;justify-content:space-between;border-bottom:1px solid #f7f7f7;box-shadow:0 1px 5px 2px rgba(223,226,225,.9882352941176471);background-color:#fff}.tabbar .scroll-menu.data-v-0b9a8129{width:100%;white-space:nowrap}.tabbar .scroll-menu view.data-v-0b9a8129{height:55px;line-height:55px;display:inline-block;min-width:100px;margin:0 10px;text-align:center}.tabbar .active.data-v-0b9a8129{color:#37cc92;font-weight:700;border-bottom:2px solid #37cc92}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pageTwo/PublicCards/history"],{"0b98":function(t,e,n){"use strict";var i=n("edd3"),o=n.n(i);o.a},"73a6":function(t,e,n){"use strict";n.r(e);var i=n("e2db"),o=n("a252");for(var a in o)["default"].indexOf(a)<0&&function(t){n.d(e,t,(function(){return o[t]}))}(a);n("0b98");var c=n("828b"),r=Object(c["a"])(o["default"],i["b"],i["c"],!1,null,"570898e0",null,!1,i["a"],void 0);e["default"]=r.exports},a252:function(t,e,n){"use strict";n.r(e);var i=n("f9c5"),o=n.n(i);for(var a in i)["default"].indexOf(a)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(a);e["default"]=o.a},c1e0:function(t,e,n){"use strict";(function(t,e){var i=n("47a9");n("30b7");i(n("3240"));var o=i(n("73a6"));t.__webpack_require_UNI_MP_PLUGIN__=n,e(o.default)}).call(this,n("3223")["default"],n("df3c")["createPage"])},e2db:function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return i}));var i={uniSwipeAction:function(){return n.e("uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action").then(n.bind(null,"7f50"))},uniSwipeActionItem:function(){return Promise.all([n.e("common/vendor"),n.e("uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item")]).then(n.bind(null,"0809"))}},o=function(){var t=this.$createElement;this._self._c},a=[]},edd3:function(t,e,n){},f9c5:function(t,e,n){"use strict";(function(t){var i=n("47a9");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=i(n("7ca3")),a=n("8f59");function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function r(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?c(Object(n),!0).forEach((function(e){(0,o.default)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var s={computed:r(r({},(0,a.mapState)(["user","labelList"])),{},{labellist:function(){var t=this,e=[];return t.labelList.forEach((function(n){n.acd_id==t.acd_id&&(e=n.list,t.labelName=n.list[0])})),e},endDate:function(){return this.$tools.getDate("start")},startDate:function(){return this.$tools.GetDateStr(-90)}}),data:function(){return{ranklist:[],page:1,isDelete:!1,lastPage:"",acd_id:"",active:0,labelName:""}},onLoad:function(t){var e=this;e.acd_id=t.acd_id,e.$nextTick((function(){e.getList()}))},onUnload:function(){console.log("关闭页面");var t=getCurrentPages(),e=(t[t.length-1],t[t.length-2]);this.isDelete&&e.$vm.reload()},onReachBottom:function(){console.log("onReachBottom",this.lastPage),!this.lastPage||this.page>=this.lastPage?t.showToast({title:"没有更多数据!",icon:"none"}):(this.page++,this.getList())},methods:{swipeClick:function(e,n){var i=this,o=i.ranklist[n].id;t.showModal({title:"友情提示",content:"是否删除当前测量记录?",success:function(e){e.confirm?i.$model.getPublicHistoryDel({id:o}).then((function(e){0==e.code?(i.ranklist.splice(n,1),i.$store.dispatch("getUserInfo",{aud_id:t.getStorageSync("userid")}),i.isDelete=!0,i.$tools.msg("删除成功")):i.$tools.msg(e.msg)})):e.cancel&&i.$tools.msg("您已取消操作!")}})},getList:function(){var e=this;this.$model.getPublicHistory({aud_id:t.getStorageSync("userid"),acd_id:this.acd_id,page:this.page,name:this.labelName}).then((function(t){if(console.log("历史记录",t),0==t.code){var n=[{text:"删除",style:{backgroundColor:"#dd524d"}}];t.data.rows.forEach((function(t){t.options=n})),e.ranklist=e.ranklist.concat(t.data.rows),e.lastPage=t.data.totalpage}}))},handleActive:function(t,e){this.active=e,this.labelName=t,this.page=1,this.ranklist=[],this.lastPage="",this.getList()}}};e.default=s}).call(this,n("df3c")["default"])}},[["c1e0","common/runtime","common/vendor"]]]);
|
||||||