|
|
@@ -23,9 +23,25 @@
|
|
|
int modelpk = JspUtils.getInt(request, "modelpk");
|
|
|
int memberpk = JspUtils.getInt(request, "memberpk");
|
|
|
String operator = JspUtils.getString(request, "operator");
|
|
|
+ DSLContext ctx = DSL.using(DbConnection.getPara("MySQLURL"));
|
|
|
+
|
|
|
+ if ("follow".equals(operator)) {
|
|
|
+ int follow = JspUtils.getInt(request, "follow");
|
|
|
+ boolean success = false;
|
|
|
+ if (modelpk > 0 && memberpk > 0) {
|
|
|
+ if (1 == follow) {
|
|
|
+ success = ctx.insertInto(MODELFAN, MODELFAN.MODELPK, MODELFAN.MEMBERPK).values(modelpk, memberpk).execute() > 0;
|
|
|
+ } else {
|
|
|
+ success = ctx.delete(MODELFAN).where(MODELFAN.MEMBERPK.equal(memberpk)).and(MODELFAN.MODELPK.equal(modelpk)).execute() > 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ response.setContentType("application/json");
|
|
|
+ out.print("{\"success\":" + success + "}");
|
|
|
+ ctx.close();
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- DSLContext ctx = DSL.using(DbConnection.getPara("MySQLURL"));
|
|
|
int modelMemberPK = ctx.select(MODELINFO.MEMBERPK).from(MODELINFO).where(MODELINFO.PK.equal(modelpk)).fetchOne(0, int.class);
|
|
|
ctx.update(PARTTYSIGN).set(PARTTYSIGN.VIEW, PARTTYSIGN.VIEW.add(1)).where(PARTTYSIGN.MEMBERPK.equal(modelMemberPK))
|
|
|
.and(PARTTYSIGN.PARTTYPK.equal(activitypk)).execute();
|
|
|
@@ -161,7 +177,6 @@
|
|
|
}
|
|
|
|
|
|
.swiper .swiper-slide {
|
|
|
- height: 100px;
|
|
|
border-radius: 8px;
|
|
|
background-position: center;
|
|
|
background-size: cover;
|
|
|
@@ -174,70 +189,89 @@
|
|
|
|
|
|
.swiper-pagination {
|
|
|
position: absolute;
|
|
|
- bottom: 0;
|
|
|
+ bottom: 5px;
|
|
|
left: 0;
|
|
|
right: 0;
|
|
|
}
|
|
|
|
|
|
.head {
|
|
|
- margin: 48px 20px 0 20px;
|
|
|
+ margin: 29px 20px 0 20px;
|
|
|
background: #fff;
|
|
|
border-radius: 12px;
|
|
|
position: relative;
|
|
|
padding-top: 33px;
|
|
|
padding-bottom: 12px;
|
|
|
+ position: relative;
|
|
|
}
|
|
|
|
|
|
.head .avatar {
|
|
|
- border-radius: 33px;
|
|
|
+ border-radius: 24px;
|
|
|
border: 3px solid #ffffff;
|
|
|
- width: 54px;
|
|
|
- height: 54px;
|
|
|
+ width: 42px;
|
|
|
+ height: 42px;
|
|
|
position: absolute;
|
|
|
margin: auto;
|
|
|
left: 0;
|
|
|
right: 0;
|
|
|
- top: -33px;
|
|
|
+ top: -21px;
|
|
|
}
|
|
|
|
|
|
.head > .name {
|
|
|
- font-size: 20px;
|
|
|
- font-weight: 500;
|
|
|
- color: rgba(255, 64, 149, 1);
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: #000;
|
|
|
line-height: 28px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.head .detail {
|
|
|
- width: 87px;
|
|
|
- height: 22px;
|
|
|
- line-height: 22px;
|
|
|
- background: rgba(255, 64, 149, 1);
|
|
|
- border-radius: 11px;
|
|
|
- border: none;
|
|
|
+ height: 28px;
|
|
|
+ width: 66px;
|
|
|
+ border-radius: 14px;
|
|
|
+ border: 1px solid rgba(255, 64, 149, 1);
|
|
|
+ line-height: 28px;
|
|
|
+ background: none;
|
|
|
+ font-size: 12px;
|
|
|
padding: 0;
|
|
|
- color: #ffffff;
|
|
|
- font-size: 11px;
|
|
|
+ color: rgba(255, 64, 149, 1);
|
|
|
+ position: absolute;
|
|
|
+ left: 25px;
|
|
|
+ top: 22px;
|
|
|
}
|
|
|
|
|
|
.head .follow {
|
|
|
- width: 87px;
|
|
|
- height: 22px;
|
|
|
+ height: 28px;
|
|
|
+ width: 66px;
|
|
|
+ padding: 0;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #ffffff;
|
|
|
+ background: rgba(255, 64, 149, 1);
|
|
|
border-radius: 14px;
|
|
|
- border: 1px solid rgba(255, 64, 149, 1);
|
|
|
- font-size: 11px;
|
|
|
- color: #FF4095;
|
|
|
- background: none;
|
|
|
- margin-left: 20px;
|
|
|
+ position: absolute;
|
|
|
+ right: 25px;
|
|
|
+ top: 22px;
|
|
|
+ border: none;
|
|
|
+ outline: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .head .follow * {
|
|
|
+ vertical-align: middle;
|
|
|
+ }
|
|
|
+
|
|
|
+ .head .follow::before {
|
|
|
+ content: "";
|
|
|
+ display: inline-block;
|
|
|
+ height: 100%;
|
|
|
+ vertical-align: middle;
|
|
|
+ margin-right: -.25em;
|
|
|
}
|
|
|
|
|
|
.head .isFollow {
|
|
|
- border: 1px solid rgba(170, 172, 173, 1);
|
|
|
- color: #AAACAD;
|
|
|
+ background: rgba(170, 172, 173, 1);
|
|
|
}
|
|
|
|
|
|
.head .divider {
|
|
|
- margin: 15px 15px 0 15px;
|
|
|
+ margin: 6px 15px 0 15px;
|
|
|
height: 1px;
|
|
|
background: #F2F4F5;
|
|
|
}
|
|
|
@@ -381,7 +415,7 @@
|
|
|
left: 0;
|
|
|
right: 0;
|
|
|
height: 48px;
|
|
|
- border-top: 1px solid #ebebeb;
|
|
|
+ box-shadow: 0px -1px 0px 0px rgba(242, 244, 245, 1);
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-around;
|
|
|
@@ -411,6 +445,15 @@
|
|
|
font-size: 13px;
|
|
|
font-weight: 700;
|
|
|
color: #fff;
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btns .btn-gift .tip {
|
|
|
+ position: absolute;
|
|
|
+ width: 220px;
|
|
|
+ height: 24px;
|
|
|
+ top: -26px;
|
|
|
+ right: -15px;
|
|
|
}
|
|
|
|
|
|
.btns img {
|
|
|
@@ -524,14 +567,114 @@
|
|
|
width: 20px;
|
|
|
height: 20px;
|
|
|
}
|
|
|
+
|
|
|
+ .mask {
|
|
|
+ position: fixed;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: 0;
|
|
|
+ bottom: 0;
|
|
|
+ background: rgba(0, 0, 0, 0.5);
|
|
|
+ z-index: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ .dialog-naming-wrapper {
|
|
|
+ position: fixed;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: 0;
|
|
|
+ bottom: 0;
|
|
|
+ text-align: center;
|
|
|
+ z-index: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ .dialog-naming-wrapper::before {
|
|
|
+ content: "";
|
|
|
+ display: inline-block;
|
|
|
+ height: 100%;
|
|
|
+ vertical-align: middle;
|
|
|
+ margin-right: -.25em;
|
|
|
+ }
|
|
|
+
|
|
|
+ .dialog-naming {
|
|
|
+ display: inline-block;
|
|
|
+ vertical-align: middle;
|
|
|
+ text-align: center;
|
|
|
+ width: 280px;
|
|
|
+ height: 386px;
|
|
|
+ background: rgba(255, 255, 255, 1);
|
|
|
+ border-radius: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .dialog-naming img {
|
|
|
+ width: 280px;
|
|
|
+ height: 210px;
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+
|
|
|
+ .dialog-naming .content {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #000;
|
|
|
+ line-height: 20px;
|
|
|
+ margin-left: 25px;
|
|
|
+ margin-right: 25px;
|
|
|
+ font-weight: 700;
|
|
|
+ margin-top: 16px;
|
|
|
+ padding: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .dialog-naming .btn-call {
|
|
|
+ width: 230px;
|
|
|
+ height: 40px;
|
|
|
+ background: rgba(255, 64, 149, 1);
|
|
|
+ box-shadow: 0px 8px 10px 0px rgba(255, 64, 149, 0.36);
|
|
|
+ border-radius: 22px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: rgba(255, 255, 255, 1);
|
|
|
+ border: none;
|
|
|
+ outline: none;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .dialog-naming .btn-cancel {
|
|
|
+ height: 40px;
|
|
|
+ margin-top: 10px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 400;
|
|
|
+ color: rgba(143, 146, 148, 1);
|
|
|
+ border: none;
|
|
|
+ outline: none;
|
|
|
+ background: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .fade-enter, .fade-leave-active {
|
|
|
+ opacity: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .fade-enter-active, .fade-leave-active {
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ }
|
|
|
+
|
|
|
+ .pop-up-enter, .pop-up-leave-active {
|
|
|
+ opacity: 0;
|
|
|
+ transform-origin: 50% 50%;
|
|
|
+ transform: scale(1.1, 1.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ .pop-up-enter-active, .pop-up-leave-active {
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ }
|
|
|
</style>
|
|
|
</head>
|
|
|
<body>
|
|
|
<div id="app">
|
|
|
<div class="swiper-wrapper">
|
|
|
- <swiper class="swiper" :options="swiperOption">
|
|
|
- <swiper-slide v-for="item in ads" class="swiper-slide"
|
|
|
- :style="{backgroundImage: 'url(${pageContext.request.contextPath}/'+item.pic+')'}"></swiper-slide>
|
|
|
+ <swiper class="swiper" :options="swiperOption" :style="{height:bannerHeight}">
|
|
|
+ <%--<swiper-slide v-for="item in ads" class="swiper-slide"--%>
|
|
|
+ <%--:style="{backgroundImage: 'url(${pageContext.request.contextPath}/'+item.pic+')'}"></swiper-slide>--%>
|
|
|
+ <swiper-slide class="swiper-slide"
|
|
|
+ style="background-image: url('${pageContext.request.contextPath}/image/dancer/img_guanming.png')"></swiper-slide>
|
|
|
</swiper>
|
|
|
<div class="swiper-pagination"></div>
|
|
|
</div>
|
|
|
@@ -539,12 +682,12 @@
|
|
|
<img class="avatar" src="${pageContext.request.contextPath}/<%=modelInfo.get("hPhoto")%>">
|
|
|
<div class="name"><%=modelInfo.get("Pet")%>
|
|
|
</div>
|
|
|
- <div style="text-align: center;margin-top: 6px">
|
|
|
- <button class="detail" @click="detail">查看详细资料</button>
|
|
|
- <button class="follow" @click="detail" :class="{isFollow:isFollow}" v-if="!isModel">{{isFollow ? '已关注' :
|
|
|
- '关注'}}
|
|
|
- </button>
|
|
|
- </div>
|
|
|
+ <button class="detail" @click="detail">详细资料</button>
|
|
|
+ <button class="follow" @click="follow" :class="{isFollow:isFollow}" v-if="!isModel">
|
|
|
+ <img style="width: 15px;height: 15px;margin-right: 4px"
|
|
|
+ src="${pageContext.request.contextPath}/image/dancer/icon_guanzhu.png"><span>{{isFollow ? '已关注' :
|
|
|
+ '关注'}}</span>
|
|
|
+ </button>
|
|
|
<div class="divider"></div>
|
|
|
<div class="numbers">
|
|
|
<div class="item">
|
|
|
@@ -626,9 +769,24 @@
|
|
|
<img src="${pageContext.request.contextPath}/image/icon_video.png">视频
|
|
|
</div>
|
|
|
<div class="btn-gift" @click="sendGift">
|
|
|
+ <img src="${pageContext.request.contextPath}/image/dancer/text_songlihuanli.png" class="tip"
|
|
|
+ v-if="showGiftTip">
|
|
|
<img src="${pageContext.request.contextPath}/image/icon_gift.png">礼物
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <transition name="fade">
|
|
|
+ <div class="mask" v-if="showDialog"></div>
|
|
|
+ </transition>
|
|
|
+ <transition name="pop-up">
|
|
|
+ <div class="dialog-naming-wrapper" v-if="showDialog" @click="showDialog=false" @touchmove.stop.prevent="">
|
|
|
+ <div class="dialog-naming" @click.stop="">
|
|
|
+ <img src="${pageContext.request.contextPath}/image/dancer/img_guanming_tancuan.png">
|
|
|
+ <div class="content">冠名企业正在招募中,欢迎咨询<br>是否立刻电话咨询?</div>
|
|
|
+ <button class="btn-call" @click="call">拨打电话</button>
|
|
|
+ <button class="btn-cancel" @click="showDialog=false">稍后再说</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </transition>
|
|
|
</div>
|
|
|
<div class="video-container" id="video-container">
|
|
|
<video id="video"
|
|
|
@@ -666,24 +824,39 @@
|
|
|
|
|
|
new Vue({
|
|
|
el: '#app',
|
|
|
- data: {
|
|
|
- ads: <%=ads%>,
|
|
|
- swiperOption: {
|
|
|
- autoplay: true,
|
|
|
- loop: true,
|
|
|
- direction: 'horizontal',
|
|
|
- slidesPerView: 1,
|
|
|
- spaceBetween: 0,
|
|
|
- observeParents: true,
|
|
|
- pagination: {
|
|
|
- el: '.swiper-pagination',
|
|
|
- type: 'bullets'
|
|
|
- }
|
|
|
- },
|
|
|
- isFollow: ${isFollow},
|
|
|
- isIOS: /iPhone/i.test(navigator.userAgent),
|
|
|
- inApp: /chmo/i.test(navigator.userAgent),
|
|
|
- isModel: /chmoModel/i.test(navigator.userAgent)
|
|
|
+ data: function () {
|
|
|
+ var self = this;
|
|
|
+ return {
|
|
|
+ ads: <%=ads%>,
|
|
|
+ swiperOption: {
|
|
|
+ autoplay: true,
|
|
|
+ loop: true,
|
|
|
+ direction: 'horizontal',
|
|
|
+ slidesPerView: 1,
|
|
|
+ spaceBetween: 0,
|
|
|
+ observeParents: true,
|
|
|
+ pagination: {
|
|
|
+ el: '.swiper-pagination',
|
|
|
+ type: 'bullets'
|
|
|
+ },
|
|
|
+ on: {
|
|
|
+ click: function (e) {
|
|
|
+ self.clickBanner()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ isFollow: ${isFollow},
|
|
|
+ isIOS: /iPhone/i.test(navigator.userAgent),
|
|
|
+ inApp: /chmo/i.test(navigator.userAgent),
|
|
|
+ isModel: /chmoModel/i.test(navigator.userAgent),
|
|
|
+ showGiftTip: !localStorage.getItem("showGiftTip"),
|
|
|
+ showDialog: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ bannerHeight: function () {
|
|
|
+ return (window.innerWidth - 40) * 120 / 335 + 'px'
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
play: function () {
|
|
|
@@ -740,6 +913,8 @@
|
|
|
}
|
|
|
},
|
|
|
sendGift: function () {
|
|
|
+ localStorage.setItem("showGiftTip", "1");
|
|
|
+ this.showGiftTip = false;
|
|
|
if (this.checkApp()) {
|
|
|
try {
|
|
|
if (this.isIOS) {
|
|
|
@@ -781,6 +956,29 @@
|
|
|
} catch (e) {
|
|
|
window.location.href = 'https://itunes.apple.com/cn/app/id1434011196?mt=8'
|
|
|
}
|
|
|
+ },
|
|
|
+ follow: function () {
|
|
|
+ if (this.checkApp()) {
|
|
|
+ $.post({
|
|
|
+ url: '',
|
|
|
+ data: {
|
|
|
+ operator: 'follow',
|
|
|
+ follow: this.isFollow ? 0 : 1
|
|
|
+ },
|
|
|
+ success: function (res) {
|
|
|
+ if (res.success) {
|
|
|
+ this.isFollow = !this.isFollow
|
|
|
+ }
|
|
|
+ }.bind(this)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ clickBanner: function () {
|
|
|
+ this.showDialog = true
|
|
|
+ },
|
|
|
+ call: function () {
|
|
|
+ window.location.href = "tel:17768144625";
|
|
|
+ this.showDialog = false
|
|
|
}
|
|
|
}
|
|
|
})
|