update
This commit is contained in:
parent
ec69d418ac
commit
60e2244724
2044
package-lock.json
generated
2044
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
49
src/app.wpy
49
src/app.wpy
@ -1,5 +1,8 @@
|
|||||||
<style lang="less">
|
<style lang="less">
|
||||||
@import './styles/index.less';
|
@import './styles/index.less';
|
||||||
|
@import './colorui/icon.wxss';
|
||||||
|
@import './colorui/main.wxss';
|
||||||
|
@import './colorui/animation.wxss';
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -16,7 +19,8 @@ import vuex from '@wepy/x'
|
|||||||
import promisify from '@wepy/use-promisify'
|
import promisify from '@wepy/use-promisify'
|
||||||
import { wx_login } from './utils/util'
|
import { wx_login } from './utils/util'
|
||||||
import { IM } from './utils/im'
|
import { IM } from './utils/im'
|
||||||
import {service} from './config'
|
import {initEid} from './mp_ecard_sdk/main'
|
||||||
|
// import {service} from './config'
|
||||||
|
|
||||||
wepy.use(promisify)
|
wepy.use(promisify)
|
||||||
wepy.use(vuex)
|
wepy.use(vuex)
|
||||||
@ -47,6 +51,7 @@ wepy.app({
|
|||||||
onLaunch() {
|
onLaunch() {
|
||||||
let vm = this
|
let vm = this
|
||||||
vm.appLogin()
|
vm.appLogin()
|
||||||
|
initEid()
|
||||||
wx.getSystemInfo({
|
wx.getSystemInfo({
|
||||||
success: res => {
|
success: res => {
|
||||||
vm.$options.globalData.bottomHeight = res.screenHeight - res.safeArea.bottom
|
vm.$options.globalData.bottomHeight = res.screenHeight - res.safeArea.bottom
|
||||||
@ -73,6 +78,7 @@ wepy.app({
|
|||||||
vm.$options.globalData.navTop = menuButtonInfo.top
|
vm.$options.globalData.navTop = menuButtonInfo.top
|
||||||
vm.$options.globalData.navHeight = menuButtonInfo.height
|
vm.$options.globalData.navHeight = menuButtonInfo.height
|
||||||
vm.$options.globalData.windowHeight = systemInfo.windowHeight - vm.$options.globalData.navBarHeight
|
vm.$options.globalData.windowHeight = systemInfo.windowHeight - vm.$options.globalData.navBarHeight
|
||||||
|
vm.$options.globalData.systemInfo = systemInfo
|
||||||
},
|
},
|
||||||
|
|
||||||
onShow(options) {
|
onShow(options) {
|
||||||
@ -102,7 +108,7 @@ wepy.app({
|
|||||||
let vm = this
|
let vm = this
|
||||||
wx_login().then((e) => {
|
wx_login().then((e) => {
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
let {accid, token} = e.data.user.wyy_user
|
let {accid, token} = e.data.im_user // wyy_user
|
||||||
vm.$options.globalData.nim = IM(accid, token)
|
vm.$options.globalData.nim = IM(accid, token)
|
||||||
}).catch((msg) => {
|
}).catch((msg) => {
|
||||||
wx.showModal({ // 使用模态框提示用户进行操作
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
@ -131,6 +137,11 @@ pages: [
|
|||||||
'pages/tabBar/news',
|
'pages/tabBar/news',
|
||||||
'pages/tabBar/user',
|
'pages/tabBar/user',
|
||||||
'pages/login',
|
'pages/login',
|
||||||
|
'mp_ecard_sdk/index/index',
|
||||||
|
'mp_ecard_sdk/protocol/service/index',
|
||||||
|
'mp_ecard_sdk/protocol/privacy/index',
|
||||||
|
'mp_ecard_sdk/protocol/userAccredit/index',
|
||||||
|
'mp_ecard_sdk/protocol/eid/index'
|
||||||
],
|
],
|
||||||
'permission': {
|
'permission': {
|
||||||
'scope.userFuzzyLocation': {
|
'scope.userFuzzyLocation': {
|
||||||
@ -175,6 +186,40 @@ subPackages: [
|
|||||||
'systemNews',
|
'systemNews',
|
||||||
'visitor',
|
'visitor',
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'root': 'pages/users',
|
||||||
|
'pages': [
|
||||||
|
'unmarriV2',
|
||||||
|
'unmarriV3',
|
||||||
|
'unmarri',
|
||||||
|
'myCertification',
|
||||||
|
'artificial',
|
||||||
|
'realName',
|
||||||
|
'selfTextarea',
|
||||||
|
'setTing',
|
||||||
|
'aboutLove',
|
||||||
|
'blacklist',
|
||||||
|
'logout',
|
||||||
|
'degreeCertificate',
|
||||||
|
'schools',
|
||||||
|
'friendlist',
|
||||||
|
'report',
|
||||||
|
'upgradeVIP',
|
||||||
|
'upgradeVIP2',
|
||||||
|
'myOrderList',
|
||||||
|
'orderDetails',
|
||||||
|
'exclusiveService',
|
||||||
|
'myDynamic',
|
||||||
|
'logoutDefault',
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'root': 'pages/books',
|
||||||
|
'pages': [
|
||||||
|
'bookDetail',
|
||||||
|
'schoolVerify',
|
||||||
|
]
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
window: {
|
window: {
|
||||||
|
|||||||
184
src/colorui/animation.wxss
Normal file
184
src/colorui/animation.wxss
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
/*
|
||||||
|
Animation 微动画
|
||||||
|
基于ColorUI组建库的动画模块 by 文晓港 2019年3月26日19:52:28
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* css 滤镜 控制黑白底色gif的 */
|
||||||
|
.gif-black{
|
||||||
|
mix-blend-mode: screen;
|
||||||
|
}
|
||||||
|
.gif-white{
|
||||||
|
mix-blend-mode: multiply;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Animation css */
|
||||||
|
[class*=animation-] {
|
||||||
|
animation-duration: .5s;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
animation-fill-mode: both
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-fade {
|
||||||
|
animation-name: fade;
|
||||||
|
animation-duration: .8s;
|
||||||
|
animation-timing-function: linear
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-scale-up {
|
||||||
|
animation-name: scale-up
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-scale-down {
|
||||||
|
animation-name: scale-down
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-slide-top {
|
||||||
|
animation-name: slide-top
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-slide-bottom {
|
||||||
|
animation-name: slide-bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-slide-left {
|
||||||
|
animation-name: slide-left
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-slide-right {
|
||||||
|
animation-name: slide-right
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-shake {
|
||||||
|
animation-name: shake
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-reverse {
|
||||||
|
animation-direction: reverse
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade {
|
||||||
|
0% {
|
||||||
|
opacity: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes scale-up {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: scale(.2)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: scale(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes scale-down {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: scale(1.8)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: scale(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes slide-top {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(-100%)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes slide-bottom {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(100%)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes shake {
|
||||||
|
|
||||||
|
0%,
|
||||||
|
100% {
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
10% {
|
||||||
|
transform: translateX(-9px)
|
||||||
|
}
|
||||||
|
|
||||||
|
20% {
|
||||||
|
transform: translateX(8px)
|
||||||
|
}
|
||||||
|
|
||||||
|
30% {
|
||||||
|
transform: translateX(-7px)
|
||||||
|
}
|
||||||
|
|
||||||
|
40% {
|
||||||
|
transform: translateX(6px)
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: translateX(-5px)
|
||||||
|
}
|
||||||
|
|
||||||
|
60% {
|
||||||
|
transform: translateX(4px)
|
||||||
|
}
|
||||||
|
|
||||||
|
70% {
|
||||||
|
transform: translateX(-3px)
|
||||||
|
}
|
||||||
|
|
||||||
|
80% {
|
||||||
|
transform: translateX(2px)
|
||||||
|
}
|
||||||
|
|
||||||
|
90% {
|
||||||
|
transform: translateX(-1px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes slide-left {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateX(-100%)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes slide-right {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateX(100%)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
1226
src/colorui/icon.wxss
Normal file
1226
src/colorui/icon.wxss
Normal file
File diff suppressed because one or more lines are too long
3991
src/colorui/main.wxss
Normal file
3991
src/colorui/main.wxss
Normal file
File diff suppressed because it is too large
Load Diff
488
src/components/UnlockingDialog.wpy
Normal file
488
src/components/UnlockingDialog.wpy
Normal file
@ -0,0 +1,488 @@
|
|||||||
|
<template>
|
||||||
|
<view class="UnlockingDialog">
|
||||||
|
<view :class="{'~show':modalName == 'unlockModal'}" class="~cu-modal">
|
||||||
|
<view class="open_unlock_box" style="padding-top: 126rpx;">
|
||||||
|
<image class="unlockPrompt_bg" src="https://images.ufutx.com/202106/01/3ae4aefd9aed69d6800ed12cac94fbb2.png" mode="widthFix"></image>
|
||||||
|
<image v-if="ios" class="unlock_bg" src="https://images.ufutx.com/202106/02/d398cbcc114dbfce26470db15d47716c.png" mode="widthFix" @tap="goTo('/pages/users/upgradeVIP?chat_user_id={{chat_user_id}}')"></image>
|
||||||
|
<image v-else class="unlock_bg" src="https://images.ufutx.com/202106/02/d398cbcc114dbfce26470db15d47716c.png" mode="widthFix" @tap="determine('vipModal')"></image>
|
||||||
|
<view class="font_24 color-666" style="padding: 16rpx 0 24rpx 0">
|
||||||
|
</view>
|
||||||
|
<image class="cancel_unlock_icon" @tap="hideModal" src="https://images.ufutx.com/202103/12/1033c7b52cacddcebe999cefc6ad2c9b.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view :class="{'~show': modalName=='purchaseModal'}" class="~cu-modal ">
|
||||||
|
<view class="open_confirm_box">
|
||||||
|
<view class="confirm_prompt ~font_32">购买会员服务后可使用此功能,请及时购买</view>
|
||||||
|
<image class="cancelIcon" src="https://images.ufutx.com/202103/12/4281e92bc8b727bae08099a3015225b1.png" mode="widthFix" @tap="hideModal"></image>
|
||||||
|
<image class="determineIcon" src="https://images.ufutx.com/202103/12/91fea69fdff1cfeaac369ddd5dd591f0.png" mode="widthFix" @tap="determine('vipModal')"></image>
|
||||||
|
<view style="height: 36rpx"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view :class="{'~show': modalName=='iosTipsModal'}" class="~cu-modal">
|
||||||
|
<view class="open_confirm_box">
|
||||||
|
<view class="confirm_prompt ~font_32" style="padding: 68rpx 46rpx;line-height: 44rpx;">此功能需要开通VIP,因微信限制,暂不支持直接购买会员,可以通过联系客服去购买</view>
|
||||||
|
<view class="m_bu ~f-fbc">
|
||||||
|
<view class="u_hide_bu ~font_32 ~color999 ~f-fcc" @tap="hideModal">取消</view>
|
||||||
|
<button class="btn service" hover-class="~btn_active" @tap.stop="handleContact">
|
||||||
|
<view class="u_pur_bu u_exc ~font_28 ~text-center ~f-fcc">联系客服</view>
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="cu-modal {{modalName=='confirm'?'show':''}}">-->
|
||||||
|
<!-- <view class="open_confirm_box">-->
|
||||||
|
<!-- <view class="confirm_prompt font_32">是否确定使用10个福币解锁一次打招呼</view>-->
|
||||||
|
<!-- <image class="cancelIcon" src="https://images.ufutx.com/202103/12/4281e92bc8b727bae08099a3015225b1.png" mode="widthFix" @tap="hideModal"></image>-->
|
||||||
|
<!-- <image class="determineIcon" src="https://images.ufutx.com/202103/12/91fea69fdff1cfeaac369ddd5dd591f0.png" mode="widthFix" @tap="save"></image>-->
|
||||||
|
<!-- <view style="height: 36rpx"></view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<view :class="{'~show': modalName=='vipModal'}" class="~cu-modal">
|
||||||
|
<view class="open_vip_box">
|
||||||
|
<view class="cancel_icon_box" @tap="hideModal">
|
||||||
|
<image src="https://images.ufutx.com/202012/21/7bc531d74f41cce95ede5582232fd2f3.png" mode="widthFix" class="cancel_icon"></image>
|
||||||
|
</view>
|
||||||
|
<view class="vip_head_bg">
|
||||||
|
<view class="~font_36 ~bold open_vip_title">开通VIP会员</view>
|
||||||
|
<view class="swiper_box">
|
||||||
|
<swiper style="height: 100%;" autoplay="true" indicator-color="#c5c5c5" indicator-active-color="#ffffff">
|
||||||
|
<block v-for="(item,index) in shufflingPic" :key="index">
|
||||||
|
<swiper-item>
|
||||||
|
<image src="{{item}}" mode="aspectFit" class="shuffling_pic"></image>
|
||||||
|
</swiper-item>
|
||||||
|
</block>
|
||||||
|
</swiper>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="vip_end_box">
|
||||||
|
<view class="vip_tabbar_box">
|
||||||
|
<view :class="{'activeVipTabbarLi': active==index}" class="vip_tabbar_li " v-for="(item,index) in rankList" :key="index" @tap="selectedVip(index, item.id)">
|
||||||
|
<view class="vip_season_recommended font_24 text-center" v-if="index==1">推荐</view>
|
||||||
|
<view class="vip_day ~bold ~color333">
|
||||||
|
<span>{{item.month}}</span>
|
||||||
|
<span class="~font_28">月</span>
|
||||||
|
</view>
|
||||||
|
<view class="~font_28 ~color999" style="padding-bottom: 22rpx">{{item.name}}</view>
|
||||||
|
<view class="dailyCost">
|
||||||
|
<span class="~font_24 ~color999">每日</span>
|
||||||
|
<span class="~font_32 ~bold">¥{{item.month_price}}</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="immediately bold" bindtap="conversion" style="margin-bottom: 24rpx;">立即开通</view>
|
||||||
|
<!-- <view class="font_30 free_experience">免费体验24小时VIP ></view> -->
|
||||||
|
<view class="~font_28 ~color-999 ~text-center agreement">
|
||||||
|
<span style="margin-right: 20rpx" @tap.stop="gotoApp('https://love.ufutx.com/h5/#/serviceAgreementV2')">《用户协议》</span>
|
||||||
|
<span @tap.stop="gotoApp('https://love.ufutx.com/h5/#/PrivacyAgreementV2')">《隐私政策》</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import {service} from '../config.js'
|
||||||
|
import base from '../mixins/base'
|
||||||
|
import https from '../mixins/https'
|
||||||
|
wepy.component({
|
||||||
|
mixins: [base, https],
|
||||||
|
props: {
|
||||||
|
modalName: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
chat_user_id: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
remainAmount: {
|
||||||
|
type: Number,
|
||||||
|
default: 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
data: {
|
||||||
|
shufflingPic: [
|
||||||
|
'https://images.ufutx.com/202012/24/876745955273e0e961489e35e4e4c8bf.png',
|
||||||
|
'https://images.ufutx.com/202012/28/569db86a986090bb52763bd793b62afa.png',
|
||||||
|
'https://images.ufutx.com/202012/28/747ccaaa09358878e966142482739e0d.png',
|
||||||
|
'https://images.ufutx.com/202012/28/cb371b1a17aad8f414ad247a5cb6f552.png',
|
||||||
|
'https://images.ufutx.com/202012/28/e625e1e631592c4619fffce1738405fa.png',
|
||||||
|
'https://images.ufutx.com/202012/28/bff7e2485a4b33820227a01d78b37b7c.png'
|
||||||
|
],
|
||||||
|
ios: false,
|
||||||
|
active: 1,
|
||||||
|
selectedVal: '',
|
||||||
|
rankList: [],
|
||||||
|
payId: ''
|
||||||
|
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
modalName(e) {
|
||||||
|
console.log(e, 'e-===')
|
||||||
|
this.$emit('unlockingCut', e)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async ready() {
|
||||||
|
console.log('----999990000')
|
||||||
|
this.jumpTopUp()
|
||||||
|
this.getPageData()
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
jumpTopUp () {
|
||||||
|
const info = wx.getSystemInfoSync().system.split(' ')[0]
|
||||||
|
console.log(info, 'gggggg')
|
||||||
|
if (info == 'iOS') {
|
||||||
|
this.ios = true
|
||||||
|
} else {
|
||||||
|
this.ios = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getPageData() {
|
||||||
|
let vm = this
|
||||||
|
vm.$get({url: `${service.host}/rank/list`}).then(({code, data}) => {
|
||||||
|
vm.rankList = data.ranks.sub_ranks
|
||||||
|
vm.payId = vm.rankList[vm.active].id
|
||||||
|
console.log(vm.rankList, 'rankList===')
|
||||||
|
}).finally(() => {
|
||||||
|
this.loaded = false
|
||||||
|
this.init = true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleContact(e) {
|
||||||
|
let vm = this
|
||||||
|
try {
|
||||||
|
wx.previewImage({
|
||||||
|
current: 'https://image.fulllinkai.com/202310/23/2a132a4978ef87d532a817041e425c26.png',
|
||||||
|
urls: ['https://image.fulllinkai.com/202310/23/2a132a4978ef87d532a817041e425c26.png']
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
vm.$showToast('请更新至微信最新版本')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
determine (e) {
|
||||||
|
this.modalName = e
|
||||||
|
},
|
||||||
|
goTo(url) {
|
||||||
|
this.modalName = ''
|
||||||
|
this.$goto(url)
|
||||||
|
},
|
||||||
|
hideModal () {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
selectedVip(index, val) {
|
||||||
|
this.active = index
|
||||||
|
this.payId = val
|
||||||
|
},
|
||||||
|
conversion(item) {
|
||||||
|
let that = this,
|
||||||
|
url = `${service.host}/user/recharge/v2`
|
||||||
|
that.modalName = ''
|
||||||
|
that.$showLoading('支付中...')
|
||||||
|
let data = {
|
||||||
|
sub_rank_id: that.payId,
|
||||||
|
chat_user_id: that.chat_user_id
|
||||||
|
}
|
||||||
|
that.$post({url: url, data}, {
|
||||||
|
success: ({code, data}) => {
|
||||||
|
that.trade_no = data.trade_no
|
||||||
|
if (data.wx_pay.length == 0) {
|
||||||
|
that.$post({url: `${service.orderpay}/${that.trade_no}/v2`}).then(({code, data}) => {
|
||||||
|
// that.getUserData()
|
||||||
|
that.$emit('toUpdateCut')
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
let wxconfig = data.wx_pay.config
|
||||||
|
if (wxconfig.payment_debug) {
|
||||||
|
return that.$post({url: `${service.orderpay}/${that.trade_no}/v2`}).then(({code, data}) => {
|
||||||
|
// that.getUserData()
|
||||||
|
that.$emit('toUpdateCut')
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
wx.requestPayment({
|
||||||
|
timeStamp: wxconfig.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
|
||||||
|
nonceStr: wxconfig.nonceStr, // 支付签名随机串,不长于 32 位
|
||||||
|
package: wxconfig.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
|
||||||
|
signType: wxconfig.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
|
||||||
|
paySign: wxconfig.paySign, // 支付签名
|
||||||
|
success: function (res) {
|
||||||
|
that.$post({url: `${service.orderpay}/${that.trade_no}/v2`}).then(({code, data}) => {
|
||||||
|
// that.getUserData()
|
||||||
|
that.$emit('toUpdateCut')
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: function (res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '已取消支付',
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: ({code, data}) => {
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
setTimeout(() => {
|
||||||
|
wx.hideLoading()
|
||||||
|
}, 1200)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gotoApp(url) {
|
||||||
|
wx.navigateTo({url: '/pages/books/bookDetail?url=' + encodeURIComponent(url)})
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
let vm = this
|
||||||
|
if (vm.remainAmount < 10) {
|
||||||
|
vm.modalName = 'insufficientModal'
|
||||||
|
return
|
||||||
|
}
|
||||||
|
vm.$post({url: `${service.host}/app/user/sayHello`}).then(({code, data}) => {
|
||||||
|
this.$emit('sayHelloCall')
|
||||||
|
vm.modalName = ''
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
page view {
|
||||||
|
line-height: 20px;
|
||||||
|
font-family: "Helvetica Neue", Helvetica, 'microsoft yahei ui', 'microsoft yahei', 'simhei', Arial, sans-serif;
|
||||||
|
}
|
||||||
|
.UnlockingDialog {
|
||||||
|
.open_vip_box, .open_unlock_box, .open_coinInsufficient_box, .open_confirm_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;
|
||||||
|
.unlockPrompt_bg{
|
||||||
|
position: absolute;
|
||||||
|
top: -100rpx;
|
||||||
|
width: 562rpx;
|
||||||
|
height: 212rpx;
|
||||||
|
}
|
||||||
|
.unlock_bg, .unlock_vip_bg{
|
||||||
|
width: 560rpx;
|
||||||
|
height: 180rpx;
|
||||||
|
}
|
||||||
|
.unlock_vip_bg{
|
||||||
|
margin-left: 22rpx;
|
||||||
|
}
|
||||||
|
.cancel_unlock_icon{
|
||||||
|
width: 48rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
position: fixed;
|
||||||
|
margin-top: 60rpx;
|
||||||
|
margin-left: -24rpx;
|
||||||
|
z-index: 99;
|
||||||
|
}
|
||||||
|
.coin_icon{
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -6rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.open_coinInsufficient_box{
|
||||||
|
.insufficient_prompt{
|
||||||
|
margin: 0 76rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
padding: 76rpx 0 58rpx 0;
|
||||||
|
}
|
||||||
|
.task_button{
|
||||||
|
width: 320rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 32rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
background: #FF5380;
|
||||||
|
margin: 0 auto;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.cancel_insufficient_icon{
|
||||||
|
width: 48rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
position: fixed;
|
||||||
|
margin-top: 110rpx;
|
||||||
|
margin-left: -24rpx;
|
||||||
|
z-index: 99;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.open_confirm_box{
|
||||||
|
.confirm_prompt{
|
||||||
|
padding: 68rpx 90rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
}
|
||||||
|
.cancelIcon{
|
||||||
|
width: 192rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
margin-right: 64rpx;
|
||||||
|
}
|
||||||
|
.determineIcon{
|
||||||
|
width: 192rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
}
|
||||||
|
.m_bu {
|
||||||
|
padding: 0rpx 74rpx 38rpx;
|
||||||
|
.u_hide_bu,
|
||||||
|
.u_pur_bu {
|
||||||
|
width: 192rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
border: 2rpx solid #D8D8D8;
|
||||||
|
border-radius: 100rpx;
|
||||||
|
}
|
||||||
|
.u_pur_bu {
|
||||||
|
background-color: #FF5380;
|
||||||
|
color: white;
|
||||||
|
border: 2rpx solid #FF5380;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.open_vip_box{
|
||||||
|
.cancel_icon_box{
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 6rpx;
|
||||||
|
top: 6rpx;
|
||||||
|
.cancel_icon{
|
||||||
|
width: 26rpx;
|
||||||
|
height: 26rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.vip_head_bg{
|
||||||
|
width: 100%;
|
||||||
|
height: 360rpx;
|
||||||
|
background: url('https://images.ufutx.com/202012/24/9886c42dc41aa8676604f25e05d376c4.png');
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
margin-bottom: 48rpx;
|
||||||
|
.open_vip_title{
|
||||||
|
padding-top: 34rpx;
|
||||||
|
color: #f68e12;
|
||||||
|
}
|
||||||
|
.swiper_box{
|
||||||
|
height: 290rpx;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
.shuffling_pic{
|
||||||
|
width: 100%;
|
||||||
|
height: 240rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.vip_end_box{
|
||||||
|
padding-bottom: 48rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
margin: 0 26rpx;
|
||||||
|
.vip_tabbar_box{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.vip_season_tabbar{
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: -20rpx;
|
||||||
|
.vip_tabbar_li{
|
||||||
|
padding: 0 14rpx;
|
||||||
|
height: 200rpx;
|
||||||
|
border-radius: 0 0 8rpx 8rpx;
|
||||||
|
border: 2rpx solid #f2f2f2;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.vip_day{
|
||||||
|
font-size: 48rpx;
|
||||||
|
padding: 24rpx 0 14rpx 0;
|
||||||
|
}
|
||||||
|
.dailyCost{
|
||||||
|
color: #ff9b25;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.activeVipTabbarLi{
|
||||||
|
background: #FFFAF4;
|
||||||
|
border: 2rpx solid #FFAF51;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.vip_tabbar_li{
|
||||||
|
display: inline-block;
|
||||||
|
width: 172rpx;
|
||||||
|
height: 220rpx;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
border: 2rpx solid #f2f2f2;
|
||||||
|
position: relative;
|
||||||
|
.vip_season_recommended{
|
||||||
|
position: absolute;
|
||||||
|
// padding: 0 14rpx;
|
||||||
|
top: -20rpx;
|
||||||
|
left: -2rpx;
|
||||||
|
width: 172rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
border-radius: 8rpx 8rpx 0 0;
|
||||||
|
color: #ffffff;
|
||||||
|
background: #ffaf51;
|
||||||
|
}
|
||||||
|
.vip_day{
|
||||||
|
font-size: 48rpx;
|
||||||
|
padding: 40rpx 0 14rpx 0;
|
||||||
|
}
|
||||||
|
.dailyCost{
|
||||||
|
color: #ff9b25;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.activeVipTabbarLi{
|
||||||
|
background: #FFFAF4;
|
||||||
|
border: 2rpx solid #FFAF51;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.immediately{
|
||||||
|
width: 360rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 88rpx;
|
||||||
|
border-radius: 88rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
background-image: linear-gradient(to right, #FFC98A 0%, #FFAF51 100%);
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.free_experience{
|
||||||
|
padding: 24rpx 0 34rpx 0;
|
||||||
|
color: #ff9b25;
|
||||||
|
}
|
||||||
|
.agreement{
|
||||||
|
padding-bottom: 32rpx;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.record-chatting-item-text {
|
||||||
|
max-width: 70%;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
background-color: #3387FF;
|
||||||
|
padding: 16rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
word-wrap: break-word;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 32rpx;
|
||||||
|
line-height: 48rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
button:after{
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
187
src/components/chooseImageTips.wpy
Normal file
187
src/components/chooseImageTips.wpy
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
<template>
|
||||||
|
<view class="chooseImageTips">
|
||||||
|
<view :class="{'~show':chooseShow}" class="~cu-modal ~bottom-modal" catchtap="hideModal">
|
||||||
|
<view class="~cu-dialog cu-dialog ">
|
||||||
|
<view class="g_ct">
|
||||||
|
<view class="u_tt ~font_26 ~color999">
|
||||||
|
<view class="~font_26 ~color333">上传本人真实正面照,不规范的头像将无法通过审核哦</view>
|
||||||
|
<image class="u_tt_img" catchtap="hideModal" src="https://images.ufutx.com/202107/26/1a2f798de1a7f2d4f69ba4f9f4936f34.png" mode="aspectFit" lazy-load="false"></image>
|
||||||
|
</view>
|
||||||
|
<view class="~font_24" style="color: #FF6464;text-align: left;padding: 0 30rpx;">(请勿上传个人二维码、个人信息等联系方式的图片)</view>
|
||||||
|
<view class="m_img ~f-fbc" v-if="unmarriVShow">
|
||||||
|
<view>
|
||||||
|
<image src="https://images.ufutx.com/202107/26/c0668beb4677d89f40f217db82b58409.png" lazy-load mode="aspectFill" class="image" />
|
||||||
|
<view class="~font_24 ~color999">记录生活</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<image src="https://images.ufutx.com/202107/26/b93279c76ee33b3ae0a3acfd29ef380a.png" lazy-load mode="aspectFill" class="image" />
|
||||||
|
<view class="~font_24 ~color999">旅行的意义</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<image src="https://images.ufutx.com/202107/26/33c7e305e813cd5374b33a25b1d3fbad.png" lazy-load mode="aspectFill" class="image" />
|
||||||
|
<view class="~font_24 ~color999">热衷的事物</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<image src="https://images.ufutx.com/202107/26/40cc54109333fa37e3b2546d77e5d068.png" lazy-load mode="aspectFill" class="image" />
|
||||||
|
<view class="~font_24 ~color999">萌宠与你</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="m_img ~f-fbc" v-else>
|
||||||
|
<view>
|
||||||
|
<image src="https://images.ufutx.com/202107/26/38ff7d41297d444cf2e7f07788a809c7.png" lazy-load mode="aspectFill" class="image" />
|
||||||
|
<view class="~font_24 ~color999">五官清晰</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<image src="https://images.ufutx.com/202107/26/f65d9c42de6c2e5eabd09e401a5aa3f7.png" lazy-load mode="aspectFill" class="image" />
|
||||||
|
<view class="~font_24 ~color999">墨镜口罩</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<image src="https://images.ufutx.com/202107/26/0478fed7e888f63944f85726588d7144.png" lazy-load mode="aspectFill" class="image" />
|
||||||
|
<view class="~font_24 ~color999">看不清人</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<image src="https://images.ufutx.com/202107/26/2afaf2cb480eae15f039079e0352f611.png" lazy-load mode="aspectFill" class="image" />
|
||||||
|
<view class="~font_24 ~color999">侧脸</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="~u_camera ~font_32 ~color333 padding30" catchtap="onCamera">拍摄</view>
|
||||||
|
<view class="u_album ~font_32 ~color333 padding30" catchtap="onAlbum">从手机相册选择</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import base from '../mixins/base'
|
||||||
|
wepy.component({
|
||||||
|
mixins: [base],
|
||||||
|
props: {
|
||||||
|
chooseShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
unmarriVShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
jumpString: {
|
||||||
|
type: String,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
onModal() {
|
||||||
|
this.chooseShow = false
|
||||||
|
this.$emit('hideCut', {
|
||||||
|
chooseShow: this.chooseShow
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onCamera() {
|
||||||
|
let vm = this
|
||||||
|
wx.chooseImage({
|
||||||
|
count: 1,
|
||||||
|
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||||
|
sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
|
||||||
|
success: (res) => {
|
||||||
|
vm.onModal()
|
||||||
|
let imgSrc = res.tempFilePaths[0]
|
||||||
|
if (!/\.(jpg|jpeg|png|JPG|PNG|JPEG)$/.test(imgSrc)) {
|
||||||
|
vm.$showToast('上传图片只能是 jpg、png、jpeg 格式!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.jumpString) {
|
||||||
|
wx.navigateTo({
|
||||||
|
url: `/pages/users/ImageCropper?src=${imgSrc}&jumpString=${this.jumpString}&newPic=${1}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
vm.$emit('imgSrcCut', {
|
||||||
|
imgSrc: imgSrc
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onAlbum() {
|
||||||
|
let vm = this
|
||||||
|
wx.chooseImage({
|
||||||
|
count: 1,
|
||||||
|
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||||
|
sourceType: ['album'], // 可以指定来源是相册还是相机,默认二者都有
|
||||||
|
success: (res) => {
|
||||||
|
vm.onModal()
|
||||||
|
let imgSrc = res.tempFilePaths[0]
|
||||||
|
if (!/\.(jpg|jpeg|png|JPG|PNG|JPEG)$/.test(imgSrc)) {
|
||||||
|
vm.$showToast('上传图片只能是 jpg、png、jpeg 格式!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.jumpString) {
|
||||||
|
wx.navigateTo({
|
||||||
|
url: `/pages/users/ImageCropper?src=${imgSrc}&jumpString=${this.jumpString}&newPic=${1}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
vm.$emit('imgSrcCut', {
|
||||||
|
imgSrc: imgSrc
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
hideModal() {
|
||||||
|
this.onModal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
.chooseImageTips {
|
||||||
|
.cu-modal {
|
||||||
|
z-index: 9999999999;
|
||||||
|
}
|
||||||
|
.cu-dialog{
|
||||||
|
height: 640rpx;
|
||||||
|
border-radius: 32rpx 32rpx 0px 0px !important;
|
||||||
|
.g_ct {
|
||||||
|
padding: 30rpx 0;
|
||||||
|
.u_tt {
|
||||||
|
padding: 0 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
position: relative;
|
||||||
|
.u_tt_img {
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 30rpx;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_img {
|
||||||
|
padding: 30rpx;
|
||||||
|
border-bottom: 2px solid #F5F5F5;
|
||||||
|
view {
|
||||||
|
image {
|
||||||
|
width: 160rpx;
|
||||||
|
height: 160rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.font_32 {
|
||||||
|
padding: 30rpx;
|
||||||
|
}
|
||||||
|
.u_album {
|
||||||
|
border-top: 2px solid #F5F5F5;
|
||||||
|
// border-bottom: 8px solid #F5F5F5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.padding30{
|
||||||
|
padding: 30rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
262
src/components/cu-custom.wpy
Normal file
262
src/components/cu-custom.wpy
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
<template>
|
||||||
|
<view class="~cu-custom" style="height:{{CustomBar}}px;z-index: 1">
|
||||||
|
<view class="~cu-bar ~fixed {{bgImage!=''?'none-bg text-white bg-img':''}}"
|
||||||
|
style="height:{{CustomBar}}px;padding-top:{{StatusBar}}px;{{bgImage?'background-image:url(' + bgImage+')':''}};{{bgColor}}">
|
||||||
|
<view class="~action" bindtap="BackPage" v-if="isBack">
|
||||||
|
<text class="~cuIcon-back"></text>
|
||||||
|
<!--<block v-if="prevPage">-->
|
||||||
|
<slot name="backText"></slot>
|
||||||
|
<!--</block>-->
|
||||||
|
<!--<block wx:else>-->
|
||||||
|
<!--<view>主页</view>-->
|
||||||
|
<!--</block>-->
|
||||||
|
</view>
|
||||||
|
<view class="~action ~border-custom" v-if="isCustom"
|
||||||
|
style="width:{{Custom.width}}px;height:{{Custom.height}}px;margin-left:calc(750rpx - {{Custom.right}}px)">
|
||||||
|
<text class="~cuIcon-back" bindtap="BackPage"></text>
|
||||||
|
<text class="~cuIcon-homefill" bindtap="toHome"></text>
|
||||||
|
</view>
|
||||||
|
<view class="~content" v-if="!tabNewsShow" style="top:{{StatusBar}}px">
|
||||||
|
<slot name="content"></slot>
|
||||||
|
</view>
|
||||||
|
<view class="m_search f-fc" v-if="tabNewsShow" @tap="goto('/pages/users/friendSearch')">
|
||||||
|
<image class="m_search_icon" src="https://images.ufutx.com/202106/19/c607aaf49440b0df3308d6e048fd9ad7.png" mode="aspectFit" lazy-load="false"></image>
|
||||||
|
<input disabled v-if="tabInputShow" type="text" placeholder="搜索昵称" confirm-type="search" bindinput="inputTyping" value="{{searchValue}}">
|
||||||
|
<input type="text" v-else placeholder="搜索昵称" confirm-type="search" bindinput="inputTyping" value="{{searchValue}}">
|
||||||
|
<image v-if="searchValue.length > 0" bindtap="searchEmpty" class="m_search_icon_add" src="https://images.ufutx.com/202106/30/03404c702dc077428d7af781f98e15a3.png" mode="aspectFit" lazy-load="false"></image>
|
||||||
|
</view>
|
||||||
|
<slot name="right"></slot>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view :class="{'~show':modalName=='Modal'}" class="~cu-modal ">
|
||||||
|
<view class="cu-dialog">
|
||||||
|
<view class="cu-bar bg-white justify-end">
|
||||||
|
<view class="~content">提示</view>
|
||||||
|
<view class="action" bindtap="hideModal">
|
||||||
|
<text class="cuIcon-close text-red"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="padding-xl">
|
||||||
|
<view>暂无上级页面可返回,请点击右边 <text class="cuIcon-homefill" bindtap="toHome"></text> 返回主页</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <loginDialog :loginShow.sync="loginShow"></loginDialog>-->
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../mixins/https'
|
||||||
|
import base from '../mixins/base'
|
||||||
|
// import loginDialog from './loginDialog'
|
||||||
|
// import ShareMessage from '../mixins/ShareMessage'
|
||||||
|
wepy.component({
|
||||||
|
mixins: [base, https],
|
||||||
|
// components = {
|
||||||
|
// loginDialog
|
||||||
|
// }
|
||||||
|
options: {
|
||||||
|
multipleSlots: true // 在组件定义时的选项中启用多slot支持
|
||||||
|
},
|
||||||
|
externalClasses: ['bgColor'],
|
||||||
|
props: {
|
||||||
|
bgColor: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
isCustom: {
|
||||||
|
type: [Boolean, String],
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
isBack: {
|
||||||
|
type: [Boolean, String],
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
tabNewsShow: {
|
||||||
|
type: [Boolean, String],
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
tabInputShow: {
|
||||||
|
type: [Boolean, String],
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
bgImage: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
handleIndex: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
tex: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
imgs: {
|
||||||
|
type: Array,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
hottopic: {
|
||||||
|
type: Array,
|
||||||
|
default: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
loginShow: false,
|
||||||
|
StatusBar: 0,
|
||||||
|
CustomBar: 0,
|
||||||
|
Custom: 0,
|
||||||
|
modalName: '', // 是否弹框
|
||||||
|
prevPage: '', // 是否有上个页面
|
||||||
|
token: '',
|
||||||
|
searchValue: ''
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.StatusBar = this.$app.$options.globalData.StatusBar
|
||||||
|
this.CustomBar = this.$app.$options.globalData.CustomBar
|
||||||
|
this.Custom = this.$app.$options.globalData.Custom
|
||||||
|
},
|
||||||
|
ready() {
|
||||||
|
console.log(this.handleIndex, '---')
|
||||||
|
let pages = getCurrentPages()
|
||||||
|
console.log(pages, 'pages==')
|
||||||
|
this.token = wx.getStorageSync('token')
|
||||||
|
let prevPage = pages[pages.length - 2] // 上一个页面
|
||||||
|
this.prevPage = prevPage
|
||||||
|
console.log(this.prevPage, 'prevPage=')
|
||||||
|
try {
|
||||||
|
var systemInfo = wx.getSystemInfoSync()
|
||||||
|
this.computeNavigateBarHeight(systemInfo)
|
||||||
|
} catch (e) {
|
||||||
|
// 获取系统信息失败
|
||||||
|
this.setData({
|
||||||
|
windowHeight: 812,
|
||||||
|
totalTopHeight: 68,
|
||||||
|
statusBarHeight: 20,
|
||||||
|
titleBarHeight: 48
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
computeNavigateBarHeight(systemInfo) {
|
||||||
|
let menuButtonObject = wx.getMenuButtonBoundingClientRect()
|
||||||
|
let totalTopHeight = systemInfo.statusBarHeight + menuButtonObject.height + (menuButtonObject.top - systemInfo.statusBarHeight) * 2 // 导航高度
|
||||||
|
let windowHeight = systemInfo.windowHeight,
|
||||||
|
statusBarHeight = systemInfo.statusBarHeight
|
||||||
|
this.windowHeight = windowHeight
|
||||||
|
this.CustomBar = totalTopHeight
|
||||||
|
this.StatusBar = statusBarHeight
|
||||||
|
this.titleBarHeight = totalTopHeight - statusBarHeight + 4
|
||||||
|
},
|
||||||
|
hideModal() {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
BackPage() {
|
||||||
|
let page = getCurrentPages()
|
||||||
|
let prevPages = page[page.length - 1]
|
||||||
|
wx.removeStorageSync('groupMemberRow')
|
||||||
|
if (this.handleIndex == 1) {
|
||||||
|
if (this.tex != '' || this.imgs != '') {
|
||||||
|
prevPages.handle()
|
||||||
|
} else {
|
||||||
|
wx.setStorageSync('draft', {
|
||||||
|
texs: '',
|
||||||
|
imags: []
|
||||||
|
})
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.prevPage) {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
wx.reLaunch({
|
||||||
|
url: '/pages/tabBar/welcome'
|
||||||
|
})
|
||||||
|
// this.modalName = 'Modal'
|
||||||
|
// this.$apply()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
toHome () {
|
||||||
|
wx.removeStorageSync('groupMemberRow')
|
||||||
|
wx.reLaunch({
|
||||||
|
url: '/pages/tabBar/welcome'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goto(url, text) {
|
||||||
|
if (this.tabNewsShow && this.isBack) return
|
||||||
|
if (!this.token) {
|
||||||
|
console.log(url)
|
||||||
|
this.loginShow = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (url) {
|
||||||
|
this.modalName = ''
|
||||||
|
wx.navigateTo({
|
||||||
|
url: url
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
inputTyping(e) {
|
||||||
|
this.searchValue = e.detail.value
|
||||||
|
this.$emit('customInput', e)
|
||||||
|
},
|
||||||
|
searchEmpty() {
|
||||||
|
let e = {
|
||||||
|
detail: {
|
||||||
|
value: ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.searchValue = ''
|
||||||
|
this.$emit('customInput', e)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
events: {
|
||||||
|
'loginDialogCut': (e) => {
|
||||||
|
console.log(e)
|
||||||
|
// this.$parent.$parent.getEvent(this.config.navigationBarTitleText, `点击暂不登录`)
|
||||||
|
this.loginShow = e.loginShow
|
||||||
|
},
|
||||||
|
'mobileSuccess': (e) => {
|
||||||
|
console.log(e)
|
||||||
|
// this.$parent.$parent.getEvent(this.config.navigationBarTitleText, `微信私密(登录)`)
|
||||||
|
},
|
||||||
|
'loginDialogShow': (e) => {
|
||||||
|
let vm = this
|
||||||
|
wepy.$instance.pageLogin().then((data) => {
|
||||||
|
vm.token = data.token
|
||||||
|
vm.onShow()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.m_search {
|
||||||
|
width: 446rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
background-color: #F8F8F8;
|
||||||
|
border-radius: 100rpx;
|
||||||
|
padding: 0 22rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
.m_search_icon {
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
}
|
||||||
|
.m_search_icon_add {
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
margin-left: 60rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
54
src/components/loginTips.wpy
Normal file
54
src/components/loginTips.wpy
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<template>
|
||||||
|
<view class="loginTips" v-if="tokenShow">
|
||||||
|
<view class="g_tips">
|
||||||
|
<view class="m_tips f-fcc">
|
||||||
|
<view class="u_ct font_26 white">你还未登录,还有更多有趣的等着你,赶快去登录吧~</view>
|
||||||
|
<view class="u_bu font_24 f-fcc" catchtap="onLogin">立即登录</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
wepy.component({
|
||||||
|
props: {
|
||||||
|
tokenShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onLogin() {
|
||||||
|
this.$emit('loginCut', {
|
||||||
|
loginShow: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
.loginTips {
|
||||||
|
.g_tips {
|
||||||
|
padding: 0 30rpx;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 52rpx;
|
||||||
|
z-index: 100;
|
||||||
|
.m_tips {
|
||||||
|
height: 112rpx;
|
||||||
|
background-color: rgba(51, 51, 51, .5);
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 20rpx 24rpx 20rpx 16rpx;
|
||||||
|
.u_ct {
|
||||||
|
flex: 1;
|
||||||
|
padding-right: 60rpx;
|
||||||
|
}
|
||||||
|
.u_bu {
|
||||||
|
line-height: 34rpx;
|
||||||
|
padding: 8rpx 16rpx 7rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 280rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
103
src/components/message.wpy
Normal file
103
src/components/message.wpy
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<template>
|
||||||
|
<view class="scroll_view_border" v-if="hide === 'false'" @tap="goto('/pages/users/upgradeVIP')">
|
||||||
|
<view class="srcoll_view font_28" bindtap="textclick">
|
||||||
|
<span style="color: #74caff;">你的VIP将于</span>{{time}}
|
||||||
|
<span style="color: #74caff;">到期</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
// import { service } from '../config.js'
|
||||||
|
import https from '../mixins/https'
|
||||||
|
import base from '../mixins/base'
|
||||||
|
|
||||||
|
wepy.component({
|
||||||
|
mixins: [base, https],
|
||||||
|
props: {
|
||||||
|
list: {
|
||||||
|
type: Object,
|
||||||
|
default: []
|
||||||
|
},
|
||||||
|
time: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
default: 'list'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
time() {
|
||||||
|
console.log(this.time)
|
||||||
|
if (this.time == '') {
|
||||||
|
this.hide = 'true'
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.time = this.addDate(this.time, 0)
|
||||||
|
var curTime = new Date()
|
||||||
|
var beginDate = curTime.toLocaleString('chinese', {hour12: false})
|
||||||
|
var endDate = this.time
|
||||||
|
var aDate = new Date(beginDate)
|
||||||
|
var bDate = new Date(endDate) // 包含时间的日期字符串
|
||||||
|
var aDay = 24 * 60 * 60 * 1000
|
||||||
|
var diffDay = (bDate - aDate) / aDay
|
||||||
|
console.log(diffDay) // 2.5,自然计算的结果
|
||||||
|
if (diffDay < 7) {
|
||||||
|
this.hide = 'false'
|
||||||
|
} else {
|
||||||
|
this.hide = 'true'
|
||||||
|
}
|
||||||
|
// console.log(Math.floor(diffDay)); // 2,根据个人情况向下取整,整数天
|
||||||
|
// console.log(Math.ceil(diffDay));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
time: '',
|
||||||
|
hide: 'true'
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
addDate(date, days) {
|
||||||
|
var d = new Date(date)
|
||||||
|
d.setDate(d.getDate() + days)
|
||||||
|
var m = d.getMonth() + 1
|
||||||
|
console.log(d.getFullYear() + '-' + m + '-' + d.getDate(), '3')
|
||||||
|
return d.getFullYear() + '-' + m + '-' + d.getDate()
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style type="less">
|
||||||
|
.srcoll_view{
|
||||||
|
position: absolute;
|
||||||
|
top:0rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 68rpx;
|
||||||
|
color: #ff1917;
|
||||||
|
color: #ffcd2c;
|
||||||
|
font-weight: bold;
|
||||||
|
animation:myfirst 12s linear infinite;
|
||||||
|
}
|
||||||
|
@keyframes myfirst
|
||||||
|
{
|
||||||
|
0% {margin-left:750rpx;}
|
||||||
|
100% {margin-left:-750rpx;}
|
||||||
|
}
|
||||||
|
.scroll_view_border{
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#049BFF), to(rgba(255, 255, 255, 0.87)));
|
||||||
|
background: #FBF4DB;
|
||||||
|
height: 68rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -69,7 +69,7 @@ wepy.component({
|
|||||||
if (vm.selfTextareaShow) {
|
if (vm.selfTextareaShow) {
|
||||||
url = `${service.host}/addresses`
|
url = `${service.host}/addresses`
|
||||||
} else {
|
} else {
|
||||||
url = `${service.host}/addresses/v2`
|
url = `${service.host}/address/country/list`
|
||||||
}
|
}
|
||||||
|
|
||||||
vm.$get({url: url}).then(({code, data}) => {
|
vm.$get({url: url}).then(({code, data}) => {
|
||||||
@ -77,32 +77,32 @@ wepy.component({
|
|||||||
console.log(vm.provinces, 'vm.provinces')
|
console.log(vm.provinces, 'vm.provinces')
|
||||||
if (vm.AddressValue.length > 0) {
|
if (vm.AddressValue.length > 0) {
|
||||||
vm.provinces.forEach((item, index) => {
|
vm.provinces.forEach((item, index) => {
|
||||||
vm.objectArray[0].push(item.name)
|
vm.objectArray[0].push(item.Name)
|
||||||
if (item.name == vm.AddressValue[0]) {
|
if (item.Name == vm.AddressValue[0]) {
|
||||||
vm.multiIndex[0] = index
|
vm.multiIndex[0] = index
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
vm.provinces[vm.multiIndex[0]].son.forEach((item, index) => {
|
vm.provinces[vm.multiIndex[0]].Children.forEach((item, index) => {
|
||||||
vm.objectArray[1].push(item.name)
|
vm.objectArray[1].push(item.Name)
|
||||||
if (item.name == vm.AddressValue[1]) {
|
if (item.Name == vm.AddressValue[1]) {
|
||||||
vm.multiIndex[1] = index
|
vm.multiIndex[1] = index
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
vm.provinces[vm.multiIndex[0]].son[vm.multiIndex[1]].son.forEach((item, index) => {
|
vm.provinces[vm.multiIndex[0]].Children[vm.multiIndex[1]].Children.forEach((item, index) => {
|
||||||
vm.objectArray[2].push(item.name)
|
vm.objectArray[2].push(item.Name)
|
||||||
if (item.name == vm.AddressValue[2]) {
|
if (item.Name == vm.AddressValue[2]) {
|
||||||
vm.multiIndex[2] = index
|
vm.multiIndex[2] = index
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
for (let item of vm.provinces) {
|
for (let item of vm.provinces) {
|
||||||
vm.objectArray[0].push(item.name)
|
vm.objectArray[0].push(item.Name)
|
||||||
}
|
}
|
||||||
for (let item of vm.provinces[vm.provinceId].son) {
|
for (let item of vm.provinces[vm.provinceId].Children) {
|
||||||
vm.objectArray[1].push(item.name)
|
vm.objectArray[1].push(item.Name)
|
||||||
}
|
}
|
||||||
for (let item of vm.provinces[vm.cityId].son[vm.selfTextareaShow ? 0 : 18].son) {
|
for (let item of vm.provinces[vm.cityId].Children[vm.selfTextareaShow ? 0 : 18].Children) {
|
||||||
vm.objectArray[2].push(item.name)
|
vm.objectArray[2].push(item.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(vm.provinces, 'provinces')
|
console.log(vm.provinces, 'provinces')
|
||||||
@ -116,9 +116,9 @@ wepy.component({
|
|||||||
this.multiIndex = e.$wx.detail.value
|
this.multiIndex = e.$wx.detail.value
|
||||||
console.log(this.provinces, this.multiIndex, 'gggg')
|
console.log(this.provinces, this.multiIndex, 'gggg')
|
||||||
console.log(this.provinces[this.multiIndex[0]], '=1')
|
console.log(this.provinces[this.multiIndex[0]], '=1')
|
||||||
console.log(this.provinces[this.multiIndex[0]].son[this.multiIndex[1]], '=2')
|
console.log(this.provinces[this.multiIndex[0]].Children[this.multiIndex[1]], '=2')
|
||||||
console.log(this.provinces[this.multiIndex[0]].son[this.multiIndex[1]].son[this.multiIndex[2]], '=3')
|
console.log(this.provinces[this.multiIndex[0]].Children[this.multiIndex[1]].Children[this.multiIndex[2]], '=3')
|
||||||
this.region = [this.provinces[this.multiIndex[0]].name, this.provinces[this.multiIndex[0]].son[this.multiIndex[1]].name, this.provinces[this.multiIndex[0]].son[this.multiIndex[1]].son[this.multiIndex[2]].name]
|
this.region = [this.provinces[this.multiIndex[0]].Name, this.provinces[this.multiIndex[0]].Children[this.multiIndex[1]].Name, this.provinces[this.multiIndex[0]].Children[this.multiIndex[1]].Children[this.multiIndex[2]].Name]
|
||||||
this.$emit('multiCity', this.multiIndex)
|
this.$emit('multiCity', this.multiIndex)
|
||||||
this.$emit('selectCity', this.region, this.itemIndex)
|
this.$emit('selectCity', this.region, this.itemIndex)
|
||||||
},
|
},
|
||||||
@ -130,11 +130,11 @@ wepy.component({
|
|||||||
switch (e.$wx.detail.column) {
|
switch (e.$wx.detail.column) {
|
||||||
case 0:
|
case 0:
|
||||||
that.nationId = e.$wx.detail.value
|
that.nationId = e.$wx.detail.value
|
||||||
for (let item of that.provinces[that.nationId].son) {
|
for (let item of that.provinces[that.nationId].Children) {
|
||||||
province.push(item.name)
|
province.push(item.Name)
|
||||||
}
|
}
|
||||||
for (let item of that.provinces[that.nationId].son[0].son) {
|
for (let item of that.provinces[that.nationId].Children[0].Children) {
|
||||||
city.push(item.name)
|
city.push(item.Name)
|
||||||
}
|
}
|
||||||
that.objectArray = [that.objectArray[0], province, city]
|
that.objectArray = [that.objectArray[0], province, city]
|
||||||
|
|
||||||
@ -142,8 +142,8 @@ wepy.component({
|
|||||||
break
|
break
|
||||||
case 1:
|
case 1:
|
||||||
that.provinceId = e.$wx.detail.value
|
that.provinceId = e.$wx.detail.value
|
||||||
for (let item of that.provinces[that.nationId].son[that.provinceId].son) {
|
for (let item of that.provinces[that.nationId].Children[that.provinceId].Children) {
|
||||||
city.push(item.name)
|
city.push(item.Name)
|
||||||
}
|
}
|
||||||
that.objectArray = [that.objectArray[0], that.objectArray[1], city]
|
that.objectArray = [that.objectArray[0], that.objectArray[1], city]
|
||||||
that.multiIndex = [that.multiIndex[0], e.$wx.detail.value, 0]
|
that.multiIndex = [that.multiIndex[0], e.$wx.detail.value, 0]
|
||||||
|
|||||||
333
src/components/shareComponent.wpy
Normal file
333
src/components/shareComponent.wpy
Normal file
@ -0,0 +1,333 @@
|
|||||||
|
<template>
|
||||||
|
<view :class="{'~show': !hide}" class="~cu-modal cu-modal">
|
||||||
|
<view class="~cu-dialog" style="background-color: white;width: 600rpx;border-radius: 24rpx;">
|
||||||
|
<view class="~bg-white ~justify-end">
|
||||||
|
<view bindtap="hideModel" class="~action ~f-fec">
|
||||||
|
<text class="~cuIcon-close ~font_40 ~color999" style="line-height: 40rpx;margin: 30rpx 30rpx 0 0;"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="~text-center m_sha">
|
||||||
|
<view class="~text-center ~font_32 ~bold ~color333" style="margin-bottom: 42rpx;line-height: 32rpx;margin-top: -22rpx">分享至</view>
|
||||||
|
<view class="~text-center ~inline-block" style="width: 50%" @tap.stop="hideModel">
|
||||||
|
<button class="~btn ~text-center ~font_28" open-type="share" style="line-height: 1.6;padding: 6rpx">
|
||||||
|
<image class="share-image" mode="aspectFit"
|
||||||
|
src="https://images.ufutx.com/202106/16/d14663aeb3a6663ed926e8e3949ca8fb.png"></image>
|
||||||
|
<view class="font_24 ~black_6">微信好友</view>
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
<view class="~text-center ~inline-block ~color666" style="width: 50%">
|
||||||
|
<button class="~btn ~text-center ~font_28" style="line-height: 1.6;padding: 6rpx" @tap="showPic">
|
||||||
|
<block v-if="poster == 'custom'">
|
||||||
|
<image class="share-image" mode="aspectFit"
|
||||||
|
src="https://image.fulllinkai.com/202112/03/4e3908cc9b20b9af0c35908eb7b2fa7b.png"></image>
|
||||||
|
<view class="~font_24 black_6">生成海报</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<image class="share-image" mode="aspectFit"
|
||||||
|
src="https://images.ufutx.com/202106/16/114c3bcabf2fdabc555923d61a3b790d.png"></image>
|
||||||
|
<view class="~font_24 ~black_6">朋友圈</view>
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
<view class="clearfloat"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 海报预览-->
|
||||||
|
<view :class="{'~show':modalName=='Image'}" class="~cu-modal cu-modal">
|
||||||
|
<view class="~cu-dialog" style="width: 600rpx; background: none;border-radius: 0;">
|
||||||
|
<view class="~f-fec cu-close" bindtap="listenerCancel">
|
||||||
|
<image class="_icon" mode="aspectFit"
|
||||||
|
src="https://image.fulllinkai.com/202205/20/6bd2707c19476eb7dc42910ed4f9014c.png"></image>
|
||||||
|
</view>
|
||||||
|
<image class="share_Pic" mode="widthFix" src="{{shareImage}}"></image>
|
||||||
|
<image class="saveBtn" mode="widthFix" @tap="saveImage('save')"
|
||||||
|
src="https://image.fulllinkai.com/202205/20/104374082c9e2bd160ee963b4f29c98f.png"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 授权弹框-->
|
||||||
|
<view :class="{'~show':modalName=='DialogModal'}" class="~cu-modal cu-modal">
|
||||||
|
<view class="cu-dialog d_set">
|
||||||
|
<view class="set_text color333 bold font_32">温馨提示</view>
|
||||||
|
<view class="set_subT color333 font_28">需要你授权才能保存到相册哦</view>
|
||||||
|
<view class="set_btn f-fcc">
|
||||||
|
<button class="_btn close_btn font_30 color-666" @tap="hideOpenSet">取消</button>
|
||||||
|
<button class="_btn font_30 white" open-type="openSetting" @opensetting="openSetting_image">打开设置
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import base from '../mixins/base'
|
||||||
|
import https from '../mixins/https'
|
||||||
|
|
||||||
|
wepy.component({
|
||||||
|
mixins: [base, https],
|
||||||
|
props: {
|
||||||
|
shareImage: {
|
||||||
|
type: String,
|
||||||
|
default: null
|
||||||
|
},
|
||||||
|
party_id: {
|
||||||
|
type: String,
|
||||||
|
default: null
|
||||||
|
},
|
||||||
|
hide: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
library_id: {
|
||||||
|
type: Number,
|
||||||
|
default: 0
|
||||||
|
},
|
||||||
|
poster: {
|
||||||
|
type: String,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
showImage: true,
|
||||||
|
showOpenSet: true,
|
||||||
|
formID: [],
|
||||||
|
modalName: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
saveImageToPhotosAlbum(img) {
|
||||||
|
let vm = this
|
||||||
|
wepy.saveImageToPhotosAlbum({
|
||||||
|
filePath: img,
|
||||||
|
success: (res) => {
|
||||||
|
console.log(res, '成功')
|
||||||
|
vm.modalName = ''
|
||||||
|
vm.hide = true
|
||||||
|
vm.$emit('hideShare', vm.hide)
|
||||||
|
wx.hideLoading()
|
||||||
|
wx.showModal({
|
||||||
|
title: '已保存在相册了!',
|
||||||
|
content: '赶紧分享给你的朋友吧!'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: (Error) => {
|
||||||
|
console.log(Error, '失败')
|
||||||
|
wx.hideLoading()
|
||||||
|
wx.getSetting({
|
||||||
|
success(res) {
|
||||||
|
if (!res.authSetting['scope.writePhotosAlbum']) {
|
||||||
|
vm.modalName = 'DialogModal'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
hideModel() {
|
||||||
|
this.hide = true
|
||||||
|
this.$emit('hideShare', this.hide)
|
||||||
|
},
|
||||||
|
showPic() {
|
||||||
|
if (this.poster == 'custom') {
|
||||||
|
if (this.party_id && this.party_id == '1596') {
|
||||||
|
this.$goto('pages/party/activitiyPoster?party_id=1596&is_mp_show=1')
|
||||||
|
} else {
|
||||||
|
this.hide = true
|
||||||
|
this.$emit('hideShare', this.hide)
|
||||||
|
this.$emit('shareShow')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.shareImage) {
|
||||||
|
if (this.party_id && this.party_id == '1596') {
|
||||||
|
this.$goto('/pages/party/activitiyPoster?party_id=1596&is_mp_show=1&pic=' + this.shareImage)
|
||||||
|
} else {
|
||||||
|
this.showImage = false
|
||||||
|
this.hide = true
|
||||||
|
this.modalName = 'Image'
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
wx.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '海报生成失败,请重试!'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
listenerCancel() {
|
||||||
|
this.modalName = ''
|
||||||
|
this.hide = true
|
||||||
|
this.$emit('hideShare', this.hide)
|
||||||
|
},
|
||||||
|
hideOpenSet() {
|
||||||
|
this.modalName = ''
|
||||||
|
this.hide = true
|
||||||
|
this.$emit('hideShare', this.hide)
|
||||||
|
this.$showToast('已取消')
|
||||||
|
},
|
||||||
|
// 授权访问image
|
||||||
|
openSetting_image(e) {
|
||||||
|
let vm = this
|
||||||
|
wx.showLoading({
|
||||||
|
title: '保存中...',
|
||||||
|
mask: true
|
||||||
|
})
|
||||||
|
if (e.$wx.detail.authSetting['scope.writePhotosAlbum']) {
|
||||||
|
vm.modalName = ''
|
||||||
|
vm.hide = true
|
||||||
|
vm.$emit('hideShare', vm.hide)
|
||||||
|
if (vm.shareImage.includes('com')) {
|
||||||
|
console.log('带com的网络路径')
|
||||||
|
wepy.downloadFile({
|
||||||
|
url: vm.shareImage,
|
||||||
|
success: (res) => {
|
||||||
|
wepy.saveImageToPhotosAlbum({
|
||||||
|
filePath: res.tempFilePath,
|
||||||
|
success: (res) => {
|
||||||
|
wx.hideLoading()
|
||||||
|
vm.$showToast('保存成功')
|
||||||
|
},
|
||||||
|
fail: () => {
|
||||||
|
wx.hideLoading()
|
||||||
|
vm.$showToast('已取消')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: () => {
|
||||||
|
console.log('fail')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
console.log('不带com的本地路径')
|
||||||
|
wepy.saveImageToPhotosAlbum({
|
||||||
|
filePath: vm.shareImage,
|
||||||
|
success: (res) => {
|
||||||
|
wx.hideLoading()
|
||||||
|
vm.$showToast('保存成功')
|
||||||
|
},
|
||||||
|
fail: () => {
|
||||||
|
wx.hideLoading()
|
||||||
|
vm.$showToast('已取消')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
vm.$showToast('已取消')
|
||||||
|
wx.hideLoading()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
saveImage(type) {
|
||||||
|
let vm = this
|
||||||
|
wx.showLoading({
|
||||||
|
title: '保存中...',
|
||||||
|
mask: true
|
||||||
|
})
|
||||||
|
if (vm.shareImage.includes('com')) {
|
||||||
|
console.log('带com的网络路径')
|
||||||
|
wepy.downloadFile({
|
||||||
|
url: vm.shareImage,
|
||||||
|
success: (res) => {
|
||||||
|
vm.saveImageToPhotosAlbum(res.tempFilePath)
|
||||||
|
},
|
||||||
|
fail: () => {
|
||||||
|
console.log('fail')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
console.log('不带com的本地路径')
|
||||||
|
vm.saveImageToPhotosAlbum(vm.shareImage)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad() {
|
||||||
|
console.log(this.shareImage)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
|
||||||
|
|
||||||
|
.share-image {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.m_sha {
|
||||||
|
background-color: white;
|
||||||
|
padding-bottom: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cu-modal {
|
||||||
|
.d_set{
|
||||||
|
padding: 22rpx;
|
||||||
|
width: 600rpx;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
.set_text{
|
||||||
|
margin: 25rpx ;
|
||||||
|
}
|
||||||
|
.set_subT{ font-weight: 400;margin-bottom: 50rpx}
|
||||||
|
.set_btn{
|
||||||
|
._btn{
|
||||||
|
width: 220rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
border-radius: 50rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
}
|
||||||
|
.close_btn{
|
||||||
|
border: 2rpx solid #C2C2C2;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cu-close {
|
||||||
|
position: absolute;
|
||||||
|
right: 22rpx;
|
||||||
|
top: 22rpx;
|
||||||
|
z-index: 999;
|
||||||
|
|
||||||
|
._icon {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
padding: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
._title {
|
||||||
|
letter-spacing: 2rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.share_Pic {
|
||||||
|
width: 600rpx;
|
||||||
|
height: auto;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.saveBtn {
|
||||||
|
width: 600rpx;
|
||||||
|
height: auto;
|
||||||
|
margin-top: 14rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cu_container {
|
||||||
|
margin-top: 42rpx;
|
||||||
|
padding: 0 32rpx;
|
||||||
|
padding-bottom: 40rpx;
|
||||||
|
|
||||||
|
.share_icon {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
button:after{
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
134
src/components/tabSearchV2.wpy
Normal file
134
src/components/tabSearchV2.wpy
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
<template>
|
||||||
|
<view class="~cu-bar ~search _tab__content bc_BoxTab " :style="{backgroundColor: BColor+ '!important;'}">
|
||||||
|
<view class="~search-form ~round m_search_sea" :style="{backgroundColor: inputColor+ '!important;'}">
|
||||||
|
<!-- <text class="cuIcon-search"></text> -->
|
||||||
|
<view class="m_sea ~f-fcc">
|
||||||
|
<image class="u_sea_img" src="https://images.ufutx.com/202106/19/c607aaf49440b0df3308d6e048fd9ad7.png" mode="aspectFit" lazy-load="false"></image>
|
||||||
|
</view>
|
||||||
|
<input type="text" class="m_sea_input" placeholder="{{title}}" bindfocus="TabSearchBindfocus" bindinput="inputTyping" confirm-type="search" value="{{inputVal}}" focus="{{inputShowed}}" @confirm="confirmTyping" />
|
||||||
|
<image v-if="inputVal.length > 0" bindtap="searchEmpty" class="m_search_icon_add" src="https://images.ufutx.com/202106/30/03404c702dc077428d7af781f98e15a3.png" mode="aspectFit" lazy-load="false"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view :style="{'height': '52px'}"></view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../mixins/https'
|
||||||
|
import base from '../mixins/base'
|
||||||
|
import {getElement_WH} from '../utils/util'
|
||||||
|
|
||||||
|
wepy.component({
|
||||||
|
mixins: [base, https],
|
||||||
|
props: {
|
||||||
|
list: {
|
||||||
|
type: Object,
|
||||||
|
default: []
|
||||||
|
},
|
||||||
|
clear: {
|
||||||
|
type: String,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: String,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: '搜索'
|
||||||
|
},
|
||||||
|
BColor: {
|
||||||
|
type: String,
|
||||||
|
default: '#d92553'
|
||||||
|
},
|
||||||
|
inputColor: {
|
||||||
|
type: String,
|
||||||
|
default: '#f5f5f5'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
inputShowed: false,
|
||||||
|
inputVal: '',
|
||||||
|
token: '',
|
||||||
|
bc_height: ''
|
||||||
|
},
|
||||||
|
ready() {
|
||||||
|
this.token = wx.getStorageSync('token')
|
||||||
|
getElement_WH('.bc_BoxTab').then((value) => {
|
||||||
|
console.log(value, 'v----')
|
||||||
|
this.bc_height = value.height + 'px'
|
||||||
|
}).catch((error) => {
|
||||||
|
console.log(error)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
TabSearchBindfocus() {
|
||||||
|
if (!this.token) {
|
||||||
|
this.$emit('TabSearchLoginCut')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showInput() {
|
||||||
|
if (this.disabled) return
|
||||||
|
this.inputShowed = true
|
||||||
|
},
|
||||||
|
hideInput() {
|
||||||
|
this.inputVal = ''
|
||||||
|
this.inputShowed = false
|
||||||
|
this.$emit('search', this.inputVal)
|
||||||
|
},
|
||||||
|
clearInput() {
|
||||||
|
this.inputVal = ''
|
||||||
|
this.$emit('search', this.inputVal)
|
||||||
|
},
|
||||||
|
confirmTyping(e) {
|
||||||
|
this.$showLoading('搜索中...')
|
||||||
|
this.$emit('search', this.inputVal)
|
||||||
|
},
|
||||||
|
inputTyping(e) {
|
||||||
|
this.inputVal = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
searchEmpty() {
|
||||||
|
this.inputVal = ''
|
||||||
|
this.$emit('search', this.inputVal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
._tab__content{
|
||||||
|
width: 100%;
|
||||||
|
position: fixed;
|
||||||
|
left: 0%;
|
||||||
|
z-index: 9999;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.m_search_sea {
|
||||||
|
height: 72rpx !important;
|
||||||
|
border-radius: 100rpx !important;
|
||||||
|
background-color: #f5f5f5 !important;
|
||||||
|
.m_sea {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 100%;
|
||||||
|
padding-left: 8rpx;
|
||||||
|
.u_sea_img {
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_sea_input {
|
||||||
|
height: 100% !important;
|
||||||
|
border-radius: 100rpx !important;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.m_search_icon_add {
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
118
src/components/textarea.wpy
Normal file
118
src/components/textarea.wpy
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
<template>
|
||||||
|
<view class="textarea" style="{{tabSearch?'padding: 0;':''}}">
|
||||||
|
<textarea
|
||||||
|
class="areas"
|
||||||
|
style="{{tabSearch?'text-align: left;min-height: 40rpx;font-size: 28rpx;border-bottom: #F2F2F2 solid 2rpx;line-height: 72rpx;':''}}"
|
||||||
|
auto-height
|
||||||
|
placeholder="{{placeholderText}}(请勿留下联系方式,否则将会被禁封)"
|
||||||
|
placeholder-style="placeholder_class"
|
||||||
|
minlength="{{min}}"
|
||||||
|
maxlength="{{max}}"
|
||||||
|
bindinput="inputs"
|
||||||
|
value="{{value}}"
|
||||||
|
>
|
||||||
|
</textarea>
|
||||||
|
<view v-if="!tabSearch" class="currentWordNumber font_24">{{currentWordNumber}}/{{max}}</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../mixins/https'
|
||||||
|
import { service } from '../config.js'
|
||||||
|
import base from '../mixins/base'
|
||||||
|
wepy.component({
|
||||||
|
mixins: [base, https],
|
||||||
|
props: {
|
||||||
|
placeholderText: {
|
||||||
|
type: String,
|
||||||
|
default: '说出你的性格特点、兴趣爱好、自我评论、家庭情况等'
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
// 最多字数
|
||||||
|
max: {
|
||||||
|
type: Number,
|
||||||
|
default: 800
|
||||||
|
},
|
||||||
|
// 最少字数
|
||||||
|
min: {
|
||||||
|
type: Number,
|
||||||
|
default: 15
|
||||||
|
},
|
||||||
|
tabSearch: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
value(e) {
|
||||||
|
if (!e) return this.currentWordNumber = 0
|
||||||
|
var len = parseInt(e.length)
|
||||||
|
console.log(len)
|
||||||
|
if (len <= this.min) {
|
||||||
|
this.texts = '至少还需要'
|
||||||
|
this.textss = '字'
|
||||||
|
this.num = this.min - len
|
||||||
|
} else if (len > this.min) {
|
||||||
|
this.texts = ' '
|
||||||
|
this.textss = ' '
|
||||||
|
this.num = ''
|
||||||
|
}
|
||||||
|
this.currentWordNumber = len
|
||||||
|
if (len > this.max) return this.currentWordNumber = this.max
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
texts: '至少需要15个字',
|
||||||
|
currentWordNumber: 0
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
inputs(e) {
|
||||||
|
var len = parseInt(e.$wx.detail.value.length)
|
||||||
|
console.log(len)
|
||||||
|
if (len >= this.max) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `内容不能超过${this.max}字`,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.value = e.$wx.detail.value
|
||||||
|
this.$emit('textareaValue', e.$wx.detail.value)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
events: {}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
caret-color:#FF95B1;
|
||||||
|
}
|
||||||
|
.textarea {
|
||||||
|
padding: 10rpx 30rpx 10rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: white;
|
||||||
|
margin-bottom: 80rpx;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
.areas {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 300rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.placeholder_class {
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
}
|
||||||
|
.currentWordNumber {
|
||||||
|
text-align: right;
|
||||||
|
color: #C2C2C2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -21,8 +21,8 @@
|
|||||||
<view :class="{'~show': chooseShow}" class="~cu-modal ~bottom-modal">
|
<view :class="{'~show': chooseShow}" class="~cu-modal ~bottom-modal">
|
||||||
<view class="~cu-dialog" style="border-radius: 32rpx 32rpx 0 0;">
|
<view class="~cu-dialog" style="border-radius: 32rpx 32rpx 0 0;">
|
||||||
<view class="~bg_f upload_file">
|
<view class="~bg_f upload_file">
|
||||||
<view class="_title _item ~font_32" catchtap="onCamera">拍摄</view>
|
<view class="_title _item ~font_32" @tap="onCamera">拍摄</view>
|
||||||
<view class="_title _item ~font_32" catchtap="chooseImageV2">从手机相册选择</view>
|
<view class="_title _item ~font_32" @tap="chooseImageV2">从手机相册选择</view>
|
||||||
<view class="_title _item ~font_32 ~color333 _cancel" @tap="cancelFn">取消</view>
|
<view class="_title _item ~font_32 ~color333 _cancel" @tap="cancelFn">取消</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -40,35 +40,42 @@
|
|||||||
chooseShow: {
|
chooseShow: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
|
},
|
||||||
|
num: {
|
||||||
|
type: Number,
|
||||||
|
default: 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
uploadData: null,
|
uploadData: null,
|
||||||
uploader: {},
|
uploader: {},
|
||||||
videos: [],
|
videos: [],
|
||||||
uploadFiles: []
|
uploadPics: []
|
||||||
},
|
},
|
||||||
mixins: [https, base],
|
mixins: [https, base],
|
||||||
methods: {
|
methods: {
|
||||||
chooseImageV2() { // 上传照片
|
chooseImageV2() { // 上传照片
|
||||||
let vm = this
|
let vm = this
|
||||||
vm.$showLoading(`${vm.i18nL.components.uploadPic.Ace5}`)
|
vm.$showLoading(`加载中...`)
|
||||||
vm.cancelFn()
|
vm.cancelFn()
|
||||||
wx.chooseMedia({
|
wx.chooseMedia({
|
||||||
count: 1, // 上传视频的个数
|
count: vm.num, // 上传图片的个数
|
||||||
mediaType: ['image'], // 限制上传的类型为image
|
mediaType: ['image'], // 限制上传的类型为image
|
||||||
sourceType: ['album'], // 可以指定来源是相册还是相机
|
sourceType: ['album'], // 可以指定来源是相册还是相机
|
||||||
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||||
success: (res) => { // 获取临时存放的视频资源
|
success: (res) => { // 获取临时存放的视频资源
|
||||||
console.log(res.tempFiles)
|
console.log(res.tempFiles)
|
||||||
console.log(res)
|
console.log(res)
|
||||||
|
let index = 0
|
||||||
for (let item of res.tempFiles) {
|
for (let item of res.tempFiles) {
|
||||||
console.log(item, '====')
|
console.log(item, '====123')
|
||||||
let type = item.fileType == 'video' ? 'video' : 'img'
|
let type = item.fileType == 'video' ? 'video' : 'img'
|
||||||
vm.uploadFile(item.tempFilePath, type, item.tempFilePath)
|
// vm.uploadFileV2(item.tempFilePath, res.tempFiles, index++)
|
||||||
|
vm.uploadFile(item.tempFilePath, type, res.tempFiles, index++)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fail: () => {
|
fail: () => {
|
||||||
|
console.log('e-----')
|
||||||
vm.$emit('changeVal', '')
|
vm.$emit('changeVal', '')
|
||||||
vm.modalName = ''
|
vm.modalName = ''
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
@ -85,10 +92,12 @@
|
|||||||
sourceType: ['camera'], // 可以指定来源是相册还是相机
|
sourceType: ['camera'], // 可以指定来源是相册还是相机
|
||||||
success: (res) => { // 获取临时存放的视频资源
|
success: (res) => { // 获取临时存放的视频资源
|
||||||
vm.cancelFn()
|
vm.cancelFn()
|
||||||
|
let index = 0
|
||||||
|
console.log(res.tempFiles, 'res.tempFiles=')
|
||||||
for (let item of res.tempFiles) {
|
for (let item of res.tempFiles) {
|
||||||
console.log(item, '====')
|
console.log(item, '====')
|
||||||
let type = item.fileType == 'video' ? 'video' : 'img'
|
let type = item.fileType == 'video' ? 'video' : 'img'
|
||||||
vm.uploadFile(item.tempFilePath, type, item.tempFilePath)
|
vm.uploadFile(item.tempFilePath, type, item.tempFilePath, index++)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fail: () => {
|
fail: () => {
|
||||||
@ -98,22 +107,29 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
uploadFile(filePaths, type, name) {
|
// // 计算签名。
|
||||||
|
// function computeSignature(accessKeySecret, canonicalString) {
|
||||||
|
// return crypto.enc.Base64.stringify(crypto.HmacSHA1(canonicalString, accessKeySecret));
|
||||||
|
// }
|
||||||
|
|
||||||
|
uploadFile(filePath, type, filePaths, index) {
|
||||||
let vm = this
|
let vm = this
|
||||||
console.log(filePaths, 'filePaths')
|
console.log(filePath, 'filePath')
|
||||||
|
console.log(vm.uploadData, 'vm.uploadData')
|
||||||
if (vm.uploadData) {
|
if (vm.uploadData) {
|
||||||
vm.$showLoading(`${vm.i18nL.components.uploadPic.Ace6}`)
|
vm.$showLoading(`上传中...`)
|
||||||
let fileName = new Date().getTime() + Math.floor(Math.random() * 150) + '.' + type.split('/').pop().toLowerCase()
|
let fileName = new Date().getTime() + Math.floor(Math.random() * 150) + '.' + type.split('/').pop().toLowerCase()
|
||||||
let filePath = vm.uploadData.host + '/' + vm.uploadData.dir + fileName
|
let filePathUrl = vm.uploadData.host + '/' + vm.uploadData.dir + fileName
|
||||||
wx.uploadFile({
|
wx.uploadFile({
|
||||||
url: vm.uploadData.host,
|
url: vm.uploadData.host,
|
||||||
filePath: filePaths,
|
filePath: filePath,
|
||||||
name: 'file',
|
name: 'file', // 必须填file。
|
||||||
formData: {
|
formData: {
|
||||||
key: vm.uploadData.dir + fileName,
|
key: vm.uploadData.dir + fileName,
|
||||||
policy: vm.uploadData.policy,
|
policy: vm.uploadData.policy,
|
||||||
OSSAccessKeyId: vm.uploadData.access_id,
|
OSSAccessKeyId: vm.uploadData.access_id,
|
||||||
signature: vm.uploadData.signature
|
signature: vm.uploadData.signature
|
||||||
|
// 'x-oss-security-token': securityToken // 使用STS签名时必传。
|
||||||
},
|
},
|
||||||
header: {
|
header: {
|
||||||
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
@ -122,22 +138,37 @@
|
|||||||
},
|
},
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
if (res.statusCode === 204) {
|
if (res.statusCode === 204) {
|
||||||
console.log(filePath, '上传成功')
|
console.log(filePathUrl, '上传成功')
|
||||||
let dataV2 = {
|
let dataV2 = {
|
||||||
filePath: filePath,
|
filePath: filePathUrl,
|
||||||
type: type,
|
type: type
|
||||||
name: name
|
|
||||||
}
|
}
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
vm.$emit('changeVal', dataV2)
|
vm.uploadPics[index] = dataV2
|
||||||
|
let imagesLength = this.uploadPics.filter(item => item.filePath !== undefined && item.filePath !== null && !Number.isNaN(item.filePath)).length
|
||||||
|
if (imagesLength == filePaths.length) {
|
||||||
|
this.$emit('changeVal', this.uploadPics)
|
||||||
|
wx.hideLoading()
|
||||||
|
this.uploadPics = []
|
||||||
|
}
|
||||||
|
// if (vm.num == 1) {
|
||||||
|
// vm.$emit('changeVal', dataV2)
|
||||||
|
// } else {
|
||||||
|
// if (vm.uploadPics.length <= vm.num) {
|
||||||
|
// vm.uploadPics.push(dataV2)
|
||||||
|
// } else {
|
||||||
|
// console.log('==--099')
|
||||||
|
// vm.$emit('changeVal', vm.uploadPics)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fail: (err) => {
|
fail: (err) => {
|
||||||
wx.showModal({ // 使用模态框提示用户进行操作
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
title: `${vm.i18nL.components.uploadPic.Ace7}:`,
|
title: `温馨提示:`,
|
||||||
content: `${vm.i18nL.components.uploadPic.Ace8}` + err,
|
content: `很抱歉` + err,
|
||||||
showCancel: false,
|
showCancel: false,
|
||||||
confirmText: `${vm.i18nL.components.uploadPic.Ace12}`,
|
confirmText: `确定`,
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
vm.$gotoBack(1)
|
vm.$gotoBack(1)
|
||||||
@ -149,9 +180,9 @@
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
let vm = this
|
let vm = this
|
||||||
vm.$showToast(`${vm.i18nL.components.uploadPic.Ace15}`)
|
vm.$showToast(`网络环境异常,请稍后重试`)
|
||||||
wx.request({
|
wx.request({
|
||||||
url: `${service.host}/get/oss/config`,
|
url: `${service.host}/ali/upload/sts/token`,
|
||||||
header: {
|
header: {
|
||||||
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
'X-Requested-With': 'XMLHttpRequest'
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
@ -161,11 +192,62 @@
|
|||||||
success: ({code, data}) => {
|
success: ({code, data}) => {
|
||||||
vm.uploadData = data.data
|
vm.uploadData = data.data
|
||||||
vm.$app.$options.globalData.uploadData = data.data
|
vm.$app.$options.globalData.uploadData = data.data
|
||||||
|
// vm.date = new Date()
|
||||||
|
// vm.date.setHours( vm.date.getHours() + 1)
|
||||||
|
// vm.olicyText = {
|
||||||
|
// expiration: vm.toISOString(), // 设置policy过期时间。
|
||||||
|
// conditions: [
|
||||||
|
// // 限制上传大小。
|
||||||
|
// ["content-length-range", 0, 1024 * 1024 * 1024],
|
||||||
|
// ],
|
||||||
|
// }
|
||||||
|
// vm.uploadData.policy = Base64.encode(JSON.stringify(policyText)) // policy必须为base64的string。
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
console.log('1111111111')
|
console.log('1111111111')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
uploadFileV2(filePath, filePaths, index) {
|
||||||
|
this.$showLoading('上传中')
|
||||||
|
console.log('333-----')
|
||||||
|
wx.uploadFile({
|
||||||
|
url: `${service.host}/uploads`,
|
||||||
|
filePath: filePath,
|
||||||
|
method: 'POST',
|
||||||
|
name: 'fileData',
|
||||||
|
header: {
|
||||||
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
|
'content-type': 'multipart/form-data',
|
||||||
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
|
},
|
||||||
|
success: ({data}) => {
|
||||||
|
console.log(JSON.parse(data), '------12345555')
|
||||||
|
let {code, message} = JSON.parse(data)
|
||||||
|
let url = JSON.parse(data).data
|
||||||
|
console.log(code, '333----')
|
||||||
|
if (code == 0) {
|
||||||
|
this.uploadPics[index] = url
|
||||||
|
console.log('index-----------------------------------------------------' + index, url)
|
||||||
|
let imagesLength = this.uploadPics.filter(item => item !== undefined && item !== null && !Number.isNaN(item)).length
|
||||||
|
console.log(imagesLength, filePaths.length, '====')
|
||||||
|
if (imagesLength == filePaths.length) {
|
||||||
|
this.$emit('changeVal', this.uploadPics)
|
||||||
|
wx.hideLoading()
|
||||||
|
console.log('this.images-----------------------------------------------------', this.uploadPics)
|
||||||
|
console.log('images.length------------------------------------------------', imagesLength)
|
||||||
|
console.log('filePaths.length-----------------------------------------', filePaths.length)
|
||||||
|
this.uploadPics = []
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$showToast(message)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: (res) => {
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
cancelFn() { // 取消方法
|
cancelFn() { // 取消方法
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
this.$emit('closeUploadPic', '')
|
this.$emit('closeUploadPic', '')
|
||||||
@ -173,7 +255,7 @@
|
|||||||
getOssConfig() {
|
getOssConfig() {
|
||||||
let vm = this
|
let vm = this
|
||||||
wx.request({
|
wx.request({
|
||||||
url: `${service.host}/get/oss/config`,
|
url: `${service.host}/ali/upload/signature`,
|
||||||
header: {
|
header: {
|
||||||
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
'X-Requested-With': 'XMLHttpRequest'
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
|
|||||||
@ -163,7 +163,7 @@ wepy.component({
|
|||||||
let vm = this
|
let vm = this
|
||||||
vm.$showToast(`${vm.i18nL.components.uploadPic.Ace15}`)
|
vm.$showToast(`${vm.i18nL.components.uploadPic.Ace15}`)
|
||||||
wx.request({
|
wx.request({
|
||||||
url: `${service.host}/get/oss/config`,
|
url: `${service.host}/ali/upload/sts/token`,
|
||||||
header: {
|
header: {
|
||||||
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
'X-Requested-With': 'XMLHttpRequest'
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
@ -185,7 +185,7 @@ wepy.component({
|
|||||||
getOssConfig() {
|
getOssConfig() {
|
||||||
let vm = this
|
let vm = this
|
||||||
wx.request({
|
wx.request({
|
||||||
url: `${service.host}/get/oss/config`,
|
url: `${service.host}/ali/upload/sts/token`,
|
||||||
header: {
|
header: {
|
||||||
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
'X-Requested-With': 'XMLHttpRequest'
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
|
|||||||
724
src/components/userTitle.wpy
Normal file
724
src/components/userTitle.wpy
Normal file
@ -0,0 +1,724 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--<message :time.sync="deadline"></message>-->
|
||||||
|
<view class="">
|
||||||
|
<view class="user_back">
|
||||||
|
<view class="userinfo clearfix">
|
||||||
|
<view @tap.stop="goto('mask')" class="text-center" @longpress="longPress">
|
||||||
|
<view class="m_userAva" style="position: relative;display: inline-block;margin-right:20rpx;">
|
||||||
|
<image class="userinfo-avatar ff" src="{{Image}}" mode="aspectFill" />
|
||||||
|
<!-- <image class="bc-avatar" src="https://images.ufutx.com/202012/23/63216ba5bd0c56cf20c3a7380f1d5891.png" mode="aspectFill" />-->
|
||||||
|
<block v-if="user.photo">
|
||||||
|
<view class="mask font_22 f-fcc" v-if="user.is_photo_audited==0">审核中</view>
|
||||||
|
<view class="mask font_22 f-fcc" v-if="user.is_photo_audited==-1">未通过</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="mask font_22">上传头像</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="main">
|
||||||
|
<view class="userinfo-info text-center text-shadow text-white" style="display: flex;">
|
||||||
|
<span v-if="user.nickname" @tap.stop="goto('/pages/users/unmarriV2')" class="font_28 bold white">{{ user.nickname }}</span>
|
||||||
|
<!-- <span>完善个人资料</span> -->
|
||||||
|
<span v-else class="font_30 bold white" @tap.stop="gotoTab">你还未登录</span>
|
||||||
|
<view class="mainVip" @tap="goto('/pages/users/unmarriV2')">
|
||||||
|
<block v-if="user.rank_id > 0">
|
||||||
|
<view class="text-center vipBox">
|
||||||
|
<image src="https://images.ufutx.com/202101/30/e3a22a60849c3910e680d932772432b4.png" mode="aspectFill" class="icon"></image>
|
||||||
|
<view v-if="user.nickname" class="_edit font_22 color-666">编辑</view>
|
||||||
|
<!-- <span class="font_20">超级会员</span> -->
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="text-center vipBox">
|
||||||
|
<image src="https://images.ufutx.com/202101/30/004a146ad71658aaa2ad0f0263f960b8.png" mode="aspectFill" class="icon"></image>
|
||||||
|
<view v-if="user.nickname" class="_edit font_22 color-666">编辑</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="editInfo f-fc" @tap.stop="goto('/pages/users/unmarriV2')">
|
||||||
|
<block v-if="token">
|
||||||
|
<view v-if="user.is_real_approved == 1" class="font_26 white flo_l text-shadow text-white siz f-fcc">
|
||||||
|
<image style="width: 24rpx;height: 28rpx;margin-right: 10rpx;" src="https://images.ufutx.com/202106/15/cbfa2e308ecae1e1da4ae876f379a308.png" mode="aspectFill" lazy-load="true"></image>
|
||||||
|
已认证</view>
|
||||||
|
<view v-else-if="user.is_real_approved == 2" class="font_26 white flo_l text-shadow text-white siz">正在审核中</view>
|
||||||
|
<view v-else-if="user.is_approved == 1" class="font_26 white flo_l text-shadow text-white siz">成为认证用户</view>
|
||||||
|
<view v-else class="font_26 white flo_l text-shadow text-white siz">完善个人资料</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="font_26 white flo_l text-shadow text-white siz">登录后即可体验完整功能</view>
|
||||||
|
</block>
|
||||||
|
<!-- <image src="https://images.ufutx.com/202004/20/358000854fe0ad24249b85f64640f9a4.png" mode="aspectFill" class="icon flo_r"></image> -->
|
||||||
|
<image v-if="token" src="https://images.ufutx.com/202101/30/32e488269070923ca4b7e363a1afeffb.png" mode="aspectFill" class="icon flo_r"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- <image src="../images/gif/wave.gif" mode="scaleToFill" class="gif-wave"></image> -->
|
||||||
|
<!-- <view class="sign" @tap="moreTask">-->
|
||||||
|
<!-- <image class="img" src="https://image.fulllinkai.com/202201/13/a4755232558177a0ea0237bd3b69a223.png"></image>-->
|
||||||
|
<!-- <view class="sign_tt f-fcc white font_24">签到有礼</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
// import message from './message'
|
||||||
|
import base from '../mixins/base'
|
||||||
|
import {
|
||||||
|
service
|
||||||
|
} from '../config.js'
|
||||||
|
import https from '../mixins/https'
|
||||||
|
// import uploadImage from '../components/uploadImage'
|
||||||
|
wepy.component({
|
||||||
|
mixins: [base, https],
|
||||||
|
props: {
|
||||||
|
user: {
|
||||||
|
type: Object,
|
||||||
|
default: {}
|
||||||
|
},
|
||||||
|
token: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
is_base_info: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
// components = {
|
||||||
|
// message,
|
||||||
|
// uploadImage
|
||||||
|
// }
|
||||||
|
data: {
|
||||||
|
// user: {
|
||||||
|
// name: '获取中...'
|
||||||
|
// },
|
||||||
|
modalName: '',
|
||||||
|
deadline: '',
|
||||||
|
showModalStatus: false,
|
||||||
|
showChangeState: false,
|
||||||
|
animationData: {},
|
||||||
|
pic: [],
|
||||||
|
Image: '',
|
||||||
|
files: '',
|
||||||
|
ShowUpload: false,
|
||||||
|
border: 0,
|
||||||
|
BookImage: '',
|
||||||
|
showUpLoad: false,
|
||||||
|
stopMusic: false,
|
||||||
|
innerAudioContext: null,
|
||||||
|
StateList: [{
|
||||||
|
title: '单身',
|
||||||
|
active: true,
|
||||||
|
type: 'single'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '恋爱',
|
||||||
|
active: false,
|
||||||
|
type: 'loveing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '已婚',
|
||||||
|
active: false,
|
||||||
|
type: 'marriage'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
StateText: ''
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
user() {
|
||||||
|
console.log('user----------------------------', this.user)
|
||||||
|
console.log(this.user.is_peofile)
|
||||||
|
for (let item of this.StateList) {
|
||||||
|
if (item.type == this.user.type) {
|
||||||
|
item.active = true
|
||||||
|
this.StateText = item.title
|
||||||
|
} else {
|
||||||
|
item.active = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.user.deadline = this.user.deadline ? this.user.deadline.split(' ')[0] : ''
|
||||||
|
console.log(this.user.deadline)
|
||||||
|
this.Image = this.user.photo
|
||||||
|
if (!this.user.photo && this.user.deadline != null) {
|
||||||
|
this.deadline = this.user.deadline
|
||||||
|
} else {
|
||||||
|
this.deadline = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
pic() {
|
||||||
|
console.log(this.pic)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
console.log(this.user)
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
upDataAvatar() {
|
||||||
|
let data = {
|
||||||
|
photo: this.Image
|
||||||
|
}
|
||||||
|
this.$put({
|
||||||
|
url: `${service.user}/photo`,
|
||||||
|
data
|
||||||
|
}).then(({
|
||||||
|
code,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
this.$Toast_success('更换成功')
|
||||||
|
}).finally(() => {
|
||||||
|
wx.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
photoCity(e) {
|
||||||
|
this.Image = e
|
||||||
|
this.$parent.initPageData()
|
||||||
|
},
|
||||||
|
longPress() {
|
||||||
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
|
title: '警告',
|
||||||
|
content: '你将清空福恋小程序本地所有缓存!',
|
||||||
|
success: function(res) {
|
||||||
|
if (res.confirm) { // 判断用户是否点击了确定
|
||||||
|
wx.clearStorageSync()
|
||||||
|
wx.redirectTo({
|
||||||
|
url: '/pages/tabBar/welcome'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// moreTask() {
|
||||||
|
// if (!wx.getStorageSync('token')) {
|
||||||
|
// console.log('运行')
|
||||||
|
// var pages = getCurrentPages()
|
||||||
|
// var currentPage = pages[pages.length - 1]
|
||||||
|
// currentPage.handleAPPly()
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// wx.navigateTo({
|
||||||
|
// url: '/pages/users/calendarSignIn'
|
||||||
|
// })
|
||||||
|
// this.$apply()
|
||||||
|
// },
|
||||||
|
gotoPage(url) {
|
||||||
|
if (!this.token) {
|
||||||
|
this.$emit('modalValue', '')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$goto(url)
|
||||||
|
},
|
||||||
|
gotoTab() {
|
||||||
|
if (!this.token) {
|
||||||
|
this.$emit('modalValue', '')
|
||||||
|
}
|
||||||
|
// this.$goto('/pages/userInfo/typeSelect?from_openid=' + wx.getStorageSync('from_openid'))
|
||||||
|
// this.$goto('/pages/tabBar/welcome?from_openid=' + wx.getStorageSync('from_openid'))
|
||||||
|
},
|
||||||
|
previewImage(item, list) {
|
||||||
|
this.$previewImage(item, list)
|
||||||
|
},
|
||||||
|
hide() {
|
||||||
|
this.stopMusic = !this.stopMusic
|
||||||
|
this.onPauseMusic()
|
||||||
|
},
|
||||||
|
chooseimage() {
|
||||||
|
if (!this.token) {
|
||||||
|
this.$emit('modalValue', '')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.onPauseMusic()
|
||||||
|
this.$goto(`/pages/users/ImageCropper?src=${this.Image}`)
|
||||||
|
// this.$invoke('uploadImage', 'chooseimage')
|
||||||
|
},
|
||||||
|
quitMusic() { // 停止音乐
|
||||||
|
this.stopMusic = !this.stopMusic
|
||||||
|
if (!this.stopMusic) {
|
||||||
|
this.onPlayMusic()
|
||||||
|
} else {
|
||||||
|
this.onPauseMusic()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
userMessage() { // 打开浮层 播放音乐
|
||||||
|
// this.$invoke('modalUp', 'showModal')
|
||||||
|
// this.$invoke('modal', 'showModal')
|
||||||
|
this.onPlayMusic()
|
||||||
|
},
|
||||||
|
openData() { // 打开资料
|
||||||
|
let vm = this
|
||||||
|
vm.$put({
|
||||||
|
url: `${service.host}/change/hidden/profile`,
|
||||||
|
data: {
|
||||||
|
type: 'NONE'
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
success: ({
|
||||||
|
code,
|
||||||
|
res
|
||||||
|
}) => {
|
||||||
|
vm.$showToast('已打开')
|
||||||
|
vm.$get({
|
||||||
|
url: service.user
|
||||||
|
}, {
|
||||||
|
success: ({
|
||||||
|
code,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
vm.user = data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gotoH5(item) {
|
||||||
|
console.log(encodeURIComponent(item))
|
||||||
|
wx.navigateTo({
|
||||||
|
url: '/pages/books/bookDetail?url=' + encodeURIComponent(item)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
ChangeState() {
|
||||||
|
if (this.showChangeState) {
|
||||||
|
this.showChangeState = false
|
||||||
|
} else {
|
||||||
|
this.showChangeState = true
|
||||||
|
}
|
||||||
|
console.log(this.showChangeState)
|
||||||
|
},
|
||||||
|
hiddenChange() { // 隐身处理
|
||||||
|
this.$put({
|
||||||
|
url: `${service.host}/users/hidden`
|
||||||
|
}, {
|
||||||
|
success: ({
|
||||||
|
code,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
this.$showToast('设置成功')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
StateActive(index) {
|
||||||
|
let data = {
|
||||||
|
type: this.StateList[index].type
|
||||||
|
}
|
||||||
|
this.$put({
|
||||||
|
url: `${service.host}/change/users/type`,
|
||||||
|
data
|
||||||
|
}, {
|
||||||
|
success: ({
|
||||||
|
code,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
this.$get({
|
||||||
|
url: service.user
|
||||||
|
}, {
|
||||||
|
success: ({
|
||||||
|
code,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
this.user = data
|
||||||
|
wx.setStorageSync('type', data.type)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
for (let idx in this.StateList) {
|
||||||
|
if (idx == index) {
|
||||||
|
this.StateList[idx].active = true
|
||||||
|
} else {
|
||||||
|
this.StateList[idx].active = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log('更改成功')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 注销账号
|
||||||
|
logout() {
|
||||||
|
let that = this
|
||||||
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
|
title: '警告',
|
||||||
|
content: '本操作将会注销您的账户,可能会导致您错过精心为您配对的另一半,是否继续?',
|
||||||
|
cancelText: '确定',
|
||||||
|
confirmText: '取消',
|
||||||
|
success: function(res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
} else if (res.cancel) {
|
||||||
|
that.$delete({
|
||||||
|
url: `${service.host}/admin/users/${that.user.id}`
|
||||||
|
}, {
|
||||||
|
success: ({
|
||||||
|
code,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
wx.clearStorageSync()
|
||||||
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
|
title: 'Sorry!',
|
||||||
|
content: '很抱歉!我们的产品没有留住你,希望我们能够再次见面!!!',
|
||||||
|
showCancel: false,
|
||||||
|
confirmText: '确定',
|
||||||
|
success: function(res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
that.$goto('/pages/tabBar/welcome')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 显示对话框
|
||||||
|
showModal() {
|
||||||
|
// 显示遮罩层
|
||||||
|
var animation = wx.createAnimation({
|
||||||
|
duration: 200,
|
||||||
|
timingFunction: 'linear',
|
||||||
|
delay: 0
|
||||||
|
})
|
||||||
|
this.animation = animation
|
||||||
|
animation.translateY(300).step()
|
||||||
|
this.animationData = animation.export()
|
||||||
|
this.showModalStatus = true
|
||||||
|
setTimeout(function() {
|
||||||
|
animation.translateY(0).step()
|
||||||
|
this.animationData = animation.export()
|
||||||
|
}.bind(this), 200)
|
||||||
|
},
|
||||||
|
gotofriends(item) {
|
||||||
|
this.modalName = ''
|
||||||
|
let url = ''
|
||||||
|
if (item.type == 'single') {
|
||||||
|
url = '/pages/home/information?id=' + item.id
|
||||||
|
} else {
|
||||||
|
url = '/pages/home/informationV2?id=' + item.id
|
||||||
|
}
|
||||||
|
wx.navigateTo({
|
||||||
|
url: url
|
||||||
|
})
|
||||||
|
},
|
||||||
|
hideModal() {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
// if (!this.token) {
|
||||||
|
// this.$emit('modalValue', 'ModalLogin')
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
console.log(this.token, '----0000')
|
||||||
|
if (!this.token) {
|
||||||
|
this.$emit('modalValue', '')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
console.log('333')
|
||||||
|
if (url == 'mask') {
|
||||||
|
if (this.user.is_photo_audited == 1) {
|
||||||
|
this.$emit('modalInit', '')
|
||||||
|
} else {
|
||||||
|
this.$emit('modalCity', '')
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!this.is_base_info) {
|
||||||
|
url = '/pages/home/registration'
|
||||||
|
}
|
||||||
|
wx.navigateTo({
|
||||||
|
url: url
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gotoUser(type) {
|
||||||
|
this.onPauseMusic()
|
||||||
|
let url = ''
|
||||||
|
if (type == 'single') {
|
||||||
|
url = '/pages/users/unmarriV2'
|
||||||
|
} else {
|
||||||
|
url = '/pages/users/intro'
|
||||||
|
}
|
||||||
|
wx.navigateTo({
|
||||||
|
url: url
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
events: {
|
||||||
|
'UpLoadImage': (value) => {
|
||||||
|
let vm = this
|
||||||
|
vm.Image = value
|
||||||
|
vm.upDataAvatar()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.user_back {
|
||||||
|
width: 100vw;
|
||||||
|
height: 310rpx;
|
||||||
|
/*height: 76vw;*/
|
||||||
|
/*background-image: url("https://images.ufutx.com/202012/19/203697324cc80baa63941bece9d54fc3.gif");*/
|
||||||
|
// background-image: url("https://images.ufutx.com/202101/26/07f61fa05cf032ed7e11c8e3b50e2b9e.png"); // background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 45%, #EAEAEA 100%);
|
||||||
|
// background-repeat: no-repeat;
|
||||||
|
// background-size: cover;
|
||||||
|
padding-top: 20vw;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.userinfo {
|
||||||
|
padding: 40rpx 30rpx 20rpx;
|
||||||
|
position: relative;
|
||||||
|
height:100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.main{
|
||||||
|
flex:1;
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column;
|
||||||
|
}
|
||||||
|
.gif-wave {
|
||||||
|
width: 100%;
|
||||||
|
position: absolute;
|
||||||
|
bottom: -2rpx;
|
||||||
|
left: 0;
|
||||||
|
z-index: 999;
|
||||||
|
mix-blend-mode: screen;
|
||||||
|
height: 100rpx;
|
||||||
|
}
|
||||||
|
.editInfo {
|
||||||
|
margin-top: 8rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.icon {
|
||||||
|
width: 10rpx;
|
||||||
|
height: 20rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.siz {
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_userAva {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 20rpx #dbdbdb;
|
||||||
|
border: 4rpx solid #ffffff;
|
||||||
|
overflow: hidden;
|
||||||
|
.userinfo-avatar {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.mask {
|
||||||
|
position: absolute;
|
||||||
|
left: 0rpx;
|
||||||
|
top: 0rpx;
|
||||||
|
color: #fff;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
line-height: 112rpx;
|
||||||
|
text-align: center;
|
||||||
|
background: rgba(0, 0, 0, .39);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bc-avatar {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
left: -28rpx;
|
||||||
|
top: -20rpx;
|
||||||
|
width: 150rpx;
|
||||||
|
height: 150rpx;
|
||||||
|
}
|
||||||
|
.mainVip {
|
||||||
|
margin-left: 10rpx;
|
||||||
|
.icon {
|
||||||
|
width: 76rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
// vertical-align: middle;
|
||||||
|
// margin-right: 4rpx;
|
||||||
|
}
|
||||||
|
.vipBox {
|
||||||
|
height: 50rpx;
|
||||||
|
line-height: 50rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
// background: #fcf0ef;
|
||||||
|
// display: inline-block;
|
||||||
|
// padding: 0 10rpx;
|
||||||
|
// border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
._edit{
|
||||||
|
padding: 0rpx 16rpx;
|
||||||
|
line-height: 38rpx;
|
||||||
|
background: #F5F5F5;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
margin-left: 8rpx;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
color: #fb8109;
|
||||||
|
margin-bottom: -2rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.doudun {
|
||||||
|
animation: tada 1800ms ease infinite;
|
||||||
|
}
|
||||||
|
.vip-image {
|
||||||
|
width: 42rpx;
|
||||||
|
height: 42rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 92rpx;
|
||||||
|
bottom: 30rpx;
|
||||||
|
animation: zy 2.5s .15s linear infinite;
|
||||||
|
}
|
||||||
|
@keyframes tada {
|
||||||
|
0% {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
10%,
|
||||||
|
20% {
|
||||||
|
transform: scale(0.9) rotate(-12deg)
|
||||||
|
}
|
||||||
|
30%,
|
||||||
|
50%,
|
||||||
|
70%,
|
||||||
|
90% {
|
||||||
|
transform: scale(1.1) rotate(12deg)
|
||||||
|
}
|
||||||
|
40%,
|
||||||
|
60%,
|
||||||
|
80% {
|
||||||
|
transform: scale(1.1) rotate(-12deg)
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: scale(1) rotate(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes zy {
|
||||||
|
10% {
|
||||||
|
transform: rotate(15deg);
|
||||||
|
}
|
||||||
|
20% {
|
||||||
|
transform: rotate(-10deg);
|
||||||
|
}
|
||||||
|
30% {
|
||||||
|
transform: rotate(5deg);
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
transform: rotate(-5deg);
|
||||||
|
}
|
||||||
|
50%,
|
||||||
|
100% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.active {
|
||||||
|
background: #D92553 !important;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
/*使屏幕变暗 */
|
||||||
|
.commodity_screen {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background: #000;
|
||||||
|
opacity: 0.2;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 1000;
|
||||||
|
color: #fff;
|
||||||
|
filter: blur(38px);
|
||||||
|
}
|
||||||
|
/*对话框 */
|
||||||
|
.commodity_attr_box {
|
||||||
|
/*height: 300rpx;*/
|
||||||
|
padding-bottom: 4%;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 2000;
|
||||||
|
background: #fff;
|
||||||
|
padding-top: 20rpx;
|
||||||
|
border-top-right-radius: 22rpx;
|
||||||
|
border-top-left-radius: 22rpx;
|
||||||
|
}
|
||||||
|
.share-image {
|
||||||
|
width: 76rpx;
|
||||||
|
height: 76rpx;
|
||||||
|
}
|
||||||
|
.userinfo-info {
|
||||||
|
height: 50rpx;
|
||||||
|
line-height: 50rpx;
|
||||||
|
z-index: 9999;
|
||||||
|
span {
|
||||||
|
max-width: 240rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.icon {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-bottom: -7rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
._bc-title {
|
||||||
|
border-bottom: 3rpx solid #f3f3f3;
|
||||||
|
margin: 0 32rpx;
|
||||||
|
padding: 22rpx 22rpx;
|
||||||
|
.image {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
/*display: flex;// flex布局*/
|
||||||
|
/*justify-content: center;// 使子项目水平居中*/
|
||||||
|
/*align-items: center;// 使子项目垂直居中*/
|
||||||
|
margin-top: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 个人中心修改
|
||||||
|
.sign{
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 80rpx;
|
||||||
|
z-index: 99;
|
||||||
|
.img{
|
||||||
|
position: absolute;
|
||||||
|
right: 14rpx;
|
||||||
|
top: -46rpx;
|
||||||
|
z-index: 22;
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
}
|
||||||
|
.sign_tt {
|
||||||
|
position: relative;
|
||||||
|
z-index: 99;
|
||||||
|
width: 128rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
background: linear-gradient(90deg, #FA9E58 0%, #FB7033 100%);
|
||||||
|
border-radius: 200rpx 0px 0px 200rpx;
|
||||||
|
line-height: 24rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
usingComponents: {
|
||||||
|
message: '~@/components/message'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
105
src/components/visitorModel.wpy
Normal file
105
src/components/visitorModel.wpy
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
<template>
|
||||||
|
<view :class="{'~show':showVisitorModel}" class="~cu-modal " style="transition-duration: 0s !important;">
|
||||||
|
<view class="perfect_box ~animation-slide-top">
|
||||||
|
<view class="operation_box ~text-center">
|
||||||
|
<view class="title ~font_32 ~bold">完善资料</view>
|
||||||
|
<image class="d_img" src="https://image.fulllinkai.com/202203/24/ed0d934242d66b9de3981b5ab072079d.png" mode="widthFix"></image>
|
||||||
|
<view class="d_text ~font_30 ~color666">你还未完成资料,赶快去完善,解锁更多功能</view>
|
||||||
|
<view class="d_btn ~font_32" @tap="gotoBasicData">完善资料</view>
|
||||||
|
</view>
|
||||||
|
<view class="m_shut text-center">
|
||||||
|
<image class="shut_icon" @tap.stop="hideModal" src="https://images.ufutx.com/202104/27/1033c7b52cacddcebe999cefc6ad2c9b.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
wepy.component({
|
||||||
|
props: {
|
||||||
|
showVisitorModel: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
// showVisitorModel: false,
|
||||||
|
img1: 'https://image.fulllinkai.com/202203/22/d4abf8d549c7429e46fb43367d1eec89.png', // 无法查看
|
||||||
|
img2: 'https://images.ufutx.com/202103/17/2b0cd3c8b254a0f66a7dcb9f9158c50d.png' // 无法申请
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
methods: {
|
||||||
|
// showModal (val) {
|
||||||
|
// // val的值由父组件传值,1代表操作,0代表查看,根据触发事件来定义展示图片
|
||||||
|
// this.showVisitorModel = true
|
||||||
|
// },
|
||||||
|
hideModal () {
|
||||||
|
// this.showVisitorModel = false
|
||||||
|
this.$emit('closeFn')
|
||||||
|
},
|
||||||
|
gotoBasicData() {
|
||||||
|
let link = '/pages/userInfo/basicData'
|
||||||
|
this.showVisitorModel = false
|
||||||
|
wx.navigateTo({url: link})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.perfect_box{
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 600rpx;
|
||||||
|
margin: auto;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
.operation_box{
|
||||||
|
margin: 0 30rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 22rpx;
|
||||||
|
.title{
|
||||||
|
margin-top: 10rpx;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
.d_img{
|
||||||
|
width: 320rpx;
|
||||||
|
margin-top: 22rpx;
|
||||||
|
}
|
||||||
|
.d_text{
|
||||||
|
width: 400rpx;
|
||||||
|
margin:22rpx auto;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 52rpx;
|
||||||
|
}
|
||||||
|
.d_btn{
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 20px;
|
||||||
|
background: url('https://image.fulllinkai.com/202203/24/dd344c69484dfa46820998dde150556f.png')
|
||||||
|
100% no-repeat;
|
||||||
|
width: 380rpx;
|
||||||
|
margin: 42rpx auto;
|
||||||
|
line-height:80rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #fff;
|
||||||
|
text-indent: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_shut {
|
||||||
|
width: 100%;
|
||||||
|
height: 48rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: -60px;
|
||||||
|
.shut_icon{
|
||||||
|
width: 48rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
@ -6,9 +6,9 @@ var host = ''
|
|||||||
var hostGo = ''
|
var hostGo = ''
|
||||||
|
|
||||||
// if (_NODE_) {
|
// if (_NODE_) {
|
||||||
host = 'https://love.ufutx.com/api' // 线上环境
|
// host = 'https://love.ufutx.com/api' // 线上环境
|
||||||
hostGo = 'https://love.ufutx.com/go/api' // 线上环境
|
// hostGo = 'https://love.ufutx.com/go/api' // 线上环境
|
||||||
// host = 'http://health.ufutx.net/api' // 本地环境
|
host = 'http://love.ufutx.net/go/api' // 本地环境
|
||||||
// hostGo = 'http://health.ufutx.net/go/api' // 本地环境
|
// hostGo = 'http://health.ufutx.net/go/api' // 本地环境
|
||||||
// } else {
|
// } else {
|
||||||
// host = 'https://love.ufutx.com/api' // 线上环境
|
// host = 'https://love.ufutx.com/api' // 线上环境
|
||||||
@ -19,14 +19,38 @@ export const service = {
|
|||||||
// go语言接口
|
// go语言接口
|
||||||
hostGo: `${hostGo}`,
|
hostGo: `${hostGo}`,
|
||||||
// 登录接口
|
// 登录接口
|
||||||
login: `${host}/login/wechat`,
|
login: `${host}/login`,
|
||||||
|
|
||||||
// 绑定手机号
|
// 绑定手机号
|
||||||
bindMobile: `${host}/bind/mobile`,
|
bindMobile: `${host}/bind/mobile`,
|
||||||
// 保存资料
|
// 保存资料
|
||||||
saveBaseData: `${host}/user/info`,
|
saveBaseData: `${host}/user/info`,
|
||||||
// 获取手机号验证码
|
// 获取手机号验证码
|
||||||
getMobileCode: `${host}/mobile/code`
|
getMobileCode: `${host}/mobile/code`,
|
||||||
|
// 上传图片
|
||||||
|
image_upload: `${host}/uploads`,
|
||||||
|
// 用户资料
|
||||||
|
profile: `${host}/profile`,
|
||||||
|
// 用户
|
||||||
|
user: `${host}/user`,
|
||||||
|
// 添加好友
|
||||||
|
addFriend: `${host}/friend/users`,
|
||||||
|
// 关注某人
|
||||||
|
follow: `${host}/follow/users`,
|
||||||
|
// 我的粉丝
|
||||||
|
followers: `${host}/followers`,
|
||||||
|
// 我的好友
|
||||||
|
friends: `${host}/friends`,
|
||||||
|
// 我的关注
|
||||||
|
followings: `${host}/followings`,
|
||||||
|
// 举报标签
|
||||||
|
reportLabel: `${host}/moment/complaint/labels`,
|
||||||
|
// 举报动态
|
||||||
|
complaints: `${host}/complaint`,
|
||||||
|
// 话题列表?
|
||||||
|
moment: `${host}/moment`,
|
||||||
|
// 动态列表
|
||||||
|
moments: `${host}/moments`
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -101,10 +101,10 @@ export default {
|
|||||||
if (this.$is == 'pages/service/GroupChatPage' && data.message.includes('已断开连接')) {
|
if (this.$is == 'pages/service/GroupChatPage' && data.message.includes('已断开连接')) {
|
||||||
let vm = this
|
let vm = this
|
||||||
wx.showModal({ // 使用模态框提示用户进行操作
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
title: `${this.i18nL.pages.service.healthMGT.otherShow1}`,
|
title: `温馨提示`,
|
||||||
content: `${this.i18nL.UpdatePromptText5}`,
|
content: `UpdatePromptText5`,
|
||||||
showCancel: false,
|
showCancel: false,
|
||||||
confirmText: `${this.i18nL.UpdatePromptText5}`,
|
confirmText: `UpdatePromptText5`,
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
@ -120,10 +120,10 @@ export default {
|
|||||||
vm.errorOne += 1
|
vm.errorOne += 1
|
||||||
if (vm.errorOne <= 2) {
|
if (vm.errorOne <= 2) {
|
||||||
wx.showModal({ // 使用模态框提示用户进行操作
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
title: `${this.i18nL.pages.service.healthMGT.otherShow1}`,
|
title: `温馨提示`,
|
||||||
content: data.message,
|
content: data.message,
|
||||||
showCancel: false,
|
showCancel: false,
|
||||||
confirmText: `${this.i18nL.appWpy.confirmText}`,
|
confirmText: `确定`,
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
vm.errorOne = 1
|
vm.errorOne = 1
|
||||||
|
|||||||
1
src/mp_ecard_sdk/constants/log.js
Normal file
1
src/mp_ecard_sdk/constants/log.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
const Log={initSdk:"INIT_SDK",getConfig:"GET_CONFIG",webViewResult:"WEBVIEW_RESULT",webViewError:"WEBVIEW_ERROR",navigateToEid:"NAVIGATE_TO_EID",navigateBackFromEid:"NAVIGATE_BACK_FROM_EID",navigateBackFromEidFail:"NAVIGATE_BACK_FROM_EID_FAIL",startEid:"START_EID",startEidFail:"START_EID_FAIL",EidVerifyDone:"EID_VERIFY_DONE",registerEid:"REGISTER_EID",registerEidFail:"REGISTER_EID_FAIL"};export default Log;
|
||||||
BIN
src/mp_ecard_sdk/img/loading.gif
Normal file
BIN
src/mp_ecard_sdk/img/loading.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
BIN
src/mp_ecard_sdk/img/logo.png
Normal file
BIN
src/mp_ecard_sdk/img/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.6 KiB |
1
src/mp_ecard_sdk/index/index.js
Normal file
1
src/mp_ecard_sdk/index/index.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
import getParameterByName from"../utils/getParameterByName";import Log from"../constants/log";Component({options:{styleIsolation:"page-apply-shared"},data:{token:"",appName:"",isAgree:!!wx.getStorageSync("isAgree"),showAuth:!1,showWebView:!1,redirectUri:"",isNavigating:!1},methods:{onLoad(e){const{token:t}=e;this.setData({token:t,isAgree:!!wx.getStorageSync("isAgree"),redirectUri:`${wx.eidBaseUrl}/api/v1/Redirect?token=${t}`},()=>{this.setData({showWebView:!0}),this.getConfig(t)})},getConfig(e){const t=this;wx.request({url:`${wx.eidBaseUrl}/api/v1/GetConfig?token=${e}`,method:"GET",success(a){if(wx.reportLogToEid({token:e,event:Log.getConfig,errCode:a.data?a.data.ErrorCode:"",errMsg:a.data?a.data.ErrorMsg:""}),a.data&&0===a.data.ErrorCode){const e=a.data.Data.AppName;return void t.setData({appName:e})}const o=a.data.ErrorMsg;wx.showModal({title:"提示",content:o,showCancel:!1,success(){wx.navigateBack()}})},fail(t){console.log("网络失败,请点击重新尝试",t),wx.reportLogToEid({token:e,event:Log.getConfigFail,errCode:"",errMsg:t.errMsg}),wx.showModal({title:"提示",content:"网络失败,请点击重新尝试",showCancel:!1,success(){wx.navigateBack()}})}})},handleWebViewLoad(e){console.log("webview load",e.detail.src);const{token:t}=this.data,a=getParameterByName("success",e.detail.src);a&&this.setData({showWebView:!1,showAuth:!0}),wx.reportLogToEid({token:t,event:Log.webViewResult,errMsg:`success参数为${a}`})},handleWebViewError(e){console.log("webview error",e);this.setData({showWebView:!1,showAuth:!0});const{token:t}=this.data;wx.reportLogToEid({token:t,event:Log.webViewError,errMsg:e.detail.src})},changeAgree(){const e=!this.data.isAgree;this.setData({isAgree:e},()=>{wx.setStorageSync("isAgree",e)})},navigateToEid(){const{token:e}=this.data;this.setData({isNavigating:!0});const t=this;wx.navigateToMiniProgram({appId:"wx0e2cb0b052a91c92",path:"pages/huiyan/index",extraData:{useHuiyan:!0,huiyanToken:e},success(){wx.eidTokenToCallback=e},complete(a){t.setData({isNavigating:!1}),wx.reportLogToEid({token:e,event:Log.navigateToEid,errMsg:a.errMsg})}})}}});
|
||||||
4
src/mp_ecard_sdk/index/index.json
Normal file
4
src/mp_ecard_sdk/index/index.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "腾讯云E证通授权",
|
||||||
|
"usingComponents": {}
|
||||||
|
}
|
||||||
37
src/mp_ecard_sdk/index/index.wxml
Normal file
37
src/mp_ecard_sdk/index/index.wxml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<view class="auth" wx:if="{{showAuth}}">
|
||||||
|
<view class="auth-logo">
|
||||||
|
<image src="../img/logo.png" />
|
||||||
|
</view>
|
||||||
|
<view class="title">
|
||||||
|
您正在授权
|
||||||
|
<view class="merchant-name">{{' '+ appName}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="sub-title">通过腾讯云E证通核验并获取您的身份信息</view>
|
||||||
|
<view class="agreement">
|
||||||
|
<checkbox-group bindchange="changeAgree">
|
||||||
|
<checkbox value="agreement" checked="{{isAgree}}"/>
|
||||||
|
</checkbox-group>
|
||||||
|
<view>
|
||||||
|
<view>
|
||||||
|
<view bindtap='changeAgree' style="display:inline">已阅读并同意</view>
|
||||||
|
<navigator url="/mp_ecard_sdk/protocol/service/index">《腾讯云E证通服务使用协议》</navigator>和
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<navigator url="/mp_ecard_sdk/protocol/eid/index">《eID数字身份小程序服务协议》</navigator>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="button-area">
|
||||||
|
<button bindtap='navigateToEid' disabled="{{!isAgree || isNavigating}}">
|
||||||
|
确认授权
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view wx:if="{{showWebView}}">
|
||||||
|
<web-view
|
||||||
|
src="{{redirectUri}}"
|
||||||
|
bindload="handleWebViewLoad"
|
||||||
|
binderror="handleWebViewError"
|
||||||
|
></web-view>
|
||||||
|
</view>
|
||||||
106
src/mp_ecard_sdk/index/index.wxss
Normal file
106
src/mp_ecard_sdk/index/index.wxss
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
.auth {
|
||||||
|
margin-top: 128rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth-logo {
|
||||||
|
width: 200rpx;
|
||||||
|
height: 200rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth-logo image {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
line-height: 56rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merchant-name {
|
||||||
|
display: inline;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sub-title {
|
||||||
|
margin-top: 8rpx;
|
||||||
|
font-size: 34rpx;
|
||||||
|
line-height: 52rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.agreement {
|
||||||
|
margin-top: 96rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
color: #888888;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkbox .wx-checkbox-input {
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*checkbox选中后样式 */
|
||||||
|
checkbox .wx-checkbox-input.wx-checkbox-input-checked {
|
||||||
|
background: #006EFF ;
|
||||||
|
}
|
||||||
|
/*checkbox选中后图标样式 */
|
||||||
|
checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
line-height: 28rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #fff;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
navigator {
|
||||||
|
display: inline;
|
||||||
|
color: #006DFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-area {
|
||||||
|
margin-top: 48rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
width: 622rpx !important;
|
||||||
|
height: 96rpx !important;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border: 2rpx solid #DDDDDD;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: normal !important;
|
||||||
|
line-height: 96rpx !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.redirect {
|
||||||
|
margin-top: 272rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading {
|
||||||
|
height: 160rpx;
|
||||||
|
width: 160rpx;
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading image {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 34rpx;
|
||||||
|
line-height: 52rpx;
|
||||||
|
}
|
||||||
1
src/mp_ecard_sdk/main.js
Normal file
1
src/mp_ecard_sdk/main.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
import validate from"./utils/validate";import Log from"./constants/log";function initEid(e="https://eid.faceid.qq.com"){wx.eidBaseUrl=e,wx.onAppShow(e=>{console.log("!!!!!!监听onshow事件",e);const{scene:o}=e;if(1038!==o)return;const{referrerInfo:t}=e,{appId:n,extraData:r}=t;if("wx0e2cb0b052a91c92"!==n||!r)return;const{verifyDone:i,token:a}=r;i&&wx.handleEidVerifyDone?wx.eidTokenToCallback&&wx.eidTokenToCallback===a&&(wx.eidTokenToCallback="",wx.reportLogToEid({token:a,event:Log.navigateBackFromEid,errMsg:`从EID核身完成返回,token:${a},verifyDone:${i}`}),console.log("!!!!!!执行回调"),wx.handleEidVerifyDone(r)):wx.reportLogToEid({token:a,event:Log.navigateBackFromEidFail,errMsg:`核验未完成或者没有处理核验完成的函数,token:${a},verifyDone:${i}`})});const o=wx.getSystemInfoSync(),{version:t}=o;wx.reportLogToEid=function(e){const{token:o="",event:n="",errCode:r="",errMsg:i="",data:a=""}=e,s=new Date,d={Token:o,SourceType:"mp_sdk",SourceVersion:"1.0.4",EnvVersion:t,Timestamp:s.getTime(),Event:n,ErrorCode:"number"==typeof r?r.toString():r,ErrorMsg:i,Data:a};console.log("开始上报日志:",d),wx.request({url:`${wx.eidBaseUrl}/api/common/ReportEvent`,method:"POST",data:d,success(e){console.log("上报日志完成:","payload:",d,"res:",e)}})}}function startEid(e){const{data:o,verifyDoneCallback:t}=e;if(!o||!t)return wx.reportLogToEid({token:n,event:Log.startEidFail,errMsg:"传入的参数有误"}),void wx.showModal({title:"提示",content:"传入的参数有误",showCancel:!1});const{token:n}=o;if(!validate(n,"token"))return wx.reportLogToEid({token:n,event:Log.startEidFail,errMsg:`传入的token有误,token:${n}`}),void wx.showModal({title:"提示",content:"传入的token有误",showCancel:!1});wx.handleEidVerifyDone=(e=>{const{token:o}=e;wx.navigateBack({success(){wx.reportLogToEid({token:o,event:Log.EidVerifyDone,errMsg:`验证完成,token:${o}`}),t({token:o,verifyDone:!0})}})}),wx.navigateTo({url:`/mp_ecard_sdk/index/index?token=${n}`})}module.exports={initEid:initEid,startEid:startEid};
|
||||||
1
src/mp_ecard_sdk/protocol/eid/index.js
Normal file
1
src/mp_ecard_sdk/protocol/eid/index.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
Component({options:{styleIsolation:"page-apply-shared"}});
|
||||||
3
src/mp_ecard_sdk/protocol/eid/index.json
Normal file
3
src/mp_ecard_sdk/protocol/eid/index.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "eID数字身份小程序服务协议"
|
||||||
|
}
|
||||||
93
src/mp_ecard_sdk/protocol/eid/index.wxml
Normal file
93
src/mp_ecard_sdk/protocol/eid/index.wxml
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<view class="protocol">
|
||||||
|
<view class="main">
|
||||||
|
<view class="h1">
|
||||||
|
<text>eID数字身份小程序服务协议</text>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<view style="display:inline" class="strong">
|
||||||
|
eID
|
||||||
|
</view>
|
||||||
|
数字身份小程序是公安部第三研究所提供的为用户签发的采用国产密码算法生成的中国公民数字身份标记,并就用户身份信息和人脸信息通过腾讯的人脸识别验证身份信息功能向权威机构核验与权威数据的相符性。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
我们特别提示您,
|
||||||
|
<view style="display:inline" class="strong">
|
||||||
|
您在页面点击“已阅读并同意《eID数字身份申请协议》”的行为视为您已经充分阅读并理解、同意本协议的内容并作出相关授权。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="strong">一、eID数字身份说明</view>
|
||||||
|
<view>
|
||||||
|
eID数字身份是以公民身份号码为根,由公安部第三研究所(以下称“三所”)承建的“公安部公民网络身份识别系统”采用国产密码算法为中国公民生成的数字身份标记。eID数字身份具有以下特点:
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
1.1 eID数字身份以公民身份号码为根生成;
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
1.2 eID数字身份采用国产密码算法产生,从eID数字身份无法逆推出公民身份号码原文;
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
1.3 eID服务体系对于同一用户,在不同的互联网应用中产生的eID数字身份并不相同,即碎片化处理,防止被大数据技术追踪;
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
1.4 eID数字身份由“公安部公民网络身份识别系统”统一管理,碎片化处理后的eID数字身份可以有条件进行同一化处理。
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="strong">二、eID数字身份的签发</view>
|
||||||
|
<view>
|
||||||
|
2.1 三所通过eID数字身份小程序在向您签发eID数字身份之前,三所需要对您提供的姓名、身份号码、人脸信息通过腾讯提供的人脸识别验证身份功能与权威机构中的信息进行相符性比对,以确认您提供信息的真实性。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
2.2 在通过相符性比对后,三所为您签发eID数字身份。您的eID数字身份与您申请时提供的身份信息及人脸信息唯一关联。
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="strong">三、eID数字身份小程序的使用</view>
|
||||||
|
<view>
|
||||||
|
在接入了腾讯云E证通的应用场景中,向您提供服务的应用会请您使用腾讯云E证通证明您的身份,腾讯云E证通会跳转到eID数字身份小程序,小程序会拉起腾讯的人脸识别验证功能,提取您的现场人脸视频并通过向权威机构的相应数据进行相符性比对,并将比对结果反馈给eID数字身份小程序。比对通过后,小程序会签发您的eID数字身份,并通过腾讯云E证通转发给向您提供服务的应用,由其决定是否继续向您提供服务。
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="strong">四、个人信息收集、使用、处理</view>
|
||||||
|
<view>
|
||||||
|
4.1 为了使用eID数字身份小程序,
|
||||||
|
<view style="display:inline" class="strong">
|
||||||
|
您授权并同意三所收集、使用您的姓名、身份号码信息、人脸视频,并通过腾讯人脸识别验证身份功能与权威机构的相应数据进行相符性比对,比对通过之后,由三所为您签发eID数字身份并存储您的姓名、身份证号码、人脸照片信息。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
4.2 您授权并同意三所基于您的姓名、身份号码生成您的eID数字身份,并将您的eID数字身份向为您提供服务的应用方提供以完成实名登记、实名认证要求。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
4.3 在您通过eID数字身份向为您提供服务的应用证明您的身份时,您授权并同意三所将相符性比对结果转发给向您提供服务的应用方,由其判断是否通过您的实名实人认证。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
4.4 某些应用方基于国家监管要求或法律要求,在向您提供服务时需要采集并保存您的姓名、身份号码、人脸图像身份信息证明您的身份,在得到您的同意后,三所会将您的身份信息向这些应用方提供。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
4.5 三所在后台存储收集到的个人信息,包括您的姓名、身份号码、人脸图像,对这些信息采取包括但不限于加密处理的技术安全措施进行妥善保管。三所未经您的授权或许可不会向第三方提供您的个人信息。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
4.6 如您希望访问、撤回授权、修改、删除您的个人信息,因eID数字身份小程序未单独为用户提供服务,您可以通过“关于腾讯云E证通-意见反馈”联系我们,并提供必要的身份证明。
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="strong">五、提示</view>
|
||||||
|
<view class="strong">
|
||||||
|
5.1 请您提供真实、准确的姓名、身份号码,否则,无法为您生成eID数字身份;
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
5.2 请您提供本人的姓名、身份号码、人脸图像,并申请本人的eID数字身份。冒用他人身份者将承担身份冒用带来的一切后果与责任。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
5.3 冒用他人身份给第三方或三所造成的任何损失,应当依法进行赔偿。
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="strong">六、免责</view>
|
||||||
|
<view class="strong">
|
||||||
|
您理解并同意,三所仅通过腾讯提供的人脸识别验证身份功能对用户提供的身份信息是否与权威机构的相应数据相符而提供技术服务以及签发eID数字身份,三所不承诺权威机构所提供的相符性验证结果的准确性,对可能导致的不利后果三所不承担责任。
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="strong">七、其它</view>
|
||||||
|
<view class="strong">
|
||||||
|
若您与三所发生任何纠纷或争议,您同意将纠纷或争议提交本协议签订地(即中国上海市徐汇区)有管辖权的人民法院管辖。本协议的成立、生效、履行、解释及纠纷解决,适用中华人民共和国大陆地区法律。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
66
src/mp_ecard_sdk/protocol/eid/index.wxss
Normal file
66
src/mp_ecard_sdk/protocol/eid/index.wxss
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
.protocol {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.protocol .main {
|
||||||
|
background: #f8f9fa;
|
||||||
|
padding: 40rpx 40rpx 140rpx 40rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #3c3c3c;
|
||||||
|
}
|
||||||
|
.protocol .main view {
|
||||||
|
margin: 20rpx 0;
|
||||||
|
}
|
||||||
|
.protocol .main .h1 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 2;
|
||||||
|
margin: 0 0 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .p {
|
||||||
|
margin: 4rpx 0;
|
||||||
|
text-indent: 2em;
|
||||||
|
}
|
||||||
|
.protocol .main .strong {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.protocol .main .dl {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .dt {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .h2 {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.protocol .main .dd {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .dd view {
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.protocol .pop-btn-line {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30rpx;
|
||||||
|
background: #f8f9fa;
|
||||||
|
}
|
||||||
|
.protocol .pop-btn {
|
||||||
|
line-height: 90rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
color: #00a5e0;
|
||||||
|
font-size: 34rpx;
|
||||||
|
background: transparent;
|
||||||
|
display: block;
|
||||||
|
min-width: 5.6rem;
|
||||||
|
text-align: center;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
background-color: #2787f3;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
1
src/mp_ecard_sdk/protocol/privacy/index.js
Normal file
1
src/mp_ecard_sdk/protocol/privacy/index.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
Component({options:{styleIsolation:"page-apply-shared"}});
|
||||||
3
src/mp_ecard_sdk/protocol/privacy/index.json
Normal file
3
src/mp_ecard_sdk/protocol/privacy/index.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "腾讯隐私政策"
|
||||||
|
}
|
||||||
168
src/mp_ecard_sdk/protocol/privacy/index.wxml
Normal file
168
src/mp_ecard_sdk/protocol/privacy/index.wxml
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
<view class="protocol">
|
||||||
|
<view class="main">
|
||||||
|
<view class="h1">
|
||||||
|
<text>腾讯隐私政策</text>
|
||||||
|
</view>
|
||||||
|
<text>引言</text>
|
||||||
|
<view>
|
||||||
|
腾讯视用户信息安全与隐私保护为自己的“生命线”。我们秉承“一切以用户价值为依归”的理念,致力于提升信息处理透明度,增强您对信息管理的便捷性,保障您的信息及通信安全。
|
||||||
|
</view>
|
||||||
|
<view>腾讯严格遵守法律法规,遵循以下隐私保护原则,为您提供更加安全、可靠的服务:</view>
|
||||||
|
<view>1、安全可靠:我们竭尽全力通过合理有效的信息安全技术及管理流程,防止您的信息泄露、损毁、丢失。</view>
|
||||||
|
<view>2、自主选择:我们为您提供便利的信息管理选项,以便您做出合适的选择,管理您的个人信息。</view>
|
||||||
|
<view>3、保护通信秘密:我们严格遵照法律法规,保护您的通信秘密,为您提供安全的通信服务。</view>
|
||||||
|
<view>4、合理必要:为了向您和其他用户提供更好的服务,我们仅收集必要的信息。</view>
|
||||||
|
<view>5、清晰透明:我们努力使用简明易懂的表述,向您介绍隐私政策,以便您清晰地了解我们的信息处理方式。</view>
|
||||||
|
<view>6、将隐私保护融入产品设计:我们在产品或服务开发的各个环节,综合法律、产品、设计等多方因素,融入隐私保护的理念。</view>
|
||||||
|
<view>本《隐私政策》主要向您说明:</view>
|
||||||
|
<view>我们收集哪些信息;</view>
|
||||||
|
<view>我们收集信息的用途;</view>
|
||||||
|
<view>您所享有的权利。</view>
|
||||||
|
<view>希望您仔细阅读《隐私政策》(以下简称“本政策”),详细了解我们对信息的收集、使用方式,以便您更好地了解我们的服务并作出适当的选择。</view>
|
||||||
|
<view>若您使用腾讯服务,即表示您认同我们在本政策中所述内容。除另有约定外,本政策所用术语与《腾讯服务协议》中的术语具有相同的涵义。</view>
|
||||||
|
<view>如您有问题,请联系我们。</view>
|
||||||
|
<view class="strong">一、我们收集的信息</view>
|
||||||
|
<view>我们根据合法、正当、必要的原则,仅收集实现产品功能所必要的信息。</view>
|
||||||
|
<view>1.1 您在使用我们服务时主动提供的信息</view>
|
||||||
|
<view>1.1.1 您在注册帐户时填写的信息。</view>
|
||||||
|
<view>例如,您在注册QQ、微信帐户时所填写的昵称、手机号码。</view>
|
||||||
|
<view>1.1.2 您在使用服务时上传的信息。</view>
|
||||||
|
<view>例如,您在使用QQ、微信时,上传的头像、分享的照片。</view>
|
||||||
|
<view>1.1.3 您通过我们的客服或参加我们举办的活动时所提交的信息。</view>
|
||||||
|
<view>例如,您参与我们线上活动时填写的调查问卷中可能包含您的姓名、电话、家庭地址等信息。</view>
|
||||||
|
<view>
|
||||||
|
我们的部分服务可能需要您提供特定的个人敏感信息来实现特定功能。若您选择不提供该类信息,则可能无法正常使用服务中的特定功能,但不影响您使用服务中的其他功能。若您主动提供您的个人敏感信息,即表示您同意我们按本政策所述目的和方式来处理您的个人敏感信息。
|
||||||
|
</view>
|
||||||
|
<view>1.2我们在您使用服务时获取的信息</view>
|
||||||
|
<view>1.2.1 日志信息。当您使用我们的服务时,我们可能会自动收集相关信息并存储为服务日志信息。</view>
|
||||||
|
<view>(1) 设备信息。例如,设备型号、操作系统版本、唯一设备标识符、电池、信号强度等信息。</view>
|
||||||
|
<view>(2) 软件信息。例如,软件的版本号、浏览器类型。为确保操作环境的安全或提供服务所需,我们会收集有关您使用的移动应用和其他软件的信息。</view>
|
||||||
|
<view>(3) IP地址。</view>
|
||||||
|
<view>(4) 服务日志信息。例如,您在使用我们服务时搜索、查看的信息、服务故障信息、引荐网址等信息。</view>
|
||||||
|
<view>(5) 通讯日志信息。例如,您在使用我们服务时曾经通讯的账户、通讯时间和时长。</view>
|
||||||
|
<view>1.2.2 位置信息。当您使用与位置有关的服务时,我们可能会记录您设备所在的位置信息,以便为您提供相关服务。</view>
|
||||||
|
<view>(1) 在您使用服务时,我们可能会通过IP地址、GPS、WiFi或基站等途径获取您的地理位置信息;</view>
|
||||||
|
<view>
|
||||||
|
(2) 您或其他用户在使用服务时提供的信息中可能包含您所在地理位置信息,例如您提供的帐号信息中可能包含的您所在地区信息,您或其他人共享的照片包含的地理标记信息;
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
1.2.3 其他相关信息。为了帮助您更好地使用我们的产品或服务,我们会收集相关信息。例如,我们收集的好友列表、群列表信息、声纹特征值信息。为确保您使用我们服务时能与您认识的人进行联系,如您选择开启导入通讯录功能,我们可能对您联系人的姓名和电话号码进行加密,并仅收集加密后的信息。
|
||||||
|
</view>
|
||||||
|
<view>1.3 其他用户分享的信息中含有您的信息</view>
|
||||||
|
<view>例如,其他用户发布的照片或分享的视频中可能包含您的信息。</view>
|
||||||
|
<view>1.4 从第三方合作伙伴获取的信息</view>
|
||||||
|
<view>
|
||||||
|
我们可能会获得您在使用第三方合作伙伴服务时所产生或分享的信息。例如,您使用微信或QQ帐户登录第三方合作伙伴服务时,我们会获得您登录第三方合作伙伴服务的名称、登录时间,方便您进行授权管理。请您仔细阅读第三方合作伙伴服务的用户协议或隐私政策。
|
||||||
|
</view>
|
||||||
|
<view class="strong">二、我们如何使用收集的信息</view>
|
||||||
|
<view>我们严格遵守法律法规的规定及与用户的约定,将收集的信息用于以下用途。若我们超出以下用途使用您的信息,我们将再次向您进行说明,并征得您的同意。</view>
|
||||||
|
<view>2.1 向您提供服务。</view>
|
||||||
|
<view>2.2 满足您的个性化需求。例如,语言设定、位置设定、个性化的帮助服务。</view>
|
||||||
|
<view>2.3 产品开发和服务优化。例如,当我们的系统发生故障时,我们会记录和分析系统故障时产生的信息,优化我们的服务。</view>
|
||||||
|
<view>
|
||||||
|
2.4 安全保障。例如,我们会将您的信息用于身份验证、安全防范、反诈骗监测、存档备份、客户的安全服务等用途。例如,您下载或安装的安全软件会对恶意程序或病毒进行检测,或为您识别诈骗信息。
|
||||||
|
</view>
|
||||||
|
<view>2.5 向您推荐您可能感兴趣的广告、资讯等。</view>
|
||||||
|
<view>2.6 评估、改善我们的广告投放和其他促销及推广活动的效果。</view>
|
||||||
|
<view>2.7 管理软件。例如,进行软件认证、软件升级等。</view>
|
||||||
|
<view>2.8 邀请您参与有关我们服务的调查。</view>
|
||||||
|
<view>
|
||||||
|
为了让您有更好的体验、改善我们的服务或经您同意的其他用途,在符合相关法律法规的前提下,我们可能将通过某些服务所收集的信息用于我们的其他服务。例如,将您在使用我们某项服务时的信息,用于另一项服务中向您展示个性化的内容或广告、用于用户研究分析与统计等服务。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
为了确保服务的安全,帮助我们更好地了解我们应用程序的运行情况,我们可能记录相关信息,例如,您使用应用程序的频率、故障信息、总体使用情况、性能数据以及应用程序的来源。我们不会将我们存储在分析软件中的信息与您在应用程序中提供的个人身份信息相结合。
|
||||||
|
</view>
|
||||||
|
<view class="strong">三、我们如何使用Cookie及相关技术</view>
|
||||||
|
<view>
|
||||||
|
我们或我们的第三方合作伙伴,可能通过放置安全的Cookie及相关技术收集您的信息,目的是为您提供更个性化的用户体验和服务。我们会严格要求第三方合作伙伴遵守本政策的相关规定。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
您也可以通过浏览器设置管理Cookie。但请注意,如果停用Cookie,您可能无法享受最佳的服务体验,某些服务也可能无法正常使用。若您希望了解更多Cookie的安全性等信息,可参见《Cookie政策说明》。
|
||||||
|
</view>
|
||||||
|
<view class="strong">四、您分享的信息</view>
|
||||||
|
<view>
|
||||||
|
您可以通过我们的服务与您的好友、家人及其他用户分享您的相关信息。例如,您在微信朋友圈中公开分享的文字和照片。请注意,这其中可能包含您的个人身份信息、个人财产信息等敏感信息。请您谨慎考虑披露您的相关个人敏感信息。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
您可通过我们服务中的隐私设置来控制您分享信息的范围,也可通过服务中的设置或我们提供的指引删除您公开分享的信息。但请您注意,这些信息仍可能由其他用户或不受我们控制的非关联第三方独立地保存。
|
||||||
|
</view>
|
||||||
|
<view class="strong">五、您如何管理自己的信息</view>
|
||||||
|
<view>
|
||||||
|
5.1 您可以在使用我们服务的过程中,访问、修改和删除您提供的注册信息和其他个人信息,也可按照通知指引与我们联系。您访问、修改和删除个人信息的范围和方式将取决于您使用的具体服务。例如,若您在使用地理位置相关服务时,希望停止分享您的地理位置信息,您可通过手机定位关闭功能、软硬件服务商及通讯服务提供商的关闭方式停止分享,建议您仔细阅读相关指引。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
5.2 我们将按照本政策所述,仅为实现我们产品或服务的功能,收集、使用您的信息。如您发现我们违反法律、行政法规的规定或者双方的约定收集、使用您的个人信息,您可以要求我们删除。如您发现我们收集、存储的您的个人信息有错误的,您也可以要求我们更正。请通过本政策列明的联系方式与我们联系。
|
||||||
|
</view>
|
||||||
|
<view>5.3 在您访问、修改和删除相关信息时,我们可能会要求您进行身份验证,以保障帐号的安全。</view>
|
||||||
|
<view>5.4 请您理解,由于技术所限、法律或监管要求,我们可能无法满足您的所有要求,我们会在合理的期限内答复您的请求。</view>
|
||||||
|
<view class="strong">六、我们分享的信息</view>
|
||||||
|
<view>我们遵照法律法规的规定,对信息的分享进行严格的限制,例如:</view>
|
||||||
|
<view>6.1 经您事先同意,我们可能与第三方分享您的个人信息;</view>
|
||||||
|
<view>
|
||||||
|
6.2 仅为实现外部处理的目的,我们可能会与第三方合作伙伴(第三方服务供应商、承包商、代理、广告合作伙伴、应用开发者等,例如,代表我们发出电子邮件或推送通知的通讯服务提供商、为我们提供位置服务的地图服务供应商)(他们可能并非位于您所在的法域)分享您的个人信息,让他们按照我们的说明、隐私政策以及其他相关的保密和安全措施来为我们处理上述信息,并用于以下用途:
|
||||||
|
</view>
|
||||||
|
<view>6.2.1 向您提供我们的服务;</view>
|
||||||
|
<view>6.2.2 实现“我们如何使用收集的信息”部分所述目的;</view>
|
||||||
|
<view>6.2.3 履行我们在《腾讯服务协议》或本政策中的义务和行使我们的权利;</view>
|
||||||
|
<view>6.2.4 理解、维护和改善我们的服务。</view>
|
||||||
|
<view>如我们与上述第三方分享您的信息,我们将会采用加密、匿名化处理等手段保障您的信息安全。</view>
|
||||||
|
<view>
|
||||||
|
6.3 随着我们业务的持续发展,当发生合并、收购、资产转让等交易导致向第三方分享您的个人信息时,我们将通过推送通知、公告等形式告知您相关情形,按照法律法规及不低于本政策所要求的标准继续保护或要求新的管理者继续保护您的个人信息。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
6.4 我们会将所收集到的信息用于大数据分析。例如,我们将收集到的信息用于分析形成不包含任何个人信息的城市热力图或行业洞察报告。我们可能对外公开并与我们的合作伙伴分享经统计加工后不含身份识别内容的信息,用于了解用户如何使用我们服务或让公众了解我们服务的总体使用趋势。
|
||||||
|
</view>
|
||||||
|
<view>6.4 我们可能基于以下目的披露您的个人信息:</view>
|
||||||
|
<view>6.5.1 遵守适用的法律法规等有关规定;</view>
|
||||||
|
<view>6.5.2 遵守法院判决、裁定或其他法律程序的规定;</view>
|
||||||
|
<view>6.5.3 遵守相关政府机关或其他法定授权组织的要求;</view>
|
||||||
|
<view>6.5.4 我们有理由确信需要遵守法律法规等有关规定;</view>
|
||||||
|
<view>6.5.5 为执行相关服务协议或本政策、维护社会公共利益,为保护我们的客户、我们或我们的关联公司、其他用户或雇员的人身财产安全或其他合法权益合理且必要的用途。</view>
|
||||||
|
<view class="strong">七、我们可能向您发送的信息</view>
|
||||||
|
<view>7.1 信息推送</view>
|
||||||
|
<view>您在使用我们的服务时,我们可能向您发送电子邮件、短信、资讯或推送通知。您可以按照我们的相关提示,在设备上选择取消订阅。</view>
|
||||||
|
<view>7.2 与服务有关的公告</view>
|
||||||
|
<view>我们可能在必要时(例如,因系统维护而暂停某一项服务时)向您发出与服务有关的公告。您可能无法取消这些与服务有关、性质不属于广告的公告。</view>
|
||||||
|
<view class="strong">八、存储信息的地点和期限</view>
|
||||||
|
<view>8.1 存储信息的地点</view>
|
||||||
|
<view>我们遵守法律法规的规定,将境内收集的用户个人信息存储于境内。</view>
|
||||||
|
<view>8.2 存储信息的期限</view>
|
||||||
|
<view>一般而言,我们仅为实现目的所必需的最短时间保留您的个人信息。但在下列情况下,我们有可能因需符合法律要求,更改个人信息的存储时间:</view>
|
||||||
|
<view>8.2.1 为遵守适用的法律法规等有关规定;</view>
|
||||||
|
<view>8.2.2 为遵守法院判决、裁定或其他法律程序的规定;</view>
|
||||||
|
<view>8.2.3 为遵守相关政府机关或法定授权组织的要求;</view>
|
||||||
|
<view>8.2.4 我们有理由确信需要遵守法律法规等有关规定;</view>
|
||||||
|
<view>8.2.5 为执行相关服务协议或本政策、维护社会公共利益,为保护我们的客户、我们或我们的关联公司、其他用户或雇员的人身财产安全或其他合法权益所合理必需的用途。</view>
|
||||||
|
<view>当我们的产品或服务发生停止运营的情形时,我们将采取例如,推送通知、公告等形式通知您,并在合理的期限内删除或匿名化处理您的个人信息。</view>
|
||||||
|
<view class="strong">九、信息安全</view>
|
||||||
|
<view>我们为您的信息提供相应的安全保障,以防止信息的丢失、不当使用、未经授权访问或披露。</view>
|
||||||
|
<view>9.1 我们严格遵守法律法规保护用户的通信秘密。</view>
|
||||||
|
<view>9.2 我们将在合理的安全水平内使用各种安全保护措施以保障信息的安全。例如,我们使用加密技术(例如,TLS、SSL)、匿名化处理等手段来保护您的个人信息。</view>
|
||||||
|
<view>9.3 我们建立专门的管理制度、流程和组织确保信息安全。例如,我们严格限制访问信息的人员范围,要求他们遵守保密义务,并进行审查。</view>
|
||||||
|
<view>9.4 若发生个人信息泄露等安全事件,我们会启动应急预案,阻止安全事件扩大,并以推送通知、公告等形式告知您。</view>
|
||||||
|
<view class="strong">十、广告</view>
|
||||||
|
<view>我们可能使用您的相关信息,在相关网站、应用及其他渠道向您提供与您更加相关的广告。您可以在关于广告页面中了解更多。</view>
|
||||||
|
<view class="strong">十一、未成年人保护</view>
|
||||||
|
<view>
|
||||||
|
我们非常重视对未成年人个人信息的保护。根据相关法律法规的规定,若您是18周岁以下的未成年人,在使用腾讯的服务前,应事先取得您的家长或法定监护人的同意。若您是未成年人的监护人,当您对您所监护的未成年人的个人信息有相关疑问时,请通过第十三部分中的联系方式与我们联系。
|
||||||
|
</view>
|
||||||
|
<view class="strong">十二、适用范围</view>
|
||||||
|
<view>
|
||||||
|
我们的所有服务均适用本政策。但某些服务有其特定的隐私指引/声明,该特定隐私指引/声明更具体地说明我们在该服务中如何处理您的信息。如本政策与特定服务的隐私指引/声明有不一致之处,请以该特定隐私指引/声明为准。
|
||||||
|
</view>
|
||||||
|
<view>请您注意,本政策不适用由其他公司或个人提供的服务。例如,您通过使用微信帐号登录其他公司或个人提供的服务。</view>
|
||||||
|
<view>您使用该等第三方服务须受其隐私政策(而非本政策)约束,您需要仔细阅读其政策内容。</view>
|
||||||
|
<view class="strong">十三、联系我们</view>
|
||||||
|
<view>
|
||||||
|
如您对本政策或其他相关事宜有疑问,请通过 https://kf.qq.com/ 与我们联系。您也可根据我们提供的指引,填写相关资料,将您的问题发送至Dataprivacy@tencent.com或寄到如下地址:
|
||||||
|
</view>
|
||||||
|
<view>地址:中国广东省深圳市南山区科技园科技中一路腾讯大厦 法务部 数据及隐私保护中心(收)</view>
|
||||||
|
<view>邮编:518057</view>
|
||||||
|
<view>我们将尽快审核所涉问题,并在验证您的用户身份后的三十天内予以回复。</view>
|
||||||
|
<view class="strong">十四、变更</view>
|
||||||
|
<view>
|
||||||
|
我们可能适时修订本政策内容。如该等变更会导致您在本政策项下权利的实质减损,我们将在变更生效前,通过在页面显著位置提示、向您发送电子邮件等方式通知您。在该种情况下,若您继续使用我们的服务,即表示同意受经修订的政策约束。
|
||||||
|
</view>
|
||||||
|
<view class="strong">更新日期: 2018年6月13日</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
66
src/mp_ecard_sdk/protocol/privacy/index.wxss
Normal file
66
src/mp_ecard_sdk/protocol/privacy/index.wxss
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
.protocol {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.protocol .main {
|
||||||
|
background: #f8f9fa;
|
||||||
|
padding: 40rpx 40rpx 140rpx 40rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #3c3c3c;
|
||||||
|
}
|
||||||
|
.protocol .main view {
|
||||||
|
margin: 20rpx 0;
|
||||||
|
}
|
||||||
|
.protocol .main .h1 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 2;
|
||||||
|
margin: 0 0 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .p {
|
||||||
|
margin: 4rpx 0;
|
||||||
|
text-indent: 2em;
|
||||||
|
}
|
||||||
|
.protocol .main .strong {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.protocol .main .dl {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .dt {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .h2 {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.protocol .main .dd {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .dd view {
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.protocol .pop-btn-line {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30rpx;
|
||||||
|
background: #f8f9fa;
|
||||||
|
}
|
||||||
|
.protocol .pop-btn {
|
||||||
|
line-height: 90rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
color: #00a5e0;
|
||||||
|
font-size: 34rpx;
|
||||||
|
background: transparent;
|
||||||
|
display: block;
|
||||||
|
min-width: 5.6rem;
|
||||||
|
text-align: center;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
background-color: #2787f3;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
1
src/mp_ecard_sdk/protocol/service/index.js
Normal file
1
src/mp_ecard_sdk/protocol/service/index.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
Component({options:{styleIsolation:"page-apply-shared"}});
|
||||||
3
src/mp_ecard_sdk/protocol/service/index.json
Normal file
3
src/mp_ecard_sdk/protocol/service/index.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "腾讯云E证通服务协议"
|
||||||
|
}
|
||||||
150
src/mp_ecard_sdk/protocol/service/index.wxml
Normal file
150
src/mp_ecard_sdk/protocol/service/index.wxml
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
<view class="protocol">
|
||||||
|
<view class="main">
|
||||||
|
<view class="h1">
|
||||||
|
<text>腾讯E证通服务协议</text>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
欢迎您使用腾讯云E证通服务!
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
为使用腾讯E证通服务,您应当阅读并遵守《腾讯E证通服务协议》(以下简称“本协议”)。本协议由您与深圳市腾讯计算机系统有限公司(以下简称“腾讯”或“我们”)签订,对您注册、使用腾讯E证通服务(以下亦可简称“本服务”)过程中的各方权利义务等具体内容进行约定
|
||||||
|
</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
我们在此特别提醒您认真阅读、充分理解本协议各条款,特别是您同意及授权的条款、争议解决和法律适用等条款。为提醒您注意,我们已对这些条款予以加粗以特别提醒您加以注意,请您仔细阅读并自主决定接受或不接受。您使用腾讯E证通服务的行为(包括在我们合作的第三方产品及业务中使用腾讯E证通服务)即视为您已阅读、知悉、理解和完全同意本协议的约定。
|
||||||
|
</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
我们特别提示您,您在前述页面点击“已阅读并同意《腾讯E证通服务协议》”以及点击按钮“申请并同意授权”的行为视为您已经充分阅读并理解、同意本协议的内容并作出相关授权。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
如果您是未成年人,请在法定监护人的陪同下阅读本协议及上述其他协议,并特别注意涉及未成年人使用本服务的相关条款。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
如果您在阅读本协议过程中有任何问题,请您联系我们,我们将对相关内容进行解释和说明,以使您能够充分理解并自主判断和决定是否接受本协议内容。
|
||||||
|
</view>
|
||||||
|
<view class="strong">一、服务内容</view>
|
||||||
|
<view>
|
||||||
|
腾讯E证通服务是深圳市腾讯计算机系统有限公司(以下简称“我们”或“腾讯”)通过与公安部第三研究所(以下简称“三所”)及其eID网络身份服务机构(以下简称“eID服务机构”)基于eID数字身份技术的合作、向您提供的eID数字身份服务
|
||||||
|
<view style="display:inline" class="strong">
|
||||||
|
,具体服务流程为:
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
您通过向您提供服务的应用输入姓名和身份号码并拉起腾讯E证通小程序,在您点击同意本协议和《eID数字身份小程序服务协议》后,您将在eID数字身份小程序内通过腾讯提供的人脸识别完成身份验证,您的身份信息与权威机构的相应数据进行相符性比对后,三所会签发您的eID数字身份,您的eID数字身份与您申请时提供的身份信息及人脸信息唯一关联。eID数字身份信息由本服务返回给为您提供服务的应用。
|
||||||
|
</view>
|
||||||
|
<view class="strong">二、双方权利义务</view>
|
||||||
|
<view>
|
||||||
|
2.1腾讯有权根据您的申请情况,决定是否为您提供腾讯E证通服务。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
2.2腾讯有权在腾讯以及腾讯合作方的具体产品业务中推广、应用腾讯E证通服务。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
2.3您保证您所提供的个人信息的真实性、合法性、完整性、准确性和有效性。否则,您可能无法使用腾讯E证通服务,或您所使用的腾讯E证通服务范围可能会受到限制。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
2.4您应以您本人的真实身份信息使用腾讯E证通服务,您保证由您本人注册、开通腾讯E证通服务,您保证由您本人进行操作,并不向其他任何人披露、泄露或借出前述信息和设备,亦不使用其他任何人的该等信息和设备。
|
||||||
|
<view style="display:inline" class="strong">
|
||||||
|
您应妥善保管您的手机设备、账号、密码以及动态验证码等资料,并对该账号项下所从事的行为承担相应的法律责任。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
2.5您应当对您的账户、终端设备以及您的联系方式进行有效管理,对通过该账户及终端设备所从事的行为承担相应法律责任,并对您的联系方式(例如,手机号码)接收或确认信息所产生的法律后果承担法律责任。您在此知悉,对于第三方无论以何种形式使用您的信息,包括但不限于冒用、借用,您将对由此产生的法律后果依法承担相应法律责任。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
2.6使用腾讯E证通服务过程中,如果您的个人信息有更新,您应及时进行更新。否则,因此产生的法律责任由您承担。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
2.7如果您的账户、终端设备因信息泄露、遗失或被非授权使用所致的损失由您自行承担。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
2.8您不得利用本服务实施任何违反国家法律、法规、规章及规范性文件的行为,不得侵犯其他任何第三人的合法权益,尤其不得利用本服务实施欺诈等违法行为。如您存在不遵守本协议或腾讯相关业务规定、恶意操作或利用腾讯E证通服务从事违反国家法律法规活动或损害其他第三方合法权益的,腾讯有权单方终止对您提供腾讯E证通服务,并要求您赔偿腾讯因此造成的损失。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
2.9您所申请的eID数字身份仅供您个人使用,您不得将您的eID数字身份提供给他方使用,您应对您的eID数字身份所从事的行为承担法律责任。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
2.10为了向您提供更优的服务,腾讯有权对腾讯E证通服务系统进行升级、改造。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
2.11如果您需要注销腾讯E证通服务,您可以在腾讯E证通小程序中的
|
||||||
|
<view style="display:inline" class="strong">
|
||||||
|
“关于腾讯E证通-意见反馈”
|
||||||
|
</view>
|
||||||
|
中提交申请。您注销腾讯E证通服务后,如果您需要使用腾讯E证通服务,您需要重新注册。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
2.12您在使用本服务过程中,如果还涉及到使用其他服务的,您应当同时遵守其他服务的规定或规则。比如您在使用eID数字身份小程序时,您应遵守三所的相关服务规则。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
2.13如果您与为您提供服务的应用方之间因具体交易以及腾讯E证通的适用等事宜发生的争议或纠纷,由您与您应用方进行协商处理,我们不介入您与应用方的具体交易合作,我们不对前述事项承担法律责任。但我们在此承诺,为了保护您的合法权益,我们将向您提供必要协助。
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="strong">三、用户个人信息保护</view>
|
||||||
|
<view class="strong">
|
||||||
|
3.1 为了向您提供腾讯E证通服务,您授权并同意,我们从为您提供服务的应用获取您输入的姓名和身份号码信息,结合在三所运营的eID数字身份小程序内通过我们提供的人脸识别服务,采集您的人脸视频,并将您的姓名、身份号码、人脸图像与权威机构的相应数据进行相符性比对,以便通过身份核验。同时,我们会从eID数字身份小程序获取您的数字身份信息,并将您的人脸图片、比对结果和eID数字身份信息返回给您的应用方,由其判断是否通过您的实名实人认证。如果您不同意的,请您不要继续使用本服务。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
3.2 基于国家监管要求或法律要求,应用方在向您提供服务时需要采集并保存您的姓名、身份号码、人脸图像(简称“身份信息”)证明您的身份,您授权并同意,因为您的应用方可能无法及时从本服务拉取您的身份信息,我们会将您的人脸图片和比对结果暂时存储三天以便您的应用方拉取您的身份信息。三天内如果您的应用方拉取了,我们会立即删除;三天后如果您的应用方未拉取,我们也会删除您的相应数据。我们承诺仅在该处理目的内暂时存储您的数据,未经您的授权或许可,我们不会向第三方提供您的个人信息。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
3.3保护用户个人信息是腾讯的一项基本原则,腾讯将根据本协议以及
|
||||||
|
<navigator style="display:inline" class="protocol_sprotocol" url="/mp_ecard_sdk/protocol/privacy/index">
|
||||||
|
《隐私政策》
|
||||||
|
</navigator>
|
||||||
|
(http://www.qq.com/privacy.htm)等内容,采取合理的措施依法保护用户的个人信息。除法律法规规定的情形外,未经用户授权同意腾讯不会向第三方公开、透露用户个人信息。腾讯对相关信息采用专业加密存储与传输方式,保障用户个人信息的安全。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
3.4 腾讯将运用各种安全技术和程序建立完善的管理制度来保护您的个人信息,以免遭受未经授权的访问、使用或披露。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
3.5如您希望访问、撤回授权、修改、删除您的个人信息,您可以通过“关于腾讯E证通-意见反馈”联系我们,并提供必要的身份证明。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
3.6请您提供真实、准确的、且是您本人的姓名、身份号码、人脸图像,并申请本人的eID数字身份,否则,我们可能无法为您提供本服务。冒用他人身份者将承担身份冒用带来的一切后果与责任,包括但不限于因冒用他人身份给第三方或我们造成的任何损失,您应当依法进行赔偿。
|
||||||
|
</view>
|
||||||
|
<view class="strong">四、不可抗力及免责声明</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.1您理解并同意,在使用本服务的过程中,可能会遇到不可抗力等风险因素,使本服务发生中断。不可抗力是指不能预见、不能克服并不能避免且对一方或双方造成重大影响的客观事件,包括自然灾害如洪水、地震、瘟疫流行和风暴等以及社会事件如战争、动乱、政府行为以及政策法律等规定变化等。出现上述情况时,我们将努力在第一时间与相关单位配合,尽量降低各方损失。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.2在法律允许的范围内,腾讯对以下情形导致的本服务中断或受阻不承担责任:
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.2.1受到计算机病毒、木马或其他恶意程序、黑客攻击的破坏;
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.2.2网络故障、网络异常;
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.2.3用户操作不当;
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.2.4用户通过非经我们授权的方式使用本服务;
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.2.5其他腾讯无法控制或合理预见的情形。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.3 您理解并同意,我们将秉承尽责、严谨的态度为您提供本服务,同时您也已清楚知晓受制于技术、权威核验渠道等诸多因素,我们无法向您做出人脸识别核验结果绝对准确无误的承诺。您同意非腾讯原因或因不可抗力、约定的免责情形导致人脸识别核验结果错误的,腾讯不承担赔偿责任。
|
||||||
|
</view>
|
||||||
|
<view class="strong">
|
||||||
|
4.4 您知悉并同意,腾讯E证通小程序与eID数字身份小程序是互为独立的小程序,分别由腾讯和三所独立运营,对于三所为您签发的eID数字身份,腾讯不做相应的承诺和担保。
|
||||||
|
</view>
|
||||||
|
<view class="strong">五、其他</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
5.1 本协议的成立、生效、履行、解释及纠纷解决,适用中华人民共和国大陆地区法律(不包括冲突法规则)。
|
||||||
|
</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
5.2 若您和腾讯之间发生任何纠纷或争议,首先应友好协商解决;若协商不成的,您和腾讯同意将纠纷或争议提交本协议签订地有管辖权的人民法院,通过诉讼加以解决。
|
||||||
|
</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
5.3本协议签订地为中华人民共和国广东省深圳市南山区。
|
||||||
|
</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
5.4本协议所有条款的标题仅为阅读方便,本身并无实际涵义,不能作为本协议涵义解释的依据。
|
||||||
|
</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
5.5本协议条款无论因何种原因部分无效或不可执行,其余条款仍有效,对双方具有约束力。(正文完)
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
69
src/mp_ecard_sdk/protocol/service/index.wxss
Normal file
69
src/mp_ecard_sdk/protocol/service/index.wxss
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
.protocol {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.protocol .main {
|
||||||
|
background: #f8f9fa;
|
||||||
|
padding: 40rpx 40rpx 140rpx 40rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #3c3c3c;
|
||||||
|
}
|
||||||
|
.protocol .main view {
|
||||||
|
margin: 20rpx 0;
|
||||||
|
}
|
||||||
|
.protocol .main .h1 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 2;
|
||||||
|
margin: 0 0 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .p {
|
||||||
|
margin: 4rpx 0;
|
||||||
|
text-indent: 2em;
|
||||||
|
}
|
||||||
|
.protocol .main .strong {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.protocol .main .dl {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .dt {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .h2 {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.protocol .main .dd {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .dd view {
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.protocol .pop-btn-line {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30rpx;
|
||||||
|
background: #f8f9fa;
|
||||||
|
}
|
||||||
|
.protocol .pop-btn {
|
||||||
|
line-height: 90rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
color: #00a5e0;
|
||||||
|
font-size: 34rpx;
|
||||||
|
background: transparent;
|
||||||
|
display: block;
|
||||||
|
min-width: 5.6rem;
|
||||||
|
text-align: center;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
background-color: #2787f3;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.protocol navigator {
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
1
src/mp_ecard_sdk/protocol/userAccredit/index.js
Normal file
1
src/mp_ecard_sdk/protocol/userAccredit/index.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
Component({options:{styleIsolation:"page-apply-shared"}});
|
||||||
3
src/mp_ecard_sdk/protocol/userAccredit/index.json
Normal file
3
src/mp_ecard_sdk/protocol/userAccredit/index.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "用户授权协议"
|
||||||
|
}
|
||||||
27
src/mp_ecard_sdk/protocol/userAccredit/index.wxml
Normal file
27
src/mp_ecard_sdk/protocol/userAccredit/index.wxml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<view class="protocol">
|
||||||
|
<view class="main">
|
||||||
|
<view class="h1">
|
||||||
|
<text>用户授权协议</text>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
《用户授权协议》(以下简称“本协议”)由您与深圳市腾讯计算机系统有限公司(以下简称“腾讯”或“我们”)签订,为了充分保护您的合法权益,我们在此与您就您注册、使用腾讯云E证通服务(以下亦可简称“本服务”)过程中有关采集、使用等处理您个人信息授权的相关事项进行约定。本协议作为《腾讯云E证通服务协议》(以下简称“主协议”)不可分割的有效组成部分,与主协议具有同等法律效力。
|
||||||
|
</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
我们特别提示您,您在前述页面点击“已阅读并同意《用户授权协议》”以及点击按钮“申请并同意授权”的行为视为您已经充分阅读并理解、同意本协议的内容并作出相关授权。
|
||||||
|
</view>
|
||||||
|
<view class="strong underline">
|
||||||
|
一、为了在您注册、使用腾讯云E证通服务时识别您的身份,您同意并授权腾讯可以获取您绑定的微信手机号,同时,您同意并授权腾讯可通过其合作的依法运营数据库的主体比对您的手机号码,您同意并授权腾讯可以采集、存储并处理您的姓名、公民身份证号码、人脸照片、手机号码等可以识别您身份的个人信息(具体以在页面上填写、提供的为准)。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
二、为了能够获得腾讯云E证通编码,您同意并授权腾讯可以将您的个人信息传输至eID服务机构并由eID服务机构将提供给三所承建的“公安部公民网络身份识别系统”;您同意并授权三所使用eID数字身份技术为您在腾讯云E证通服务中生成保护个人身份信息的eID数字身份提供给eID服务机构并由eID服务机构提供给腾讯;您同意并授权腾讯可依法采集、存储并处理您的eID数字身份并生成腾讯云E证通编码。
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
三、在您注册完成腾讯云E证通服务后,您可采用多种方式使用腾讯云E证通服务,包括但不限于您个人管理、使用您的腾讯云E证通服务编码,以及您在此授权腾讯可在其运营的其他产品和业务中使用您的腾讯云E证通编码,以及您在此授权腾讯亦可向腾讯合作方提供您的腾讯云E证通编码,以方便您使用相应产品或业务,节约流程及时间。
|
||||||
|
</view>
|
||||||
|
<view class="strong">四、我们在此特别说明,腾讯合作方或腾讯运营其他产品和业务的团队所获得的腾讯云E证通编码不可识别您的个人信息。</view>
|
||||||
|
<view class="strong">
|
||||||
|
五、我们在此特别提示您,如果您在使用合作方或腾讯其他产品或业务时,除了授权腾讯向前述主体提供您的腾讯云E证通编码之外,还需要前述主体向腾讯云E证通服务运营团队采集或委托腾讯云E证通服务运营团队处理您的个人信息,须另行获得您相应授权。
|
||||||
|
</view>
|
||||||
|
<view>六、我们收集您的个人信息仅在您注册、使用腾讯云E证通服务范围内使用,未经您的同意,我们不会用于其他用途。</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
66
src/mp_ecard_sdk/protocol/userAccredit/index.wxss
Normal file
66
src/mp_ecard_sdk/protocol/userAccredit/index.wxss
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
.protocol {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.protocol .main {
|
||||||
|
background: #f8f9fa;
|
||||||
|
padding: 40rpx 40rpx 140rpx 40rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #3c3c3c;
|
||||||
|
}
|
||||||
|
.protocol .main view {
|
||||||
|
margin: 20rpx 0;
|
||||||
|
}
|
||||||
|
.protocol .main .h1 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 2;
|
||||||
|
margin: 0 0 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .p {
|
||||||
|
margin: 4rpx 0;
|
||||||
|
text-indent: 2em;
|
||||||
|
}
|
||||||
|
.protocol .main .strong {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.protocol .main .dl {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .dt {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .h2 {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.protocol .main .dd {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.protocol .main .dd view {
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.protocol .pop-btn-line {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30rpx;
|
||||||
|
background: #f8f9fa;
|
||||||
|
}
|
||||||
|
.protocol .pop-btn {
|
||||||
|
line-height: 90rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
color: #00a5e0;
|
||||||
|
font-size: 34rpx;
|
||||||
|
background: transparent;
|
||||||
|
display: block;
|
||||||
|
min-width: 5.6rem;
|
||||||
|
text-align: center;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
background-color: #2787f3;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
1
src/mp_ecard_sdk/utils/getParameterByName.js
Normal file
1
src/mp_ecard_sdk/utils/getParameterByName.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
const getParameterByName=function(e,t){e=e.replace(/[\[\]]/g,"\\$&");const a=new RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`).exec(t);return a?a[2]?decodeURIComponent(a[2].replace(/\+/g," ")):"":null};export default getParameterByName;
|
||||||
1
src/mp_ecard_sdk/utils/validate.js
Normal file
1
src/mp_ecard_sdk/utils/validate.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
const IDNumberValid=function(e){if(!e||!/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(e))return!1;if(!{11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}[e.substr(0,2)])return!1;if(18===e.length){e=e.split("");const t=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],r=[1,0,"X",9,8,7,6,5,4,3,2];let s=0,n=0,a=0;for(let r=0;r<17;r++)s+=(n=e[r])*(a=t[r]);let d=r[s%11];if("x"===e[17]||"X"===e[17])return d===e[17].toUpperCase();if(d!==parseInt(e[17]))return!1}return!0},validate=function(e,t){switch(t){case"signature":return/^\S{74}={2}$/.test(e);case"appid":return"string"==typeof e&&/^\d{4}$/.test(e);case"uid":return e;case"sms_phone":return/^1\d{10}$/.test(e);case"sms_verifyCode":return/^\d{4}$/.test(e);case"idcard":return IDNumberValid(e);case"idname":return e&&!e.match(/[A-z0-9]/g);case"idaddress":return!!e;case"end_path":return/^\//.test(e);case"token":return/^[a-zA-Z0-9-]{36}$/.test(e)}};export default validate;
|
||||||
174
src/pages/books/bookDetail.wpy
Normal file
174
src/pages/books/bookDetail.wpy
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
<template>
|
||||||
|
<view class="page-user">
|
||||||
|
<web-view src="{{url}}"></web-view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
|
||||||
|
data: {
|
||||||
|
libraries: {},
|
||||||
|
user: {},
|
||||||
|
nickName: '加载中...',
|
||||||
|
from_openid: '',
|
||||||
|
url: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
nickName() {
|
||||||
|
// return (user && user.wechat && user.wechat.nickname) ? user.wechat.nickname : '未授权用户'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// 初始化页面数据
|
||||||
|
// this.initPageData()
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
let that = this
|
||||||
|
let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let url = '/pages/books/bookDetail?url=' + encodeURIComponent(that.url) + '&from_openid=' + that.from_openid + '&from_user_id=' + fromUserID
|
||||||
|
return {
|
||||||
|
title: '福恋',
|
||||||
|
path: url,
|
||||||
|
imageUrl: '',
|
||||||
|
success: function(res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
var shareTickets = res.shareTickets
|
||||||
|
if (shareTickets.length == 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function(res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(e) {
|
||||||
|
console.log(e)
|
||||||
|
this.url = decodeURIComponent(e.url)
|
||||||
|
console.log(this.url)
|
||||||
|
this.from_openid = wx.getStorageSync('openid')
|
||||||
|
wx.showShareMenu({
|
||||||
|
withShareTicket: true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
// this.initPageData()
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
// 初始化页面数据
|
||||||
|
initPageData() {
|
||||||
|
this.$get({url: service.user}).then(({code, data}) => {
|
||||||
|
this.user = data.user
|
||||||
|
this.libraries = data.libraries
|
||||||
|
this.libraries.forEach((item) => {
|
||||||
|
if (item.type == 'SHARE') {
|
||||||
|
item.url = '/pages/library/shareLibrary?id=' + item.id
|
||||||
|
} else {
|
||||||
|
item.url = '/pages/library/library?id=' + item.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
wx.setStorageSync('openid', data.user.wechat.openid)
|
||||||
|
wx.setStorageSync('is_new', data.user.is_news)
|
||||||
|
if (data.user.is_news) {
|
||||||
|
wepy.showTabBarRedDot({
|
||||||
|
index: 4
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
wepy.hideTabBarRedDot({
|
||||||
|
index: 4
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
|
||||||
|
page{
|
||||||
|
background: #f9f9f9;
|
||||||
|
}
|
||||||
|
.weui-cells {
|
||||||
|
position: inherit;
|
||||||
|
box-shadow: 1rpx 1rpx 12rpx #dedede;
|
||||||
|
}
|
||||||
|
.page-user{
|
||||||
|
@userinfoHeight: 100rpx;
|
||||||
|
@userinfoSpace: 8rpx;
|
||||||
|
|
||||||
|
.userinfo{
|
||||||
|
padding: 20rpx 0;
|
||||||
|
}
|
||||||
|
.page__bd_spacing{
|
||||||
|
padding: 22rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.userinfo-avatar {
|
||||||
|
float: left;
|
||||||
|
width: @userinfoHeight;
|
||||||
|
height: @userinfoHeight;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
// space + space
|
||||||
|
.userinfo-info {
|
||||||
|
float: left;
|
||||||
|
line-height: 1;
|
||||||
|
padding: @userinfoSpace 0;
|
||||||
|
margin-left: 3 * @userinfoSpace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.userinfo-nickname {
|
||||||
|
font-size: (@userinfoHeight - 4 * @userinfoSpace) * (16 / 30);
|
||||||
|
margin-bottom: 2 * @userinfoSpace;
|
||||||
|
}
|
||||||
|
.userinfo-status {
|
||||||
|
color: #999;
|
||||||
|
font-size: (@userinfoHeight - 4 * @userinfoSpace) * (14 / 30);
|
||||||
|
|
||||||
|
}
|
||||||
|
.lead {
|
||||||
|
width: 16rpx;
|
||||||
|
height: 16rpx;
|
||||||
|
background: red;
|
||||||
|
margin-top: -24rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
position: absolute;
|
||||||
|
right: 16rpx;
|
||||||
|
top: 40rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '链接网文',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
chatEmoji: '~@/components/chatEmojiFile/ChatEmoji'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
143
src/pages/books/schoolVerify.wpy
Normal file
143
src/pages/books/schoolVerify.wpy
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
<template>
|
||||||
|
<view class="page-user">
|
||||||
|
<!-- <image class="img" src="{{url}}" mode="widthFix" /> -->
|
||||||
|
<image class="img" show-menu-by-longpress src="https://images.ufutx.com/202104/30/b0dd948a6bb733a83a9a451d61ceecb3.png"></image>
|
||||||
|
<image class="img" src="https://images.ufutx.com/202104/30/a30498efddb31be5b1303c7a8b5554db.png"></image>
|
||||||
|
<image class="img" show-menu-by-longpress src="https://images.ufutx.com/202104/30/500c9d25475f76c95b90d69d5d6670f8.png"></image>
|
||||||
|
<!--<NavBar title="详情"></NavBar>-->
|
||||||
|
<!-- <web-view src="{{url}}"></web-view> -->
|
||||||
|
<!--<web-view src="https://mp.ufutx.net/s?__biz=MjM5NTE3MjE0MA==&mid=2651989453&idx=3&sn=43e5116c30e9c07ceb14e9daf0d23dbd&chksm=bd1a1f8e8a6d96987df43ead636df4cf8a18b42997edbabc2c4ceb9db7d5fcbd4af9f5c14ab9&scene=27#wechat_redirect"></web-view>-->
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
|
||||||
|
data: {
|
||||||
|
libraries: {},
|
||||||
|
user: {},
|
||||||
|
nickName: '加载中...',
|
||||||
|
from_openid: '',
|
||||||
|
url: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
nickName() {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// 初始化页面数据
|
||||||
|
// this.initPageData()
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
let that = this
|
||||||
|
let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let url = '/pages/books/bookDetail?url=' + encodeURIComponent(that.url) + '&from_openid=' + that.from_openid + '&from_user_id=' + fromUserID
|
||||||
|
return {
|
||||||
|
title: '福恋',
|
||||||
|
path: url,
|
||||||
|
imageUrl: '',
|
||||||
|
success: function(res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
var shareTickets = res.shareTickets
|
||||||
|
if (shareTickets.length == 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function(res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(e) {
|
||||||
|
console.log(e)
|
||||||
|
this.url = decodeURIComponent(e.url)
|
||||||
|
console.log(this.url)
|
||||||
|
this.from_openid = wx.getStorageSync('openid')
|
||||||
|
wx.showShareMenu({
|
||||||
|
withShareTicket: true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
// this.initPageData()
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
// 初始化页面数据
|
||||||
|
initPageData() {
|
||||||
|
this.$get({url: service.user}).then(({code, data}) => {
|
||||||
|
this.user = data.user
|
||||||
|
this.libraries = data.libraries
|
||||||
|
this.libraries.forEach((item) => {
|
||||||
|
if (item.type == 'SHARE') {
|
||||||
|
item.url = '/pages/library/shareLibrary?id=' + item.id
|
||||||
|
} else {
|
||||||
|
item.url = '/pages/library/library?id=' + item.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
wx.setStorageSync('openid', data.user.wechat.openid)
|
||||||
|
wx.setStorageSync('is_new', data.user.is_news)
|
||||||
|
if (data.user.is_news) {
|
||||||
|
wepy.showTabBarRedDot({
|
||||||
|
index: 4
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
wepy.hideTabBarRedDot({
|
||||||
|
index: 4
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
|
||||||
|
page{
|
||||||
|
background: #f9f9f9;
|
||||||
|
}
|
||||||
|
.weui-cells {
|
||||||
|
position: inherit;
|
||||||
|
box-shadow: 1rpx 1rpx 12rpx #dedede;
|
||||||
|
}
|
||||||
|
.img{
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
.img:nth-of-type(1){
|
||||||
|
height: 660rpx;
|
||||||
|
}
|
||||||
|
.img:nth-of-type(2){
|
||||||
|
height: 3524rpx;
|
||||||
|
}
|
||||||
|
.img:nth-of-type(3){
|
||||||
|
height: 680rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '在线获取验证码',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
@ -255,45 +255,45 @@ wepy.page({
|
|||||||
if (vm.name.includes('福恋')) {
|
if (vm.name.includes('福恋')) {
|
||||||
return vm.$showToast('请勿输入带“福恋”关键字的昵称!')
|
return vm.$showToast('请勿输入带“福恋”关键字的昵称!')
|
||||||
}
|
}
|
||||||
if (vm.photo == '') {
|
// if (vm.photo == '') {
|
||||||
return vm.$showToast('请上传你的头像')
|
// return vm.$showToast('请上传你的头像')
|
||||||
}
|
// }
|
||||||
if (!vm.sex) {
|
// if (!vm.sex) {
|
||||||
return vm.$showToast('请选择你的性别')
|
// return vm.$showToast('请选择你的性别')
|
||||||
}
|
// }
|
||||||
if (!vm.phoneNumber) {
|
// if (!vm.phoneNumber) {
|
||||||
return vm.$showToast('请选择绑定手机号')
|
// return vm.$showToast('请选择绑定手机号')
|
||||||
}
|
// }
|
||||||
if (!vm.birthday) {
|
// if (!vm.birthday) {
|
||||||
return vm.$showToast('请选择你的生日')
|
// return vm.$showToast('请选择你的生日')
|
||||||
}
|
// }
|
||||||
if (!vm.address.city) {
|
// if (!vm.address.city) {
|
||||||
return vm.$showToast('请选择所在城市')
|
// return vm.$showToast('请选择所在城市')
|
||||||
}
|
// }
|
||||||
if (!vm.emotion) {
|
// if (!vm.emotion) {
|
||||||
return vm.$showToast('请选择你的情感状况')
|
// return vm.$showToast('请选择你的情感状况')
|
||||||
}
|
// }
|
||||||
if (!vm.belief) {
|
// if (!vm.belief) {
|
||||||
return vm.$showToast('请选择你的信仰')
|
// return vm.$showToast('请选择你的信仰')
|
||||||
}
|
// }
|
||||||
vm.$showLoading('')
|
vm.$showLoading('')
|
||||||
let data = {
|
let data = {
|
||||||
photo: vm.photo,
|
photo: vm.photo || 'https://image.fulllinkai.com/202409/10/14e52ebc01aeb0eaaba753f278685d63.png',
|
||||||
nickname: vm.name,
|
nickname: vm.name,
|
||||||
mobile: vm.mobile,
|
mobile: vm.mobile || '15813393343',
|
||||||
sex: vm.sex === '男' ? 1 : 2,
|
sex: vm.sex === '男' ? 1 : 2,
|
||||||
belief: vm.belief,
|
belief: vm.belief,
|
||||||
state: vm.emotion,
|
state: vm.emotion,
|
||||||
country: vm.address.country,
|
country: vm.address.country || '深圳市',
|
||||||
province: vm.address.province,
|
province: vm.address.province || '广东省',
|
||||||
city: vm.address.city,
|
city: vm.address.city || '宝安区',
|
||||||
birthday: vm.birthday,
|
birthday: vm.birthday
|
||||||
userInfo: vm.userInfo,
|
// userInfo: vm.userInfo,
|
||||||
openid: vm.openid,
|
// openid: vm.openid,
|
||||||
unionid: vm.unionid,
|
// unionid: vm.unionid,
|
||||||
mark: vm.enterprise
|
// mark: vm.enterprise
|
||||||
}
|
}
|
||||||
vm.$put({url: `${service.host}/base/user/info`, data}).then(({code, data}) => {
|
vm.$put({url: `${service.host}/user/register/profile`, data}).then(({code, data}) => {
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
wx.switchTab({url: '/pages/tabBar/home'})
|
wx.switchTab({url: '/pages/tabBar/home'})
|
||||||
}
|
}
|
||||||
@ -320,9 +320,10 @@ wepy.page({
|
|||||||
getPhoneNumber({$wx: e}) {
|
getPhoneNumber({$wx: e}) {
|
||||||
let vm = this
|
let vm = this
|
||||||
if (e.detail.iv) {
|
if (e.detail.iv) {
|
||||||
getPhoneNumber(e).then(({mobile}) => {
|
getPhoneNumber(e).then((data) => {
|
||||||
if (mobile) {
|
console.log(data, 'phone====')
|
||||||
vm.mobile = mobile
|
if (data.phone) {
|
||||||
|
vm.mobile = data.phone
|
||||||
}
|
}
|
||||||
}).catch((Error) => {
|
}).catch((Error) => {
|
||||||
// 使用模态框提示用户进行操作
|
// 使用模态框提示用户进行操作
|
||||||
|
|||||||
@ -315,13 +315,13 @@ wepy.page({
|
|||||||
let vm = this
|
let vm = this
|
||||||
let url = ``
|
let url = ``
|
||||||
if (vm.type == 'fans') {
|
if (vm.type == 'fans') {
|
||||||
url = `${service.host}/followers`
|
url = `${service.host}/follow/fans/list`
|
||||||
} else if (vm.type == 'friend') {
|
} else if (vm.type == 'friend') {
|
||||||
url = `${service.host}/friends/v2`
|
url = `${service.host}/friends/v2`
|
||||||
} else if (vm.type == 'review') {
|
} else if (vm.type == 'review') {
|
||||||
url = `${service.host}/my/preview/histroies`
|
url = `${service.host}/my/preview/histroies`
|
||||||
} else if (vm.type == 'visitor') {
|
} else if (vm.type == 'visitor') {
|
||||||
url = `${service.host}/user/preview/histroies`
|
url = `${service.host}/user/preview/list`
|
||||||
} else {
|
} else {
|
||||||
url = `${service.host}/followers`
|
url = `${service.host}/followers`
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -27,7 +27,7 @@ wepy.page({
|
|||||||
let app = vm.$app.$options
|
let app = vm.$app.$options
|
||||||
wx_login().then((e) => {
|
wx_login().then((e) => {
|
||||||
wx.hideLoading()
|
wx.hideLoading()
|
||||||
let {accid, token} = e.data.user.wyy_user
|
let {accid, token} = e.data.im_user
|
||||||
app.globalData.nim = IM(accid, token)
|
app.globalData.nim = IM(accid, token)
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
wx.switchTab({url: `/pages/tabBar/home`})
|
wx.switchTab({url: `/pages/tabBar/home`})
|
||||||
|
|||||||
74
src/pages/users/aboutLove.wpy
Normal file
74
src/pages/users/aboutLove.wpy
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<template>
|
||||||
|
<view class="mainAbout">
|
||||||
|
<view class="mainIcon text-center">
|
||||||
|
<image mode="widthFix" src="https://images.ufutx.com/202004/11/4ffffbdb6ff48be065b089edb7321de8.png"></image>
|
||||||
|
</view>
|
||||||
|
<view class="font_32 color-333 text-center text-black bold">福恋 | 真实交友 </view>
|
||||||
|
<view class="font_24 color-666 text-center title">{{versions}} </view>
|
||||||
|
<view class="textStyle font_28 text-shadow text-black color-666">
|
||||||
|
婚恋行业的后起之秀,我们的使命是:推进单身进入婚恋、组建合一家庭、幸福一生!秉承“使命、开放、互助、幸福”的核心价值观,推进正确的爱情观和婚姻观;帮助建立幸福美满、合一包容家庭;为孩子提供稳定健康的成长环境。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
const app = getApp().$wepy.$options
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https ],
|
||||||
|
config: {
|
||||||
|
navigationBarTitleText: '关于福恋'
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
versions: ''
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.versions = app.globalData.versions
|
||||||
|
},
|
||||||
|
onLoad() {},
|
||||||
|
onPullDownRefresh() {},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
//@import "../../styles/custom/fn.less";
|
||||||
|
//@import "../../styles/custom/reset.less";
|
||||||
|
page{
|
||||||
|
background: #ffffff;
|
||||||
|
.title{
|
||||||
|
//letter-spacing: 2rpx;
|
||||||
|
margin-top: 12rpx;
|
||||||
|
}
|
||||||
|
.mainAbout{
|
||||||
|
.mainIcon{
|
||||||
|
margin: 76rpx auto;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
image{
|
||||||
|
width: 150rpx;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.textStyle{
|
||||||
|
padding: 22rpx 30rpx;
|
||||||
|
text-indent: 2em;
|
||||||
|
line-height: 60rpx;
|
||||||
|
letter-spacing: 4rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '关于福恋',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
548
src/pages/users/artificial.wpy
Normal file
548
src/pages/users/artificial.wpy
Normal file
@ -0,0 +1,548 @@
|
|||||||
|
<template>
|
||||||
|
<view class="cu-custom">
|
||||||
|
<view class="cu-bar fixed ba" style="height:{{CustomBar}}px;padding-top:{{StatusBar}}px;z-index: 999;background-color: white;border: 0 !important;">
|
||||||
|
<block v-if="is_real_approved == 0">
|
||||||
|
<view @tap="gotoBack">
|
||||||
|
<image class="returnIcon_1" src="https://images.ufutx.com/202104/09/91c42ff8b2da0c0ac0576fbc4dc163f6.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view @tap="redirectTo('/pages/users/myCertification')">
|
||||||
|
<image class="returnIcon_1" src="https://images.ufutx.com/202104/09/91c42ff8b2da0c0ac0576fbc4dc163f6.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style="height: {{navHeight}}px"></view>
|
||||||
|
<view v-if="is_real_approved == -1" style="height: 112rpx"></view>
|
||||||
|
<view class="artificialBox">
|
||||||
|
<view class="shootingText font_30 bold">请拍摄上传手持身份证照</view>
|
||||||
|
<view>
|
||||||
|
<view class="shootingPhoto" style="{{'background-image:url(' + photo[0] + ');'}}" @tap="chooseimage()">
|
||||||
|
<block v-if="audit && !holdShow && is_real_approved != 1">
|
||||||
|
<view class="{{audit?'auditPhoto':''}}"></view>
|
||||||
|
<view class="auditIconBox">
|
||||||
|
<image class="auditIcon" src="https://images.ufutx.com/202104/12/c8a405728facde60462c5530fc9813a9.png" mode="widthFix"></image>
|
||||||
|
<view class="font_30" v-if="is_real_approved == 2">正在审核中</view>
|
||||||
|
<view class="font_30" v-if="is_real_approved == -1">审核失败,请重新上传</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="m_jub">
|
||||||
|
<view class="font_30 bold">请拍摄身份证正/反面</view>
|
||||||
|
<view class="f-fcc m_img">
|
||||||
|
<view>
|
||||||
|
<view class="m_lt" style="{{'background-image:url(' + photo[1] + ');'}}" @tap="chooseimage('just')">
|
||||||
|
<view class="m_mte f-fcc" v-if="audit && !justShow && is_real_approved != 1">
|
||||||
|
<view class="auditIconBox">
|
||||||
|
<image class="auditIcon" src="https://images.ufutx.com/202104/12/c8a405728facde60462c5530fc9813a9.png" mode="widthFix"></image>
|
||||||
|
<view class="font_24" v-if="is_real_approved == 2">正在审核中</view>
|
||||||
|
<view class="font_24" v-if="is_real_approved == -1">审核失败,请重新上传</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="font_24 color666 f-fcc">拍摄人像面</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<view class="m_rt" style="{{'background-image:url(' + photo[2] + ');'}}" @tap="chooseimage('back')">
|
||||||
|
<view class="m_mte f-fcc" v-if="audit && !backShow && is_real_approved != 1">
|
||||||
|
<view class="auditIconBox">
|
||||||
|
<image class="auditIcon" src="https://images.ufutx.com/202104/12/c8a405728facde60462c5530fc9813a9.png" mode="widthFix"></image>
|
||||||
|
<view class="font_24" v-if="is_real_approved == 2">正在审核中</view>
|
||||||
|
<view class="font_24" v-if="is_real_approved == -1">审核失败,请重新上传</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="font_24 color666 f-fcc">拍摄国徽面</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="shootingRequirements">
|
||||||
|
<view class="requirementsTitle bold font_30">拍摄手持身份证要求</view>
|
||||||
|
<view class="font_26 color-666">
|
||||||
|
<view class="requirements">请手持本人有效身份证件正面拍照;</view>
|
||||||
|
<view class="requirements">拍摄时确保照片的内容完整并清晰可见,仅支持jpg、png格式;</view>
|
||||||
|
<view class="requirements">请上传彩色图像。</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="submitButton font_30 {{showSubmit?'actionSubmit':''}}" @tap="request" v-if="!audit">提交认证</view>
|
||||||
|
<view class="submitButton font_30 {{againShow?'actionSubmit':''}}" @tap="request" v-if="audit && is_real_approved != 1">重新提交</view>
|
||||||
|
<view class="font_30 text-center" style="color: #f33b6c;padding-top: 30rpx;padding-bottom: 40rpx;" @tap="redirectTo('/pages/users/realName')" v-if="audit && is_real_approved == -1">人脸识别</view>
|
||||||
|
<view :class="{'show':modalName=='showAudit' }" class="cu-modal ">
|
||||||
|
<view class="audit_box">
|
||||||
|
<image class="audit_icon" src="https://images.ufutx.com/202101/21/be17739e07f9bb0de1c629dc0b84a505.png" mode="widthFix"></image>
|
||||||
|
<view class="font_36 color-333 bold">提交成功,等待审核</view>
|
||||||
|
<view class="audit_prompt font_28 color-333">审核结果将在1~3个工作日内通知,请耐心等待;如有需要,请直接联系</view>
|
||||||
|
<view class="font_28 color-333">客服<span class="color-theme" @tap.stop="clickPhone">18922809346</span></view>
|
||||||
|
<view class="know_that" @tap="redirectTo('/pages/users/myCertification')">我知道了</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="is_real_approved == -1" class="m_top_tips" style="margin-top: {{navHeight}}px;">{{approve_history_body_reason}}</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
import {service} from '../../config'
|
||||||
|
|
||||||
|
const app = getApp().$wepy.$options
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
photo: [
|
||||||
|
'https://images.ufutx.com/202105/24/c31d4fcdbb7c54e0d7e30ee8a86ad880.png',
|
||||||
|
'https://images.ufutx.com/202105/24/3c35a0abe55577445d54761a3f05d596.png',
|
||||||
|
'https://images.ufutx.com/202105/24/154245e9f9aca0c5e4281aa2fd0f4b85.png'
|
||||||
|
],
|
||||||
|
StatusBar: app.globalData.StatusBar,
|
||||||
|
CustomBar: app.globalData.CustomBar,
|
||||||
|
Custom: app.globalData.Custom,
|
||||||
|
navHeight: '84',
|
||||||
|
nodata: false,
|
||||||
|
audit: false,
|
||||||
|
actionSubmit: false,
|
||||||
|
loading: false,
|
||||||
|
is_real_approved: '',
|
||||||
|
chat_user_id: '',
|
||||||
|
modalName: '',
|
||||||
|
showSubmit: false,
|
||||||
|
imgIndex: 0,
|
||||||
|
setImgArr: [],
|
||||||
|
backShow: false,
|
||||||
|
justShow: false,
|
||||||
|
holdShow: false,
|
||||||
|
againShow: false,
|
||||||
|
approve_history_body_reason: ''
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
onLoad(e) {
|
||||||
|
if (e.chat_user_id) {
|
||||||
|
this.chat_user_id = e.chat_user_id
|
||||||
|
}
|
||||||
|
let menuButtonObject = wx.getMenuButtonBoundingClientRect()
|
||||||
|
this.initPageData()
|
||||||
|
wx.getSystemInfo({
|
||||||
|
success: res => {
|
||||||
|
let statusBarHeight = res.statusBarHeight,
|
||||||
|
navHeight = statusBarHeight + menuButtonObject.height + (menuButtonObject.top - statusBarHeight) * 2 // 导航高度
|
||||||
|
this.navHeight = navHeight
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onPullDownRefresh() {},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
uploadFile(filePaths, text) {
|
||||||
|
let vm = this
|
||||||
|
vm.setImgArr = wx.getStorageSync('authenticationImg')
|
||||||
|
wx.uploadFile({
|
||||||
|
url: service.image_upload,
|
||||||
|
filePath: filePaths,
|
||||||
|
method: 'POST',
|
||||||
|
name: 'fileData',
|
||||||
|
header: {
|
||||||
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
|
'content-type': 'multipart/form-data',
|
||||||
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
|
},
|
||||||
|
success: (res) => {
|
||||||
|
let value = JSON.parse(res.data).data
|
||||||
|
if (value && !vm.audit) {
|
||||||
|
vm.nodata = true
|
||||||
|
if (text) {
|
||||||
|
if (text == 'back') {
|
||||||
|
vm.photo.splice(2, 1, value)
|
||||||
|
} else if (text == 'just') {
|
||||||
|
vm.photo.splice(1, 1, value)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
vm.photo.splice(0, 1, value)
|
||||||
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.loading = false
|
||||||
|
}, 500)
|
||||||
|
} else if (value && vm.audit) {
|
||||||
|
// vm.showSubmit = true
|
||||||
|
vm.nodata = true
|
||||||
|
if (text) {
|
||||||
|
if (text == 'back') {
|
||||||
|
vm.photo.splice(2, 1, value)
|
||||||
|
vm.backShow = true
|
||||||
|
} else if (text == 'just') {
|
||||||
|
vm.photo.splice(1, 1, value)
|
||||||
|
vm.justShow = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
vm.photo.splice(0, 1, value)
|
||||||
|
vm.holdShow = true
|
||||||
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.loading = false
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(vm.photo)
|
||||||
|
console.log(vm.setImgArr)
|
||||||
|
if (vm.photo[0] != vm.setImgArr[0] && vm.photo[1] != vm.setImgArr[1] && vm.photo[2] != vm.setImgArr[2]) {
|
||||||
|
vm.showSubmit = true
|
||||||
|
}
|
||||||
|
if (vm.audit) {
|
||||||
|
vm.againShow = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: (res) => {
|
||||||
|
vm.loading = false
|
||||||
|
vm.$showToast('上传失败,请重新上传')
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
chooseimage(type) {
|
||||||
|
let vm = this
|
||||||
|
wx.chooseImage({
|
||||||
|
count: 1,
|
||||||
|
// sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||||
|
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||||
|
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
|
||||||
|
success: (res) => {
|
||||||
|
vm.loading = true
|
||||||
|
vm.uploadFile(res.tempFilePaths[0], type)
|
||||||
|
},
|
||||||
|
fail: () => {
|
||||||
|
vm.loading = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
request() {
|
||||||
|
let that = this,
|
||||||
|
data = {
|
||||||
|
chat_user_id: that.chat_user_id,
|
||||||
|
photos: that.photo,
|
||||||
|
from_user_id: wx.getStorageSync('from_user_id') ? wx.getStorageSync('from_user_id') : ''
|
||||||
|
}
|
||||||
|
if (that.showSubmit || that.againShow) {
|
||||||
|
if (!that.nodata) {
|
||||||
|
return that.$showToast('请上传手持身份证照')
|
||||||
|
}
|
||||||
|
that.$showLoading('提交中...')
|
||||||
|
that.$post({url: `${service.host}/app/manual/approve`, data}).then(({code, res}) => {
|
||||||
|
that.loading = false
|
||||||
|
// if (!that.audit) {
|
||||||
|
that.modalName = 'showAudit'
|
||||||
|
// } else {
|
||||||
|
// that.$showToast('重新上传成功,等待审核')
|
||||||
|
that.againShow = false
|
||||||
|
that.backShow = false
|
||||||
|
that.justShow = false
|
||||||
|
that.holdShow = false
|
||||||
|
// }
|
||||||
|
that.is_real_approved = 2
|
||||||
|
that.initPageData()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
if (that.is_real_approved == 1) {
|
||||||
|
that.$showToast('已通过真人认证')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (that.audit && this.is_real_approved == 2) {
|
||||||
|
that.$showToast('正在审核中...')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
that.$showToast('请重新上传身份证照')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 初始化页面数据
|
||||||
|
initPageData() {
|
||||||
|
this.$get({url: `${service.host}/approve/profile`}, {
|
||||||
|
success: ({code, data}) => {
|
||||||
|
this.is_real_approved = data.is_real_approved
|
||||||
|
if (data.identification_photos.length != 0) {
|
||||||
|
this.nodata = true
|
||||||
|
this.audit = true
|
||||||
|
this.againShow = true
|
||||||
|
this.photo = data.identification_photos
|
||||||
|
}
|
||||||
|
wx.setStorageSync('authenticationImg', this.photo)
|
||||||
|
this.approve_history_body_reason = data.approve_history_body_reason
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gotoBack() {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
clickPhone() {
|
||||||
|
wx.makePhoneCall({
|
||||||
|
phoneNumber: '18922809346'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
redirectTo(url) {
|
||||||
|
console.log(url)
|
||||||
|
if (wx.getStorageSync('type') == 'marriage') {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (wx.getStorageSync('realNameUrl')) {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$redirectTo(url)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
|
||||||
|
page{
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
.returnIcon_1{
|
||||||
|
width: 14rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
margin-right: 22rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.artificialBox{
|
||||||
|
margin: 0 30rpx;
|
||||||
|
padding-bottom: 30rpx;
|
||||||
|
.shootingText{
|
||||||
|
padding: 40rpx 0;
|
||||||
|
color: #212121;
|
||||||
|
}
|
||||||
|
.shootingPhoto{
|
||||||
|
position: relative;
|
||||||
|
width: 628rpx;
|
||||||
|
height: 398rpx;
|
||||||
|
border: 1rpx solid #fff4f7;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
box-shadow: 0 0 26rpx rgba(0, 0, 0, .1);
|
||||||
|
.auditPhoto{
|
||||||
|
width: 628rpx;
|
||||||
|
height: 398rpx;
|
||||||
|
border: 1rpx solid #fff4f7;
|
||||||
|
background: rgba(0, 0, 0, 0.3);
|
||||||
|
z-index: 1;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.auditIconBox{
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
text-align: center;
|
||||||
|
color: #ffffff;
|
||||||
|
.auditIcon{
|
||||||
|
width: 56rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
margin-bottom: 6rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.shootingRequirements{
|
||||||
|
margin: 80rpx 60rpx 80rpx 0;
|
||||||
|
.requirementsTitle{
|
||||||
|
color: #212121;
|
||||||
|
margin-bottom: 14rpx;
|
||||||
|
}
|
||||||
|
.requirements{
|
||||||
|
line-height: 40rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.submitButton{
|
||||||
|
width: 400rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
border-radius: 40rpx;
|
||||||
|
opacity: 0.6;
|
||||||
|
color: #fff;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.actionSubmit{
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
.m_jub {
|
||||||
|
padding-top: 60rpx;
|
||||||
|
.m_img {
|
||||||
|
padding-top: 40rpx;
|
||||||
|
.m_lt,
|
||||||
|
.m_rt {
|
||||||
|
width: 300rpx;
|
||||||
|
height: 190rpx;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
box-shadow: 0 0 26rpx rgba(0, 0, 0, .1);
|
||||||
|
border-radius: 8rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
.m_mte {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
background-color: rgba(0,0,0,.3);
|
||||||
|
.auditIconBox{
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
text-align: center;
|
||||||
|
color: #ffffff;
|
||||||
|
line-height: 28rpx;
|
||||||
|
.auditIcon{
|
||||||
|
width: 48rpx;
|
||||||
|
height: 52rpx;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_lt {
|
||||||
|
margin-right: 15rpx;
|
||||||
|
}
|
||||||
|
.m_rt {
|
||||||
|
margin-left: 15rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.z_auditMask {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100vw;
|
||||||
|
height: 123vh;
|
||||||
|
background: rgba(0, 0, 0, .7);
|
||||||
|
z-index: 999;
|
||||||
|
.z_auditAnimation {
|
||||||
|
position: relative;
|
||||||
|
top: 16vh;
|
||||||
|
animation: img-gradient 500ms linear;
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
@keyframes img-gradient {
|
||||||
|
from {
|
||||||
|
margin-top: -50%;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.z_auditBounced{
|
||||||
|
width: 80%;
|
||||||
|
padding: 60px 0;
|
||||||
|
margin: 0 auto;
|
||||||
|
border-radius: 30px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #ffffff;
|
||||||
|
.successfulIcon{
|
||||||
|
width: 192px;
|
||||||
|
height: 180px;
|
||||||
|
}
|
||||||
|
.auditPrompt{
|
||||||
|
margin: 62px 30px;
|
||||||
|
}
|
||||||
|
.KnowThe{
|
||||||
|
margin: 0 auto;
|
||||||
|
width: fit-content;
|
||||||
|
padding: 20px 76px 20px 82px;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
background: linear-gradient(180deg, #E2597C 0%, #D92553 100%);
|
||||||
|
border-radius: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.audit_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: -70rpx;
|
||||||
|
.audit_icon{
|
||||||
|
width: 192rpx;
|
||||||
|
height: 180rpx;
|
||||||
|
display: block;
|
||||||
|
margin: 60rpx auto 20rpx auto;
|
||||||
|
}
|
||||||
|
.audit_prompt{
|
||||||
|
padding-top: 40rpx;
|
||||||
|
margin: 0 36rpx;
|
||||||
|
}
|
||||||
|
.know_that{
|
||||||
|
width: 280rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
background: #ff5380;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
color: #fff;
|
||||||
|
margin: 36rpx auto 46rpx auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_top_tips {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
//height: 112rpx;
|
||||||
|
background-color: #FFF4F7;
|
||||||
|
padding: 20rpx 30rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #F33B6C;
|
||||||
|
line-height: 36rpx;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '人工认证',
|
||||||
|
navigationStyle: 'custom',
|
||||||
|
enablePullDownRefresh: true,
|
||||||
|
backgroundColorTop: '#ffffff',
|
||||||
|
backgroundColorBottom: '#ffffff',
|
||||||
|
usingComponents: {
|
||||||
|
cuCustom: '~@/components/cuCustom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
330
src/pages/users/blacklist.wpy
Normal file
330
src/pages/users/blacklist.wpy
Normal file
@ -0,0 +1,330 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <NavBar rgba="#ffffff" bag="#ffffff" :title.sync="title"></NavBar>-->
|
||||||
|
<!-- <Loading :init.sync="init"></Loading>-->
|
||||||
|
<view class="navbar borrow">
|
||||||
|
<view class="page__bd">
|
||||||
|
<view class="weui-tab">
|
||||||
|
<view class="text-left">
|
||||||
|
<tabSearchV2 title="搜索黑名单" BColor="#fff" @search="getSearch"></tabSearchV2>
|
||||||
|
</view>
|
||||||
|
<view class="weui-cells__title"></view>
|
||||||
|
<view class="font_22 red flo_r" style="margin-right: 32rpx;">*长按移除黑名单</view>
|
||||||
|
<view class="page__bd" v-for="(item,index) in list" :key="index" >
|
||||||
|
<view class="flo_l borrowlist" @tap="gotoFriendPage(item)" @longpress="remove(item.id)">
|
||||||
|
<view class="flo_l weui-cell__hd" >
|
||||||
|
<image src="{{item.linking_user.avatar}}" mode="aspectFill" style="width: 120rpx;height: 120rpx;border-radius: 12rpx;" class="flo_l"></image>
|
||||||
|
</view>
|
||||||
|
<view class="flo_l" style="width: 78%;">
|
||||||
|
<view class="font_28 flo_l color-666 ellipsis_1 bold" style="margin-left: 20rpx;">
|
||||||
|
{{item.linking_user.nickname}}
|
||||||
|
</view>
|
||||||
|
<view class="font_28 flo_l ellipsis_1" style="margin-left: 6rpx;margin-top: 2rpx;">
|
||||||
|
<image src="https://images.ufutx.com/202002/20/a92b5d29dedb9932568f97fcdff865bc.png" mode="aspectFit" v-if="item.linking_user.sex == 1" style="width: 38rpx;height: 38rpx;" class="flo_l"></image>
|
||||||
|
<image src="https://images.ufutx.com/202002/20/40b26d71cf2af9b1be0f874605c6ef2f.png" mode="aspectFit" v-else style="width: 38rpx;height: 38rpx;" class="flo_l"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!--<view class="font_26 flo_l black_6 ellipsis_1" style="margin-left: 14rpx">{{item.linking_user.message}}</view>-->
|
||||||
|
<!--<view class="weui-cell__ft weui-cell__ft_in-access"></view>-->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="clearfloat"></view>
|
||||||
|
<!-- <view class="weui-tab__content" >-->
|
||||||
|
|
||||||
|
<!--<!– <view class="text-left">–>-->
|
||||||
|
<!--<!– <tabSearchV2 title="搜索黑名单" BColor="#fff"></tabSearchV2>–>-->
|
||||||
|
<!--<!– </view>–>-->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- </view>-->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<pageScroll></pageScroll>
|
||||||
|
<block v-if="loading">
|
||||||
|
<view class="weui-loadmore">
|
||||||
|
<view class="weui-loading"></view>
|
||||||
|
<view class="weui-loadmore__tips ff">正在加载</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-if="noMore">
|
||||||
|
<view class="weui-loadmore weui-loadmore_line weui-loadmore_dot">
|
||||||
|
<view class="weui-loadmore__tips weui-loadmore__tips_in-line weui-loadmore__tips_in-dot ff"></view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
|
||||||
|
components: { },
|
||||||
|
data: {
|
||||||
|
loaded: false,
|
||||||
|
init: false,
|
||||||
|
title: '',
|
||||||
|
mylibs: [],
|
||||||
|
list: [],
|
||||||
|
activeIndex: 0,
|
||||||
|
sliderOffset: 0,
|
||||||
|
sliderLeft: 0,
|
||||||
|
sliderWidth: 180,
|
||||||
|
screenWidth: 360,
|
||||||
|
page: 1,
|
||||||
|
noMore: false,
|
||||||
|
loading: false,
|
||||||
|
inputShowed: false,
|
||||||
|
inputVal: '',
|
||||||
|
type: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {},
|
||||||
|
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
// return this.$parent.onShareAppMessage(this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
async onLoad(e) {
|
||||||
|
let that = this
|
||||||
|
that.type = e.type
|
||||||
|
that.list = []
|
||||||
|
that.page = 1
|
||||||
|
that.getLibraries()
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
this.page = 1
|
||||||
|
this.getLibraries()
|
||||||
|
},
|
||||||
|
|
||||||
|
onPageScroll(res) {
|
||||||
|
let top = res.scrollTop,
|
||||||
|
show = top > 380 ? true : false
|
||||||
|
// this.$broadcast('showBackTopBtn', show)
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getLibraries()
|
||||||
|
}, 200)
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
getLibraries(keyword) {
|
||||||
|
let _this = this
|
||||||
|
_this.loading = true
|
||||||
|
let url = `${service.host}/user/linking/blacklist`
|
||||||
|
_this.$get({
|
||||||
|
url: url,
|
||||||
|
data: {
|
||||||
|
page: this.page,
|
||||||
|
keyword: this.inputVal
|
||||||
|
}
|
||||||
|
}).then(({code, data}) => {
|
||||||
|
console.log(data, 'data====')
|
||||||
|
_this.init = true
|
||||||
|
_this.noMore = false
|
||||||
|
_this.loading = false
|
||||||
|
if (!data.data || (data.data.length == 0 && this.page != 1)) {
|
||||||
|
_this.noMore = true
|
||||||
|
_this.loading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data = data.data
|
||||||
|
if (!data || data.length === 0) {
|
||||||
|
_this.noMore = true
|
||||||
|
_this.list = []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (_this.list.length === 0 || _this.page === 1) {
|
||||||
|
_this.list = data
|
||||||
|
} else {
|
||||||
|
data.map(function (item, index) {
|
||||||
|
_this.list.push(item)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.log(this.list, 'list===')
|
||||||
|
_this.noMore = true
|
||||||
|
_this.page += 1
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
gotoFriendPage(item) {
|
||||||
|
let url = ''
|
||||||
|
if (item.linking_user.type == 'single') {
|
||||||
|
url = '/pages/home/information?id=' + item.linking_user.id
|
||||||
|
} else {
|
||||||
|
url = '/pages/home/informationV2?id=' + item.linking_user.id
|
||||||
|
}
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
remove(id) {
|
||||||
|
let vm = this
|
||||||
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
|
title: '提示',
|
||||||
|
content: '是否移除黑名单?',
|
||||||
|
cancelText: '取消',
|
||||||
|
confirmText: '确定',
|
||||||
|
success: function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
vm.$delete({url: `${service.host}user/${id}/linking/blacklist`}).then(({code, data}) => {
|
||||||
|
vm.$showToast('移除成功')
|
||||||
|
vm.page = 1
|
||||||
|
vm.getLibraries()
|
||||||
|
})
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showInput() {
|
||||||
|
this.inputShowed = true
|
||||||
|
},
|
||||||
|
hideInput() {
|
||||||
|
this.inputVal = ''
|
||||||
|
this.inputShowed = false
|
||||||
|
},
|
||||||
|
clearInput() {
|
||||||
|
this.inputVal = ''
|
||||||
|
},
|
||||||
|
inputTyping(e) {
|
||||||
|
this.inputVal = e.detail.value
|
||||||
|
console.log(this.inputVal)
|
||||||
|
this.page = 1
|
||||||
|
this.getLibraries(this.inputVal)
|
||||||
|
},
|
||||||
|
tabClick(e) {
|
||||||
|
this.sliderOffset = e.currentTarget.offsetLeft
|
||||||
|
this.activeIndex = e.currentTarget.id
|
||||||
|
this.getLibraries()
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
getSearch(value) { // 搜索返回值
|
||||||
|
this.page = 1
|
||||||
|
this.list = []
|
||||||
|
this.inputVal = value
|
||||||
|
this.getLibraries()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
//@import "../../styles/weui/base/fn.wxss";
|
||||||
|
//@import "../../styles/custom/fn.less";
|
||||||
|
page{
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.borrow{
|
||||||
|
.page__bd{
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.page__bd{
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
.weui-tab__content{
|
||||||
|
padding-top: 0px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
text-align: center;
|
||||||
|
background: #fff;
|
||||||
|
.library-title{
|
||||||
|
//.h2();
|
||||||
|
text-align: left;
|
||||||
|
color: #666;
|
||||||
|
padding: 20rpx 40rpx 10rpx;
|
||||||
|
}
|
||||||
|
.library-wrapper{
|
||||||
|
padding: 20rpx 0;
|
||||||
|
}
|
||||||
|
.library-item{
|
||||||
|
position: relative;
|
||||||
|
&:before {
|
||||||
|
//.setLeftLine(@weuiCellBorderColor);
|
||||||
|
}
|
||||||
|
&:first-child {
|
||||||
|
&:before {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item-title{
|
||||||
|
//.h3();
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
.mini-btn{
|
||||||
|
// margin: 1em auto;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.list{
|
||||||
|
padding: 22rpx;
|
||||||
|
/*background: red;*/
|
||||||
|
box-shadow: 1rpx 1rpx 12rpx #d3d3d3;
|
||||||
|
}
|
||||||
|
.inline-block {display: inline-block}
|
||||||
|
.flo_l {float: left}
|
||||||
|
.flo_r {float: right}
|
||||||
|
.font_26 {font-size: 26rpx}
|
||||||
|
.font_28 {font-size: 28rpx}
|
||||||
|
.bold{font-weight: bold}
|
||||||
|
.clearfloat {clear:both}
|
||||||
|
.white {background: white}
|
||||||
|
.ellipsis_2 {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
}
|
||||||
|
.ellipsis_1 {
|
||||||
|
text-overflow:ellipsis;
|
||||||
|
white-space:nowrap;
|
||||||
|
overflow:hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.imagebox{
|
||||||
|
width: 33%;
|
||||||
|
}
|
||||||
|
.borrowlist{
|
||||||
|
width: 92%;
|
||||||
|
box-shadow: 1rpx 1rpx 18rpx #dbdbdb;
|
||||||
|
margin-top: 18rpx;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
margin-left: 4%;
|
||||||
|
padding: 22rpx;
|
||||||
|
}
|
||||||
|
.weui-cell__ft {
|
||||||
|
margin-top: 10%;
|
||||||
|
}
|
||||||
|
.weui-search-bar__form, .weui-search-bar__label{
|
||||||
|
background: #f6f6f6 !important;
|
||||||
|
border-radius: 42rpx!important;
|
||||||
|
//color: @darkgray;
|
||||||
|
border: 2rpx solid #f0f0f0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '黑名单',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
tabSearchV2: '~@/components/tabSearchV2',
|
||||||
|
pageScroll: '~@/components/pageScroll',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
823
src/pages/users/degreeCertificate.wpy
Normal file
823
src/pages/users/degreeCertificate.wpy
Normal file
@ -0,0 +1,823 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <cuCustom bgColor="bg-white" isBack="{{true}}">-->
|
||||||
|
<!-- <view slot="backText">返回</view>-->
|
||||||
|
<!-- <view slot="content" class="bold color-333">学历认证</view>-->
|
||||||
|
<!-- </cuCustom>-->
|
||||||
|
|
||||||
|
<view v-if="accomplish == 1 && !up">
|
||||||
|
<view class="certificate_title">
|
||||||
|
<!-- <image class="certificate_title" src="https://images.ufutx.com/202012/28/55c967dd943da8bda5321f380c6c269e.png" mode="widthFix"></image> -->
|
||||||
|
<view class="font_30 color-333 bold title">
|
||||||
|
<view class="img" style="background-image:url(https://images.ufutx.com/202104/29/5cefaa65f4103540201b7f9ec8bb4faf.png);"></view>
|
||||||
|
学历已认证
|
||||||
|
</view>
|
||||||
|
<view class="font_28 color-666" style="margin-bottom:30rpx;">用于验证《中国高等教育学历认证》的真实性,支持【学信网】【毕业证书】【留学服务中心证书】等方式认证,承诺保障信息安全。</view>
|
||||||
|
<view class="way pass animation-slide-bottom">
|
||||||
|
<view class="font_28 color-000 textStyle bold">认证方式</view>
|
||||||
|
<view class="certificate">
|
||||||
|
<!-- <input type="text" value="{{manner[mannerIndex]}}" disabled class="font_28 color-333"/> -->
|
||||||
|
<view class="font_28 color-333" style="margin-right:10rpx;">{{manner[mannerIndex]}}</view>
|
||||||
|
<!-- <view class="triangle"></view> -->
|
||||||
|
</view>
|
||||||
|
<!-- <view wx:if="{{hint}}" class="hintImg" style="background-image:url(https://images.ufutx.com/202104/27/e536a423a145ae12ab4f6dc57f58588d.png);">点此更换认证方式</view> -->
|
||||||
|
</view>
|
||||||
|
<block v-if="mannerIndex == 0">
|
||||||
|
<view class="way pass animation-slide-bottom" v-if="user.graduate_school">
|
||||||
|
<view class="font_28 color-000 textStyle bold">毕业院校</view>
|
||||||
|
<view class="certificate">
|
||||||
|
<view class="font_28 color-333" style="margin-right:10rpx;">{{user.graduate_school}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="way pass animation-slide-bottom" v-if="user.degree">
|
||||||
|
<view class="font_28 color-000 textStyle bold">最高学历</view>
|
||||||
|
<view class="certificate">
|
||||||
|
<view class="font_28 color-333" style="margin-right:10rpx;">{{user.degree}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="animation-slide-bottom certificateText" v-if="user.educate_photo">
|
||||||
|
<view class="font_28 color-000 textStyle bold">毕业证书</view>
|
||||||
|
<view class="certificateImg">
|
||||||
|
<view class="img" style="{{'background-image:url(' + user.educate_photo + ');'}}"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="way pass animation-slide-bottom" v-if="user.chsi_code">
|
||||||
|
<view class="font_28 color-000 textStyle bold">在线验证码</view>
|
||||||
|
<view class="certificate">
|
||||||
|
<view class="font_28 color-333" style="margin-right:10rpx;">{{user.chsi_code}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view v-else class="">
|
||||||
|
<view class="certificate_title">
|
||||||
|
<!-- <image class="certificate_title" src="https://images.ufutx.com/202012/28/55c967dd943da8bda5321f380c6c269e.png" mode="widthFix"></image> -->
|
||||||
|
<!-- <view class="font_30 color-333 bold">学历认证</view> -->
|
||||||
|
<view class="font_28 color-666">用于验证《中国高等教育学历认证》的真实性,支持【学信网】【毕业证书】【留学服务中心证书】等方式认证,承诺保障信息安全。</view>
|
||||||
|
<view class="way animation-slide-bottom">
|
||||||
|
<view class="font_28 color-000 textStyle bold">认证方式</view>
|
||||||
|
<view class="certificate" bindtap="mannerChange">
|
||||||
|
<!-- <input type="text" value="{{manner[mannerIndex]}}" disabled class="font_28 color-333"/> -->
|
||||||
|
<view class="font_28 color-333" style="margin-right:10rpx;">{{manner[mannerIndex]}}</view>
|
||||||
|
<view class="triangle"></view>
|
||||||
|
</view>
|
||||||
|
<view v-if="hint" class="hintImg" style="background-image:url(https://images.ufutx.com/202104/27/e536a423a145ae12ab4f6dc57f58588d.png);">点此更换认证方式</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 学位证书 -->
|
||||||
|
<view :class="{'show':mannerIndex == 0}" class="information_box hidden">
|
||||||
|
<view class="inputBox animation-slide-bottom" style="animation-delay: 0.1s;">
|
||||||
|
<view class="font_28 textStyle bold">毕业院校</view>
|
||||||
|
<view catchtap="handleScroll">
|
||||||
|
<input value="{{school}}" disabled type="text" class="inputStyle font_30" readonly placeholder="请输入你的毕业院校" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="inputBox animation-slide-bottom" style="animation-delay: 0.1s;">
|
||||||
|
<picker mode="selector" value="{{degreeIndex}}" range="{{degree}}" bindchange="statureChange" >
|
||||||
|
<view class="font_28 textStyle bold">学历</view>
|
||||||
|
<view >
|
||||||
|
<input type="text" v-model="degree[degreeIndex]" disabled class="inputStyle font_30" readonly placeholder="请选择你的最高学历" />
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
<!-- <view class="font_28 textStyle bold">学历</view>-->
|
||||||
|
<!-- <view catchtap="degreeChange" >-->
|
||||||
|
<!-- <input type="text" v-model="degree[degreeIndex]" disabled class="inputStyle font_30" readonly placeholder="请选择你的最高学历" />-->
|
||||||
|
<!-- </view>-->
|
||||||
|
</view>
|
||||||
|
<view class="animation-slide-bottom">
|
||||||
|
<view class="font_30 color-333 bold">请上传你的毕业证书、学位证书或学信网截图</view>
|
||||||
|
<view class="font_28 color-999">(你上传的照片仅作认证使用,并将加密处理)</view>
|
||||||
|
<view class="upload_box">
|
||||||
|
<view class="text-center">
|
||||||
|
<view class="upload_sample_box">
|
||||||
|
<image class="sample_pic" src="https://images.ufutx.com/202012/28/12700c367130e75de1cd03ef0d042e78.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
<view class="font_24 color-666" style="margin-top: 4rpx">示例</view>
|
||||||
|
</view>
|
||||||
|
<view class="text-center" @tap="toUploadPic">
|
||||||
|
<view class="upload_sample_box">
|
||||||
|
<block v-if="!educate_photo">
|
||||||
|
<image class="upload_pic" src="https://images.ufutx.com/202012/28/d8b20596f3b37fb5efcd90612cd35e05.png" mode="widthFix" ></image>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<image class="educate_photo" :src="educate_photo" mode="aspectFill" ></image>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<view class="font_24 color-666" style="margin-top: 4rpx">上传照片</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 在线认证 -->
|
||||||
|
<view class="information_box {{mannerIndex == 1 ? 'show':'hidden'}}">
|
||||||
|
<view class="inputBox animation-slide-bottom" style="animation-delay: 0.1s;">
|
||||||
|
<view class="font_28 textStyle bold">在线验证码</view>
|
||||||
|
<input v-model="attestation" type="text" class="inputStyle font_30" placeholder="请输入12-18位编号" />
|
||||||
|
</view>
|
||||||
|
<view class="verify animation-slide-bottom" @tap.stop="gotoBook">
|
||||||
|
<view class="title bold">获取学信网在线验证码</view>
|
||||||
|
<view class="main">按步骤操作即可获取学信网在线验证码</view>
|
||||||
|
<view class="rit"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view style="height: 22vh"></view>-->
|
||||||
|
<view class="submit_box text-center">
|
||||||
|
<view class="Can_submit_button font_32" @tap="save" v-if="anew == 1">立即认证</view>
|
||||||
|
<view class="Can_submit_button font_32" @tap="save" v-else>重新认证</view>
|
||||||
|
<!-- <view class="font_24 color-999">请确保提交的信息真实有效,盗用他人资料认证将会被封号</view> -->
|
||||||
|
</view>
|
||||||
|
<view class="main-logo text-center animation-slide-bottom">
|
||||||
|
<view style="margin-bottom: 22rpx;">
|
||||||
|
<image src="https://images.ufutx.com/202012/24/181993236787c898d25df284b5cb092e.png" mode="aspectFit" class="iconV2" v-if="active" @tap="activeFn"></image>
|
||||||
|
<image src="https://images.ufutx.com/202006/18/2b234f0a7d8c1b7f97e98ee597a1f2c1.png" mode="aspectFit" class="iconV2" v-else @tap="activeFn"></image>
|
||||||
|
<span class="font_24">
|
||||||
|
<span @tap="activeFn">请阅读并同意</span>
|
||||||
|
<span class="color-theme" @tap.stop="gotoApp('https://love.ufutx.com/h5/#/serviceAgreementV2')">《服务协议》</span>和
|
||||||
|
<span class="color-theme" @tap.stop="gotoApp('https://love.ufutx.com/h5/#/PrivacyAgreementV2')">《隐私协议》</span>
|
||||||
|
</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view :class="{'show':modalName=='successfulModal'}" class="cu-modal">
|
||||||
|
<view class="successful_prompt_box">
|
||||||
|
<view style="padding: 60rpx 0 20rpx 0">
|
||||||
|
<image class="successful_pic" src="https://images.ufutx.com/202012/28/2168fa80aa80eb0f76ba71ac0e449c7e.png" mode="widthFix" ></image>
|
||||||
|
</view>
|
||||||
|
<view class="font_36 color-333 bold">认证已提交,等待审核</view>
|
||||||
|
<view class="font_28 color-333 prompt_text">审核结果将在1~3个工作日内通知,请耐心等待;如有需要,请直接联系客服<span class="color-theme" @tap="callPhone('18922809346')">18194066804</span></view>
|
||||||
|
<view class="Know font_32" @tap="goToBack">我知道了</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="popUp">
|
||||||
|
<view :class="{'show':modalName=='bottomModal'}" class="cu-modal bottom-modal " catchtap="hideModal"></view>
|
||||||
|
<view class="bouncedV3 ff" v-if="modalName=='bottomModal'">
|
||||||
|
<view class="cu-dialog dialog" style="border-radius: 30rpx 30rpx 0rpx 0rpx;">
|
||||||
|
<view>请选择学历认证方式</view>
|
||||||
|
<block v-for="(item,index) in manner" :key="index">
|
||||||
|
<view :class="{'col':mannerIndex == index}" catchtap="select" data-index="{{index}}">{{item}}</view>
|
||||||
|
</block>
|
||||||
|
<view bindtap="hideModal">取消</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<uploadPic :chooseShow.sync="choosePicsShow" @changeVal="changeVal" @closeUploadPic="closeUploadPic"></uploadPic>
|
||||||
|
<!-- <view class="popUp">-->
|
||||||
|
<!-- <view :class="{'show':modalName=='bottomModals'}" class="cu-modal bottom-modal" catchtap="hideModal"></view>-->
|
||||||
|
<!-- <view class="bouncedV2 ff" v-if="modalName=='bottomModals'">-->
|
||||||
|
<!-- <view class="cu-dialog bounced">-->
|
||||||
|
<!-- <view class="_title text-center ff animation-slide-top">-->
|
||||||
|
<!-- <view class="color-666 font_32" catchtap="hideModal">取消</view>-->
|
||||||
|
<!-- <view class="color-333 bold text-black ff font_32">请选择最高学历</view>-->
|
||||||
|
<!-- <view class="font_32" style="color: #F33B6C;" catchtap="confirm">确定</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- <picker-view class="picker-content-item animation-slide-right" value="{{degreeIndex}}" indicator-style="height: 100rpx;" bindchange="statureChange">-->
|
||||||
|
<!-- <picker-view-column>-->
|
||||||
|
<!-- <view v-for="(item,index) in degree" :key="index" :class="{'tex':degreeIndex == index}" class="picker_column_item ">{{item}}</view>-->
|
||||||
|
<!-- </picker-view-column>-->
|
||||||
|
<!-- </picker-view>-->
|
||||||
|
<!-- <!– <view class="font_28 cu-modal_nextStep text-center radius bg-blue" catchtap="confirm">确定</view> –>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
import {service} from '../../config.js'
|
||||||
|
// import NavBar from '../../components/NavBar'
|
||||||
|
//
|
||||||
|
// import modal from '../../components/modal'
|
||||||
|
// import {getsubscription} from '../../utils/fn'
|
||||||
|
// import cuCustom from '../../components/cu-custom'
|
||||||
|
// import uploadImage from '../../components/uploadImage'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
state: '',
|
||||||
|
user: {},
|
||||||
|
modalName: '',
|
||||||
|
educate_photo: '',
|
||||||
|
degree: ['博士', '硕士', '本科', '大专', '其他'],
|
||||||
|
// manner:['毕业证/学位证书照片','毕业证/学位证书编号','国内学信网在线认证'],
|
||||||
|
manner: ['毕业证/学位证书照片', '国内学信网在线认证'],
|
||||||
|
degreeIndex: '',
|
||||||
|
mannerIndex: 0,
|
||||||
|
school: '',
|
||||||
|
attestation: '',
|
||||||
|
ShowDegree: false,
|
||||||
|
init: false,
|
||||||
|
formId: [],
|
||||||
|
protocol: true,
|
||||||
|
shareImage: true,
|
||||||
|
active: true,
|
||||||
|
invite_pic: '',
|
||||||
|
tempId: [], // 模板id
|
||||||
|
system: wx.getStorageSync('system'),
|
||||||
|
approve_time: 0,
|
||||||
|
hint: true,
|
||||||
|
accomplish: '',
|
||||||
|
anew: 1,
|
||||||
|
up: '',
|
||||||
|
choosePicsShow: false
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// this.getTempId()
|
||||||
|
// this.initPageData()
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
// onShareAppMessage(res) {
|
||||||
|
// return this.$parent.onShareAppMessage(this.config.navigationBarTitleText)
|
||||||
|
// }
|
||||||
|
// onShareAppMessage (res) {
|
||||||
|
// let vm = this
|
||||||
|
// vm.$invoke('modal', 'hideModal')
|
||||||
|
// let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
// let url = 'pages/tabBar/welcome?from_openid=' + wx.getStorageSync('openid') + '&from_user_id=' + fromUserID
|
||||||
|
// console.log(url)
|
||||||
|
// return {
|
||||||
|
// title: '推荐福恋,婚恋家庭幸福平台',
|
||||||
|
// path: url,
|
||||||
|
// imageUrl: vm.invite_pic,
|
||||||
|
// success: function (res) {
|
||||||
|
// wx.showToast({
|
||||||
|
// title: '转发成功',
|
||||||
|
// icon: 'success',
|
||||||
|
// duration: 1500
|
||||||
|
// })
|
||||||
|
// // let shareTickets = res.shareTickets
|
||||||
|
// // if (shareTickets.length == 0) {
|
||||||
|
// // return false
|
||||||
|
// // }
|
||||||
|
// },
|
||||||
|
// fail: function (res) {
|
||||||
|
// // 转发失败
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
async onLoad(e) {
|
||||||
|
this.accomplish = e.typ ? e.typ : ''
|
||||||
|
this.up = e.up ? e.up : ''
|
||||||
|
this.anew = e.anew ? e.anew : 1
|
||||||
|
this.initPageData()
|
||||||
|
setTimeout(() => {
|
||||||
|
this.hint = false
|
||||||
|
}, 3000)
|
||||||
|
// if (e.state != '') {
|
||||||
|
// this.state = e.state
|
||||||
|
// }
|
||||||
|
// if (this.state == 2) {
|
||||||
|
// this.modalName = 'successfulModal'
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
this.initPageData()
|
||||||
|
},
|
||||||
|
show(e) {
|
||||||
|
this.school = e
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
// 初始化页面数据
|
||||||
|
initPageData() {
|
||||||
|
this.$get({url: `${service.host}/user/approve/profile`}).then(({code, data}) => {
|
||||||
|
this.init = true
|
||||||
|
this.user = data.educate_info
|
||||||
|
if (this.user.graduate_school) {
|
||||||
|
this.school = this.user.graduate_school
|
||||||
|
}
|
||||||
|
if (this.user.educate_photo) {
|
||||||
|
this.educate_photo = this.user.educate_photo
|
||||||
|
}
|
||||||
|
if (this.user.degree) {
|
||||||
|
this.degree.forEach((item, index) => {
|
||||||
|
if (item == this.user.degree) {
|
||||||
|
this.degreeIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (this.user.edc_type) {
|
||||||
|
this.mannerIndex = this.user.edc_type
|
||||||
|
console.log(this.user)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 指定下标更换 ***
|
||||||
|
interceptAndReplace(str, frontLen, endLen, symbol) {
|
||||||
|
var len = str.length - frontLen - endLen
|
||||||
|
var xing = ''
|
||||||
|
for (var i = 0; i < len; i++) {
|
||||||
|
xing += symbol
|
||||||
|
}
|
||||||
|
return str.substring(0, frontLen) + xing + str.substring(str.length - endLen)
|
||||||
|
},
|
||||||
|
callPhone (phone) {
|
||||||
|
this.$callPhone(phone)
|
||||||
|
},
|
||||||
|
handleScroll() {
|
||||||
|
wx.navigateTo({url: '/pages/users/schools'})
|
||||||
|
},
|
||||||
|
gotoApp(url) {
|
||||||
|
wx.navigateTo({url: '/pages/books/bookDetail?url=' + encodeURIComponent(url)})
|
||||||
|
},
|
||||||
|
gotoBook(url) {
|
||||||
|
wx.navigateTo({url: '/pages/books/schoolVerify'})
|
||||||
|
},
|
||||||
|
activeFn(index) {
|
||||||
|
this.active = !this.active
|
||||||
|
},
|
||||||
|
statureChange(e) { // 身高Change
|
||||||
|
console.log(e.$wx.detail, 'detail')
|
||||||
|
this.degreeIndex = e.$wx.detail.value[0]
|
||||||
|
console.log(this.degreeIndex)
|
||||||
|
},
|
||||||
|
confirm() {
|
||||||
|
let vm = this
|
||||||
|
if (vm.degreeIndex == '') {
|
||||||
|
vm.degreeIndex = 0
|
||||||
|
}
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
let vm = this,
|
||||||
|
data = {
|
||||||
|
educate_photo: vm.educate_photo,
|
||||||
|
graduate_school: vm.school,
|
||||||
|
degree: vm.degree[vm.degreeIndex]
|
||||||
|
// eca_type: vm.mannerIndex
|
||||||
|
}
|
||||||
|
// 在线认证
|
||||||
|
if (vm.mannerIndex == 1) {
|
||||||
|
data = {
|
||||||
|
educate_photo: '',
|
||||||
|
graduate_school: '',
|
||||||
|
degree: '',
|
||||||
|
chsi_code: vm.attestation
|
||||||
|
// eca_type: vm.mannerIndex
|
||||||
|
}
|
||||||
|
if (!vm.attestation) {
|
||||||
|
return vm.$showToast('请填写在线验证码')
|
||||||
|
} else if (vm.attestation.length > 11 && vm.attestation.length < 19) {
|
||||||
|
const englishAndNum = /^[A-Za-z0-9]+$/
|
||||||
|
if (!(englishAndNum.test(vm.attestation))) {
|
||||||
|
wx.showToast({ title: '请正确填写在线验证码', icon: 'none' })
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
vm.$post({url: `${service.host}/user/approve/education`, data}).then(({code, data}) => {
|
||||||
|
// vm.$showToast('提交成功')
|
||||||
|
vm.modalName = 'successfulModal'
|
||||||
|
})
|
||||||
|
console.log(vm.attestation)
|
||||||
|
} else {
|
||||||
|
return vm.$showToast('请正确填写在线验证码')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (vm.mannerIndex == 0) {
|
||||||
|
if (!vm.educate_photo || !vm.school || !vm.degree[vm.degreeIndex]) {
|
||||||
|
return vm.$showToast('请完善表单信息!')
|
||||||
|
}
|
||||||
|
if (!vm.active) {
|
||||||
|
return vm.$showToast('请先选择同意服务协议')
|
||||||
|
}
|
||||||
|
|
||||||
|
vm.$post({url: `${service.host}/user/approve/education`, data}).then(({code, data}) => {
|
||||||
|
// vm.$showToast('提交成功')
|
||||||
|
vm.modalName = 'successfulModal'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goToBack () {
|
||||||
|
this.$gotoBack(1)
|
||||||
|
},
|
||||||
|
toUploadPic() { // 上传组件
|
||||||
|
let vm = this
|
||||||
|
console.log('----999')
|
||||||
|
vm.choosePicsShow = true
|
||||||
|
// this.$invoke('uploadImage', 'chooseimage')
|
||||||
|
},
|
||||||
|
changeVal(e) {
|
||||||
|
let vm = this
|
||||||
|
console.log(e, 'e===')
|
||||||
|
vm.educate_photo = e[0].filePath
|
||||||
|
// let photos = e
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
closeUploadPic() {
|
||||||
|
console.log('*****close**********')
|
||||||
|
this.choosePicsShow = false
|
||||||
|
},
|
||||||
|
degreeChange(e) {
|
||||||
|
// this.ShowDegree = true
|
||||||
|
if (this.degreeIndex.length == 0) {
|
||||||
|
this.degreeIndex = [2]
|
||||||
|
}
|
||||||
|
this.modalName = 'bottomModals'
|
||||||
|
},
|
||||||
|
mannerChange(e) {
|
||||||
|
// this.ShowDegree = true
|
||||||
|
this.modalName = 'bottomModal'
|
||||||
|
},
|
||||||
|
select(e) {
|
||||||
|
let that = this
|
||||||
|
let index = e.currentTarget.dataset.index
|
||||||
|
that.mannerIndex = index
|
||||||
|
that.modalName = ''
|
||||||
|
},
|
||||||
|
hideModal(e) {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
UpLoadImage(value) {
|
||||||
|
this.educate_photo = value
|
||||||
|
wx.hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
|
||||||
|
page {
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.certificate_title{
|
||||||
|
padding: 20rpx 30rpx 30rpx 30rpx;
|
||||||
|
.way{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
animation-delay: 0.1s;
|
||||||
|
padding: 30rpx 0rpx;
|
||||||
|
.hintImg{
|
||||||
|
position: absolute;
|
||||||
|
display: flex;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 70rpx;
|
||||||
|
justify-content: center;
|
||||||
|
right: 12rpx;
|
||||||
|
bottom: -30rpx;
|
||||||
|
width: 230rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
}
|
||||||
|
// .inputStyle{
|
||||||
|
// padding-right: 26rpx;
|
||||||
|
// }
|
||||||
|
.certificate{
|
||||||
|
position:relative;
|
||||||
|
display:flex;
|
||||||
|
align-items: center;
|
||||||
|
.triangle{
|
||||||
|
// position: absolute;
|
||||||
|
// top: 0;
|
||||||
|
// bottom: 0;
|
||||||
|
// right: 0;
|
||||||
|
// margin: auto;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-right: 5px solid transparent;
|
||||||
|
border-left: 5px solid transparent;
|
||||||
|
border-top: 5px solid #515151;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.pass{
|
||||||
|
justify-content: left;
|
||||||
|
.certificate{
|
||||||
|
margin-left: 30rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ---------已认证------------
|
||||||
|
.title{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
.img{
|
||||||
|
width: 32rpx;
|
||||||
|
height: 36rpx;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
margin-right: 6rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.certificateText{
|
||||||
|
display: flex;
|
||||||
|
justify-content: left;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
.certificateImg{
|
||||||
|
width: 508rpx;
|
||||||
|
height: 360rpx;
|
||||||
|
margin-top: 6rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
background: #F5F5F5;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
.img{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.information_box{
|
||||||
|
margin: 0 30rpx;
|
||||||
|
.inputBox{
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
text-align: left;
|
||||||
|
background: white;
|
||||||
|
padding-bottom: 10rpx;
|
||||||
|
border-bottom: 2rpx solid #f6f6f6;
|
||||||
|
overflow: hidden;
|
||||||
|
.textStyle{
|
||||||
|
color: #f33b6c;
|
||||||
|
margin-bottom: 14rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.img{
|
||||||
|
padding: 30rpx 30rpx 0rpx 30rpx;
|
||||||
|
}
|
||||||
|
.verify{
|
||||||
|
position: relative;
|
||||||
|
height: 124rpx;
|
||||||
|
background: #F5F5F5;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
margin-bottom: 76rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
.title{
|
||||||
|
height: 40rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 40rpx;
|
||||||
|
}
|
||||||
|
.main{
|
||||||
|
height: 34rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #999999;
|
||||||
|
line-height: 34rpx;
|
||||||
|
}
|
||||||
|
.rit{
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 30rpx;
|
||||||
|
bottom: 0;
|
||||||
|
margin: auto;
|
||||||
|
border-right: 2rpx solid #AAAAAA;
|
||||||
|
border-top: 2rpx solid #AAAAAA;
|
||||||
|
height: 20rpx;
|
||||||
|
width: 20rpx;
|
||||||
|
transform: rotate(deg);
|
||||||
|
-webkit-transform: rotate(45deg);
|
||||||
|
border-left: 2rpx solid transparent;
|
||||||
|
border-bottom: 2rpx solid transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.upload_box{
|
||||||
|
margin-top: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.upload_sample_box{
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
width: 330rpx;
|
||||||
|
height: 250rpx;
|
||||||
|
background: #f5f5f5;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
.sample_pic{
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
margin-left: -136rpx;
|
||||||
|
margin-top: -96rpx;
|
||||||
|
width: 272rpx;
|
||||||
|
height: 192rpx;
|
||||||
|
}
|
||||||
|
.upload_pic{
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
margin-left: -30rpx;
|
||||||
|
margin-top: -26rpx;
|
||||||
|
width: 60rpx;
|
||||||
|
height: 52rpx;
|
||||||
|
}
|
||||||
|
.educate_photo{
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
margin-left: -136rpx;
|
||||||
|
margin-top: -96rpx;
|
||||||
|
width: 272rpx;
|
||||||
|
height: 192rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.submit_box{
|
||||||
|
//position: fixed;
|
||||||
|
//left: 0;
|
||||||
|
//right: 0;
|
||||||
|
//bottom: 80rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
.submit_button, .Can_submit_button{
|
||||||
|
width: 650rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 88rpx;
|
||||||
|
border-radius: 88rpx;
|
||||||
|
background-image: linear-gradient(to right, #FF5380 0%, #FF85A5 100%);
|
||||||
|
opacity: 1;
|
||||||
|
color: #ffffff;
|
||||||
|
margin: 0 auto 20rpx auto;
|
||||||
|
}
|
||||||
|
.Can_submit_button{
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.successful_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;
|
||||||
|
padding-bottom: 46rpx;
|
||||||
|
.successful_pic{
|
||||||
|
width: 180rpx;
|
||||||
|
height: 180rpx;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.prompt_text{
|
||||||
|
padding: 48rpx 0 36rpx 0;
|
||||||
|
margin: 0 32rpx;
|
||||||
|
}
|
||||||
|
.Know{
|
||||||
|
width: 280rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
border-radius: 80rpx;
|
||||||
|
background: #ff5380;
|
||||||
|
color: #ffffff;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.show{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.hidden{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.dialog {
|
||||||
|
width: 100%;
|
||||||
|
background: white;
|
||||||
|
height: auto;
|
||||||
|
z-index: 1111;
|
||||||
|
padding-bottom: constant(safe-area-inset-bottom);
|
||||||
|
padding-bottom: env(safe-area-inset-bottom);
|
||||||
|
view {
|
||||||
|
height: 90rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 90rpx;
|
||||||
|
margin: 0 30rpx;
|
||||||
|
color: #333333;
|
||||||
|
font-weight: 500;
|
||||||
|
border-top: 1rpx solid #f5f5f5;
|
||||||
|
}
|
||||||
|
view:first-of-type{
|
||||||
|
border-top: none;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
view:nth-of-type(2){
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
view:last-of-type {
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.col{
|
||||||
|
color: #FF5380;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.popUp{
|
||||||
|
.bouncedV3{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 1111;
|
||||||
|
border-radius: 32rpx 32rpx 0 0;
|
||||||
|
background: #fff;
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.bouncedV2{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 1111;
|
||||||
|
border-radius: 32rpx 32rpx 0 0;
|
||||||
|
background: #fff;
|
||||||
|
width: 100%;
|
||||||
|
height: 40vh;
|
||||||
|
overflow: hidden;
|
||||||
|
.bounced{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;z-index: 1111;
|
||||||
|
border-radius: 0;
|
||||||
|
background: #fff;
|
||||||
|
width: 100%;
|
||||||
|
height: 40vh;
|
||||||
|
}
|
||||||
|
._title{
|
||||||
|
padding: 30rpx 40rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.picker-content-item {
|
||||||
|
width: 100%;
|
||||||
|
height: 350rpx;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
.tex{
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.picker_column_item{
|
||||||
|
height: 70rpx;
|
||||||
|
line-height: 70rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.cu-modal_nextStep{
|
||||||
|
width: 260rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
line-height: 72rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 60rpx;
|
||||||
|
left: 33%;
|
||||||
|
//margin-left: -120rpx;
|
||||||
|
//margin: 0 auto 32rpx auto;
|
||||||
|
//margin: auto;
|
||||||
|
border-radius: 60rpx;
|
||||||
|
z-index: 99999;
|
||||||
|
//margin-top: 58rpx;
|
||||||
|
background-image: linear-gradient(to right, #FF5380 0%, #FF85A5 100%);
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.main-logo{
|
||||||
|
width: 100%;
|
||||||
|
position: absolute;
|
||||||
|
bottom: constant(safe-area-inset-bottom);
|
||||||
|
bottom: env(safe-area-inset-bottom);
|
||||||
|
right: 0;
|
||||||
|
.logo{
|
||||||
|
width: 180rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
}
|
||||||
|
.iconV2{
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
margin-top: -2rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '学历认证',
|
||||||
|
enablePullDownRefresh: true,
|
||||||
|
backgroundColorTop: '#ffffff',
|
||||||
|
backgroundColorBottom: '#ffffff',
|
||||||
|
usingComponents: {
|
||||||
|
uploadPic: '~@/components/uploadPic'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
256
src/pages/users/exclusiveService.wpy
Normal file
256
src/pages/users/exclusiveService.wpy
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <NavBar rgba="#ffffff" bag="#ffffff" :title.sync="title"></NavBar>-->
|
||||||
|
<!-- <Loading :init.sync="init"></Loading>-->
|
||||||
|
<!-- <view class="navbar borrow">-->
|
||||||
|
<!-- <view class="ui-top-image">-->
|
||||||
|
<!-- <image src="https://image.fulllinkai.com/202305/18/b7f2b5ff6700a907685372fbf36a2048.png" mode="aspectFill" class="ui-top-image flo_l"></image>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- <view class="f-fc ui-list-tip">-->
|
||||||
|
<!-- <image src="https://image.fulllinkai.com/202305/18/83c911dd369ca02d6a8377d13093f9db.png" mode="aspectFill" class="ui-top-icon flo_l"></image>-->
|
||||||
|
<!-- <view class="bold color-333">专属客服</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<view class="ui-service-list">
|
||||||
|
<block v-for="(item,index) in list" :key="index">
|
||||||
|
<view class="ui-list-card f-fbc">
|
||||||
|
<view class="f-fc">
|
||||||
|
<image class="ui-service-pic" src="{{item.user ? item.user.avatar ? item.user.avatar : item.user.photo : ''}}" mode="aspectFill"></image>
|
||||||
|
<view class="ui-service-name ellipsis_1 bold color-333">{{item.user ? item.user.nickname ? item.user.nickname : item.user.name ?item.user.name : '未填写' : '未填写'}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="ui-service-add ">
|
||||||
|
<view @tap="showCode(item)"> + 添加客服</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<!-- <pageScroll></pageScroll>-->
|
||||||
|
<block v-if="loading">
|
||||||
|
<view class="weui-loadmore">
|
||||||
|
<view class="weui-loading"></view>
|
||||||
|
<view class="weui-loadmore__tips ff">正在加载</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<view class="cu-modal" :class="{'show':modalName=='isExclusiveService'}">
|
||||||
|
<view class="audit_photo_box ff" style="border-radius: 32rpx;padding: 22rpx;">
|
||||||
|
<view class="font_32 bold color-333" style="padding-top:38rpx;">联系专属客服</view>
|
||||||
|
<image style="width: 240rpx;height: 240rpx;margin: 40rpx;"
|
||||||
|
src="{{exclusiveService}}" show-menu-by-longpress="true"
|
||||||
|
mode="widthFix"></image>
|
||||||
|
<view class="cancel_icon_box" @tap="hideModal">
|
||||||
|
<view class="font_family icon-off white font_48"></view>
|
||||||
|
</view>
|
||||||
|
<view class="m_photo f-fcc">
|
||||||
|
<view class="reason_prompt font_32 color333" style="width: 90%;font-weight: 400;">长按识别二维码,联系客服
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <block wx:if="{{noMore}}">-->
|
||||||
|
<!-- <view class="weui-loadmore weui-loadmore_line weui-loadmore_dot">-->
|
||||||
|
<!-- <view class="weui-loadmore__tips weui-loadmore__tips_in-line weui-loadmore__tips_in-dot ff"></view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- </block>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
// import NavBar from '../../components/NavBar'
|
||||||
|
|
||||||
|
// import tabSearchV2 from '../../components/tabSearchV2'
|
||||||
|
// import pageScroll from '../../components/pageScroll'
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
loaded: false,
|
||||||
|
init: false,
|
||||||
|
title: '',
|
||||||
|
list: [],
|
||||||
|
page: 1,
|
||||||
|
noMore: false,
|
||||||
|
loading: false,
|
||||||
|
type: '',
|
||||||
|
modalName: '',
|
||||||
|
exclusiveService: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {},
|
||||||
|
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
return this.$parent.onShareAppMessage(this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
async onLoad(e) {
|
||||||
|
let that = this
|
||||||
|
that.type = e.type
|
||||||
|
that.list = []
|
||||||
|
that.page = 1
|
||||||
|
that.getLibraries()
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
this.page = 1
|
||||||
|
this.getLibraries()
|
||||||
|
},
|
||||||
|
|
||||||
|
onPageScroll(res) {
|
||||||
|
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
getLibraries(keyword) {
|
||||||
|
let _this = this
|
||||||
|
_this.loading = true
|
||||||
|
let url = `${service.host}/crm/alone/cs/list`
|
||||||
|
_this.$get({
|
||||||
|
url: url
|
||||||
|
}).then(({code, data}) => {
|
||||||
|
_this.init = true
|
||||||
|
_this.noMore = false
|
||||||
|
_this.loading = false
|
||||||
|
if (this.data && data.length === 0) {
|
||||||
|
_this.noMore = true
|
||||||
|
_this.list = []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_this.list = data
|
||||||
|
_this.noMore = true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
showCode(row) {
|
||||||
|
let vm = this
|
||||||
|
// vm.exclusiveService = row.exclusiveService
|
||||||
|
// vm.modalName = 'isExclusiveService'
|
||||||
|
let url = `${service.host}/crm/alone/cs/add`
|
||||||
|
let data = {
|
||||||
|
role_user_id: row.user_id
|
||||||
|
}
|
||||||
|
vm.$post({url: url, data: data}).then(({code, data}) => {
|
||||||
|
vm.exclusiveService = row.qrcode
|
||||||
|
vm.modalName = 'isExclusiveService'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
hideModal() {
|
||||||
|
let vm = this
|
||||||
|
console.log('1--')
|
||||||
|
vm.modalName = ''
|
||||||
|
// vm.$gotoTab({url: '/pages/tabBar/user'})
|
||||||
|
wx.switchTab({url: '/pages/tabBar/user'})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
|
||||||
|
page{
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.ui-top-image{
|
||||||
|
width: 750rpx;
|
||||||
|
height: 208rpx;
|
||||||
|
}
|
||||||
|
.ui-list-tip{
|
||||||
|
margin: 40rpx 30rpx 24rpx;
|
||||||
|
width: 750rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
}
|
||||||
|
.ui-top-icon{
|
||||||
|
margin-right: 8rpx;
|
||||||
|
width: 36rpx;
|
||||||
|
height: 36rpx;
|
||||||
|
}
|
||||||
|
.ui-service-list{
|
||||||
|
padding:0 30rpx 30rpx;
|
||||||
|
}
|
||||||
|
.ui-list-card{
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
padding: 24rpx 30rpx;
|
||||||
|
width: 690rpx;
|
||||||
|
height: 128rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0px 4rpx 20rpx 0px rgba(0,0,0,0.08);
|
||||||
|
border-radius: 16rpx;
|
||||||
|
}
|
||||||
|
.ui-service-pic{
|
||||||
|
margin-right: 20rpx;
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.ui-service-name{
|
||||||
|
width: 260rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
.ui-service-add{
|
||||||
|
padding: 14rpx 20rpx;
|
||||||
|
width: 168rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #F33B6C;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
border: 2rpx solid #FFA9C0;
|
||||||
|
line-height: 32rpx;
|
||||||
|
}
|
||||||
|
.audit_photo_box {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
width: 600rpx;
|
||||||
|
max-width: 100%;
|
||||||
|
.m_photo {
|
||||||
|
border-radius: 24rpx;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
.cancel_icon_box {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
position: absolute;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
left: 50%;
|
||||||
|
bottom: -130rpx;
|
||||||
|
z-index: 2;
|
||||||
|
|
||||||
|
.cancel_icon {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.list{
|
||||||
|
padding: 22rpx;
|
||||||
|
/*background: red;*/
|
||||||
|
box-shadow: 1rpx 1rpx 12rpx #d3d3d3;
|
||||||
|
}
|
||||||
|
.bold{font-weight: bold}
|
||||||
|
.ellipsis_1 {
|
||||||
|
text-overflow:ellipsis;
|
||||||
|
white-space:nowrap;
|
||||||
|
overflow:hidden;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '专属客服',
|
||||||
|
enablePullDownRefresh: true,
|
||||||
|
backgroundColorTop: '#ffffff',
|
||||||
|
backgroundColorBottom: '#ffffff',
|
||||||
|
usingComponents: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
567
src/pages/users/friendlist.wpy
Normal file
567
src/pages/users/friendlist.wpy
Normal file
@ -0,0 +1,567 @@
|
|||||||
|
<template>
|
||||||
|
<view class="borrow animation-fade">
|
||||||
|
<view class="text-left radius" style="border-bottom: 2rpx solid #F5F5F5; background: #f8f8f8;">
|
||||||
|
<tabSearchV2 title="搜索昵称" BColor="#F8F8F8" inputColor="#fff" @search="getSearch"></tabSearchV2>
|
||||||
|
</view>
|
||||||
|
<view class="container">
|
||||||
|
<view :class="{'touch-move-active': item.isTouchMove && title != '关注我的'}" class="touch-item" bindtouchstart="touchstart" bindtouchmove="touchmove" v-for="(item,index) in list" :key="index" @tap="gotoFriendPage(item)">
|
||||||
|
<view class="content_list f-fc">
|
||||||
|
<view class="cu-avatar round lg" :style="{backgroundImage:'url('+(item.photo || item.circle_avatar)+');'}"></view>
|
||||||
|
<view class="f-fcfs f-fdc m_ct">
|
||||||
|
<view class="flo_l f-fbc" style="width: 100%;">
|
||||||
|
<view class="m_name" style="flex: 1;">
|
||||||
|
<view class="font_28 flo_l color-333 ellipsis_1 bold" style="max-width: 40%;">
|
||||||
|
{{item.nickname}}
|
||||||
|
</view>
|
||||||
|
<view class="f-fbc font_28 flo_l ellipsis_1 {{item.sex == 1?'sel':''}}" style="margin-left: 6rpx;margin-top: 2rpx;">
|
||||||
|
<image src="https://image.fulllinkai.com/202203/31/16b4d694cff517e9b19de2049f5d9014.png" mode="aspectFit" v-if="item.sex == 1" style="width: 38rpx;height: 38rpx;" class="flo_l"></image>
|
||||||
|
<image src="https://image.fulllinkai.com/202203/31/9651c04ff1b8aac351e71a7014fbf3aa.png" mode="aspectFit" v-else style="width: 38rpx;height: 38rpx;" class="flo_l"></image>
|
||||||
|
</view>
|
||||||
|
<view class="inline-block initStyle font_20" v-if="item.hidden_profile !== 'NONE'">资料已关闭</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="font_28 flo_l color-333 ellipsis_1 _text">{{item.birthday}}年 {{item.profile.city || ''}}</view>
|
||||||
|
<block v-if="type == 'friend'">
|
||||||
|
<view class="d_btn font_28 " @tap.stap="gotoNew(item)" >发消息</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<block v-if="type==='marriage'">
|
||||||
|
<button @tap="shareGetKey(item,index)" class="btn text-center _item border text-center recommend font_24"
|
||||||
|
open-type="share">
|
||||||
|
<view class="u_user_right white font_24" >推给单身</view>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="font_28 _bc_icon1" v-if="item.is_mutual_follow == 1"></view>
|
||||||
|
<view class="font_28 _bc_icon" v-else></view>
|
||||||
|
</block>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="del" @tap.stop="deleteFn(item.id,index)" data-index="{{index}}">删除</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="noMore && list.length < 0" class="color-999 text-center margin-top">
|
||||||
|
暂无内容
|
||||||
|
</view>
|
||||||
|
<view v-if="default" class="listDefault" style="background-image:url('https://images.ufutx.com/202104/13/1737964f7c98cbf65d728137dc2792eb.png');"></view>
|
||||||
|
<pageScroll></pageScroll>
|
||||||
|
<block v-if="loading">
|
||||||
|
<view class="weui-loadmore">
|
||||||
|
<view class="weui-loading"></view>
|
||||||
|
<view class="weui-loadmore__tips" style="background: #f8f8f8">正在加载</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-if="noMore">
|
||||||
|
<view class="weui-loadmore weui-loadmore_line weui-loadmore_dot">
|
||||||
|
<view class="weui-loadmore__tips weui-loadmore__tips_in-line weui-loadmore__tips_in-dot" style="background: #f8f8f8"></view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
loaded: false,
|
||||||
|
init: false,
|
||||||
|
title: '',
|
||||||
|
mylibs: [],
|
||||||
|
list: [],
|
||||||
|
activeIndex: 0,
|
||||||
|
sliderOffset: 0,
|
||||||
|
sliderLeft: 0,
|
||||||
|
sliderWidth: 180,
|
||||||
|
screenWidth: 360,
|
||||||
|
page: 1,
|
||||||
|
noMore: false,
|
||||||
|
loading: false,
|
||||||
|
inputShowed: false,
|
||||||
|
inputVal: '',
|
||||||
|
type: '',
|
||||||
|
default: false,
|
||||||
|
isTouchMove: false,
|
||||||
|
data_v: null,
|
||||||
|
data_v2: null,
|
||||||
|
is_share_id: '', // 判断分享类型
|
||||||
|
share_id: '',
|
||||||
|
share_image: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(e) {
|
||||||
|
let that = this
|
||||||
|
console.log(e, 'e====')
|
||||||
|
that.type = e.type
|
||||||
|
that.list = []
|
||||||
|
if (that.type == 'fans') {
|
||||||
|
that.title = '关注我的'
|
||||||
|
wx.setNavigationBarTitle({title: '粉丝'})
|
||||||
|
} else if (that.type == 'friend') {
|
||||||
|
that.title = '好友'
|
||||||
|
wx.setNavigationBarTitle({title: '好友'})
|
||||||
|
} else { // attention
|
||||||
|
that.title = '关注'
|
||||||
|
wx.setNavigationBarTitle({title: '关注'})
|
||||||
|
}
|
||||||
|
that.page = 1
|
||||||
|
that.getLibraries()
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
let vm = this
|
||||||
|
// vm.$parent.getTracker(vm.$root.$name, vm.config.navigationBarTitleText)
|
||||||
|
// vm.$apply()
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
this.page = 1
|
||||||
|
this.getLibraries()
|
||||||
|
},
|
||||||
|
onPageScroll(res) {
|
||||||
|
let top = res.scrollTop,
|
||||||
|
show = top > 380 ? true : false
|
||||||
|
// this.$broadcast('showBackTopBtn', show)
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
let vm = this
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.getLibraries()
|
||||||
|
}, 200)
|
||||||
|
},
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
let that = this
|
||||||
|
let openid = wx.getStorageSync('openid')
|
||||||
|
let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
console.log(that.is_share_id, 'is_share_id-')
|
||||||
|
if (!that.is_share_id) {
|
||||||
|
// let openid = wx.getStorageSync('openid')
|
||||||
|
// let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let url = `/pages/tabBar/welcome?from_openid=${openid}&share_user_id=${that.id}&from_user_id=${fromUserID}`
|
||||||
|
|
||||||
|
console.log(url)
|
||||||
|
return {
|
||||||
|
title: '向你推荐《福恋》',
|
||||||
|
path: url,
|
||||||
|
imageUrl: 'https://images.ufutx.com/202004/29/baac955e5878e0cb03c17eef0c92f473.jpeg',
|
||||||
|
success: function(res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
var shareTickets = res.shareTickets
|
||||||
|
if (shareTickets.length == 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function(res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
that.is_share_id = ''
|
||||||
|
// let {id} = wx.getStorageSync('userInfo')
|
||||||
|
// let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let url = `/pages/home/information?id=${that.share_id}&from_openid=${openid}&share_user_id=${that.share_id}&from_user_id=${fromUserID}`
|
||||||
|
return {
|
||||||
|
title: '觉得Ta很不错,可以认识一下',
|
||||||
|
path: url,
|
||||||
|
imageUrl: that.share_image,
|
||||||
|
success: function(res) {
|
||||||
|
// that.$parent.getEvent(this.config.navigationBarTitleText, '分享成功', `userID=${id}`)
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
var shareTickets = res.shareTickets
|
||||||
|
if (shareTickets.length == 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function(res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
getLibraries(keyword) {
|
||||||
|
let _this = this
|
||||||
|
_this.loading = true
|
||||||
|
let url = service.libraries
|
||||||
|
if (_this.type == 'fans') {
|
||||||
|
url = service.followers
|
||||||
|
} else if (_this.type == 'friend') {
|
||||||
|
url = service.host + '/friend/list'
|
||||||
|
} else {
|
||||||
|
url = service.host + '/follow/list'
|
||||||
|
}
|
||||||
|
this.$get({
|
||||||
|
url: url,
|
||||||
|
data: {
|
||||||
|
page: this.page,
|
||||||
|
keyword: this.inputVal
|
||||||
|
}
|
||||||
|
}).then(({code, data}) => {
|
||||||
|
_this.init = true
|
||||||
|
_this.noMore = false
|
||||||
|
_this.loading = false
|
||||||
|
if (!data.data || (data.data.length == 0 && data.current_page == 1)) {
|
||||||
|
_this.default = true
|
||||||
|
_this.list = []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (data.current_page > data.last_page) {
|
||||||
|
_this.noMore = true
|
||||||
|
_this.loading = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data = data.data
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
if (data[i].pivot && data[i].pivot.created_at) {
|
||||||
|
data[i].pivot.created_at = data[i].pivot.created_at.split(' ', 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.$isArray(data) && data.length === 0) {
|
||||||
|
_this.noMore = true
|
||||||
|
_this.list = []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (_this.list.length === 0 || _this.page === 1) {
|
||||||
|
_this.list = data
|
||||||
|
} else {
|
||||||
|
data.map(function (item, index) {
|
||||||
|
_this.list.push(item)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
_this.noMore = true
|
||||||
|
_this.page += 1
|
||||||
|
})
|
||||||
|
},
|
||||||
|
angle(start, end) {
|
||||||
|
var _X = end.X - start.X
|
||||||
|
var _Y = end.Y - start.Y
|
||||||
|
return 360 * Math.atan(_Y / _X) / (2 * Math.PI)
|
||||||
|
},
|
||||||
|
deletefriend(id, index) {
|
||||||
|
let than = this
|
||||||
|
wx.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '是否确认删除该好友',
|
||||||
|
success: function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
than.$delete({url: service.addFriend + '/' + id}).then(({code, data}) => {
|
||||||
|
than.$showToast('删除成功')
|
||||||
|
than.list.splice(index, 1)
|
||||||
|
if (than.list.length == 0) {
|
||||||
|
than.default = true
|
||||||
|
than.loading = false
|
||||||
|
than.noMore = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
attention(id, index) {
|
||||||
|
let _this = this
|
||||||
|
wx.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '是否确认删除该关注',
|
||||||
|
success: function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
_this.$post({url: service.follow + '/' + id}).then(({code, data}) => {
|
||||||
|
_this.list.splice(index, 1)
|
||||||
|
if (_this.list.length == 0) {
|
||||||
|
_this.default = true
|
||||||
|
_this.loading = false
|
||||||
|
_this.noMore = false
|
||||||
|
}
|
||||||
|
wx.showToast({
|
||||||
|
title: '删除成功',
|
||||||
|
icon: 'none',
|
||||||
|
duration: 1000
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
shareGetKey(item, index) {
|
||||||
|
console.log('---1')
|
||||||
|
this.is_share_id = '11'
|
||||||
|
this.share_id = item.user_id
|
||||||
|
this.share_image = item.photo || item.avatar
|
||||||
|
},
|
||||||
|
gotoNew(e) {
|
||||||
|
let item = e
|
||||||
|
this.$goto(`/pages/home/chitchat?id=${item.id}&name=${item.nickname}&type=${item.type}&icon=${item.photo}`)
|
||||||
|
},
|
||||||
|
touchstart (e) {
|
||||||
|
let vm = this
|
||||||
|
vm.list.forEach(function (v, i) {
|
||||||
|
if (v.isTouchMove) { v.isTouchMove = false }
|
||||||
|
})
|
||||||
|
vm.startX = e.changedTouches[0].clientX
|
||||||
|
vm.startY = e.changedTouches[0].clientY
|
||||||
|
},
|
||||||
|
touchmove (e) {
|
||||||
|
var that = this
|
||||||
|
that.index = e.currentTarget.dataset.index
|
||||||
|
var startX = that.startX
|
||||||
|
var startY = that.startY
|
||||||
|
var touchMoveX = e.changedTouches[0].clientX
|
||||||
|
var touchMoveY = e.changedTouches[0].clientY
|
||||||
|
var angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY })
|
||||||
|
|
||||||
|
that.list.forEach(function (v, i) {
|
||||||
|
v.isTouchMove = false
|
||||||
|
if (Math.abs(angle) > 30) return
|
||||||
|
if (i == that.index) {
|
||||||
|
if (touchMoveX > startX) { v.isTouchMove = false } else { v.isTouchMove = true }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deleteFn(id, index) {
|
||||||
|
if (this.title == '关注我的') {
|
||||||
|
} else if (this.title == '好友') {
|
||||||
|
this.deletefriend(id, index)
|
||||||
|
} else if (this.title == '关注') {
|
||||||
|
this.attention(id, index)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
gotoFriendPage(item) {
|
||||||
|
console.log('------------------------', item)
|
||||||
|
let url = ''
|
||||||
|
if (item.type == 'single') {
|
||||||
|
url = '/pages/home/information?id=' + item.id
|
||||||
|
} else {
|
||||||
|
url = '/pages/home/informationV2?id=' + item.id
|
||||||
|
}
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
showInput() {
|
||||||
|
this.inputShowed = true
|
||||||
|
},
|
||||||
|
hideInput() {
|
||||||
|
this.inputVal = ''
|
||||||
|
this.inputShowed = false
|
||||||
|
},
|
||||||
|
clearInput() {
|
||||||
|
this.inputVal = ''
|
||||||
|
},
|
||||||
|
inputTyping(e) {
|
||||||
|
this.inputVal = e.detail.value
|
||||||
|
console.log(this.inputVal)
|
||||||
|
this.page = 1
|
||||||
|
this.getLibraries(this.inputVal)
|
||||||
|
},
|
||||||
|
tabClick(e) {
|
||||||
|
this.sliderOffset = e.currentTarget.offsetLeft
|
||||||
|
this.activeIndex = e.currentTarget.id
|
||||||
|
this.getLibraries()
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
getSearch(value) {
|
||||||
|
this.page = 1
|
||||||
|
this.inputVal = value
|
||||||
|
this.getLibraries()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
page{
|
||||||
|
background: #f8f8f8;
|
||||||
|
//padding-bottom: constant(safe-area-inset-bottom);
|
||||||
|
//padding-bottom: env(safe-area-inset-bottom);
|
||||||
|
// height: 100%;
|
||||||
|
}
|
||||||
|
.initStyle{
|
||||||
|
background: #999999;
|
||||||
|
color: white;
|
||||||
|
padding: 0 10rpx;
|
||||||
|
border-radius: 22rpx;
|
||||||
|
align-items: center; /*定义body的元素垂直居中*/
|
||||||
|
margin-bottom: 4rpx;
|
||||||
|
vertical-align:text-bottom;
|
||||||
|
}
|
||||||
|
.listDefault{
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
margin: auto;
|
||||||
|
width: 300rpx;
|
||||||
|
height: 300rpx;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
.touch-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 92%;
|
||||||
|
height: 158rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
padding-left: 30rpx;
|
||||||
|
background: #fff;
|
||||||
|
margin: auto;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
margin-bottom: 18rpx;
|
||||||
|
border-radius: 22rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.cu-avatar{
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
}
|
||||||
|
._text{
|
||||||
|
margin-top: 6rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.d_btn{
|
||||||
|
width: 112rpx;
|
||||||
|
height:50rpx;
|
||||||
|
background: #FFF4F7;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
color: #F33B6C;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 50rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
position: absolute;
|
||||||
|
right: 6%;
|
||||||
|
top: 36%;
|
||||||
|
}
|
||||||
|
.recommend{
|
||||||
|
position: absolute;
|
||||||
|
right: 6%;
|
||||||
|
top: 35%;
|
||||||
|
width: 122rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
line-height: 48rpx;
|
||||||
|
background: linear-gradient(71deg, #DA96FF 0%, #BD64EE 100%);
|
||||||
|
border-radius: 33rpx;
|
||||||
|
}
|
||||||
|
._bc_icon,._bc_icon1{
|
||||||
|
width: 156rpx;
|
||||||
|
height:58rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 6%;
|
||||||
|
top: 35%;
|
||||||
|
background-image: url("https://image.fulllinkai.com/202203/31/90511e4a303fa640ef24e2ed79bc4e28.png");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
._bc_icon{background-image: url("https://image.fulllinkai.com/202203/31/a5474c5766c2172f0705ea62a43bdf15.png");}
|
||||||
|
}
|
||||||
|
.content_list {
|
||||||
|
//display: flex;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin-right: 0;
|
||||||
|
-webkit-transition: all 0.4s;
|
||||||
|
transition: all 0.4s;
|
||||||
|
-webkit-transform: translateX(90px);
|
||||||
|
transform: translateX(90px);
|
||||||
|
margin-left: -90px;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
.userMessageBox{
|
||||||
|
margin-top: 2rpx;
|
||||||
|
margin-left: 16rpx;
|
||||||
|
.name{
|
||||||
|
width: 400rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.userMessage{
|
||||||
|
width: 524rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.unreadBox{
|
||||||
|
position: absolute;
|
||||||
|
right: 30rpx;
|
||||||
|
top: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
.lastTime{
|
||||||
|
margin-top: 10rpx;
|
||||||
|
}
|
||||||
|
.unreadNum, .unreadNum_1{
|
||||||
|
float: right;
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
font-size: 20rpx;
|
||||||
|
//background: #f1013D;
|
||||||
|
color: #fff;
|
||||||
|
margin-top: 12rpx;
|
||||||
|
}
|
||||||
|
.unreadNum_1{
|
||||||
|
width: 44rpx;
|
||||||
|
border-radius: 14rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_ct {
|
||||||
|
margin-left: 20rpx;
|
||||||
|
flex: 1;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
border-bottom: 2rpx solid #F5F5F5;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.del {
|
||||||
|
background-color: #f1013D;
|
||||||
|
width: 90px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: #fff;
|
||||||
|
-webkit-transform: translateX(90px);
|
||||||
|
transform: translateX(90px);
|
||||||
|
-webkit-transition: all 0.4s;
|
||||||
|
transition: all 0.4s;
|
||||||
|
}
|
||||||
|
.touch-move-active .content_list,
|
||||||
|
.touch-move-active .del {
|
||||||
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '好友',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
tabSearchV2: '~@/components/tabSearchV2',
|
||||||
|
pageScroll: '~@/components/pageScroll',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
474
src/pages/users/logout.wpy
Normal file
474
src/pages/users/logout.wpy
Normal file
@ -0,0 +1,474 @@
|
|||||||
|
<template>
|
||||||
|
<view class="wrapper font_28">
|
||||||
|
<view class="ui-logout-tip">关闭资料将被移出所有群聊及删除相关聊天信息</view>
|
||||||
|
<view class="head bold text-black">关闭资料将无法使用福恋平台,他人也无法再看到你的个人信息,请谨慎考虑</view>
|
||||||
|
<view class="font_28 color-999" style="padding-top: 60rpx">请选择关闭资料的原因,帮助福恋更好地改进</view>
|
||||||
|
<view class="container">
|
||||||
|
<radio-group class="radio-group">
|
||||||
|
<view class="radio" v-for="(item,index) in items" :key="index" @tap="radioChange(item.text)">
|
||||||
|
<radio value="{{item.text}}" class="itemRadio flo_l mainColor" checked="{{item.checked}}" />
|
||||||
|
<view class="flo_l _text">{{item.text}}</view>
|
||||||
|
</view>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
<view class="themes" v-if="selectId==6">
|
||||||
|
<textarea class="textarea font_28 color-666 text-left" maxlength="50" placeholder="请告诉福恋,你关闭资料的其他原因吧" @input="typing('content')" @blur="typing('content')" adjust-position="true" value="{{content}}" />
|
||||||
|
<view class="font_24 text-right" style="color: #c2c2c2">{{content.length}}/50</view>
|
||||||
|
</view>
|
||||||
|
<view class="font_32 sendButton" @tap="ShutDown">关闭资料</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal {{modalName=='Modal2'?'show':''}}">
|
||||||
|
<view class="audit_photo_box">
|
||||||
|
<view class="_bgModal1"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal {{modalName=='Modal1'?'show':''}}">
|
||||||
|
<view class="audit_photo_box">
|
||||||
|
<view class="cancel_icon_box" @tap="hideModal1">
|
||||||
|
<!-- <image src="https://images.ufutx.com/202012/21/7bc531d74f41cce95ede5582232fd2f3.png" mode="widthFix" class="cancel_icon"></image> -->
|
||||||
|
<view class="font_family icon-off white font_48"></view>
|
||||||
|
</view>
|
||||||
|
<view style="text-align: center">
|
||||||
|
<view class="_bgModal">
|
||||||
|
<view class="_text textarea">
|
||||||
|
<view class="font_26 bold">联系脱单姐领取脱单彩蛋</view>
|
||||||
|
<view class="font_26 bold">18922809346</view>
|
||||||
|
</view>
|
||||||
|
<view class="_gif"></view>
|
||||||
|
<view class="_bgBtn" @tap="callPhone('18922809346')"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal {{modalName=='Modal'?'show':''}}">
|
||||||
|
<view class="prompt_box">
|
||||||
|
<image class="prompt_icon" src="https://images.ufutx.com/202105/31/7074259ebed4ba2688afcdeadc429db1.png" mode="widthFix"></image>
|
||||||
|
<view class="font_36 color-333 bold">是否确定关闭资料</view>
|
||||||
|
<view class="prompt_text font_28 color-333">关闭资料后,用户将视为已找到伴侣,再打开将影响匹配准确度,您将被移出所有群聊及删除相关聊天信息~</view>
|
||||||
|
<view class="know_that_box">
|
||||||
|
<view class="know_that" @tap="getLogout">确定</view>
|
||||||
|
<view class="know_thatV2" @tap="hideModal">取消</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal {{modalName=='secondType'?'show':''}}">
|
||||||
|
<view class="prompt_box">
|
||||||
|
<image class="prompt_icon" src="https://images.ufutx.com/202105/31/7074259ebed4ba2688afcdeadc429db1.png" mode="widthFix"></image>
|
||||||
|
<view class="font_36 color-333 bold">是否转为介绍人</view>
|
||||||
|
<view class="prompt_text font_28 color-333">有对应婚姻课程也可帮助其他单身找对象~</view>
|
||||||
|
<view class="know_that_box">
|
||||||
|
<view class="know_that" @tap="getLogoutV2">确定</view>
|
||||||
|
<view class="know_thatV2" @tap="hideModalV2">取消</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
config: {
|
||||||
|
navigationBarTitleText: '关闭资料'
|
||||||
|
},
|
||||||
|
|
||||||
|
components: {},
|
||||||
|
data: {
|
||||||
|
throttling: true,
|
||||||
|
loaded: false,
|
||||||
|
init: false,
|
||||||
|
modalName: '',
|
||||||
|
content: '',
|
||||||
|
items: [],
|
||||||
|
value: '',
|
||||||
|
showSecondType: false, // 找到伴侣二次确认
|
||||||
|
selectId: 0
|
||||||
|
},
|
||||||
|
|
||||||
|
async onLoad(e) {
|
||||||
|
this.profileOptions()
|
||||||
|
setTimeout(() => {
|
||||||
|
this.init = true
|
||||||
|
}, 500)
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
},
|
||||||
|
|
||||||
|
onReachBottom() {
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
profileOptions () {
|
||||||
|
let that = this
|
||||||
|
that.$get({url: `${service.host}/setting/hidden/profile/options`}).then(({code, data}) => {
|
||||||
|
try {
|
||||||
|
data.forEach(item => {
|
||||||
|
item.checked = false
|
||||||
|
})
|
||||||
|
that.items = data
|
||||||
|
} catch (e) {}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
typing(type, e) {
|
||||||
|
this[type] = e.detail.value
|
||||||
|
console.log(this[type])
|
||||||
|
},
|
||||||
|
callPhone (phone) {
|
||||||
|
let vm = this
|
||||||
|
wx.makePhoneCall({
|
||||||
|
phoneNumber: phone,
|
||||||
|
success: function () {
|
||||||
|
vm.modalName = ''
|
||||||
|
wx.redirectTo({url: '/pages/users/logoutDefault'})
|
||||||
|
console.log('拨打电话成功!')
|
||||||
|
// resolve(res)
|
||||||
|
},
|
||||||
|
fail: function () {
|
||||||
|
console.log('拨打电话失败!')
|
||||||
|
vm.modalName = ''
|
||||||
|
wx.redirectTo({url: '/pages/users/logoutDefault'})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
hideModal1 () {
|
||||||
|
this.modalName = ''
|
||||||
|
console.log(this.showSecondType, '77777777777')
|
||||||
|
if (!this.showSecondType) {
|
||||||
|
wx.redirectTo({url: '/pages/users/logoutDefault'})
|
||||||
|
} else {
|
||||||
|
wx.redirectTo({url: '/pages/marriedPage/home'})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
hideModal () {
|
||||||
|
this.modalName = ''
|
||||||
|
wx.navigateBack({
|
||||||
|
back: 1
|
||||||
|
})
|
||||||
|
},
|
||||||
|
ShutDown() {
|
||||||
|
let vm = this
|
||||||
|
vm.showSecondType = false
|
||||||
|
if (!vm.value) {
|
||||||
|
vm.$showToast('请选择你想要关闭资料的原因')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (vm.value == '其它原因' && !vm.content) {
|
||||||
|
vm.$showToast('请输入其它原因')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (vm.value == '其它原因' && vm.content) {
|
||||||
|
vm.value = `其它原因:${vm.content}`
|
||||||
|
}
|
||||||
|
if (vm.value == '已经在福恋找到伴侣了' || vm.value == '通过其它方式找到伴侣了') {
|
||||||
|
vm.showSecondType = true
|
||||||
|
}
|
||||||
|
console.log(vm.value)
|
||||||
|
vm.modalName = 'Modal'
|
||||||
|
},
|
||||||
|
radioChange(text) {
|
||||||
|
let that = this
|
||||||
|
try {
|
||||||
|
that.value = text
|
||||||
|
that.items.forEach((item, index) => {
|
||||||
|
if (item.text == text) {
|
||||||
|
item.checked = true
|
||||||
|
that.selectId = item.id
|
||||||
|
} else {
|
||||||
|
item.checked = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} catch (e) {}
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
getLogout() {
|
||||||
|
let vm = this,
|
||||||
|
data = {
|
||||||
|
type: 'ALLSEX',
|
||||||
|
reason: vm.value
|
||||||
|
}
|
||||||
|
console.log(vm.value)
|
||||||
|
// if (vm.showSecondType) {
|
||||||
|
// return vm.modalName = 'secondType'
|
||||||
|
// }
|
||||||
|
if (vm.throttling) {
|
||||||
|
vm.throttling = false
|
||||||
|
vm.$post({url: `${service.host}/setting/hidden/profile`, data}).then(({code, res}) => {
|
||||||
|
if (vm.selectId == 1 || vm.selectId == 2) {
|
||||||
|
wx.vibrateLong({
|
||||||
|
success: () => {
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.modalName = 'Modal2'
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.modalName = 'Modal1'
|
||||||
|
}, 1600)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
wx.redirectTo({url: '/pages/users/logoutDefault'})
|
||||||
|
vm.throttling = true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getLogoutV2() {
|
||||||
|
let vm = this,
|
||||||
|
data = {
|
||||||
|
type: 'ALLSEX',
|
||||||
|
reason: vm.value,
|
||||||
|
convert_marriage: '1'
|
||||||
|
}
|
||||||
|
console.log(vm.value)
|
||||||
|
|
||||||
|
if (vm.throttling) {
|
||||||
|
vm.throttling = false
|
||||||
|
vm.$put({url: `${service.host}/setting/hidden/profile`, data}).then(({code, res}) => {
|
||||||
|
if (vm.selectId == 1 || vm.selectId == 2) {
|
||||||
|
wx.vibrateLong({
|
||||||
|
success: () => {
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.modalName = 'Modal2'
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.modalName = 'Modal1'
|
||||||
|
}, 1600)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
wx.redirectTo({url: '/pages/users/logoutDefault'})
|
||||||
|
vm.throttling = true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
hideModalV2 () {
|
||||||
|
let vm = this,
|
||||||
|
data = {
|
||||||
|
type: 'ALLSEX',
|
||||||
|
reason: vm.value
|
||||||
|
}
|
||||||
|
console.log(vm.value)
|
||||||
|
|
||||||
|
if (vm.throttling) {
|
||||||
|
vm.throttling = false
|
||||||
|
vm.$put({url: `${service.host}/setting/hidden/profile`, data}).then(({code, res}) => {
|
||||||
|
vm.showSecondType = false
|
||||||
|
if (vm.selectId == 1 || vm.selectId == 2) {
|
||||||
|
wx.vibrateLong({
|
||||||
|
success: () => {
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.modalName = 'Modal2'
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
vm.modalName = 'Modal1'
|
||||||
|
}, 1600)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
wx.redirectTo({url: '/pages/users/logoutDefault'})
|
||||||
|
vm.throttling = true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
|
||||||
|
page{
|
||||||
|
.container{
|
||||||
|
background:#fff;
|
||||||
|
}
|
||||||
|
.ui-logout-tip{
|
||||||
|
width: 100%;
|
||||||
|
padding: 12rpx 20rpx;
|
||||||
|
border: 2rpx solid #ffc780;
|
||||||
|
background: #fff4e6;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
//background: ;
|
||||||
|
}
|
||||||
|
background: white;
|
||||||
|
.audit_photo_box {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
.cancel_icon_box {
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
position: absolute;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
right: -4%;
|
||||||
|
top: 0rpx;
|
||||||
|
z-index: 2;
|
||||||
|
.cancel_icon {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
._bgModal1{
|
||||||
|
background-image: url("https://image.fulllinkai.com/202203/09/f500112df1961fe312cd707e4debbcc3.gif");
|
||||||
|
background-size: contain;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
width: 92%;
|
||||||
|
min-height: 600rpx;
|
||||||
|
}
|
||||||
|
._bgModal{
|
||||||
|
background-image: url("https://image.fulllinkai.com/202203/09/59b753f504fe91737952050744b5dd86.png");
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 800rpx;
|
||||||
|
._gif{
|
||||||
|
background-image: url("https://image.fulllinkai.com/202203/09/ba2331d0820651c13e9360485334f7b6.gif");
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
width: 220rpx;
|
||||||
|
min-height: 220rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 150rpx;
|
||||||
|
left: 7%;
|
||||||
|
}
|
||||||
|
._text{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 24%;
|
||||||
|
left: 1%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
._bgBtn{
|
||||||
|
width: 280rpx;
|
||||||
|
height: 86rpx;
|
||||||
|
//background: red;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 130rpx;
|
||||||
|
left: 32%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.wrapper{
|
||||||
|
padding: 30rpx;
|
||||||
|
.radio-group{
|
||||||
|
width: 100%;
|
||||||
|
.radio{
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.itemRadio{
|
||||||
|
transform: scale(.8);
|
||||||
|
}
|
||||||
|
._text{
|
||||||
|
margin-left: 6rpx;
|
||||||
|
margin-top: 4rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-box{
|
||||||
|
width:88%;
|
||||||
|
background: #ff5380;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
padding: 16rpx;
|
||||||
|
margin: 42rpx auto;
|
||||||
|
margin-bottom: -28rpx;
|
||||||
|
letter-spacing: 8rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.head{
|
||||||
|
padding-top: 22rpx;
|
||||||
|
}
|
||||||
|
.container{
|
||||||
|
margin-top: 12rpx;
|
||||||
|
.radio{
|
||||||
|
padding: 18rpx 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.closeBtn{
|
||||||
|
width: 220rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
margin: 32rpx auto;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.themes{
|
||||||
|
width: 636rpx;
|
||||||
|
margin-left: 50rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 16rpx 26rpx;
|
||||||
|
background: #f5f5f5;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
}
|
||||||
|
.textarea{
|
||||||
|
width: 100%;
|
||||||
|
height: 130rpx;
|
||||||
|
}
|
||||||
|
.sendButton{
|
||||||
|
width: 400rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
background: linear-gradient(90deg, #ff5380 0%, #ff85a5 100%);
|
||||||
|
color: #ffffff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin: 66rpx auto 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;
|
||||||
|
.prompt_icon{
|
||||||
|
width: 560rpx;
|
||||||
|
height: 320rpx;
|
||||||
|
display: block;
|
||||||
|
margin: 20rpx auto 2rpx auto;
|
||||||
|
}
|
||||||
|
.prompt_text{
|
||||||
|
padding-top: 40rpx;
|
||||||
|
margin: 0 36rpx;
|
||||||
|
}
|
||||||
|
.know_that_box{
|
||||||
|
margin: 60rpx 80rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.know_that, .know_thatV2{
|
||||||
|
width: 190rpx;
|
||||||
|
height: 66rpx;
|
||||||
|
background: #ff5380;
|
||||||
|
border-radius: 34rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 2rpx solid #FF5380;
|
||||||
|
}
|
||||||
|
.know_that{
|
||||||
|
color: #999999;
|
||||||
|
background: none;
|
||||||
|
border: 2rpx solid #D8D8D8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
118
src/pages/users/logoutDefault.wpy
Normal file
118
src/pages/users/logoutDefault.wpy
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <view class="cu-custom">-->
|
||||||
|
<!-- <view class="cu-bar fixed" style="height:{{CustomBar}}px;padding-top:{{StatusBar}}px;z-index: 999">-->
|
||||||
|
<!-- <view class="font_30 color-333" style="position: fixed;left: 50%;transform: translateX(-50%)">关闭资料</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<view style="height: {{navHeight}}px"></view>
|
||||||
|
<view class="wrapper font_28">
|
||||||
|
<image class="defaultIcon" src="https://images.ufutx.com/202105/31/39b80c3ff8563b9dcf5e20c07473f52a.png" mode="widthFix"></image>
|
||||||
|
<!-- <view class="color-999 font_32 text-center" style="margin: 0 50rpx 0rpx 50rpx"></view>-->
|
||||||
|
<view class="color-999 font_32 text-center" style="margin: 0 50rpx 48rpx 50rpx">你的资料处于关闭状态,无法查看其他内容,可重新开启资料(账号id:{{id}})</view>
|
||||||
|
<view class="openButton font_32" @tap="openData">打开资料</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
|
||||||
|
data: {
|
||||||
|
// StatusBar: wepy.$instance.globalData.StatusBar,
|
||||||
|
// CustomBar: wepy.$instance.globalData.CustomBar,
|
||||||
|
// Custom: wepy.$instance.globalData.Custom,
|
||||||
|
navHeight: '',
|
||||||
|
windowHeight: '',
|
||||||
|
id: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
async onLoad(e) {
|
||||||
|
if (wx.getStorageSync('UID')) {
|
||||||
|
this.id = wx.getStorageSync('UID')
|
||||||
|
this.$apply()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.id = wx.getStorageSync('user_id')
|
||||||
|
let menuButtonObject = wx.getMenuButtonBoundingClientRect()
|
||||||
|
wx.getSystemInfo({
|
||||||
|
success: res => {
|
||||||
|
let statusBarHeight = res.statusBarHeight,
|
||||||
|
navTop = menuButtonObject.top, // 胶囊按钮与顶部的距离
|
||||||
|
navHeight = statusBarHeight + menuButtonObject.height + (menuButtonObject.top - statusBarHeight) * 2 // 导航高度
|
||||||
|
this.navHeight = navHeight
|
||||||
|
this.windowHeight = res.windowHeight - (navHeight + 4)
|
||||||
|
},
|
||||||
|
fail() {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log(this.id)
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
let num = 1
|
||||||
|
num++
|
||||||
|
wx.setStorageSync('logoutCode', num)
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
},
|
||||||
|
|
||||||
|
onReachBottom() {
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
openData () {
|
||||||
|
let vm = this
|
||||||
|
this.$post({url: `${service.host}/setting/open/profile`, data: {type: 'NONE'}}).then(({code, data}) => {
|
||||||
|
vm.$showToast('已打开')
|
||||||
|
wx.removeStorageSync('logoutCode')
|
||||||
|
setTimeout(() => {
|
||||||
|
wx.switchTab({url: `/pages/tabBar/home`})
|
||||||
|
}, 1000)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
//@import "../../styles/weui/base/fn.wxss";
|
||||||
|
//@import "../../styles/custom/fn.less";
|
||||||
|
page{
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
.defaultIcon{
|
||||||
|
width: 440rpx;
|
||||||
|
height: 360rpx;
|
||||||
|
display: block;
|
||||||
|
margin: 12vh auto 0 auto;
|
||||||
|
}
|
||||||
|
.openButton{
|
||||||
|
width: 256rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
background: #ff5380;
|
||||||
|
border-radius: 36rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '关闭资料',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#ffffff',
|
||||||
|
backgroundColorBottom: '#ffffff',
|
||||||
|
usingComponents: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
464
src/pages/users/myCertification.wpy
Normal file
464
src/pages/users/myCertification.wpy
Normal file
@ -0,0 +1,464 @@
|
|||||||
|
<template>
|
||||||
|
<view class="initBox" v-if="init">
|
||||||
|
<view class="animation-slide-bottom">
|
||||||
|
<view class="certification_title font_28 text-center" style="color: #f33b6c">成为认证用户,即享一下特权</view>
|
||||||
|
<view class="privilege_prompt_box">
|
||||||
|
<view class="privilege_box text-center" v-for="privilegeList" key="index">
|
||||||
|
<image class="privilege_icon" src="{{item.icon}}" mode="widthFix"></image>
|
||||||
|
<view>{{item.name}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="certification_box" @tap="goto('0', '真人认证')">
|
||||||
|
<image class="certification_icon flo_l" src="https://image.fulllinkai.com/202202/23/93fcf55faef535c3c5a69474a5a111ad.png" mode="widthFix"></image>
|
||||||
|
<block v-if="!state">
|
||||||
|
<view class="certification_type flo_l">
|
||||||
|
<view class="font_32 color-333 bold" style="margin-bottom: 8rpx">实名+真人认证</view>
|
||||||
|
<view class="font_26 color-999">将与公安系统核验身份真实性</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="certification_type flo_l">
|
||||||
|
<view class="font_32 color-333 bold" style="margin-bottom: 8rpx">实名认证</view>
|
||||||
|
<view class="font_26 color-999">安全可靠、真实交友</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-if="!state">
|
||||||
|
<view class="certification_button flo_r">
|
||||||
|
<view class="jump_button text-center font_28" v-if="is_real_approved==0">去认证</view>
|
||||||
|
<block v-if="is_real_approved==-1">
|
||||||
|
<view class="jump_button text-center font_28" style="width: 152rpx">重新认证</view>
|
||||||
|
<image class="failure_icon" src="https://images.ufutx.com/202101/20/a42a33b3d6c901685adc8c2b8bedf7b4.png" mode="widthFix"></image>
|
||||||
|
</block>
|
||||||
|
<view class="audit_state_box">
|
||||||
|
<block v-if="is_real_approved==1">
|
||||||
|
<image class="audit_icon" style="height: 36rpx" src="https://images.ufutx.com/202101/20/33c86266373f9c9c9fcbf479a64b37c4.png" mode="widthFix"></image>
|
||||||
|
<span class="font_28" style="color: #40D863">已认证</span>
|
||||||
|
</block>
|
||||||
|
<block v-if="is_real_approved==2">
|
||||||
|
<image class="audit_icon" src="https://images.ufutx.com/202101/20/3be02213104c9adba8ae30feb779d873.png" mode="widthFix"></image>
|
||||||
|
<span class="font_28 color-999">审核中</span>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="certification_button flo_r">
|
||||||
|
<view class="jump_button text-center font_28" v-if="stateV2 == 0">去认证</view>
|
||||||
|
<view class="audit_state_box" v-if="stateV2 != 0">
|
||||||
|
<image class="audit_icon" src="https://images.ufutx.com/202101/20/3be02213104c9adba8ae30feb779d873.png" mode="widthFix"></image>
|
||||||
|
<span class="font_28 color-999">审核中</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<view class="certification_box" style="margin-top: -46rpx" @tap.stop="goto('/pages/users/degreeCertificate', '学历认证')">
|
||||||
|
<image class="certification_icon flo_l" src="https://image.fulllinkai.com/202202/23/48cc85974cc049a13c0d4359d401087f.png" mode="widthFix"></image>
|
||||||
|
<view class="certification_type flo_l">
|
||||||
|
<view class="font_32 color-333 bold" style="margin-bottom: 8rpx">学历认证</view>
|
||||||
|
<view class="font_26 color-999">将通过人工审核查询真伪</view>
|
||||||
|
</view>
|
||||||
|
<view class="certification_button flo_r">
|
||||||
|
<block v-if="is_educate_approved==0">
|
||||||
|
<view class="jump_button text-center font_28" style="width: 152rpx">重新认证</view>
|
||||||
|
<image class="failure_icon" src="https://images.ufutx.com/202101/20/a42a33b3d6c901685adc8c2b8bedf7b4.png" mode="widthFix"></image>
|
||||||
|
</block>
|
||||||
|
<view class="jump_button text-center font_28" v-if="is_educate_approved==3">去认证</view>
|
||||||
|
<view class="audit_state_box">
|
||||||
|
<block v-if="is_educate_approved==1">
|
||||||
|
<view class="up_certification">
|
||||||
|
<image class="audit_icon" style="height: 36rpx" src="https://images.ufutx.com/202101/20/33c86266373f9c9c9fcbf479a64b37c4.png" mode="widthFix"></image>
|
||||||
|
<span class="font_28" style="color: #40D863">已认证</span>
|
||||||
|
</view>
|
||||||
|
<view class="up_button text-center font_24" @tap.stop="goToUp('/pages/users/degreeCertificate?up=1', '学历认证')">升级学历</view>
|
||||||
|
</block>
|
||||||
|
<block v-if="is_educate_approved==2">
|
||||||
|
<image class="audit_icon" src="https://images.ufutx.com/202101/20/3be02213104c9adba8ae30feb779d873.png" mode="widthFix"></image>
|
||||||
|
<span class="font_28 color-999">审核中</span>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="font_24 color-999" style="margin: 0 30rpx;padding-top: 10rpx">
|
||||||
|
为了保证平台所有用户的真实性,需要验证身份信息;认证信息仅用于身份审核,不会对外泄露用户身份资料。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal {{modalName=='successfulModal'?'show':''}}">
|
||||||
|
<view class="successful_prompt_box">
|
||||||
|
<view style="padding: 60rpx 0 20rpx 0">
|
||||||
|
<image class="successful_pic" src="https://images.ufutx.com/202012/28/2168fa80aa80eb0f76ba71ac0e449c7e.png" mode="widthFix" ></image>
|
||||||
|
</view>
|
||||||
|
<view class="font_36 color-333 bold">资料正在审核中</view>
|
||||||
|
<view class="font_28 color-333 prompt_text">审核结果将在1~3个工作日内通知,请耐心等待;如有需要,请直接联系客服<span class="color-theme" @tap="callPhone('18922809346')">18194066804</span></view>
|
||||||
|
<view class="Know font_32" @tap="vanish">我知道了</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
import {service} from '../../config.js'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
navHeight: '',
|
||||||
|
routerNum: [],
|
||||||
|
mobile: '',
|
||||||
|
is_real_approved: 0, // 真人认证状态
|
||||||
|
is_educate_approved: 3, // 学历认证状态
|
||||||
|
modalName: '',
|
||||||
|
state: true,
|
||||||
|
stateV2: 0,
|
||||||
|
init: false,
|
||||||
|
privilegeList: [
|
||||||
|
{icon: 'https://images.ufutx.com/202101/20/40eeb312d982dac28d4fa863cbb84786.png', name: '安全保障'},
|
||||||
|
{icon: 'https://images.ufutx.com/202101/20/90acfb9fb48505d82261d4309d8c046a.png', name: '推荐曝光'},
|
||||||
|
{icon: 'https://images.ufutx.com/202101/20/fcf45afa1c0b666943655bcfafdbaae2.png', name: '优质匹配'}
|
||||||
|
],
|
||||||
|
tempId: [], // 模板id
|
||||||
|
system: wx.getStorageSync('system'),
|
||||||
|
approve_time: 0
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.$showLoading('加载中')
|
||||||
|
this.GetInit()
|
||||||
|
// this.routerNum = getCurrentPages()
|
||||||
|
if (wx.getStorageSync('certificationState')) {
|
||||||
|
this.stateV2 = wx.getStorageSync('certificationState')
|
||||||
|
}
|
||||||
|
// this.$parent.getTracker(this.$root.$name, '我的认证')
|
||||||
|
},
|
||||||
|
|
||||||
|
onShareAppMessage (res) {
|
||||||
|
let vm = this
|
||||||
|
let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let url = 'pages/tabBar/welcome?from_openid=' + wx.getStorageSync('openid') + '&from_user_id=' + fromUserID
|
||||||
|
console.log(url)
|
||||||
|
return {
|
||||||
|
title: '推荐福恋,婚恋家庭幸福平台',
|
||||||
|
path: url,
|
||||||
|
imageUrl: vm.invite_pic,
|
||||||
|
success: function (res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: function (res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(e) {
|
||||||
|
// this.getTempId()
|
||||||
|
let menuButtonObject = wx.getMenuButtonBoundingClientRect()
|
||||||
|
let info = wx.getSystemInfoSync()
|
||||||
|
wx.getSystemInfo({
|
||||||
|
success: res => {
|
||||||
|
let statusBarHeight = res.statusBarHeight,
|
||||||
|
navHeight = statusBarHeight + menuButtonObject.height + (menuButtonObject.top - statusBarHeight) * 2 // 导航高度
|
||||||
|
this.navHeight = navHeight
|
||||||
|
}
|
||||||
|
// fail(err) {
|
||||||
|
// }
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onPullDownRefresh() {
|
||||||
|
if (!this.state) {
|
||||||
|
this.initPageData()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
GetInit() {
|
||||||
|
let vm = this
|
||||||
|
this.$get({url: `${service.host}/audit/status`}).then(({code, data}) => {
|
||||||
|
vm.state = data.status
|
||||||
|
if (!vm.state) {
|
||||||
|
this.initPageData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 初始化页面数据
|
||||||
|
initPageData() {
|
||||||
|
this.$get({url: `${service.host}/user/approve/profile`}).then(({code, data}) => {
|
||||||
|
wx.hideLoading()
|
||||||
|
this.is_real_approved = data.is_real_approved
|
||||||
|
this.mobile = wx.getStorageSync('mobile')
|
||||||
|
this.init = true
|
||||||
|
this.is_educate_approved = data.is_educate_approved
|
||||||
|
this.approve_time = data.approve_time
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleBack() {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gotoRedirect (url) {
|
||||||
|
wx.redirectTo({url: url})
|
||||||
|
},
|
||||||
|
goto(url, text) {
|
||||||
|
let vm = this
|
||||||
|
console.log(this.mobile, 'url===')
|
||||||
|
if ((text == '真人认证' || text == '学历认证') && !this.mobile) {
|
||||||
|
wx.showModal({
|
||||||
|
title: '温馨提示',
|
||||||
|
content: '请先绑定手机号后再真人认证',
|
||||||
|
success(res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
vm.$goto('/pages/users/setTing')
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (text == '学历认证' && this.is_real_approved !== 1) {
|
||||||
|
this.$showToast('请先完成真人认证...')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (text == '真人认证' && this.state && this.stateV2) {
|
||||||
|
this.$showToast('正在审核中...')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (text == '真人认证' && this.is_real_approved == -1) {
|
||||||
|
wx.redirectTo({url: `/pages/users/artificial`})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (text == '真人认证' && this.state && !this.stateV2) {
|
||||||
|
this.$redirectTo('/pages/users/realName')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (text == '真人认证' && this.is_real_approved == 2) {
|
||||||
|
this.$showToast('正在审核中...')
|
||||||
|
// this.$redirectTo('/pages/users/artificial')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (text == '真人认证' && this.is_real_approved != 2) {
|
||||||
|
this.$redirectTo('/pages/users/realName')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (text == '学历认证' && this.is_educate_approved == 1) {
|
||||||
|
this.$redirectTo('/pages/users/degreeCertificate?typ=1')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.is_educate_approved == 0) {
|
||||||
|
wx.navigateTo({url: url + '?anew=0'})
|
||||||
|
} else if (this.is_educate_approved == 3) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
}
|
||||||
|
if (this.is_educate_approved == 2) {
|
||||||
|
this.modalName = 'successfulModal'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 跳转升级学历
|
||||||
|
goToUp(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
goToBack () {
|
||||||
|
this.$gotoBack(1)
|
||||||
|
},
|
||||||
|
vanish() {
|
||||||
|
this.modalName = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
//@import "../../styles/custom/fn.less";
|
||||||
|
//@import "../../styles/custom/reset.less";
|
||||||
|
page {
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
.initBox{
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
.returnIcon_1{
|
||||||
|
width: 14rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
margin-right: 22rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -6rpx;
|
||||||
|
}
|
||||||
|
.returnIcon_2{
|
||||||
|
width: 28rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -6rpx;
|
||||||
|
}
|
||||||
|
.home_icon{
|
||||||
|
width: 144rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 4rpx;
|
||||||
|
}
|
||||||
|
.titleContent{
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: calc(100% - 340rpx);
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
top: 0;
|
||||||
|
margin: auto;
|
||||||
|
height: 60rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
cursor: none;
|
||||||
|
pointer-events: none;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.certification_title{
|
||||||
|
padding-top: 50rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.certification_title::after, .certification_title::before{
|
||||||
|
position: absolute;
|
||||||
|
width: 110rpx;
|
||||||
|
height: 4rpx;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
content: '';
|
||||||
|
top: 70rpx;
|
||||||
|
}
|
||||||
|
.certification_title::after{
|
||||||
|
background: linear-gradient(to right, #ff5380 0%, #ffffff 100%);
|
||||||
|
right: 56rpx;
|
||||||
|
}
|
||||||
|
.certification_title::before{
|
||||||
|
background: linear-gradient(to right, #ffffff 0%, #ff5380 100%);
|
||||||
|
left: 56rpx;
|
||||||
|
}
|
||||||
|
.privilege_prompt_box{
|
||||||
|
padding-top: 50rpx;
|
||||||
|
padding-bottom: 34rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.privilege_box{
|
||||||
|
width: 33.3%;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
.privilege_icon{
|
||||||
|
width: 74rpx;
|
||||||
|
height: 74rpx;
|
||||||
|
margin: 0 auto 20rpx auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.privilege_prompt_box:after {
|
||||||
|
content: "";
|
||||||
|
flex: auto;
|
||||||
|
}
|
||||||
|
.certification_box{
|
||||||
|
width: 100vw;
|
||||||
|
height: 260rpx;
|
||||||
|
background-image: url("https://images.ufutx.com/202101/20/2720e5102b876ede32155ca691b68da6.png");
|
||||||
|
background-size: cover;
|
||||||
|
overflow: hidden;
|
||||||
|
.certification_icon{
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
margin-left: 60rpx;
|
||||||
|
margin-top: 76rpx;
|
||||||
|
}
|
||||||
|
.certification_type{
|
||||||
|
margin-top: 80rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
.certification_button{
|
||||||
|
margin-top: 106rpx;
|
||||||
|
margin-right: 60rpx;
|
||||||
|
position: relative;
|
||||||
|
.jump_button, .up_button{
|
||||||
|
width: 132rpx;
|
||||||
|
height: 52rpx;
|
||||||
|
line-height: 52rpx;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
background: #ff5380;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
.up_certification{
|
||||||
|
margin-top: -30rpx;
|
||||||
|
}
|
||||||
|
.up_button{
|
||||||
|
position: relative;
|
||||||
|
z-index: 2222;
|
||||||
|
margin-top: 12rpx;
|
||||||
|
}
|
||||||
|
.failure_icon{
|
||||||
|
position: absolute;
|
||||||
|
width: 162rpx;
|
||||||
|
height: 74rpx;
|
||||||
|
right: 0;
|
||||||
|
top: 48rpx;
|
||||||
|
}
|
||||||
|
.audit_state_box{
|
||||||
|
.audit_icon{
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -6rpx;
|
||||||
|
margin-right: 6rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.successful_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;
|
||||||
|
padding-bottom: 46rpx;
|
||||||
|
.successful_pic{
|
||||||
|
width: 180rpx;
|
||||||
|
height: 180rpx;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.prompt_text{
|
||||||
|
padding: 48rpx 0 36rpx 0;
|
||||||
|
margin: 0 32rpx;
|
||||||
|
}
|
||||||
|
.Know{
|
||||||
|
width: 280rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
border-radius: 80rpx;
|
||||||
|
background: #ff5380;
|
||||||
|
color: #ffffff;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '我的认证',
|
||||||
|
enablePullDownRefresh: true,
|
||||||
|
backgroundColorTop: '#ffffff',
|
||||||
|
backgroundColorBottom: '#ffffff',
|
||||||
|
usingComponents: {
|
||||||
|
cuCustom: '~@/components/cuCustom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
219
src/pages/users/myDynamic.wpy
Normal file
219
src/pages/users/myDynamic.wpy
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
<template>
|
||||||
|
<view class="myDynamic" style="height: 100vh;">
|
||||||
|
<scroll-view scroll-y refresher-enabled="{{true}}" style="height: 100vh;" refresher-triggered="{{triggered}}" bindrefresherpulling="onPulling" bindrefresherrefresh="onRefresh" bindscrolltolower="handleScroll" lower-threshold="50">
|
||||||
|
<!-- <dynamicList ref="dynamicList" :dataList.sync="list" :gifurl.sync="gifurl" :_index.sync="_index" :modalName.sync="modalName" :del.sync="del"></dynamicList>-->
|
||||||
|
<view v-if="hideMessage" class="text-center">
|
||||||
|
<view class="font_28 m_empty">
|
||||||
|
<image src="https://images.ufutx.com/202106/18/c0a2445b889165f29c14ff13a5eaa752.png" mode="aspectFit"></image>
|
||||||
|
<view class="font_28 color999 text-center">暂无内容~</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="noMoreShow" style="padding: 20rpx 0 30rpx;" class="text-center">没有更多数据了</view>
|
||||||
|
</scroll-view>
|
||||||
|
<view class="cu-modal bottom-modal {{modalName=='delete'?'show':''}}" @tap="hideModal">
|
||||||
|
<view class="cu-dialog dialog" style="border-radius: 30rpx 30rpx 0rpx 0rpx;padding-bottom: 50rpx;">
|
||||||
|
<view @tap="deleteV2">删除</view>
|
||||||
|
<view @tap="conceal" v-if="admin == 1">隐藏动态</view>
|
||||||
|
<view @tap="hotdt" v-if="admin == 1">设置为热门动态</view>
|
||||||
|
<view @tap="hideModal">取消</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
import utils from '../../utils/util'
|
||||||
|
// import ShareMessage from '../../mixins/ShareMessage'
|
||||||
|
// import dynamicList from '../../components/dynamicList'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
list: [],
|
||||||
|
user_id: '',
|
||||||
|
token: '',
|
||||||
|
gifurl: 'https://images.ufutx.com/202106/11/54f9a1a03d1575597c94de63caebde8c.gif',
|
||||||
|
_index: -1,
|
||||||
|
hideMessage: false,
|
||||||
|
noMoreShow: false,
|
||||||
|
triggered: false,
|
||||||
|
collectionMessage: false,
|
||||||
|
page: 1,
|
||||||
|
modalName: '',
|
||||||
|
del: '',
|
||||||
|
dynamicList: null
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {},
|
||||||
|
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
async onLoad(e) {
|
||||||
|
this.token = wx.getStorageSync('token')
|
||||||
|
this.user_id = wx.getStorageSync('user_id')
|
||||||
|
if (this.token) {
|
||||||
|
this.getPageData()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
onPulling() {
|
||||||
|
this.triggered = true
|
||||||
|
},
|
||||||
|
|
||||||
|
onRefresh() {
|
||||||
|
this.collectionMessage = false
|
||||||
|
this.noMoreShow = false
|
||||||
|
this.hideMessage = false
|
||||||
|
this.list = []
|
||||||
|
this.page = 1
|
||||||
|
this.getPageData()
|
||||||
|
},
|
||||||
|
|
||||||
|
handleScroll() {
|
||||||
|
if (this.collectionMessage) return
|
||||||
|
this.page += 1
|
||||||
|
this.getPageData()
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
this.getPageData()
|
||||||
|
},
|
||||||
|
|
||||||
|
onReachBottom() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 初始化页面数据
|
||||||
|
getPageData() {
|
||||||
|
let _this = this
|
||||||
|
_this.$get({
|
||||||
|
url: `${service.moments}`,
|
||||||
|
data: {
|
||||||
|
page: _this.page,
|
||||||
|
user_id: _this.user_id
|
||||||
|
}
|
||||||
|
}).then(({code, data}) => {
|
||||||
|
_this.triggered = false
|
||||||
|
if (data.data.length == 0 && _this.page == 1) {
|
||||||
|
_this.hideMessage = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (data.data.length == 0 && _this.page != 1) {
|
||||||
|
_this.noMoreShow = true
|
||||||
|
_this.collectionMessage = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (_this.list.length != 0 && _this.page == 1) return
|
||||||
|
data.data.forEach((ele, index) => {
|
||||||
|
let phs = ele.photos
|
||||||
|
ele.created_at = utils.commentTimeHandle(ele.created_at)
|
||||||
|
let sty = typeof (ele.photos)
|
||||||
|
if (sty == 'string') {
|
||||||
|
ele.photos = JSON.parse(ele.photos)
|
||||||
|
}
|
||||||
|
if (ele.is_audited == 0 && ele.is_self == 0) {
|
||||||
|
data.data.splice(index--, 1)
|
||||||
|
} else if (ele.is_audited == -1 && ele.is_self == 0) {
|
||||||
|
data.data.splice(index--, 1)
|
||||||
|
}
|
||||||
|
for (var i = 0; i < ele.photos.length; i++) {
|
||||||
|
ele.photos[i] = ele.photos[i].replace(/\(/g, '%28').replace(/\)/g, '%29').replace(' ', '%20')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
_this.list = [..._this.list, ...data.data]
|
||||||
|
this.$refs.dynamicList.textAll
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deleteV2() {
|
||||||
|
let vm = this
|
||||||
|
let url = `${service.moments}` + '/' + this.del
|
||||||
|
vm.$showLoading('加载中')
|
||||||
|
vm.$delete({
|
||||||
|
url: url,
|
||||||
|
headers: {
|
||||||
|
'content-type': 'application/x-www-form-urlencoded'
|
||||||
|
}
|
||||||
|
}).then(({
|
||||||
|
code,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
vm.getPageData()
|
||||||
|
try {
|
||||||
|
vm.list.forEach((item, index) => {
|
||||||
|
if (item.id == vm.del) {
|
||||||
|
vm.list.splice(index, 1)
|
||||||
|
if (vm.list.length == 0) {
|
||||||
|
vm.hideMessage = true
|
||||||
|
vm.noMoreShow = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} catch (e) {}
|
||||||
|
vm.modalName = null
|
||||||
|
wx.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
hideModal(e) {
|
||||||
|
this.modalName = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
page {
|
||||||
|
background-color: white;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
.myDynamic {
|
||||||
|
.margin-right {
|
||||||
|
margin-right: 50rpx;
|
||||||
|
}
|
||||||
|
.dialog {
|
||||||
|
width: 100%;
|
||||||
|
background: white;
|
||||||
|
height: auto;
|
||||||
|
z-index: 1111;
|
||||||
|
view {
|
||||||
|
height: 90rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 100rpx;
|
||||||
|
margin: 0 30rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
view:last-of-type {
|
||||||
|
border-top: 1rpx solid #f5f5f5;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_empty {
|
||||||
|
padding-top: 180rpx;
|
||||||
|
image {
|
||||||
|
width: 440rpx;
|
||||||
|
height: 360rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '我的发布',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
<!-- dynamicList: '~@/components/dynamicList',-->
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
440
src/pages/users/myOrderList.wpy
Normal file
440
src/pages/users/myOrderList.wpy
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
<template>
|
||||||
|
<view class="myOrderList">
|
||||||
|
<view style="background:#f8f8f8;height:{{windowHeight}}px;">
|
||||||
|
<cuCustom :bgColor="bgVip" isCustom="{{true}}">
|
||||||
|
<view slot="backText">返回</view>
|
||||||
|
<view slot="content">我的订单</view>
|
||||||
|
</cuCustom>
|
||||||
|
|
||||||
|
<view style="height: {{currentTab != 0 ? 160 : 100}}rpx"></view>
|
||||||
|
|
||||||
|
<scroll-view scroll-top="{{vipTopHandle}}" scroll-with-animation="true" scroll-anchoring="{{true}}" refresher-enabled="{{true}}" refresher-triggered="{{triggeredsService}}" bindrefresherpulling="vipPulling" bindrefresherrefresh="onPullDownRefresh" scroll-y="true" style="-webkit-overflow-scrolling: touch;height: 100%;" lower-threshold="50" bindscrolltolower="onReachBottom" bindscroll="serviceToupper">
|
||||||
|
<view class="m_vip">
|
||||||
|
<view class="tradeInfo ff" v-for="(item,index) in vipList" :key="index">
|
||||||
|
<view class="font_26 color-666" style="padding-bottom: 20rpx">订单号:{{item.trade_no}}</view>
|
||||||
|
<view class="f-fc" style="height: 168rpx;position: relative">
|
||||||
|
<image :src="item.pic" mode="aspectFill" class="posterImage flo_l"></image>
|
||||||
|
<view class="f-fdc f-fbc" style="flex: 1;align-items: flex-start;height: 100%;">
|
||||||
|
<view>
|
||||||
|
<view class="font_28 flo_l color-333 ellipsis_2 bold" style="width: 326rpx;word-break: break-all;line-height: 38rpx">{{ item.goods }}</view>
|
||||||
|
<view class="font_24 color-666 ellipsis_1" style="width: 326rpx;padding-top: 4rpx">规格:{{item.rank_name}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="fong_28 color-theme bold">¥{{item.price}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="viewOrderBtn f-fcc font_26" @tap="goto('/pages/users/orderDetails?trade_no={{item.trade_no}}')">查看订单</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="hideMessage" class="text-center">
|
||||||
|
<view class="font_28 m_empty">
|
||||||
|
<image src="https://images.ufutx.com/202107/02/b52c6594433d522ad6eab829cc64e107.png" mode="aspectFit"></image>
|
||||||
|
<view class="font_32 color999 text-center f-fcc" style="margin-top: -52rpx;position: relative;z-index: 9;">暂无会员订单,去<text class="" style="color: #FF5380;line-height: 46rpx;" @tap="toRet">购买会员</text></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="noMoreShow" style="padding-bottom: 20rpx;padding-top: 20rpx;" class="text-center">没有更多数据了</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="m_returnTop {{vipTatus?'show':'hide'}}" v-if="currentTab == 0">
|
||||||
|
<image class="u_returnTop_img" bindtap="vipToReturnTop" src="https://images.ufutx.com/202106/23/f0d10551dc5d3399cc7f15805cf04f4f.png" mode="scaleToFill" lazy-load="false"></image>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
|
||||||
|
data: {
|
||||||
|
user: {},
|
||||||
|
type: 'rank',
|
||||||
|
nickName: '加载中...',
|
||||||
|
vipList: [],
|
||||||
|
hide: true,
|
||||||
|
noMore: false,
|
||||||
|
vipPage: 1,
|
||||||
|
loading: false,
|
||||||
|
hideMessage: false,
|
||||||
|
noMoreShow: false,
|
||||||
|
collectionMessage: false,
|
||||||
|
init: false,
|
||||||
|
windowHeight: '',
|
||||||
|
currentTab: 0,
|
||||||
|
_st: '',
|
||||||
|
triggeredsService: false,
|
||||||
|
vipTatus: false,
|
||||||
|
triggered: false,
|
||||||
|
floorstatus: false,
|
||||||
|
vipTopHandle: -1,
|
||||||
|
system: '',
|
||||||
|
bgVip: 'background: #333333;\ncolor: white'
|
||||||
|
},
|
||||||
|
|
||||||
|
// computed: {
|
||||||
|
// nickName () {
|
||||||
|
// // return (user && user.wechat && user.wechat.nickname) ? user.wechat.nickname : '未授权用户'
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
|
||||||
|
onShow () {
|
||||||
|
// 初始化页面数据
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad () {
|
||||||
|
let that = this
|
||||||
|
this.$showLoading('加载中')
|
||||||
|
this.vipData()
|
||||||
|
|
||||||
|
// let menuButtonObject = wx.getMenuButtonBoundingClientRect()
|
||||||
|
// wx.getSystemInfo({
|
||||||
|
// success: res => {
|
||||||
|
// let statusBarHeight = res.statusBarHeight,
|
||||||
|
// navTop = menuButtonObject.top, // 胶囊按钮与顶部的距离
|
||||||
|
// navHeight = statusBarHeight + menuButtonObject.height + (menuButtonObject.top - statusBarHeight) * 2 // 导航高度
|
||||||
|
// that.windowHeight = res.windowHeight - (navHeight + 54)
|
||||||
|
// console.log(res, 'd===')
|
||||||
|
// that.system = res.system.split(' ')[0]
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh () {
|
||||||
|
this.collectionMessage = false
|
||||||
|
this.noMoreShow = false
|
||||||
|
this.vipList = []
|
||||||
|
this.vipPage = 1
|
||||||
|
this.vipData()
|
||||||
|
},
|
||||||
|
|
||||||
|
onReachBottom () {
|
||||||
|
if (this.collectionMessage) return
|
||||||
|
this.vipPage += 1
|
||||||
|
this.vipData()
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
serviceToupper(e) {
|
||||||
|
clearTimeout(this._st)
|
||||||
|
this._st = setTimeout(() => {
|
||||||
|
console.log(e)
|
||||||
|
if (e.$wx.detail.scrollTop > 380) {
|
||||||
|
this.vipTatus = true
|
||||||
|
} else {
|
||||||
|
this.vipTatus = false
|
||||||
|
}
|
||||||
|
}, 200)
|
||||||
|
},
|
||||||
|
|
||||||
|
scrolltoupper(e) {
|
||||||
|
clearTimeout(this._st)
|
||||||
|
this._st = setTimeout(() => {
|
||||||
|
console.log(e)
|
||||||
|
if (e.$wx.detail.scrollTop > 380) {
|
||||||
|
this.floorstatus = true
|
||||||
|
} else {
|
||||||
|
this.floorstatus = false
|
||||||
|
}
|
||||||
|
}, 200)
|
||||||
|
},
|
||||||
|
vipPulling() {
|
||||||
|
this.triggeredsService = true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 会员列表
|
||||||
|
vipData () {
|
||||||
|
let _this = this,
|
||||||
|
data = {
|
||||||
|
page: _this.vipPage,
|
||||||
|
type: 'rank'
|
||||||
|
}
|
||||||
|
_this.loading = true
|
||||||
|
this.$get({url: `${service.host}/order/rank/list`, data}).then(({code, data}) => {
|
||||||
|
_this.triggeredsService = false
|
||||||
|
console.log(data, 'data===')
|
||||||
|
if (!data.data || (data.data.length == 0 && _this.vipPage == 1)) {
|
||||||
|
_this.hideMessage = true
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
_this.hideMessage = false
|
||||||
|
}
|
||||||
|
if (data.data.length == 0 && _this.vipPage != 1) {
|
||||||
|
_this.noMoreShow = true
|
||||||
|
_this.collectionMessage = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (_this.vipList.length != 0 && _this.vipPage == 1) return
|
||||||
|
_this.vipList = [..._this.vipList, ...data.data]
|
||||||
|
wx.hideLoading()
|
||||||
|
}).finally(() => {
|
||||||
|
_this.loaded = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
onPulling() {
|
||||||
|
this.triggered = true
|
||||||
|
},
|
||||||
|
|
||||||
|
copyFn(data) {
|
||||||
|
let vm = this
|
||||||
|
wx.setClipboardData({
|
||||||
|
data: data,
|
||||||
|
success(res) {
|
||||||
|
vm.$showToast('已复制订单号')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
goto (url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
|
||||||
|
vipToReturnTop(e) {
|
||||||
|
this.vipTopHandle = Math.random()
|
||||||
|
this.vipTatus = false
|
||||||
|
},
|
||||||
|
toRet () {
|
||||||
|
console.log('2222222222222')
|
||||||
|
if (this.system == 'iOS') {
|
||||||
|
this.$redirectTo(`/pages/users/upgradeVIP2`)
|
||||||
|
} else {
|
||||||
|
this.$redirectTo(`/pages/users/upgradeVIP`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
|
||||||
|
page{
|
||||||
|
background: #f8f8f8;
|
||||||
|
}
|
||||||
|
.mainTab{
|
||||||
|
width: 100%;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 999;
|
||||||
|
.itemText {
|
||||||
|
width: 33%;
|
||||||
|
margin: 26rpx 0;
|
||||||
|
position: relative;
|
||||||
|
.ui-order-dot{
|
||||||
|
height: 32rpx;
|
||||||
|
line-height: 34rpx;
|
||||||
|
padding: 0 12rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
background: #F86868;
|
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||||||
|
font-size: 18rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 36rpx;
|
||||||
|
top: -14rpx;
|
||||||
|
z-index: 99;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.active{
|
||||||
|
font-size: 28rpx;
|
||||||
|
&:before{
|
||||||
|
content: " ";
|
||||||
|
position: absolute;
|
||||||
|
bottom: -12rpx;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
left: 50%;
|
||||||
|
height: 8rpx;
|
||||||
|
width: 48rpx;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
background: #FF81A2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_empty {
|
||||||
|
padding-top: 180rpx;
|
||||||
|
image {
|
||||||
|
width: 440rpx;
|
||||||
|
height: 360rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.myOrderList {
|
||||||
|
.m_vip {
|
||||||
|
padding: 20rpx 30rpx 30rpx;
|
||||||
|
.tradeInfo {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 24rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
box-shadow: 1rpx 1rpx 18rpx #ededed;
|
||||||
|
overflow: auto;
|
||||||
|
.spellGroupIcon{
|
||||||
|
width: 64rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-bottom: -4rpx;
|
||||||
|
}
|
||||||
|
.posterImage {
|
||||||
|
width: 296rpx;
|
||||||
|
height: 168rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
.viewOrderBtn{
|
||||||
|
position: absolute;
|
||||||
|
right: -4rpx;
|
||||||
|
bottom: -6rpx;
|
||||||
|
width: 144rpx;
|
||||||
|
height: 52rpx;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
color: #619eff;
|
||||||
|
border: 2rpx solid #BCD6FF;
|
||||||
|
}
|
||||||
|
.viewPayBtn{
|
||||||
|
position: absolute;
|
||||||
|
right: -4rpx;
|
||||||
|
bottom: -6rpx;
|
||||||
|
width: 144rpx;
|
||||||
|
height: 52rpx;
|
||||||
|
color: #ffffff;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
}
|
||||||
|
//.viewOrderBox{
|
||||||
|
// display: flex;
|
||||||
|
// justify-content: right;
|
||||||
|
// align-items: center;
|
||||||
|
// .OnceAgainBtn, .viewOrderBtn{
|
||||||
|
// width: 144rpx;
|
||||||
|
// height: 52rpx;
|
||||||
|
// border-radius: 26rpx;
|
||||||
|
// }
|
||||||
|
// .OnceAgainBtn{
|
||||||
|
// margin-right: 20rpx;
|
||||||
|
// border: 2rpx solid #D8D8D8;
|
||||||
|
// }
|
||||||
|
// .viewOrderBtn{
|
||||||
|
// color: #619eff;
|
||||||
|
// border: 2rpx solid #BCD6FF;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_returnTop {
|
||||||
|
position: fixed;
|
||||||
|
right: 36rpx;
|
||||||
|
bottom: 140rpx;
|
||||||
|
-webkit-transition: opacity 1s;
|
||||||
|
transition: opacity 1s;
|
||||||
|
z-index: 9999;
|
||||||
|
.u_returnTop_img {
|
||||||
|
width: 92rpx;
|
||||||
|
height: 92rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 12rpx 6rpx rgba(0, 0, 0, .06);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_returnTop.show {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
.m_returnTop.hide {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
.ui-tabs{
|
||||||
|
position: relative;
|
||||||
|
margin: 10rpx 60rpx 30rpx;
|
||||||
|
width: 630rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
}
|
||||||
|
.ui-tabs-one{
|
||||||
|
width: 316rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 60rpx;
|
||||||
|
}
|
||||||
|
.ui-pay-select{
|
||||||
|
//position: absolute;
|
||||||
|
//top:0;
|
||||||
|
//left: 0;
|
||||||
|
width: 316rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
color:#ffffff;
|
||||||
|
background: #FF5380;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
}
|
||||||
|
.ui-pay-select-l{
|
||||||
|
margin-right: 118rpx;
|
||||||
|
}
|
||||||
|
.ui-pay-select-r{
|
||||||
|
margin-left: 118rpx;
|
||||||
|
}
|
||||||
|
.ui-np-btn{
|
||||||
|
margin-top: 24rpx;
|
||||||
|
}
|
||||||
|
.ui-np-btn-m{
|
||||||
|
width: 144rpx;
|
||||||
|
height: 52rpx;
|
||||||
|
line-height: 52rpx;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.ui-np-left{
|
||||||
|
|
||||||
|
color: #666666;
|
||||||
|
border: 2rpx solid #D8D8D8;
|
||||||
|
}
|
||||||
|
.ui-np-right{
|
||||||
|
margin-left: 24rpx;
|
||||||
|
color: #F33B6C;
|
||||||
|
border: 2rpx solid #FFA9C0;
|
||||||
|
}
|
||||||
|
.ui-quit-box{
|
||||||
|
position: relative;
|
||||||
|
width: 600rpx;
|
||||||
|
height: 334rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
.ui-quit-title{
|
||||||
|
margin-top: 92rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.ui-quit-btn-list{
|
||||||
|
margin: 80rpx 76rpx 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.ui-quit-btn{
|
||||||
|
width: 192rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
line-height: 68rpx;
|
||||||
|
border-radius: 34rpx;
|
||||||
|
}
|
||||||
|
.ui-quit-btn-close{
|
||||||
|
border: 1px solid #D8D8D8;
|
||||||
|
}
|
||||||
|
.ui-quit-btn-submit{
|
||||||
|
background: linear-gradient(to right,#FF5380 0%,#FF85A5 100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '我的订单',
|
||||||
|
navigationStyle: 'custom',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
cuCustom: '~@/components/cu-custom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
194
src/pages/users/orderDetails.wpy
Normal file
194
src/pages/users/orderDetails.wpy
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
<view class="orderDetails">
|
||||||
|
<view class="tradeInfo ff">
|
||||||
|
<view class="font_26 color-666" style="padding-bottom: 20rpx">订单号:{{orderData.trade_no}}</view>
|
||||||
|
<view class="f-fc" style="height: 168rpx;">
|
||||||
|
<image src="{{orderData.pic}}" mode="aspectFill" class="posterImage flo_l"></image>
|
||||||
|
<view class="f-fdc f-fbc" style="flex: 1;align-items: flex-start;height: 100%;">
|
||||||
|
<view>
|
||||||
|
<view class="font_28 flo_l color-333 ellipsis_2 bold" style="width: 326rpx;word-break: break-all;line-height: 38rpx">
|
||||||
|
<image src="https://image.fulllinkai.com/202205/23/631d937276380af19ec646cf7563a64a.png" mode="widthFix" class="spellGroupIcon" v-if="orderData.is_group_order == 1"></image>
|
||||||
|
{{ orderData.title }}
|
||||||
|
</view>
|
||||||
|
<view class="font_24 color-666 ellipsis_1" style="width: 326rpx;padding-top: 4rpx">规格:{{orderData.sku}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="fong_28 color-theme bold">¥{{orderData.price}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="m_ord_ct">
|
||||||
|
<view class="font_32 color-333 bold">订单信息</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="u_ordCt_tt font_32 color-999">当前状态</view>
|
||||||
|
<view class="font_32 color-333">{{ orderData.pay_status != 'PAID'? orderData.is_expire == '0' ? '未支付': '已过期':'支付成功' }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="f-fc" v-if="orderData.pay_status == 'PAID'">
|
||||||
|
<view class="u_ordCt_tt font_32 color-999">支付方式</view>
|
||||||
|
<view class="font_32 color-333">{{orderData.show_pay_type}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="u_ordCt_tt font_32 color-999">订单时间</view>
|
||||||
|
<view class="font_32 color-333">{{orderData.updated_at}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="u_ordCt_tt font_32 color-999">订单编号</view>
|
||||||
|
<view class="font_32 color-333">{{orderData.trade_no}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
trade_no: '',
|
||||||
|
order_type: '',
|
||||||
|
orderData: {},
|
||||||
|
modalName: ''
|
||||||
|
},
|
||||||
|
|
||||||
|
async onLoad(e) {
|
||||||
|
this.trade_no = e.trade_no
|
||||||
|
this.order_type = e.order_type
|
||||||
|
this.getTradeNo()
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
getTradeNo() {
|
||||||
|
var data = {
|
||||||
|
order_type: this.order_type
|
||||||
|
}
|
||||||
|
this.$showLoading('加载中')
|
||||||
|
this.$get({url: `${service.host}/activity/order/by/no/${this.trade_no}`, data}).then(({code, data}) => {
|
||||||
|
console.log(data)
|
||||||
|
this.orderData = data
|
||||||
|
wx.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
page {
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
}
|
||||||
|
.orderDetails {
|
||||||
|
padding: 30rpx 30rpx 0 30rpx;
|
||||||
|
.tradeInfo {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 24rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
box-shadow: 1rpx 1rpx 18rpx #ededed;
|
||||||
|
overflow: auto;
|
||||||
|
.spellGroupIcon{
|
||||||
|
width: 64rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-bottom: -4rpx;
|
||||||
|
}
|
||||||
|
.posterImage {
|
||||||
|
width: 296rpx;
|
||||||
|
height: 168rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_ord_ct {
|
||||||
|
padding: 36rpx 30rpx 0 30rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
.u_ordCt_tt {
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
>view {
|
||||||
|
padding-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
.u_copy {
|
||||||
|
padding: 0rpx 14rpx;
|
||||||
|
border-radius: 100rpx;
|
||||||
|
border: 2rpx solid #D8D8D8;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ui-np-box{
|
||||||
|
margin: 100rpx 56rpx;
|
||||||
|
.ui-np-buy{
|
||||||
|
color: #ffffff;
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
}
|
||||||
|
.ui-np-close{
|
||||||
|
margin-top: 30rpx;
|
||||||
|
color: #666666;
|
||||||
|
border:2rpx solid #D8D8D8;
|
||||||
|
}
|
||||||
|
.ui-np-btn{
|
||||||
|
width: 580rpx;
|
||||||
|
height: 84rpx;
|
||||||
|
line-height: 84rpx;
|
||||||
|
border-radius: 44rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ui-quit-box{
|
||||||
|
position: relative;
|
||||||
|
width: 600rpx;
|
||||||
|
height: 334rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
.ui-quit-title{
|
||||||
|
margin-top: 92rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.ui-quit-btn-list{
|
||||||
|
margin: 80rpx 76rpx 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.ui-quit-btn{
|
||||||
|
width: 192rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
line-height: 68rpx;
|
||||||
|
border-radius: 34rpx;
|
||||||
|
}
|
||||||
|
.ui-quit-btn-close{
|
||||||
|
border: 1px solid #D8D8D8;
|
||||||
|
}
|
||||||
|
.ui-quit-btn-submit{
|
||||||
|
background: linear-gradient(to right,#FF5380 0%,#FF85A5 100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '订单详情',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
723
src/pages/users/realName.wpy
Normal file
723
src/pages/users/realName.wpy
Normal file
@ -0,0 +1,723 @@
|
|||||||
|
<template>
|
||||||
|
<view class="init_box" v-if="init">
|
||||||
|
<view class="page-user">
|
||||||
|
<view class="mainText animation-slide-top">
|
||||||
|
<view class="text">
|
||||||
|
<view class="font_30 bold color-333">为什么要认证?</view>
|
||||||
|
<view class="font_26 color-666">为了给大家创造一个真实安全优质的单身交友平台,每一个人都需要完成实名认证!</view>
|
||||||
|
</view>
|
||||||
|
<view class="text">
|
||||||
|
<view class="font_30 bold color-333">100%隐私安全</view>
|
||||||
|
<view class="font_26 color-666">认证信息仅用于官方审核,无需担心信息泄露,实名认证对接网易云,安全可靠</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<block v-if="user">
|
||||||
|
<view v-if="user.is_real_approved == 1 && !state">
|
||||||
|
<view class="mainBox animation-slide-top" style="animation-delay: 0.1s;">
|
||||||
|
<view class="text">
|
||||||
|
<view class="font_28 bold color-333">{{user.name}}</view>
|
||||||
|
<view class="font_28 bold color-333">{{user.new_card_num}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="page-user" style="padding: 0" v-else>
|
||||||
|
<view class="page-box text-center">
|
||||||
|
<view class="inputBox animation-slide-top" style="animation-delay: 0.1s;">
|
||||||
|
<view class="font_28 textStyle bold" style="color: #f33b63">姓名</view>
|
||||||
|
<input v-model="card.name" type="text" class="inputStyle font_30" placeholder="请填写你的真实姓名" />
|
||||||
|
</view>
|
||||||
|
<view class="inputBox color-333 animation-slide-top" style="animation-delay: 0.2s;">
|
||||||
|
<view class="font_28 textStyle bold" style="color: #f33b63">身份证号码</view>
|
||||||
|
<input v-model="card.new_card_num" type="idcard" class="inputStyle font_30" placeholder="请填写你的身份证号码" />
|
||||||
|
</view>
|
||||||
|
<button class="btn service font_28" style="color: #b8b8b8;" @tap.stop="handleContact">遇到问题?</button>
|
||||||
|
<block v-if="!state">
|
||||||
|
<view class="_listItem animation-slide-top noBorder" style="animation-delay: 0.3s;margin-top: 100rpx;">
|
||||||
|
<button class="btn text-center font_30 btn-box white radius shadow bg-blue margin-top bold" @tap="approve">下一步</button>
|
||||||
|
<view v-if="user.approve_num >= 3" class="font_30" style="color: #f33b6c" @tap="gotoRedirect('/pages/users/artificial?chat_user_id={{chat_user_id}}')">人工认证</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="_listItem animation-slide-top noBorder" style="animation-delay: 0.3s;margin-top: 100rpx;">
|
||||||
|
<button class="btn text-center font_30 btn-box white radius shadow bg-blue margin-top bold" @tap="submit">提交</button>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<view class="clearfloat"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<view class="agreement_box" v-if="state">
|
||||||
|
<view class="agreement">
|
||||||
|
<image src="https://images.ufutx.com/202012/24/181993236787c898d25df284b5cb092e.png" mode="aspectFit" class="iconV2" v-if="active_1" @tap="activeFn"></image>
|
||||||
|
<image src="https://images.ufutx.com/202006/18/2b234f0a7d8c1b7f97e98ee597a1f2c1.png" mode="aspectFit" class="iconV2" v-else @tap="activeFn"></image>
|
||||||
|
<span class="font_24">
|
||||||
|
<span @tap="activeFn">请阅读并同意</span>
|
||||||
|
<span class="color-theme" @tap.stop="gotoApp('https://love.ufutx.com/h5/#/serviceAgreementV2')">《服务协议》</span>和
|
||||||
|
<span class="color-theme" @tap.stop="gotoApp('https://love.ufutx.com/h5/#/PrivacyAgreementV2')">《隐私协议》</span>
|
||||||
|
</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="agreement_box" v-if="user.is_real_approved == 0">
|
||||||
|
<view class="agreement">
|
||||||
|
<image src="https://images.ufutx.com/202012/24/181993236787c898d25df284b5cb092e.png" mode="aspectFit" class="iconV2" v-if="active" @tap="activeFn"></image>
|
||||||
|
<image src="https://images.ufutx.com/202006/18/2b234f0a7d8c1b7f97e98ee597a1f2c1.png" mode="aspectFit" class="iconV2" v-else @tap="activeFn"></image>
|
||||||
|
<span class="font_24">
|
||||||
|
<span @tap="activeFn">请阅读并同意</span>
|
||||||
|
<span class="color-theme" @tap.stop="gotoApp('https://love.ufutx.com/h5/#/serviceAgreementV2')">《服务协议》</span>和
|
||||||
|
<span class="color-theme" @tap.stop="gotoApp('https://love.ufutx.com/h5/#/PrivacyAgreementV2')">《隐私协议》</span>
|
||||||
|
</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="detectionGuideBox {{modalName=='showRecording'?'animation-slide-left':'animation-slide-right'}}" v-if="showRecording">
|
||||||
|
<view class="cu-custom">
|
||||||
|
<view class="cu-bar fixed" style="height:{{CustomBar}}px;padding-top:{{StatusBar}}px;z-index: 999">
|
||||||
|
<image @tap="cancelRecording" class="returnIcon" src="https://images.ufutx.com/202104/09/91c42ff8b2da0c0ac0576fbc4dc163f6.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style="height: {{navHeight}}px"></view>
|
||||||
|
<image class="guidePhoto" src="https://images.ufutx.com/202104/15/62fbfe8f1d0ed2c3e87dda000fb2eafd.png" mode="widthFix"></image>
|
||||||
|
<view class="color-333 bold text-center" style="font-size: 40rpx;padding-bottom: 84rpx">录制一段自己的眨眼视频</view>
|
||||||
|
<view class="guideTextBinBox">
|
||||||
|
<view class="guideTextBox">
|
||||||
|
<image class="guideTextIcon" src="https://images.ufutx.com/202104/15/ed0d934242d66b9de3981b5ab072079d.png" mode="widthFix"></image>
|
||||||
|
<div class="font_32 color-333 bold">保持<span style="color: #f33b6c">明亮</span>光线</div>
|
||||||
|
</view>
|
||||||
|
<view class="guideTextBox">
|
||||||
|
<image class="guideTextIcon" src="https://images.ufutx.com/202104/15/d7cdbf5cadcdcad5e656e762067a8545.png" mode="widthFix"></image>
|
||||||
|
<div class="font_32 color-333 bold"><span style="color: #f33b6c">眨眼</span>3-5次</div>
|
||||||
|
</view>
|
||||||
|
<view class="guideTextBox">
|
||||||
|
<image class="guideTextIcon" src="https://images.ufutx.com/202104/15/9235b76fb6485a871efe3cc5a52bbd0b.png" mode="widthFix"></image>
|
||||||
|
<div class="font_32 color-333 bold">时长<span style="color: #f33b6c">3-5秒</span></div>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<button class="startRecording" bindtap="startRecord">开始录制</button>
|
||||||
|
</view>
|
||||||
|
<view :class="{'show': modalName=='Modal'}" class="cu-modal">
|
||||||
|
<view class="cu-dialog">
|
||||||
|
<view class="cu-bar bg-white justify-end">
|
||||||
|
<view class="content">提示</view>
|
||||||
|
<view class="action" bindtap="hideModal">
|
||||||
|
<text class="cuIcon-close text-red"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="padding-xl">
|
||||||
|
<view>暂无上级页面可返回,请点击右边 <text class="cuIcon-homefill" bindtap="toHome"></text> 返回主页</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
import {service} from '../../config.js'
|
||||||
|
import {startEid} from '../../mp_ecard_sdk/main'
|
||||||
|
|
||||||
|
const app = getApp().$wepy.$options
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
config: {},
|
||||||
|
mixins: [https, base],
|
||||||
|
data: {
|
||||||
|
user: {},
|
||||||
|
card: {
|
||||||
|
new_card_num: '',
|
||||||
|
name: ''
|
||||||
|
},
|
||||||
|
realityState: 0,
|
||||||
|
modalName: '',
|
||||||
|
showRecording: false,
|
||||||
|
init: false,
|
||||||
|
auditNum: 1,
|
||||||
|
showTop: true,
|
||||||
|
StatusBar: app.globalData.StatusBar,
|
||||||
|
CustomBar: app.globalData.CustomBar,
|
||||||
|
Custom: app.globalData.Custom,
|
||||||
|
navHeight: '',
|
||||||
|
formId: [],
|
||||||
|
protocol: true,
|
||||||
|
state: true,
|
||||||
|
shareImage: true,
|
||||||
|
active: true,
|
||||||
|
active_1: false,
|
||||||
|
invite_pic: '',
|
||||||
|
chat_user_id: '',
|
||||||
|
loading: false,
|
||||||
|
tempId: [], // 模板id
|
||||||
|
token: wx.getStorageSync('token'),
|
||||||
|
system: wx.getStorageSync('system'),
|
||||||
|
approve_time: 0
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
if (wx.getStorageSync('cardName')) {
|
||||||
|
this.card.new_card_num = wx.getStorageSync('cardNum')
|
||||||
|
this.card.name = wx.getStorageSync('cardName')
|
||||||
|
}
|
||||||
|
if (!wx.getStorageSync('token')) {
|
||||||
|
wx.setStorageSync('realName', 1)
|
||||||
|
wx.redirectTo({url: '/pages/tabBar/welcome'})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.GetInit()
|
||||||
|
},
|
||||||
|
|
||||||
|
onShareAppMessage (res) {
|
||||||
|
let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let url = `pages/users/realName?from_openid=${wx.getStorageSync('openid')}&from_user_id=${fromUserID}`
|
||||||
|
console.log(url)
|
||||||
|
return {
|
||||||
|
title: '推荐福恋,婚恋家庭幸福平台',
|
||||||
|
path: url,
|
||||||
|
imageUrl: 'https://images.ufutx.com/202104/21/12a332e9d3c9ad768827dff706d353c1.png',
|
||||||
|
success: function (res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: function (res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(e) {
|
||||||
|
let menuButtonObject = wx.getMenuButtonBoundingClientRect()
|
||||||
|
this.realityState = wx.getStorageSync('realityState') || 0
|
||||||
|
if (this.realityState == 0) {
|
||||||
|
wx.setNavigationBarTitle('真人认证')
|
||||||
|
}
|
||||||
|
wx.getSystemInfo({
|
||||||
|
success: res => {
|
||||||
|
let statusBarHeight = res.statusBarHeight,
|
||||||
|
navHeight = statusBarHeight + menuButtonObject.height + (menuButtonObject.top - statusBarHeight) * 2 // 导航高度
|
||||||
|
this.navHeight = navHeight
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (e.chat_user_id) {
|
||||||
|
this.chat_user_id = e.chat_user_id
|
||||||
|
}
|
||||||
|
if (wx.getStorageSync('from_user_id')) {
|
||||||
|
this.worthShare()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {
|
||||||
|
if (!this.state) {
|
||||||
|
this.initPageData()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
GetInit() { // 判断当前小程序是否在审核
|
||||||
|
console.log('----1----')
|
||||||
|
let vm = this
|
||||||
|
this.$get({url: `${service.host}/audit/status`}).then(({code, data}) => {
|
||||||
|
vm.state = data.status
|
||||||
|
if (!vm.state) {
|
||||||
|
wx.removeStorageSync('certificationState')
|
||||||
|
this.initPageData()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 初始化页面数据
|
||||||
|
initPageData() {
|
||||||
|
this.$get({url: `${service.host}/user/approve/profile`}).then(({code, data}) => {
|
||||||
|
wx.removeStorageSync('realName')
|
||||||
|
this.user = data
|
||||||
|
if (data.is_real_approved == 2) {
|
||||||
|
wx.redirectTo({url: `/pages/users/artificial`})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (data.card_num && data.is_real_approved == 1) {
|
||||||
|
this.user.new_card_num = this.interceptAndReplace(data.card_num, 5, 2, '*')
|
||||||
|
}
|
||||||
|
if (data.name && data.is_real_approved == 1) {
|
||||||
|
this.user.name = this.interceptAndReplace(data.name, 1, 0, '*')
|
||||||
|
}
|
||||||
|
console.log('333---')
|
||||||
|
this.init = true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getInfoData() {
|
||||||
|
let vm = this
|
||||||
|
this.$get({url: `${service.host}/user/approve/info`}).then(({code, data}) => {
|
||||||
|
if (data.is_real_approved == 0) {
|
||||||
|
return vm.$showToast('请核查认证信息')
|
||||||
|
}
|
||||||
|
this.user = data
|
||||||
|
if (data.card_num && data.is_real_approved == 1) {
|
||||||
|
this.user.new_card_num = this.interceptAndReplace(data.card_num, 5, 2, '*')
|
||||||
|
}
|
||||||
|
if (data.name && data.is_real_approved == 1) {
|
||||||
|
this.user.name = this.interceptAndReplace(data.name, 1, 0, '*')
|
||||||
|
}
|
||||||
|
this.init = true
|
||||||
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
|
title: '专属客服',
|
||||||
|
content: `福恋专属客服为您服务`,
|
||||||
|
confirmText: '选择客服',
|
||||||
|
success: function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
wx.navigateTo({
|
||||||
|
url: '/pages/users/exclusiveService'
|
||||||
|
})
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
})
|
||||||
|
wx.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
uploadFile(filePaths) {
|
||||||
|
let vm = this
|
||||||
|
wx.uploadFile({
|
||||||
|
url: service.image_upload,
|
||||||
|
filePath: filePaths,
|
||||||
|
path: 'live/person/audit',
|
||||||
|
method: 'POST',
|
||||||
|
name: 'fileData',
|
||||||
|
header: {
|
||||||
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
|
'content-type': 'multipart/form-data',
|
||||||
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
|
},
|
||||||
|
success: (res) => {
|
||||||
|
let url = JSON.parse(res.data).data
|
||||||
|
vm.request(url)
|
||||||
|
},
|
||||||
|
fail: (res) => {
|
||||||
|
vm.modalName = ''
|
||||||
|
vm.loading = false
|
||||||
|
vm.$showToast('网络错误,请重试!')
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
startRecord () {
|
||||||
|
var _this = this
|
||||||
|
wx.chooseVideo({
|
||||||
|
sourceType: ['camera'],
|
||||||
|
maxDuration: 5,
|
||||||
|
compressed: true,
|
||||||
|
camera: 'front',
|
||||||
|
success(data) {
|
||||||
|
_this.uploadFile(data.tempFilePath)
|
||||||
|
_this.loading = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
request(blob) {
|
||||||
|
let that = this,
|
||||||
|
data = {
|
||||||
|
chat_user_id: that.chat_user_id,
|
||||||
|
from_user_id: wx.getStorageSync('from_user_id') ? wx.getStorageSync('from_user_id') : '',
|
||||||
|
card_num: that.card.new_card_num,
|
||||||
|
name: that.card.name,
|
||||||
|
action_videos: blob,
|
||||||
|
video_type: 1
|
||||||
|
}
|
||||||
|
that.$post({url: `${service.host}/live/preson/audit/v2`, data}).then(({code, data}) => {
|
||||||
|
that.loading = false
|
||||||
|
if (data.type == 0) {
|
||||||
|
wx.removeStorageSync('cardName')
|
||||||
|
wx.removeStorageSync('cardNum')
|
||||||
|
}
|
||||||
|
let extra = JSON.stringify(data.extra)
|
||||||
|
wx.redirectTo({url: `/pages/users/recordingAudit?type=${data.type}&message=${data.message}&chat_user_id=${that.chat_user_id}` + `&extra=` + extra})
|
||||||
|
that.modalName = ''
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 指定下标更换 ***
|
||||||
|
interceptAndReplace(str, frontLen, endLen, symbol) {
|
||||||
|
var len = str.length - frontLen - endLen
|
||||||
|
var xing = ''
|
||||||
|
for (var i = 0; i < len; i++) {
|
||||||
|
xing += symbol
|
||||||
|
}
|
||||||
|
return str.substring(0, frontLen) + xing + str.substring(str.length - endLen)
|
||||||
|
},
|
||||||
|
|
||||||
|
worthShare() {
|
||||||
|
let vm = this,
|
||||||
|
data = {
|
||||||
|
from_user_id: wx.getStorageSync('from_user_id'),
|
||||||
|
channel: 'approve'
|
||||||
|
}
|
||||||
|
vm.$post({url: `${service.host}/worth/shares`, data}).then(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
CallbacknFN() {
|
||||||
|
let vm = this
|
||||||
|
vm.$showLoading('加载中')
|
||||||
|
let user_id = wx.getStorageSync('user_id')
|
||||||
|
vm.$get({url: `${service.host}/tencen/live/person/${user_id}/res`}).then(({code, data}) => {
|
||||||
|
console.log(data, '回调数据')
|
||||||
|
vm.getInfoData()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getEidToken() {
|
||||||
|
let vm = this,
|
||||||
|
data = {
|
||||||
|
name: vm.card.name,
|
||||||
|
card_num: vm.card.new_card_num
|
||||||
|
}
|
||||||
|
vm.$post({url: `${service.host}/user/approve/real`, data}).then(({code, data}) => {
|
||||||
|
console.log(data, 'tid数据')
|
||||||
|
let token = data.eid_token
|
||||||
|
startEid({
|
||||||
|
data: {
|
||||||
|
token: token
|
||||||
|
},
|
||||||
|
verifyDoneCallback(res) {
|
||||||
|
const {token, verifyDone} = res
|
||||||
|
console.log('收到核身完成的res:', res)
|
||||||
|
console.log('核身的token是:', token)
|
||||||
|
console.log('是否完成核身:', verifyDone)
|
||||||
|
vm.CallbacknFN()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleContact(e) {
|
||||||
|
let vm = this
|
||||||
|
try {
|
||||||
|
wx.previewImage({
|
||||||
|
current: 'https://image.fulllinkai.com/202310/23/2a132a4978ef87d532a817041e425c26.png',
|
||||||
|
urls: ['https://image.fulllinkai.com/202310/23/2a132a4978ef87d532a817041e425c26.png']
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
vm.$showToast('请更新至微信最新版本')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
submit () {
|
||||||
|
let that = this
|
||||||
|
if (!that.card.name || !that.card.new_card_num) {
|
||||||
|
return that.$showToast('请完善表单信息')
|
||||||
|
}
|
||||||
|
if (!that.active_1) {
|
||||||
|
return that.$showToast('请阅读并同意服务协议和隐私协议')
|
||||||
|
}
|
||||||
|
if (wx.getStorageSync('realNameUrl')) {
|
||||||
|
wx.redirectTo({url: wx.getStorageSync('realNameUrl')})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
wx.setStorageSync('certificationState', 99)
|
||||||
|
wx.redirectTo({url: '/pages/users/myCertification'})
|
||||||
|
},
|
||||||
|
redirectTo (url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
hideModal() {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
toHome () {
|
||||||
|
wx.reLaunch({
|
||||||
|
url: '/pages/tabBar/welcome'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleBack() {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
},
|
||||||
|
cancelRecording() {
|
||||||
|
this.showTop = true
|
||||||
|
this.modalName = ''
|
||||||
|
setTimeout(() => {
|
||||||
|
this.showRecording = false
|
||||||
|
}, 800)
|
||||||
|
},
|
||||||
|
gotoApp(url) {
|
||||||
|
wx.navigateTo({url: '/pages/books/bookDetail?url=' + encodeURIComponent(url)})
|
||||||
|
},
|
||||||
|
activeFn(index) {
|
||||||
|
this.active = !this.active
|
||||||
|
this.active_1 = !this.active_1
|
||||||
|
},
|
||||||
|
typing(type, e) {
|
||||||
|
this.card[type] = e.detail.value
|
||||||
|
console.log(this.card[type], '7897')
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
gotoRedirect (url) {
|
||||||
|
wx.redirectTo({url: url})
|
||||||
|
},
|
||||||
|
// 下一步
|
||||||
|
approve() {
|
||||||
|
let that = this
|
||||||
|
console.log(that.chat_user_id, '99988')
|
||||||
|
if (!that.card.name) {
|
||||||
|
return that.$showToast('请填写你的真实姓名')
|
||||||
|
}
|
||||||
|
if (!that.card.new_card_num) {
|
||||||
|
return that.$showToast('请填写你的身份证号')
|
||||||
|
}
|
||||||
|
if (!(/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(that.card.new_card_num))) { return that.$showToast('身份证号码格式错误') }
|
||||||
|
if (!this.active) {
|
||||||
|
return that.$showToast('请先选择同意服务协议')
|
||||||
|
}
|
||||||
|
that.$showLoading('加载中')
|
||||||
|
that.getEidToken()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
|
||||||
|
page{
|
||||||
|
background: white;
|
||||||
|
.init_box{
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
.returnIcon_1{
|
||||||
|
width: 14rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
margin-right: 22rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -6rpx;
|
||||||
|
}
|
||||||
|
.returnIcon_2{
|
||||||
|
width: 28rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -6rpx;
|
||||||
|
}
|
||||||
|
.home_icon{
|
||||||
|
width: 144rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 4rpx;
|
||||||
|
}
|
||||||
|
.titleContent{
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: calc(100% - 340rpx);
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
top: 0;
|
||||||
|
margin: auto;
|
||||||
|
height: 60rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
cursor: none;
|
||||||
|
pointer-events: none;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.state{
|
||||||
|
background: #ffffff;
|
||||||
|
padding: 12rpx 16rpx;
|
||||||
|
border: 4rpx solid #f4f4f4;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
.mainBox{
|
||||||
|
background-image: url("https://images.ufutx.com/202002/26/9e785a3b5d631fec6dcd89b8a89d95b4.png");
|
||||||
|
width: 86%;
|
||||||
|
height: 250rpx;
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
margin: auto;
|
||||||
|
margin-top: 100rpx;
|
||||||
|
position: relative;
|
||||||
|
.text{
|
||||||
|
position: absolute;
|
||||||
|
left: 48rpx;
|
||||||
|
top: 100rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.iconV2{
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
}
|
||||||
|
.page-user{
|
||||||
|
.mainText{
|
||||||
|
line-height: 44rpx;
|
||||||
|
padding: 40rpx 60rpx 0rpx 60rpx;
|
||||||
|
.text{
|
||||||
|
line-height: 50rpx;
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.page-box{
|
||||||
|
padding: 68rpx 22rpx;
|
||||||
|
.inputBox{
|
||||||
|
width: 86%;
|
||||||
|
text-align: left;
|
||||||
|
background: white;
|
||||||
|
padding: 12rpx;
|
||||||
|
margin: auto;
|
||||||
|
border-bottom: 2rpx solid #f6f6f6;
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
.textStyle{
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.service{
|
||||||
|
text-align: right;
|
||||||
|
margin-right: 36rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
._listItem{
|
||||||
|
margin-top: 22rpx;
|
||||||
|
.noBorder{
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.text{
|
||||||
|
margin-top: 16rpx;
|
||||||
|
}
|
||||||
|
.icon{
|
||||||
|
width: 38rpx;
|
||||||
|
height: 38rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-bottom: 4rpx;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-box,.btn-boxV2{
|
||||||
|
width: 86%;
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 88rpx;
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
border-radius: 44rpx;
|
||||||
|
padding: initial;
|
||||||
|
margin: 22rpx auto;
|
||||||
|
}
|
||||||
|
.btn-boxV2{
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.agreement_box{
|
||||||
|
text-align: center;
|
||||||
|
.agreement{
|
||||||
|
width: 100vw;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 60rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.detectionGuideBox{
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
position: relative;
|
||||||
|
position: fixed;
|
||||||
|
background: #ffffff;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.returnIcon{
|
||||||
|
width: 16rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
}
|
||||||
|
.guidePhoto{
|
||||||
|
width: 320rpx;
|
||||||
|
height: 320rpx;
|
||||||
|
display: block;
|
||||||
|
margin: 88rpx auto 40rpx auto;
|
||||||
|
}
|
||||||
|
.guideTextBinBox{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin: 0 46rpx;
|
||||||
|
}
|
||||||
|
.guideTextBox{
|
||||||
|
display: inline-block;
|
||||||
|
.guideTextIcon{
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto 16rpx auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.startRecording{
|
||||||
|
width: 400rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
border-radius: 40rpx;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 32rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin: 160rpx auto 0 auto;
|
||||||
|
}
|
||||||
|
button::after{
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.animation-slide-left{
|
||||||
|
animation: fadeInLeft 800ms ease alternate forwards;
|
||||||
|
@keyframes fadeInLeft
|
||||||
|
{
|
||||||
|
from {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translate(1000rpx, 0);
|
||||||
|
transform: translate(1000rpx, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity:1;
|
||||||
|
-webkit-transform: translate(0, 0);
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.animation-slide-right{
|
||||||
|
animation: fadeInRight 800ms ease alternate forwards;
|
||||||
|
@keyframes fadeInRight
|
||||||
|
{
|
||||||
|
from {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translate(0, 0);
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity:1;
|
||||||
|
-webkit-transform: translate(1000rpx, 0);
|
||||||
|
transform: translate(1000rpx, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '实名认证',
|
||||||
|
enablePullDownRefresh: true,
|
||||||
|
backgroundColorTop: '#ffffff',
|
||||||
|
backgroundColorBottom: '#ffffff',
|
||||||
|
usingComponents: {
|
||||||
|
cuCustom: '~@/components/cuCustom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
580
src/pages/users/report.wpy
Normal file
580
src/pages/users/report.wpy
Normal file
@ -0,0 +1,580 @@
|
|||||||
|
<template>
|
||||||
|
<view class="report">
|
||||||
|
<view class="title font_32">
|
||||||
|
<view class="f-fcfe bold" style="font-weight: 600;font-size:30rpx;">{{ type == 'user' ? '反馈' : '举报' }}类型
|
||||||
|
<view class="font_24 color-999 bold" style="margin-left: 12rpx;">(*必填)</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="main">
|
||||||
|
<block v-for="(item,index) in lable" :key="index">
|
||||||
|
<view :class="{'back':colorindex == index }" class="lis " @tap="handleColor(item,index)" :key="index">{{ item }}
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<view class="title font_32 f-fbc" style="padding: 80rpx 30rpx 24rpx;">
|
||||||
|
<view class="actions f-fcfe bold">
|
||||||
|
{{ type == 'user' ? '反馈' : '举报' }}截图
|
||||||
|
<view class="font_24 color-999 bold" style="margin-left: 12rpx;">(*必填)</view>
|
||||||
|
</view>
|
||||||
|
<view class="action font_24 color-999">
|
||||||
|
{{ imgList.length }}/9
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-form-group">
|
||||||
|
<view class="grid col-04 grid_square flex-sub">
|
||||||
|
<view class="bg_img" v-for="(item,index) in imgList" :key="index" @tap="ViewImage(item)">
|
||||||
|
<image :src="item" mode="widthFix" style="width:100%"></image>
|
||||||
|
<image class="u_up_del" @tap="DelImg(index)" src="https://images.ufutx.com/202107/03/3d77897be5d841402743fa3c901085a3.png" mode="aspectFit" lazy-load="false"></image>
|
||||||
|
</view>
|
||||||
|
<view class="m_up f-fcc" bindtap="ChooseImage" v-if="imgList.length<9">
|
||||||
|
<image class="u_up_img" src="https://images.ufutx.com/202107/03/f631121a99d0013fa4e55b13407594dc.png" mode="aspectFit" lazy-load="false"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<block v-if="type=='user'">
|
||||||
|
<view class="title font_32 f-fbc" style="padding: 70rpx 30rpx 24rpx;">
|
||||||
|
<view class="actions f-fcfe bold">
|
||||||
|
手机号码
|
||||||
|
<view class="font_24 color-999 bold" style="margin-left: 12rpx;">(*必填)</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<button class="btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">
|
||||||
|
<input class="ui-contact-input font_28" disabled maxlength="11" placeholder="请输入手机号码" placeholder-style="color: #c2c2c2" type="number" value="{{mobile}}" />
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
<view class="title font_32 f-fbc" style="padding: 60rpx 30rpx 24rpx;">
|
||||||
|
<view class="actions f-fcfe bold">
|
||||||
|
{{ type == 'user' ? '反馈' : '举报' }}内容
|
||||||
|
<view class="font_24 color-999 bold" style="margin-left:12rpx;">({{ type == 'user' ? '*必填' : '选填' }})</view>
|
||||||
|
</view>
|
||||||
|
<view class="action font_24 color-999">
|
||||||
|
{{ content }}/200
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="m_text" style="border:0rpx">
|
||||||
|
<textarea style="border:2rpx dashed #B8B8B8;padding: 8rpx 10rpx;border-radius: 16rpx;font-size: 28rpx;line-height: 40rpx;" placeholder-style="font-size: 28rpx;line-height: 40rpx;" maxlength="200" bindinput="inputChange" placeholder="请您详细描述反馈内容,福恋会用心服务每一个反馈用户" adjust-position="true"></textarea>
|
||||||
|
</view>
|
||||||
|
<view class="issue-main f-fcc">
|
||||||
|
<view v-if="type == 'user'" class="issue f-fcc {{title.length > 0 && imgList.length > 0 && value.length > 0?'sel':''}} " @tap="report">提交
|
||||||
|
</view>
|
||||||
|
<view v-else class="issue f-fcc {{title.length > 0 && imgList.length > 0?'sel':''}} " @tap="report">提交</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<uploadPic :num="9-imgList.length" :chooseShow.sync="choosePicsShow" @changeVal="changeVal" @closeUploadPic="closeUploadPic"></uploadPic>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import {service} from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
import {getPhoneNumber} from '../../utils/util'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
|
||||||
|
data: {
|
||||||
|
throttling: true,
|
||||||
|
content: 0,
|
||||||
|
value: '',
|
||||||
|
mobile: '',
|
||||||
|
imgList: ['https://image.fulllinkai.com/202407/29/81VtbuoehYoi8ade6037c96a5b403f5311e662f6fae8.jpg'],
|
||||||
|
id: '',
|
||||||
|
title: '',
|
||||||
|
lable: [],
|
||||||
|
colorindex: null,
|
||||||
|
type: '',
|
||||||
|
choosePicsShow: false,
|
||||||
|
labelUser: ['product', 'order', 'other']
|
||||||
|
},
|
||||||
|
async onLoad(e) {
|
||||||
|
this.id = e.id
|
||||||
|
this.type = e.type
|
||||||
|
console.log(e)
|
||||||
|
if (e.type == 'dynamic') {
|
||||||
|
this.reportList()
|
||||||
|
} else if (e.type == 'details') {
|
||||||
|
this.lable = ['欺诈骗钱', '骚扰/广告', '辱骂/攻击', '色情/暴力', '形象照等资料虚假或假冒', '其他']
|
||||||
|
} else if (e.type == 'user') {
|
||||||
|
this.lable = ['产品建议', '订单问题', '其他问题']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
reportList() { // 获取举报标签
|
||||||
|
let vm = this,
|
||||||
|
url = `${service.host}/moment/complaint/labels`
|
||||||
|
vm.$showLoading('加载中')
|
||||||
|
vm.$get({
|
||||||
|
url: url
|
||||||
|
}).then(({code, data}) => {
|
||||||
|
this.lable = data
|
||||||
|
wx.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
dynamicReport() { // 举报
|
||||||
|
let data = {
|
||||||
|
label: this.title,
|
||||||
|
content: this.value,
|
||||||
|
photos: this.imgList
|
||||||
|
}, vm = this,
|
||||||
|
url = `${service.host}/moment/${this.id}/complaint`
|
||||||
|
if (!vm.throttling) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
vm.$showLoading('提交中')
|
||||||
|
vm.$post({ url: url, data }).then(({code, data}) => {
|
||||||
|
vm.$showToast('提交成功,谢谢你的反馈')
|
||||||
|
var pages = getCurrentPages()
|
||||||
|
var prevPage = pages[pages.length - 2]
|
||||||
|
prevPage.setData({
|
||||||
|
modalName: ''
|
||||||
|
})
|
||||||
|
vm.throttling = false
|
||||||
|
setTimeout(() => {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
vm.throttling = true
|
||||||
|
wx.hideLoading()
|
||||||
|
}, 1400)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
detailsReport() {
|
||||||
|
let data = {
|
||||||
|
label: this.title,
|
||||||
|
content: this.value,
|
||||||
|
photos: this.imgList
|
||||||
|
},
|
||||||
|
vm = this
|
||||||
|
// for (let item in data) {
|
||||||
|
// if (!data[item]) {
|
||||||
|
// return vm.$showToast('请填写相关举报信息!')
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
console.log(data)
|
||||||
|
if (!vm.throttling) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
vm.$showLoading('提交中')
|
||||||
|
vm.$post({url: `${service.host}/chat/users/${vm.id}/complaint`, data}).then(({code, data}) => {
|
||||||
|
vm.$showToast('提交成功,谢谢你的反馈')
|
||||||
|
vm.throttling = false
|
||||||
|
setTimeout(() => {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
vm.throttling = true
|
||||||
|
wx.hideLoading()
|
||||||
|
}, 1400)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
userReport() {
|
||||||
|
let data = {
|
||||||
|
type: this.labelUser[this.colorindex],
|
||||||
|
content: this.value,
|
||||||
|
contact: this.mobile,
|
||||||
|
photos: this.imgList
|
||||||
|
},
|
||||||
|
vm = this
|
||||||
|
console.log(data)
|
||||||
|
if (!vm.throttling) {
|
||||||
|
|
||||||
|
}
|
||||||
|
vm.$showLoading('提交中')
|
||||||
|
vm.$post({url: `${service.host}/feedback/send`, data}).then(({code, data}) => {
|
||||||
|
vm.$showToast('提交成功,谢谢你的反馈')
|
||||||
|
vm.throttling = false
|
||||||
|
setTimeout(() => {
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
vm.throttling = true
|
||||||
|
wx.hideLoading()
|
||||||
|
}, 1400)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getPhoneNumber({$wx: e}) { // 获取手机号
|
||||||
|
let vm = this
|
||||||
|
if (e.detail.iv) {
|
||||||
|
getPhoneNumber(e).then((data) => {
|
||||||
|
if (data.phone) {
|
||||||
|
vm.mobile = data.phone
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
typing(e) {
|
||||||
|
this.mobile = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
inputChange(e) {
|
||||||
|
this.value = e.$wx.detail.value
|
||||||
|
this.content = e.$wx.detail.cursor
|
||||||
|
},
|
||||||
|
ChooseImage() {
|
||||||
|
let vm = this
|
||||||
|
let minNum = 9 - vm.imgList.length
|
||||||
|
if (vm.imgList.length > 8) {
|
||||||
|
vm.$showToast('最多可上传9张')
|
||||||
|
} else {
|
||||||
|
vm.choosePicsShow = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeVal(e) {
|
||||||
|
let vm = this
|
||||||
|
console.log(e, 'e===')
|
||||||
|
if (e && e.length > 0) {
|
||||||
|
e.map(item => {
|
||||||
|
vm.imgList.push(item.filePath)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
closeUploadPic() {
|
||||||
|
console.log('*****close**********')
|
||||||
|
this.choosePicsShow = false
|
||||||
|
},
|
||||||
|
ViewImage(e) {
|
||||||
|
this.$previewImages(e, this.imgList)
|
||||||
|
// wepy.previewImage({
|
||||||
|
// urls: this.imgList,
|
||||||
|
// current: e
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
DelImg(index) {
|
||||||
|
this.imgList.splice(index, 1)
|
||||||
|
},
|
||||||
|
gotoHotTopic() {
|
||||||
|
this.$goto('/pages/dynamic/search')
|
||||||
|
},
|
||||||
|
delete() {
|
||||||
|
console.log('zhix')
|
||||||
|
this.setData({
|
||||||
|
title: ''
|
||||||
|
})
|
||||||
|
},
|
||||||
|
location() {
|
||||||
|
var qqmapsdk = new qqmap({
|
||||||
|
key: ''
|
||||||
|
})
|
||||||
|
let vm = this
|
||||||
|
if (wx.getFuzzyLocation) {
|
||||||
|
wx.getFuzzyLocation({
|
||||||
|
type: 'gcj02',
|
||||||
|
success(res) {
|
||||||
|
console.log(res)
|
||||||
|
vm.latitude = res.latitude
|
||||||
|
vm.longitude = res.longitude
|
||||||
|
qqmapsdk.reverseGeocoder({
|
||||||
|
location: {
|
||||||
|
latitude: res.latitude,
|
||||||
|
longitude: res.longitude
|
||||||
|
},
|
||||||
|
success: function (addressRes) {
|
||||||
|
console.log(addressRes)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
wx.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
report() {
|
||||||
|
if (this.title.length == 0) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请选择${this.type == 'user' ? '反馈' : '举报'}类型`,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.imgList == [] || this.imgList == '') {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请上传${this.type == 'user' ? '反馈' : '举报'}截图`,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.type == 'user') {
|
||||||
|
if (!this.mobile) {
|
||||||
|
this.$showToast('请填写手机号码')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.type == 'user' && this.value == '') {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请填写反馈内容`,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.type == 'dynamic') {
|
||||||
|
this.dynamicReport()
|
||||||
|
} else if (this.type == 'details') {
|
||||||
|
this.detailsReport()
|
||||||
|
} else if (this.type == 'user') {
|
||||||
|
this.userReport()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleColor(e, index) {
|
||||||
|
this.title = e
|
||||||
|
this.colorindex = index
|
||||||
|
}
|
||||||
|
},
|
||||||
|
events: {
|
||||||
|
'UpLoadImage': (value) => {
|
||||||
|
this.imgList.push(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
page {
|
||||||
|
background: #FFFFFF
|
||||||
|
}
|
||||||
|
.report {
|
||||||
|
padding: 20rpx 0;
|
||||||
|
}
|
||||||
|
.cu-bar {
|
||||||
|
min-height: 70rpx;
|
||||||
|
}
|
||||||
|
.actions {
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
.red {
|
||||||
|
color: red;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
.gray {
|
||||||
|
color: #c2c2c2;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.ui-contact-input{
|
||||||
|
margin: 0 30rpx;
|
||||||
|
padding: 0 10rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
border: 2rpx dashed #C2C2C2;
|
||||||
|
}
|
||||||
|
.main {
|
||||||
|
height: auto;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding-left: 30rpx;
|
||||||
|
.lis {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background: #F5F5F5;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
padding: 10rpx 20rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
}
|
||||||
|
.back {
|
||||||
|
background-color: #FFF1F5;
|
||||||
|
color: #F33B6C;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.cu-form-group {
|
||||||
|
min-height: auto;
|
||||||
|
border: 0rpx;
|
||||||
|
textarea {
|
||||||
|
height: 320rpx;
|
||||||
|
position: relative;
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
.num {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 20rpx;
|
||||||
|
right: 20rpx;
|
||||||
|
height: 34rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #c2c2c2;
|
||||||
|
line-height: 34rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.grid_square {
|
||||||
|
.m_up {
|
||||||
|
width: 220rpx;
|
||||||
|
height: 220rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
border: 2rpx dashed #B8B8B8;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
.u_up_img {
|
||||||
|
width: 46rpx;
|
||||||
|
height: 46rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bg_img {
|
||||||
|
position: relative;
|
||||||
|
width:220rpx;
|
||||||
|
height:220rpx;
|
||||||
|
margin-right: 14rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
.u_up_del {
|
||||||
|
padding: 4rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 8rpx;
|
||||||
|
top: 8rpx;
|
||||||
|
width: 34rpx;
|
||||||
|
height: 34rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bg_img:nth-child(3n) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_text{
|
||||||
|
width: 100%;
|
||||||
|
height: 320rpx;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
textarea {
|
||||||
|
width: 100% !important;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.hottopic {
|
||||||
|
height: auto;
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
padding-bottom: 42rpx;
|
||||||
|
.text-sm {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.tags {
|
||||||
|
width: auto;
|
||||||
|
height: 50rpx;
|
||||||
|
line-height: 50rpx;
|
||||||
|
background: #fff1f5;
|
||||||
|
border-radius: 26rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #f33b6c;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding-right: 16rpx;
|
||||||
|
.img {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
margin-left: 8rpx;
|
||||||
|
}
|
||||||
|
.delete {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.hint {
|
||||||
|
width: 340rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 64rpx;
|
||||||
|
background: #333333;
|
||||||
|
position: relative;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #FFFFFF;
|
||||||
|
border-radius: 17rpx;
|
||||||
|
}
|
||||||
|
.hint::before {
|
||||||
|
content: "";
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
position: absolute;
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
left: -4rpx;
|
||||||
|
margin: auto;
|
||||||
|
background-color: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.img-title {
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #AAAAAA;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding-bottom: 16rpx;
|
||||||
|
}
|
||||||
|
.location {
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 10rpx 30rpx 0 30rpx;
|
||||||
|
position: relative;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #666666;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.img {
|
||||||
|
width: 24rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.issue-main {
|
||||||
|
padding: 50rpx 0 30rpx;
|
||||||
|
.issue {
|
||||||
|
width: 478rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
background: linear-gradient(270deg, rgba(255, 133, 165, .5) 0%, rgba(255, 83, 128, .5) 100%);
|
||||||
|
border-radius: 100rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.issue.sel {
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '意见反馈',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
uploadPic: '~@/components/uploadPic'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
215
src/pages/users/schools.wpy
Normal file
215
src/pages/users/schools.wpy
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
<template>
|
||||||
|
<view class="cu-bar search bg-white">
|
||||||
|
<view class="search-form round">
|
||||||
|
<image class="searchIcon" src="https://images.ufutx.com/202102/26/4081d59162d4a38736c323ed7fffd3db.png" alt=""></image>
|
||||||
|
<input focus="{{true}}" type="text" placeholder="请输入你的毕业院校" confirm-type="search" bindinput="inputTyping" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="main">
|
||||||
|
<view class="hot">
|
||||||
|
<view class="mains">
|
||||||
|
<block v-for="(item,index) in hottopic" :key="index">
|
||||||
|
<view class="list" bindtap="handleHottopic" data-title="{{item.name}}">
|
||||||
|
{{item.name}}
|
||||||
|
<!-- <image wx:if="{{item.is_hot == 1}}" class="img" src="https://images.ufutx.com/202103/02/0dffc4de154e82b1a75ae4c0a2a62ecf.png" /> -->
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<image class="zanwu" v-if="show" src="https://images.ufutx.com/202101/28/91c53fec5c317fc68138cb4dd42e9d8f.png"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import {
|
||||||
|
service
|
||||||
|
} from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
config: {
|
||||||
|
navigationBarTitleText: '毕业院校',
|
||||||
|
enablePullDownRefresh: false
|
||||||
|
},
|
||||||
|
|
||||||
|
data: {
|
||||||
|
hottopic: [],
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
async onLoad() {
|
||||||
|
// this.hottopics()
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleHottopic(e) {
|
||||||
|
console.log(e, 'e===')
|
||||||
|
var pages = getCurrentPages()
|
||||||
|
var prevPage = pages[pages.length - 2]
|
||||||
|
// prevPage.setData({
|
||||||
|
// school: e.currentTarget.dataset.title,
|
||||||
|
// })
|
||||||
|
// prevPage.data.school = e.currentTarget.dataset.title
|
||||||
|
// prevPage.show(e.$wx.currentTarget.dataset.title)
|
||||||
|
prevPage.setData({school: e.$wx.currentTarget.dataset.title})
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
},
|
||||||
|
inputTyping(e) {
|
||||||
|
let vm = this
|
||||||
|
console.log(e, 'ee===')
|
||||||
|
let val = e.$wx.detail.value
|
||||||
|
if (val == '' || val.replace(/ /g, '') == '') {
|
||||||
|
vm.show = false
|
||||||
|
vm.hottopic = []
|
||||||
|
} else {
|
||||||
|
let url = `${service.host}/college/list`
|
||||||
|
vm.$showLoading('加载中')
|
||||||
|
vm.$get({
|
||||||
|
url: url,
|
||||||
|
data: {
|
||||||
|
keyword: val
|
||||||
|
}
|
||||||
|
}).then(({
|
||||||
|
code,
|
||||||
|
data
|
||||||
|
}) => {
|
||||||
|
vm.hottopic = data.data
|
||||||
|
if (data.data.length == 0) {
|
||||||
|
vm.show = true
|
||||||
|
}
|
||||||
|
wx.hideLoading()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
// .search{
|
||||||
|
// margin-bottom: 60rpx;
|
||||||
|
// }
|
||||||
|
.main {
|
||||||
|
position: absolute;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
top: 100rpx;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
padding: 0rpx 30rpx 60rpx 30rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
.cu-list {
|
||||||
|
.cu-item {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
padding-right: 0;
|
||||||
|
height: 160rpx;
|
||||||
|
background-color: var(--white);
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
.cu-avatar.lgs {
|
||||||
|
width: 160rpx;
|
||||||
|
height: 160rpx;
|
||||||
|
border-radius: 8px;
|
||||||
|
left: 0;
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
position: absolute;
|
||||||
|
left: 176rpx;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
.title {
|
||||||
|
height: 44rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 44rpx;
|
||||||
|
}
|
||||||
|
// .mains {
|
||||||
|
// height: 34rpx;
|
||||||
|
// font-size: 24rpx;
|
||||||
|
// font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
// font-weight: 400;
|
||||||
|
// color: #999999;
|
||||||
|
// line-height: 34rpx;
|
||||||
|
// margin-top: 12rpx;
|
||||||
|
// }
|
||||||
|
.num {
|
||||||
|
height: 36rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #666666;
|
||||||
|
line-height: 36rpx;
|
||||||
|
margin-top: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.cu-list+.cu-list {
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
.hot {
|
||||||
|
// .topic {
|
||||||
|
// height: 44rpx;
|
||||||
|
// font-size: 32rpx;
|
||||||
|
// font-weight: 600;
|
||||||
|
// color: #333333;
|
||||||
|
// line-height: 44rpx;
|
||||||
|
// }
|
||||||
|
.mains {
|
||||||
|
height: auto;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.zanwu {
|
||||||
|
height: 240rpx;
|
||||||
|
width: 250rpx;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
.list {
|
||||||
|
width: 100%;
|
||||||
|
// display: flex;
|
||||||
|
// justify-content: center;
|
||||||
|
// align-items: center;
|
||||||
|
height: 60rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
// background: #F5F5F5;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
// .img {
|
||||||
|
// width: 28rpx;
|
||||||
|
// height: 28rpx;
|
||||||
|
// margin-left: 6rpx;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.searchIcon {
|
||||||
|
width: 27rpx;
|
||||||
|
height: 27rpx;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
894
src/pages/users/selfTextarea.wpy
Normal file
894
src/pages/users/selfTextarea.wpy
Normal file
@ -0,0 +1,894 @@
|
|||||||
|
<template>
|
||||||
|
<page-meta page-style="background:{{bgColor}}"></page-meta>
|
||||||
|
<view class="selfTextarea" style="padding: {{text == '期望对方'?'0 30rpx 30rpx':''}};">
|
||||||
|
<view class="m_con" v-if="text == '期望对方'">
|
||||||
|
<view class="u_con_tt font_28 color-999 bold">征友条件</view>
|
||||||
|
<view class="m_conPi">
|
||||||
|
<view class="m_conPi_lst">
|
||||||
|
<picker mode="multiSelector" value="{{ageIndex}}" range="{{ageArray}}" bindchange="bindAgePickerChange" bindcolumnchange="bindAgePickerColumnChange">
|
||||||
|
<view class="u_conPi_lst f-fbc">
|
||||||
|
<view class="font_28 color-333 bold">年龄</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_28 u_conLst_ct {{ageColor?'color-333':'color-999'}}" v-if="ageIndex.length == 0">{{mate_conditon.age}}</view>
|
||||||
|
<view class="font_28 color-333 u_conLst_ct" v-else>{{ageArray[0][ageIndex[0]]}} - {{ageArray[1][ageIndex[1]]}}岁</view>
|
||||||
|
<view class="font_family icon-jiantoubeifen7 color-999" style="margin-left: 14rpx;font-size: 22rpx;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
<picker mode="multiSelector" value="{{heightIndex}}" range="{{heightArray}}" bindchange="bindHeightPickerChange" bindcolumnchange="bindHeightPickerColumnChange">
|
||||||
|
<view class="u_conPi_lst f-fbc">
|
||||||
|
<view class="font_28 color-333 bold">身高</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_28 u_conLst_ct {{heightColor?'color-333':'color-999'}}" v-if="heightIndex.length == 0">{{mate_conditon.stature}}</view>
|
||||||
|
<view class="font_28 color-333 u_conLst_ct" v-else>{{heightArray[0][heightIndex[0]]}} - {{heightArray[1][heightIndex[1]]}}cm</view>
|
||||||
|
<view class="font_family icon-jiantoubeifen7 color-999" style="margin-left: 14rpx;font-size: 22rpx;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
<picker value="{{stateIndex}}" range="{{stateArray}}" bindchange="bindStatePickerChange">
|
||||||
|
<view class="u_conPi_lst f-fbc">
|
||||||
|
<view class="font_28 color-333 bold">情感状态</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_28 u_conLst_ct {{stateColor?'color-333':'color-999'}}" v-if="stateIndex == '' || stateIndex == 0">{{mate_conditon.state}}</view>
|
||||||
|
<view class="font_28 color-333 u_conLst_ct" v-else>{{stateArray[stateIndex]}}</view>
|
||||||
|
<view class="font_family icon-jiantoubeifen7 color-999" style="margin-left: 14rpx;font-size: 22rpx;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
|
||||||
|
<picker value="{{educIndex}}" range="{{educArray}}" bindchange="bindEducPickerChange">
|
||||||
|
<view class="u_conPi_lst f-fbc">
|
||||||
|
<view class="font_28 color-333 bold">最低学历</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_28 u_conLst_ct {{educColor?'color-333':'color-999'}}" v-if="educIndex == '' || educIndex == 0">{{mate_conditon.degree}}</view>
|
||||||
|
<view class="font_28 color-333 u_conLst_ct" v-else>{{educArray[educIndex]}}</view>
|
||||||
|
<view class="font_family icon-jiantoubeifen7 color-999" style="margin-left: 14rpx;font-size: 22rpx;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
<picker value="{{faithIndex}}" range="{{faithArray}}" bindchange="bindFaithPickerChange">
|
||||||
|
<view class="u_conPi_lst f-fbc">
|
||||||
|
<view class="font_28 color-333 bold">信仰</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_28 u_conLst_ct {{faithColor?'color-333':'color-999'}}" v-if="faithIndex == '' || faithIndex == 0">{{mate_conditon.belief}}</view>
|
||||||
|
<view class="font_28 color-333 u_conLst_ct" v-else>{{faithArray[faithIndex]}}</view>
|
||||||
|
<view class="font_family icon-jiantoubeifen7 color-999" style="margin-left: 14rpx;font-size: 22rpx;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
<picker value="{{incomeIndex}}" range="{{incomeArray}}" bindchange="bindIncomePickerChange">
|
||||||
|
<view class="u_conPi_lst f-fbc">
|
||||||
|
<view class="font_28 color-333 bold">最低月收入</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_28 u_conLst_ct {{incomeColor?'color-333':'color-999'}}" v-if="incomeIndex == '' || incomeIndex == 0">{{mate_conditon.income}}</view>
|
||||||
|
<view class="font_28 color-333 u_conLst_ct" v-else>{{incomeArray[incomeIndex]}}</view>
|
||||||
|
<view class="font_family icon-jiantoubeifen7 color-999" style="margin-left: 14rpx;font-size: 22rpx;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u_text_tt font_28 color-999 bold" v-if="text == '期望对方'">Ta所在的城市(自定义最多选择7个)</view>
|
||||||
|
<view class="demand_item_box" v-if="text == '期望对方'">
|
||||||
|
<view class="f-fc m_tsc" style="overflow: hidden">
|
||||||
|
<view :class="{'sel': tscList.length == 0}" class="u_tsc_bu f-fcc font_28 black_6" bindtap="wholeDelete">同城优先</view>
|
||||||
|
<view class="u_tsc_bu f-fcc font_28 black_6 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 ref="selectCity" :multiIndex.sync="multiIndex" @selectCity.user="selectTaCity" @selectCity="selectCity" @multiCity="multiCityV2" @provinces="getProvinces">
|
||||||
|
<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 black_6">自定义</view>
|
||||||
|
</view>
|
||||||
|
</selectCity>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u_text_tt font_28 color-999 bold" v-if="text == '期望对方'">对另一半的期待</view>
|
||||||
|
<view class="textarea">
|
||||||
|
<textarea
|
||||||
|
class="areas"
|
||||||
|
auto-height
|
||||||
|
placeholder="{{placeholderText}}(请勿留下联系方式,否则将会被禁封)"
|
||||||
|
placeholder-style="placeholder_class"
|
||||||
|
minlength="{{min}}"
|
||||||
|
maxlength="800"
|
||||||
|
v-model="value"
|
||||||
|
>
|
||||||
|
</textarea>
|
||||||
|
<view class="currentWordNumber font_24">{{value.length}}/800</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view v-else >-->
|
||||||
|
<!-- <texTarea :placeholderText.sync="placeholderText" max="800" :value.sync="value"-->
|
||||||
|
<!-- @textareaValue.user="textareaValue"></texTarea>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<view class="m_con" v-else-if="text=='兴趣爱好'">
|
||||||
|
<view class="u_con_tt font_28 color-999 bold">兴趣爱好的标签</view>
|
||||||
|
<view class="f-fc ui-wrap ui-hobbies-big-box">
|
||||||
|
<view :class="{'hobbies-box-select': item.show}" class="hobbies-box" v-for="(item,index) in hobbiesList" :key="index" @tap="changeSelect(item,index,'0')">
|
||||||
|
{{item.title}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="custom-title f-fbc">
|
||||||
|
<view class="u_con_tt font_28 color-999 bold">自定义标签</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<image @tap="isDeleteStatus = !isDeleteStatus" :src="isDeleteStatus ? 'https://image.fulllinkai.com/202407/31/5caab5a45aca621171500f25e7f58933.png' : 'https://image.fulllinkai.com/202407/31/f4d3854372062583eb368ce88c9fd900.png'" class="custom-delete-icon"></image>
|
||||||
|
<view @tap="isDeleteStatus = !isDeleteStatus" :class="{'is-delete':isDeleteStatus}" class="custom-delete-title">删除</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="f-fc ui-wrap ui-hobbies-big-box">
|
||||||
|
<view :class="{'hobbies-box-select': item.show}" class="hobbies-box" v-for="(item,index) in customHobbiesList" :key="index" @tap="changeSelect(item,index,'1')">
|
||||||
|
<view>{{item.title}}</view>
|
||||||
|
<image @tap.stop="delCustomHob(item,index)" v-if="isDeleteStatus" class="hobbies-box-del" src="https://image.fulllinkai.com/202407/31/d76556526f6636717496e5d81383213a.png"></image>
|
||||||
|
</view>
|
||||||
|
<view class="custom-hobbies-add font_26" @tap="customAdd">+ 添加</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-else>
|
||||||
|
<view class="textarea">
|
||||||
|
<textarea
|
||||||
|
class="areas"
|
||||||
|
auto-height
|
||||||
|
placeholder="{{placeholderText}}(请勿留下联系方式,否则将会被禁封)"
|
||||||
|
placeholder-style="placeholder_class"
|
||||||
|
minlength="{{min}}"
|
||||||
|
maxlength="800"
|
||||||
|
v-model="value"
|
||||||
|
>
|
||||||
|
</textarea>
|
||||||
|
<view class="currentWordNumber font_24">{{value.length}}/800</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="f-fcc">
|
||||||
|
<view class="u_bt font_32 white f-fcc" bindtap="submitFn">保存</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view :class="{'show': modalName == 'customAdd'}" class="cu-modal">
|
||||||
|
<view class="cu-dialog" style="width:600rpx;">
|
||||||
|
<view class="bg-img bg-imgs">自定义标签</view>
|
||||||
|
<input type="text" placeholder="请输入不超过八个字的标签" class="u_name_inp_V2" v-model="customName" cursor-spacing="50" maxlength="10" />
|
||||||
|
<view class="cu-bar bg-white" style="border-top:10rpx solid #f5f5f5;display:flex;">
|
||||||
|
<view class="action margin-0 flex-sub" style="color:#999999;font-size:32rpx;font-weight:500;border-right:1rpx solid #f5f5f5;" @tap="cancel">取消</view>
|
||||||
|
<view class="action margin-0 flex-sub solid-left" style="color:#F33B6C;font-size:32rpx;font-weight:500;" @tap="changeOccupation">确认</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import {service} from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
// import utils from '../../utils/util'
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
placeholderText: '',
|
||||||
|
text: '',
|
||||||
|
introduction: '',
|
||||||
|
ideal_mate: '',
|
||||||
|
interest_hobby: '',
|
||||||
|
value: '',
|
||||||
|
max: 1500,
|
||||||
|
CITY_INDEX: 0,
|
||||||
|
multiIndex: [0, 18, 2],
|
||||||
|
region: ['', '', ''],
|
||||||
|
selfTextareaShow: false,
|
||||||
|
ageArray: [['不限'], []],
|
||||||
|
ageIndex: [],
|
||||||
|
ageColor: false,
|
||||||
|
heightArray: [['不限'], []],
|
||||||
|
heightIndex: [],
|
||||||
|
heightColor: false,
|
||||||
|
regionArray: ['不限', '距离优先'],
|
||||||
|
regionIndex: '',
|
||||||
|
regionColor: false,
|
||||||
|
educArray: ['不限', '大专', '本科', '硕士以上'],
|
||||||
|
educIndex: '',
|
||||||
|
educColor: false,
|
||||||
|
faithArray: ['不限', '基督教', '佛教', '伊斯兰教'],
|
||||||
|
faithIndex: '',
|
||||||
|
faithColor: false,
|
||||||
|
incomeArray: ['不限', '4千-6千', '6千-1万', '1万-2万', '2万以上'],
|
||||||
|
incomeIndex: '',
|
||||||
|
incomeColor: false,
|
||||||
|
stateArray: ['不限', '单身', '离异', '丧偶'],
|
||||||
|
stateIndex: '',
|
||||||
|
stateColor: '',
|
||||||
|
mate_condition: [],
|
||||||
|
mate_conditon: {
|
||||||
|
age: '年龄不限',
|
||||||
|
stature: '身高不限',
|
||||||
|
location: '所在地不限',
|
||||||
|
degree: '学历不限',
|
||||||
|
belief: '信仰不限',
|
||||||
|
income: '月收入不限',
|
||||||
|
state: '情感不限'
|
||||||
|
},
|
||||||
|
throttleShow: true,
|
||||||
|
provinces: [],
|
||||||
|
customItem: '不限',
|
||||||
|
stateList: ['情感不限', '单身', '离异', '丧偶'],
|
||||||
|
// Ta所在的城市相关
|
||||||
|
modalName: '',
|
||||||
|
certification: 1,
|
||||||
|
givePriority: true,
|
||||||
|
only: false,
|
||||||
|
hopeV2Data: {
|
||||||
|
city: 1,
|
||||||
|
hometown: 1,
|
||||||
|
Certification: 1
|
||||||
|
},
|
||||||
|
tscList: [],
|
||||||
|
submitList: [],
|
||||||
|
address: { // 居住地
|
||||||
|
country: '', province: '', city: ''
|
||||||
|
},
|
||||||
|
addressType: 'address',
|
||||||
|
selectType: '',
|
||||||
|
selectCity: '',
|
||||||
|
bgColor: '#f5f5f5',
|
||||||
|
hobbiesList: [
|
||||||
|
{title: '旅行', show: false},
|
||||||
|
{title: '爬山', show: false},
|
||||||
|
{title: '篮球', show: false},
|
||||||
|
{title: '羽毛球', show: false},
|
||||||
|
{title: '乒乓球', show: false},
|
||||||
|
{title: '徒步', show: false},
|
||||||
|
{title: '摄影', show: false},
|
||||||
|
{title: '音乐', show: false},
|
||||||
|
{title: '古典', show: false},
|
||||||
|
{title: '舞蹈', show: false},
|
||||||
|
{title: '电子游戏', show: false},
|
||||||
|
{title: '瑜伽', show: false},
|
||||||
|
{title: '跆拳道', show: false}
|
||||||
|
],
|
||||||
|
selectHobbiesList: ['旅行', '爬山', '篮球'],
|
||||||
|
customHobbiesList: [],
|
||||||
|
selCustomList: [],
|
||||||
|
isDeleteStatus: false,
|
||||||
|
customName: ''
|
||||||
|
|
||||||
|
},
|
||||||
|
onLoad(e) {
|
||||||
|
this.text = e.text
|
||||||
|
this.selfTextareaShow = true
|
||||||
|
if (e.text) {
|
||||||
|
console.log(e.text, 'text==-')
|
||||||
|
if (e.text == '兴趣爱好') {
|
||||||
|
this.bgColor = '#ffffff'
|
||||||
|
wx.setNavigationBarColor({
|
||||||
|
frontColor: '#000000',
|
||||||
|
backgroundColor: '#ffffff'
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.bgColor = '#f5f5f5'
|
||||||
|
wx.setNavigationBarColor({
|
||||||
|
frontColor: '#000000',
|
||||||
|
backgroundColor: '#F5F5F5'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.placeholderText = e.placeText
|
||||||
|
for (let i = 18; i < 75; i++) {
|
||||||
|
this.ageArray[0].push(i)
|
||||||
|
}
|
||||||
|
for (let i = 140; i < 200; i++) {
|
||||||
|
this.heightArray[0].push(i)
|
||||||
|
}
|
||||||
|
this.GetAddress()
|
||||||
|
if (e.text) {
|
||||||
|
wx.setNavigationBarTitle({
|
||||||
|
title: e.text
|
||||||
|
})
|
||||||
|
}
|
||||||
|
let colorData = wx.getStorageSync('colorData')
|
||||||
|
if (colorData) {
|
||||||
|
this.ageColor = colorData.ageColor
|
||||||
|
this.heightColor = colorData.heightColor
|
||||||
|
this.regionColor = colorData.regionColor
|
||||||
|
this.educColor = colorData.educColor
|
||||||
|
this.faithColor = colorData.faithColor
|
||||||
|
this.incomeColor = colorData.incomeColor
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
GetAddress() { // getaddress
|
||||||
|
let that = this
|
||||||
|
that.$get({url: `${service.host}/address/country/list`}).then(({code, data}) => {
|
||||||
|
that.provinces = data
|
||||||
|
that.provinces.forEach(item => {
|
||||||
|
if (item.Name == '中国') {
|
||||||
|
item.Children.forEach(sonItem => {
|
||||||
|
that.regionArray.push(sonItem.Name)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.getuser()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getuser() {
|
||||||
|
let that = this
|
||||||
|
that.$get({url: `${service.host}/user/profile`}).then(({code, data}) => {
|
||||||
|
that.introduction = data.introduction
|
||||||
|
that.ideal_mate = data.ideal_mate
|
||||||
|
that.interest_hobby = data.interest_hobby
|
||||||
|
if (that.text == '自我描述') {
|
||||||
|
that.value = data.introduction
|
||||||
|
} else if (that.text == '兴趣爱好') {
|
||||||
|
that.value = data.interest_hobby
|
||||||
|
} else if (that.text == '期望对方') {
|
||||||
|
that.value = data.ideal_mate
|
||||||
|
}
|
||||||
|
if (data.city_list_claim && data.city_list_claim != '') {
|
||||||
|
that.tscList = JSON.parse(JSON.stringify(data.city_list_claim.replace(/市/g, '').split(',')))
|
||||||
|
that.submitList = data.city_list_claim.split(',')
|
||||||
|
} else {
|
||||||
|
that.tscList = []
|
||||||
|
that.submitList = []
|
||||||
|
}
|
||||||
|
|
||||||
|
that.hobbiesList = that.hobbiesList.map(item => {
|
||||||
|
return {
|
||||||
|
title: item.title,
|
||||||
|
show: that.selectHobbiesList.includes(item.title)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
that.customHobbiesList = that.customHobbiesList.map(item => {
|
||||||
|
return {
|
||||||
|
title: item,
|
||||||
|
show: that.selCustomList.includes(item.title)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
try {
|
||||||
|
// this.mate_conditon = data.mate_conditon
|
||||||
|
let ageArr = data.mate_conditon.age.split('-', 2)
|
||||||
|
let agePickerArr = []
|
||||||
|
let statureArr = data.mate_conditon.stature.split('-', 2)
|
||||||
|
let staturePickerArr = []
|
||||||
|
this.ageArray[0].forEach((item, index) => {
|
||||||
|
if (item == ageArr[0]) {
|
||||||
|
this.ageIndex = [index, this.ageIndex[1]]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
for (let i = +ageArr[0] + 1; i < 76; i++) {
|
||||||
|
agePickerArr.push(i)
|
||||||
|
}
|
||||||
|
this.ageArray = [this.ageArray[0], agePickerArr]
|
||||||
|
this.ageArray[1].forEach((item, index) => {
|
||||||
|
if (item == ageArr[1].replace('岁', '')) {
|
||||||
|
this.ageIndex = [this.ageIndex[0], index]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.heightArray[0].forEach((item, index) => {
|
||||||
|
if (item == statureArr[0]) {
|
||||||
|
this.heightIndex = [index, this.heightIndex[1]]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
for (let i = +statureArr[0] + 1; i < 201; i++) {
|
||||||
|
staturePickerArr.push(i)
|
||||||
|
}
|
||||||
|
this.heightArray[1] = staturePickerArr
|
||||||
|
this.heightArray[1].forEach((item, index) => {
|
||||||
|
if (item == statureArr[1].replace('cm', '')) {
|
||||||
|
this.heightIndex = [this.heightIndex[0], index]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.regionArray.forEach((item, index) => {
|
||||||
|
if (item == data.mate_conditon.location) {
|
||||||
|
this.regionIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.educArray.forEach((item, index) => {
|
||||||
|
if (item == data.mate_conditon.degree) {
|
||||||
|
this.educIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.stateArray.forEach((item, index) => {
|
||||||
|
if (item == data.mate_conditon.state) {
|
||||||
|
this.stateIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.faithArray.forEach((item, index) => {
|
||||||
|
if (item == data.mate_conditon.belief) {
|
||||||
|
this.faithIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.incomeArray.forEach((item, index) => {
|
||||||
|
if (item == data.mate_conditon.income) {
|
||||||
|
this.incomeIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} catch (e) {}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
multiCity(country, province, city) {
|
||||||
|
let multiIndex = [0, 0, 0]
|
||||||
|
try {
|
||||||
|
this.provinces.forEach((item, index) => {
|
||||||
|
if (item.Name == '中国') {
|
||||||
|
multiIndex = [index, 0, 0]
|
||||||
|
this.$refs.selectCity.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: index,
|
||||||
|
column: 0
|
||||||
|
}}})
|
||||||
|
item.Children.forEach((res, indexA) => {
|
||||||
|
if (res.Name == province) {
|
||||||
|
this.$refs.selectCity.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: indexA,
|
||||||
|
column: 1
|
||||||
|
}}})
|
||||||
|
multiIndex = [multiIndex[0], indexA, 0]
|
||||||
|
res.Children.forEach((data, indexB) => {
|
||||||
|
if (data.Name == city) {
|
||||||
|
this.$refs.selectCity.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: indexB,
|
||||||
|
column: 2
|
||||||
|
}}})
|
||||||
|
multiIndex = [multiIndex[0], multiIndex[1], indexB]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log('33--')
|
||||||
|
this.multiIndex = multiIndex
|
||||||
|
} catch (e) {}
|
||||||
|
},
|
||||||
|
submitFn() {
|
||||||
|
let that = this
|
||||||
|
if (this.throttleShow) {
|
||||||
|
// this.throttleShow = false
|
||||||
|
if (!this.value) {
|
||||||
|
this.$showToast('请输入内容')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let reg = new RegExp('(微信|QQ|qq|weixin|wx|WX|1[0-9]{10}|[0-9]{6,11})+', 'g')
|
||||||
|
if (reg.test(this.value)) {
|
||||||
|
this.$showToast('你输入的信息可能含有联系方式,请重新填写!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$showLoading('提交中..')
|
||||||
|
let data = {}
|
||||||
|
if (that.text == '自我描述') {
|
||||||
|
data.introduction = that.value
|
||||||
|
} else if (that.text == '兴趣爱好') {
|
||||||
|
let defaultHob = that.hobbiesList.filter(item => {
|
||||||
|
return item.show
|
||||||
|
}).map(item => { return item.title })
|
||||||
|
let customHob = that.customHobbiesList.filter(item => {
|
||||||
|
return item.show
|
||||||
|
}).map(item => { return item.title })
|
||||||
|
console.log(defaultHob, customHob, '----999-----')
|
||||||
|
return
|
||||||
|
// data.interest_hobby = that.value
|
||||||
|
} else if (that.text == '期望对方') {
|
||||||
|
data.ideal_mate = that.value
|
||||||
|
if (this.ageIndex.length != 0) {
|
||||||
|
let ageText = `${this.ageArray[0][this.ageIndex[0]]}-${this.ageArray[1][this.ageIndex[1]]}岁`
|
||||||
|
this.mate_conditon.age = ageText
|
||||||
|
} else {
|
||||||
|
this.mate_conditon.age = '年龄不限'
|
||||||
|
}
|
||||||
|
if (this.heightIndex.length != 0) {
|
||||||
|
let heightText = `${this.heightArray[0][this.heightIndex[0]]}-${this.heightArray[1][this.heightIndex[1]]}cm`
|
||||||
|
this.mate_conditon.stature = heightText
|
||||||
|
} else {
|
||||||
|
this.mate_conditon.stature = '身高不限'
|
||||||
|
}
|
||||||
|
if (this.regionIndex && this.regionIndex != 0) {
|
||||||
|
this.mate_conditon.location = this.regionArray[this.regionIndex]
|
||||||
|
} else {
|
||||||
|
this.mate_conditon.location = '所在地不限'
|
||||||
|
}
|
||||||
|
if (this.educIndex && this.educIndex != 0) {
|
||||||
|
this.mate_conditon.degree = this.educArray[this.educIndex]
|
||||||
|
} else {
|
||||||
|
this.mate_conditon.degree = '学历不限'
|
||||||
|
}
|
||||||
|
if (this.stateIndex && this.stateIndex != 0) {
|
||||||
|
this.mate_conditon.state = this.stateArray[this.stateIndex]
|
||||||
|
} else {
|
||||||
|
this.mate_conditon.state = '情感不限'
|
||||||
|
}
|
||||||
|
if (this.faithIndex && this.faithIndex != 0) {
|
||||||
|
this.mate_conditon.belief = this.faithArray[this.faithIndex]
|
||||||
|
} else {
|
||||||
|
this.mate_conditon.belief = '信仰不限'
|
||||||
|
}
|
||||||
|
if (this.incomeIndex && this.incomeIndex != 0) {
|
||||||
|
this.mate_conditon.income = this.incomeArray[this.incomeIndex]
|
||||||
|
} else {
|
||||||
|
this.mate_conditon.income = '月收入不限'
|
||||||
|
}
|
||||||
|
let stcListSitkon = ''
|
||||||
|
if (this.submitList.length > 0) {
|
||||||
|
stcListSitkon = this.submitList.join(',')
|
||||||
|
}
|
||||||
|
data.mate_conditon = this.mate_conditon
|
||||||
|
data.city_claim = this.submitList.length == 0 ? 1 : 3
|
||||||
|
data.city_list_claim = stcListSitkon
|
||||||
|
let colorData = {
|
||||||
|
ageColor: this.ageColor,
|
||||||
|
heightColor: this.heightColor,
|
||||||
|
regionColor: this.regionColor,
|
||||||
|
educColor: this.educColor,
|
||||||
|
faithColor: this.faithColor,
|
||||||
|
incomeColor: this.incomeColor
|
||||||
|
}
|
||||||
|
wx.setStorageSync('colorData', colorData)
|
||||||
|
}
|
||||||
|
this.$put({url: `${service.host}/user/other/profie`, data}).then(({code, data}) => {
|
||||||
|
this.throttleShow = true
|
||||||
|
wx.hideLoading()
|
||||||
|
console.log('参数保存成功!')
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.throttleShow = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
textareaValue(e) {
|
||||||
|
console.log('textareaValue-----------------------------', e)
|
||||||
|
this.value = e
|
||||||
|
if (this.text == '自我描述') {
|
||||||
|
this.introduction = e
|
||||||
|
} else if (this.text == '兴趣爱好') {
|
||||||
|
this.interest_hobby = e
|
||||||
|
} else if (this.text == '期望对方') {
|
||||||
|
this.ideal_mate = e
|
||||||
|
}
|
||||||
|
},
|
||||||
|
bindAgePickerColumnChange(e) {
|
||||||
|
let agePickerArr = []
|
||||||
|
console.log('ageIndex---------------------', e.$wx.detail)
|
||||||
|
if (e.$wx.detail.value == 0 && e.$wx.detail.column === 0) {
|
||||||
|
this.ageIndex = []
|
||||||
|
this.mate_conditon.age = '年龄不限'
|
||||||
|
this.ageArray[1] = [this.ageArray[0], []]
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (e.$wx.detail.column == 0) {
|
||||||
|
for (let i = this.ageArray[0][e.$wx.detail.value] + 1; i < 76; i++) {
|
||||||
|
agePickerArr.push(i)
|
||||||
|
}
|
||||||
|
console.log(agePickerArr, '-agePickerArr')
|
||||||
|
this.ageArray = [this.ageArray[0], agePickerArr]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
bindAgePickerChange(e) {
|
||||||
|
console.log(e)
|
||||||
|
this.ageColor = true
|
||||||
|
if (e.$wx.detail.value[0] == 0) {
|
||||||
|
this.ageIndex = []
|
||||||
|
this.mate_conditon.age = '年龄不限'
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!e.$wx.detail.value[1]) {
|
||||||
|
e.$wx.detail.value = [e.$wx.detail.value[0], 0]
|
||||||
|
}
|
||||||
|
this.ageIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
bindHeightPickerColumnChange(e) {
|
||||||
|
let heightPickerArr = []
|
||||||
|
if (e.$wx.detail.value == 0 && e.$wx.detail.column === 0) {
|
||||||
|
this.heightIndex = []
|
||||||
|
this.mate_conditon.stature = '身高不限'
|
||||||
|
this.heightArray = [this.heightArray[0], []]
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (e.$wx.detail.column == 0) {
|
||||||
|
for (let i = this.heightArray[0][e.$wx.detail.value] + 1; i < 201; i++) {
|
||||||
|
heightPickerArr.push(i)
|
||||||
|
}
|
||||||
|
console.log(heightPickerArr, '-heightPickerArr')
|
||||||
|
this.heightArray = [this.heightArray[0], heightPickerArr]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
bindHeightPickerChange(e) {
|
||||||
|
console.log(e)
|
||||||
|
this.heightColor = true
|
||||||
|
if (e.$wx.detail.value[0] == 0) {
|
||||||
|
this.heightIndex = []
|
||||||
|
this.mate_conditon.stature = '身高不限'
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!e.$wx.detail.value[1]) {
|
||||||
|
e.$wx.detail.value = [e.$wx.detail.value[0], 0]
|
||||||
|
}
|
||||||
|
this.heightIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
bindEducPickerChange(e) {
|
||||||
|
this.educColor = true
|
||||||
|
if (e.$wx.detail.value == 0) {
|
||||||
|
this.mate_conditon.degree = '学历不限'
|
||||||
|
}
|
||||||
|
this.educIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
bindStatePickerChange(e) {
|
||||||
|
this.stateColor = true
|
||||||
|
if (e.$wx.detail.value == 0) {
|
||||||
|
this.mate_conditon.state = '情感不限'
|
||||||
|
}
|
||||||
|
this.stateIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
bindFaithPickerChange(e) {
|
||||||
|
this.faithColor = true
|
||||||
|
if (e.$wx.detail.value == 0) {
|
||||||
|
this.mate_conditon.belief = '信仰不限'
|
||||||
|
}
|
||||||
|
this.faithIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
bindIncomePickerChange(e) {
|
||||||
|
this.incomeColor = true
|
||||||
|
if (e.$wx.detail.value == 0) {
|
||||||
|
this.mate_conditon.income = '月收入不限'
|
||||||
|
}
|
||||||
|
this.incomeIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
deleteTsc(index) {
|
||||||
|
this.tscList.splice(index, 1)
|
||||||
|
this.submitList.splice(index, 1)
|
||||||
|
},
|
||||||
|
wholeDelete() {
|
||||||
|
this.tscList = []
|
||||||
|
this.submitList = []
|
||||||
|
},
|
||||||
|
selectCity(e, index) {
|
||||||
|
let identical = false,
|
||||||
|
sfdIndex = 0
|
||||||
|
try {
|
||||||
|
if (this.tscList.length == 0) {
|
||||||
|
this.tscList.push(e[2].replace(/市/g, ''))
|
||||||
|
this.tscList.splice(0, 0) // 长度判断渲染问题
|
||||||
|
this.submitList.push(e[2])
|
||||||
|
} else {
|
||||||
|
this.tscList.forEach((item, index) => {
|
||||||
|
if (item == e[2].replace(/市/g, '')) {
|
||||||
|
identical = true
|
||||||
|
this.$showToast('请不要重复添加城市')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (identical) return
|
||||||
|
this.tscList.push(e[2].replace(/市/g, ''))
|
||||||
|
this.submitList.push(e[2])
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
|
this.selectType = 'custom'
|
||||||
|
},
|
||||||
|
multiCityV2(value) {
|
||||||
|
this.multiIndex = value
|
||||||
|
},
|
||||||
|
getProvinces(value) {
|
||||||
|
this.provinces = value
|
||||||
|
},
|
||||||
|
// 选中标签
|
||||||
|
changeSelect(item, index, type) {
|
||||||
|
if (type == '0') {
|
||||||
|
this.hobbiesList[index].show = !item.show
|
||||||
|
} else {
|
||||||
|
this.customHobbiesList[index].show = !item.show
|
||||||
|
}
|
||||||
|
},
|
||||||
|
customAdd() {
|
||||||
|
this.customName = ''
|
||||||
|
this.modalName = 'customAdd'
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
changeOccupation() {
|
||||||
|
let that = this
|
||||||
|
let data = {
|
||||||
|
customName: that.customName
|
||||||
|
}
|
||||||
|
that.customHobbiesList.push({title: that.customName, show: false})
|
||||||
|
that.modalName = ''
|
||||||
|
// that.$post({url: `${service.host}/addresses/v2`}, data).then(({code, data}) => {
|
||||||
|
// that.getuser()
|
||||||
|
// that.modalName = ''
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
delCustomHob(item, index) {
|
||||||
|
let that = this
|
||||||
|
let data = {
|
||||||
|
customName: item
|
||||||
|
}
|
||||||
|
that.customHobbiesList.splice(index, 1)
|
||||||
|
console.log(that.customHobbiesList, 'that.customHobbiesList==')
|
||||||
|
// that.$delete({url: `${service.host}/addresses/v2`}).then(({code, data}) => {
|
||||||
|
// that.getuser()
|
||||||
|
// that.modalName = ''
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
changeSelectHob(item) {
|
||||||
|
console.log('22')
|
||||||
|
return this.selectHobbiesList.includes(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
page{
|
||||||
|
background-color: #F5F5F5;
|
||||||
|
}
|
||||||
|
.selfTextarea {
|
||||||
|
padding-bottom: 100rpx;
|
||||||
|
.u_bt {
|
||||||
|
width: 520rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
border-radius: 44rpx;
|
||||||
|
}
|
||||||
|
.m_con {
|
||||||
|
.u_con_tt {
|
||||||
|
padding: 20rpx 40rpx;
|
||||||
|
}
|
||||||
|
.custom-title{
|
||||||
|
margin-top: 100rpx;
|
||||||
|
.custom-delete-icon{
|
||||||
|
margin-right: 2rpx;
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
}
|
||||||
|
.custom-delete-title{
|
||||||
|
margin-right: 30rpx;
|
||||||
|
height: 34rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.is-delete{
|
||||||
|
color: #F33B6C;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_conPi {
|
||||||
|
border-radius: 32rpx;
|
||||||
|
background-color: white;
|
||||||
|
.m_conPi_lst {
|
||||||
|
padding: 20rpx 40rpx;
|
||||||
|
.u_conPi_lst {
|
||||||
|
padding: 20rpx 0;
|
||||||
|
.u_conLst_ct {
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.u_text_tt {
|
||||||
|
padding: 60rpx 40rpx 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
textarea {
|
||||||
|
width: 100%;
|
||||||
|
caret-color:#FF95B1;
|
||||||
|
}
|
||||||
|
.textarea {
|
||||||
|
padding: 10rpx 30rpx 10rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: white;
|
||||||
|
margin-bottom: 80rpx;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
.areas {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 300rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.placeholder_class {
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
}
|
||||||
|
.currentWordNumber {
|
||||||
|
text-align: right;
|
||||||
|
color: #C2C2C2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.demand_item_box{
|
||||||
|
padding: 40rpx 20rpx 60rpx 20rpx;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ui-hobbies-big-box{
|
||||||
|
margin: 20rpx 30rpx;
|
||||||
|
.hobbies-box{
|
||||||
|
position: relative;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
margin-bottom: 24rpx;
|
||||||
|
padding: 10rpx 22rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
background: #f5f5f5;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
}
|
||||||
|
.hobbies-box-select{
|
||||||
|
color: #FFFFFF;
|
||||||
|
background: #FF5380;
|
||||||
|
}
|
||||||
|
.hobbies-box-del{
|
||||||
|
position: absolute;
|
||||||
|
top:0;
|
||||||
|
right:0;
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
}
|
||||||
|
.custom-hobbies-add{
|
||||||
|
margin-bottom: 24rpx;
|
||||||
|
padding:10rpx 24rpx;
|
||||||
|
height: 30px;
|
||||||
|
color: #F33B6C;
|
||||||
|
border-radius: 15px;
|
||||||
|
border: 1px solid #FF5380;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-imgs {
|
||||||
|
height: 100rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background: #ffffff;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.u_name_inp_V2 {
|
||||||
|
height: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '自我描述',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
texTarea: '~@/components/textarea',
|
||||||
|
selectCity: '~@/components/selectCity',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
777
src/pages/users/setTing.wpy
Normal file
777
src/pages/users/setTing.wpy
Normal file
@ -0,0 +1,777 @@
|
|||||||
|
<template>
|
||||||
|
<view class="setTing">
|
||||||
|
<view class="m_lst" >
|
||||||
|
<!-- <view class="u_lst f-fbc" >-->
|
||||||
|
<!-- <view class="u_lst f-fbc">-->
|
||||||
|
<!-- <view class="f-fc">-->
|
||||||
|
<!-- <view class="font_30 " >账号与安全</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- <view class="color-999 font_28">29991201</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<block v-if="phoneNumber">
|
||||||
|
<view class="u_lst f-fbc" >
|
||||||
|
<view class="u_lst f-fbc">
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_30 " >手机号绑定</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="color-999 font_28">{{phoneNumber}}</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<button class="u_lst f-fbc btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">
|
||||||
|
<view class="u_lst f-fbc">
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_30 " >手机号绑定</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<image class="u_lst_you" mode="widthFix" src="https://images.ufutx.com/202012/23/f9713dc39b5d236067834ea0f1a6edaf.png"></image>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<view class="m_lst" v-for="(itemV1,indexV1) in lists" :key="indexV1">
|
||||||
|
<block v-for="(item,index) in itemV1" :key="index">
|
||||||
|
<block v-if="item.title == '团契VIP'">
|
||||||
|
<view class="u_lst f-fbc" v-if="user.id == '616'" @tap="goto(item.path,item.title)">
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_30 color-333" >{{item.title}}</view>
|
||||||
|
</view>
|
||||||
|
<image class="u_lst_you" mode="widthFix" src="https://images.ufutx.com/202012/23/f9713dc39b5d236067834ea0f1a6edaf.png"></image>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="u_lst f-fbc" @tap="goto(item.path,item.title)">
|
||||||
|
<view class="f-fc">
|
||||||
|
<view class="font_30 color-333" v-if="item.title == '资料'">{{user.hidden_profile == 'ALLSEX'?'打开资料':'关闭资料'}}</view>
|
||||||
|
<view class="font_30 color-333" v-else>{{item.title}}</view>
|
||||||
|
<image v-if="item.title == '隐身访问' || item.title == '访客通知'" class="u_lst_vipImg" src="https://images.ufutx.com/202107/06/1ea086f5a6001752fa6efd55eabbe8d6.png" mode="scaleToFill" lazy-load="false"></image>
|
||||||
|
</view>
|
||||||
|
<!-- <switch v-if="item.title == '每日推荐提醒'" checked="{{user.label_notice}}" disabled="{{switchDisabled}}" color="#d92553" class="flo_r" style="margin-right: -2rpx;margin-top: -6rpx;"/>-->
|
||||||
|
<switch v-if="item.title == '聊天消息提醒'" checked="{{user.notice_chat}}" disabled="{{switchDisabled}}" color="#d92553" class="flo_r" style="margin-right: -2rpx;margin-top: -6rpx;"/>
|
||||||
|
<switch v-if="item.title == '营销消息'" checked="{{user.notice_market}}" disabled="{{switchDisabled}}" color="#d92553" class="flo_r" style="margin-right: -2rpx;margin-top: -6rpx;"/>
|
||||||
|
<!-- <switch v-if="item.title == '夸夸我'" checked="{{user.message_notice}}" disabled="{{switchDisabled}}" color="#d92553" class="flo_r" style="margin-right: -2rpx;margin-top: -6rpx;"/>-->
|
||||||
|
<switch v-if="item.title == '隐身访问'" checked="{{user.hidden_preview}}" disabled="{{switchDisabled}}" color="#d92553" class="flo_r" style="margin-right: -2rpx;margin-top: -6rpx;"/>
|
||||||
|
<switch v-if="item.title == '访客通知'" checked="{{user.notice_preview}}" disabled="{{switchDisabled}}" color="#d92553" class="flo_r" style="margin-right: -2rpx;margin-top: -6rpx;"/>
|
||||||
|
<image v-if="item.title !== '隐身访问' && item.title !== '访客通知' && item.title !== '每日推荐提醒' && item.title !== '夸夸我' && item.title !== '聊天消息提醒'&& item.title !== '营销消息' && item.title !== '关于福恋'" class="u_lst_you" mode="widthFix" src="https://images.ufutx.com/202012/23/f9713dc39b5d236067834ea0f1a6edaf.png"></image>
|
||||||
|
<view v-if="item.title == '关于福恋'">
|
||||||
|
<span class="color-666 font_28 d_versions" >{{ versions }}</span>
|
||||||
|
<image class="u_lst_you" mode="widthFix" src="https://images.ufutx.com/202012/23/f9713dc39b5d236067834ea0f1a6edaf.png"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<block v-if="posterConfig">
|
||||||
|
<!-- 生成海报-->
|
||||||
|
<poster type="2d" id="poster" hide-loading="{{false}}" preload="{{false}}" config="{{posterConfig}}"
|
||||||
|
bind:success="onPosterSuccess">
|
||||||
|
</poster>
|
||||||
|
<!-- 分享微信卡片-->
|
||||||
|
<poster ref="poster1" type="2d" id="poster1" hide-loading="{{false}}" preload="{{false}}" config="{{posterConfig1}}"
|
||||||
|
bind:success="onPosterSuccessWx" >
|
||||||
|
</poster>
|
||||||
|
</block>
|
||||||
|
<block v-if="!hide && posterConfig">
|
||||||
|
<shareComponent :hide.sync="hide" :shareImage.sync="invite_pic"></shareComponent>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<UnlockingDialog :modalName="unlockIngModalName" @unlockingCut="unlockingCut"></UnlockingDialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
import {service} from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import {getPhoneNumber} from '../../utils/util'
|
||||||
|
|
||||||
|
const app = getApp().$wepy.$options
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
user: {
|
||||||
|
name: '获取中...'
|
||||||
|
},
|
||||||
|
rankData: {
|
||||||
|
rank_id: 0
|
||||||
|
},
|
||||||
|
posterConfig: {},
|
||||||
|
shareConfig: {
|
||||||
|
width: 750,
|
||||||
|
height: 1334,
|
||||||
|
backgroundColor: '#fff',
|
||||||
|
debug: false,
|
||||||
|
texts: [],
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
url: 'https://image.fulllinkai.com/202206/20/57903775df70bd3f6ebde1b7ad00d159.png',
|
||||||
|
width: 750,
|
||||||
|
height: 1334,
|
||||||
|
y: 0,
|
||||||
|
x: 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: '',
|
||||||
|
width: 176,
|
||||||
|
height: 176,
|
||||||
|
y: 1102,
|
||||||
|
x: 84
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
posterConfig1: null,
|
||||||
|
shareConfig1: {
|
||||||
|
width: 420,
|
||||||
|
height: 336,
|
||||||
|
backgroundColor: '#fff',
|
||||||
|
debug: false,
|
||||||
|
texts: [
|
||||||
|
{
|
||||||
|
x: 20,
|
||||||
|
y: 248 + 26,
|
||||||
|
lineHeight: 22,
|
||||||
|
width: 200,
|
||||||
|
text: '',
|
||||||
|
fontSize: 26,
|
||||||
|
color: '#fff',
|
||||||
|
zIndex: 99
|
||||||
|
}, {
|
||||||
|
x: 20,
|
||||||
|
y: 288 + 26,
|
||||||
|
width: 200,
|
||||||
|
lineHeight: 22,
|
||||||
|
text: '',
|
||||||
|
fontSize: 26,
|
||||||
|
color: '#fff',
|
||||||
|
zIndex: 99
|
||||||
|
}
|
||||||
|
],
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
url: '',
|
||||||
|
width: 420,
|
||||||
|
height: 336,
|
||||||
|
y: 0,
|
||||||
|
x: 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: 'https://image.fulllinkai.com/202206/20/be5b39dde1ad4720893b2e3c52b4480d.png',
|
||||||
|
width: 420,
|
||||||
|
height: 100,
|
||||||
|
y: 236,
|
||||||
|
x: 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: 'https://image.fulllinkai.com/202206/20/bd732960011f55fed0e5e7d623118494.png',
|
||||||
|
width: 136,
|
||||||
|
height: 40,
|
||||||
|
y: 276,
|
||||||
|
x: 264
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
deadline: '',
|
||||||
|
title: '',
|
||||||
|
phoneNumber: '',
|
||||||
|
invite_pic: '',
|
||||||
|
hide: true,
|
||||||
|
showModalStatus: false,
|
||||||
|
showChangeState: false,
|
||||||
|
animationData: {},
|
||||||
|
pic: [],
|
||||||
|
Image: 'http://images.ufutx.com/201902/25/542cc218e40cbc8a8e3a9ce23d7f4789.gif',
|
||||||
|
files: '',
|
||||||
|
ShowUpload: false,
|
||||||
|
border: 0,
|
||||||
|
BookImage: '',
|
||||||
|
showUpLoad: false,
|
||||||
|
stopMusic: false,
|
||||||
|
shareCanvasImg: '',
|
||||||
|
innerAudioContext: null,
|
||||||
|
StateList: [
|
||||||
|
{title: '单身', active: true, type: 'single'},
|
||||||
|
{title: '恋爱', active: false, type: 'loveing'},
|
||||||
|
{title: '已婚', active: false, type: 'marriage'}
|
||||||
|
],
|
||||||
|
StateText: '',
|
||||||
|
unlockIngModalName: '',
|
||||||
|
switchDisabled: false,
|
||||||
|
system: '',
|
||||||
|
versions: '',
|
||||||
|
lists: [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
title: '团契VIP',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: '/pages/users/groupList'
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: '分享我的卡片',
|
||||||
|
// type: 'modal',
|
||||||
|
// path: ''
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: '授权设置',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: '/pages/users/groupList'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '隐身访问',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '访客通知',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '屏蔽管理',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: '/pages/users/blacklist'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
// {
|
||||||
|
// title: '每日推荐提醒',
|
||||||
|
// type: 'navigateTo',
|
||||||
|
// path: ''
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: '聊天消息提醒',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '营销消息',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: ''
|
||||||
|
}
|
||||||
|
// {
|
||||||
|
// title: '夸夸我',
|
||||||
|
// type: 'navigateTo',
|
||||||
|
// path: ''
|
||||||
|
// }
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
title: '资料',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: '/pages/users/logout'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
title: '帮助中心',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: 'https://love.ufutx.com/h5/#/guide'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '关于福恋',
|
||||||
|
type: 'navigateTo',
|
||||||
|
path: '/pages/users/aboutLove'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
// user() {
|
||||||
|
// console.log(this.user.type)
|
||||||
|
// for (let item of this.StateList) {
|
||||||
|
// if (item.type == this.user.type) {
|
||||||
|
// item.active = true
|
||||||
|
// this.StateText = item.title
|
||||||
|
// } else {
|
||||||
|
// item.active = false
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// this.user.deadline = this.user.deadline ? this.user.deadline.split(' ')[0] : ''
|
||||||
|
// console.log(this.user.deadline)
|
||||||
|
// this.Image = this.user.avatar
|
||||||
|
// if (this.user.deadline != null) {
|
||||||
|
// this.deadline = this.user.deadline
|
||||||
|
// } else {
|
||||||
|
// this.deadline = ''
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// pic() {
|
||||||
|
// console.log(this.pic)
|
||||||
|
// },
|
||||||
|
// phoneNumber(mebile) {
|
||||||
|
// console.log(mebile)
|
||||||
|
// let reg = /^(\d{3})\d*(\d{4})$/
|
||||||
|
// this.phoneNumber = mebile.replace(reg, '$1****$2')
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
let that = this
|
||||||
|
let openid = wx.getStorageSync('openid')
|
||||||
|
let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let type = wx.getStorageSync('type')
|
||||||
|
let url = ''
|
||||||
|
if (type === 'marriage') {
|
||||||
|
url = `/pages/home/informationV2?id=${fromUserID}&from_openid=${openid}&share_user_id=${fromUserID}&from_user_id=${fromUserID}`
|
||||||
|
} else {
|
||||||
|
url = `/pages/home/information?id=${fromUserID}&from_openid=${openid}&share_user_id=${fromUserID}&from_user_id=${fromUserID}`
|
||||||
|
}
|
||||||
|
console.log(url)
|
||||||
|
console.log(that.shareCanvasImg, '分享海报')
|
||||||
|
return {
|
||||||
|
title: that.title,
|
||||||
|
path: url,
|
||||||
|
imageUrl: that.shareCanvasImg,
|
||||||
|
success: function (res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
var shareTickets = res.shareTickets
|
||||||
|
if (shareTickets.length == 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function (res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.versions = app.globalData.versions
|
||||||
|
this.initPageData()
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
// this.$invoke('modal', 'showModal')
|
||||||
|
this.system = app.globalData.systemInfo.system.split(' ')[0]
|
||||||
|
console.log(this.user)
|
||||||
|
},
|
||||||
|
|
||||||
|
// onHide() {
|
||||||
|
// this.$invoke('modal', 'hideModal')
|
||||||
|
// this.$invoke('modalUp', 'hideModal')
|
||||||
|
// this.stopMusic = !this.stopMusic
|
||||||
|
// this.onPauseMusic()
|
||||||
|
// }
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
vipData() {
|
||||||
|
this.$get({url: service.host + '/user/center'}).then(({code, data}) => {
|
||||||
|
this.rankData = data.rank_profile
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 初始化页面数据
|
||||||
|
initPageData() {
|
||||||
|
this.$get({url: service.host + '/setting/list'}).then(({code, data}) => {
|
||||||
|
this.init = true
|
||||||
|
this.user = data
|
||||||
|
// if (this.user.profile_courtship.message_config == 2) {
|
||||||
|
// this.user.profile_courtship.message_config = 0
|
||||||
|
// }
|
||||||
|
this.phoneNumber = wx.getStorageSync('mobile')
|
||||||
|
let vm = this,
|
||||||
|
my_qrcode = wx.getStorageSync('my_qrcode')
|
||||||
|
// if (my_qrcode) {
|
||||||
|
// vm.shareConfig.images[1].url = my_qrcode
|
||||||
|
// setTimeout(() => {
|
||||||
|
// vm.posterConfig = vm.shareConfig
|
||||||
|
// vm.$wxpage.selectComponent('#poster').onCreate(true)
|
||||||
|
// }, 500)
|
||||||
|
// }
|
||||||
|
// this.title = `我是"${data.nickname}",这是我的小程序卡片`
|
||||||
|
// if (data.photo || data.avatar) {
|
||||||
|
// let year = '', city = '', degree = '', industry_sub = ''
|
||||||
|
// if (data.profile_courtship.birthday) {
|
||||||
|
// year = data.profile_courtship.birthday.slice(2, 4) + '年'
|
||||||
|
// }
|
||||||
|
// if (data.profile_courtship.city) {
|
||||||
|
// city = data.profile_courtship.city
|
||||||
|
// }
|
||||||
|
// if (data.profile_courtship.degree) {
|
||||||
|
// degree = data.profile_courtship.degree
|
||||||
|
// }
|
||||||
|
// if (data.industry_sub) {
|
||||||
|
// industry_sub = data.industry_sub
|
||||||
|
// }
|
||||||
|
// console.log(year, city, degree, industry_sub)
|
||||||
|
// vm.shareConfig1.texts[0].text = `${year} | ${city}`
|
||||||
|
// vm.shareConfig1.texts[1].text = `${degree} | ${industry_sub}`
|
||||||
|
// vm.shareConfig1.images[0].url = data.photo || data.avatar
|
||||||
|
// setTimeout(() => {
|
||||||
|
// vm.posterConfig1 = vm.shareConfig1
|
||||||
|
// // vm.$refs.poster1.onCreate(true)
|
||||||
|
// }, 500)
|
||||||
|
// }
|
||||||
|
// if (data.type == 'marriage') {
|
||||||
|
// this.list.splice(4)
|
||||||
|
// this.listV2 = [
|
||||||
|
// {
|
||||||
|
// icon: 'http://images.ufutx.com/201906/06/d9c45bb3869b616189ac0723887928ad.png',
|
||||||
|
// title: '分享给好友',
|
||||||
|
// type: 'navigateTo',
|
||||||
|
// subhead: '获得更多的祝福',
|
||||||
|
// path: '/pages/users/myShare'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// icon: 'http://images.ufutx.com/201906/06/0059f55a19360df71f84b8d90d265f54.png',
|
||||||
|
// title: '使用反馈',
|
||||||
|
// type: 'navigateTo',
|
||||||
|
// subhead: '共同维护福恋',
|
||||||
|
// path: '/pages/users/feedback'
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
vm.vipData()
|
||||||
|
wx.setStorageSync('type', data.type)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onPlayMusic() {
|
||||||
|
this.innerAudioContext = wx.createInnerAudioContext()
|
||||||
|
this.innerAudioContext.autoplay = true
|
||||||
|
this.innerAudioContext.src = 'http://fs.w.kugou.com/201903131827/e1a8ec0760cadfae374d8134e34586e6/G005/M0A/0D/11/pYYBAFUAR6OIO27aAA_94zuQwNEAABIIALm1Z8AD_37501.mp3'
|
||||||
|
this.innerAudioContext.loop = true
|
||||||
|
this.innerAudioContext.onPlay(() => {
|
||||||
|
console.log('开始播放')
|
||||||
|
})
|
||||||
|
this.innerAudioContext.onError((res) => {
|
||||||
|
console.log(res.errMsg)
|
||||||
|
console.log(res.errCode)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onPauseMusic() {
|
||||||
|
this.$invoke('modal', 'hideModal')
|
||||||
|
this.$invoke('modalUp', 'hideModal')
|
||||||
|
this.showUpLoad = !this.showUpLoad
|
||||||
|
this.stopMusic = !this.stopMusic
|
||||||
|
if (this.innerAudioContext) {
|
||||||
|
this.innerAudioContext.pause(() => {
|
||||||
|
console.log('停止播放')
|
||||||
|
})
|
||||||
|
this.innerAudioContext.onError((res) => {
|
||||||
|
console.log(res.errMsg)
|
||||||
|
console.log(res.errCode)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
upDataAvatar() {
|
||||||
|
let data = {
|
||||||
|
photo: this.Image
|
||||||
|
}
|
||||||
|
this.$put({url: `${service.user}/photo`, data}, {
|
||||||
|
success: ({code, data}) => {
|
||||||
|
this.$Toast_success('更换成功')
|
||||||
|
},
|
||||||
|
fail: ({code, data}) => {
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
wx.hideLoading()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
hiddenChange() { // 隐身处理
|
||||||
|
console.log(this.user, this.user.hidden_preview, '000330')
|
||||||
|
if (this.rankData.rank_id <= 0 && this.user.hidden_preview == 0) {
|
||||||
|
if (this.system == 'iOS') {
|
||||||
|
console.log('ios====')
|
||||||
|
this.unlockIngModalName = 'iosTipsModal'
|
||||||
|
} else {
|
||||||
|
this.unlockIngModalName = 'purchaseModal'
|
||||||
|
}
|
||||||
|
this.switchDisabled = true
|
||||||
|
this.user.hidden_preview = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$post({url: `${service.host}/setting/hidden/preview`}).then(({code, data}) => {
|
||||||
|
this.$showToast('设置成功')
|
||||||
|
this.user.hidden_preview = !this.user.hidden_preview
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
visitorChange() { // 访客通知设置
|
||||||
|
if (this.rankData.rank_id <= 0 && this.user.notice_preview == 0) {
|
||||||
|
if (this.system == 'iOS') {
|
||||||
|
this.unlockIngModalName = 'iosTipsModal'
|
||||||
|
} else {
|
||||||
|
this.unlockIngModalName = 'purchaseModal'
|
||||||
|
}
|
||||||
|
this.switchDisabled = true
|
||||||
|
this.user.notice_preview = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$post({url: `${service.host}/setting/preview/notice`}).then(({code, data}) => {
|
||||||
|
this.$showToast('设置成功')
|
||||||
|
this.user.notice_preview = !this.user.notice_preview
|
||||||
|
})
|
||||||
|
},
|
||||||
|
newMsgChange() { // 聊天消息提醒
|
||||||
|
this.$post({url: `${service.host}/setting/chat/notice`}).then(({code, data}) => {
|
||||||
|
this.$showToast('设置成功')
|
||||||
|
this.user.notice_chat = !this.user.notice_chat
|
||||||
|
})
|
||||||
|
},
|
||||||
|
marketingMsgChange() { // 营销消息
|
||||||
|
this.$post({url: `${service.host}/setting/market/notice`}).then(({code, data}) => {
|
||||||
|
this.$showToast('设置成功')
|
||||||
|
this.user.notice_market = !this.user.notice_market
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openData() { // 打开资料
|
||||||
|
let vm = this
|
||||||
|
vm.$put({
|
||||||
|
url: `${service.host}/change/hidden/profile`,
|
||||||
|
data: {type: 'NONE'}
|
||||||
|
}).then(({code, res}) => {
|
||||||
|
vm.$showToast('已打开')
|
||||||
|
vm.$get({url: service.user}, {
|
||||||
|
success: ({code, data}) => {
|
||||||
|
vm.user = data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gotoH5(item) {
|
||||||
|
console.log(encodeURIComponent(item))
|
||||||
|
wx.navigateTo({url: '/pages/books/bookDetail?url=' + encodeURIComponent(item)})
|
||||||
|
},
|
||||||
|
onPosterSuccess(e) { // 分享海报
|
||||||
|
let vm = this
|
||||||
|
vm.invite_pic = e.detail
|
||||||
|
console.log(e.detail, '海报')
|
||||||
|
wx.hideLoading()
|
||||||
|
},
|
||||||
|
onPosterSuccessWx(e) { // 分享微信
|
||||||
|
let vm = this
|
||||||
|
vm.shareCanvasImg = e.detail
|
||||||
|
console.log(e.detail, 'wx')
|
||||||
|
wx.hideLoading()
|
||||||
|
},
|
||||||
|
getPhoneNumber({$wx: e}) { // 获取手机号
|
||||||
|
let vm = this
|
||||||
|
if (e.detail.iv) {
|
||||||
|
getPhoneNumber(e).then((data) => {
|
||||||
|
console.log(data, 'phone====')
|
||||||
|
if (data.phone) {
|
||||||
|
vm.phoneNumber = data.phone
|
||||||
|
vm.$showToast('绑定成功')
|
||||||
|
let pages = getCurrentPages()
|
||||||
|
let prevPage = pages[pages.length - 2] // 上一个页面
|
||||||
|
if (prevPage && prevPage.route == 'pages/users/myCertification') {
|
||||||
|
vm.$gotoBack(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if (phoneNumber) {
|
||||||
|
// vm.phoneNumber = phoneNumber
|
||||||
|
// vm.$showToast('绑定成功')
|
||||||
|
// let pages = getCurrentPages()
|
||||||
|
// let prevPage = pages[pages.length - 2] // 上一个页面
|
||||||
|
// if (prevPage && prevPage.route == 'pages/users/myCertification') {
|
||||||
|
// vm.$gotoBack(1)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// vm.$showToast('绑定成功')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
previewImage(item, list) {
|
||||||
|
this.$previewImage(item, list)
|
||||||
|
},
|
||||||
|
hide() {
|
||||||
|
this.stopMusic = !this.stopMusic
|
||||||
|
this.onPauseMusic()
|
||||||
|
},
|
||||||
|
chooseimage() {
|
||||||
|
this.onPauseMusic()
|
||||||
|
console.log(this.$getCurrentPageUrl(), 'asda')
|
||||||
|
this.$goto(`/pages/users/ImageCropper?src=${this.Image}`)
|
||||||
|
// this.$invoke('uploadImage', 'chooseimage')
|
||||||
|
},
|
||||||
|
// 注销账号
|
||||||
|
logout() {
|
||||||
|
let that = this
|
||||||
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
|
title: '警告',
|
||||||
|
content: '本操作将会注销您的账户,可能会导致您错过精心为您配对的另一半,是否继续?',
|
||||||
|
cancelText: '确定',
|
||||||
|
confirmText: '取消',
|
||||||
|
success: function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
} else if (res.cancel) {
|
||||||
|
that.$delete({url: `${service.host}/admin/users/${that.user.id}`}).then(({code, data}) => {
|
||||||
|
wx.clearStorageSync()
|
||||||
|
wx.showModal({ // 使用模态框提示用户进行操作
|
||||||
|
title: 'Sorry!',
|
||||||
|
content: '很抱歉!我们的产品没有留住你,希望我们能够再次见面!!!',
|
||||||
|
showCancel: false,
|
||||||
|
confirmText: '确定',
|
||||||
|
success: function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
that.$goto('/pages/tabBar/welcome')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 显示对话框
|
||||||
|
showModal() {
|
||||||
|
// 显示遮罩层
|
||||||
|
var animation = wx.createAnimation({
|
||||||
|
duration: 200,
|
||||||
|
timingFunction: 'linear',
|
||||||
|
delay: 0
|
||||||
|
})
|
||||||
|
this.animation = animation
|
||||||
|
animation.translateY(300).step()
|
||||||
|
this.animationData = animation.export()
|
||||||
|
this.showModalStatus = true
|
||||||
|
setTimeout(function () {
|
||||||
|
animation.translateY(0).step()
|
||||||
|
this.animationData = animation.export()
|
||||||
|
}.bind(this), 200)
|
||||||
|
},
|
||||||
|
// 隐藏对话框
|
||||||
|
hideModal() {
|
||||||
|
// 隐藏遮罩层
|
||||||
|
var animation = wx.createAnimation({
|
||||||
|
duration: 200,
|
||||||
|
timingFunction: 'linear',
|
||||||
|
delay: 0
|
||||||
|
})
|
||||||
|
this.animation = animation
|
||||||
|
animation.translateY(300).step()
|
||||||
|
this.animationData = animation.export()
|
||||||
|
setTimeout(function () {
|
||||||
|
animation.translateY(0).step()
|
||||||
|
this.animationData = animation.export()
|
||||||
|
this.showModalStatus = false
|
||||||
|
}.bind(this), 200)
|
||||||
|
},
|
||||||
|
|
||||||
|
goto(url, title) {
|
||||||
|
console.log(this.hide, 'url====')
|
||||||
|
if (title == '分享我的卡片') {
|
||||||
|
this.hide = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (title == '授权设置') {
|
||||||
|
wx.openSetting({
|
||||||
|
success(res) {
|
||||||
|
console.log('成功', res)
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.log('失败', err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (title == '隐身访问') {
|
||||||
|
this.hiddenChange()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (title == '访客通知') {
|
||||||
|
this.visitorChange()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (title == '聊天消息提醒') {
|
||||||
|
this.newMsgChange()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (title == '营销消息') {
|
||||||
|
this.marketingMsgChange()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (title == '帮助中心') {
|
||||||
|
this.gotoH5(url)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (title == '资料' && this.user.hidden_profile == 'ALLSEX') {
|
||||||
|
this.openData()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
gotoUser(type) {
|
||||||
|
this.onPauseMusic()
|
||||||
|
let url = ''
|
||||||
|
if (type == 'single') {
|
||||||
|
url = '/pages/users/unmarriV2'
|
||||||
|
} else {
|
||||||
|
url = '/pages/users/intro'
|
||||||
|
}
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
hideShare(val) {
|
||||||
|
this.hide = true
|
||||||
|
},
|
||||||
|
UpLoadImage(value) {
|
||||||
|
let vm = this
|
||||||
|
vm.Image = value
|
||||||
|
vm.upDataAvatar()
|
||||||
|
},
|
||||||
|
toUpdateCut() {
|
||||||
|
this.switchDisabled = false
|
||||||
|
this.initPageData()
|
||||||
|
},
|
||||||
|
unlockingCut(e) {
|
||||||
|
console.log(e, '---')
|
||||||
|
this.unlockIngModalName = e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
|
||||||
|
page{
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
.setTing {
|
||||||
|
background: #f8f8f8;
|
||||||
|
min-height: 100vh;
|
||||||
|
button::after {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.m_lst {
|
||||||
|
padding: 0 30rpx;
|
||||||
|
margin-top: 12rpx;
|
||||||
|
background-color: white;
|
||||||
|
.u_lst {
|
||||||
|
height: 90rpx;
|
||||||
|
border-bottom: 2rpx solid #F5F5F5;
|
||||||
|
.u_lst_you {
|
||||||
|
width: 12rpx;
|
||||||
|
height: auto;
|
||||||
|
vertical-align: center;
|
||||||
|
margin-bottom: -4rpx;
|
||||||
|
margin-left: 12rpx;
|
||||||
|
}
|
||||||
|
.u_lst_vipImg {
|
||||||
|
width: 48rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '设置',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
UnlockingDialog: '~@/components/UnlockingDialog',
|
||||||
|
shareComponent: '~@/components/shareComponent',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
836
src/pages/users/unmarri.wpy
Normal file
836
src/pages/users/unmarri.wpy
Normal file
@ -0,0 +1,836 @@
|
|||||||
|
<template>
|
||||||
|
<view class=" unmarrContainer">
|
||||||
|
<view class="orderdata">
|
||||||
|
<view class="mainTitle bold font_28 color-999">基础资料</view>
|
||||||
|
<view class="m_bas">
|
||||||
|
<view class="u_bas">
|
||||||
|
<view class="m_basLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">昵称</span>
|
||||||
|
<!-- <span class="color-theme bold"> *</span> -->
|
||||||
|
<input type="text" placeholder="请输入" class="u_name_inp" @blur="typing('name',$event)" value="{{name}}" cursor-spacing="50" maxlength="10" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u_bas">
|
||||||
|
<block v-if="!selectSex">
|
||||||
|
<view class="m_basLst f-fbc" @tap="bindTips('性别无法更改哦,如有需要请联系客服')">
|
||||||
|
<view>
|
||||||
|
<span class="font_28 color-333 bold">性别</span>
|
||||||
|
<!-- <span class="color-theme font_22 bold">(不可修改)</span> -->
|
||||||
|
</view>
|
||||||
|
<view class="f-fc">
|
||||||
|
<text class="font_28 color-333">{{sex[sexIndex]}}</text>
|
||||||
|
<image class="tips_icon" src="https://image.fulllinkai.com/202108/19/1e592d8cc35396e3142d9bd40093abe9.png" mode="aspectFit"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<picker value="{{sexIndex}}" range="{{sex}}" bindchange="sexChange" >
|
||||||
|
<view class="m_basLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">性别</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<view class="text">
|
||||||
|
<span v-if="sexIndex>-1">{{sex[sexIndex]}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<view class="u_bas">
|
||||||
|
<picker value="{{statureIndex}}" range="{{statureList}}" bindchange="statureChange" >
|
||||||
|
<view class="m_basLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">身高</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="statureIndex>-1">{{statureList[statureIndex]}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
<view class="u_bas">
|
||||||
|
<picker value="{{weightIndex}}" range="{{weightList}}" bindchange="weightChange" >
|
||||||
|
<view class="m_basLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">体重</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="weightIndex>-1">{{weightList[weightIndex]}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
<view class="u_bas">
|
||||||
|
<view class="m_basLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">常居地</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<selectCity ref="selectCity" :itemIndex.sync="CITY_INDEX" :multiIndex.sync="multiIndex" class="flo_r" @selectCity="selectCity" @provinces="getProvinces">
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="region[2]">{{region[1]}} / {{region[2]}}</span>
|
||||||
|
<span v-else class="color999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</selectCity>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="mainTitle bold font_28 color-999">个人资料</view>
|
||||||
|
<view class="m_section">
|
||||||
|
<view class="u_section">
|
||||||
|
<picker mode="date" value="1990-01-01" end="{{endDate}}" @change="typing('birthday',$event)">
|
||||||
|
<view class="m_secLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">出生日期</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="birthday">{{birthday}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
<view class="u_section">
|
||||||
|
<view class="m_secLst f-fbc" @tap="bindTips('情感状态无法更改哦,如有需要请联系客服')">
|
||||||
|
<view class="f-fc">
|
||||||
|
<span class="font_28 color-333 bold">情感状况</span>
|
||||||
|
</view>
|
||||||
|
<view class="font_28 f-fc color-333">
|
||||||
|
<span>{{state}}</span>
|
||||||
|
<image class="tips_icon" src="https://image.fulllinkai.com/202108/19/1e592d8cc35396e3142d9bd40093abe9.png" mode="aspectFit"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u_section">
|
||||||
|
<view class="m_secLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">籍贯</span>
|
||||||
|
<!-- <span class="color-theme">*</span> -->
|
||||||
|
<selectCity1 ref="selectCityV1" :itemIndex.sync="CITY_INDEX1" :multiIndex.sync="multiIndexA" class="flo_r" @selectCity="selectCity" @provinces="getProvinces">
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="region_id[2]">{{region_id[1]}} / {{region_id[2]}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</selectCity1>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="u_section">
|
||||||
|
<picker mode="multiSelector" @change="bindMultiPickerChange2" @columnchange="bindMultiPickerColumnChange2" value="{{multiIndex2}}" range="{{objectMultiArray}}" >
|
||||||
|
<view class="m_secLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">职业</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<block v-if="show">
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="industry">{{industry}} / {{industry_sub}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="font_28 f-fec" style="width: 80%">
|
||||||
|
<text v-if="industry" class="text ellipsis_1 flo_r text-right color333" style="width: 80%">{{objectMultiArray[0][multiIndex2[0]]}} - {{industry_sub === '其他行业' ? objectMultiArray[1][multiIndex2[1]] : industry_sub}}</text>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
<view class="u_section">
|
||||||
|
<picker value="{{incomeIndex}}" range="{{incomeList}}" bindchange="incomeChange">
|
||||||
|
<view class="m_secLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">年收入</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="incomeIndex>-1">{{incomeList[incomeIndex]}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
<view class="u_section">
|
||||||
|
<picker value="{{beliefIndex}}" range="{{belief}}" bindchange="beliefChange">
|
||||||
|
<view class="m_secLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">信仰</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="beliefIndex>-1">{{belief[beliefIndex]}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
<view class="u_section">
|
||||||
|
<picker value="{{marriageIndex}}" range="{{marriage}}" bindchange="marriageChange">
|
||||||
|
<view class="m_secLst f-fbc">
|
||||||
|
<span class="font_28 color-333 bold">期望结婚</span>
|
||||||
|
<!-- <span class="color-theme"> *</span> -->
|
||||||
|
<view class="font_28 f-fc">
|
||||||
|
<span class="color333" v-if="marriageIndex>-1">{{marriage[marriageIndex]}}</span>
|
||||||
|
<span v-else class="color-999">请选择</span>
|
||||||
|
<text class="cuIcon-right lg text-gray"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class=""></view>
|
||||||
|
</view>
|
||||||
|
<view class="mainBtn f-fcc">
|
||||||
|
<button class="btn font_30 btn-box white radius shadow bg-blue margin-top f-fcc" @tap="ensure">保存</button>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal {{modalName=='Other'?'show':''}}">
|
||||||
|
<view class="cu-dialog" style="width:600rpx;">
|
||||||
|
<view class="bg-img bg-imgs">请输入职业</view>
|
||||||
|
<input type="text" placeholder="请输入" @blur="typing('otherOccupation',$event)" class="u_name_inp_V2" value="{{otherOccupation}}" cursor-spacing="50" maxlength="10" />
|
||||||
|
<view class="cu-bar bg-white" style="border-top:10rpx solid #f5f5f5;display:flex;">
|
||||||
|
<view class="action margin-0 flex-sub" style="color:#999999;font-size:32rpx;font-weight:500;border-right:1rpx solid #f5f5f5;" @tap="cancel">取消</view>
|
||||||
|
<view class="action margin-0 flex-sub solid-left" style="color:#F33B6C;font-size:32rpx;font-weight:500;" @tap="changeOccupation">确认</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
sex: ['男', '女'],
|
||||||
|
sexIndex: -1,
|
||||||
|
selectSex: false,
|
||||||
|
state: '',
|
||||||
|
statureList: [], // 身高list
|
||||||
|
statureIndex: -1, // 默认160cm
|
||||||
|
weightList: [], // 体重list
|
||||||
|
weightIndex: -1, // 默认160cm
|
||||||
|
stateIndex: -1,
|
||||||
|
residentIndex: 0,
|
||||||
|
degree: ['小学', '初中', '高中', '中专', '大专', '本科', '硕士', '博士', '其他'],
|
||||||
|
degreeIndex: -1,
|
||||||
|
incomeList: ['5w以下', '5~10w', '10~15w', '15~30w', '30~50w', '50~100w', '100~500w', '500w以上'],
|
||||||
|
incomeIndex: -1,
|
||||||
|
belief: ['基督教', '佛教', '伊斯兰教', '其他'],
|
||||||
|
beliefIndex: -1,
|
||||||
|
marriage: ['半年内', '一年内', '两年内', '两年后'],
|
||||||
|
marriageIndex: -1,
|
||||||
|
salary: [],
|
||||||
|
salaryIndex: 0,
|
||||||
|
region: ['', '', ''],
|
||||||
|
region_id: ['', '', ''],
|
||||||
|
CITY_INDEX: 0,
|
||||||
|
photos: [],
|
||||||
|
CITY_INDEX1: 1,
|
||||||
|
birthday: '',
|
||||||
|
name: '',
|
||||||
|
nickname: '',
|
||||||
|
age: '',
|
||||||
|
weight: '',
|
||||||
|
country: '',
|
||||||
|
stature: '',
|
||||||
|
graduate_school: '',
|
||||||
|
company: '',
|
||||||
|
introduction: '',
|
||||||
|
ideal_mate: '',
|
||||||
|
post: '',
|
||||||
|
wechat_id: '',
|
||||||
|
Business: [],
|
||||||
|
show: true,
|
||||||
|
Salaryshow: false,
|
||||||
|
avatar: '', // 头像
|
||||||
|
work_text: '',
|
||||||
|
WorkShow: false,
|
||||||
|
DegreeText: '',
|
||||||
|
ShowDegree: false,
|
||||||
|
industry: '',
|
||||||
|
industry_sub: '',
|
||||||
|
multiIndex2: [0, 0],
|
||||||
|
objectMultiArray: [],
|
||||||
|
salary_id: '',
|
||||||
|
salaries: [],
|
||||||
|
endDate: '', // 结束时间
|
||||||
|
tempMember: 0,
|
||||||
|
provinces: [],
|
||||||
|
multiIndex: [0, 18, 2],
|
||||||
|
multiIndexA: [0, 18, 2],
|
||||||
|
modalName: '',
|
||||||
|
otherOccupation: '',
|
||||||
|
selectCity: '',
|
||||||
|
selectCityV1: ''
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad() {
|
||||||
|
this.objectMultiArray = []
|
||||||
|
this.getindustry()
|
||||||
|
this.getuser()
|
||||||
|
this.getStatureList() // 身高数据
|
||||||
|
this.getWeightList() // 体重数据
|
||||||
|
|
||||||
|
let timestamp = Date.parse(new Date())
|
||||||
|
let date = new Date(timestamp)
|
||||||
|
let Y = date.getFullYear()
|
||||||
|
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
|
||||||
|
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
|
||||||
|
this.endDate = `${Y}-${M}-${D}`
|
||||||
|
|
||||||
|
wx.setNavigationBarColor({
|
||||||
|
frontColor: '#000000',
|
||||||
|
backgroundColor: '#F5F5F5'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
console.log(this.route)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
show(e) {
|
||||||
|
this.graduate_school = e
|
||||||
|
console.log('------')
|
||||||
|
},
|
||||||
|
getStatureList() { // 身高
|
||||||
|
let list = []
|
||||||
|
for (let num = 139; num < 202; num++) {
|
||||||
|
if (num < 140) {
|
||||||
|
list.push(`${num}cm以下`)
|
||||||
|
} else if (num == 201) {
|
||||||
|
list.push(`${num}cm以上`)
|
||||||
|
} else {
|
||||||
|
list.push(`${num}cm`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.statureList = list
|
||||||
|
},
|
||||||
|
|
||||||
|
getWeightList() { // 体重
|
||||||
|
let list = []
|
||||||
|
for (let num = 39; num < 132; num++) {
|
||||||
|
if (num < 40) {
|
||||||
|
list.push(`${num}kg以下`)
|
||||||
|
} else if (num == 131) {
|
||||||
|
list.push(`${num}kg以上`)
|
||||||
|
} else {
|
||||||
|
list.push(`${num}kg`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.weightList = list
|
||||||
|
},
|
||||||
|
|
||||||
|
getindustry() { // 行业
|
||||||
|
let that = this
|
||||||
|
this.loading = true
|
||||||
|
this.$get({url: `${service.host}/industry/json`})
|
||||||
|
.then(({code, data}) => {
|
||||||
|
console.log(data, 'data----')
|
||||||
|
that.getuser()
|
||||||
|
let result = data
|
||||||
|
that.Business = result
|
||||||
|
let IndustryArr = []
|
||||||
|
result.forEach(function (item, index, arr) {
|
||||||
|
IndustryArr.push(arr[index].title)
|
||||||
|
})
|
||||||
|
that.objectMultiArray.push(IndustryArr)
|
||||||
|
that.objectMultiArray.push(result[0].items)
|
||||||
|
|
||||||
|
console.log(that.objectMultiArray)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getuser() {
|
||||||
|
let that = this
|
||||||
|
this.loading = true
|
||||||
|
this.$get({url: `${service.host}/user/base/profile`}).then(({code, data}) => {
|
||||||
|
let result = data
|
||||||
|
that.name = result.nickname
|
||||||
|
that.nickname = result.nickname
|
||||||
|
that.age = result.age
|
||||||
|
that.avatar = result.avatar
|
||||||
|
that.weight = result.weight
|
||||||
|
that.stature = result.stature
|
||||||
|
that.country = result.country
|
||||||
|
that.post = result.post
|
||||||
|
// that.wechat_id = result.wechat_id
|
||||||
|
that.graduate_school = result.graduate_school
|
||||||
|
that.introduction = result.introduction
|
||||||
|
that.ideal_mate = result.ideal_mate
|
||||||
|
that.work_text = result.work_sort
|
||||||
|
that.DegreeText = result.degree
|
||||||
|
that.state = result.state
|
||||||
|
// that.birthday = result.profile_courtship ? result.profile_courtship.birthday || '1990-01-01' : '1990-01-01'
|
||||||
|
setTimeout(function () {
|
||||||
|
that.multiCity1(result.country, result.resident_province, result.resident_city)
|
||||||
|
that.multiCity(result.country, result.province, result.city)
|
||||||
|
}, 800)
|
||||||
|
if (data.sex == 1) {
|
||||||
|
that.sexIndex = 0
|
||||||
|
} else if (data.sex == 2) {
|
||||||
|
that.sexIndex = 1
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
that.statureList.map((item, index) => {
|
||||||
|
// console.log(item)
|
||||||
|
if (parseInt(item) == result.stature) {
|
||||||
|
that.statureIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
that.weightList.map((item, index) => {
|
||||||
|
// console.log(parseInt(item))
|
||||||
|
if (parseInt(item) == result.weight) {
|
||||||
|
that.weightIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (result.birthday) {
|
||||||
|
that.birthday = result.birthday
|
||||||
|
}
|
||||||
|
if (result.province) {
|
||||||
|
that.region = [result.country, result.province, result.city]
|
||||||
|
}
|
||||||
|
if (result.resident_city) {
|
||||||
|
that.region_id = [that.region_id[0], result.resident_province, result.resident_city]
|
||||||
|
}
|
||||||
|
that.degree.forEach((item, index, arr) => {
|
||||||
|
if (result.degree == arr[index]) {
|
||||||
|
that.degreeIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
that.belief.forEach((item, index, arr) => {
|
||||||
|
if (result.belief == arr[index]) {
|
||||||
|
that.beliefIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
that.marriage.forEach((item, index, arr) => {
|
||||||
|
if (result.marry_by_time == arr[index]) {
|
||||||
|
that.marriageIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
that.incomeList.forEach((item, index, arr) => {
|
||||||
|
if (result.income == arr[index]) {
|
||||||
|
that.incomeIndex = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
that.industry = data.industry
|
||||||
|
that.industry_sub = data.industry_sub
|
||||||
|
let one = ''
|
||||||
|
let two = ''
|
||||||
|
that.Business.forEach((ele, index) => {
|
||||||
|
if (ele.title == that.industry) {
|
||||||
|
one = index
|
||||||
|
that.objectMultiArray = [that.objectMultiArray[0], that.Business[one].items]
|
||||||
|
ele.items.forEach((eles, indexs) => {
|
||||||
|
if (eles == that.industry_sub) {
|
||||||
|
two = indexs
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
that.multiIndex2 = [one, two]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
ensureData(data) { // 保存
|
||||||
|
this.$put({url: `${service.host}/user/base/profile`, data}).then(({code, data}) => {
|
||||||
|
console.log('参数保存成功!')
|
||||||
|
this.$gotoBack(1)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
multiCity(country, province, city) {
|
||||||
|
let multiIndex = [0, 0, 0]
|
||||||
|
try {
|
||||||
|
this.provinces.forEach((item, index) => {
|
||||||
|
if (item.name == '中国') {
|
||||||
|
multiIndex = [index, 0, 0]
|
||||||
|
this.$refs.selectCity.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: index,
|
||||||
|
column: 0
|
||||||
|
}}})
|
||||||
|
item.son.forEach((res, indexA) => {
|
||||||
|
if (res.name == province) {
|
||||||
|
this.$refs.selectCity.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: indexA,
|
||||||
|
column: 1
|
||||||
|
}}})
|
||||||
|
multiIndex = [multiIndex[0], indexA, 0]
|
||||||
|
res.son.forEach((data, indexB) => {
|
||||||
|
if (data.name == city) {
|
||||||
|
this.$refs.selectCity.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: indexB,
|
||||||
|
column: 2
|
||||||
|
}}})
|
||||||
|
multiIndex = [multiIndex[0], multiIndex[1], indexB]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.multiIndex = multiIndex
|
||||||
|
} catch (e) {}
|
||||||
|
},
|
||||||
|
|
||||||
|
multiCity1(country, province, city, type) {
|
||||||
|
let multiIndex = [0, 0, 0]
|
||||||
|
try {
|
||||||
|
this.provinces.forEach((item, index) => {
|
||||||
|
if (item.name == '中国') {
|
||||||
|
multiIndex = [index, 0, 0]
|
||||||
|
this.$refs.selectCityV1.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: index,
|
||||||
|
column: 0
|
||||||
|
}}})
|
||||||
|
item.son.forEach((res, indexA) => {
|
||||||
|
if (res.name == province) {
|
||||||
|
this.$refs.selectCityV1.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: indexA,
|
||||||
|
column: 1
|
||||||
|
}}})
|
||||||
|
multiIndex = [multiIndex[0], indexA, 0]
|
||||||
|
res.son.forEach((data, indexB) => {
|
||||||
|
if (data.name == city) {
|
||||||
|
this.$refs.selectCityV1.MultiPickerColumnChange({$wx: {detail: {
|
||||||
|
value: indexB,
|
||||||
|
column: 2
|
||||||
|
}}})
|
||||||
|
multiIndex = [multiIndex[0], multiIndex[1], indexB]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.multiIndexA = multiIndex
|
||||||
|
console.log(this.multiIndexA, 'this.multiIndexA =')
|
||||||
|
} catch (e) {}
|
||||||
|
},
|
||||||
|
ensure() { // 检索参数
|
||||||
|
let vm = this
|
||||||
|
if (vm.name == '') {
|
||||||
|
return vm.$showToast('昵称不能为空')
|
||||||
|
}
|
||||||
|
if (vm.name.includes('福恋')) {
|
||||||
|
return vm.$showToast('请勿输入带“福恋”关键字的昵称!')
|
||||||
|
}
|
||||||
|
let data = {
|
||||||
|
nickname: vm.name,
|
||||||
|
birthday: vm.birthday,
|
||||||
|
stature: vm.stature - 0,
|
||||||
|
weight: vm.weight - 0,
|
||||||
|
post: vm.post,
|
||||||
|
// wechat_id: vm.wechat_id,
|
||||||
|
graduate_school: vm.graduate_school,
|
||||||
|
state: vm.state,
|
||||||
|
country: vm.region[0],
|
||||||
|
province: vm.region[1],
|
||||||
|
city: vm.region[2],
|
||||||
|
resident_province: vm.region_id[1],
|
||||||
|
resident_city: vm.region_id[2],
|
||||||
|
degree: vm.degree[vm.degreeIndex],
|
||||||
|
industry: !vm.show ? vm.objectMultiArray[0][vm.multiIndex2[0]] : vm.industry,
|
||||||
|
industry_sub: !vm.show ? vm.objectMultiArray[1][vm.multiIndex2[1]] : vm.industry_sub,
|
||||||
|
belief: vm.belief[vm.beliefIndex],
|
||||||
|
marry_by_time: vm.marriage[vm.marriageIndex],
|
||||||
|
income: vm.incomeList[vm.incomeIndex]
|
||||||
|
}
|
||||||
|
if (vm.sexIndex > -1) {
|
||||||
|
data.sex = vm.sexIndex == 0 ? 1 : 2
|
||||||
|
}
|
||||||
|
console.log(data)
|
||||||
|
this.ensureData(data)
|
||||||
|
},
|
||||||
|
bindMultiPickerChange2(e) {
|
||||||
|
console.log(e)
|
||||||
|
console.log('picker发送选择改变,携带值为', e.$wx.detail.value)
|
||||||
|
try {
|
||||||
|
this.multiIndex2 = e.$wx.detail.value
|
||||||
|
this.industry = this.objectMultiArray[0][e.$wx.detail.value[0]]
|
||||||
|
this.industry_sub = this.objectMultiArray[1][e.$wx.detail.value[1]]
|
||||||
|
if (this.objectMultiArray[0][e.$wx.detail.value[0]] == '其他行业') {
|
||||||
|
this.otherOccupation = ''
|
||||||
|
this.modalName = 'Other'
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
changeOccupation() {
|
||||||
|
this.modalName = ''
|
||||||
|
this.industry_sub = this.otherOccupation
|
||||||
|
},
|
||||||
|
bindMultiPickerColumnChange2(e) {
|
||||||
|
console.log(e, '1988__________')
|
||||||
|
let that = this
|
||||||
|
that.show = false
|
||||||
|
switch (e.$wx.detail.column) {
|
||||||
|
case 0:
|
||||||
|
for (let i = 0; i < that.Business.length; i++) {
|
||||||
|
if (e.$wx.detail.value === i) {
|
||||||
|
that.objectMultiArray = [that.objectMultiArray[0], that.Business[i].items]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
that.multiIndex2 = [e.$wx.detail.value, 0]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
},
|
||||||
|
typing(type, e) {
|
||||||
|
let {value} = e.$wx.detail
|
||||||
|
let vm = this
|
||||||
|
if (type == 'name' && value.includes('福恋')) {
|
||||||
|
vm.$showToast('请勿输入带“福恋”关键字的昵称!')
|
||||||
|
}
|
||||||
|
this[type] = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
sexChange(e) { // 性别
|
||||||
|
this.sexIndex = e.$wx.detail.value
|
||||||
|
console.log(this.sexIndex)
|
||||||
|
},
|
||||||
|
statureChange(e) { // 身高
|
||||||
|
this.statureIndex = e.$wx.detail.value
|
||||||
|
this.stature = this.statureList[this.statureIndex].split('cm')[0]
|
||||||
|
console.log(this.stature)
|
||||||
|
},
|
||||||
|
weightChange(e) { // 体重
|
||||||
|
this.weightIndex = e.$wx.detail.value
|
||||||
|
this.weight = this.weightList[this.weightIndex].split('kg')[0]
|
||||||
|
console.log(this.weight)
|
||||||
|
},
|
||||||
|
beliefChange(e) {
|
||||||
|
this.beliefIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
marriageChange(e) {
|
||||||
|
this.marriageIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
incomeChange(e) { // 年收入
|
||||||
|
this.incomeIndex = e.$wx.detail.value
|
||||||
|
},
|
||||||
|
bindTips(text) {
|
||||||
|
this.$showToast(text)
|
||||||
|
},
|
||||||
|
selectCity(e, index) {
|
||||||
|
if (index == 0) {
|
||||||
|
this.region = e
|
||||||
|
} else {
|
||||||
|
this.region_id = e
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getProvinces (value) {
|
||||||
|
this.provinces = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
page{
|
||||||
|
background: #F5F5F5;
|
||||||
|
}
|
||||||
|
.unmarrContainer{
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.mainBtn{
|
||||||
|
width: 100vw;
|
||||||
|
height: 240rpx;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1000;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
.blurBox {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background: white;
|
||||||
|
filter: blur(10px) contrast(1.2);
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.btn-box{
|
||||||
|
width: 520rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
background: linear-gradient(270deg, #FF85A5 0%, #FF5380 100%);
|
||||||
|
border-radius: 100rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.active {
|
||||||
|
border: 1rpx solid color-theme
|
||||||
|
}
|
||||||
|
|
||||||
|
.display_inlin {
|
||||||
|
display: inline-block
|
||||||
|
}
|
||||||
|
.flo_l{float: left}
|
||||||
|
.userinfo{
|
||||||
|
width: 100%;
|
||||||
|
font-size: 26rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
box-shadow: 1rpx 1rpx 10rpx #d6d6d6;
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top:0;
|
||||||
|
background: white;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
.violet{color: #B22DC3}
|
||||||
|
|
||||||
|
.font_12 {
|
||||||
|
font-size: 22 rpx
|
||||||
|
}
|
||||||
|
.orderdata{
|
||||||
|
width: 100%;
|
||||||
|
padding:30rpx 30rpx 160rpx;
|
||||||
|
}
|
||||||
|
.weui-cell{
|
||||||
|
padding: 12rpx 0;
|
||||||
|
}
|
||||||
|
.Inp{
|
||||||
|
text-align: right;
|
||||||
|
width: 72%;height: 72rpx;
|
||||||
|
float: right;
|
||||||
|
margin-top: 6rpx;
|
||||||
|
font-weight: 200;
|
||||||
|
}
|
||||||
|
.text{
|
||||||
|
float: right;
|
||||||
|
/*margin-right: 82rpx;*/
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
}
|
||||||
|
.next{
|
||||||
|
height: 120rpx;
|
||||||
|
/*border-top: 1rpx solid #d9d9d9 ;*/
|
||||||
|
border-bottom: 1rpx solid #d9d9d9 ;
|
||||||
|
z-index: 10;
|
||||||
|
width: 100%;
|
||||||
|
background: white;
|
||||||
|
padding-bottom: 12rpx;
|
||||||
|
/*box-shadow: 5rpx 5rpx 12rpx #c2571f;*/
|
||||||
|
}
|
||||||
|
.InputFocus{
|
||||||
|
color: color-theme;
|
||||||
|
}
|
||||||
|
.active_user{
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
box-shadow: 1rpx 1rpx 12rpx #dedede;
|
||||||
|
margin:10rpx 16rpx 10rpx 36rpx;
|
||||||
|
border: 4rpx solid white;
|
||||||
|
}
|
||||||
|
.getinfo{
|
||||||
|
margin-top: 66rpx;
|
||||||
|
color: #ff9832;
|
||||||
|
border: 1rpx solid #ff9832;
|
||||||
|
padding: 2rpx 4rpx;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
box-shadow: 1rpx 1rpx 12rpx #dbdbdb;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
.mainTitle{
|
||||||
|
padding: 0 0 20rpx 40rpx;
|
||||||
|
}
|
||||||
|
.userPhoto{
|
||||||
|
padding: 22rpx;
|
||||||
|
image{
|
||||||
|
width: 160rpx;
|
||||||
|
height: 160rpx;
|
||||||
|
margin: 0 16rpx 12rpx 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.list{
|
||||||
|
height: 86rpx;
|
||||||
|
line-height: 86rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
margin: 0 32rpx;
|
||||||
|
border-bottom: 2rpx solid #f4f5f9;
|
||||||
|
overflow: hidden;
|
||||||
|
.icon{
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-bottom: 1vw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_bas {
|
||||||
|
.u_bas {
|
||||||
|
.m_basLst {
|
||||||
|
height: 80rpx;
|
||||||
|
.u_name_inp {
|
||||||
|
height: 100%;
|
||||||
|
text-align: right;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.cuIcon-right {
|
||||||
|
margin-left: 16rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_section {
|
||||||
|
.u_section {
|
||||||
|
.m_secLst {
|
||||||
|
height: 80rpx;
|
||||||
|
.u_name_inp {
|
||||||
|
height: 100%;
|
||||||
|
text-align: right;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.cuIcon-right {
|
||||||
|
margin-left: 16rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_section,
|
||||||
|
.m_bas {
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
padding: 20rpx 40rpx;
|
||||||
|
margin-bottom: 60rpx;
|
||||||
|
.tips_icon {
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
margin-left: 8rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bg-imgs {
|
||||||
|
height: 100rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background: #ffffff;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.u_name_inp_V2 {
|
||||||
|
height: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '编辑资料',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
uploadPic: '~@/components/uploadPic',
|
||||||
|
selectCity: '~@/components/selectCity',
|
||||||
|
selectCity1: '~@/components/selectCity',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
1261
src/pages/users/unmarriV2.wpy
Normal file
1261
src/pages/users/unmarriV2.wpy
Normal file
File diff suppressed because it is too large
Load Diff
1256
src/pages/users/unmarriV3.wpy
Normal file
1256
src/pages/users/unmarriV3.wpy
Normal file
File diff suppressed because it is too large
Load Diff
625
src/pages/users/upgradeVIP.wpy
Normal file
625
src/pages/users/upgradeVIP.wpy
Normal file
@ -0,0 +1,625 @@
|
|||||||
|
<template>
|
||||||
|
<cuCustom :bgColor="bgVip" isCustom="{{true}}">
|
||||||
|
<view slot="backText">返回</view>
|
||||||
|
<view slot="content">会员中心</view>
|
||||||
|
</cuCustom>
|
||||||
|
<view class="_bc-user animation-slide-top">
|
||||||
|
<image class="userinfo-avatar flo_l" src="{{user.photo}}" mode="aspectFill"/>
|
||||||
|
<view class="white flo_l font_32 userinfo-name">
|
||||||
|
<span class="bold">{{user.nickname}} </span>
|
||||||
|
<block v-if="user.rank_id > 0">
|
||||||
|
<image class="icon" src="https://images.ufutx.com/202004/09/ce3522d17ae95986b88a1e6d07b12c4e.png" mode="aspectFill"/>
|
||||||
|
<span class="orange font_22">超级会员</span>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<image class="icon" src="https://images.ufutx.com/202004/10/eb8b12c7330f16b732d47baef2012906.png" mode="aspectFill"/>
|
||||||
|
<span class="white font_22">普通会员</span>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<view class="font_24 white flo_l" style="color: #f7e4ad;width: 70%; ">
|
||||||
|
{{user.rank_deadline?user.rank_deadline+'到期':'未激活'}}
|
||||||
|
</view>
|
||||||
|
<swiper class="card-swiper" circular="true" bindchange="cardSwiper">
|
||||||
|
<swiper-item v-for="(item,index) in rankList" :key="index" class="{{cardCur==index?'cur':''}}" @tap="showFn(index)">
|
||||||
|
<view class="swiper-item radius shadow margin-top bg-grey {{item.id?'':'bg-grey'}}">
|
||||||
|
<image src="{{item.pic}}" mode="aspectFill"></image>
|
||||||
|
<!--<video src="{{item.url}}" autoplay loop muted show-play-btn="{{false}}" controls="{{false}}" objectFit="cover" v-if="item.type=='video'}}"></video>-->
|
||||||
|
</view>
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
</view>
|
||||||
|
<view class="mainWrapper animation-slide-bottom">
|
||||||
|
<view class="font_30 bold color-333 title">会员套餐权益:</view>
|
||||||
|
<view class="scroll-wrapper">
|
||||||
|
<scroll-view scroll-x="{{true}}" scroll-with-animation style="height: 264rpx;">
|
||||||
|
<view class="inline-block text-center scroll-item" v-for="(item,index) in specialVIP.feature_arr" :key="index">
|
||||||
|
<image :src="item.icon" mode="aspectFit" class="featureIcon"></image>
|
||||||
|
<view class="font_22">{{item.text}}</view>
|
||||||
|
<view class="font_22" style="color: #B15E00">{{item.sub_text}}</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="mainWrapper">
|
||||||
|
<view class="font_30 bold color-333 title">会员说明:</view>
|
||||||
|
<view class="ruleBox">
|
||||||
|
<block v-if="specialVIP">
|
||||||
|
<view class="font_24 color-666" v-for="(item,index) in (specialVIP.explain_arr || specialVIP.discount_desc)" :key="index">{{item}}</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="font_24 color-666 placeholderStyle" v-for="item in 5" :key="item" style="width:{{100/index}}%"></view>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="payBtn" v-if="system != 'iOS'" @tap="showFn()">
|
||||||
|
<view class="l_text">
|
||||||
|
<span class="font_32 bold">
|
||||||
|
<span>¥</span>{{payData.discount_price}}
|
||||||
|
</span>
|
||||||
|
</view>
|
||||||
|
<view class="r_text">
|
||||||
|
<span class="font_32" >
|
||||||
|
立即购买
|
||||||
|
</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal {{modalName=='Modal'?'show':''}}">
|
||||||
|
<view class="cu-dialog">
|
||||||
|
<view class="cu-bar bg-white justify-end">
|
||||||
|
<view class="content">提示</view>
|
||||||
|
<view class="action" bindtap="hideModal">
|
||||||
|
<text class="cuIcon-close text-red"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="padding-xl">
|
||||||
|
由于相关规范,ios小程序此功能暂不可用
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 弹框-->
|
||||||
|
<view class="cu-modal bottom-modal {{modalName=='DialogModal'?'show':''}}">
|
||||||
|
<view class="cu-dialog bg-white" style="border-radius: 24rpx 24rpx 0px 0px;">
|
||||||
|
<view class="cu-bar justify-end">
|
||||||
|
<view class="content color333 bold">支付信息</view>
|
||||||
|
<view class="action" bindtap="hideModal">
|
||||||
|
<text class="cuIcon-close" style="color:#C2C2C2;font-size: 44rpx !important;"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="" style="background-color: white;padding: 20rpx 0 0 0;">
|
||||||
|
<view class="text-left f-fcc">
|
||||||
|
<span class="value color-999 font_24" style="text-decoration: line-through;" >原价:¥{{payData.price}}</span>
|
||||||
|
</view>
|
||||||
|
<view class="item-xl text-left f-fcc">
|
||||||
|
<span class="value bold color333" style="font-size: 52rpx;line-height: 52rpx;" v-if="wxPayShow == 'cash'">¥{{payData.discount_price}}</span>
|
||||||
|
<span class="value bold color333" style="font-size: 52rpx;line-height: 52rpx;" v-else>¥{{deductionPrice>0?deductionPrice:'0.00'}}</span>
|
||||||
|
</view>
|
||||||
|
<view class="item-xl text-left f-fcc">
|
||||||
|
<span class="value color-999 font_24">{{payData.title}}</span>
|
||||||
|
</view>
|
||||||
|
<view class="m_payData f-fbc" @tap="payChoice('cash')">
|
||||||
|
<view class="f-fc">
|
||||||
|
<image class="u_payData_img" src="https://images.ufutx.com/202106/23/886f1118c820849fae35b3412930a5a2.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
|
<view class="font_28 color333">微信支付</view>
|
||||||
|
</view>
|
||||||
|
<image src="https://images.ufutx.com/202106/23/9dd9dc41e3689d92a280740bc99f3c32.png" mode="aspectFit" class="iconV2"></image>
|
||||||
|
<!-- <view class="u_pay_unc" wx:else></view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="m_pay_bu f-fcc">
|
||||||
|
<view class="u_pay_bu f-fcc font_32 white bold" bindtap="conversion">立即支付</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style="height: 120rpx;"></view>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
user: {},
|
||||||
|
is_vip: false,
|
||||||
|
init: false,
|
||||||
|
date: 0,
|
||||||
|
activeV2: false,
|
||||||
|
swiperList: [],
|
||||||
|
cardCur: 0,
|
||||||
|
specialVIP: [],
|
||||||
|
payData: {
|
||||||
|
coin: '',
|
||||||
|
discount_price: '',
|
||||||
|
pay_type: '',
|
||||||
|
price: '',
|
||||||
|
remain_amount: '',
|
||||||
|
title: ''
|
||||||
|
}, // 支付信息
|
||||||
|
rank: [],
|
||||||
|
rankData: [],
|
||||||
|
price: 0,
|
||||||
|
score: 0,
|
||||||
|
rankList: [],
|
||||||
|
modalName: '', // 弹框支付
|
||||||
|
chat_user_id: '',
|
||||||
|
trade_no: '', // 订单号
|
||||||
|
system: '', // 机型
|
||||||
|
share_type: '',
|
||||||
|
shareId: '',
|
||||||
|
timeID: -1,
|
||||||
|
wxPayShow: 'cash',
|
||||||
|
paymentAmount: 0,
|
||||||
|
coinMoney: 0,
|
||||||
|
deductionPrice: 0,
|
||||||
|
bgVip: 'background: #333333;\ncolor: white'
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
residue() {
|
||||||
|
return (this.score - (this.price - this.my_rank_price)).toFixed(2)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// 初始化页面数据
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(e) {
|
||||||
|
if (e.share_type) {
|
||||||
|
this.share_type = e.share_type
|
||||||
|
}
|
||||||
|
if (e.chat_user_id) {
|
||||||
|
this.chat_user_id = e.chat_user_id
|
||||||
|
}
|
||||||
|
this.rankList = []
|
||||||
|
this.system = wx.getStorageSync('system')
|
||||||
|
console.log(this.system, '222')
|
||||||
|
if (this.system == 'iOS') {
|
||||||
|
this.$redirectTo(`/pages/users/upgradeVIP2?chat_user_id=${this.chat_user_id}`)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// share_type
|
||||||
|
console.log(this.system)
|
||||||
|
this.getPageData()
|
||||||
|
// this.getUserData()
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {},
|
||||||
|
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
let that = this
|
||||||
|
let openid = wx.getStorageSync('openid')
|
||||||
|
let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let url = `/pages/users/upgradeVIP?from_openid=${openid}&share_user_id=${that.id}&share_type=share&from_user_id=${fromUserID}`
|
||||||
|
console.log(url)
|
||||||
|
return {
|
||||||
|
title: '会员中心',
|
||||||
|
path: url,
|
||||||
|
imageUrl: 'https://images.ufutx.com/202004/10/9d3829a6ad06cf95b32806fbc4f7dd94.png',
|
||||||
|
success: function(res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
var shareTickets = res.shareTickets
|
||||||
|
if (shareTickets.length == 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function(res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// onShareTimeline() {
|
||||||
|
// let openid = wx.getStorageSync('openid')
|
||||||
|
// return {
|
||||||
|
// title: '会员中心',
|
||||||
|
// imageUrl: 'https://images.ufutx.com/202004/10/9d3829a6ad06cf95b32806fbc4f7dd94.png', // 图片 URL
|
||||||
|
// query: `from_openid=${openid}&share_user_id=${this.id}&share_type=share`
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
cardCur() {
|
||||||
|
this.payData.title = `超级会员(${this.rankList[this.cardCur].name})`
|
||||||
|
this.payData.price = this.rankList[this.cardCur].price
|
||||||
|
this.payData.discount_price = this.rankList[this.cardCur].discount_price
|
||||||
|
console.log(this.payData.discount_price, 'this.payData.discount_price')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
// getUserData() { // 用户基本信息
|
||||||
|
// let vm = this
|
||||||
|
// vm.$get({url: `${service.host}/user/simple/info`}).then(({code, data}) => {
|
||||||
|
// vm.user = data
|
||||||
|
// vm.payData.remain_amount = data.remain_amount
|
||||||
|
// vm.payData.coin = data.coin
|
||||||
|
// let {type, is_subscribe} = wx.getStorageSync('userInfo')
|
||||||
|
// let userInfo = {
|
||||||
|
// nickName: data.nickname,
|
||||||
|
// avatarUrl: data.avatar,
|
||||||
|
// type,
|
||||||
|
// id: data.id,
|
||||||
|
// is_subscribe,
|
||||||
|
// rank_id: data.rank_id
|
||||||
|
// }
|
||||||
|
// wx.setStorageSync('userInfo', userInfo)
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
gotoApp(item) {
|
||||||
|
let URL = `https://love.ufutx.com/h5/#/serviceAgreementV3?title=${item}`
|
||||||
|
wx.navigateTo({url: '/pages/books/bookDetail?url=' + encodeURIComponent(URL)})
|
||||||
|
},
|
||||||
|
getPageData() {
|
||||||
|
let vm = this
|
||||||
|
vm.$showLoading('加载中')
|
||||||
|
vm.$get({url: `${service.host}/rank/list`}).then(({code, data}) => {
|
||||||
|
vm.user = data.rank_info
|
||||||
|
// vm.payData.remain_amount = data.remain_amount
|
||||||
|
// vm.payData.coin = data.coin
|
||||||
|
let {type, is_subscribe} = wx.getStorageSync('userInfo')
|
||||||
|
let userInfo = {
|
||||||
|
nickName: vm.user.nickname,
|
||||||
|
avatarUrl: vm.user.avatar,
|
||||||
|
type,
|
||||||
|
id: vm.user.id,
|
||||||
|
is_subscribe,
|
||||||
|
rank_id: vm.user.rank_id
|
||||||
|
}
|
||||||
|
wx.setStorageSync('userInfo', userInfo)
|
||||||
|
vm.specialVIP = data.ranks
|
||||||
|
console.log(data, 'aaaaaaaa')
|
||||||
|
// vm.rankList = data.sub_ranks
|
||||||
|
vm.rankList = []
|
||||||
|
data.ranks.sub_ranks.forEach((item, index) => {
|
||||||
|
if (index <= 2) {
|
||||||
|
vm.rankList.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (vm.system == 'iOS') {
|
||||||
|
vm.rankList = [
|
||||||
|
{pic: 'https://images.ufutx.com/202004/11/3ccfd5478ea792e8793c7eebbf152511.png'},
|
||||||
|
{pic: 'https://images.ufutx.com/202004/11/cbc6bdbbbee7881f9c6e97f36aad4639.png'},
|
||||||
|
{pic: 'https://images.ufutx.com/202004/11/684d70c9b43dab6e9c83e0a53bf8029f.png'}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
vm.payData.title = `超级会员(${vm.rankList[0].name})`
|
||||||
|
vm.payData.price = `${vm.rankList[0].price}`
|
||||||
|
vm.payData.discount_price = `${vm.rankList[0].discount_price}`
|
||||||
|
vm.payData.pay_type = data.pay_type
|
||||||
|
console.log(vm.rankList, vm.specialVIP)
|
||||||
|
console.log(vm.payData, 'payData')
|
||||||
|
vm.shareId = vm.rankList[vm.cardCur].id
|
||||||
|
if (wx.getStorageSync('from_user_id')) {
|
||||||
|
vm.worthShare()
|
||||||
|
}
|
||||||
|
wx.hideLoading()
|
||||||
|
console.log('eeee---')
|
||||||
|
}).finally(() => {
|
||||||
|
this.loaded = false
|
||||||
|
this.init = true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// // 套餐会员数据
|
||||||
|
// initPageData() {
|
||||||
|
// let that = this
|
||||||
|
// that.$showLoading('加载中')
|
||||||
|
// this.$get({url: `${service.host}/single/services/v2`}).then(({code, data}) => {
|
||||||
|
// that.rankList = data
|
||||||
|
// that.specialVIP = data[0]
|
||||||
|
// that.payData.title = `${that.rankList[0].title}`
|
||||||
|
// that.payData.price = `${that.rankList[0].price}`
|
||||||
|
// that.payData.discount_price = `${that.rankList[0].discount_price}`
|
||||||
|
// wx.hideLoading()
|
||||||
|
// console.log(that.rankList, 'rankList')
|
||||||
|
// console.log(that.payData, 'payData')
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
worthShare() {
|
||||||
|
let vm = this,
|
||||||
|
data = {
|
||||||
|
from_user_id: wx.getStorageSync('from_user_id'),
|
||||||
|
channel: 'rank',
|
||||||
|
product_id: vm.shareId
|
||||||
|
}
|
||||||
|
vm.$post({url: `${service.host}/worth/shares`, data}).then(({code, data}) => {
|
||||||
|
console.log('2f')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
cardSwiper(e) {
|
||||||
|
this.cardCur = e.$wx.detail.current
|
||||||
|
clearTimeout(this.timeID)
|
||||||
|
this.timeID = setTimeout(() => {
|
||||||
|
this.shareId = this.rankList[this.cardCur].id
|
||||||
|
console.log(this.shareId)
|
||||||
|
if (wx.getStorageSync('from_user_id')) {
|
||||||
|
this.worthShare()
|
||||||
|
}
|
||||||
|
}, 800)
|
||||||
|
},
|
||||||
|
showFn (index) { // 弹框支付
|
||||||
|
this.wxPayShow = 'cash'
|
||||||
|
this.coinMoney = (this.payData.coin / 10).toFixed(2)
|
||||||
|
this.deductionPrice = this.payData.coin >= this.specialVIP.can_coin_amount ? (this.payData.discount_price - this.specialVIP.can_cash_amount).toFixed(2) : (this.payData.discount_price - this.coinMoney).toFixed(2)
|
||||||
|
if (this.rankList[this.cardCur].id) {
|
||||||
|
this.modalName = 'DialogModal'
|
||||||
|
let monay = 0
|
||||||
|
if (this.payData.discount_price < this.payData.coin / 10) {
|
||||||
|
monay = 0
|
||||||
|
} else {
|
||||||
|
monay = (this.payData.discount_price - this.payData.coin / 10).toFixed(2)
|
||||||
|
}
|
||||||
|
this.payData.monay = Math.abs(monay).toFixed(2)
|
||||||
|
this.payData.payId = this.rankList[this.cardCur].id
|
||||||
|
} else {
|
||||||
|
this.modalName = 'Modal'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
hideModal () {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
copyWechat(data) {
|
||||||
|
let vm = this
|
||||||
|
wx.setClipboardData({
|
||||||
|
data: data,
|
||||||
|
success(res) {
|
||||||
|
vm.$showToast('复制成功,赶紧去加《小恋》为好友吧!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showToast(title) {
|
||||||
|
this.$showToast(title)
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
showTost() {
|
||||||
|
this.$showToast('请同意《福恋服务协议》')
|
||||||
|
},
|
||||||
|
conversion(item) {
|
||||||
|
console.log(this.payData.payId)
|
||||||
|
let that = this,
|
||||||
|
url = `${service.host}/rank/buy`
|
||||||
|
that.modalName = ''
|
||||||
|
that.$showLoading('支付中...')
|
||||||
|
let data = {}
|
||||||
|
data = {
|
||||||
|
sub_rank_id: this.payData.payId,
|
||||||
|
chat_user_id: this.chat_user_id,
|
||||||
|
share_type: this.share_type,
|
||||||
|
pay_type: this.wxPayShow
|
||||||
|
}
|
||||||
|
that.$post({url: url, data}).then(({code, data}) => {
|
||||||
|
that.trade_no = data.trade_no
|
||||||
|
if (data.wx_pay.length == 0) {
|
||||||
|
that.$post({url: `${service.host}/order/${that.trade_no}/callback`}).then(({code, data}) => {
|
||||||
|
that.getUserData()
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
let wxconfig = data.wx_pay.config
|
||||||
|
// wx.config(JSON.parse(response.data.data.order.wx_pay.js));
|
||||||
|
if (wxconfig.payment_debug) {
|
||||||
|
return that.$post({url: `${service.host}/order/${that.trade_no}/callback`}).then(({code, data}) => {
|
||||||
|
that.getUserData()
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
wx.requestPayment({
|
||||||
|
timeStamp: wxconfig.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
|
||||||
|
nonceStr: wxconfig.nonceStr, // 支付签名随机串,不长于 32 位
|
||||||
|
package: wxconfig.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
|
||||||
|
signType: wxconfig.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
|
||||||
|
paySign: wxconfig.paySign, // 支付签名
|
||||||
|
success: function (res) {
|
||||||
|
that.$post({url: `${service.host}/order/${that.trade_no}/callback`}).then(({code, data}) => {
|
||||||
|
that.getUserData()
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: function (res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '已取消支付',
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
payChoice(e) {
|
||||||
|
this.wxPayShow = this.wxPayShow == 'coin' ? 'cash' : e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
page{
|
||||||
|
background: #F6F6F6;
|
||||||
|
.bg-vip{
|
||||||
|
background: #333333;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.mainTab{
|
||||||
|
padding: 12rpx;
|
||||||
|
.itemText {
|
||||||
|
width: 38%;
|
||||||
|
margin-bottom: 26rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.active{
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
&:before{
|
||||||
|
content: " ";
|
||||||
|
position: absolute;
|
||||||
|
bottom: -8rpx;
|
||||||
|
left: 14vw;
|
||||||
|
height: 2px;
|
||||||
|
width: 26px;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
background: #F8EAB8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
._bc-user{
|
||||||
|
width: 100%;
|
||||||
|
background: url('https://images.ufutx.com/202004/09/5fd9264a4da7c310d1e086a92be7195a.png');
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
position: relative;
|
||||||
|
/*position: fixed;*/
|
||||||
|
height: 70vw;
|
||||||
|
padding-top: 6vw;
|
||||||
|
/*z-index: 9999;*/
|
||||||
|
.userinfo-avatar {
|
||||||
|
width: 110rpx;
|
||||||
|
height: 110rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-left: 34rpx;
|
||||||
|
margin-right: 22rpx;
|
||||||
|
border: 4rpx solid #fff;
|
||||||
|
}
|
||||||
|
.userinfo-name{
|
||||||
|
margin-top: 12rpx;
|
||||||
|
.icon{
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin:0 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item-xl{
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
// .title{
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
.m_payData {
|
||||||
|
padding: 30rpx 30rpx;
|
||||||
|
.u_payData_img {
|
||||||
|
width: 48rpx;
|
||||||
|
height: 42rpx;
|
||||||
|
margin-right: 12rpx;
|
||||||
|
}
|
||||||
|
.u_pay_unc {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: 2rpx solid #C2C2C2;
|
||||||
|
}
|
||||||
|
.m_payData_coinImg {
|
||||||
|
width: 48rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
margin-right: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.iconV2{
|
||||||
|
height: 32rpx;
|
||||||
|
width: 32rpx;
|
||||||
|
}
|
||||||
|
.mainWrapper{
|
||||||
|
padding-left: 34rpx;
|
||||||
|
.title{
|
||||||
|
margin-top: 32rpx;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
}
|
||||||
|
.ruleBox{
|
||||||
|
background: white;
|
||||||
|
padding: 22rpx;
|
||||||
|
margin-right: 34rpx;
|
||||||
|
box-shadow: 1rpx 1rpx 12rpx #f0f0f0;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
line-height: 46rpx;
|
||||||
|
}
|
||||||
|
.scroll-wrapper{
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
.scroll-item{
|
||||||
|
width: 200rpx;
|
||||||
|
height: 268rpx;
|
||||||
|
margin-left: -22rpx;
|
||||||
|
background-image: url("https://images.ufutx.com/202004/09/1da12829a23a841d5f490302873152c3.png");
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
.featureIcon{
|
||||||
|
width: 62rpx;
|
||||||
|
height: 62rpx;
|
||||||
|
margin-top: 62rpx;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.card-swiper{
|
||||||
|
.swiper-item{
|
||||||
|
border-radius: 14rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.iconV2{
|
||||||
|
height: 36rpx;
|
||||||
|
width: 36rpx;
|
||||||
|
margin-right: 6rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-bottom: 8rpx;
|
||||||
|
}
|
||||||
|
.payBtn{
|
||||||
|
position: relative;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 18vw;
|
||||||
|
width: 64vw;
|
||||||
|
height: 60px;
|
||||||
|
background-image: url("https://images.ufutx.com/202007/17/fb7b8b1cd0d1b289d1e029257a97e949.png");
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
.l_text{
|
||||||
|
position: absolute;
|
||||||
|
left: 60rpx;
|
||||||
|
top: 12rpx;
|
||||||
|
}
|
||||||
|
.r_text{
|
||||||
|
color: #f8e8b2;
|
||||||
|
position: absolute;
|
||||||
|
right: 56rpx;
|
||||||
|
top: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_pay_bu {
|
||||||
|
padding: 20rpx 0 40rpx;
|
||||||
|
.u_pay_bu {
|
||||||
|
margin-bottom: constant(safe-area-inset-bottom);
|
||||||
|
margin-bottom: env(safe-area-inset-bottom);
|
||||||
|
width: 480rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 100rpx;
|
||||||
|
background-image: linear-gradient(to left,#FF85A5,#FF5380);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: 'VIP服务',
|
||||||
|
navigationStyle: 'custom',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
cuCustom: '~@/components/cu-custom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
756
src/pages/users/upgradeVIP2.wpy
Normal file
756
src/pages/users/upgradeVIP2.wpy
Normal file
@ -0,0 +1,756 @@
|
|||||||
|
<template>
|
||||||
|
<cuCustom :bgColor="bgVip" isCustom="{{true}}">
|
||||||
|
<view slot="backText">返回</view>
|
||||||
|
<view slot="content">服务套餐</view>
|
||||||
|
</cuCustom>
|
||||||
|
<view class="_bc-user animation-slide-top">
|
||||||
|
<!-- <view class="mainTab text-center font_30">-->
|
||||||
|
<!-- <view class="white itemText inline-block {{active == 0?'active':''}}" @tap="activeFn('0')">超级会员</view>-->
|
||||||
|
<!-- <view class="white itemText inline-block {{active == 1?'active':''}}" @tap="activeFn('1')">会员套餐</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<image class="userinfo-avatar flo_l" src="{{user.photo}}" mode="aspectFill"/>
|
||||||
|
<view class="white flo_l font_32 userinfo-name">
|
||||||
|
<span class="bold">{{user.nickname}} </span>
|
||||||
|
<block v-if="user.rank_id > 0">
|
||||||
|
<image class="icon" src="https://images.ufutx.com/202004/09/ce3522d17ae95986b88a1e6d07b12c4e.png" mode="aspectFill"/>
|
||||||
|
<span class="orange font_22">超级会员</span>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<image class="icon" src="https://images.ufutx.com/202004/10/eb8b12c7330f16b732d47baef2012906.png" mode="aspectFill"/>
|
||||||
|
<span class="white font_22">普通会员</span>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
<view class="font_24 white flo_l" style="color: #f7e4ad;width: 70%; ">
|
||||||
|
{{user.rank_deadline?user.rank_deadline+'到期':'未开通'}}
|
||||||
|
</view>
|
||||||
|
<swiper class="card-swiper" circular="true" bindchange="cardSwiper" current="{{cardCur}}">
|
||||||
|
<swiper-item v-for="(item,index) in rankList" :key="index" class="{{cardCur==index?'cur':''}}" @tap="showFn(index)">
|
||||||
|
<view :class="{'bg-grey': !item.id}" class="swiper-item radius shadow margin-top">
|
||||||
|
<image :src="item.pic" mode="aspectFill" style="width: 100%"></image>
|
||||||
|
<!--<video src="{{item.url}}" autoplay loop muted show-play-btn="{{false}}" controls="{{false}}" objectFit="cover" wx:if="{{item.type=='video'}}"></video>-->
|
||||||
|
</view>
|
||||||
|
</swiper-item>
|
||||||
|
</swiper>
|
||||||
|
</view>
|
||||||
|
<view class="mainWrapper animation-slide-bottom">
|
||||||
|
<view class="font_30 bold color-333 title">服务套餐权益:</view>
|
||||||
|
</view>
|
||||||
|
<view class="scroll-wrapper">
|
||||||
|
<!-- <scroll-view scroll-x="{{true}}" scroll-with-animation style="height: 264rpx;">
|
||||||
|
<view class="inline-block text-center scroll-item" wx:for="{{specialVIP.feature}}" wx:key="index">
|
||||||
|
<image src="{{item.icon}}" mode="aspectFit" class="featureIcon"></image>
|
||||||
|
<view class="font_22">{{item.text}}</view>
|
||||||
|
<view class="font_22" style="color: #B15E00">{{item.sub_text}}</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view> -->
|
||||||
|
<scroll-view class="scrollX" scroll-x="{{true}}" scroll-with-animation style="height: 264rpx;">
|
||||||
|
<view class="inline-block text-center scroll-items" v-for="(item,index) in specialVIP.feature" :key="index">
|
||||||
|
<image src="{{item.icon}}" mode="aspectFit" class="featureIcon"></image>
|
||||||
|
<view class="font_22">{{item.text}}</view>
|
||||||
|
<view class="font_22" style="color: #B15E00">{{item.sub_text}}</view>
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
<view class="mainWrapper">
|
||||||
|
<view class="font_30 bold color-333 title">套餐说明:</view>
|
||||||
|
<view class="ruleBox">
|
||||||
|
<block v-if="specialVIP.discount_desc_type == 'json'">
|
||||||
|
<view class="font_24 color-666" v-for="(item,index) in (specialVIP.explain || specialVIP.discount_desc)" :key="index">{{item}}</view>
|
||||||
|
</block>
|
||||||
|
<block :else>
|
||||||
|
<text class="font_24 color-666">{{specialVIP.discount_desc}}</text>
|
||||||
|
<!-- <view class="font_24 color-666 placeholderStyle" wx:for="{{5}}" wx:key="index" style="width:{{100/index}}%"></view> -->
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<block v-if="type == 'single'">
|
||||||
|
<view class="payBtn" v-if="system != 'iOS' || active == '1'" @tap="showFn()">
|
||||||
|
<view class="l_text">
|
||||||
|
<span class="font_32 bold">
|
||||||
|
<span>¥</span>{{specialVIP.discount_price}}
|
||||||
|
</span>
|
||||||
|
<!-- <span style="text-decoration: line-through;" class="font_22">{{specialVIP.price}}</span>-->
|
||||||
|
</view>
|
||||||
|
<view class="r_text">
|
||||||
|
<span class="font_32">
|
||||||
|
立即购买
|
||||||
|
</span>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<button class="btn text-center font_30 btn-box white radius shadow bg-blue margin-top" open-type="share">分享给好友</button>
|
||||||
|
</block>
|
||||||
|
<view :class="{'show':modalName=='Modal'}" class="cu-modal">
|
||||||
|
<view class="cu-dialog">
|
||||||
|
<view class="cu-bar bg-white justify-end">
|
||||||
|
<view class="content">提示</view>
|
||||||
|
<view class="action" bindtap="hideModal">
|
||||||
|
<text class="cuIcon-close text-red"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="padding-xl">
|
||||||
|
由于相关规范,ios小程序此功能暂不可用
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cu-modal {{modalName=='holidayActivity'?'show':''}}">
|
||||||
|
<view class="holidayActivity">
|
||||||
|
<image src="https://images.ufutx.com/202105/18/bf8ae0ee07372d1752eb770ebe218089.png" mode="widthFix" class="activityIcon"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 弹框-->
|
||||||
|
<view :class="{'show':modalName=='DialogModal'}" class="cu-modal bottom-modal ">
|
||||||
|
<view class="cu-dialog bg-white" style="border-radius: 24rpx 24rpx 0px 0px;">
|
||||||
|
<view class="cu-bar justify-end">
|
||||||
|
<view class="content color333 bold">支付信息</view>
|
||||||
|
<view class="action" bindtap="hideModal">
|
||||||
|
<text class="cuIcon-close" style="color:#C2C2C2;font-size: 44rpx !important;"></text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="" style="background-color: white;padding: 20rpx 0 0 0;">
|
||||||
|
<view class="text-left f-fcc">
|
||||||
|
<span class="value color-999 font_24" style="text-decoration: line-through;" >原价:¥{{payData.price}}</span>
|
||||||
|
</view>
|
||||||
|
<view class="item-xl text-left f-fcc">
|
||||||
|
<span class="value bold color333" style="font-size: 52rpx;line-height: 52rpx;">¥{{payData.discount_price}}</span>
|
||||||
|
<!-- <span class="value bold color333" style="font-size: 52rpx;line-height: 52rpx;" v-else>¥{{deductionPrice>0?deductionPrice:'0.00'}}</span>-->
|
||||||
|
</view>
|
||||||
|
<view class="item-xl text-left f-fcc">
|
||||||
|
<span class="value color-999 font_24">{{payData.title}}</span>
|
||||||
|
</view>
|
||||||
|
<view class="m_payData f-fbc">
|
||||||
|
<view class="f-fc">
|
||||||
|
<image class="u_payData_img" src="https://images.ufutx.com/202106/23/886f1118c820849fae35b3412930a5a2.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
|
<view class="font_28 color333">微信支付</view>
|
||||||
|
</view>
|
||||||
|
<image src="https://images.ufutx.com/202106/23/9dd9dc41e3689d92a280740bc99f3c32.png" mode="aspectFit" class="iconV2"></image>
|
||||||
|
<!-- <view class="u_pay_unc" wx:else></view> -->
|
||||||
|
</view>
|
||||||
|
<!-- <view v-if="specialVIP.pay_type == 'coin' && specialVIP.can_coin_amount > 0 && specialVIP.can_cash_amount > 0 && payData.coin > 0" class="m_payData" @tap="payChoice('coin')">-->
|
||||||
|
<!-- <view class="f-fbc">-->
|
||||||
|
<!-- <view class="f-fc">-->
|
||||||
|
<!-- <image class="m_payData_coinImg" src="https://images.ufutx.com/202106/07/3f64bcbd68b94e5435afc16237b6a40d.png" mode="aspectFit"></image>-->
|
||||||
|
<!-- <view class="font_28 color333" v-if="deductionPrice<=0">可用{{payData.discount_price*10}}福币抵扣{{payData.discount_price}}元</view>-->
|
||||||
|
<!-- <view class="font_28 color333" v-else>可用{{(payData.coin >= specialVIP.can_coin_amount)?specialVIP.can_coin_amount:payData.coin}}福币抵扣{{payData.coin >= specialVIP.can_coin_amount?specialVIP.can_cash_amount:coinMoney}}元</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- <image src="https://images.ufutx.com/202106/23/9dd9dc41e3689d92a280740bc99f3c32.png" mode="aspectFit" class="iconV2" v-if="wxPayShow == 'coin'"></image>-->
|
||||||
|
<!-- <view class="u_pay_unc" v-else></view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
<!-- <view class="font_24 color999" style="padding-left: 60rpx;text-align: left;">当前拥有{{payData.coin}}福币</view>-->
|
||||||
|
<!-- </view>-->
|
||||||
|
</view>
|
||||||
|
<view class="m_pay_bu f-fcc">
|
||||||
|
<view class="u_pay_bu f-fcc font_32 white bold" bindtap="conversion">立即支付</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style="height: 120rpx;"></view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wepy from '@wepy/core'
|
||||||
|
import https from '../../mixins/https'
|
||||||
|
import base from '../../mixins/base'
|
||||||
|
|
||||||
|
// import modalUp from '../../components/modal-up'
|
||||||
|
// import cuCustom from '../../components/cu-custom'
|
||||||
|
// import ShareMessage from '../../mixins/ShareMessage'
|
||||||
|
import { service } from '../../config.js'
|
||||||
|
|
||||||
|
wepy.page({
|
||||||
|
mixins: [base, https],
|
||||||
|
data: {
|
||||||
|
user: {},
|
||||||
|
is_vip: false,
|
||||||
|
init: false,
|
||||||
|
date: 0,
|
||||||
|
active: 1,
|
||||||
|
activeV2: false,
|
||||||
|
swiperList: [],
|
||||||
|
cardCur: 0,
|
||||||
|
cardCur_1: 0,
|
||||||
|
sharePic: 'https://images.ufutx.com/202007/25/0db02b82c96b0da207b7d3f6ff517ffb.png',
|
||||||
|
shareText: '人工服务套餐',
|
||||||
|
specialVIP: [],
|
||||||
|
payData: {
|
||||||
|
title: '',
|
||||||
|
price: '',
|
||||||
|
discount_price: '',
|
||||||
|
padId: ''
|
||||||
|
}, // 支付信息
|
||||||
|
rank: [],
|
||||||
|
rankData: [],
|
||||||
|
type: 'single',
|
||||||
|
price: 0,
|
||||||
|
score: 0,
|
||||||
|
rankList: [],
|
||||||
|
other_user_id: '',
|
||||||
|
modalName: '', // 弹框支付
|
||||||
|
trade_no: '', // 订单号
|
||||||
|
system: '', // 机型
|
||||||
|
share_type: '',
|
||||||
|
shareId: '',
|
||||||
|
chat_user_id: '',
|
||||||
|
timeID: -1,
|
||||||
|
wxPayShow: 'cash',
|
||||||
|
coinMoney: 0,
|
||||||
|
deductionPrice: 0,
|
||||||
|
bgVip: 'background: #333333;\ncolor: white'
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
residue() {
|
||||||
|
return (this.score - (this.price - this.my_rank_price)).toFixed(2)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onShow() {
|
||||||
|
// 初始化页面数据
|
||||||
|
if (wx.getStorageSync('userInfo').type) {
|
||||||
|
this.type = wx.getStorageSync('userInfo').type
|
||||||
|
}
|
||||||
|
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoad(e) {
|
||||||
|
if (e.index) {
|
||||||
|
this.cardCur_1 = e.index
|
||||||
|
}
|
||||||
|
if (e.share_type) {
|
||||||
|
this.share_type = e.share_type
|
||||||
|
}
|
||||||
|
if (e.other_user_id) {
|
||||||
|
this.other_user_id = e.other_user_id
|
||||||
|
console.log(this.other_user_id, 'this.other_user_id')
|
||||||
|
}
|
||||||
|
if (e.chat_user_id) {
|
||||||
|
this.chat_user_id = e.chat_user_id
|
||||||
|
}
|
||||||
|
console.log(this.chat_user_id, '99999')
|
||||||
|
this.rankList = []
|
||||||
|
this.system = wx.getStorageSync('system')
|
||||||
|
console.log(this.system)
|
||||||
|
this.initPageData()
|
||||||
|
// this.getUserData()
|
||||||
|
},
|
||||||
|
|
||||||
|
onPullDownRefresh() {},
|
||||||
|
|
||||||
|
onShareAppMessage(res) {
|
||||||
|
let that = this
|
||||||
|
let openid = wx.getStorageSync('openid')
|
||||||
|
let fromUserID = wx.getStorageSync('user_id')
|
||||||
|
let url = `/pages/users/upgradeVIP2?from_openid=${openid}&share_user_id=${that.id}&share_type=share&from_user_id=${fromUserID}&index=${that.cardCur}`
|
||||||
|
console.log(url)
|
||||||
|
return {
|
||||||
|
title: that.shareText,
|
||||||
|
path: url,
|
||||||
|
imageUrl: that.sharePic,
|
||||||
|
success: function(res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '转发成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
var shareTickets = res.shareTickets
|
||||||
|
if (shareTickets.length == 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function(res) {
|
||||||
|
// 转发失败
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
watch: {
|
||||||
|
cardCur() {
|
||||||
|
console.log('payData', this.cardCur)
|
||||||
|
// if (this.active == 1) {
|
||||||
|
console.log(this.rankList[this.cardCur])
|
||||||
|
this.payData.title = this.rankList[this.cardCur].title
|
||||||
|
this.payData.price = this.rankList[this.cardCur].price
|
||||||
|
this.payData.discount_price = this.rankList[this.cardCur].discount_price
|
||||||
|
// } else {
|
||||||
|
// this.payData.title = `超级会员(${this.rankList[this.cardCur].name})`
|
||||||
|
// this.payData.price = this.rankList[this.cardCur].price
|
||||||
|
// this.payData.discount_price = this.rankList[this.cardCur].discount_price
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
// getPageData() {
|
||||||
|
// let vm = this
|
||||||
|
// vm.$showLoading('加载中')
|
||||||
|
// vm.$get({url: `${service.host}/super/rank`}).then(({code, data}) => {
|
||||||
|
// vm.specialVIP = data
|
||||||
|
// vm.rankList = data.sub_ranks
|
||||||
|
// vm.payData.title = `超级会员(${vm.rankList[0].name})`
|
||||||
|
// vm.payData.price = `${vm.rankList[0].price}`
|
||||||
|
// vm.payData.discount_price = `${vm.rankList[0].discount_price}`
|
||||||
|
// console.log(vm.rankList, 'rankList===')
|
||||||
|
// wx.hideLoading()
|
||||||
|
// }).finally(() => {
|
||||||
|
// this.loaded = false
|
||||||
|
// this.init = true
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
getUserData() { // 用户基本信息
|
||||||
|
let vm = this
|
||||||
|
vm.$get({url: `${service.host}/user/center`}).then(({code, data}) => {
|
||||||
|
vm.user = data.user
|
||||||
|
vm.user.rank_id = data.rank_profile.rank_id
|
||||||
|
// vm.payData.remain_amount = data.remain_amount
|
||||||
|
// vm.payData.coin = data.coin
|
||||||
|
let {type, is_subscribe} = wx.getStorageSync('userInfo')
|
||||||
|
let userInfo = {
|
||||||
|
nickName: data.nickname,
|
||||||
|
avatarUrl: data.avatar,
|
||||||
|
type,
|
||||||
|
id: data.id,
|
||||||
|
is_subscribe,
|
||||||
|
rank_id: data.rank_id
|
||||||
|
}
|
||||||
|
wx.setStorageSync('userInfo', userInfo)
|
||||||
|
console.log(data)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 判断是否json
|
||||||
|
isValidJSON(str) {
|
||||||
|
try {
|
||||||
|
JSON.parse(str)
|
||||||
|
return true
|
||||||
|
} catch (e) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 套餐会员数据
|
||||||
|
initPageData() {
|
||||||
|
let that = this
|
||||||
|
that.$showLoading('加载中')
|
||||||
|
this.$get({url: `${service.host}/rank/service/list`}).then(({code, data}) => {
|
||||||
|
that.user = data.rank_info
|
||||||
|
// vm.payData.remain_amount = data.remain_amount
|
||||||
|
// vm.payData.coin = data.coin
|
||||||
|
let {type, is_subscribe} = wx.getStorageSync('userInfo')
|
||||||
|
let userInfo = {
|
||||||
|
nickName: that.user.nickname,
|
||||||
|
avatarUrl: that.user.avatar,
|
||||||
|
type,
|
||||||
|
id: that.user.id,
|
||||||
|
is_subscribe,
|
||||||
|
rank_id: that.user.rank_id
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
data.services.forEach(item => {
|
||||||
|
if (item.discount_desc_type == 'text') {
|
||||||
|
item.discount_desc = item.discount_desc.replace(/↵/g, '\n')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} catch (e) {}
|
||||||
|
that.rankList = data.services.map(item => {
|
||||||
|
if (that.isValidJSON(item.feature)) {
|
||||||
|
item.feature = JSON.parse(item.feature)
|
||||||
|
}
|
||||||
|
return item
|
||||||
|
})
|
||||||
|
that.specialVIP = that.rankList[that.cardCur_1]
|
||||||
|
that.payData.title = `${that.rankList[that.cardCur_1].title}`
|
||||||
|
that.payData.price = `${that.rankList[that.cardCur_1].price}`
|
||||||
|
that.payData.discount_price = `${that.rankList[that.cardCur_1].discount_price}`
|
||||||
|
that.sharePic = that.rankList[that.cardCur_1].pic
|
||||||
|
that.cardCur = that.cardCur_1
|
||||||
|
that.shareId = that.rankList[that.cardCur].id
|
||||||
|
if (wx.getStorageSync('from_user_id')) {
|
||||||
|
// that.worthShare()
|
||||||
|
}
|
||||||
|
wx.hideLoading()
|
||||||
|
console.log(that.payData, 'rankList')
|
||||||
|
console.log(that.rankList, 'rankList')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
worthShare() {
|
||||||
|
let vm = this,
|
||||||
|
data = {
|
||||||
|
from_user_id: wx.getStorageSync('from_user_id'),
|
||||||
|
channel: 'service',
|
||||||
|
product_id: vm.shareId
|
||||||
|
}
|
||||||
|
vm.$post({url: `${service.host}/worth/shares`, data}).then(({code, data}) => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gotoApp(item) {
|
||||||
|
let URL = `https://love.ufutx.com/h5/#/serviceAgreementV3?title=${item}`
|
||||||
|
wx.navigateTo({url: '/pages/books/bookDetail?url=' + encodeURIComponent(URL)})
|
||||||
|
},
|
||||||
|
// activeFnV2() {
|
||||||
|
// this.activeV2 = !this.activeV2
|
||||||
|
// },
|
||||||
|
cardSwiper(e) {
|
||||||
|
console.log(e, 'e===')
|
||||||
|
this.cardCur = e.$wx.detail.current
|
||||||
|
this.shareText = this.rankList[e.$wx.detail.current].title
|
||||||
|
this.sharePic = this.rankList[e.$wx.detail.current].pic
|
||||||
|
if (this.active == 1) {
|
||||||
|
console.log(this.cardCur)
|
||||||
|
this.specialVIP = this.rankList[this.cardCur]
|
||||||
|
}
|
||||||
|
clearTimeout(this.timeID)
|
||||||
|
this.timeID = setTimeout(() => {
|
||||||
|
this.shareId = this.rankList[this.cardCur].id
|
||||||
|
console.log(this.shareId)
|
||||||
|
if (wx.getStorageSync('from_user_id')) {
|
||||||
|
this.worthShare()
|
||||||
|
}
|
||||||
|
}, 800)
|
||||||
|
},
|
||||||
|
showFn (index) { // 弹框支付
|
||||||
|
this.wxPayShow = 'cash'
|
||||||
|
this.coinMoney = (this.payData.coin / 10).toFixed(2)
|
||||||
|
// this.deductionPrice = this.payData.coin >= this.specialVIP.can_coin_amount ? (this.payData.discount_price - this.specialVIP.can_cash_amount).toFixed(2) : (this.payData.discount_price - this.coinMoney).toFixed(2)
|
||||||
|
if (this.rankList[this.cardCur].id) {
|
||||||
|
// let monay = 0
|
||||||
|
// if (this.payData.discount_price < this.payData.coin / 10) {
|
||||||
|
// monay = 0
|
||||||
|
// } else {
|
||||||
|
// monay = (this.payData.discount_price - this.payData.coin / 10).toFixed(2)
|
||||||
|
// }
|
||||||
|
// console.log(monay, 'monay=')
|
||||||
|
// this.payData.monay = Math.abs(monay).toFixed(2)
|
||||||
|
this.payData.payId = this.rankList[this.cardCur].id
|
||||||
|
this.modalName = 'DialogModal'
|
||||||
|
} else {
|
||||||
|
this.modalName = 'Modal'
|
||||||
|
}
|
||||||
|
// this.payData = JSON.stringify(this.payData)
|
||||||
|
console.log(this.payData, '===')
|
||||||
|
},
|
||||||
|
hideModal () {
|
||||||
|
this.modalName = ''
|
||||||
|
},
|
||||||
|
// activeFn(code) {
|
||||||
|
// this.active = code
|
||||||
|
// if (code == 1) {
|
||||||
|
// this.initPageData()
|
||||||
|
// } else {
|
||||||
|
// this.getPageData()
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
copyWechat(data) {
|
||||||
|
let vm = this
|
||||||
|
wx.setClipboardData({
|
||||||
|
data: data,
|
||||||
|
success(res) {
|
||||||
|
vm.$showToast('复制成功,赶紧去加《小恋》为好友吧!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showToast(title) {
|
||||||
|
this.$showToast(title)
|
||||||
|
},
|
||||||
|
goto(url) {
|
||||||
|
wx.navigateTo({url: url})
|
||||||
|
},
|
||||||
|
showTost() {
|
||||||
|
this.$showToast('请同意《福恋服务协议》')
|
||||||
|
},
|
||||||
|
conversion(item) {
|
||||||
|
console.log(this.payData.payId)
|
||||||
|
let that = this,
|
||||||
|
url = `${service.host}/rank/service/${this.payData.payId}/buy`
|
||||||
|
that.modalName = ''
|
||||||
|
that.$showLoading('支付中...')
|
||||||
|
let data = {}
|
||||||
|
if (that.active == 1) {
|
||||||
|
data = {
|
||||||
|
chat_user_id: this.chat_user_id,
|
||||||
|
other_user_id: this.other_user_id,
|
||||||
|
pay_type: this.wxPayShow
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
data = {
|
||||||
|
sub_rank_id: this.payData.payId,
|
||||||
|
chat_user_id: this.chat_user_id,
|
||||||
|
other_user_id: this.other_user_id,
|
||||||
|
pay_type: this.wxPayShow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
that.$post({url: url, data}).then(({code, data}) => {
|
||||||
|
that.trade_no = data.trade_no
|
||||||
|
if (data.wx_pay.length == 0) {
|
||||||
|
that.$post({url: `${service.host}/order/${that.trade_no}/callback`}).then(({code, data}) => {
|
||||||
|
that.cardCur_1 = 0
|
||||||
|
that.getUserData()
|
||||||
|
that.initPageData()
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
let wxconfig = data.wx_pay.config
|
||||||
|
// wx.config(JSON.parse(response.data.data.order.wx_pay.js));
|
||||||
|
if (wxconfig.payment_debug) {
|
||||||
|
return that.$post({url: `${service.host}/order/${that.trade_no}/callback`}).then(({code, data}) => {
|
||||||
|
that.getUserData()
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
wx.requestPayment({
|
||||||
|
timeStamp: wxconfig.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
|
||||||
|
nonceStr: wxconfig.nonceStr, // 支付签名随机串,不长于 32 位
|
||||||
|
package: wxconfig.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
|
||||||
|
signType: wxconfig.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
|
||||||
|
paySign: wxconfig.paySign, // 支付签名
|
||||||
|
success: function (res) {
|
||||||
|
that.$post({url: `${service.host}/order/${that.trade_no}/callback`}).then(({code, data}) => {
|
||||||
|
that.getUserData()
|
||||||
|
that.$Toast_success('支付成功')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: function (res) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '已取消支付',
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
setTimeout(() => {
|
||||||
|
wx.hideLoading()
|
||||||
|
}, 1200)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
payChoice(e) {
|
||||||
|
this.wxPayShow = this.wxPayShow == 'coin' ? 'cash' : e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
page{
|
||||||
|
background: #F6F6F6;
|
||||||
|
|
||||||
|
.mainTab{
|
||||||
|
padding: 12rpx;
|
||||||
|
.itemText {
|
||||||
|
width: 38%;
|
||||||
|
margin-bottom: 26rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.active{
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
&:before{
|
||||||
|
content: " ";
|
||||||
|
position: absolute;
|
||||||
|
bottom: -8rpx;
|
||||||
|
left: 14vw;
|
||||||
|
height: 2px;
|
||||||
|
width: 26px;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
background: #F8EAB8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
._bc-user{
|
||||||
|
width: 100%;
|
||||||
|
background: url('https://images.ufutx.com/202004/09/5fd9264a4da7c310d1e086a92be7195a.png');
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
position: relative;
|
||||||
|
/*position: fixed;*/
|
||||||
|
height: 70vw;
|
||||||
|
padding-top: 6vw;
|
||||||
|
/*z-index: 9999;*/
|
||||||
|
.userinfo-avatar {
|
||||||
|
width: 110rpx;
|
||||||
|
height: 110rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-left: 34rpx;
|
||||||
|
margin-right: 22rpx;
|
||||||
|
border: 4rpx solid #fff;
|
||||||
|
}
|
||||||
|
.userinfo-name{
|
||||||
|
margin-top: 12rpx;
|
||||||
|
.icon{
|
||||||
|
width: 28rpx;
|
||||||
|
height: 28rpx;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin:0 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item-xl{
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
// .title{
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
.m_payData {
|
||||||
|
padding: 30rpx 30rpx;
|
||||||
|
.u_payData_img {
|
||||||
|
width: 48rpx;
|
||||||
|
height: 42rpx;
|
||||||
|
margin-right: 12rpx;
|
||||||
|
}
|
||||||
|
.u_pay_unc {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: 2rpx solid #C2C2C2;
|
||||||
|
}
|
||||||
|
.m_payData_coinImg {
|
||||||
|
width: 48rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
margin-right: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.iconV2{
|
||||||
|
height: 32rpx;
|
||||||
|
width: 32rpx;
|
||||||
|
}
|
||||||
|
.mainWrapper{
|
||||||
|
padding: 0 34rpx;
|
||||||
|
.title{
|
||||||
|
margin-top: 32rpx;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
}
|
||||||
|
.ruleBox{
|
||||||
|
background: white;
|
||||||
|
padding: 22rpx;
|
||||||
|
box-shadow: 1rpx 1rpx 12rpx #f0f0f0;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
line-height: 46rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scroll-wrapper{
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
.scrollX{
|
||||||
|
display: flex;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.scroll-items:nth-of-type(1){
|
||||||
|
margin-left: 34rpx;
|
||||||
|
}
|
||||||
|
.scroll-items:last-child{
|
||||||
|
margin-right: 34rpx;
|
||||||
|
}
|
||||||
|
.scroll-item{
|
||||||
|
width: 200rpx;
|
||||||
|
height: 268rpx;
|
||||||
|
margin-left: -22rpx;
|
||||||
|
background-image: url("https://images.ufutx.com/202004/09/1da12829a23a841d5f490302873152c3.png");
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
.scroll-items{
|
||||||
|
width: 180rpx;
|
||||||
|
height: 230rpx;
|
||||||
|
margin-right: 26rpx;
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
box-shadow: 5rpx 5rpx 15rpx 5rpx #ccc;
|
||||||
|
// background-image: url("https://images.ufutx.com/202004/09/1da12829a23a841d5f490302873152c3.png");
|
||||||
|
// background-size: cover;
|
||||||
|
// background-position: center;
|
||||||
|
// vertical-align: middle;
|
||||||
|
}
|
||||||
|
.featureIcon{
|
||||||
|
width: 62rpx;
|
||||||
|
height: 62rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.card-swiper{
|
||||||
|
.swiper-item{
|
||||||
|
border-radius: 14rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-box{
|
||||||
|
position: fixed;
|
||||||
|
bottom: 20rpx;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 460rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
background-image: linear-gradient(to right, #FF85A5 0%, #FF5380 100%);
|
||||||
|
border-radius: 50rpx;
|
||||||
|
margin: 16rpx auto;
|
||||||
|
letter-spacing: 8rpx;
|
||||||
|
}
|
||||||
|
.payBtn{
|
||||||
|
position: relative;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%);
|
||||||
|
width: 480rpx;
|
||||||
|
height: 60px;
|
||||||
|
background-image: url("https://images.ufutx.com/202007/17/fb7b8b1cd0d1b289d1e029257a97e949.png");
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
.l_text{
|
||||||
|
position: absolute;
|
||||||
|
left: 60rpx;
|
||||||
|
top: 12rpx;
|
||||||
|
}
|
||||||
|
.r_text{
|
||||||
|
color: #f8e8b2;
|
||||||
|
position: absolute;
|
||||||
|
right: 56rpx;
|
||||||
|
top: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bg-vip{
|
||||||
|
background: #333333;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.holidayActivity{
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
width: 600rpx;
|
||||||
|
max-width: 100%;
|
||||||
|
border-radius: 24rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
.activityIcon{
|
||||||
|
width: 606rpx;
|
||||||
|
height: 692rpx;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.m_pay_bu {
|
||||||
|
padding: 20rpx 0 40rpx;
|
||||||
|
.u_pay_bu {
|
||||||
|
margin-bottom: constant(safe-area-inset-bottom);
|
||||||
|
margin-bottom: env(safe-area-inset-bottom);
|
||||||
|
width: 480rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 100rpx;
|
||||||
|
background-image: linear-gradient(to left,#FF85A5,#FF5380);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<config>
|
||||||
|
{
|
||||||
|
navigationBarTitleText: '服务套餐',
|
||||||
|
navigationStyle: 'custom',
|
||||||
|
enablePullDownRefresh: false,
|
||||||
|
backgroundColorTop: '#f2f2f2',
|
||||||
|
backgroundColorBottom: '#f2f2f2',
|
||||||
|
usingComponents: {
|
||||||
|
cuCustom: '~@/components/cu-custom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</config>
|
||||||
@ -40,7 +40,7 @@ const wx_login = () => {
|
|||||||
version: getApp().$wepy.$options.globalData.versions
|
version: getApp().$wepy.$options.globalData.versions
|
||||||
}
|
}
|
||||||
wx.request({
|
wx.request({
|
||||||
url: `${service.host}/login/wechat/v2`,
|
url: `${service.host}/login`,
|
||||||
data: data,
|
data: data,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
success: ({data: res}) => {
|
success: ({data: res}) => {
|
||||||
@ -49,7 +49,7 @@ const wx_login = () => {
|
|||||||
case 0:
|
case 0:
|
||||||
wx.setStorageSync('is_servicer', data.is_servicer)
|
wx.setStorageSync('is_servicer', data.is_servicer)
|
||||||
wx.setStorageSync('token', data.token)
|
wx.setStorageSync('token', data.token)
|
||||||
wx.setStorageSync('openid', (!!data.wechat && data.wechat.openid))
|
wx.setStorageSync('openid', (data.openid))
|
||||||
wx.setStorageSync('user_id', data.user.id) // 用户id
|
wx.setStorageSync('user_id', data.user.id) // 用户id
|
||||||
wx.setStorageSync('mobile', data.user.mobile) // 用户手机号
|
wx.setStorageSync('mobile', data.user.mobile) // 用户手机号
|
||||||
let userInfo = {
|
let userInfo = {
|
||||||
@ -84,18 +84,17 @@ const wx_login = () => {
|
|||||||
const getPhoneNumber = ({detail}) => {
|
const getPhoneNumber = ({detail}) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (detail.iv) {
|
if (detail.iv) {
|
||||||
let data = {
|
// let data = {
|
||||||
code: detail.code
|
// code: detail.code
|
||||||
}
|
// }
|
||||||
console.log(data)
|
// console.log(data)
|
||||||
wx.request({
|
wx.request({
|
||||||
url: `${service.host}/code/to/mobile`,
|
url: `${service.host}/wechat/mobile?code=${detail.code}`,
|
||||||
header: {
|
header: {
|
||||||
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
'Authorization': 'Bearer ' + wx.getStorageSync('token'),
|
||||||
'X-Requested-With': 'XMLHttpRequest'
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
},
|
},
|
||||||
data: data,
|
method: 'get',
|
||||||
method: 'post',
|
|
||||||
success: ({data: res}) => {
|
success: ({data: res}) => {
|
||||||
let {code, data} = res
|
let {code, data} = res
|
||||||
switch (code) {
|
switch (code) {
|
||||||
@ -196,6 +195,20 @@ let commentTimeHandle = (timeStamp) => {
|
|||||||
return timeSpanStr
|
return timeSpanStr
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
const getElement_WH = (element) => { // 获取元素位置
|
||||||
wx_login, throttle, getPhoneNumber, logger, getNowTime, commentTimeHandle, getUpdateManager
|
// console.log(element)
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let query = wx.createSelectorQuery()
|
||||||
|
query.select(element).boundingClientRect((rect) => {
|
||||||
|
if (typeof rect == 'object') {
|
||||||
|
resolve(rect)
|
||||||
|
} else {
|
||||||
|
// reject('TypeError')
|
||||||
|
}
|
||||||
|
}).exec()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
wx_login, throttle, getPhoneNumber, logger, getNowTime, commentTimeHandle, getUpdateManager, getElement_WH
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user