Compare commits

..

10 Commits

Author SHA1 Message Date
ec59edc7f9 init project 2026-04-21 09:56:13 +08:00
774bab3655 手机号码更改 2025-07-10 16:19:31 +08:00
a7ef77145c 扫码地址问题处理 2025-06-20 15:49:08 +08:00
51e6d98827 微信审核 强制登录限制 2025-06-16 10:06:17 +08:00
6d7bc01f6f 用户详情期望对方展示,话题搜索功能 2025-04-07 17:16:41 +08:00
96d730d6c2 update 2025-02-28 16:34:17 +08:00
5975ee836c update 2025-02-28 16:22:02 +08:00
c00771ec5a 手机号修改 2025-02-27 11:32:08 +08:00
5005d00a48 update 2025-02-06 09:07:35 +08:00
990007f340 update 2024-12-24 16:58:08 +08:00
60 changed files with 8792 additions and 4834 deletions

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="com.codeverse.userSettings.MarscodeWorkspaceAppSettingsState">
<option name="progress" value="1.0" />
</component>
</project>

View File

@ -2,5 +2,15 @@
<profile version="1.0"> <profile version="1.0">
<option name="myName" value="Project Default" /> <option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" /> <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myValues">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="v-if" />
</list>
</value>
</option>
<option name="myCustomValuesEnabled" value="true" />
</inspection_tool>
</profile> </profile>
</component> </component>

0
10
View File

0
10'
View File

8150
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +1,107 @@
{ {
"name": "ufutx_dma", "name": "ufutx_fulllink",
"version": "0.0.1", "version": "0.0.1",
"description": "A WePY project", "description": "ufutx 微信小程序项目基于wepy 2.x",
"main": "weapp/app.js", "main": "weapp/app.js",
"scripts": { "scripts": {
"start": "npm run dev",
"dev": "./node_modules/.bin/wepy build --watch", "dev": "./node_modules/.bin/wepy build --watch",
"build": "cross-env NODE_ENV=production ./node_modules/.bin/wepy build --no-cache", "build": "cross-env NODE_ENV=production ./node_modules/.bin/wepy build --no-cache ",
"clean": "rm -rf weapp", "clean": "rm -rf weapp",
"lint": "eslint --ext .js,.wpy src/",
"lint:fix": "eslint --ext .js,.wpy src/ --fix",
"preview": "npm run build && wx-tools preview",
"deploy": "npm run build && wx-tools upload --version $npm_package_version --desc '自动上传'",
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"wepy": { "wepy": {
"module-a": false, "module-a": false,
"./src/components/list": "./src/components/wepy-list.wpy" "resolve": {
"alias": {
"@": "./src"
}
},
"compiler": {
"babel": {
"presets": [
[
"@babel/preset-env",
{
"modules": false
}
]
],
"plugins": [
"@wepy/babel-plugin-import-regenerator"
]
},
"less": {
"paths": [
"./src/styles"
]
}
}
}, },
"author": "mamba <dengzhifeng_63@163.com>", "author": "mamba <dengzhifeng_63@163.com>",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@wepy/core": "^2.0.0-alpha.16", "@wepy/core": "^2.1.0",
"@wepy/use-promisify": "^2.1.0", "@wepy/use-promisify": "^2.1.0",
"@wepy/x": "^2.0.2", "@wepy/x": "^2.1.0",
"@yolanda-qn/four-electrodes-report-lib-pe": "^1.1.5", "@yolanda-qn/four-electrodes-report-lib-pe": "^1.1.5",
"dayjs": "^1.11.7", "dayjs": "^1.11.10",
"miniprogram-slide-view": "0.0.3", "miniprogram-slide-view": "0.0.3",
"nim-web-sdk-ng": "^10.3.1" "nim-web-sdk-ng": "^10.3.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.1.0", "@babel/core": "^7.23.0",
"@babel/preset-env": "^7.1.0", "@babel/preset-env": "^7.23.0",
"@wepy/babel-plugin-import-regenerator": "0.0.2", "@wepy/babel-plugin-import-regenerator": "0.0.2",
"@wepy/cli": "^2.0.0-alpha.28", "@wepy/cli": "^2.1.0",
"@wepy/compiler-babel": "^2.0.1", "@wepy/compiler-babel": "^2.1.0",
"@wepy/compiler-less": "^2.0.1", "@wepy/compiler-less": "^2.1.0",
"babel-eslint": "^7.2.1", "babel-eslint": "^7.2.3",
"cross-env": "^5.1.3", "cross-env": "^7.0.3",
"eslint": "^3.18.0", "eslint": "^3.18.0",
"eslint-config-standard": "^7.1.0", "eslint-config-standard": "^7.1.0",
"eslint-friendly-formatter": "^2.0.7", "eslint-friendly-formatter": "^2.0.7",
"eslint-plugin-html": "^2.0.1", "eslint-plugin-html": "^2.0.1",
"eslint-plugin-promise": "^3.5.0", "eslint-plugin-promise": "^3.5.0",
"eslint-plugin-standard": "^2.0.1", "eslint-plugin-standard": "^2.0.1",
"less": "^3.8.1", "husky": "^7.0.4",
"less": "^3.13.1",
"lint-staged": "^11.2.6",
"prettier": "^2.8.8",
"wepy-cli-extend": "^1.0.3", "wepy-cli-extend": "^1.0.3",
"wepy-eslint": "^1.5.3" "wepy-eslint": "^1.5.3"
},
"engines": {
"node": ">=14.0.0 <17.0.0",
"npm": ">=6.0.0"
},
"browserslist": [
"iOS >= 9",
"Android >= 5",
"last 2 versions",
"not dead"
],
"overrides": {
"nim-web-sdk-ng": {
"vue": "^2.6.14"
}
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,wpy}": [
"eslint --fix",
"prettier --write"
],
"*.less": [
"prettier --write"
]
} }
} }

View File

