diff --git a/@logo/base-poster.svg b/@logo/base-poster.svg
new file mode 100644
index 00000000..df2d06bc
--- /dev/null
+++ b/@logo/base-poster.svg
@@ -0,0 +1,84 @@
+
diff --git a/@logo/logo.png b/@logo/logo.png
new file mode 100644
index 00000000..87d09d09
Binary files /dev/null and b/@logo/logo.png differ
diff --git a/src/pages.json b/src/pages.json
index 9f87df87..b9bfcdd3 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -12,83 +12,6 @@
}
},
"pages": [
- // {
- // "path": "pages/index/index",
- // "aliasPath": "/",
- // "style": {
- // "navigationBarTitleText": "首页",
- // "enablePullDownRefresh": true
- // },
- // "meta": {
- // "auth": false,
- // "sync": true,
- // "title": "首页",
- // "group": "商城"
- // }
- // },
- // {
- // "path": "pages/index/user",
- // "style": {
- // "navigationBarTitleText": "个人中心",
- // "enablePullDownRefresh": true
- // },
- // "meta": {
- // "sync": true,
- // "title": "个人中心",
- // "group": "商城"
- // }
- // },
- // {
- // "path": "pages/index/category",
- // "style": {
- // "navigationBarTitleText": "商品分类"
- // },
- // "meta": {
- // "sync": true,
- // "title": "商品分类",
- // "group": "商城"
- // }
- // },
- // {
- // "path": "pages/index/cart",
- // "style": {
- // "navigationBarTitleText": "购物车"
- // },
- // "meta": {
- // "sync": true,
- // "title": "购物车",
- // "group": "商城"
- // }
- // },
- // {
- // "path": "pages/index/login",
- // "style": {
- // "navigationBarTitleText": "登录"
- // }
- // },
- // {
- // "path": "pages/index/search",
- // "style": {
- // "navigationBarTitleText": "搜索"
- // },
- // "meta": {
- // "sync": true,
- // "title": "搜索",
- // "group": "商城"
- // }
- // },
- // {
- // "path": "pages/index/page",
- // "style": {
- // "navigationBarTitleText": ""
- // },
- // "meta": {
- // "auth": false,
- // "sync": true,
- // "title": "自定义页面",
- // "group": "商城"
- // }
- // },
// #ifdef MP-WEIXIN
{
"path": "pages/wechat-tabbar/index",
diff --git a/src/pages/components/user-look-wechat.vue b/src/pages/components/user-look-wechat.vue
new file mode 100644
index 00000000..3b820927
--- /dev/null
+++ b/src/pages/components/user-look-wechat.vue
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+ {{ user.member.wechatNum || '*************' }}
+
+
+ 成为
+ VIP
+ 免费解锁
+
+
+ 已解锁对方微信
+
+
+
+ 解锁
+
+
+ 查看
+
+
+
+
+
+
+
+
+
+ {{ user.member.wechatNum || '*************' }}
+
+
+
+
+ 今日vip特权已使用{{ lookWechatDetail.todayCount }}/{{
+ lookWechatDetail.todayCountTotal }}次
+
+ 使用VIP特权免费解锁
+
+
+
+
+
+
+
+ {{ user.member.wechatNum || '*************'
+ }}
+
+
+ 解锁微信只能展示24小时
+ 添加备注"荷塘月色App"会快速通过哟
+
+ 今日vip特权已使用{{ lookWechatDetail.todayCount }}/{{
+ lookWechatDetail.todayCountTotal }}次
+
+ 复制微信号
+
+
+ 搜索不到微信?点击【
+ 立即举报
+ 】退还次数
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/home/city.vue b/src/pages/home/city.vue
index 9f35156b..f0340dfa 100644
--- a/src/pages/home/city.vue
+++ b/src/pages/home/city.vue
@@ -1,96 +1,120 @@
-
-
+
+
- 热门城市
+
+
+
+ {{ userCity?.t || '未选择' }}
+
+ 当前位置
+
+ 热门城市
-
+
{{ item.t }}
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/home/detail.vue b/src/pages/home/detail.vue
index 50229439..c0c4a79c 100644
--- a/src/pages/home/detail.vue
+++ b/src/pages/home/detail.vue
@@ -436,8 +436,7 @@ const goChat = async () => {
});
return;
}
-
- uni.navigateTo({ url: '/pages/message/chat-box?chatIdx=' + chatIdx });
+ uni.navigateTo({ url: `/pages/message/chat-box?chatIdx=${chatIdx}&memberId=${userDetail.value.memberId}` });
});
};
diff --git a/src/pages/login/login.vue b/src/pages/login/login.vue
index 2f8a2b8b..a2bbf942 100644
--- a/src/pages/login/login.vue
+++ b/src/pages/login/login.vue
@@ -15,8 +15,8 @@
-
-
+
+
获取验证码 ({{ countDown }}s)
diff --git a/src/pages/message/chat-box.vue b/src/pages/message/chat-box.vue
index 89e7f45f..aae538c3 100644
--- a/src/pages/message/chat-box.vue
+++ b/src/pages/message/chat-box.vue
@@ -13,36 +13,21 @@
+
+
-
+
+
-
+
@@ -53,12 +38,7 @@
-
+
@@ -67,81 +47,43 @@
-
+
-
+
-
+
-
-
+
-
+
文件
-
+
相册
-
+
拍摄
@@ -154,11 +96,8 @@
送礼物
-
+
回执消息
@@ -179,53 +118,27 @@
-
+
-
+
-
+
-
+
-
+
礼物
@@ -233,22 +146,14 @@
{{ (userWallet.balance / 100.0).toFixed(2).replace(/\.?0+$/, '') }}
-
+
充值
-
+
{{ item.title }}
@@ -263,1343 +168,1359 @@
diff --git a/src/pages/message/components/user-info-car.vue b/src/pages/message/components/user-info-car.vue
new file mode 100644
index 00000000..8e27f14c
--- /dev/null
+++ b/src/pages/message/components/user-info-car.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ 基本资料:
+ {{ user?.member?.memberAge }}岁
+
+ {{ user?.member?.memberHeight }}cm
+
+
+
+
+
+ 所在城市:
+ {{ user?.member?.memberCity }}
+
+
+
+
+
+
+ 已认证
+
+
+
+
+
+
+
+
+
+
+ 相册暂无照片
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/message/components/warning-car.vue b/src/pages/message/components/warning-car.vue
new file mode 100644
index 00000000..d5985767
--- /dev/null
+++ b/src/pages/message/components/warning-car.vue
@@ -0,0 +1,9 @@
+
+
+ 请勿通过平台进行非法交易,如被举报核实将作封号处理。任何私下交易行为,请谨慎判断,以防人身或财产损失
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/tabbar/components/scroll-moment.vue b/src/pages/tabbar/components/scroll-moment.vue
index 38c008a2..1ce080ba 100644
--- a/src/pages/tabbar/components/scroll-moment.vue
+++ b/src/pages/tabbar/components/scroll-moment.vue
@@ -1,109 +1,85 @@
-
-
+
+
-
+
-
+
-
+
diff --git a/src/pages/tabbar/home.vue b/src/pages/tabbar/home.vue
index 6f56eb69..728054d8 100644
--- a/src/pages/tabbar/home.vue
+++ b/src/pages/tabbar/home.vue
@@ -13,9 +13,8 @@
-
(current = e.detail.current)" :duration="200" disable-touch>
+ @change="(e) => (current = e.detail.current)" :duration="200">
@@ -52,6 +51,7 @@ import { computed, ref } from 'vue';
import segmented from '@/sheep/components/segmented/segmented.vue';
import RecentApi from '@/sheep/api/member/recent';
import ScrollUser from './components/scroll-user.vue';
+import { requestPermission, gotoAppPermissionSetting } from "@/sheep/util/permission"
// @ts-ignore
import sheep from '@/sheep';
import { onLoad, onShow } from '@dcloudio/uni-app';
@@ -59,7 +59,20 @@ import { onLoad, onShow } from '@dcloudio/uni-app';
const current = ref(0);
const segmentedItems = ref([]);
const isOpenGPS = ref(true);
-const userCity = computed(() => sheep.$store('user').userCity);
+const userCity = computed(() => {
+ const selectCity = sheep.$store('user').userCity
+ if (selectCity && selectCity.t) return selectCity
+ const currentLocation = sheep.$store('user')?.userInfo?.currentLocation
+ if (!currentLocation) return null
+ const city = {
+ v: null,
+ t: currentLocation.city,
+ lng: String(currentLocation.lng),
+ lat: String(currentLocation.lat),
+ }
+ sheep.$store('user').setUserCity(city);
+ return city
+});
onLoad(async () => {
// 获取顶部导航栏tab菜单
@@ -78,6 +91,7 @@ const getLocation = () => {
uni.getLocation({
geocode: true,
success: (res) => {
+ console.log("位置授权:", res);
const params = {
lat: String(res.latitude),
lon: String(res.longitude),
@@ -95,39 +109,17 @@ const getLocation = () => {
});
};
-const openSystemGPS = () => {
+const openSystemGPS = async () => {
// #ifdef APP-PLUS || MP-WEIXIN
- const system = uni.getSystemInfoSync();
- if (system.platform === 'android') {
- // 安卓手机授权之后还需打开定位服务功能GPS
- const context: any = plus.android.importClass('android.content.Context');
- const locationManager: any = plus.android.importClass('android.location.LocationManager');
- const main: any = plus.android.runtimeMainActivity();
- const mainSvr = main.getSystemService(context.LOCATION_SERVICE);
- if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
- if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
- const Intent: any = plus.android.importClass('android.content.Intent');
- const Settings: any = plus.android.importClass('android.provider.Settings');
- const intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
- main.startActivity(intent); // 打开系统设置GPS服务页面
- }
- }
- } else if (system.platform == 'ios') {
- // ios打开对应的通知栏
- uni.showModal({
- title: '定位权限开启提醒',
- content: '未开启定位,请前往设置!',
- confirmText: '去设置',
- success: function (res) {
- if (res.confirm) {
- const app = plus.ios.invoke('UIApplication', 'sharedApplication');
- const setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');
- plus.ios.invoke(app, 'openURL:', setting);
- plus.ios.deleteObject(setting);
- plus.ios.deleteObject(app);
- }
- },
- });
+ const permissionStatus = await requestPermission("location")
+ console.log("APP授权:", permissionStatus);
+ // 已拒绝|受限
+ if (permissionStatus === 'denied') {
+ gotoAppPermissionSetting()
+ }
+ // 已授权
+ if (permissionStatus === 'granted') {
+ isOpenGPS.value = true;
}
// #endif
// #ifdef H5
diff --git a/src/pages/tabbar/moments.vue b/src/pages/tabbar/moments.vue
index a9b0e0fa..5c82eb89 100644
--- a/src/pages/tabbar/moments.vue
+++ b/src/pages/tabbar/moments.vue
@@ -13,13 +13,8 @@
- (current = e.detail.current)"
- :duration="200"
- disable-touch
- >
+ (current = e.detail.current)" :duration="200" disable-touch>
@@ -28,20 +23,20 @@
diff --git a/src/pages/wechat-tabbar/index.vue b/src/pages/wechat-tabbar/index.vue
index 9bacea51..f51070a0 100644
--- a/src/pages/wechat-tabbar/index.vue
+++ b/src/pages/wechat-tabbar/index.vue
@@ -220,7 +220,7 @@ const getTradeConfig = async () => {
if (data.brokerageWithdrawMinPrice !== undefined) {
state.rule[1].title = `邀请奖励满${fen2yuanSimple(
data.brokerageWithdrawMinPrice,
- )}元可提现,3个月工作日内到账`;
+ )}元可提现,2个工作日内到账`;
}
if (data.brokerageFirstPercent !== undefined) {
state.rule[0].title = `通过链接/二维码邀请用户首次充值,可获得${data.brokerageFirstPercent || 50
diff --git a/src/pages/wechat/pages/components/gift-record-item.vue b/src/pages/wechat/pages/components/gift-record-item.vue
index 1f0878db..1d1959a2 100644
--- a/src/pages/wechat/pages/components/gift-record-item.vue
+++ b/src/pages/wechat/pages/components/gift-record-item.vue
@@ -2,7 +2,10 @@
礼物提现
- {{ fen2yuan(item.txPrice) }} 元
+
+ {{ fen2yuanSimple(item.txPrice) }}元
+ ({{ fen2yuanSimple(item.txYdPrice) }}缘豆)
+
diff --git a/src/pages/wechat/pages/withdraw.vue b/src/pages/wechat/pages/withdraw.vue
index 75bc7017..930749dd 100644
--- a/src/pages/wechat/pages/withdraw.vue
+++ b/src/pages/wechat/pages/withdraw.vue
@@ -6,8 +6,9 @@
-
+
历史记录
diff --git a/src/sheep/components/moment-card/moment-card.vue b/src/sheep/components/moment-card/moment-card.vue
index bfe38723..c2b0b7aa 100644
--- a/src/sheep/components/moment-card/moment-card.vue
+++ b/src/sheep/components/moment-card/moment-card.vue
@@ -1,28 +1,23 @@
-
+
- {{ member?.memberNickname }}
+
+ {{ member?.memberNickname }}
+
+
+
+ {{ item.tagTitle }}
+
+
+
{{ formatDate(data.createTime, 'YYYY-MM-DD HH:mm') }}
-
-
-
- {{ item.tagTitle }}
-
-
{{ getGender(member.memberSex) }}
·
@@ -35,14 +30,8 @@
{{ data.description }}
-
+
@@ -74,112 +63,112 @@
diff --git a/src/sheep/util/permission.ts b/src/sheep/util/permission.ts
new file mode 100644
index 00000000..df0d8937
--- /dev/null
+++ b/src/sheep/util/permission.ts
@@ -0,0 +1,138 @@
+type PermissionId = 'location';
+/**
+ * 权限请求状态
+ * - none: 未请求
+ * - granted: 已授权
+ * - denied: 已拒绝|受限
+ * - prompt: 未授权
+ */
+type RequestStatus = 'granted' | 'denied' | 'prompt';
+
+/**
+ * 跳转应用权限设置页面
+ */
+export const gotoAppPermissionSetting = () => {
+ const system = uni.getSystemInfoSync();
+ console.log('system:', system);
+ if (system.platform === 'ios') {
+ // @ts-ignore
+ const UIApplication = plus.ios.import('UIApplication');
+ const application2 = UIApplication.sharedApplication();
+ // @ts-ignore
+ const NSURL2 = plus.ios.import('NSURL');
+ const setting2 = NSURL2.URLWithString('app-settings:');
+ application2.openURL(setting2);
+ plus.ios.deleteObject(setting2);
+ plus.ios.deleteObject(NSURL2);
+ plus.ios.deleteObject(application2);
+ }
+ if (system.platform == 'android') {
+ const Intent = plus.android.importClass('android.content.Intent');
+ const Settings = plus.android.importClass('android.provider.Settings');
+ const Uri = plus.android.importClass('android.net.Uri');
+ const mainActivity = plus.android.runtimeMainActivity();
+ // @ts-ignore
+ const intent = new Intent();
+ // @ts-ignore
+ intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ // @ts-ignore
+ const uri = Uri.fromParts('package', mainActivity.getPackageName(), null);
+ intent.setData(uri);
+ // @ts-ignore
+ mainActivity.startActivity(intent);
+ }
+};
+
+export const requestPermission = (permissionId: PermissionId): Promise => {
+ const system = uni.getSystemInfoSync();
+ if (system.platform === 'android') {
+ return requestAndroid(permissionId);
+ }
+ if (system.platform === 'ios') {
+ return requestIos(permissionId);
+ }
+ return Promise.resolve('denied');
+};
+
+/******************************** ios相关 ********************************/
+
+const requestIos = (permissionId: PermissionId): Promise => {
+ return new Promise((resolve, reject) => {
+ switch (permissionId) {
+ case 'location':
+ resolve(iosLocation());
+ break;
+ default:
+ resolve('denied');
+ break;
+ }
+ });
+};
+
+/**
+ * 请求ios定位权限
+ * @returns 权限请求状态
+ */
+const iosLocation = (): RequestStatus => {
+ let result: RequestStatus = 'denied';
+ // @ts-ignore
+ const cllocationManger = plus.ios.import('CLLocationManager');
+ const enable = cllocationManger.locationServicesEnabled();
+ const status = cllocationManger.authorizationStatus();
+ if (!enable) {
+ result = 'denied';
+ } else if (status === 0) {
+ result = 'prompt';
+ } else if (status === 3 || status === 4) {
+ result = 'granted';
+ } else {
+ result = 'denied';
+ }
+ plus.ios.deleteObject(cllocationManger);
+ return result;
+};
+
+/******************************** andorid相关 ********************************/
+
+/**
+ * 请求android权限
+ */
+const requestAndroid = (permissionID: PermissionId): Promise => {
+ return new Promise((resolve, reject) => {
+ let androidPermissionKey = '';
+ switch (permissionID) {
+ case 'location':
+ androidPermissionKey = 'android.permission.ACCESS_FINE_LOCATION';
+ break;
+ }
+ if (!androidPermissionKey) {
+ resolve('denied');
+ }
+ plus.android.requestPermissions(
+ [permissionID],
+ function (resultObj) {
+ let result: RequestStatus = 'denied';
+ for (let i = 0; i < resultObj.granted.length; i++) {
+ const grantedPermission = resultObj.granted[i];
+ console.log('已获取的权限:');
+ result = 'granted';
+ }
+ for (let i = 0; i < resultObj.deniedPresent.length; i++) {
+ const deniedPresentPermission = resultObj.deniedPresent[i];
+ console.log('拒绝本次申请的权限:');
+ result = 'denied';
+ }
+ for (let i = 0; i < resultObj.deniedAlways.length; i++) {
+ const deniedAlwaysPermission = resultObj.deniedAlways[i];
+ console.log('永久拒绝申请的权限:');
+ result = 'denied';
+ }
+ resolve(result);
+ },
+ function (error) {
+ console.error(`|请求android权限|${permissionID}:`, error);
+ resolve('denied');
+ },
+ );
+ });
+};
diff --git a/src/static/icon/self/iconfont.css b/src/static/icon/self/iconfont.css
index 74ecae03..90d91034 100644
--- a/src/static/icon/self/iconfont.css
+++ b/src/static/icon/self/iconfont.css
@@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 5079650 */
- src: url('//at.alicdn.com/t/c/font_5079650_0eztc033f38b.woff2?t=1765772507380') format('woff2'),
- url('//at.alicdn.com/t/c/font_5079650_0eztc033f38b.woff?t=1765772507380') format('woff'),
- url('//at.alicdn.com/t/c/font_5079650_0eztc033f38b.ttf?t=1765772507380') format('truetype');
+ src: url('//at.alicdn.com/t/c/font_5079650_ql5o5wq6mdh.woff2?t=1767594984419') format('woff2'),
+ url('//at.alicdn.com/t/c/font_5079650_ql5o5wq6mdh.woff?t=1767594984419') format('woff'),
+ url('//at.alicdn.com/t/c/font_5079650_ql5o5wq6mdh.ttf?t=1767594984419') format('truetype');
}
.iconfont {
@@ -13,6 +13,42 @@
-moz-osx-font-smoothing: grayscale;
}
+.icon-a-ziyuan592:before {
+ content: "\e78e";
+}
+
+.icon-renzheng1:before {
+ content: "\e6a1";
+}
+
+.icon-anquan1:before {
+ content: "\e663";
+}
+
+.icon-tupian:before {
+ content: "\e662";
+}
+
+.icon-anquan:before {
+ content: "\ec4d";
+}
+
+.icon-chengshi:before {
+ content: "\e665";
+}
+
+.icon-gerenxinxi:before {
+ content: "\e64c";
+}
+
+.icon-chengshi1:before {
+ content: "\e66e";
+}
+
+.icon-icon-phone:before {
+ content: "\e657";
+}
+
.icon-weixin:before {
content: "\e63d";
}