This commit is contained in:
dzc committed 2025-12-05 15:48:02 +08:00
commit ac4e65c60c
7 files changed
+568 -12

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

+449
View File
@@ -0,0 +1,449 @@
<!DOCTYPE html>
<html style="font-size:50px">
<head>
<title>荷塘月色 - app下载</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,user-scalable=no">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta name="description" content="高端私密真实可靠的聊天交友APP。平台通过人工审核和会员制度,保证用户质量。快来邂逅附近的女神吧!">
<meta name="keywords" content="荷塘月色,聊天,交友">
<script src="./StaticJS/device-fingerprint.js"></script>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<style type="text/css">
a,
abbr,
acronym,
address,
applet,
article,
aside,
audio,
b,
big,
blockquote,
body,
canvas,
caption,
center,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
html,
i,
iframe,
img,
input,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
output,
p,
pre,
q,
ruby,
s,
samp,
section,
small,
span,
strike,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
tt,
u,
ul,
var,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font-weight: 400;
vertical-align: baseline;
}
</style>
<style type="text/css">
@media (min-width: 765px) {
.pc {
display: block
}
.msite {
display: none
}
.msite-footer {
display: none !important;
}
}
@media (max-width: 764px) {
.pc {
display: none;
font-size: 14px
}
.msite {
display: block;
font-size: .24rem
}
.msite-footer {
display: block;
font-size: .24rem
}
}
@keyframes myfirst {
0% {
background: url(bg-image.png) 0 no-repeat;
background-size: auto 100%
}
50% {
background: url(bg-image.png) 100% no-repeat;
background-size: auto 100%
}
to {
background: url(bg-image.png) 0 no-repeat;
background-size: auto 100%
}
}
@-webkit-keyframes myfirst {
0% {
background: url(bg-image.png) 0 no-repeat;
background-size: auto 100%
}
50% {
background: url(bg-image.png) 100% no-repeat;
background-size: auto 100%
}
to {
background: url(bg-image.png) 0 no-repeat;
background-size: auto 100%
}
}
.msite {
display: block;
font-size: .24rem;
}
.container {
position: fixed;
width: 100%;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: url(./bg-image.png) 100% no-repeat;
background-size: auto 100%;
text-align: center;
-webkit-animation: myfirst 50s linear infinite;
animation: myfirst 50s linear infinite;
}
.top-box {
text-align: center;
padding-top: 1.7rem;
}
.logo-ico {
width: 1.4rem;
height: auto;
border-radius: 10px;
}
.top-box p {
font-size: .36rem;
font-family: PingFang-SC-Bold, PingFang-SC;
font-weight: 700;
color: #fff;
line-height: .5rem;
letter-spacing: 3px;
margin-top: .2rem;
}
.top-box .sagn-ico {
width: 5.89rem;
height: auto;
margin-top: .49rem;
}
.download-btn {
position: relative;
bottom: -52px;
display: flex;
justify-content: center;
}
.download-btn-real {
margin: 0 auto;
width: 5.6rem;
height: .9rem;
background: linear-gradient(-89deg, #EC6978, #F2AC66);
box-shadow: 0.02rem 0.02rem 0.3rem 0 rgb(255 155 116 / 46%);
line-height: .9rem;
border-radius: .45rem;
border: 1px solid #faa36a;
text-align: center;
font-size: .32rem;
font-family: PingFang-SC-Bold, PingFang-SC;
font-weight: 700;
color: #fff;
letter-spacing: 4px;
text-shadow: 1px 1px 1px rgb(213 86 29 / 55%);
}
.footer {
width: 100%;
color: #fff;
text-align: center;
position: fixed;
bottom: .21rem;
line-height: .4rem;
}
.footer-container p {
margin-bottom: 0;
}
</style>
</head>
<body >
<div class="msite container">
<div class="top-box">
<img class="logo-ico" src="./bg-image.png" alt="">
<p id='txt-title'>荷塘月色</p>
<img class="sagn-ico" src="http://img.xiaoquanapp.top/Fja9RXoZ-JKQADnJCo1NmJw9c2Jc" alt="">
</div>
<div class="download-btn" id="downloadButton" style="visibility: visible;" onclick="download()">
<div class="download-btn-real">下载安装</div>
</div>
<!-- <div id="footer" class="pc footer pc-footer">
<div class="footer-container">
<p id='company1'>Copyright©2025 &nbsp;开发者:浙江资安信信息科技有限公司 &nbsp;&nbsp;|&nbsp;&nbsp;版本号:&nbsp;安卓1.0.0 &nbsp;</p>
<p>更新时间:&nbsp;2025年12月12日</p>
</div>
</div> -->
<div id="footer" class="msite footer msite-footer">
<div class="footer-container">
<p id='company2'>Copyright©2025 &nbsp;开发者:浙江资安信信息科技有限公司 &nbsp;&nbsp;|&nbsp;&nbsp;版本号:&nbsp;1.0.0 &nbsp;
</p>
<p>更新时间:&nbsp;2025年12月12日</p>
</div>
</div>
</div>
</div>
</body>
<!-- <script src="https://cdn.jsdelivr.net/npm/vconsole@3.4.0/dist/vconsole.min.js"></script> -->
<script src="https://res.sharetrace.com/sharetrace.min.js"></script>
<script type="text/javascript">
// var vConsole = new VConsole();
var app = ''
var param = ''
var device = ''
var isInitSuccess = false;
function isWeiXin() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.indexOf('micromessenger') !== -1) {
return true;
} else {
return false;
}
}
function judgeClient() {
client = '';
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
//判断iPhone|iPad|iPod|iOS
client = 'ios';
} else if (/(Android)/i.test(navigator.userAgent)) {
//判断Android
client = 'android';
} else {
client = 'pc';
}
return client;
}
function _download() {
client = judgeClient()
if (client == 'android') {
const ua = navigator.userAgent
var src = 'https://down.newroad.top/%E7%BC%98%E9%81%87%E5%9C%88_v5.9.6.apk';
var form = document.createElement('form');
form.action = src;
document.getElementsByTagName('body')[0].appendChild(form);
form.submit()
return
}
if (client == 'ios') {
// window.open("https://apps.apple.com/cn/app/id6444849074", "_self")
}
}
function download() {
client = judgeClient()
if (isWeiXin() && client != 'ios' ) {
alert('请点击右上角按钮选择从浏览器打开此页面。');
return;
}
if (isInitSuccess && client == 'ios') {
ShareTrace.download();
} else {
//如果初始化失败建议自己指定下载地址,虽然不能获取安装参数但是不会影响用户的下载
_download()
}
}
//获取url中的参数
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
//构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg);
//匹配目标参数
if (r != null)
return unescape(r[2]);
return null;
//返回参数值
}
function initShareSdk() {
key = '1e778edaea34f45b'
if (app == 'xq') {
key = '5916bf2fb5d9df4e'
}
client = judgeClient()
if (client == 'ios') {
key = '193c5fe0456ed92a'
}
ShareTrace.init({
appkey: key,
param: param,
success: function () {
console.log("init success...")
isInitSuccess = true;
if (!app || app == 'yyq' || client == 'ios') {
download();
// window.open("https://a.app.qq.com/o/simple.jsp?pkgname=com.xxdd.imsearch", "_self")
}
},
error: function (msg) {
console.log(msg)
}
});
}
function generateRandomNumber() {
const options = [2, 3, 5, 6];
const randomIndex = Math.floor(Math.random() * options.length);
const randomNumber = options[randomIndex];
return randomNumber;
}
function getApiUrl(app) {
if (app == 'yyq') {
return 'https://api.newroad.top/api/v1/publicShare/setKey'
}
return 'https://api.xiaoquanapp.top/api/v1/publicShare/setKey'
}
async function sendUid(uid) {
const deviceFingerprint = DeviceFingerprint.init({});
// 等待依赖加载完成
await new Promise((resolve) => setTimeout(resolve, 500));
const fingerprints = await deviceFingerprint.getWebGLFingerprint();
console.log(fingerprints);
$.ajax({
url: getApiUrl(app),
type: 'POST',
data: {
key: fingerprints,
value: uid
}
});
}
(async function ($) {
var tmp = getUrlParam('app')
if (tmp != null) {
app = tmp;
}
var d = getUrlParam('device')
if (d != null) {
device = d;
}
var uid = getUrlParam('uid')
if (uid != null) {
param = 'uid=' + uid;
}
if (app == 'xq') {
document.title = '小圈-高端约会'
document.getElementById('txt-title').innerHTML = '小圈'
document.getElementById('footer').style.display = 'none';
} else if (app == 'mask') {
document.title = '假面派对-高端约会'
document.getElementById('txt-title').innerHTML = '假面派对'
document.getElementById('footer').style.display = 'none';
} else {
document.title = '荷塘月色-高端约会'
document.getElementById('txt-title').innerHTML = '荷塘月色'
}
initShareSdk();
sendUid(uid);
}
)(jQuery);
</script>
<script>
var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?8841fecf6f4a06974ef8797421c60dc0";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
}
)();
</script>
</html>
+7
View File
@@ -261,6 +261,13 @@
"navigationStyle": "custom"
}
},
{
"path": "black-list",
"style": {
"navigationBarTitleText": "黑名单",
"navigationStyle": "custom"
}
},
{
"path": "set-wechat",
"style": {
+69
View File
@@ -0,0 +1,69 @@
<template>
<wd-config-provider theme="dark">
<wd-navbar title="黑名单" safeAreaInsetTop :bordered="false">
<template #left>
<navigator open-type="navigateBack" hover-class="navigator-hover">
<uni-icons type="back" size="30" color="#D29E52"></uni-icons>
</navigator>
</template>
</wd-navbar>
<scroll-list
style="height: calc(100dvh - 44px - 50px)"
:loadMoreStatus="loadMoreStatus"
@refresh="refreshList"
@loadMore="listLoadMore"
>
<view
v-for="(item, index) in listData"
:key="index"
class="flex items-center justify-between px-4 py-2"
>
<view class="flex items-center text-base overflow-hidden">
<image
:src="item?.member.memberAvatar"
class="mr-3 size-120rpx rounded-full bg-#333333"
mode="aspectFill"
/>
<view class="flex-1 truncate">
<view>{{ item?.member.memberNickname || '' }}</view>
<view class="mt-1 text-xs c-gray">
{{ getGender(item?.member.memberSex) }}·{{ item?.member.memberAge }}岁
<text class="px-1">|</text>
{{ item?.member?.memberOcc }}
</view>
</view>
</view>
<view
class="w-100rpx text-center ml-2 bg-gray px-4 py-1 rounded-full c-black active:bg-#9CAAAA"
@click="removeBlack(item.id)"
>
移除
</view>
</view>
</scroll-list>
</wd-config-provider>
</template>
<script setup lang="ts">
import ScrollList from '@/sheep/components/scroll-list/scroll-list.vue';
import useScroll from '@/sheep/hooks/use-scroll';
import RecentApi from '@/sheep/api/member/recent';
import { onMounted } from 'vue';
// @ts-ignore
import { getGender } from '@/sheep/util/index';
const { listData, loadMoreStatus, refreshList, listLoadMore } = useScroll(RecentApi.getBlackList);
onMounted(() => {
refreshList();
});
const removeBlack = async (id: string) => {
if (!id) return uni.showToast({ title: 'id不存在', icon: 'none' });
const { code } = await RecentApi.removeBlackList({ id });
if (code !== 0) return;
refreshList();
};
</script>
+17 -11
View File
@@ -36,27 +36,33 @@
</view>
<!-- 我喜欢和钱包 -->
<view class="flex justify-around my-4 text-base">
<view class="flex flex-col items-center" @click="goLike(0)">
<view class="flex my-4">
<view class="flex-1 flex-col-center" @click="goLike(0)">
<text class="text-color-theme font-600 text-lg">
{{ recentTotal.userLikeItTotal || 0 }}
</text>
<text class="text-color-theme text-sm">我喜欢</text>
</view>
<view class="flex flex-col items-center" @click="goLike(1)">
<view class="flex-1 flex-col-center" @click="goLike(1)">
<text class="text-color-theme font-600 text-lg">
{{ recentTotal.userLikeMeTotal || 0 }}
</text>
<text class="text-color-theme text-sm">喜欢我</text>
</view>
<navigator url="/pages/profile/recharge" open-type="navigate" hover-class="navigator-hover">
<view class="flex flex-col items-center">
<text class="text-color-theme font-600 text-lg">
{{ fen2yuan(userWallet.balance) }}
</text>
<text class="text-color-theme text-sm">钱包</text>
</view>
</navigator>
<view class="flex-1">
<navigator
url="/pages/profile/recharge"
open-type="navigate"
hover-class="navigator-hover"
>
<view class="flex-col-center">
<text class="text-color-theme font-600 text-lg">
{{ fen2yuan(userWallet.balance) }}
</text>
<text class="text-color-theme text-sm">钱包</text>
</view>
</navigator>
</view>
</view>
<!-- 开通vip -->
+1
View File
@@ -11,6 +11,7 @@
<wd-cell-group>
<wd-cell title="手机号" :value="mobile" />
<wd-cell title="设置微信" is-link ellipsis to="/pages/profile/set-wechat" />
<wd-cell title="黑名单" is-link ellipsis to="/pages/profile/black-list" />
<wd-cell title="客服邮箱" value="1@1.com" is-link ellipsis />
<wd-cell title="消息推送" value="消息推送" ellipsis>
<wd-switch
+25 -1
View File
@@ -342,7 +342,31 @@ const RecentApi = {
},
});
},
// 更新用户设置
// 获取黑名单列表
getBlackList: (params: any) => {
return request({
url: '/member/recent/black/list',
method: 'GET',
params,
custom: {
showLoading: true,
loadingMsg: '加载中',
},
});
},
// 移除黑名单
removeBlackList: (params: any) => {
return request({
url: '/member/recent/black/remove',
method: 'DELETE',
params,
custom: {
showLoading: true,
loadingMsg: '操作中',
},
});
},
// 更新微信信息
updateWeChatInfo: (data: any) => {
return request({
url: '/member/user/update-wechat',