389 lines
9.2 KiB
Vue
389 lines
9.2 KiB
Vue
<template>
|
|
<view class="content">
|
|
<view class="bgheight" v-if="!isShowA">
|
|
<view v-if="listA">
|
|
<view class="btn" @tap="handleListx(1)">重新测评</view>
|
|
<view class="box">
|
|
<view class="name">
|
|
<view>本次体质评估结果为</view>
|
|
</view>
|
|
<view class="conbt">
|
|
{{listA.bodytype}}
|
|
</view>
|
|
<view class="conbt">
|
|
{{listA.extinfo}}
|
|
</view>
|
|
</view>
|
|
<view class="box" v-if="listA.list.length">
|
|
<view class="h2">体质解读:</view>
|
|
<view v-for="(item,index) in listA.list" :key="index">
|
|
<view class="title">{{item.bodytype}}</view>
|
|
<view class="con">
|
|
<view class="text" v-show="item.feature"><text>特征:</text>{{item.feature}}</view>
|
|
<view class="text" v-show="item.people"><text>重点人群:</text>{{item.people}}</view>
|
|
<view class="text" v-show="item.sick"><text>患病倾向:</text>{{item.sick}}</view>
|
|
<view class="text" v-show="item.health"><text>调养方式:</text>{{item.health}}</view>
|
|
</view>
|
|
</view>
|
|
<view class="tips" v-if="listA.referlist">
|
|
{{listA.referlist}}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- 评估 -->
|
|
<view class="commonAll" v-else>
|
|
<view class="h2">请根据近一年的体验和感觉,回答以下问题</view>
|
|
<view class="box" v-for="(item,index) in infoListA.slice((currpage-1)*eachpage,currpage*eachpage)" :key="index">
|
|
<view v-for="(ite, ind) in item.qalist" :key="ind">
|
|
<view class="h5">{{ite.title}}</view>
|
|
<view class="item">
|
|
<view class="group" v-for="(it, id) in ite.data" :key="id" @click="Changeradio(it)">
|
|
<image :src="dasC.indexOf(it.val)!=-1?'../../static/radio.png':'../../static/icon-kongradio.png'" class="iconfont radioimg"></image>
|
|
<view>{{it.name}}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="page" v-if='!listA'>
|
|
<view class="pre" v-if="currpage>1" @click="pre">上一页</view>
|
|
<view v-if="currpage<pagesum" @click="next">下一页</view>
|
|
<view class="btn" v-if="currpage==pagesum" @click="handlesub">
|
|
提交
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
mapState
|
|
} from "vuex";
|
|
export default {
|
|
computed: {
|
|
...mapState(["user", "appTheme"]),
|
|
info() {
|
|
return this.user
|
|
}
|
|
},
|
|
onLoad() {
|
|
// 导航栏颜色
|
|
uni.setNavigationBarColor({
|
|
frontColor: '#ffffff',
|
|
backgroundColor: this.appTheme,
|
|
})
|
|
},
|
|
onShow() {
|
|
let that = this
|
|
that.handleTypeInfo()
|
|
},
|
|
methods: {
|
|
//测评结果
|
|
handleTypeInfo() {
|
|
let that = this
|
|
that.$model.getbodyinfo({
|
|
familyid: that.user.familyid,
|
|
}).then(res => {
|
|
if (res.code != 0) {
|
|
that.handleListx(1)
|
|
return
|
|
}
|
|
that.listA = res.data
|
|
that.isShowA = false
|
|
console.log("计算成功,去查看结果吧!")
|
|
})
|
|
|
|
},
|
|
// 重新测评
|
|
handleListx(ind) {
|
|
let that = this
|
|
that.isShowA = true
|
|
that.currpage = 1
|
|
that.dasA = []
|
|
that.dasC = []
|
|
that.listA = ""
|
|
that.tmidlistA = []
|
|
that.infoListA = []
|
|
that.$model.getbodylist({
|
|
isrestart: ind,
|
|
sex: that.user.sex,
|
|
familyid: that.user.familyid,
|
|
}).then(res => {
|
|
console.log(123, res)
|
|
if (res.code != 0) return
|
|
that.pagesum = Math.ceil(res.data.length / that.eachpage);
|
|
that.infoListA = res.data
|
|
})
|
|
|
|
},
|
|
// 测评选择
|
|
Changeradio(tmitem) {
|
|
let that = this
|
|
if (that.tmidlistA.indexOf(tmitem.id) == -1) {
|
|
console.log(0)
|
|
that.tmidlistA.push(tmitem.id)
|
|
that.dasC.push(tmitem.val);
|
|
that.dasA.push(tmitem)
|
|
} else {
|
|
for (var n = 0; n < that.tmidlistA.length; n++) {
|
|
if (tmitem.id == that.tmidlistA[n]) {
|
|
console.log(1)
|
|
if (that.dasC.indexOf(tmitem.val) == -1) {
|
|
that.tmidlistA.push(tmitem.id)
|
|
that.dasC.push(tmitem.val);
|
|
that.dasA.push(tmitem)
|
|
console.log(2)
|
|
}
|
|
that.tmidlistA.splice(n, 1)
|
|
that.dasC.splice(n, 1);
|
|
that.dasA.splice(n, 1);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
// 提交
|
|
handlesub() {
|
|
let that = this
|
|
var obj = {}
|
|
let newArr = []
|
|
that.dasA.forEach(function(item, suffix) {
|
|
if (!obj[item.valId]) {
|
|
var arr = {
|
|
id: '',
|
|
list: []
|
|
};
|
|
arr.id = item.valId
|
|
arr.list.push({
|
|
id: item.id,
|
|
score: item.value
|
|
})
|
|
newArr.push(arr);
|
|
obj[item.valId] = item;
|
|
} else {
|
|
for (var q = 0; q < newArr.length; q++) {
|
|
if (newArr[q].id == item.valId) {
|
|
newArr[q].list.push({
|
|
id: item.id,
|
|
score: item.value
|
|
})
|
|
}
|
|
}
|
|
}
|
|
})
|
|
// for (var i = 0; i < that.infoListA.length; i++) {
|
|
// var arr = {
|
|
// id: '',
|
|
// list: []
|
|
// };
|
|
// arr.id = that.infoListA[i].id
|
|
// for (var e = 0; e < that.infoListA[i].qalist.length; e++) {
|
|
// arr.list.push({
|
|
// id: that.infoListA[i].qalist[e].Id,
|
|
// score: 3
|
|
// })
|
|
// }
|
|
// newArr.push(arr)
|
|
// }
|
|
console.log("去计算", newArr)
|
|
// if (newArr.length < 7 || newArr.length < 9) {
|
|
// that.$api.msg("请先完成问答")
|
|
// return
|
|
// }
|
|
that.$model.getbodyresultinfo({
|
|
appid: uni.getStorageSync("appid"),
|
|
familyid: that.user.familyid,
|
|
data: newArr
|
|
})
|
|
.then(res => {
|
|
console.log('res', res)
|
|
that.tmidlistA = []
|
|
that.dasA = []
|
|
that.dasC = []
|
|
if (res.code != 0) {
|
|
that.$tools.msg(res.message)
|
|
return
|
|
}
|
|
that.listA = res.data
|
|
that.isShowA = false
|
|
that.currpage = 1
|
|
console.log("计算成功,去查看结果吧!")
|
|
})
|
|
},
|
|
pre() {
|
|
this.currpage--
|
|
},
|
|
next() {
|
|
let that = this
|
|
that.currpage++
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
isShowA: true,
|
|
dasA: [],
|
|
dasC: [],
|
|
listA: [],
|
|
infoListA: [],
|
|
tmidlistA: [],
|
|
pagesum: null, //总页数
|
|
currpage: 1, //当前页数
|
|
eachpage: 2, //每页行数
|
|
}
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.content {
|
|
font-size: 14px;
|
|
color: #666;
|
|
background-color: #fff;
|
|
padding: 15px;
|
|
min-height: calc(100vh - 30px);
|
|
}
|
|
|
|
.h2 {
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.h5 {
|
|
margin: 15px 0 10px;
|
|
|
|
}
|
|
|
|
.bgheight {
|
|
.name {
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
color: #f19601;
|
|
margin-bottom: 15px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.conbt {
|
|
font-size: 14px;
|
|
line-height: 25px;
|
|
width: 100%;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.box .conbt:nth-last-child(1) text {
|
|
display: none;
|
|
}
|
|
|
|
.title {
|
|
width: 100%;
|
|
font-size: 16px;
|
|
text-align: left;
|
|
font-weight: bold;
|
|
margin: 15px 0;
|
|
color: #333;
|
|
}
|
|
|
|
.con {
|
|
line-height: 25px;
|
|
|
|
text {
|
|
color: #333;
|
|
font-weight: bold;
|
|
}
|
|
}
|
|
|
|
.btn {
|
|
display: block;
|
|
height: 30px;
|
|
line-height: 30px;
|
|
border: none;
|
|
background: #f19601;
|
|
color: #fff;
|
|
margin: 0;
|
|
width: 100px;
|
|
border-radius: 10px;
|
|
text-align: center;
|
|
font-size: 14px;
|
|
float: right;
|
|
// margin-bottom: 10px;
|
|
}
|
|
}
|
|
|
|
|
|
.uni-list-cell {
|
|
display: flex;
|
|
width: 60%;
|
|
margin-bottom: 10px;
|
|
margin-left: 10px;
|
|
}
|
|
|
|
:nth-child(even).uni-list-cell {
|
|
width: 30%;
|
|
margin-left: 0;
|
|
}
|
|
|
|
.commonAll {
|
|
background-color: #fff;
|
|
}
|
|
|
|
.page {
|
|
width: 100%;
|
|
height: 35px;
|
|
text-align: center;
|
|
margin: 20px auto;
|
|
display: flex;
|
|
justify-content: space-around;
|
|
|
|
view {
|
|
width: 150px;
|
|
background: #dfdfdf;
|
|
padding: 5px 0;
|
|
border-radius: 5px;
|
|
}
|
|
|
|
.btn {
|
|
background: #f19601;
|
|
color: #fff;
|
|
margin: 0;
|
|
height: auto;
|
|
line-height: inherit;
|
|
}
|
|
}
|
|
|
|
|
|
.item {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.group {
|
|
display: flex;
|
|
align-items: center;
|
|
align-content: center;
|
|
width: 50%;
|
|
justify-content: end;
|
|
flex-wrap: wrap;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.iconfont {
|
|
width: 22px;
|
|
height: 22px;
|
|
font-size: 20px;
|
|
color: #dfdfdf;
|
|
display: flex;
|
|
margin-right: 3px;
|
|
}
|
|
|
|
.icon-radio {
|
|
color: #f19601;
|
|
}
|
|
|
|
.tips {
|
|
font-size: 12px;
|
|
color: #999;
|
|
margin-top: 10px;
|
|
line-height: 22px;
|
|
}
|
|
</style>
|