<少有人走的路--心智成熟的旅程>

个人评分:5分
阅读状态:完成。可反复品味、思考。

这是一本我所遇到的最奇特的心理学著作。
仅仅因为封腰的一句"畅销榜单20年",引发了她和我心灵的邂逅。

整本书通篇几乎都没有涉及到那些貌似专业、拗口的术语,也没有专家式的训诫和大包大揽式的指导。只是用一些真实而典型的医疗案例来剖析和阐述一些独特的观点:

1.人人都有病(或者人人都是神经病)
正因为如此,我们才会跋涉在心智成熟的旅程中。

2.在心智成熟的旅程中,我们是孤独的
只有耐得住寂寞,才能够走远。

3.上帝与我们同在
天堂还是地狱,皆在我们的潜意识中。主体意识向潜意识迈进,我们就在向上帝靠拢。

啊哈,以上观点都是我自个儿根据书本琢磨出来的,不代表此书作者观点啊(算共鸣吧~)

特别是关于潜意识、上帝 那段,可能纯粹的唯物主义者很难接受。记得以前看过篇论文,大致讲的就是 宇宙不过是一个大的:水池",其中盛满了各种波动,我们只是波动的片段映射出的具象...感觉和本书潜意识的论述有异曲同工之妙。

如果你正在为难着什么,那么看下这本书;如果你自认为很理性,那么建议你看本书;如果你只是无聊,本书也是不错的选择;如果你愤世嫉俗,啊哈,这本书就是为你而备。

