|
|
- <template>
- <view class="page">
-
- <image :src="configList.img_13"
- class="page-bg"
- mode="aspectFill"></image>
-
- <image :src="configList.img_7"
- class="logo"
- mode="widthFix"></image>
-
- <!-- next1 -->
- <view class="content" v-if="question[index]">
-
- <image :src="configList.img_11"
- class="content-bg"
- mode="aspectFill"></image>
-
- <view class=""
- v-html="$utils.stringFormatHtml(question[index].title)">
- </view>
-
- <view class="mian-btn"
- v-for="(item, i) in question[index].answerObjectSkuList"
- :class="{active : answerIds[index] == item.id}"
- :key="i"
- @click="select(item)">
- {{ item.title }}
- </view>
-
- </view>
-
- <!-- next2 -->
- <view class="content" v-if="stop == 2">
- <text class="font-bold mb-60">请选择您所在的区域</text>
- <view class="">
- <picker
- mode="region"
- :value="date"
- class="u-w-440"
- @change="bindTimeChange">
- <view class="region">
- <view class="">
- {{ address.province}}
- </view>
- 省
- <view class="">
- {{ address.city}}
- </view>
- 市
- <view class="">
- {{ address.district}}
- </view>
- 区
- </view>
- </picker>
- </view>
- </view>
-
- <view class="an">
-
- <view style="display: flex;gap: 30rpx;"
- >
- <view class="next-btn-2"
- v-if="index > 0"
- @click="ret">
- 上一题
- </view>
-
- <view class="next-btn"
- @click="next1">
- 下一题
- </view>
- </view>
-
- <!-- <view class="next-btn"
- v-if="stop == 1"
- @click="next">
- 下一题
- </view>
-
- <view class="next-btn"
- v-if="stop == 2"
- @click="next">
- 提交
- </view> -->
-
- <text class="second-color">{{ configList.bg_title }}</text>
- </view>
-
- </view>
- </template>
-
- <script>
- import { mapState } from 'vuex'
- export default {
- data() {
- return {
- isActive : null,
- stop : 1,
- index : 0,
- address : {
- province : '',
- city : '',
- district : '',
- },
- question : [],
- answerIds : [],
- }
- },
- computed : {
- ...mapState(['configList']),
- },
- onLoad() {
- this.firstQuestion()
- },
- onShow() {
- },
- methods: {
- select(item){
- this.answerIds.splice(this.index, 1, item.id)
- if(item.isEnd != 'Y'){
- this.isActive = item.toMainId
- }
- },
- ret(){
- this.index--
- this.isActive = null
- this.question[this.index]
- .answerObjectSkuList.forEach(n => {
- if(n.id == this.answerIds[this.index]){
- this.isActive = n.toMainId
- }
- })
- },
- firstQuestion(){
- this.$api('firstQuestion', res => {
- if(res.code == 200){
- this.question.push(res.result)
- }
- })
- },
- next1(){
- if(!this.isActive){
- uni.showToast({
- title:'请选择后进行下一题',
- icon: 'none'
- })
- return
- }
-
- let item = null
- this.question[this.index]
- .answerObjectSkuList.forEach(n => {
- if(n.id == this.answerIds[this.index]){
- item = n
- }
- })
- if(item.isEnd == 'Y'){
- this.$store.commit('getTitleByIds', item.toRuleId)
- return
- }
-
- this.$api('getProblemById', {
- id : this.isActive
- }, res => {
- if(res.code == 200){
- this.index++
- this.question.splice(this.index, 1, res.result)
- }
- })
-
- // this.$api('submitLog', {
- // topId : this.probleme[this.index].id,
- // context : this.isActive,
- // }, res => {
- // this.isActive = null
- // if(this.index == this.probleme.length - 1){
- // this.stop = 2
- // }else{
- // uni.navigateTo({
- // url: '/pages/index/preAppoint'
- // })
- // }
- // })
- },
- next2(){
- // this.stop = 3
-
- if(!this.address.province){
- uni.showToast({
- title:'请选择地址后进行下一题',
- icon: 'none'
- })
- return
- }
-
- uni.redirectTo({
- url: '/pages_order/info/fillInfo'
- })
- },
- // 获取省市区
- bindTimeChange(e) {
- this.address.province = e.detail.value[0];
- this.address.city = e.detail.value[1];
- this.address.district = e.detail.value[2];
- this.address.provinceName = e.detail.value[0] + e.detail.value[1] + e.detail.value[2];
-
- uni.setStorageSync('user_address', JSON.stringify(this.address))
- },
-
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .page{
- .logo{
- width: 600rpx;
- margin: 150rpx 75rpx;
- }
- .content{
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
- padding: 0 60rpx;
- text-align: center;
- width: 700rpx;
- height: 650rpx;
- margin: 0 25rpx;
- .content-bg{
- height: 100%;
- width: 100%;
- position: absolute;
- top: 0;
- left: 0;
- z-index: -1;
- }
- }
- }
-
- .region{
- display: flex;
- align-items: center;
- &>view{
- width: 140rpx;
- height: 50rpx;
- border-radius: 10rpx;
- border: 1px solid #e6bf7f;
- margin: 0 10rpx;
- line-height: 50rpx;
- text-align: center;
- }
- }
-
- .b-btn{
- width: 86%;
- display: flex;
- justify-content: center;
- padding-top: 130rpx;
-
- .pre-btn{
- border: 4rpx solid #f1e0c6;
- padding: 16rpx 90rpx;
- border-radius: 66rpx;
- color: #e6bf7f;
- }
- }
-
- .next-btn{
- width: 120rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- color: white;
- padding: 16rpx 90rpx;
- background-color: $uni-color;
- border-radius: 30rpx;
- }
- .next-btn-2{
- width: 120rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- color: white;
- padding: 16rpx 90rpx;
- background-color: $uni-color-primary;
- border-radius: 30rpx;
- }
-
- .an{
- position: fixed;
- bottom: 300rpx;
- text-align: center;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- width: 100%;
- }
- .second-color{
- margin-top: 20rpx;
- }
- </style>
|