348 lines
10 KiB
Plaintext
348 lines
10 KiB
Plaintext
<style lang="less" scoped>
|
||
@import url(../../styles/theme.less);
|
||
page {
|
||
background-color: #ffffff;
|
||
}
|
||
.ui-otherHalfDemand{
|
||
padding-bottom: 200rpx;
|
||
}
|
||
.ui-top-tips{
|
||
background: #f8f8f8;
|
||
padding: 20rpx 0
|
||
}
|
||
.ui-demand_box{
|
||
margin: 34rpx 50rpx 0 50rpx;
|
||
.demand_item_box{
|
||
padding-bottom: 50rpx;
|
||
.demand_item_title{
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
.m_tsc {
|
||
flex-wrap: wrap;
|
||
.u_tsc_bu {
|
||
padding: 12rpx 26rpx;
|
||
line-height: 40rpx;
|
||
border-radius: 100rpx;
|
||
background-color: #F8F8F8;
|
||
margin-right: 46rpx;
|
||
margin-bottom: 30rpx;
|
||
.u_add_img {
|
||
width: 20rpx;
|
||
height: 20rpx;
|
||
margin-right: 8rpx;
|
||
}
|
||
.u_del_img {
|
||
width: 16rpx;
|
||
height: 16rpx;
|
||
margin-left: 16rpx;
|
||
}
|
||
}
|
||
.u_tsc_bu.sel {
|
||
color: #F33B6C;
|
||
background-color: #FFF4F7;
|
||
}
|
||
}
|
||
}
|
||
.m_sub {
|
||
width: 100%;
|
||
position: fixed;
|
||
bottom: 90rpx;
|
||
left: 0;
|
||
.saveButton{
|
||
width: 520rpx;
|
||
height: 80rpx;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||
border-radius: 44px;
|
||
margin: 0 auto;
|
||
}
|
||
}
|
||
}
|
||
.prompt_box{
|
||
position: relative;
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
width: 600rpx;
|
||
max-width: 100%;
|
||
background-color: #ffffff;
|
||
border-radius: 24rpx;
|
||
overflow: hidden;
|
||
margin-top: -8vh;
|
||
.promptTitle{
|
||
padding: 40rpx 0;
|
||
}
|
||
.promptSubTitle{
|
||
margin: 0 56rpx
|
||
}
|
||
.give_up_button{
|
||
width: 320rpx;
|
||
height: 68rpx;
|
||
line-height: 68rpx;
|
||
border-radius: 34rpx;
|
||
background: #ff5380;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
margin: 60rpx auto 0 auto;
|
||
}
|
||
}
|
||
// 互动条的粗细
|
||
wx-slider .wx-slider-handle-wrapper{
|
||
height: 12rpx;
|
||
}
|
||
</style>
|
||
<template>
|
||
<view class="ui-otherHalfDemand" v-if="loading">
|
||
<view class="ui-top-tips">
|
||
<view class="font_24 ui-mr-30 ui-ml-30">
|
||
我们将根据你设置的条件优先给你推荐用户,当满足要求用户不足时,可能会自动放宽匹配条件。规则设置后第二天匹配生效。
|
||
</view>
|
||
</view>
|
||
<view class="ui-demand_box">
|
||
<view class="demand_item_box">
|
||
<view class="demand_item_title font_30 color333 bold">
|
||
你希望Ta的年龄是
|
||
<view class="color999 bold">{{hopeAgeData.min}}<span class="ui-ml-4 ui-mr-4">-</span>{{hopeAgeData.max}}</view>
|
||
</view>
|
||
<bothwaySlider :sliderData.sync="hopeAgeData" @compontpass="changeAge" :sliderType="'age'"></bothwaySlider>
|
||
</view>
|
||
<view class="demand_item_box">
|
||
<view class="demand_item_title font_30 color333 bold">
|
||
你希望Ta的身高是
|
||
<view class="color999 bold">{{hopeStatureData.min}}<span class="ui-ml-4 ui-mr-4">-</span>{{hopeStatureData.max}}</view>
|
||
</view>
|
||
<bothwaySlider :sliderData.sync="hopeStatureData" @compontpass="changeStature" :sliderType="'stature'"></bothwaySlider>
|
||
</view>
|
||
<view class="demand_item_box">
|
||
<view class="font_30 color333 bold f-fc ui-pb-32">你希望Ta所在的城市 <text class="font_24 color666">(自定义最多选择7个)</text></view>
|
||
<view class="f-fc m_tsc" style="overflow: hidden">
|
||
<view class="u_tsc_bu f-fcc font_28 color666 {{tscListLength == 0 ? 'sel' : ''}}" @tap="wholeDelete">同城优先</view>
|
||
<view class="u_tsc_bu f-fcc font_28 color666 sel" v-for="(item,index) in tscList" :key="index" @tap="deleteTsc(index)">
|
||
<view>{{item}}</view>
|
||
<image class="u_del_img" src="https://images.ufutx.com/202106/18/cda8d68011fec82c2672ce5a4ff48a6d.png" mode="aspectFit" lazy-load="false"></image>
|
||
</view>
|
||
<view class="u_tsc_bu f-fcc" v-if="tscList.length < 7">
|
||
<selectCity :multiIndex.sync="multiIndex" @selectCity="selectCity">
|
||
<view class="f-fc">
|
||
<image class="u_add_img" src="https://images.ufutx.com/202106/18/2cafc8a1ceb30f23ec10438478d78706.png" mode="aspectFit" lazy-load="false"></image>
|
||
<view class=" font_28 color666">自定义</view>
|
||
</view>
|
||
</selectCity>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="demand_item_box">
|
||
<view class="font_30 color333 bold ui-pb-32">你希望Ta的情感状态是</view>
|
||
<view class="f-fc m_tsc" style="overflow: hidden">
|
||
<view v-for="(item,index) in stateList" :key="index" @tap="hopeState(item)" class="u_tsc_bu f-fcc font_28 color666 {{state == item ? 'sel' : ''}}">{{item == '情感不限' ? '都可以' : item}}</view>
|
||
</view>
|
||
</view>
|
||
<view class="demand_item_box">
|
||
<view class="font_30 color333 bold ui-pb-32">你希望Ta是</view>
|
||
<view class="f-fc m_tsc" style="overflow: hidden">
|
||
<view @tap="hopeCertification('1')" class="u_tsc_bu f-fcc font_28 color666 {{ selectCertification == 1 ? 'sel' : ''}}">都可以</view>
|
||
<view @tap="hopeCertification('2')" class="u_tsc_bu f-fcc font_28 color666 {{ selectCertification == 2 && approveState ? 'sel' : ''}}">认证用户</view>
|
||
</view>
|
||
</view>
|
||
<view class="m_sub f-fcc">
|
||
<view class="saveButton font_32 white bold" @tap="save">保存</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="cu-modal {{modalName == 'certification' ? 'show' : ''}}">
|
||
<view class="prompt_box ui-pb-30">
|
||
<view class="promptTitle font_36 color-333 bold">提示</view>
|
||
<view class="font_32 color333 promptSubTitle">为了保证用户的优质和真实,请先成为认证用户</view>
|
||
<view class="give_up_button font_32 white" @tap="jumpPath">认证</view>
|
||
<view class="font_28 color999 ui-mt-28" @tap="modalName = ''">取消</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import wepy from '@wepy/core'
|
||
import https from '../../mixins/https'
|
||
import base from '../../mixins/base'
|
||
import {service} from '../../config'
|
||
|
||
wepy.page({
|
||
config: {},
|
||
mixins: [https, base],
|
||
|
||
computed: {
|
||
tscListLength() {
|
||
return this.tscList.length
|
||
}
|
||
},
|
||
data: {
|
||
loading: false,
|
||
modalName: '',
|
||
approveState: 0, // 用户的认证状态
|
||
hopeAgeData: {
|
||
min: 22,
|
||
max: 75
|
||
},
|
||
hopeStatureData: {
|
||
min: 140,
|
||
max: 200
|
||
},
|
||
tscList: [], // 自定义所在的城市
|
||
multiIndex: [0, 18, 2], // 自定义所在的城市默认下标
|
||
state: '情感不限', // 选中的情感状态
|
||
stateList: ['情感不限', '单身', '离异', '丧偶'], // 希望Ta的情感状态类型
|
||
selectCertification: '1' // 希望Ta是都可以还是认证用户
|
||
},
|
||
methods: {
|
||
getInfo() {
|
||
let vm = this
|
||
vm.$showLoading('加载中...')
|
||
vm.$get({url: `${service.host}/moment/home`}).then(({code, data}) => {
|
||
if (code === 0) {
|
||
vm.approveState = data.is_real_approved
|
||
}
|
||
wx.hideLoading()
|
||
}).catch(err => {
|
||
wx.hideLoading()
|
||
console.log(err)
|
||
})
|
||
},
|
||
getData() {
|
||
let vm = this
|
||
vm.$get({url: `${service.host}/preferences`}).then(({code, data}) => {
|
||
if (code === 0) {
|
||
if (data.city_list_claim) {
|
||
vm.tscList = data.city_list_claim.replace(/市/g, '').split(',')
|
||
}
|
||
vm.hopeAgeData = {
|
||
min: data.min_age ? data.min_age : 22,
|
||
max: data.max_age ? data.max_age : 75
|
||
}
|
||
vm.hopeStatureData = {
|
||
min: data.min_height ? data.min_height : 140,
|
||
max: data.max_height ? data.max_height : 200
|
||
}
|
||
vm.state = data.mate_conditon.state ? data.mate_conditon.state : '情感不限'
|
||
vm.selectCertification = data.approve_claim
|
||
}
|
||
vm.loading = true
|
||
}).catch(err => {
|
||
console.log(err)
|
||
})
|
||
},
|
||
// 保存
|
||
save() {
|
||
let vm = this
|
||
let tscListJoint = ''
|
||
if (vm.tscList.length > 0) {
|
||
tscListJoint = vm.tscList.join(',')
|
||
}
|
||
let data = {
|
||
min_age: vm.hopeAgeData.min,
|
||
max_age: vm.hopeAgeData.max,
|
||
min_height: vm.hopeStatureData.min,
|
||
max_height: vm.hopeStatureData.max,
|
||
city_claim: vm.tscList.length == 0 ? 1 : 3,
|
||
city_list_claim: tscListJoint,
|
||
state: vm.state,
|
||
approve_claim: vm.selectCertification
|
||
}
|
||
console.log(data, '888')
|
||
vm.$showLoading('保存中...')
|
||
vm.$post({url: `${service.host}/preference`, data}).then(({code, data}) => {
|
||
if (code == 0) {
|
||
vm.$showToast('保存成功')
|
||
setTimeout(() => {
|
||
wx.navigateBack({
|
||
delta: 1
|
||
})
|
||
}, 1200)
|
||
}
|
||
wx.hideLoading()
|
||
}).catch(() => {
|
||
wx.hideLoading()
|
||
})
|
||
},
|
||
// 滑动条年龄数值
|
||
changeAge(e) {
|
||
let vm = this
|
||
vm.hopeAgeData.min = e.slider1Value
|
||
vm.hopeAgeData.max = e.slider2Value
|
||
},
|
||
// 滑动条身高数值
|
||
changeStature(e) {
|
||
let vm = this
|
||
vm.hopeStatureData.min = e.slider1Value
|
||
vm.hopeStatureData.max = e.slider2Value
|
||
},
|
||
// 删除自定义希望Ta所在的城市
|
||
deleteTsc(index) {
|
||
let vm = this
|
||
vm.tscList.splice(index, 1)
|
||
},
|
||
// 选择同城优先后清空自定义
|
||
wholeDelete() {
|
||
let vm = this
|
||
vm.tscList = []
|
||
},
|
||
// 组件调用此方法返回选中希望Ta所在的城市
|
||
selectCity(e, index) {
|
||
let vm = this
|
||
let exist = false
|
||
vm.tscList.forEach((item) => {
|
||
if (e[2].replace(/市/g, '') == item) {
|
||
exist = true
|
||
}
|
||
})
|
||
if (exist) {
|
||
return
|
||
}
|
||
vm.tscList.push(e[2].replace(/市/g, ''))
|
||
console.log(vm.tscList.length, '787777')
|
||
},
|
||
// 希望Ta的情感状态
|
||
hopeState(e) {
|
||
let vm = this
|
||
vm.state = e
|
||
},
|
||
// 希望Ta的认证状态
|
||
hopeCertification(e) {
|
||
let vm = this
|
||
if (!vm.approveState) {
|
||
vm.modalName = 'certification'
|
||
return
|
||
}
|
||
vm.selectCertification = e
|
||
},
|
||
jumpPath() {
|
||
wx.navigateTo({url: `/pages/users/realName`})
|
||
}
|
||
},
|
||
onShow() {
|
||
let vm = this
|
||
vm.getInfo()
|
||
},
|
||
onLoad() {
|
||
let vm = this
|
||
vm.getData()
|
||
}
|
||
})
|
||
</script>
|
||
<config>
|
||
{
|
||
navigationBarTitleText: '对另一半要求',
|
||
enablePullDownRefresh: false,
|
||
backgroundColorTop: '#ffffff',
|
||
backgroundColorBottom: '#ffffff',
|
||
usingComponents: {
|
||
bothwaySlider: '~@/components/bothwaySlider',
|
||
selectCity: '~@/components/selectCity'
|
||
}
|
||
}
|
||
</config>
|