不做广告,自己看疗效~
【博士论文复现】【阻抗建模、验证扫频法】光伏并网逆变器扫频与稳定性分析(包含锁相环电流环)(Simulink仿真实现)内容概要:本文档是一份关于“光伏并网逆变器扫频与稳定性分析”的Simulink仿真实现资源,重点复现博士论文中的阻抗建模与扫频法验证过程,涵盖锁相环和电流环等关键控制环节。通过构建详细的逆变器模型,采用小信号扰动方法进行频域扫描,获取系统输出阻抗特性,并结合奈奎斯特稳定判据分析并网系统的稳定性,帮助深入理解光伏发电系统在弱电网条件下的动态行为与失稳机理。; 适合群:具备电力电子、自动控制理论基础,熟悉Simulink仿真环境,从事新能源发电、微电网或电力系统稳定性研究的研究生、科研员及工程技术员。; 使用场景及目标:①掌握光伏并网逆变器的阻抗建模方法;②学习基于扫频法的系统稳定性分析流程;③复现高水平学术论文中的关键技术环节,支撑科研项目或学位论文工作;④为实际工程中并网逆变器的稳定性问题提供仿真分析手段。; 阅读建议:建议读者结合相关理论教材与原始论文,逐步运行并调试提供的Simulink模型,重点关注锁相环与电流控制器参数对系统阻抗特性的影响,通过改变电网强度等条件观察系统稳定性变化,深化对阻抗分析法的理解与应用能力。
帮我这个页面 增加一个 查看他的朋友圈的按钮 放在哪里好看? 现在底部是有 聊天 喜欢 按钮 <template> <view class="flex-col page"> <view class="flex-col self-start space-y-492"> <view class="flex-row justify-between"> <view class="flex flex-direction flex-wrap align-center justify-center benben-flex-layout firstHome_flex_1"> <view style="position: relative"> <swiper ref="benbenSwiperfd1_0" :current="bannerIndexfd1_0" @change="bannerIndexfd1_0 = $event.detail.current" class='flex position-relative firstHome_fd1_0' previous-margin="0rpx" next-margin="0rpx" :display-multiple-items="1" :interval="5000" :duration="500" :autoplay='true' :circular='true'> <swiper-item class='flex firstHome_fd1_0' v-for="(item, index) in bannerList" v-if="bannerList.length > 0"> <image class='firstHome_fd1_0_c1_c0' mode="aspectFill" :src='item' @tap.stop="multiImagePreview( item , bannerList )" ></image> </swiper-item> <swiper-item class='flex firstHome_fd1_0' v-if="bannerList.length == 0"> <image class='firstHome_fd1_0_c1_c0' mode="aspectFill" :src='info.f_head_img' @tap.stop="singleImagePreview(info.f_head_img)"></image> </swiper-item> </swiper> <view data-v-774fccd4="" class="flex-col justify-start items-center self-start text-wrapper" v-if="bannerList.length > 0"> <text data-v-774fccd4="" class="font_2 text_3"><span>{{bannerIndexfd1_0 + 1}} / {{bannerList.length}}</span></text> </view> </view> </view> <view class='flex flex-wrap align-center' @tap.stop="handleJumpDiy" data-type="back" data-url="1" style="position: fixed; top: -12px; left: 0px;padding: 15px;" :style="{top:StatusBarRpx+'rpx', }"> <text class='fu-iconfont2 top_fd0_0_c0_c0' @tap.stop="handleJumpDiy" data-type="back" data-url="1"></text> </view> <view class="self-end text_2" style="position:fixed;right: 0; font-size: 26px; top: 0; padding: 15px;font-size: 26px;color: #000;" @tap.stop="popupShow1692179452356=true" :style="{top:StatusBarRpx+'rpx', }" v-if="!is_my && isLogin">...</view> </view> </view> <view class="flex-col space-y-10"> <view class="flex-col section_2"> <view class="flex-row items-center space-x-8"> <text class="text_4">{{info.f_nickname}}</text> <view class="flex-row shrink-0 section_3 space-x-4" v-if="info.sex == 2"> <image class="shrink-0 image_5" :src="alipath+'/16994512298122140741.png'"/> <text class="text_5">{{info.age}}</text> </view> <view class="flex-row shrink-0 section_3 space-x-4" v-if="info.sex == 1" style="background: #6FD4F3;"> <image class="shrink-0 image_5" :src="alipath+'/16994512311687342470.png'"> <text class="text_5">{{info.age}}</text> </view> </view> <view class="flex-row group_2 space-x-10"> <image class="image_6" :src="alipath+'/16994517866089658540.png'" /> <text class="text-999" style="font-size: 12px;">{{info.address}} {{info.juli}}</text> </view> <view class="flex-row items-center group_3 space-x-10"> <image class="image_7" :src="alipath+'/16994517867562976861.png'" /> <text class="font_4">交友宣言</text> <image class="image_7" :src="alipath+'/16994517867562976861.png'" /> </view> <text class="self-start text_6">{{info.autograph || '这个很懒...且很神秘'}}</text> </view> <view class="flex-col section_2"> <view class="flex-row items-center space-x-10"> <image class="image_7" :src="alipath+'/16994517867562976861.png'" /> <text class="font_4">个信息</text> <image class="image_7" :src="alipath+'/16994517867562976861.png'" /> </view> <view class="flex-row justify-between group_4"> <view class="flex-row hang1"> <text class="font_3">年龄:</text> <text class="font_5">{{info.age > 0 ? info.age+'岁' : '未知'}}</text> </view> <view class="flex-row hang1"> <text class="font_3">身高:</text> <text class="font_5">{{info.f_height || '未知'}}</text> </view> </view> <view class="flex-row justify-between group_4"> <view class="flex-row hang1"> <text class="font_3">体重:</text> <text class="font_5">{{info.f_weight || '未知'}}</text> </view> <view class="flex-row hang1"> <text class="font_3">学历:</text> <text class="font_5">{{info.f_xueli || '未知'}}</text> </view> </view> <view class="flex-row justify-between group_4"> <view class="flex-row hang1"> <text class="font_3">情感:</text> <text class="font_5">{{info.f_qinggan || '未知'}}</text> </view> <view class="flex-row hang1"> <text class="font_3">职业:</text> <text class="font_5">{{info.f_zhiye || '未知'}}</text> </view> </view> </view> </view> <view class="flex-col section_4"> <view class="flex-col space-y-30"> <view class="flex-row items-center space-x-10"> <image class="image_7" :src="alipath+'/16994517867562976861.png'" /> <text class="font_4">个标签</text> <image class="image_7" :src="alipath+'/16994517867562976861.png'" /> </view> <view class="flex-row " style="flex-wrap: wrap;"> <view class="flex-col justify-start items-center button" style="margin-right: 10px;" v-for="(item,index) in info.f_label_list"> <text class="font_2" >{{item}}</text> </view> </view> </view> <view class="" style="height: 100rpx;"> </view> <view class="flex-row equal-division" v-if="!is_my && info.is_follow == 0"> <view class="flex-row justify-center items-center equal-division-item section_5 space-x-16" @tap.stop="toChat(info)"> <image class="image_8" :src="alipath+'/16994517860206336861.png'" /> <text class="font_6">聊天</text> </view> <view class="flex-row justify-center items-center equal-division-item_2 section_6 space-x-12" @click="followDo"> <image class="image_9" :src="alipath+'/16994517862130527894.png'" /> <text class="font_6" v-if="info.is_follow == 0" >喜欢</text> </view> </view> <view class="flex-row equal-division" v-if="!is_my && info.is_follow == 1"> <view class="flex-row justify-center items-center equal-division-item section_5 space-x-16" @tap.stop="toChat(info)"> <image class="image_8" :src="alipath+'/16994517860206336861.png'" /> <text class="font_6">聊天</text> </view> <view class="flex-row justify-center items-center section_6 space-x-12" style=" width: 50px;height:50px;margin-left: 10px;" @click="followDo"> <image class="image_9" :src='STATIC_URL+"heart-break-fill.png"' style="margin-left: 4px; width: 26px; height: 25px; "/> <text class="font_6" ></text> </view> </view> </view> <benben-popup v-model="popupShow1692179452356" :mask="true" :mask-close-able="true" mode='bottom'> <view class="flex benben-flex-layout flex-wrap align-center"> <view class='flex flex-direction flex-wrap align-stretch reviewDetails_fd2_0'> <view class='flex flex-wrap align-center justify-around reviewDetails_fd2_0_c1'> <view class='flex flex-direction flex-wrap align-center reviewDetails_fd2_0_c1_c0' @tap.stop="handleJumpDiy" data-type="navigateTo" :data-url="`/pages/xtsz/feedBack/feedBack`"> <text class='reviewDetails_fd2_0_c1_c0_c1'>举报Ta</text> </view> <view class='flex flex-direction flex-wrap align-center' @tap.stop="lahei"> <text class='reviewDetails_fd2_0_c1_c0_c1'>拉黑Ta</text> </view> </view> <view class='flex flex-wrap align-center justify-center reviewDetails_fd2_0_c2'> <view class='flex flex-wrap align-center justify-center reviewDetails_fd2_0_c2_c0' @tap.stop="popupShow1692179452356=false"> <text class='reviewDetails_fd2_0_c2_c0_c0'>取消</text> </view> </view> </view> </view> </benben-popup> </view> </view> </template> <script> export default { data() { return { popupShow1692179452356:false, id:0, alipath:'https://huoxiaobang.oss-cn-wulanchabu.aliyuncs.com/appxcx', info:[], bannerList:[], bannerIndexfd1_0: 0, is_my:false, dingwei:'', }; }, computed: { isLogin() { return this.$store.state.token == '' ? false : true; } }, onLoad(option) { let { id } = option this.id = option.id if(!global.token){ // this.toLoginDiy() // return false }else{ if(this.id == global.userInfo.id){ this.is_my = true }else{ this.is_my = false } } this.getInfo() }, methods: { lahei(){ if(!global.token){ this.toLoginDiy() return false } var that = this this.$util.showModal({ title: '提示', content: '是否拉黑此用户?', confirmColor: '#E93323', // uni.showModal({ // title: "是否确定拉黑此用户?", success: function (res) { if (res.confirm) { that.$api.post(global.apiUrls.post656bf07e55fa2,{ user_id:that.id }) .then((res) => { that.$message.info(res.data.msg) if (res.statusCode == 200 && res.data.code == 1 && res.data.data.lahei == 1) { setTimeout(function(){ uni.navigateBack() },800) } that.popupShow1692179452356 = false }) } } }); }, toChat(item){ if(!global.token){ this.toLoginDiy() return false } var nameList = { id: item.id,//对方id name: item.f_nickname,//聊天窗口对方昵称 avatar: item.f_head_img }; uni.navigateTo({ url: '/pages/index/friend/privateChat'+'?to=' + JSON.stringify(nameList) }); // var islogin = uni.getStorageSync("myUsername"); // // 聊天没登录 // if (islogin == '') { // this.$message.info("遇到了点小差错哦~请稍后重试") // setTimeout(function(){ // uni.navigateBack() // },800) // return false // } // //聊天留存接口 // var nameList = { // myName: global.userInfo.hx_uniqid_id,//我的id // your: item.hx_uniqid_id,//对方环信id // nickname: item.f_nickname,//聊天窗口对方昵称 // avatar: item.f_head_img, //我的头像? tade // he_user_id : this.id, //用于点击详情主页 // my_user_id : global.userInfo.id //用于点击详情主页 // }; // uni.navigateTo({ // url:'/pages/chatroom/chatroom?username=' + JSON.stringify(nameList), // }); }, followDo(){ if(this.follow_flag){ return false } this.follow_flag = true this.$api.post(global.apiUrls.post5d7e38b5e7e31,{ user_id:this.id }) .then((res) => { this.$message.info(res.data.msg) if (res.statusCode == 200 && res.data.code == 1) { this.info.is_follow = !this.info.is_follow this.$forceUpdate() } else { } this.follow_flag = false }) }, getInfo(){ this.dingwei = uni.getStorageSync('myPosition') || '' console.log(this.dingwei); var lat = this.dingwei.latitude || '' var lng = this.dingwei.longitude || '' this.$api.post(global.apiUrls.post656578e8e6103,{ id:this.id, user_id:global.userInfo.id || 0, latitude:lat, longitude:lng }) .then((res) => { if (res.statusCode == 200 && res.data.code == 1) { this.info = res.data.data this.bannerList = res.data.data.f_images || [] } else { this.$message.info(res.data.msg) setTimeout(function(){ uni.navigateBack(-1) },800) } }) .catch((err) => { console.log("err: " + JSON.stringify(err)); }); } }, }; </script> <style scoped lang="css"> @import './common.css'; .reviewDetails_fd2_0_c2_c0_c0 { color: #666666; font-size: 15px; font-weight: 400; } .reviewDetails_fd2_0_c2_c0 { background:#ededed; border-radius: 44rpx 44rpx 44rpx 44rpx; width: 686rpx; height: 80rpx; margin: 24rpx 0rpx 24rpx 0rpx; line-height: 40px; } .reviewDetails_fd2_0_c2 { /* border-top: 1px solid #eee; */ } .reviewDetails_fd2_0_c1_c0_c1 { font-weight: 400; color: #333; line-height: 40px; font-size: 15px; } .reviewDetails_fd2_0_c1_c0_c0 { width: 80rpx; height: 80rpx; border-radius: 40rpx 40rpx 40rpx 40rpx; margin: 0rpx 0rpx 16rpx 0rpx; } .reviewDetails_fd2_0_c1_c0 { /* margin: 0rpx 57rpx 0rpx 0rpx; */ width: 100%; } .reviewDetails_fd2_0_c1 { /* border-bottom: 1px solid #eee; */ padding: 40rpx 0rpx 0rpx 0rpx; /* margin: 0rpx 46rpx 0rpx 46rpx; */ } .reviewDetails_fd2_0_c0_c2_c0 { width: 40rpx; height: 40rpx; border-radius: 0rpx 0rpx 0rpx 0rpx; } .reviewDetails_fd2_0_c0_c1_c0 { font-size: 32rpx; font-weight: 500; color: #333; margin: 0rpx 24rpx 0rpx 24rpx; } .reviewDetails_fd2_0_c0_c1 { padding: 32rpx 0rpx 32rpx 0rpx; } .reviewDetails_fd2_0_c0_c0 { width: 40rpx; height: 40rpx; } .reviewDetails_fd2_0_c0 { padding: 0rpx 32rpx 0rpx 32rpx; } .reviewDetails_fd2_0 { background: #fff; padding: 0rpx 0rpx 0rpx 0rpx; background-size: 100% auto !important; border-radius: 28rpx 28rpx 0rpx 0rpx; width: 750rpx; } .firstHome_numberfd1_0_c0 { background: rgba(213, 213, 213, 0.41); position: absolute; bottom: 20rpx; right: 30rpx; width: 80rpx; height: 40rpx; border-radius: 6rpx 6rpx 6rpx 6rpx; font-size: 24rpx; color: #FFFFFF; line-height: 46rpx; font-weight: 400; } .firstHome_fd1_0_c1_c0 { width: 750rpx; height: 750rpx; /* border-radius: 24rpx 24rpx 24rpx 24rpx; */ } .firstHome_fd1_0 { width: 750rpx; height: 750rpx; /* border-radius: 24rpx 24rpx 24rpx 24rpx; */ overflow: hidden; } .firstHome_swiperDotUnselectedfd1_0 { border: 3px solid rgba(255, 255, 255, 0.6); background: #FFFFFF; width: 8rpx; height: 8rpx; border-radius: 10rpx 10rpx 10rpx 10rpx; margin: 0rpx 6rpx 0rpx 0rpx; font-size: 24rpx; color: #fff; opacity: 0.5; } .firstHome_swiperDotSelectedfd1_0 { border: 3px solid var(--benbenbdColor1); background: #FFFFFF; width: 28rpx; height: 8rpx; border-radius: 10rpx 10rpx 10rpx 10rpx; margin: 0rpx 6rpx 0rpx 0rpx; font-size: 24rpx; color: #fff; } ::v-deep .firstHome_swiperDotfd1_0 { position: absolute; bottom: 8rpx; left: 0rpx; right: 0rpx; } page{ } body{ height: 100vh; } uni-page-body{ background-color: #fff; } .page { background-color: #f9f9f9; width: 100%; overflow-y: auto; overflow-x: hidden; } .section { padding: 39rpx 20rpx 24rpx 35rpx; background-size: 100% 100%; background-repeat: no-repeat; background-color: #ffffff; width: 755rpx; } .space-y-492 > view:not(:first-child), .space-y-492 > text:not(:first-child), .space-y-492 > image:not(:first-child) { margin-top: 492rpx; } .space-y-41 > view:not(:first-child), .space-y-41 > text:not(:first-child), .space-y-41 > image:not(:first-child) { margin-top: 41rpx; } .image { width: 33rpx; height: 20rpx; } .image_2 { margin-left: 9rpx; width: 30rpx; height: 21rpx; } .font_1 { font-size: 26rpx; font-family: PingFang SC; line-height: 20rpx; font-weight: 700; color: #000000; } .text { margin-left: 26rpx; } .group { margin-right: 9rpx; } .image_3 { width: 54rpx; height: 23rpx; } .text_2 { /* margin-right: 7rpx; */ color: #ffffff; font-size: 40rpx; font-family: PingFang SC; font-weight: 500; line-height: 5rpx; } .image_4 { width: 127rpx; height: 127rpx; } .text-wrapper { /* margin-top: 77rpx; */ padding: 8rpx 0; background-color: #66666699; border-radius: 20rpx; min-width: 84rpx; height: 40rpx; position: absolute; bottom: 15px; right: 10px; } .font_2 { font-size: 24rpx; font-family: PingFang SC; line-height: 24rpx; font-weight: 500; color: #556866; } .text_3 { color: #ffffff; font-weight: unset; } .space-y-10 > view:not(:first-child), .space-y-10 > text:not(:first-child), .space-y-10 > image:not(:first-child) { margin-top: 10rpx; } .section_2 { padding: 30rpx; background-color: #ffffff; } .space-x-8 > view:not(:first-child), .space-x-8 > text:not(:first-child), .space-x-8 > image:not(:first-child) { margin-left: 8rpx; } .text_4 { color: #262626; font-size: 40rpx; font-family: PingFang SC; font-weight: 700; line-height: 38rpx; } .section_3 { padding: 4rpx 8rpx; background-color: #fa7eba; border-radius: 12rpx; height: 24rpx; } .space-x-4 > view:not(:first-child), .space-x-4 > text:not(:first-child), .space-x-4 > image:not(:first-child) { margin-left: 4rpx; } .image_5 { width: 16rpx; height: 16rpx; } .text_5 { color: #ffffff; font-size: 20rpx; font-family: PingFang SC; line-height: 16rpx; } .group_2 { margin-top: 26rpx; } .image_6 { width: 20rpx; height: 26rpx; } .hang1{ display: flex; width: 50%; } .font_3 { font-size: 26rpx; font-family: PingFang SC; line-height: 25rpx; color: #999999; width: 80rpx; display: block; } .group_3 { margin-top: 39rpx; } .space-x-10 > view:not(:first-child), .space-x-10 > text:not(:first-child), .space-x-10 > image:not(:first-child) { margin-left: 10rpx; } .image_7 { width: 10rpx; height: 10rpx; } .font_4 { font-size: 30rpx; font-family: PingFang SC; line-height: 28rpx; font-weight: 500; color: #333333; } .text_6 { margin-top: 29rpx; color: #999999; font-size: 28rpx; font-family: PingFang SC; line-height: 28rpx; } .group_4 { margin-top: 30rpx; } .font_5 { width: calc(100% - 80rpx); font-size: 26rpx; font-family: PingFang SC; line-height: 25rpx; color: #333333; } .group_5 { margin-right: 142rpx; } .space-x-49 > view:not(:first-child), .space-x-49 > text:not(:first-child), .space-x-49 > image:not(:first-child) { margin-left: 49rpx; } .text_7 { line-height: 21rpx; } .group_6 { margin-top: 19rpx; } .space-x-164 > view:not(:first-child), .space-x-164 > text:not(:first-child), .space-x-164 > image:not(:first-child) { margin-left: 164rpx; } .text_8 { line-height: 26rpx; } .group_7 { margin-top: 15rpx; } .group_8 { margin-right: 144rpx; } .space-x-48 > view:not(:first-child), .space-x-48 > text:not(:first-child), .space-x-48 > image:not(:first-child) { margin-left: 48rpx; } .section_4 { padding: 30rpx 30rpx 73rpx; background-color: #ffffff; } .space-y-30 > view:not(:first-child), .space-y-30 > text:not(:first-child), .space-y-30 > image:not(:first-child) { margin-top: 30rpx; } .button { background-color: #eaf4f3; border-radius: 23rpx; border-radius: 12px; padding: 0 7px; height: 25px; line-height: 25px; text-align: center; display: block;margin-bottom: 5px; } .button_2 { padding: 12rpx 0; background-color: #eaf4f3; border-radius: 23rpx; width: 110rpx; height: 46rpx; } .button_3 { padding: 12rpx 0; background-color: #eaf4f3; border-radius: 23rpx; width: 190rpx; height: 46rpx; } .equal-division { /* margin-right: 10rpx; */ margin-top: 46rpx; position: fixed;left:25rpx;bottom:10px;width:700rpx } .equal-division-item { flex: 1 1 330rpx; } .section_5 { padding: 30rpx 0; background-image: linear-gradient(-73deg, #6bf4e6 0%, #9cffd6 100%); border-radius: 50rpx; height: 100rpx; } .space-x-16 > view:not(:first-child), .space-x-16 > text:not(:first-child), .space-x-16 > image:not(:first-child) { margin-left: 16rpx; } .image_8 { width: 38rpx; height: 41rpx; } .font_6 { font-size: 36rpx; font-family: PingFang SC; line-height: 34rpx; font-weight: 500; color: #ffffff; } .equal-division-item_2 { flex: 1 1 330rpx; margin-left: 20rpx; } .section_6 { padding: 30rpx 0; background-image: linear-gradient(-41deg, #d460ff 0%, #ff99da 100%); border-radius: 50rpx; height: 100rpx; width: 100rpx; } .space-x-12 > view:not(:first-child), .space-x-12 > text:not(:first-child), .space-x-12 > image:not(:first-child) { margin-left: 12rpx; } .image_9 { width: 42rpx; height: 38rpx; } </style>
11-12
在你当前的页面结构中,底部已经有一个固定定位的按钮组(聊天 + 喜欢/取消喜欢),界面逻辑清晰、操作集中。现在你想新增一个“**查看他的朋友圈**”按钮,需要兼顾 **美观性、可用性、视觉平衡** 和 **用户预期行为**。 --- ### ✅ 推荐方案:将“查看朋友圈”按钮放在顶部右侧 `...` 菜单中 #### 💡原因分析: 1. **避免底部拥挤** 当前底部已有两个功能按钮(聊天、喜欢),且是核心互动操作。“朋友圈”属于次级内容浏览功能,优先级低于直接沟通。 2. **符合用户心智模型** 在社交类 App 中(如微信、陌陌等),“朋友圈”通常是通过头像、资料页入口或更多菜单进入,而不是和“聊天”平级放在底部。 3. **节省空间,保持简洁** 底部按钮区域空间有限,若再加一个按钮会显得拥挤,影响点击准确性和美观度。 4. **现有 UI 已预留扩展点** 你已经在右上角有一个 `...` 按钮,点击后弹出举报/拉黑菜单 —— 这正是放置“查看朋友圈”的理想位置! --- ### 🔧 实现方式(Vue + 小程序语法) 修改你的模板中的 `benben-popup` 弹窗部分,在“拉黑Ta”下方添加新选项: ```vue <benben-popup v-model="popupShow1692179452356" :mask="true" :mask-close-able="true" mode='bottom'> <view class="flex benben-flex-layout flex-wrap align-center"> <view class='flex flex-direction flex-wrap align-stretch reviewDetails_fd2_0'> <view class='flex flex-wrap align-center justify-around reviewDetails_fd2_0_c1'> <!-- 举报 --> <view class='flex flex-direction flex-wrap align-center reviewDetails_fd2_0_c1_c0' @tap.stop="handleJumpDiy" data-type="navigateTo" :data-url="`/pages/xtsz/feedBack/feedBack`"> <text class='reviewDetails_fd2_0_c1_c0_c1'>举报Ta</text> </view> <!-- 拉黑 --> <view class='flex flex-direction flex-wrap align-center' @tap.stop="lahei"> <text class='reviewDetails_fd2_0_c1_c0_c1'>拉黑Ta</text> </view> <!-- 查看朋友圈 --> <view class='flex flex-direction flex-wrap align-center' @tap.stop="viewMoments"> <text class='reviewDetails_fd2_0_c1_c0_c1'>查看朋友圈</text> </view> </view> <!-- 取消按钮 --> <view class='flex flex-wrap align-center justify-center reviewDetails_fd2_0_c2'> <view class='flex flex-wrap align-center justify-center reviewDetails_fd2_0_c2_c0' @tap.stop="popupShow1692179452356=false"> <text class='reviewDetails_fd2_0_c2_c0_c0'>取消</text> </view> </view> </view> </view> </benben-popup> ``` 然后在 `<script>` 的 `methods` 中增加方法: ```js viewMoments() { this.popupShow1692179452356 = false; if (!global.token) { this.toLoginDiy(); return; } uni.navigateTo({ url: `/pages/user/moments/moments?userId=${this.id}` }); } ``` > 📝 假设你有一个名为 `/pages/user/moments/moments.vue` 的朋友圈页面,接收 `userId` 参数来加载对应用户的动态。 --- ### 🎨 视觉建议补充 如果你坚持想把“朋友圈”做成显式按钮,可以考虑以下替代方案: | 方案 | 说明 | |------|------| | **方案一:放在个信息标签区域下方** | 加一个醒目的矩形按钮:“TA的朋友圈”,带图标,引导性强。适合主打“动态展示”的产品。 | | **方案二:头像轮播图左上角加入口图标** | 如小红点或相册图标,暗示有内容可看,适合轻量级入口。 | | **方案三:替换“喜欢”为图标按钮,腾出空间三等分** | 把“聊天”、“喜欢”、“朋友圈”都用图标表示,实现三按钮均分布局。 | 但综合来看,**推荐使用菜单方式**最稳妥,不会破坏现有布局美感。 --- ### ✅ 最终效果总结 - 用户点击右上角 `...` - 弹出菜单:【举报Ta】【拉黑Ta】【查看朋友圈】【取消】 - 点击“查看朋友圈”跳转到对方动态页 - 整体干净、合理、易维护 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值