2023-03-30 16:20:10 +08:00
< template >
< div class = "container" >
2023-03-30 16:40:11 +08:00
< div class = "detail-head flexacenter" >
< div class = "detail-section" > 版块 : < span class = "section-name" > 香港澳门台湾留学申请 < / span > < / div >
< div class = "detail-data flexacenter" >
2023-03-30 18:00:11 +08:00
< div class = "detail-data-item flexacenter" >
2023-03-30 17:00:12 +08:00
< img class = "detail-data-eye" src = "@/assets/img/detail/eye.png" > 10378
2023-03-30 16:40:11 +08:00
< / div >
2023-03-30 18:00:11 +08:00
< div class = "detail-data-item flexacenter" >
2023-03-30 17:00:12 +08:00
< img class = "detail-data-comment" src = "@/assets/img/detail/comment.png" > 16
2023-03-30 16:40:11 +08:00
< / div >
< / div >
< / div >
2023-03-30 18:00:11 +08:00
< div class = "detail-title-box" >
2023-03-30 18:20:10 +08:00
< div class = "detail-title-item detail-title-jinghua flexcenter" > 精华 < / div >
< div class = "detail-title-item detail-title-label flexcenter" > 生活贴士 < / div >
香港永久居民的申请步骤和过程
< / div >
<!-- -- >
2023-03-30 19:00:11 +08:00
< div class = "card flexcenter" >
< div class = "card-item shadow" v-for ="(item, index) in 5" :key ="index" >
2023-03-30 18:40:11 +08:00
< div class = "card-head flexacenter" >
< img class = "card-head-icon"
src = "https://axure-file.lanhuapp.com/md516b251fb-9cfa-46fc-a9b6-2a41a7b4dc37__3ad73406ff4bc8b138dafc6dcbf1a635.svg" / >
< div class = "card-head-content flex1 flexflex" >
2023-03-30 19:00:11 +08:00
< div class = "card-head-name flexflex" > 闫旭Mike < div class = "landlord flexcenter" v-if = "index == 0" > 楼主
< / div >
2023-03-30 18:40:11 +08:00
< / div >
2023-03-30 18:20:10 +08:00
< div class = "card-head-time" > 2022 - 7 - 6 14 : 56 < / div >
< / div >
2023-03-30 19:00:11 +08:00
< div class = "card-head-fool" > { { index == 0 ? '楼主' : ` ${ index } 楼 ` } } < / div >
2023-03-30 18:40:11 +08:00
< / div >
< div class = "card-content" >
2023-03-30 19:00:11 +08:00
<!-- 回复引用 -- >
2023-03-30 19:20:10 +08:00
< div class = "quotation flexflex" >
< svg-icon icon -class = " quotation -left " class -name = " quotation -icon " > < / svg-icon >
2023-03-31 14:40:11 +08:00
< div class = "quotation-right flex1 flexflex" >
< div class = "quotation-wenzi flex1 three-lines" >
这个离开香港是否超过180天 , 应该是居籍的判断 , 而非物理空间变化的判断 。 简单来说 , 只要你在香港纳税 , 你在香港有工作 , 有现金流 , 有房子 … 这个离开香港是否超过180天 , 应该是居籍的判断 , 而非物理空间变化的判断 。 简单来说 , 只要你在香港纳税 , 你在香港有工作 , 有现金流 , 有房子 … 这个离开香港是否超过180天 , 应该是居籍的判断 , 而非物理空间变化的判断 。 简单来说 , 只要你在香港纳税 , 你在香港有工作 , 有现金流 , 有房子 …
< / div >
2023-03-30 19:20:10 +08:00
2023-03-31 14:40:11 +08:00
< div class = "quotation-bottom flexacenter" > zhangsd 发表于 2022 - 7 - 6 14 : 56
< svg-icon icon -class = " quotation -right " class -name = " quotation -icon " > < / svg-icon >
< / div >
< / div >
2023-03-30 19:00:11 +08:00
< / div >
2023-03-31 14:40:11 +08:00
之前申请永久居民 , 参考了不少寄托的帖子和经验 , 现在回馈给大家 , 积攒RP 。
2023-03-30 18:20:10 +08:00
< / div >
< / div >
2023-03-30 18:40:11 +08:00
2023-03-30 18:00:11 +08:00
< / div >
2023-03-31 10:40:10 +08:00
<!-- 分页 -- >
2023-03-31 14:40:11 +08:00
< div class = "paging flexcenter" >
2023-03-31 15:00:10 +08:00
< el-pagination small background layout = "prev, pager, next" :total = "1000" >
< / el-pagination >
< / div >
<!-- 底部 -- >
< div class = "discuss-bottom flexflex flexacenter" >
<!-- 底部的轮播 -- >
2023-03-31 15:20:11 +08:00
< div class = "swiper" >
2023-03-31 15:00:10 +08:00
< div class = "bottom-item flexacenter" >
< div class = "bottom-comment flexacenter" @ click = "setValue('popState', 'discussionSingle')" >
2023-03-31 15:20:11 +08:00
< svg-icon icon -class = " pen " class -name = " bottom -comment -icom " > < / svg-icon >
2023-03-31 15:00:10 +08:00
想问啥 , 大胆问
< div class = "loginBtn" v-if = "!islogin" @click.stop="setValue('isloginBtnState', true, 'boolean')" >
< / div >
< / div >
< / div >
< / div >
< div class = "bottom-item flex1 flexacenter" >
< div class = "bottom-operation-box flex1 flexacenter" >
< div class = "bottom-operation-item flex1 flexcolumn flexcenter" @click ="tapLike" >
< div class = "praise_bubble" id = "praise_bubble" @ click.stop = " "
: style = "{ height: prepareLiskeState ? '' : '.5333rem' }" > < / div >
< div class = "loginBtn" v-if = "!islogin" @click.stop="setValue('isloginBtnState', true, 'boolean')" >
< / div >
< img class = "bottom-operation-icom" : class = "{ 'prepareLiskeAnimateState': prepareLiskeAnimateState }"
2023-03-31 15:20:11 +08:00
src = "@/assets/img/detail/like.png" / >
2023-03-31 15:00:10 +08:00
< div class = "bottom-operation-text" > { { stat . like == 0 ? '' : stat . like } } 赞 < / div >
< / div >
< div class = "bottom-operation-item flex1 flexcolumn flexcenter" @click ="postcollect()" >
< div class = "loginBtn" v-if = "!islogin" @click.stop="setValue('isloginBtnState', true, 'boolean')" >
< / div >
2023-03-31 15:20:11 +08:00
< img v-if = "iscollect == 0" class="bottom-operation-icom" src="@/assets/img/detail/collect.png" >
< img v -else class = "bottom-operation-icom" src = "@/assets/img/detail/collect-c.png" >
2023-03-31 15:00:10 +08:00
< div class = "bottom-operation-text" > 收藏 < / div >
< / div >
< div class = "bottom-operation-item flex1 flexcolumn flexcenter" @click ="transmit" >
2023-03-31 15:20:11 +08:00
< img class = "bottom-operation-icom bottom-transmit-icom" src = "@/assets/img/detail/share.png" / >
2023-03-31 15:00:10 +08:00
< div class = "bottom-operation-text" > 转发 < / div >
< button class = "bottom-operation-button flexcolumn flexcenter" open -type = " share " > < / button >
< / div >
< / div >
< / div >
< / div >
2023-03-31 10:40:10 +08:00
2023-03-30 18:00:11 +08:00
2023-03-31 12:00:10 +08:00
< detail-reply :two-comment-data = "twoCommentData" :pop-state = "popState" > < / detail-reply >
2023-03-31 12:40:10 +08:00
< coins :coin-config = "coinConfig" :pop-state = "popState" > < / coins >
2023-03-30 16:20:10 +08:00
< / div >
< / template >
< script >
2023-03-31 11:00:10 +08:00
import DetailReply from '@/components/DetailReply'
2023-03-31 12:20:10 +08:00
import Coins from '@/components/unlock/Coins'
2023-03-30 16:20:10 +08:00
export default {
name : 'detailIndex' ,
data ( ) {
return {
2023-03-31 12:00:10 +08:00
twoCommentData : {
avatar : "https://oss.gter.net/avatar/97KwEWANd_4DHWiY6VbnSUFSCKroYWFjYQ~~/middle" ,
content : "评论回复" ,
} ,
2023-03-31 14:40:11 +08:00
popState : "" ,
2023-03-31 12:40:10 +08:00
coinConfig : {
strategy : {
button : "攒币指南" ,
tips : "你的寄托币不够,快去发帖挣币吧" ,
url : "https://bbs.gter.net/thread-2543548-1-1.html" ,
}
} ,
2023-03-31 15:00:10 +08:00
info : {
avatar : "https://oss.gter.net/avatar/97KwEWANd_4DHWiY6VbnSUFSCKroYWFjYQ~~/middle" ,
2023-03-31 15:40:11 +08:00
likenum : 1
2023-03-31 15:00:10 +08:00
} ,
islogin : true ,
prepareLiskeState : false ,
prepareLiskeAnimateState : false ,
2023-03-31 15:40:11 +08:00
stat : {
like : 0
} ,
2023-03-31 15:00:10 +08:00
iscollect : 0 ,
2023-03-31 15:40:11 +08:00
ispostOfferLike : null , // 点击点赞提交状态
offerLikesumTimer : 0 , // offer点赞累加定时器
offerLikesumAnimateTimer : 0 , // offer点赞动画定时器
2023-03-30 16:20:10 +08:00
} ;
} ,
mounted ( ) {
} ,
methods : {
2023-03-31 15:40:11 +08:00
// 点击点赞
// 点击点赞
tapLike ( ) {
this . isState = true
this . prepareLiskeState = true
this . prepareLiskeAnimateState = true
clearTimeout ( this . offerLikesumTimer )
clearTimeout ( this . offerLikesumAnimateTimer )
let praiseBubble = document . getElementById ( "praise_bubble" ) ;
console . log ( "praiseBubble" , praiseBubble ) ;
let last = 0 ;
let b = Math . floor ( Math . random ( ) * 8 ) + 1 ; // 1 到 7的 图片
// b = 1; // 测试写固定的
const bl = Math . floor ( Math . random ( ) * 11 ) + 1 ; // bl1~bl11
let d = document . createElement ( "div" ) ;
// let urll = '//offer.gter.net/image/gter/offer/imgdetails'
let urll = './img'
d . style . backgroundImage = ` url(' ${ urll } /bg ${ b } .png') `
d . style . backgroundSize = 'contain'
d . className = ` bubble ` ;
d . style . animation = ` bubble_ ${ bl } 1.5s linear 1 forwards, bubble_big_ ${ Math . floor ( Math . random ( ) * 3 ) + 1 } 0.8s linear 1 forwards, bubble_y 1.5s linear 1 forwards `
d . dataset . t = String ( Date . now ( ) ) ;
praiseBubble . appendChild ( d ) ;
this . stat . like ++
this . prepareLiskeNum ++
this . offerLikesumAnimateTimer = setTimeout ( ( ) => {
this . prepareLiskeAnimateState = false
} , 500 )
this . offerLikesumTimer = setTimeout ( ( ) => {
this . ispostOfferLike = false
this . postOfferLike ( )
} , 2000 )
} ,
postOfferLike ( ) {
if ( this . ispostOfferLike ) return
this . ispostOfferLike = true
this . offerLikesum = 0
this . prepareLiskeState = false
let key = new Date ( ) . getTime ( ) + ''
// let num = util.base64_encode(key + util.base64_encode(this.data.prepareLiskeNum + ''))
// util.wxpost("/miniprogramApi/offer/behaviour/like", {
// token: this.data.token,
// num,
// key
// }).then(res => {
// if (res.code != 200) return
// let data = res.data
// this.offerLikesum = 0
// }).finally(() => {
// this.setData({
// prepareLiskeState: false
// })
// })
} ,
2023-03-31 15:00:10 +08:00
// 点击转发
2023-03-31 15:20:11 +08:00
transmit ( ) {
} ,
setValue ( key , value ) {
this [ key ] = value
} ,
2023-03-31 15:00:10 +08:00
2023-03-31 15:20:11 +08:00
// 收藏
postcollect ( ) {
console . log ( "点击收藏" ) ;
2023-03-31 15:00:10 +08:00
}
2023-03-30 16:20:10 +08:00
} ,
2023-03-31 11:00:10 +08:00
components : {
2023-03-31 12:40:10 +08:00
DetailReply , Coins
2023-03-31 11:00:10 +08:00
}
2023-03-30 16:20:10 +08:00
} ;
< / script >
< style lang = "scss" scoped >
. container {
margin - top : 1.3 rem ;
2023-03-31 15:40:11 +08:00
padding - bottom : 2.8 rem ;
2023-03-30 16:40:11 +08:00
. detail - head {
color : # 7 F7F7F ;
2023-03-30 18:00:11 +08:00
padding : .191 rem 0.2933 rem 0 ;
justify - content : space - between ;
2023-03-30 16:40:11 +08:00
. detail - section {
justify - content : space - between ;
font - size : .32 rem ;
. section - name {
color : # 333 ;
}
}
. detail - data {
2023-03-30 17:00:12 +08:00
color : rgb ( 127 , 127 , 127 ) ;
2023-03-30 18:00:11 +08:00
2023-03-30 17:00:12 +08:00
. detail - data - item {
2023-03-30 18:00:11 +08:00
color : rgb ( 127 , 127 , 127 ) ;
font - size : .28 rem ;
img {
margin - right : .12 rem ;
}
. detail - data - eye {
width : .36 rem ;
height : .36 rem ;
}
. detail - data - comment {
width : .32 rem ;
height : .32 rem ;
}
& : last - of - type {
margin - left : .32 rem ;
}
2023-03-30 17:00:12 +08:00
}
2023-03-30 16:40:11 +08:00
}
}
2023-03-30 18:00:11 +08:00
. detail - title - box {
2023-03-30 18:20:10 +08:00
padding : .72 rem 0.2933 rem 0 ;
color : # 000 ;
font - size : .56 rem ;
font - weight : 650 ;
2023-03-30 18:00:11 +08:00
2023-03-30 18:20:10 +08:00
. detail - title - item {
2023-03-30 18:00:11 +08:00
font - size : .32 rem ;
color : # fff ;
2023-03-30 18:20:10 +08:00
height : .64 rem ;
display : inline - flex ;
margin - right : .16 rem ;
font - weight : 400 ;
& . detail - title - jinghua {
width : 1 rem ;
border - radius : .5 rem .5 rem 0 ;
background : linear - gradient ( - 57.3808 deg , rgb ( 178 , 152 , 232 ) 0 % , rgb ( 88 , 70 , 195 ) 100 % ) ;
}
& . detail - title - label {
background : rgb ( 51 , 51 , 51 ) ;
padding : 0 .16 rem ;
display : inline - flex ;
border - radius : .16 rem ;
}
2023-03-30 18:00:11 +08:00
}
2023-03-30 18:20:10 +08:00
}
. card {
margin - top : .48 rem ;
2023-03-30 19:00:11 +08:00
flex - direction : column ;
2023-03-30 18:20:10 +08:00
. card - item {
width : 9.4 rem ;
border - radius : .4 rem ;
background : # fff ;
2023-03-30 19:00:11 +08:00
margin - bottom : .4 rem ;
2023-03-30 18:20:10 +08:00
. card - head {
2023-03-30 18:40:11 +08:00
padding : .48 rem .32 rem ;
border - bottom : .0133 rem solid # ebebeb ;
2023-03-30 18:20:10 +08:00
. card - head - icon {
width : .96 rem ;
height : .96 rem ;
border - radius : 50 % ;
2023-03-30 18:40:11 +08:00
margin - right : .28 rem ;
2023-03-30 18:20:10 +08:00
}
2023-03-30 18:40:11 +08:00
. card - head - content {
flex - direction : column ;
. card - head - name {
color : # 333 ;
font - size : .32 rem ;
margin - bottom : .08 rem ;
. landlord {
color : rgb ( 127 , 127 , 127 ) ;
font - size : .26 rem ;
width : .64 rem ;
height : .44 rem ;
2023-03-30 19:00:11 +08:00
border : rgb ( 215 , 215 , 215 ) .0133 rem solid ;
2023-03-30 18:40:11 +08:00
background : rgb ( 240 , 242 , 245 ) ;
border - radius : .1 rem ;
2023-03-30 19:00:11 +08:00
margin - left : .16 rem ;
2023-03-30 18:40:11 +08:00
}
}
. card - head - time {
color : rgb ( 127 , 127 , 127 ) ;
font - size : .28 rem ;
}
}
. card - head - fool {
color : rgb ( 127 , 127 , 127 ) ;
font - size : .32 rem ;
}
}
. card - content {
color : # 333 ;
font - size : .36 rem ;
line - height : .6 rem ;
padding : .5 rem .32 rem ;
2023-03-30 19:00:11 +08:00
. quotation {
width : 100 % ;
color : # 333 ;
font - size : .32 rem ;
border - radius : .16 rem ;
background : rgb ( 246 , 246 , 246 ) ;
2023-03-31 11:00:10 +08:00
padding : .36 rem .24 rem ;
box - sizing : border - box ;
2023-03-31 14:40:11 +08:00
margin - bottom : .48 rem ;
. quotation - wenzi {
line - height : .52 rem ;
}
2023-03-30 19:00:11 +08:00
2023-03-30 19:20:10 +08:00
. quotation - icon {
2023-03-30 19:00:11 +08:00
width : .32 rem ;
2023-03-30 19:20:10 +08:00
height : .26 rem ;
2023-03-30 19:00:11 +08:00
}
2023-03-31 14:40:11 +08:00
. quotation - right {
flex - direction : column ;
margin - left : .28 rem ;
. quotation - bottom {
color : # 7 F7F7F ;
font - size : .28 rem ;
margin - top : .258 rem ;
. quotation - icon {
margin - left : .2 rem ;
}
}
}
2023-03-30 19:00:11 +08:00
}
2023-03-30 18:20:10 +08:00
}
2023-03-30 18:00:11 +08:00
}
}
2023-03-30 18:20:10 +08:00
2023-03-31 15:00:10 +08:00
. paging {
margin - top : .48 rem ;
: : v - deep {
. el - pagination . is - background . el - pager li : not ( . disabled ) . active {
background : rgba ( 98 , 177 , 255 , 1 ) ;
border - radius : 50 % ;
}
. el - pagination . btn - next . el - icon ,
. el - pagination . btn - prev . el - icon {
font - size : .4 rem ;
}
}
}
. discuss - bottom {
position : fixed ;
bottom : 0 ;
left : 50 % ;
transform : translateX ( - 50 % ) ;
width : 100 vw ;
background - color : # fff ;
padding : 0 0.4 rem ;
box - sizing : border - box ;
z - index : 99 ;
border - top : 0.0133 rem solid # dbdcdd ;
padding - right : 0 ;
height : 2 rem ;
width : 10 rem ;
justify - content : space - between ;
. swiper {
height : 2 rem ;
}
. bottom - item {
justify - content : space - between ;
height : 100 % ;
. bottom - comment {
width : 4.6 rem ;
height : 0.8 rem ;
border - radius : 1 rem ;
padding : 0 0.28 rem ;
font - size : 0.32 rem ;
color : # aaaaaa ;
background - color : # f2f2f2 ;
border : 0.0133 rem solid # ebebeb ;
box - sizing : border - box ;
position : relative ;
. bottom - comment - icom {
width : 0.4 rem ;
height : 0.4 rem ;
margin - right : 0.16 rem ;
}
}
. bottom - operation - box {
width : 3.8667 rem ;
justify - content : space - between ;
}
. bottom - operation - icom {
width : 0.48 rem ;
height : 0.48 rem ;
margin - bottom : 0.1333 rem ;
}
. bottom - operation - item {
position : relative ;
padding : 0 0.4 rem ;
}
. bottom - operation - button {
position : absolute ;
top : 0 ;
left : 0 ;
width : 100 % ;
height : 100 % ;
background - color : transparent ;
padding : 0 ;
margin : 0 ;
border : none ;
outline : none ;
& : : after {
border : none ;
}
}
. bottom - transmit - icom {
width : 0.4 rem ;
height : 0.4 rem ;
}
. bottom - operation - text {
font - size : 0.32 rem ;
color : # 555555 ;
}
. bottom - information {
position : relative ;
min - width : 4.6667 rem ;
max - width : 53.3333 rem ;
height : 0.8 rem ;
border - radius : 1 rem ;
background : linear - gradient ( to right , # fff , # 50 e3c2 , # 50 e3c2 , # 50 e3c2 ) ;
}
. bottom - information - avatar {
width : 0.8 rem ;
height : 0.8 rem ;
border - radius : 50 % ;
}
. bottom - information - content {
color : # fff ;
font - size : 0.2933 rem ;
display : flex ;
align - items : center ;
justify - content : space - around ;
padding : 0 0.1333 rem ;
. vertical {
height : 0.2933 rem ;
background - color : # fff ;
width : 0.0133 rem ;
}
}
. bottom - information - item : not ( : last - of - type ) {
justify - content : center ;
}
}
. praise _bubble {
width : 50 px ;
height : 200 px ;
position : absolute ;
bottom : 1.2 rem ;
background - color : transparent ;
2023-03-31 15:40:11 +08:00
. bubble {
position : absolute ;
width : 40 px ;
height : 40 px ;
left : 0 ;
bottom : 0 px ;
background - repeat : no - repeat ;
background - size : 100 % ;
transform - origin : bottom ;
}
2023-03-31 15:00:10 +08:00
}
2023-03-31 15:40:11 +08:00
}
}
. bubble {
position : absolute ;
width : 40 px ;
height : 40 px ;
left : 0 ;
bottom : 0 px ;
background - repeat : no - repeat ;
background - size : 100 % ;
transform - origin : bottom ;
}
@ keyframes bubble _11 {
25 % {
margin - left : - 10 px ;
}
50 % {
margin - left : - 10 px ;
}
100 % {
margin - left : - 18 px ;
}
}
@ keyframes bubble _10 {
25 % {
margin - left : - 20 px ;
2023-03-31 15:00:10 +08:00
}
2023-03-31 15:40:11 +08:00
50 % {
margin - left : - 20 px ;
}
100 % {
margin - left : - 20 px ;
}
}
@ keyframes bubble _9 {
25 % {
margin - left : 10 px ;
}
50 % {
margin - left : 10 px ;
}
100 % {
margin - left : 10 px ;
}
}
@ keyframes bubble _8 {
25 % {
margin - left : 20 px ;
}
50 % {
margin - left : 20 px ;
}
100 % {
margin - left : 20 px ;
}
}
@ keyframes bubble _7 {
25 % {
margin - left : 3 px ;
}
50 % {
margin - left : 1 px ;
}
75 % {
margin - left : 2 px ;
}
100 % {
margin - left : 3 px ;
}
}
@ keyframes bubble _6 {
25 % {
margin - left : - 3 px ;
}
50 % {
margin - left : - 1 px ;
}
75 % {
margin - left : - 2 px ;
}
100 % {
margin - left : - 3 px ;
}
}
@ keyframes bubble _5 {
25 % {
margin - left : 5 px ;
}
50 % {
margin - left : - 5 px ;
}
75 % {
margin - left : - 10 px ;
}
100 % {
margin - left : - 20 px ;
}
}
@ keyframes bubble _4 {
25 % {
margin - left : - 5 px ;
}
50 % {
margin - left : - 5 px ;
}
75 % {
margin - left : 20 px ;
}
100 % {
margin - left : 10 px ;
}
}
@ keyframes bubble _3 {
25 % {
margin - left : - 20 px ;
}
50 % {
margin - left : 10 px ;
}
75 % {
margin - left : 20 px ;
}
100 % {
margin - left : - 10 px ;
}
}
@ keyframes bubble _2 {
25 % {
margin - left : 20 px ;
}
50 % {
margin - left : 25 px ;
}
75 % {
margin - left : 10 px ;
}
100 % {
margin - left : 5 px ;
}
}
@ keyframes bubble _1 {
25 % {
margin - left : - 8 px ;
}
50 % {
margin - left : 8 px ;
}
75 % {
margin - left : - 15 px ;
}
100 % {
margin - left : 15 px ;
}
}
@ keyframes bubble _big _1 {
0 % {
transform : scale ( 0.3 ) ;
}
100 % {
transform : scale ( 1.2 ) ;
}
}
@ keyframes bubble _big _2 {
0 % {
transform : scale ( 0.3 ) ;
}
100 % {
transform : scale ( 0.9 ) ;
}
}
@ keyframes bubble _big _3 {
0 % {
transform : scale ( 0.3 ) ;
}
100 % {
transform : scale ( 0.6 ) ;
}
}
@ keyframes bubble _y {
0 % {
margin - bottom : 0 ;
}
10 % {
margin - bottom : 0 ;
}
75 % {
opacity : 1 ;
}
100 % {
margin - bottom : 200 px ;
opacity : 0 ;
}
2023-03-30 16:20:10 +08:00
}
< / style >