Merge branch 'master' of https://gitea.zianxin.com/zax/Friendship-and-chat-uniapp
This commit is contained in:
commit
ac4e65c60c
7 files changed
+568
-12
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -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 开发者:浙江资安信信息科技有限公司 | 版本号: 安卓1.0.0 </p>
|
||||
<p>更新时间: 2025年12月12日</p>
|
||||
</div>
|
||||
</div> -->
|
||||
<div id="footer" class="msite footer msite-footer">
|
||||
<div class="footer-container">
|
||||
<p id='company2'>Copyright©2025 开发者:浙江资安信信息科技有限公司 | 版本号: 1.0.0
|
||||
</p>
|
||||
<p>更新时间: 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>
|
||||
@@ -261,6 +261,13 @@
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "black-list",
|
||||
"style": {
|
||||
"navigationBarTitleText": "黑名单",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "set-wechat",
|
||||
"style": {
|
||||
|
||||
@@ -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>
|
||||
@@ -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 -->
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in new issue
Block a user