@ -35,7 +35,7 @@ wepy.app({
} }
}, },
globalData: { globalData: {
versions: 'v5.5.83', // 版本号 versions: 'v5.6.3', // 版本号
navBarHeight: 0, // 导航栏高度 navBarHeight: 0, // 导航栏高度
navRight: 0, // 胶囊距右方间距(方保持左、右间距一致) navRight: 0, // 胶囊距右方间距(方保持左、右间距一致)
navTop: 0, // 胶囊距顶部间距 navTop: 0, // 胶囊距顶部间距
@ -48,9 +48,15 @@ wepy.app({
bottomHeight: 0 // 底部小黑条的高度 bottomHeight: 0 // 底部小黑条的高度
}, },
onLaunch() { onLaunch(e) {
let vm = this let vm = this
console.log(e, 'uuu=')
vm.appLogin() vm.appLogin()
console.log(e, 'e=')
console.log(decodeURIComponent(e.query.scene), 'e=')
// if (e.path === 'pages/home/informationV2') {
// wx.redirectTo({ url: `/pages/home/information?${decodeURIComponent(e.query.scene)}` })
// }
initEid() initEid()
wx.getSystemInfo({ wx.getSystemInfo({
success: res => { success: res => {
@ -83,6 +89,12 @@ wepy.app({
onShow(options) { onShow(options) {
console.log('路径携带参数:', options) console.log('路径携带参数:', options)
// if (options.path === 'pages/home/informationV2') {
// wx.redirectTo({ url: `/pages/home/information?${decodeURIComponent(options.query.scene)}` })
// }
if (options.path === 'pages/tabBar/home1') {
wx.switchTab({ url: `/pages/tabBar/home?${decodeURIComponent(options.query.scene)}` })
}
if (options.query.scene) { if (options.query.scene) {
let sceneList = decodeURIComponent(options.query.scene).split(/[= &]/) let sceneList = decodeURIComponent(options.query.scene).split(/[= &]/)
sceneList.forEach((item, index) => { sceneList.forEach((item, index) => {
@ -100,7 +112,16 @@ wepy.app({
} }
} }
}, },
onPageNotFound(res) {
console.log(res, '错误res')
if (res.path === 'pages/home/informationV2') {
wx.redirectTo({ url: `/pages/home/information?${decodeURIComponent(res.query.scene)}` })
} else {
wx.switchTab({
url: `/pages/tabBar/home?${decodeURIComponent(res.query.scene)}`
}) // 如果是 tabbar 页面,请使用 wx.switchTab
}
},
onHide() {}, onHide() {},
methods: { methods: {
@ -136,7 +157,6 @@ pages: [
'pages/tabBar/home', 'pages/tabBar/home',
'pages/tabBar/news', 'pages/tabBar/news',
'pages/tabBar/user', 'pages/tabBar/user',
'pages/login',
'mp_ecard_sdk/index/index', 'mp_ecard_sdk/index/index',
'mp_ecard_sdk/protocol/service/index', 'mp_ecard_sdk/protocol/service/index',
'mp_ecard_sdk/protocol/privacy/index', 'mp_ecard_sdk/protocol/privacy/index',
@ -218,6 +238,8 @@ subPackages: [
'ImageCropper', 'ImageCropper',
'myDynamicDetail', 'myDynamicDetail',
'groupMember', 'groupMember',
'blacklistDefault',
'freeze',
] ]
}, },
{ {
@ -236,29 +258,29 @@ navigationBarTextStyle: 'black'
}, },
tabBar: { tabBar: {
color: '#999999', color: '#999999',
selectedColor: '#333333', selectedColor: '#fa4d76',
backgroundColor: '#ffffff', backgroundColor: '#ffffff',
borderStyle: 'black', borderStyle: 'black',
list: [ list: [
{ {
pagePath: 'pages/tabBar/home', pagePath: 'pages/tabBar/home',
selectedIconPath: './images/tabbar/homeActive.png', selectedIconPath: './images/tabBar/tab_recommend_active.png',
iconPath: './images/tabbar/home.png', iconPath: './images/tabBar/tab_recommend_normal.png',
text: '推荐' text: '推荐'
}, { }, {
pagePath: 'pages/tabBar/dynamic', pagePath: 'pages/tabBar/dynamic',
selectedIconPath: './images/tabbar/attentionActive.png', selectedIconPath: './images/tabBar/tab_discover_active.png',
iconPath: './images/tabbar/attention.png', iconPath: './images/tabBar/tab_discover_normal.png',
text: '发现' text: '发现'
}, { }, {
pagePath: 'pages/tabBar/news', pagePath: 'pages/tabBar/news',
selectedIconPath: './images/tabbar/messageActive.png', selectedIconPath: './images/tabBar/tab_message_active.png',
iconPath: './images/tabbar/message.png', iconPath: './images/tabBar/tab_message_normal.png',
text: '消息' text: '消息'
}, { }, {
pagePath: 'pages/tabBar/user', pagePath: 'pages/tabBar/user',
selectedIconPath: './images/tabbar/myActive.png', selectedIconPath: './images/tabBar/tab_mine_active.png',
iconPath: './images/tabbar/my.png', iconPath: './images/tabBar/tab_mine_normal.png',
text: '我的' text: '我的'
}] }]
}, },

View File

@ -3,7 +3,7 @@
<view :class="{'~show':modalName == 'unlockModal'}" class="~cu-modal"> <view :class="{'~show':modalName == 'unlockModal'}" class="~cu-modal">
<view class="open_unlock_box" style="padding-top: 126rpx;"> <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 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-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> <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 class="font_24 color-666" style="padding: 16rpx 0 24rpx 0">
</view> </view>
@ -79,6 +79,8 @@
</view> </view>
</view> </view>
</view> </view>
<loginDialog :loginShow="loginShow" @hiddenLogin="hiddenLogin"></loginDialog>
</view> </view>
</template> </template>
<script> <script>
@ -116,8 +118,8 @@ import https from '../mixins/https'
active: 1, active: 1,
selectedVal: '', selectedVal: '',
rankList: [], rankList: [],
payId: '' payId: '',
loginShow: false
}, },
watch: { watch: {
modalName(e) { modalName(e) {
@ -177,7 +179,16 @@ import https from '../mixins/https'
this.active = index this.active = index
this.payId = val this.payId = val
}, },
hiddenLogin() {
let vm = this
vm.loginShow = false
},
conversion(item) { conversion(item) {
// 校验是否完成注册资料
if (!this.$signInVerify()) {
this.$emit('signInVerify')
return
}
let that = this, let that = this,
url = `${service.host}/rank/buy` url = `${service.host}/rank/buy`
that.modalName = '' that.modalName = ''

View File

@ -364,12 +364,17 @@
showReplyView: true, showReplyView: true,
inputBoxH: 86, inputBoxH: 86,
modalName: '', modalName: '',
userInfo: {} userInfo: {},
loginShow: false
}, },
mixins: [https, base], mixins: [https, base],
methods: { methods: {
// 评论 // 评论
send() { send() {
if (!this.$signInVerify()) {
this.$emit('signInVerify')
return
}
let vm = this let vm = this
let comment = vm.replyId ? vm.inputVal.split(`回复@${vm.name}`)[1] : vm.inputVal let comment = vm.replyId ? vm.inputVal.split(`回复@${vm.name}`)[1] : vm.inputVal
let data = { let data = {

View File

@ -406,10 +406,10 @@ scroll-view {
jumpPath(url, type) { jumpPath(url, type) {
let vm = this let vm = this
// 校验是否完成注册资料 // 校验是否完成注册资料
if (!vm.$signInVerify()) { // if (!vm.$signInVerify()) {
vm.$emit('signInVerify') // vm.$emit('signInVerify')
return // return
} // }
console.log(vm.from, url, type, '7777') console.log(vm.from, url, type, '7777')
if (vm.from != 'dynamic' && vm.from != 'myDynamic' && type != 'vote' && vm.from != 'hotTopic') { if (vm.from != 'dynamic' && vm.from != 'myDynamic' && type != 'vote' && vm.from != 'hotTopic') {
console.log('44---') console.log('44---')
@ -421,10 +421,10 @@ scroll-view {
jumpPathV2(url, type) { jumpPathV2(url, type) {
let vm = this let vm = this
// 校验是否完成注册资料 // 校验是否完成注册资料
if (!vm.$signInVerify()) { // if (!vm.$signInVerify()) {
vm.$emit('signInVerify') // vm.$emit('signInVerify')
return // return
} // }
console.log(vm.from, url, type, '7777') console.log(vm.from, url, type, '7777')
if (vm.from != 'dynamicDetail' && vm.from != 'dynamic') { if (vm.from != 'dynamicDetail' && vm.from != 'dynamic') {
console.log('44---') console.log('44---')

View File

@ -168,7 +168,7 @@
<view class="~cu-modal {{inreviewShow?'~show':''}}"> <view class="~cu-modal {{inreviewShow?'~show':''}}">
<view class="intention_confirm_box animation-slide-top"> <view class="intention_confirm_box animation-slide-top">
<view class="intentionContent_1 font_34 ~color333 ~bold">你的资料正在审核中</view> <view class="intentionContent_1 font_34 ~color333 ~bold">你的资料正在审核中</view>
<view class="~font_32 ~color333" style="padding-bottom: 60rpx">如有紧急,请拨打<span style="color: #f33b6c;">18922809346</span></view> <view class="~font_32 ~color333" style="padding-bottom: 60rpx">如有紧急,请拨打<span style="color: #f33b6c;">18194063294</span></view>
<view class="intentionOperation"> <view class="intentionOperation">
<image @tap.stop="inreviewModal" class="operationButton" src="https://images.ufutx.com/202103/17/4281e92bc8b727bae08099a3015225b1.png" mode="widthFix"></image> <image @tap.stop="inreviewModal" class="operationButton" src="https://images.ufutx.com/202103/17/4281e92bc8b727bae08099a3015225b1.png" mode="widthFix"></image>
<image @tap.stop="clickPhone" class="operationButton" src="https://images.ufutx.com/202104/15/91fea69fdff1cfeaac369ddd5dd591f0.png" mode="widthFix"></image> <image @tap.stop="clickPhone" class="operationButton" src="https://images.ufutx.com/202104/15/91fea69fdff1cfeaac369ddd5dd591f0.png" mode="widthFix"></image>
@ -271,7 +271,7 @@
}, },
clickPhone() { clickPhone() {
wx.makePhoneCall({ wx.makePhoneCall({
phoneNumber: '18922809346' phoneNumber: '18194063294'
}) })
} }
}, },

View File

@ -36,7 +36,7 @@ export const service = {
// 添加好友 // 添加好友
addFriend: `${host}/friend/users`, addFriend: `${host}/friend/users`,
// 关注某人 // 关注某人
follow: `${host}/follow/users`, follow: `${host}/follow/user`,
// 我的粉丝 // 我的粉丝
followers: `${host}/followers`, followers: `${host}/followers`,
// 我的好友 // 我的好友

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,6 @@
import utils from '../utils/util' import utils from '../utils/util'
import {service} from '../config' import {service} from '../config'
import { IM } from '../utils/im'
export default { export default {
data: { data: {
@ -103,27 +104,8 @@ export default {
wx.removeStorageSync('formId') wx.removeStorageSync('formId')
resolve({statusCode, ...data}) resolve({statusCode, ...data})
} else if (data.code == 1) { } else if (data.code == 1) {
// resolve({statusCode, ...data})
reject(new Error(`error ${data.message}`)) reject(new Error(`error ${data.message}`))
if (this.$is == 'pages/service/GroupChatPage' && data.message.includes('已断开连接')) {
let vm = this
wx.showModal({ // 使用模态框提示用户进行操作
title: `温馨提示`,
content: `UpdatePromptText5`,
showCancel: false,
confirmText: `UpdatePromptText5`,
success: function (res) {
if (res.confirm) {
wx.hideLoading()
wx.navigateBack({
delta: 1
})
// console.log('开始尝试连接WebSocketreadyState=' + vm.$app.$options.globalData.localSocket.readyState)
vm.$app.initSocket('http')
}
}
})
} else {
vm.errorOne += 1 vm.errorOne += 1
if (vm.errorOne <= 2) { if (vm.errorOne <= 2) {
wx.showModal({ // 使用模态框提示用户进行操作 wx.showModal({ // 使用模态框提示用户进行操作
@ -135,53 +117,75 @@ export default {
if (res.confirm) { if (res.confirm) {
vm.errorOne = 1 vm.errorOne = 1
wx.hideLoading() wx.hideLoading()
// wx.navigateBack({
// delta: 1
// })
} }
} }
}) })
} }
let errorMessage = {message: '错误,请寻找开发人员协助'} let errorMessage = {message: '错误,请寻找开发人员协助'}
throw errorMessage throw errorMessage
}
wx.hideLoading() wx.hideLoading()
} else if (data.code === 2) { } else if (data.code === 2) {
console.error(data.message) console.error(data.message)
vm.errorTwo += 1 vm.errorTwo += 1
if (vm.errorTwo <= 2) { if (vm.errorTwo <= 2) {
utils.wx_login().then(({code, data}) => { utils.wx_login().then((data) => {
if (code === 0) { console.log(data, '444')
vm.errorTwo = 1 let route = `/${currentPage.route}?${url}`
if (currentPage.route == 'pages/service/healthMGT') { if (!data.data.token) {
wx.redirectTo({url: `/${currentPage.route}?${url}`}) wx.removeStorageSync('information')
} else if (data.mobile && data.is_complete_profile) { wx.switchTab({
if (currentPage.route == 'pages/tabBar/home') { url: '/pages/tabBar/home'
wx.reLaunch({url: '/pages/tabBar/home'}) })
} else { } else {
wx.redirectTo({url: `/${currentPage.route}?${url}`}) currentPage.onShow()
} if (route.includes('tabBar')) {
} else if (!data.mobile) { route = route.split('?')[0]
wx.redirectTo({url: `/pages/login`}) wx.switchTab({url: route})
} else if (!data.is_complete_profile) { } else {
wx.redirectTo({url: `/pages/user/registrationMaterial`}) console.log('222')
wx.redirectTo({url: route})
} }
} }
let {accid, token} = data.data.im_user // wyy_user
vm.$app.$options.globalData.nim = IM(accid, token)
wx.hideLoading()
}) })
} }
let errorMessage = {message: '错误,需要重新登录'} let errorMessage = {message: '错误,需要重新登录'}
throw errorMessage throw errorMessage
} else if (code === 3) { } else if (code === 3) {
vm.errorThree += 1 utils.wx_login().then((data) => {
if (vm.errorThree <= 2) { console.log(data, '444')
utils.wx_login().then(({code, data}) => { let route = `/${currentPage.route}?${url}`
if (code === 0) { if (!data.data.token) {
vm.errorThree = 1 wx.removeStorageSync('information')
currentPage.onLoad() wx.switchTab({
currentPage.onShow() url: '/pages/tabBar/home'
})
} else {
currentPage.onShow()
if (route.includes('tabBar')) {
route = route.split('?')[0]
wx.switchTab({url: route})
} else {
console.log('222')
wx.redirectTo({url: route})
} }
}) }
} let {accid, token} = data.data.im_user // wyy_user
vm.$app.$options.globalData.nim = IM(accid, token)
wx.hideLoading()
})
// vm.errorThree += 1
// if (vm.errorThree <= 2) {
// utils.wx_login().then(({code, data}) => {
// if (code === 0) {
// vm.errorThree = 1
// currentPage.onLoad()
// currentPage.onShow()
// }
// })
// }
} }
}, },
fail: (err) => { fail: (err) => {
@ -191,7 +195,7 @@ export default {
}, },
complete: (res) => { complete: (res) => {
setTimeout(() => { setTimeout(() => {
wx.hideLoading() // loading只展示一会就被去除了 wx.hideLoading() // loading只展示一会就被去除了加1s的时间延迟
}, 1000) }, 1000)
if (res.errMsg.indexOf('timeout') > -1) { if (res.errMsg.indexOf('timeout') > -1) {
vm.errorOne += 1 vm.errorOne += 1

View File

@ -1,6 +1,6 @@
<template> <template>
<view class="page-user"> <view class="page-user">
<web-view src="{{url}}"></web-view> <web-view src="{{url}}" bindmessage="onMessage"></web-view>
</view> </view>
</template> </template>
@ -60,13 +60,42 @@
onLoad(e) { onLoad(e) {
console.log(e) console.log(e)
console.log(wx, 'wx===')
this.url = decodeURIComponent(e.url) this.url = decodeURIComponent(e.url)
console.log(this.url) console.log(this.url)
this.from_openid = wx.getStorageSync('openid') this.from_openid = wx.getStorageSync('openid')
wx.showShareMenu({ wx.showShareMenu({
withShareTicket: true withShareTicket: true
}) })
}, // wx.onMessage({
// onMessage: (msg) => {
// console.log(msg, 'gggg')
// if (msg.action === 'pay') {
// // 调用支付API
// wx.requestPayment({
// timeStamp: msg.payInfo.timeStamp,
// nonceStr: msg.payInfo.nonceStr,
// package: msg.payInfo.package,
// signType: msg.payInfo.signType,
// paySign: msg.payInfo.paySign,
// success(res) {
// console.log('支付成功', res)
// // 将支付结果返回给H5页面
// wx.postMessage({
// data: {
// action: 'payResult',
// data: res
// }
// })
// },
// fail(err) {
// console.log('支付失败', err)
// }
// })
// }
// }
// })
},
onPullDownRefresh() { onPullDownRefresh() {
// this.initPageData() // this.initPageData()
@ -100,7 +129,35 @@
}, },
goto(url) { goto(url) {
wx.navigateTo({url: url}) wx.navigateTo({url: url})
},
onMessage(data) {
console.log(data.$wx.detail.data[0], 'gggg')
let msg = data.$wx.detail.data[0]
if (msg.action === 'pay') {
// 调用支付API
wx.requestPayment({
timeStamp: msg.payInfo.timestamp,
nonceStr: msg.payInfo.nonceStr,
package: msg.payInfo.package,
signType: msg.payInfo.signType,
paySign: msg.payInfo.paySign,
success(res) {
console.log('支付成功', res)
// 将支付结果返回给H5页面
wx.postMessage({
data: {
action: 'payResult',
data: res
}
})
},
fail(err) {
console.log('支付失败', err)
}
})
}
} }
} }
}) })
</script> </script>

View File

@ -11,7 +11,9 @@ page {
<!--动态操作功能selectData选择的动态数据、selectIndex选中的动态下标、admin是否管理员、from来自哪个父组件--> <!--动态操作功能selectData选择的动态数据、selectIndex选中的动态下标、admin是否管理员、from来自哪个父组件-->
<dynamicOperation :selectData="selectData" :chooseShow.sync="chooseShow" :selectIndex="selectIndex" :admin="admin" :from="'home'" @hideModal="hideModal" @changeOperation="changeOperation"></dynamicOperation> <dynamicOperation :selectData="selectData" :chooseShow.sync="chooseShow" :selectIndex="selectIndex" :admin="admin" :from="'home'" @hideModal="hideModal" @changeOperation="changeOperation"></dynamicOperation>
<!--评论数据--> <!--评论数据-->
<dynamicDiscuss :list="list" :detail="detail" @getList="getList" @changLiker="changLiker" :type="'dynamic'" @deleteComment="deleteComment"></dynamicDiscuss> <dynamicDiscuss :list="list" :detail="detail" @getList="getList" @changLiker="changLiker" :type="'dynamic'" @signInVerify="signInVerify" @deleteComment="deleteComment"></dynamicDiscuss>
<loginDialog :loginShow="loginShow" @hiddenLogin="hiddenLogin"></loginDialog>
</template> </template>
<script> <script>
@ -32,7 +34,9 @@ wepy.page({
selectIndex: null, selectIndex: null,
detail: {}, detail: {},
dynamicList: [], dynamicList: [],
list: [] // 评论列表数据 list: [], // 评论列表数据
loginShow: false
}, },
async onShareAppMessage(res) { async onShareAppMessage(res) {
let that = this let that = this
@ -68,6 +72,14 @@ wepy.page({
} }
}, },
methods: { methods: {
signInVerify() {
let vm = this
vm.loginShow = true
},
hiddenLogin() {
let vm = this
vm.loginShow = false
},
getDetail() { getDetail() {
let vm = this let vm = this
vm.$get({url: `${service.host}/moment/${vm.id}`}).then(({code, data}) => { vm.$get({url: `${service.host}/moment/${vm.id}`}).then(({code, data}) => {
@ -183,6 +195,8 @@ usingComponents: {
dynamicList: '~@/components/dynamicList', dynamicList: '~@/components/dynamicList',
dynamicOperation: '~@/components/dynamicOperation', dynamicOperation: '~@/components/dynamicOperation',
dynamicDiscuss: '~@/components/dynamicDiscuss', dynamicDiscuss: '~@/components/dynamicDiscuss',
} loginDialog: '~@/components/loginDialog',
}
} }
</config> </config>

View File

@ -178,7 +178,8 @@ wepy.page({
navTop: 0, navTop: 0,
StatusBar: 0, StatusBar: 0,
CustomBar: 0, CustomBar: 0,
navHeight: 0 navHeight: 0,
user_id: wx.getStorageSync('user_id')
}, },
methods: { methods: {
getDetail() { getDetail() {
@ -279,6 +280,9 @@ wepy.page({
vm.dynamicList.splice(vm.selectIndex, 1) vm.dynamicList.splice(vm.selectIndex, 1)
} }
}, },
gotoRedirect (url) {
wx.redirectTo({url: url})
},
// 下拉加载中 // 下拉加载中
onPulling() { onPulling() {
let vm = this let vm = this
@ -353,6 +357,34 @@ wepy.page({
} }
vm.getDetail() vm.getDetail()
vm.getList() vm.getList()
},
async onShareAppMessage(res) {
let that = this
let openid = wx.getStorageSync('openid')
let fromUserID = wx.getStorageSync('user_id')
let imgUrl = `${that.detail.back_image}`
let url = `/pages/dynamic/hotTopic?id=${that.id}&from_openid=${openid}&share_user_id=${that.user_id}&from_user_id=${fromUserID}`
console.log(url)
return {
title: `#${that.detail.name}#`,
path: url,
// imageUrl: 'https://images.ufutx.com/202004/29/baac955e5878e0cb03c17eef0c92f473.jpeg',
imageUrl: imgUrl,
success: function (res) {
wx.showToast({
title: '转发成功',
icon: 'success',
duration: 1500
})
var shareTickets = res.shareTickets
if (shareTickets.length == 0) {
return false
}
},
fail: function (res) {
// 转发失败
}
}
} }
}) })
</script> </script>

View File

@ -349,11 +349,15 @@ wepy.page({
methods: { methods: {
saveIssue() { saveIssue() {
let vm = this let vm = this
if (!vm.$signInVerify()) {
vm.loginShow = true
return
}
let data = { let data = {
topic_id: vm.id * 1, topic_id: vm.id * 1,
content: vm.value, content: vm.value,
photos: vm.imgList, photos: vm.imgList,
aliyun_video_id: vm.videoId, aliyun_video_id: vm.imgList.length > 0 ? '' : vm.videoId,
address: vm.address == '我在哪里' ? '' : vm.address, address: vm.address == '我在哪里' ? '' : vm.address,
is_hot: vm.hot * 1 is_hot: vm.hot * 1
} }
@ -441,6 +445,7 @@ wepy.page({
success(res) { success(res) {
vm.latitude = res.latitude vm.latitude = res.latitude
vm.longitude = res.longitude vm.longitude = res.longitude
vm.showCon = false
wx.chooseLocation({ wx.chooseLocation({
latitude: res.latitude, latitude: res.latitude,
longitude: res.longitude, longitude: res.longitude,

View File

@ -69,7 +69,7 @@ page {
<view class="cu-bar ui-search bg-white"> <view class="cu-bar ui-search bg-white">
<view class="search-form round"> <view class="search-form round">
<image class="searchIcon" src="https://images.ufutx.com/202102/26/4081d59162d4a38736c323ed7fffd3db.png" alt=""></image> <image class="searchIcon" src="https://images.ufutx.com/202102/26/4081d59162d4a38736c323ed7fffd3db.png" alt=""></image>
<input type="text" placeholder="搜索话题" confirm-type="search" bindinput="inputTyping" /> <input type="text" placeholder="搜索话题" confirm-type="search" bindinput="inputTyping" />
</view> </view>
</view> </view>
<view class="main" v-if="loading"> <view class="main" v-if="loading">
@ -101,16 +101,19 @@ wepy.page({
list: [], // 列表数据 list: [], // 列表数据
arr: [], arr: [],
loading: false, loading: false,
show: false show: false,
search: ''
}, },
methods: { methods: {
getList() { getList(type) {
let vm = this let vm = this
vm.$showLoading('加载中...') vm.$showLoading('加载中...')
vm.$get({url: `${service.host}/moment/topic/list`}).then(({code, data}) => { vm.$get({url: `${service.host}/moment/topic/list?keyword=${vm.search}`}).then(({code, data}) => {
if (code === 0) { if (code === 0) {
vm.list = data.data vm.list = data.data
vm.arr = data.data if (type == 'init') {
vm.arr = data.data
}
vm.loading = true vm.loading = true
} }
wx.hideLoading() wx.hideLoading()
@ -132,19 +135,21 @@ wepy.page({
inputTyping(e) { inputTyping(e) {
let vm = this let vm = this
let key = e.$wx.detail.value let key = e.$wx.detail.value
vm.search = key
if (key == '') { if (key == '') {
vm.list = vm.arr vm.list = vm.arr
vm.show = false vm.show = false
} else { } else {
vm.list = [] vm.list = []
vm.arr.forEach(ele => { vm.getList()
if (ele.name.indexOf(key) >= 0) { // vm.arr.forEach(ele => {
vm.list = vm.list.concat([ele]) // if (ele.name.indexOf(key) >= 0) {
} // vm.list = vm.list.concat([ele])
}) // }
if (vm.list && vm.list.length == 0) { // })
vm.show = true // if (vm.list && vm.list.length == 0) {
} // vm.show = true
// }
} }
} }
}, },
@ -152,7 +157,7 @@ wepy.page({
}, },
onLoad() { onLoad() {
let vm = this let vm = this
vm.getList() vm.getList('init')
} }
}) })
</script> </script>

View File

@ -643,10 +643,24 @@ page {
<image src="https://images.ufutx.com/202011/26/7645858a1ae55dd7c3ef90ec7a42bfa3.png" mode="aspectFill" class="icon"></image> <image src="https://images.ufutx.com/202011/26/7645858a1ae55dd7c3ef90ec7a42bfa3.png" mode="aspectFill" class="icon"></image>
<span class="font_30 bold color-333">期望对方</span> <span class="font_30 bold color-333">期望对方</span>
</view> </view>
<view class="m_idCon f-fc" v-if="conditionArr && conditionArr.length > 0"> <view class="m_idCon f-fc" >
<block v-for="(item,index) in conditionArr" :key="index"> <block v-if="userInfo.other_profile">
<view class="u_idCon font_26 color333" v-if="item">{{ item }}</view> <block v-if="userInfo.other_profile.mate_conditon">
<view class="u_idCon font_26 color333" v-if="userInfo.other_profile.mate_conditon.age">{{ userInfo.other_profile.mate_conditon.age }}</view>
<view class="u_idCon font_26 color333" v-if="userInfo.other_profile.mate_conditon.belief">{{ userInfo.other_profile.mate_conditon.belief }}</view>
<view class="u_idCon font_26 color333" v-if="userInfo.other_profile.mate_conditon.degree">{{ userInfo.other_profile.mate_conditon.degree }}</view>
<view class="u_idCon font_26 color333" v-if="userInfo.other_profile.mate_conditon.income">{{ userInfo.other_profile.mate_conditon.income }}</view>
<view class="u_idCon font_26 color333" v-if="userInfo.other_profile.mate_conditon.location">{{ userInfo.other_profile.mate_conditon.location }}</view>
<view class="u_idCon font_26 color333" v-if="userInfo.other_profile.mate_conditon.state">{{ userInfo.other_profile.mate_conditon.state }}</view>
<view class="u_idCon font_26 color333" v-if="userInfo.other_profile.mate_conditon.stature">{{ userInfo.other_profile.mate_conditon.stature }}</view>
</block>
</block> </block>
<block v-if="conditionArr && conditionArr.length > 0">
<block v-for="(item,index) in conditionArr" :key="index">
<view class="u_idCon font_26 color333" v-if="item">{{ item }}</view>
</block>
</block>
</view> </view>
<view class="font_26 color333 ui-ml-40 ui-mr-40 ui-mt-4">{{ userInfo.other_profile.ideal_mate || 'ta什么也没有留下' }}</view> <view class="font_26 color333 ui-ml-40 ui-mr-40 ui-mt-4">{{ userInfo.other_profile.ideal_mate || 'ta什么也没有留下' }}</view>
</view> </view>
@ -1344,6 +1358,7 @@ wepy.page({
} }
}, },
onLoad(e) { onLoad(e) {
console.log(e, 'e==')
let vm = this let vm = this
vm.userData = wx.getStorageSync('userInfo') vm.userData = wx.getStorageSync('userInfo')
vm.userId = wx.getStorageSync('user_id') vm.userId = wx.getStorageSync('user_id')
@ -1365,6 +1380,9 @@ wepy.page({
} }
} else { } else {
vm.id = e.id vm.id = e.id
if (e.from_user_id) {
wx.setStorageSync('from_user_id', e.from_user_id)
}
} }
vm.getDetail() vm.getDetail()
vm.getDynamic() vm.getDynamic()

View File

@ -581,6 +581,7 @@ wepy.page({
onShow() { onShow() {
}, },
onLoad(e) { onLoad(e) {
console.log(e, 'e=')
let vm = this let vm = this
let app = vm.$app.$options let app = vm.$app.$options
vm.id = e.id vm.id = e.id

View File

@ -39,7 +39,7 @@ page {
} }
._list{ ._list{
padding: 0 50rpx; padding: 0 50rpx;
margin-top: 80rpx; margin-top: 42rpx;
.getMobile{ .getMobile{
height: 55rpx; height: 55rpx;
padding: 0 16rpx !important; padding: 0 16rpx !important;
@ -53,6 +53,49 @@ page {
margin-right: 6rpx; margin-right: 6rpx;
} }
} }
.ui-phone-box{
margin-top: 40rpx;
padding: 8rpx 32rpx;
border-radius: 32rpx;
background: #F8F8F8;
.ui-phone-item{
display: flex;
align-items: center;
padding:32rpx 0rpx;
border-bottom: 2rpx solid rgba(221, 221, 221, .7);
}
.ui-phone-item:nth-child(2){
border-bottom: 0;
}
.ui-phone-item-v2{
justify-content: space-between;
}
.ui-phone-code{
padding:16rpx 20rpx;
display: flex;
justify-content: center;
align-items: center;
color:#FF5380;
border-radius: 20rpx;
background: #FFE9EF;
white-space: nowrap
}
.ui-phone-code-send{
color: #ececec;
background: #f8f8f8;
border: 2rpx solid #ececec;
}
}
.radio-group{
.radio-left{
margin-right: 100rpx;
}
.itemRadio{
transform: scale(.8);
background: #f8f8f8;
}
}
._listItem{ ._listItem{
margin-top: 30rpx; margin-top: 30rpx;
position: relative; position: relative;
@ -106,7 +149,7 @@ page {
height: 88rpx; height: 88rpx;
background: rgba(255, 83, 128, 0.6); background: rgba(255, 83, 128, 0.6);
border-radius: 100rpx; border-radius: 100rpx;
margin-top: 124rpx; margin-top: 82rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.btn-box.sel { .btn-box.sel {
@ -138,57 +181,85 @@ button::after{
</view> </view>
</view> </view>
<view class="_list"> <view class="_list">
<view class="_listItem animation-slide-bottom" style="animation-delay: 0.2s;"> <view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.2s;">
<input type="text" class="font_28 color-333 name ui-mb-12" placeholder="昵称请输入2-10个字符" @change="typeing('name', $wx)" maxlength="10" /> <view class="font_30 color-333">昵称</view>
<view class="" style="flex:1">
<input type="text" class="font_30 color-333 name ui-mb-12 text-r" placeholder="请输入2-10个字符" placeholder-class="text-r" @change="typeing('name', $wx)" maxlength="10" />
</view>
</view> </view>
<picker mode="date" :value="startDate" end="{{endDate}}" @change="typeing('birthday', $wx)"> <picker mode="date" :value="startDate" end="{{endDate}}" @change="typeing('birthday', $wx)">
<view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.3s;"> <view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.3s;">
<view class="font_28 color-333">你的生日</view> <view class="font_30 color-333">你的生日</view>
<view class="f-fc"> <view class="f-fc" style="flex:1">
<input type="text" class="font_28 color-333 text inline-block" placeholder-class="font_24" v-model="birthday" disabled placeholder="真实信息提高你的自身魅力" /> <input type="text" class="font_30 color-333 text inline-block" placeholder-class="font_30" v-model="birthday" disabled placeholder="真实信息提高你的自身魅力" />
<view class="font_family icon-jiantoubeifen7 font_24 ui-mt-4"></view> <view class="font_family icon-jiantoubeifen7 font_24 ui-mt-4" ></view>
</view> </view>
</view> </view>
</picker> </picker>
<button class="btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">
<view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.3s;">
<view class="font_28 color-333">绑定手机</view>
<view class="f-fc">
<input type="text" class="font_28 color-333 text inline-block" placeholder-class="font_24" v-model="mobile" disabled placeholder="获取微信绑定手机号" />
<view class="font_family icon-jiantoubeifen7 font_24 ui-mt-4"></view>
</view>
</view>
</button>
<view class="g_gender animation-slide-bottom" style="animation-delay: 0.4s;"> <view class="g_gender animation-slide-bottom" style="animation-delay: 0.4s;">
<view class="u_gender_tt font_26 color999">性别|保存后不可更改</view> <view class="ui-phone-box">
<view class="f-fc font_28 color333"> <div class="ui-phone-item">
<view class="u_gender f-fcc {{sex == '男' ? 'male' : ''}}" @tap="changeSex('男')">男</view> <input type="number" class="font_30 color-333 text inline-block" placeholder-class="font_30" v-model="mobile" placeholder="填写手机号" />
<view class="u_gender f-fcc {{sex == '女' ? 'female' : ''}}" @tap="changeSex('女')">女</view> </div>
<div class="ui-phone-item-v2 ui-phone-item" >
<input type="number" class="font_30 color-333 text inline-block" maxlength="6" placeholder-class="font_30" v-model="code" placeholder="请输入验证码" />
<view class="ui-phone-code font_30 {{time == 0 ? '' : ''}}" style="flex:1" @tap="getCode">{{time == 0 ? '获取验证码' : btnText}}</view>
</div>
</view> </view>
</view> </view>
<!-- <button class="btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">-->
<!-- <view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.3s;">-->
<!-- <view class="font_28 color-333">绑定手机</view>-->
<!-- <view class="f-fc">-->
<!-- <input type="text" class="font_28 color-333 text inline-block" placeholder-class="font_24" v-model="mobile" disabled placeholder="获取微信绑定手机号" />-->
<!-- <view class="font_family icon-jiantoubeifen7 font_24 ui-mt-4"></view>-->
<!-- </view>-->
<!-- </view>-->
<!-- </button>-->
<view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.3s;">
<view class="font_30 color-333">性别</view>
<view class="f-fec text-r" style="flex:1">
<radio-group class="radio-group" bindchange="sexChange">
<label class="radio radio-left">
<radio value="男" class="itemRadio mainColor ui-mr-20" color="#f8f8f8" :checked="sex=='男'" />男
</label>
<label class="radio">
<radio value="女" class="itemRadio mainColor ui-mr-20" color="#f8f8f8" :checked="sex=='女'" />女
</label>
</radio-group>
</view>
</view>
<view class="u_gender_tt font_26 color999 ui-mt-12 animation-slide-bottom f-fbc" style="animation-delay: 0.3s;">保存后不可更改</view>
<!-- <view class="g_gender animation-slide-bottom" style="animation-delay: 0.4s;">-->
<!-- <view class="u_gender_tt font_26 color999">性别|保存后不可更改</view>-->
<!-- <view class="f-fc font_28 color333">-->
<!-- <view class="u_gender f-fcc {{sex == '男' ? 'male' : ''}}" @tap="changeSex('男')">男</view>-->
<!-- <view class="u_gender f-fcc {{sex == '女' ? 'female' : ''}}" @tap="changeSex('女')">女</view>-->
<!-- </view>-->
<!-- </view>-->
<view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.5s;"> <view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.5s;">
<view class="f-fbc m_ct" @tap="residenceShow = true"> <view class="f-fbc m_ct" @tap="residenceShow = true">
<view class="font_28 color-333">目前居住地</view> <view class="font_30 color-333">目前居住地</view>
<view class="f-fc"> <view class="f-fc" style="flex:1">
<input type="text" class="font_28 color-333 text inline-block" placeholder-class="font_24" disabled placeholder="匹配度提高90%" value="{{displayCity}}"/> <input type="text" class="font_30 color-333 text inline-block" placeholder-class="font_24" disabled placeholder="匹配度提高90%" value="{{displayCity}}"/>
<view class="font_family icon-jiantoubeifen7 font_24"></view> <view class="font_family icon-jiantoubeifen7 font_24"></view>
</view> </view>
</view> </view>
</view> </view>
<picker :value="emotionIndex" range="{{emotionList}}" @change="typeListing('emotion', 'emotionList', $wx)" > <picker :value="emotionIndex" range="{{emotionList}}" @change="typeListing('emotion', 'emotionList', $wx)" >
<view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.6s;"> <view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.6s;">
<view class="font_28 color-333">情感状况</view> <view class="font_30 color-333">情感状况</view>
<view class="f-fc"> <view class="f-fc" style="flex:1">
<input type="text" class="font_28 color-333 text inline-block" disabled placeholder="请选择你的情感状况" v-model="emotion" /> <input type="text" class="font_30 color-333 text inline-block" disabled placeholder="请选择你的情感状况" v-model="emotion" />
<view class="font_family icon-jiantoubeifen7 font_24"></view> <view class="font_family icon-jiantoubeifen7 font_24"></view>
</view> </view>
</view> </view>
</picker> </picker>
<picker :value="beliefIndex" range="{{beliefList}}" @change="typeListing('belief', 'beliefList', $wx)" > <picker :value="beliefIndex" range="{{beliefList}}" @change="typeListing('belief', 'beliefList', $wx)" >
<view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.7s;"> <view class="_listItem animation-slide-bottom f-fbc" style="animation-delay: 0.7s;">
<view class="font_28 color-333">信仰</view> <view class="font_30 color-333">信仰</view>
<view class="f-fc"> <view class="f-fc" style="flex:1">
<input type="text" class="font_28 color-333 text inline-block" disabled placeholder="请选择你的信仰" v-model="belief" /> <input type="text" class="font_30 color-333 text inline-block" disabled placeholder="请选择你的信仰" v-model="belief" />
<view class="font_family icon-jiantoubeifen7 font_24"></view> <view class="font_family icon-jiantoubeifen7 font_24"></view>
</view> </view>
</view> </view>
@ -226,6 +297,11 @@ wepy.page({
endDate: '', // 出生日期结束时间 endDate: '', // 出生日期结束时间
mobile: '', mobile: '',
code: '',
time: 0,
timer: null,
loading: false,
btnText: '',
sex: '', sex: '',
address: {country: '', province: '', city: ''}, address: {country: '', province: '', city: ''},
@ -259,6 +335,11 @@ wepy.page({
vm.endDate = `${Y - 12}-01-01` vm.endDate = `${Y - 12}-01-01`
vm.beginData = `${Y - 120}-01-01` vm.beginData = `${Y - 120}-01-01`
}, },
computed: {
btnText() {
return +this.time > 0 ? `${this.time}s` : `获取验证码`
}
},
methods: { methods: {
hideCut(e) { hideCut(e) {
wx.showTabBar({ wx.showTabBar({
@ -266,6 +347,48 @@ wepy.page({
}) })
this.chooseShow = e.chooseShow this.chooseShow = e.chooseShow
}, },
// 获取验证码
getCode() {
let vm = this
if (!vm.mobile) {
vm.$showToast('请输入手机号')
return
}
// 防抖
if (vm.loading || vm.time > 0) return
// 开防抖
vm.loading = true
// 根据业务接口处理:发送验证码
let data = {
mobile: vm.mobile
}
vm.$showLoading('加载中...')
vm.$post({url: `${service.host}/register/sms/code`, data}).then(res => {
wx.hideLoading()
if (res.code === 1) {
return
}
// 开倒计时
vm.timing(60)
vm.$showToast(`发送成功`)
})
},
timing(time) {
this.time = time
this.timer = setTimeout(() => {
if (time > 0) {
this.timing(time - 1)
} else {
this.loading = false
}
}, 1000)
},
// 选择性别
sexChange(e) {
console.log(e, 'e===')
this.sex = e.$wx.detail.value
console.log(this.sex, 'sex==')
},
complete() { complete() {
let vm = this let vm = this
console.log(this.photo, vm.photo, 'vm.photo==') console.log(this.photo, vm.photo, 'vm.photo==')
@ -292,6 +415,9 @@ wepy.page({
if (!vm.mobile) { if (!vm.mobile) {
return vm.$showToast('请选择绑定手机号') return vm.$showToast('请选择绑定手机号')
} }
if (!vm.code) {
return vm.$showToast('请输入验证码')
}
if (!vm.birthday) { if (!vm.birthday) {
return vm.$showToast('请选择你的生日') return vm.$showToast('请选择你的生日')
} }
@ -315,7 +441,8 @@ wepy.page({
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,
code: vm.code
// userInfo: vm.userInfo, // userInfo: vm.userInfo,
// openid: vm.openid, // openid: vm.openid,
// unionid: vm.unionid, // unionid: vm.unionid,
@ -327,6 +454,7 @@ wepy.page({
console.log(userInfo, '===') console.log(userInfo, '===')
userInfo.is_base_profile = true userInfo.is_base_profile = true
wx.setStorageSync('userInfo', userInfo) wx.setStorageSync('userInfo', userInfo)
wx.setStorageSync('mobile', vm.mobile) // 用户手机号
vm.$showToast('注册成功') vm.$showToast('注册成功')
setTimeout(() => { setTimeout(() => {
wx.hideLoading() wx.hideLoading()

View File

@ -1,416 +0,0 @@
<style lang="less" scoped>
@import url(../styles/theme.less);
page {
background-color: #ffffff;
}
.login-container{
height: 100vh;
width: 100vw;
background-color: #ffffff;
overflow: hidden;
.ui-tabBar-box{
width: 100vw;
.ui-tabBar-list{
padding: 100rpx 142rpx 80rpx 142rpx;
.ui-tabBar-line{
position: absolute;
bottom: 8rpx;
z-index: 2;
width: 100%;
height: 10rpx;
background: linear-gradient(90deg, rgba(95,226,175,0.1) 0%, #41D5A9 100%);
border-radius: 5rpx;
}
}
}
.ui-icon-box{
margin-left: 184rpx;
width: 100vw;
.ui-radio-icon{
height: 120rpx;
width: 120rpx;
background-repeat: no-repeat;
background-size: cover;
}
.ui-next-icon{
margin: 0 50rpx;
width: 56rpx;
height: 32rpx;
background-repeat: no-repeat;
background-size: cover;
}
.ui-next-img{
background-image: url("https://image.fulllinkai.com/202211/22/57641b9443b43fa228b393ba4c346897.png");
}
.ui-wx-img{
background-image: url("https://image.fulllinkai.com/202307/08/b8e7997ac2ff19757a56a72f282abc28.png");
}
.ui-wxapp-img{
background-image: url("https://image.fulllinkai.com/202211/22/28c5c5401a7b35da09ac5c079a861819.png");
}
}
.ui-btn{
margin: 150rpx 40rpx 0;
height: 100rpx;
line-height: 100rpx;
border: none;
color: #e3fbf3;
background-color: @theme_color;
border-radius: 50rpx;
}
.ui-btn-v2{
background-color: #c2c2c2;
color: #ffffff;
}
.m_inp {
margin: 0 40rpx 40rpx 40rpx;
padding: 0 20rpx;
height: 98rpx;
border: 2rpx solid #ededed;
border-radius: 16rpx;
position: relative;
input{
width: 284rpx;
}
.m_wo {
white-space: pre-wrap;
word-break: break-all;
.u_coll_img {
height: 12rpx;
width: 20rpx;
margin: 0rpx 20rpx 0 8rpx;
}
}
.m_woPho {
position: absolute;
left: 0;
top: 78rpx;
width: 210rpx;
padding-left: 10rpx;
//height: 416rpx;
background: #fff;
border: 2rpx solid #f5f5f5;
border-radius: 8rpx;
z-index: 222;
overflow-y: scroll;
display: inline-block;
}
}
.ui-input-box{
padding: 0 40rpx;
position: relative;
.ui-input-class{
padding: 0 246rpx 0 20rpx;
height: 98rpx;
border: 2rpx solid #ededed;
border-radius: 16rpx;
}
.ui-code-box{
position: absolute;
top: 24rpx;
right: 64rpx;
padding: 0 20rpx;
height: 52rpx;
border-radius: 26rpx;
border: 2rpx solid #B2E3D2;
z-index: 22;
}
.ui-code-border{
border: 2rpx solid #ececec;
}
}
.ui-code-btn-box{
width: 650rpx;
height: 100rpx;
border-radius: 50rpx;
background: #5AC7A0;
margin: 90rpx auto 0 auto;
}
.ui-agree-box{
margin: 50rpx auto;
padding: 0 90rpx;
display: flex;
justify-items: left;
white-space: pre-wrap;
word-break: break-all;
word-wrap: break-word;
.ui-agree-icon{
margin-right: 16rpx;
margin-top: 2rpx;
height: 32rpx;
width: 32rpx;
min-width: 32rpx;
background-image: url("https://image.fulllinkai.com/202211/24/6ecbd7d3cb7c8d5bfcea6546dc6d7af0.png");
background-size: 100% 100%;
background-repeat: no-repeat;
}
.ui-agree-icon-change{
background-image: url("https://image.fulllinkai.com/202211/24/1956379959ca1cc109880daaa97ce70a.png");
}
.ui-agree-text{
color: @theme_color;
}
}
}
</style>
<template>
<view class="login-container">
<view class="ui-tabBar-box">
<view class="ui-tabBar-list f-fbc">
<view class="font_30 ui-relative {{tabBarIndex == index ? 'color-theme bold' : 'color666'}}" v-for="(item,index) in tabBarList" :key="index" @tap="selectTabBar(index)">
{{item}}
<view class="ui-tabBar-line" v-if="tabBarIndex == index"></view>
</view>
</view>
</view>
<block v-if="tabBarIndex == 0">
<view class="ui-icon-box f-fc">
<view class="ui-radio-icon ui-wx-img"></view>
<view class="ui-next-icon ui-next-img"></view>
<view class="ui-radio-icon ui-wxapp-img"></view>
</view>
<button v-if="selectIcon" class="ui-btn font_32" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">
{{ i18nL.login.Ace2 }}
</button>
<view v-else class="ui-btn ui-btn-v2 text-c colorfff font_32" @tap="toSelect">{{ i18nL.login.Ace2 }}</view>
</block>
<block v-else>
<view class="m_inp f-fc">
<scroll-view scroll-into-view="{{toView}}" scroll-y class="m_woPho" v-if="!showChooseArea">
<block v-for="(item,index) in areaList" wx:key="index">
<view id="in_{{index}}" class="font_28 {{item.nation_code == AreaValue ? 'color-theme' : 'color333'}}" style="text-align: left;padding: 12rpx 10rpx;" @tap="selectedArea(item, index)">{{item.nation_code}} {{item.nation_name}}</view>
</block>
</scroll-view>
<view class="m_wo f-fcl" @tap.stop="showWorldPhone">
<view>{{AreaValue}}</view>
<image class="u_coll_img" v-if="showChooseArea" src="https://image.fulllinkai.com/202111/29/526faa3d99616f1faba1cde44c7ee204.png" mode="aspectFill"></image>
<image class="u_coll_img" v-else src="https://image.fulllinkai.com/202111/29/f1e9aff7554cb0207f045b9d15388f61.png" mode="aspectFill"></image>
</view>
<input class="font_30 ui-input-class color333 ui-letter-2" v-model="mobile" type="number" maxlength="16" :placeholder="i18nL.pages.service.detail.inputMobile" />
</view>
<view class="ui-input-box">
<input style="margin-left: 0;" :placeholder="i18nL.pages.user.bindMobile.Ace10" type="number" v-model="code" maxlength="6" class="font_30 ui-input-class color333 ui-letter-2"/>
<view class="font_24 ui-code-box f-fcc {{time == 0 ? 'color-theme' : 'color999 ui-code-border'}}" @tap="getCode">{{time == 0 ? i18nL.pages.user.bindMobile.Ace7 : btnText}}</view>
</view>
<view class="font_32 f-fcc ui-code-btn-box white" @tap="bindMobile">{{i18nL.pages.user.bindMobile.Ace16}}</view>
</block>
<view class="ui-agree-box">
<view class="ui-agree-icon {{selectIcon ? 'ui-agree-icon-change': ''}}" @tap="selectDegree"></view>
<view class="f-fc">
<view class="color999 font_26" @tap="selectDegree">{{ i18nL.login.Ace3 }}《<span class="ui-agree-text font_26" @tap.stop="gotoH5('https://love.ufutx.com/h5/#/healthAgreement')">{{ i18nL.login.Ace4 }}</span>》</view>
</view>
</view>
</view>
</template>
<script>
import wepy from '@wepy/core'
import https from '../mixins/https'
import base from '../mixins/base'
import {getPhoneNumber} from '../utils/util'
import {service} from '../config'
wepy.page({
config: {},
mixins: [https, base],
data: {
modalName: '',
fileList: [],
tabBarList: ['微信快捷登录', '手机号登录'],
tabBarIndex: 0,
showChooseArea: true,
AreaIndex: 0,
areaList: [
{nation_code: '86', nation_name: '中国大陆'},
{nation_code: '886', nation_name: '中国台湾'},
{nation_code: '852', nation_name: '中国香港'},
{nation_code: '853', nation_name: '中国澳门'},
{nation_code: '65', nation_name: '新加坡'},
{nation_code: '66', nation_name: '泰国'},
{nation_code: '61', nation_name: '澳大利亚'}
],
toView: 'in_',
AreaValue: '中国大陆 86',
code: '',
time: 0,
timer: null,
loading: false,
btnText: '',
photo: '',
list: [],
mobile: '',
nickName: '',
phoneNumber: '',
user: {},
selectIcon: false
},
computed: {
btnText() {
if (this.i18nL) {
return +this.time > 0 ? `${this.time}s ${this.i18nL.pages.user.bindMobile.Ace6}` : `${this.i18nL.pages.user.bindMobile.Ace7}`
}
}
},
methods: {
getPhoneNumber({$wx: e}) { // 获取手机号
let vm = this
if (e.detail.iv) {
getPhoneNumber(e).then(({phone}) => {
console.log(phone, '11111')
if (phone) {
vm.mobile = phone
console.log(vm.mobile)
vm.bindMobile()
}
}).catch((Error) => {
wx.showModal({ // 使用模态框提示用户进行操作
title: `${this.i18nL.pages.user.user1ace13}`,
content: Error,
showCancel: false,
confirmText: `${this.i18nL.pages.user.user1ace15}`,
success: function (res) {
if (res.confirm) {
wx.navigateBack({
delta: 1
})
}
}
})
})
}
},
bindMobile() {
let vm = this
let data = {
mobile: vm.mobile,
type: vm.tabBarIndex == 0 ? 'wechat' : 'code',
code: vm.tabBarIndex == 0 ? '' : vm.code
}
if (!vm.mobile) {
vm.$showToast(`${vm.i18nL.pages.user.bindMobile.Ace3}`)
return
}
if (vm.AreaIndex == 0 && (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(vm.mobile)))) {
this.$showToast(`${this.i18nL.pages.user.bindMobile.Ace8}`)
return
}
if (vm.tabBarIndex == 1 && !vm.code) {
vm.$showToast(`${vm.i18nL.pages.user.bindMobile.Ace10}`)
return
}
if (!vm.selectIcon) {
vm.$showToast(`${vm.i18nL.login.Ace6}`)
return
}
vm.$showLoading(`${vm.i18nL.pages.tabBar.home.Ace26}`)
vm.$post({url: service.bindMobile, data}).then(res => {
wx.hideLoading()
if (res.code === 1) {
return
}
wx.setStorageSync('mobile', vm.mobile)
vm.$showToast(`${vm.i18nL.login.Ace5}`)
setTimeout(() => {
vm.$redirectTo(`/pages/user/registrationMaterial`)
}, 1200)
})
},
selectTabBar(index) {
let vm = this
vm.tabBarIndex = index
},
// 获取验证码
getCode() {
let vm = this
if (!vm.mobile) {
vm.$showToast(`${vm.i18nL.pages.user.bindMobile.Ace3}`)
return
}
// 防抖
if (vm.loading || vm.time > 0) return
// 开防抖
vm.loading = true
// 根据业务接口处理:发送验证码
let data = {
mobile: vm.mobile,
area_code: vm.areaList[vm.AreaIndex].nation_code
}
vm.$showLoading(`${vm.i18nL.pages.tabBar.home.Ace26}`)
vm.$get({url: `${service.host}/mobile/code`, data}).then(res => {
wx.hideLoading()
if (res.code === 1) {
return
}
// 开倒计时
vm.timing(60)
vm.$showToast(`${vm.i18nL.pages.user.bindMobile.Ace9}`)
})
},
timing(time) {
this.time = time
this.timer = setTimeout(() => {
if (time > 0) {
this.timing(time - 1)
} else {
this.loading = false
}
}, 1000)
},
showWorldPhone() {
this.toView = `in_${this.AreaIndex}`
this.showChooseArea = !this.showChooseArea
},
selectedArea(e, index) {
this.AreaValue = `${e.nation_name} ${e.nation_code}`
this.AreaIndex = index
this.showChooseArea = !this.showChooseArea
},
selectDegree() {
this.selectIcon = !this.selectIcon
},
toSelect() {
this.$showToast(`${this.i18nL.login.Ace6}`)
},
gotoH5(item) {
wx.navigateTo({ url: '/pages/sub_page/bookDetail?url=' + encodeURIComponent(item) })
}
},
onPullDownRefresh() { // 下拉刷新
// this.getUserInfo()
},
onShow() {
this.i18nL = this.$app.$options.globalData.i18nL // 切换赋值- 娄底
this.$setNavigationBarTitleI18n(this.i18nL.login.title) // 设置顶部title
this.tabBarList[0] = this.i18nL.login.Ace7
this.tabBarList[1] = this.i18nL.login.Ace8
this.tabBarList = JSON.parse(JSON.stringify(this.tabBarList))
this.areaList[0].nation_name = this.i18nL.pages.user.bindMobile.Ace12
this.areaList[1].nation_name = this.i18nL.pages.user.bindMobile.Ace13
this.areaList[2].nation_name = this.i18nL.pages.user.bindMobile.Ace14
this.areaList[3].nation_name = this.i18nL.pages.user.bindMobile.Ace15
this.areaList[4].nation_name = this.i18nL.pages.user.bindMobile.Ace18
this.areaList[5].nation_name = this.i18nL.pages.user.bindMobile.Ace17
this.areaList[6].nation_name = this.i18nL.pages.user.bindMobile.Ace19
this.areaList = JSON.parse(JSON.stringify(this.areaList))
this.AreaValue = `${this.i18nL.pages.user.bindMobile.Ace12} 86`
},
created() {
}
})
</script>
<config>
{
navigationBarTitleText: '友福DMA',
<!--navigationStyle: 'custom',-->
enablePullDownRefresh: false,
backgroundColorTop: '#F4F7FC',
backgroundColorBottom: '#F4F7FC'
}
</config>

View File

@ -705,7 +705,7 @@ page {
</view> </view>
<view class="g_bt_tips_two" v-if="userInfo.is_real_approved == 2 && !hiddenHtml"> <view class="g_bt_tips_two" v-if="userInfo.is_real_approved == 2 && !hiddenHtml">
<view class="font_24 color333 text-center ui-pr-40 ui-pl-40">认证已提交审核审核结果将在13个工作日内通知请耐心等待如有需要请直接联系客服 <view class="font_24 color333 text-center ui-pr-40 ui-pl-40">认证已提交审核审核结果将在13个工作日内通知请耐心等待如有需要请直接联系客服
<text class="color-theme">18922809346</text> <text class="color-theme">18194063294</text>
</view> </view>
</view> </view>
<view class="g_bt_tips_one f-fcc f-fdc" v-else-if="userInfo.is_real_approved != 1 && !hiddenHtml"> <view class="g_bt_tips_one f-fcc f-fdc" v-else-if="userInfo.is_real_approved != 1 && !hiddenHtml">
@ -860,8 +860,12 @@ wepy.page({
vm.lastTime = format(msg.time) vm.lastTime = format(msg.time)
vm.callbackSend('text') vm.callbackSend('text')
}) })
} },
done: sendMsgDone
}) })
function sendMsgDone(error, file) {
console.log('上传' + (!error ? '成功' : '失败'), file)
}
// }) // })
}, },
// 发送图片消息 // 发送图片消息

View File

@ -382,6 +382,8 @@ wepy.page({
vm.$refs.pageScroll.showBackTopBtn = top > 380 vm.$refs.pageScroll.showBackTopBtn = top > 380
}, },
onShow() { onShow() {
this.userInfo = wx.getStorageSync('userInfo')
console.log(this.userInfo, 'dd--')
}, },
onLoad(e) { onLoad(e) {
let vm = this let vm = this
@ -389,7 +391,6 @@ wepy.page({
vm.buImg = 'https://images.ufutx.com/202106/21/42c2796abf4217cd79871c29ec794ca4.png' vm.buImg = 'https://images.ufutx.com/202106/21/42c2796abf4217cd79871c29ec794ca4.png'
vm.dialogIng = 'https://images.ufutx.com/202106/21/0e7d701cd1280a9b2ecffd1287c9abd1.png' vm.dialogIng = 'https://images.ufutx.com/202106/21/0e7d701cd1280a9b2ecffd1287c9abd1.png'
vm.getList() vm.getList()
vm.userInfo = wx.getStorageSync('userInfo')
console.log(vm.userInfo.rank_id, '7777777777') console.log(vm.userInfo.rank_id, '7777777777')
} }
}) })

View File

@ -582,6 +582,7 @@ wepy.page({
} }
}, },
onShow() { onShow() {
this.userInfo = wx.getStorageSync('userInfo')
}, },
onLoad(e) { onLoad(e) {
let vm = this let vm = this
@ -590,7 +591,6 @@ wepy.page({
} }
vm.getList() vm.getList()
vm.getFansList() vm.getFansList()
vm.userInfo = wx.getStorageSync('userInfo')
} }
}) })
</script> </script>

View File

@ -394,10 +394,10 @@ wepy.page({
jumpPath(url) { jumpPath(url) {
let vm = this let vm = this
// 校验是否完成注册资料 // 校验是否完成注册资料
if (!vm.$signInVerify()) { // if (!vm.$signInVerify()) {
vm.loginShow = true // vm.loginShow = true
return // return
} // }
wx.navigateTo({url: url}) wx.navigateTo({url: url})
}, },
signInVerify() { signInVerify() {

View File

@ -8,6 +8,19 @@ page {
padding-bottom: 45rpx; padding-bottom: 45rpx;
} }
.ui-swiper-box{
margin:32rpx 32rpx 0;
height: 200rpx;
border-radius:32rpx!important;
overflow: hidden;
}
.ui-swiper-list{
width: 100%;
overflow: hidden;
height: 200rpx;
border-radius:32rpx;
}
.ui-top-up{ .ui-top-up{
width: 174rpx; width: 174rpx;
height: 36rpx; height: 36rpx;
@ -15,7 +28,7 @@ page {
} }
.ui-top-box{ .ui-top-box{
display: fiex; display: flex;
overflow-x: auto; overflow-x: auto;
margin-left: 6rpx; margin-left: 6rpx;
@ -283,10 +296,111 @@ page {
width: 30rpx; width: 30rpx;
height: 30rpx; height: 30rpx;
} }
.ui-adv-box{
position: fixed;
bottom: 270rpx;
right: 8rpx;
width: 120rpx;
height: 144rpx;
color:#ffffff;
z-index: 1000;
background: url('https://images.health.ufutx.com/202502/21/5f8a2d1d65bec51b00ff04f268b93e16.png');
background-size: cover;
}
.ui-adv-message{
width: 120rpx;
height: 120rpx;
background: url('https://image.fulllinkai.com/202501/07/2294cafbfe5261dad430371f0aed9b52.png');
background-size: cover;
}
.ui-adv-close{
position: absolute;
width: 32rpx;
height: 32rpx;
bottom: -44rpx;
left: 50%;
transform: translateX(-50%);
background: url('https://image.fulllinkai.com/202501/07/3a14b8cc539285e3ba96b0977749bfc5.png');
background-size: cover;
}
.ui--message-fade{
animation: adv-message-shake 1s infinite linear;
}
@keyframes adv-message-shake {
0% {
transform:rotate(0deg);
}
25% {
transform:rotate(15deg);
}
50% {
transform:rotate(0deg);
}
75% {
transform:rotate(-15deg);
}
//100% {
// transform:rotate(0deg);
//}
}
.ui-fade-in {
opacity: 0;
animation: enter-x-left 0.4s ease-in-out 0.3s;
animation-fill-mode: forwards;
transform: translateX(120rpx);
}
.ui-fade-out {
opacity: 1;
animation: enter-x-right 0.4s ease-in-out 0.3s;
animation-fill-mode: forwards;
}
@keyframes enter-x-left {
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes enter-x-right {
to {
opacity: 0;
transform: translateX(120rpx);
}
}
.login_prompt_box {
position: fixed;
top:50%;
left: 50%;
transform: translate(-50%,-50%);
.ui-adv-modal{
width: 600rpx;
height: auto;
}
.loginCancelIcon {
width: 56rpx;
height: 56rpx;
position: absolute;
bottom:-60rpx;
left: 50%;
transform: translateX(-50%);
z-index: 99;
}
}
</style> </style>
<template> <template>
<view class="ui-home" v-if="pageLoading"> <!-- <scroll-view scroll-y="true" bindscroll="" class="scroll-content">-->
<view class="ui-home" v-if="pageLoading" @scroll="onPageScroll">
<cuCustom :searchName="'寻找心仪的Ta'" @tap="jumpPath('/pages/home/searchUsers')"></cuCustom> <cuCustom :searchName="'寻找心仪的Ta'" @tap="jumpPath('/pages/home/searchUsers')"></cuCustom>
<swiper class="ui-swiper-box" circular="true" autoplay="true" indicator-dots="true" indicator-color="#c5c5c5" indicator-active-color="#ffffff">
<block v-for="(item,index) in swiperList" :key="index">
<swiper-item class=" ui-relative ">
<image :src="item.img" class="ui-swiper-list" mode="aspectFill" @tap.stop="goToShop(item)"></image>
</swiper-item>
</block>
</swiper>
<view :class="{'ui-fade-out': isScroll,'ui-fade-in': !isScroll}" class="ui-adv-box" v-if="!isClickClose" @tap="goToShop">
<!-- <view class="ui-adv-message ui&#45;&#45;message-fade"></view>-->
<div class="ui-adv-close" @tap.stop="isClickClose = true"></div>
</view>
<view class="f-fbc ui-pl-30 ui-pt-40 ui-pr-30"> <view class="f-fbc ui-pl-30 ui-pt-40 ui-pr-30">
<view class="font_34 color333 bold">置顶推荐</view> <view class="font_34 color333 bold">置顶推荐</view>
<image class="ui-top-up" src="https://image.fulllinkai.com/202409/24/9c5a93366fc9e24dec02ba62c87ecf15.png" mode="widthFix" @tap="applyTopUp" v-if="topUpState != 2"></image> <image class="ui-top-up" src="https://image.fulllinkai.com/202409/24/9c5a93366fc9e24dec02ba62c87ecf15.png" mode="widthFix" @tap="applyTopUp" v-if="topUpState != 2"></image>
@ -445,7 +559,16 @@ page {
</view> </view>
</view> </view>
<loginDialog :loginShow="loginShow" @hiddenLogin="hiddenLogin"></loginDialog> <loginDialog :loginShow="loginShow" @hiddenLogin="hiddenLogin"></loginDialog>
<view :class="{'show':modalName=='showAdv'}" class="cu-modal">
<view class="login_prompt_box">
<image class="ui-adv-modal" :src="advModal.pic"
mode="widthFix" @tap="goToShop(advModal)">
</image><image class="loginCancelIcon" src="https://image.fulllinkai.com/202501/07/3a14b8cc539285e3ba96b0977749bfc5.png"
mode="widthFix" @tap="hideModal"></image>
</view>
</view>
</view> </view>
<!-- </scroll-view>-->
</template> </template>
<script> <script>
@ -472,16 +595,47 @@ wepy.page({
noMoreSquare: false, // 单身广场更多 noMoreSquare: false, // 单身广场更多
squarePage: 1, squarePage: 1,
no_more: false, no_more: false,
isScroll: false,
isClickClose: false, // 是否点击关闭了
cardCur: 0, // 为你推荐轮播下标 cardCur: 0, // 为你推荐轮播下标
referrals: [], // 为你推荐 referrals: [], // 为你推荐
countdown: {d: '0', h: '00', m: '00', s: '00'}, countdown: {d: '0', h: '00', m: '00', s: '00'},
timer: null, timer: null,
swiperList: [
// {url: 'https://health.ufutx.com/go_html/store_common#/agentHome', img: 'https://images.health.ufutx.com/202501/10/77128459dc40babf165f8bb2cc44be1d.jpeg'},
{url: 'https://health.ufutx.com/go_html/store_common#/agentHome', img: 'https://images.health.ufutx.com/202501/09/cd369bc6aa8ca9cb9626bb75e9d5ab6c.jpeg'},
// {url: 'https://health.ufutx.com/go_html/store_common#/agentHome', img: 'https://images.health.ufutx.com/202412/31/81b8f50c7e8a03a5aaf9310f02470660.jpeg'},
{url: 'https://health.ufutx.com/go_html/store_common#/agentHome', img: 'https://images.health.ufutx.com/202412/20/68a61ecd8f5255ab557747d95cf2cae6.jpeg'}
],
modalName: '', //
advModal: {
id: 0,
pic: '',
shop_id: null
}, //
url: 'other/user/square' // 精准推荐 url: 'other/user/square' // 精准推荐
}, },
methods: { methods: {
hideModal() {
this.modalName = ''
},
onPageScroll(e) {
let vm = this.$wepy
// 根据滚动位置来设置按钮的隐藏状态
// 这里的scrollTop是滚动条垂直滚动的距离
vm.isScroll = true
clearTimeout(this.scrollTimeout)
this.scrollTimeout = setTimeout(() => {
// 定时器时间到后,如果没有新的滚动事件触发,则认为滚动停止
vm.isScroll = false
// 这里可以执行滚动停止后的逻辑,比如显示某个按钮
}, 200) // 200毫秒后判断滚动是否停止这个时间可以根据需要调整
},
// 获取置顶推荐用户 // 获取置顶推荐用户
getTopUser() { getTopUser() {
let vm = this let vm = this
console.log(this, 'topthis')
vm.$get({url: `${service.host}/area/top/users`}).then(({code, data}) => { vm.$get({url: `${service.host}/area/top/users`}).then(({code, data}) => {
if (code === 0) { if (code === 0) {
vm.topList = data || [] vm.topList = data || []
@ -647,16 +801,57 @@ wepy.page({
}, },
jumpPath(url) { jumpPath(url) {
let vm = this let vm = this
// 校验是否完成注册资料 // // 校验是否完成注册资料
if (!vm.$signInVerify()) { // if (!vm.$signInVerify()) {
vm.loginShow = true // vm.loginShow = true
return // return
} // }
wx.navigateTo({url: url}) wx.navigateTo({url: url})
}, },
hiddenLogin() { hiddenLogin() {
let vm = this let vm = this
vm.loginShow = false vm.loginShow = false
},
getBannerList() {
let vm = this
vm.$get({url: `${service.host}/dma/carousel/list`}).then(({code, data}) => {
if (code === 0) {
vm.swiperList = data.map(item => {
return {
img: item.icon,
shop_id: item.shop_id,
program: item.program
}
}).filter((item) => {
return !item.program
})
}
wx.hideLoading()
}).catch(err => {
wx.hideLoading()
console.log(err)
})
},
goToShop(item) {
let name = wx.getStorageSync('userInfo').name || ''
let mobile = wx.getStorageSync('mobile') || ''
console.log(item, 'ite-==')
if (item && item.shop_id) {
wx.navigateToMiniProgram({
appId: 'wxe486777f4379507e',
path: `/pages/sub_page/shopDetail?id=${item.shop_id}&name=${name}&mobile=${mobile}`
})
return
}
wx.navigateToMiniProgram({
appId: 'wxe486777f4379507e',
path: `/pages/sub_page/shopListV2?name=${name}&mobile=${mobile}`
})
return
console.log('111')
// wx.navigateTo({url: item.url})
// wx.navigateTo({url: '/pages/books/bookDetail?url=' + encodeURIComponent(item.url)})
wx.navigateTo({url: '/pages/books/bookDetail?url=' + encodeURIComponent('https://health.ufutx.com/go_html/store_common#/agentHome')})
} }
}, },
// 上拉获取更多数据 // 上拉获取更多数据
@ -680,15 +875,43 @@ wepy.page({
if (wx.getStorageSync('logoutCode')) { if (wx.getStorageSync('logoutCode')) {
wx.redirectTo({url: '/pages/users/logoutDefault'}) wx.redirectTo({url: '/pages/users/logoutDefault'})
} }
// if (vm.userInfo) {
// console.log('444')
// setTimeout(() => {
// wx.switchTab({url: '/pages/tabBar/home'})
// }, 3000)
// }
}, },
onLoad() { onLoad() {
let vm = this let vm = this
vm.userInfo = wx.getStorageSync('userInfo') vm.userInfo = wx.getStorageSync('userInfo')
vm.getTopUser() console.log(vm.userInfo, 'vm.userInfo')
vm.getArea() if (!vm.userInfo) {
vm.getEveryday() console.log('444')
vm.getSquare() setTimeout(() => {
vm.applyTopUpState() vm.getTopUser()
vm.getArea()
vm.getEveryday()
vm.getSquare()
vm.applyTopUpState()
vm.getBannerList()
vm.advModal = wx.getStorageSync('adv')
if ((vm.advModal.id - 0) > 0) {
vm.modalName = 'showAdv'
}
}, 1200)
} else {
vm.getTopUser()
vm.getArea()
vm.getEveryday()
vm.getSquare()
vm.applyTopUpState()
vm.getBannerList()
vm.advModal = wx.getStorageSync('adv')
if ((vm.advModal.id - 0) > 0) {
vm.modalName = 'showAdv'
}
}
} }
}) })
</script> </script>

View File

@ -446,10 +446,10 @@ wepy.page({
jumpPath(e) { jumpPath(e) {
let vm = this let vm = this
// 校验是否完成注册资料 // 校验是否完成注册资料
if (!vm.$signInVerify()) { // if (!vm.$signInVerify()) {
vm.loginShow = true // vm.loginShow = true
return // return
} // }
wx.navigateTo({url: e.path}) wx.navigateTo({url: e.path})
}, },
hiddenLogin() { hiddenLogin() {

File diff suppressed because it is too large Load Diff

View File

@ -74,7 +74,7 @@
<image class="audit_icon" src="https://images.ufutx.com/202101/21/be17739e07f9bb0de1c629dc0b84a505.png" mode="widthFix"></image> <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="font_36 color-333 bold">提交成功,等待审核</view>
<view class="audit_prompt font_28 color-333">审核结果将在13个工作日内通知请耐心等待如有需要请直接联系</view> <view class="audit_prompt font_28 color-333">审核结果将在13个工作日内通知请耐心等待如有需要请直接联系</view>
<view class="font_28 color-333">客服<span class="color-theme" @tap.stop="clickPhone">18922809346</span></view> <view class="font_28 color-333">客服<span class="color-theme" @tap.stop="clickPhone">18194063294</span></view>
<view class="know_that" @tap="redirectTo('/pages/users/myCertification')">我知道了</view> <view class="know_that" @tap="redirectTo('/pages/users/myCertification')">我知道了</view>
</view> </view>
</view> </view>
@ -325,7 +325,7 @@
}, },
clickPhone() { clickPhone() {
wx.makePhoneCall({ wx.makePhoneCall({
phoneNumber: '18922809346' phoneNumber: '18194063294'
}) })
}, },
redirectTo(url) { redirectTo(url) {

View File

@ -0,0 +1,116 @@
<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="font_36 color-333 bold text-center">无法使用福恋平台!</view>
<view class="color-333 font_32 text-center" style="margin: 24rpx 50rpx 48rpx 50rpx">由于您的账号id:{{id}}涉及违规,暂无法使用福恋平台,如有需要,请联系客服<span class="color-theme font_28" @tap.stop="clickPhone">18194063294</span></view>
<view class="openButton font_32" @tap="clickPhone">联系客服</view>
</view>
</template>
<script>
import wepy from '@wepy/core'
import { service } from '../../config.js'
import http from '../../mixins/https'
import base from '../../mixins/base'
wepy.page({
// config = {
// navigationBarTitleText: '福恋系统',
// navigationStyle: 'custom',
// enablePullDownRefresh: false
// }
data: {
StatusBar: 0,
CustomBar: 0,
Custom: 0,
navHeight: '',
windowHeight: '',
id: ''
},
async onLoad(e) {
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)
},
created() {
this.navHeight = this.$app.$options.globalData.navBarHeight
this.StatusBar = this.$app.$options.globalData.StatusBar
this.CustomBar = this.$app.$options.globalData.CustomBar
this.Custom = this.$app.$options.globalData.Custom
},
onShow() {
wx.setStorageSync('blacklistCode', 1)
// this.$parent.getTracker(this.$root.$name, this.config.navigationBarTitleText)
},
onPullDownRefresh() {
},
onReachBottom() {
},
methods: {
clickPhone() {
wx.makePhoneCall({
phoneNumber: '18194063294'
})
}
}
})
</script>
<style lang="less">
page{
background: white;
}
.defaultIcon{
width: 440rpx;
height: 360rpx;
display: block;
margin: 10vh 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: '福恋系统',
navigationStyle: 'custom',
enablePullDownRefresh: false,
backgroundColorTop: '#ffffff',
backgroundColorBottom: '#ffffff',
usingComponents: {
}
}
</config>

View File

@ -130,7 +130,7 @@
<image class="successful_pic" src="https://images.ufutx.com/202012/28/2168fa80aa80eb0f76ba71ac0e449c7e.png" mode="widthFix" ></image> <image class="successful_pic" src="https://images.ufutx.com/202012/28/2168fa80aa80eb0f76ba71ac0e449c7e.png" mode="widthFix" ></image>
</view> </view>
<view class="font_36 color-333 bold">认证已提交,等待审核</view> <view class="font_36 color-333 bold">认证已提交,等待审核</view>
<view class="font_28 color-333 prompt_text">审核结果将在13个工作日内通知请耐心等待如有需要请直接联系客服<span class="color-theme" @tap="callPhone('18922809346')">18194066804</span></view> <view class="font_28 color-333 prompt_text">审核结果将在13个工作日内通知请耐心等待如有需要请直接联系客服<span class="color-theme" @tap="callPhone('18194063294')">18194063294</span></view>
<view class="Know font_32" @tap="goToBack">我知道了</view> <view class="Know font_32" @tap="goToBack">我知道了</view>
</view> </view>
</view> </view>

187
src/pages/users/freeze.wpy Normal file
View File

@ -0,0 +1,187 @@
<template>
<view class="wrapper font_28">
<view class="m_fre f-fcc f-fdc">
<image class="defaultIcon" src="https://image.fulllinkai.com/202108/27/20047ad98fe3054f2ab6f1ba71633493.png" mode="aspectFit" v-if="frozen_state == 1"></image>
<image class="defaultIcon" src="https://image.fulllinkai.com/202108/30/4f5aaabe98d9132c6b3b41ff0cd92b98.png" mode="aspectFit" v-else></image>
<view class="font_36 color-333 bold text-center" style="padding: 20rpx 0 60rpx;">{{frozen_state == 1?'解锁登录状态':'解锁已过期'}}</view>
<view class="color-666 font_30" v-if="frozen_state == 1">
<view>Hi{{nickName}},好久不见~</view>
<view>你的账号目前为冻结状态,快来「立即解锁」</view>
<view>你的登录状态吧!</view>
</view>
<view class="color-666 font_30" v-else>可以联系客服,帮助你解锁喔</view>
<view class="openButton font_32 white" @tap="clickUnfrozen" v-if="frozen_state == 1">立即解锁</view>
<view class="openButton font_32 white" @tap="clickPhone" v-else>联系客服</view>
</view>
<view class="cu-modal {{modalName=='freezeModal'?'show':''}}" catchtap="modalTipsCts">
<view class="cu-dialog">
<image class="u_moImg" src="https://image.fulllinkai.com/202108/27/2174fe572025a3cedd6f5aeee116162a.png" mode="aspectFit"></image>
<view class="font_32 color-333" style="padding: 40rpx 0;">现在完善你的单身资料,立即帮你重新匹配的优质异性喔</view>
<view class="m_bu font_32 f-fcc">
<view class="u_bu_ho color-999 f-fcc" @tap="goto('/pages/tabBar/home')">进入首页</view>
<view class="u_bu_la f-fcc white" @tap="goto('/pages/users/unmarriV2')">完善资料</view>
</view>
<!-- <view class="actions bg-img" @tap.stop="hideModal" style="background-image: url({{'https://images.ufutx.com/202103/15/1033c7b52cacddcebe999cefc6ad2c9b.png'}})"></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.page({
mixins: [https, base],
data: {
modalName: '',
user_id: '',
frozen_state: 1,
nickName: '',
userInfo: ''
},
async onLoad(e) {
this.user_id = wx.getStorageSync('user_id')
wx.hideLoading()
this.userInfo = wx.getStorageSync('userInfo')
this.frozen_state = this.$app.$options.globalData.frozen_state
console.log(this.userInfo, 'userInfo')
if (this.userInfo) {
this.nickName = this.userInfo.name
}
},
onShow() {
},
onPullDownRefresh() {
},
onReachBottom() {
},
methods: {
hideModal() {
this.modalName = ''
},
clickUnfrozen() {
this.unfrozen()
},
clickPhone() {
wx.makePhoneCall({
phoneNumber: '18194063294'
})
},
goto(url) {
this.modalName = ''
if (url == '/pages/tabBar/home') {
this.$gotoTab(url)
}
this.$redirectTo(url)
},
unfrozen() {
let data = {
}
this.$put({url: `${service.host}/unfrozen/user/${this.user_id}`, data}).then(({code, data}) => {
if (code == 0) {
vm.modalName = 'freezeModal'
}
})
// that.$put({url: `${service.host}/unfrozen/user/${that.user_id}`}).then(({code, data}) => {
// if (code == 0) {
// that.modalName = 'freezeModal'
// }
// })
}
}
})
</script>
<style lang="less">
page{
background: white;
}
.wrapper {
height: 100vh;
.m_fre {
position: relative;
top: 50%;
transform: translateY(-50%);
padding-bottom: 200rpx;
.defaultIcon{
width: 224rpx;
height: 236rpx;
}
.openButton{
width: 480rpx;
height: 80rpx;
background-image: linear-gradient(to left,#FF85A5,#FF5380);
border-radius: 100rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 80rpx auto 0;
}
}
}
.cu-modal {
.cu-dialog {
width: 600rpx;
// height: 500rpx;
background: #ffffff;
border-radius: 32rpx;
position: relative;
overflow: visible;
padding: 50rpx;
}
.actions {
position: absolute;
bottom: -100rpx;
left: 0;
right: 0;
margin: auto;
width: 48rpx;
height: 48rpx;
}
.u_moImg {
width: 364rpx;
height: 232rpx;
}
.m_bu {
.u_bu_la,
.u_bu_ho {
width: 200rpx;
height: 72rpx;
border-radius: 100rpx;
}
.u_bu_ho {
border: 2rpx solid #D8D8D8;
}
.u_bu_la {
background: #FF5380;
margin-left: 48rpx;
}
}
}
</style>
<config>
{
navigationBarTitleText: '福恋系统',
navigationStyle: 'custom',
enablePullDownRefresh: false,
backgroundColorTop: '#ffffff',
backgroundColorBottom: '#ffffff',
usingComponents: {
}
}
</config>

View File

@ -32,10 +32,10 @@
<view class="_bgModal"> <view class="_bgModal">
<view class="_text textarea"> <view class="_text textarea">
<view class="font_26 bold">联系脱单姐领取脱单彩蛋</view> <view class="font_26 bold">联系脱单姐领取脱单彩蛋</view>
<view class="font_26 bold">18922809346</view> <view class="font_26 bold">18194063294</view>
</view> </view>
<view class="_gif"></view> <view class="_gif"></view>
<view class="_bgBtn" @tap="callPhone('18922809346')"></view> <view class="_bgBtn" @tap="callPhone('18194063294')"></view>
</view> </view>
</view> </view>
</view> </view>

View File

@ -89,10 +89,12 @@
<image class="successful_pic" src="https://images.ufutx.com/202012/28/2168fa80aa80eb0f76ba71ac0e449c7e.png" mode="widthFix" ></image> <image class="successful_pic" src="https://images.ufutx.com/202012/28/2168fa80aa80eb0f76ba71ac0e449c7e.png" mode="widthFix" ></image>
</view> </view>
<view class="font_36 color-333 bold">资料正在审核中</view> <view class="font_36 color-333 bold">资料正在审核中</view>
<view class="font_28 color-333 prompt_text">审核结果将在13个工作日内通知请耐心等待如有需要请直接联系客服<span class="color-theme" @tap="callPhone('18922809346')">18194066804</span></view> <view class="font_28 color-333 prompt_text">审核结果将在13个工作日内通知请耐心等待如有需要请直接联系客服<span class="color-theme" @tap="callPhone('18194063294')">18194063294</span></view>
<view class="Know font_32" @tap="vanish">我知道了</view> <view class="Know font_32" @tap="vanish">我知道了</view>
</view> </view>
</view> </view>
<loginDialog :loginShow="loginShow" @hiddenLogin="hiddenLogin"></loginDialog>
</template> </template>
<script> <script>
@ -120,7 +122,8 @@
], ],
tempId: [], // 模板id tempId: [], // 模板id
system: wx.getStorageSync('system'), system: wx.getStorageSync('system'),
approve_time: 0 approve_time: 0,
loginShow: false
}, },
onShow() { onShow() {
this.$showLoading('加载中') this.$showLoading('加载中')
@ -200,17 +203,22 @@
let vm = this let vm = this
console.log(this.mobile, 'url===') console.log(this.mobile, 'url===')
if ((text == '真人认证' || text == '学历认证') && !this.mobile) { if ((text == '真人认证' || text == '学历认证') && !this.mobile) {
wx.showModal({ if (!vm.$signInVerify()) {
title: '温馨提示', console.log('000')
content: '请先绑定手机号后再真人认证', vm.loginShow = true
success(res) { return
if (res.confirm) { }
vm.$goto('/pages/users/setTing') // wx.showModal({
} else if (res.cancel) { // title: '温馨提示',
console.log('用户点击取消') // content: '请先绑定手机号后再真人认证',
} // success(res) {
} // if (res.confirm) {
}) // vm.$goto('/pages/home/information')
// } else if (res.cancel) {
// console.log('用户点击取消')
// }
// }
// })
return return
} }
if (text == '学历认证' && this.is_real_approved !== 1) { if (text == '学历认证' && this.is_real_approved !== 1) {
@ -260,6 +268,10 @@
}, },
vanish() { vanish() {
this.modalName = '' this.modalName = ''
},
hiddenLogin() {
let vm = this
vm.loginShow = false
} }
} }
}) })
@ -450,7 +462,8 @@
backgroundColorTop: '#ffffff', backgroundColorTop: '#ffffff',
backgroundColorBottom: '#ffffff', backgroundColorBottom: '#ffffff',
usingComponents: { usingComponents: {
cuCustom: '~@/components/cuCustom' cuCustom: '~@/components/cuCustom',
} loginDialog: '~@/components/loginDialog',
}
} }
</config> </config>

View File

@ -5,22 +5,12 @@
<view class="u_lst f-fbc" > <view class="u_lst f-fbc" >
<view class="u_lst f-fbc"> <view class="u_lst f-fbc">
<view class="f-fc"> <view class="f-fc">
<view class="font_30 " >手机号绑定</view> <view class="font_30 " >手机号</view>
</view> </view>
</view> </view>
<view class="color-999 font_28">{{phoneNumber}}</view> <view class="color-999 font_28">{{phoneNumber}}</view>
</view> </view>
</block> </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>
<view class="m_lst" v-for="(itemV1,indexV1) in lists" :key="indexV1"> <view class="m_lst" v-for="(itemV1,indexV1) in lists" :key="indexV1">
<block v-for="(item,index) in itemV1" :key="index"> <block v-for="(item,index) in itemV1" :key="index">
@ -53,7 +43,9 @@
</block> </block>
</view> </view>
</view> </view>
<UnlockingDialog :modalName="unlockIngModalName" @unlockingCut="unlockingCut"></UnlockingDialog> <UnlockingDialog :modalName="unlockIngModalName" @unlockingCut="unlockingCut" @toUpdateCut-="toUpdateCut" @signInVerify="signInVerify"></UnlockingDialog>
<loginDialog :loginShow="loginShow" @hiddenLogin="hiddenLogin"></loginDialog>
</template> </template>
<script> <script>
@ -163,7 +155,8 @@
path: '/pages/users/aboutLove' path: '/pages/users/aboutLove'
} }
] ]
] ],
loginShow: false
}, },
watch: { watch: {
@ -176,6 +169,14 @@
this.system = app.globalData.systemInfo.system.split(' ')[0] this.system = app.globalData.systemInfo.system.split(' ')[0]
}, },
methods: { methods: {
signInVerify() {
let vm = this
vm.loginShow = true
},
hiddenLogin() {
let vm = this
vm.loginShow = false
},
vipData() { vipData() {
this.$get({url: service.host + '/user/center'}).then(({code, data}) => { this.$get({url: service.host + '/user/center'}).then(({code, data}) => {
this.rankData = data.rank_profile this.rankData = data.rank_profile
@ -334,7 +335,13 @@
unlockingCut(e) { unlockingCut(e) {
console.log(e, '---') console.log(e, '---')
this.unlockIngModalName = e this.unlockIngModalName = e
} },
toUpdateCut(e) {
let userInfo = wx.getStorageSync('userInfo')
userInfo.rank_id = 9
wx.setStorageSync('userInfo', userInfo)
this.vipData()
}
} }
}) })
</script> </script>
@ -382,6 +389,8 @@ backgroundColorBottom: '#f2f2f2',
usingComponents: { usingComponents: {
UnlockingDialog: '~@/components/UnlockingDialog', UnlockingDialog: '~@/components/UnlockingDialog',
shareComponent: '~@/components/shareComponent', shareComponent: '~@/components/shareComponent',
} loginDialog: '~@/components/loginDialog',
}
} }
</config> </config>

File diff suppressed because it is too large Load Diff

View File

@ -121,6 +121,8 @@
</view> </view>
</view> </view>
<view style="height: 120rpx;"></view> <view style="height: 120rpx;"></view>
<loginDialog :loginShow="loginShow" @hiddenLogin="hiddenLogin"></loginDialog>
</template> </template>
<script> <script>
@ -168,7 +170,9 @@
wxPayShow: 'cash', wxPayShow: 'cash',
coinMoney: 0, coinMoney: 0,
deductionPrice: 0, deductionPrice: 0,
bgVip: 'background: #333333;\ncolor: white' bgVip: 'background: #333333;\ncolor: white',
loginShow: false
}, },
computed: { computed: {
residue() { residue() {
@ -347,6 +351,10 @@
}, 800) }, 800)
}, },
showFn (index) { // 弹框支付 showFn (index) { // 弹框支付
if (!this.$signInVerify()) {
this.loginShow = true
return
}
this.wxPayShow = 'cash' this.wxPayShow = 'cash'
this.coinMoney = (this.payData.coin / 10).toFixed(2) 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) // 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)
@ -460,6 +468,10 @@
}, },
payChoice(e) { payChoice(e) {
this.wxPayShow = this.wxPayShow == 'coin' ? 'cash' : e this.wxPayShow = this.wxPayShow == 'coin' ? 'cash' : e
},
hiddenLogin() {
let vm = this
vm.loginShow = false
} }
} }
}) })
@ -686,7 +698,9 @@
backgroundColorTop: '#f2f2f2', backgroundColorTop: '#f2f2f2',
backgroundColorBottom: '#f2f2f2', backgroundColorBottom: '#f2f2f2',
usingComponents: { usingComponents: {
cuCustom: '~@/components/cu-custom' cuCustom: '~@/components/cu-custom',
} loginDialog: '~@/components/loginDialog',
}
} }
</config> </config>

View File

@ -1,4 +1,4 @@
import Vuex from '@wepy/x'; import Vuex from '@wepy/x'
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
@ -6,23 +6,23 @@ export default new Vuex.Store({
}, },
mutations: { mutations: {
increment (state) { increment (state) {
state.counter++; state.counter++
}, },
decrement (state) { decrement (state) {
state.counter--; state.counter--
} }
}, },
actions: { actions: {
increment ({ commit }) { increment ({ commit }) {
commit('increment'); commit('increment')
}, },
decrement ({ commit }) { decrement ({ commit }) {
commit('decrement'); commit('decrement')
}, },
incrementAsync ({ commit }) { incrementAsync ({ commit }) {
setTimeout(() => { setTimeout(() => {
commit('increment'); commit('increment')
}, 1000); }, 1000)
} }
} }
}); })

View File

@ -2,6 +2,7 @@ import NIM from 'nim-web-sdk-ng/dist/v2/NIM_MINIAPP_SDK'
import { service } from '../config.js' import { service } from '../config.js'
const IM = (account, token) => { const IM = (account, token) => {
// 沿用旧版稳定配置格式:不使用官网新的分参数配置,避免兼容问题
let nim = NIM.getInstance({ let nim = NIM.getInstance({
debugLevel: 'off', debugLevel: 'off',
appkey: '9bc3ed1f7d8197b6b69f8f5b742824b1', appkey: '9bc3ed1f7d8197b6b69f8f5b742824b1',
@ -13,10 +14,38 @@ const IM = (account, token) => {
linkUrl: 'wlnimsc0.netease.im' linkUrl: 'wlnimsc0.netease.im'
}) })
// 保留核心优化筛选有效群会话ID解决“找不到会话”报错
const getValidTeamSessionIds = (sessions) => {
return sessions.filter(item => item.scene === 'team').map(item => item.to)
}
// 保留核心优化清理无效存储数据避免用无效群ID操作
const cleanInvalidTeamStorage = (validTeamIds) => {
// 清理免打扰列表
let muteNotList = wx.getStorageSync('muteNotList') || []
const validMuteList = muteNotList.filter(item =>
validTeamIds.includes(`team-${item.teamId}`)
)
if (muteNotList.length !== validMuteList.length) {
wx.setStorageSync('muteNotList', validMuteList)
}
// 清理群未读数列表
let teamsSessionsCount = wx.getStorageSync('teamsSessionsCount') || []
const validTeamsCount = teamsSessionsCount.filter(item =>
validTeamIds.includes(item.id)
)
if (teamsSessionsCount.length !== validTeamsCount.length) {
wx.setStorageSync('teamsSessionsCount', validTeamsCount)
}
}
// 沿用旧版事件列表:不新增可能兼容问题的事件
const eventList = [ const eventList = [
'logined', 'willReconnect', 'disconnect', 'msg', 'syncdone', 'syncRoamingMsgs', 'sessions', 'updateMuteList', 'friends', 'updateSession', 'teams', 'myTeamMembers', 'updateMyMemberInfo', 'sendTeamMsg' 'logined', 'willReconnect', 'disconnect', 'msg', 'syncdone', 'syncRoamingMsgs', 'sessions', 'updateMuteList', 'friends', 'updateSession', 'teams', 'myTeamMembers', 'updateMyMemberInfo', 'sendTeamMsg'
] ]
// 沿用旧版事件注册方式
eventList.forEach((key) => { eventList.forEach((key) => {
nim.on(key, (res) => { nim.on(key, (res) => {
// console.log(`Receive ${key} event`, res ? JSON.parse(JSON.stringify(res)) : res) // console.log(`Receive ${key} event`, res ? JSON.parse(JSON.stringify(res)) : res)
@ -25,30 +54,43 @@ const IM = (account, token) => {
nim.connect() nim.connect()
// 沿用旧版连接状态监听
nim.on('logined', function () { nim.on('logined', function () {
console.log('连接成功') console.log('IM连接成功')
}) })
nim.on('willReconnect', function (e) { nim.on('willReconnect', function (e) {
console.log(e, '即将重连') console.log('IM即将重连', e)
}) })
nim.on('disconnect', function (e) { nim.on('disconnect', function (e) {
console.log(e, '丢失连接') console.log('IM连接断开', e)
}) })
// 保留核心优化会话同步时校验有效会话避免无效ID报错
nim.on('sessions', function(e) { nim.on('sessions', function(e) {
console.log(e, '会话消息') console.log('会话列表同步:', e)
// 如果群是开启了免打扰自动标记未读数已读 const validTeamIds = getValidTeamSessionIds(e)
cleanInvalidTeamStorage(validTeamIds) // 清理无效数据
// 免打扰群标已读(双重校验:解决找不到会话报错)
let mute = wx.getStorageSync('muteNotList') || [] let mute = wx.getStorageSync('muteNotList') || []
if (mute && mute.length > 0) { if (mute && mute.length > 0) {
mute.forEach((j) => { mute.forEach((j) => {
nim.session.resetSessionUnreadCount({ const sessionId = `team-${j.teamId}`
id: `team-${j.teamId}` const session = nim.session.getSession({ id: sessionId })
}) // 只对“存在且有效”的会话操作,无效会话直接跳过
if (session && validTeamIds.includes(sessionId)) {
try {
nim.session.resetSessionUnreadCount({ id: sessionId })
} catch (err) {
console.log(`重置会话${sessionId}未读失败:`, err)
}
}
}) })
} }
// 获取群消息未读数并赋值在tabBar显示
// 沿用旧版未读数统计和TabBar更新逻辑
let teamsSsions = [] let teamsSsions = []
e.forEach((i) => { e.forEach((i) => {
if (i.scene === 'team') { if (i.scene === 'team') {
@ -56,6 +98,7 @@ const IM = (account, token) => {
} }
}) })
wx.setStorageSync('teamsSessionsCount', teamsSsions) wx.setStorageSync('teamsSessionsCount', teamsSsions)
let groupCount = 0 let groupCount = 0
if (teamsSsions.length > 0) { if (teamsSsions.length > 0) {
for (let i = 0; i < teamsSsions.length; i++) { for (let i = 0; i < teamsSsions.length; i++) {
@ -74,8 +117,9 @@ const IM = (account, token) => {
} }
}) })
// 完全沿用旧版消息处理逻辑:不新增@提醒、撤回等功能
nim.on('msg', function (e) { nim.on('msg', function (e) {
console.log(e, '收到新消息') console.log('收到新消息', e)
let pages = getCurrentPages() let pages = getCurrentPages()
let currentPage = pages[pages.length - 1] let currentPage = pages[pages.length - 1]
let notiTypeData = { muteTeam: false } let notiTypeData = { muteTeam: false }
@ -155,6 +199,9 @@ const IM = (account, token) => {
index: 2 index: 2
}) })
} }
},
fail: (err) => {
console.log('获取系统通知未读失败:', err)
} }
}) })
setTimeout(() => { setTimeout(() => {
@ -169,6 +216,7 @@ const IM = (account, token) => {
}, 800) }, 800)
}) })
// 完全沿用旧版免打扰列表处理逻辑
nim.on('myTeamMembers', function (e) { nim.on('myTeamMembers', function (e) {
let pages = getCurrentPages() let pages = getCurrentPages()
let currentPage = pages[pages.length - 1] let currentPage = pages[pages.length - 1]
@ -188,12 +236,14 @@ const IM = (account, token) => {
}) })
} }
}) })
// 沿用旧版setTimeout如果之前稳定保留避免改动
setTimeout(() => { setTimeout(() => {
console.log(muteNotList, '99399') console.log(muteNotList, '99399')
wx.setStorageSync('muteNotList', muteNotList) wx.setStorageSync('muteNotList', muteNotList)
}) })
} }
}) })
return nim return nim
} }

View File

@ -52,6 +52,7 @@ const wx_login = () => {
wx.setStorageSync('openid', (data.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) // 用户手机号
wx.setStorageSync('adv', data.adv) // 首页弹窗广告
if (data.user.hidden_profile == 'ALLSEX') { // 资料是否关闭 if (data.user.hidden_profile == 'ALLSEX') { // 资料是否关闭
wx.setStorageSync('logoutCode', 1) wx.setStorageSync('logoutCode', 1)
wx.redirectTo({url: '/pages/users/logoutDefault'}) wx.redirectTo({url: '/pages/users/logoutDefault'})