feat:设置微信;人脸识别页;相册上传修改;样式小调整
This commit is contained in:
1 parent
158d012eff
commit
4fc92459a0
19 files changed
+527
-376
No files matched your search
+243
-228
@@ -1,239 +1,254 @@
|
||||
{
|
||||
"name": "荷塘月色",
|
||||
"appid": "__UNI__5B53E65",
|
||||
"description": "聊天交友app",
|
||||
"versionName": "2025.10",
|
||||
"versionCode": 0,
|
||||
"transformPx": false,
|
||||
"app-plus": {
|
||||
"usingComponents": true,
|
||||
"nvueCompiler": "uni-app",
|
||||
"nvueStyleCompiler": "uni-app",
|
||||
"compilerVersion": 3,
|
||||
"nvueLaunchMode": "fast",
|
||||
"splashscreen": {
|
||||
"alwaysShowBeforeRender": true,
|
||||
"waiting": true,
|
||||
"autoclose": true,
|
||||
"delay": 0
|
||||
"name" : "荷塘月色",
|
||||
"appid" : "__UNI__5B53E65",
|
||||
"description" : "聊天交友app",
|
||||
"versionName" : "2025.10",
|
||||
"versionCode" : 0,
|
||||
"transformPx" : false,
|
||||
"app-plus" : {
|
||||
"usingComponents" : true,
|
||||
"nvueCompiler" : "uni-app",
|
||||
"nvueStyleCompiler" : "uni-app",
|
||||
"compilerVersion" : 3,
|
||||
"nvueLaunchMode" : "fast",
|
||||
"splashscreen" : {
|
||||
"alwaysShowBeforeRender" : true,
|
||||
"waiting" : true,
|
||||
"autoclose" : true,
|
||||
"delay" : 0
|
||||
},
|
||||
"safearea" : {
|
||||
"bottom" : {
|
||||
"offset" : "none"
|
||||
}
|
||||
},
|
||||
"modules" : {
|
||||
"Payment" : {},
|
||||
"Share" : {},
|
||||
"VideoPlayer" : {},
|
||||
"OAuth" : {},
|
||||
"Camera" : {},
|
||||
"Geolocation" : {}
|
||||
},
|
||||
"distribute" : {
|
||||
"android" : {
|
||||
"permissions" : [
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_SMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||
"<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
|
||||
],
|
||||
"minSdkVersion" : 21,
|
||||
"schemes" : "shopro",
|
||||
"excludePermissions" : [
|
||||
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>"
|
||||
]
|
||||
},
|
||||
"ios" : {
|
||||
"urlschemewhitelist" : [ "baidumap", "iosamap" ],
|
||||
"dSYMs" : false,
|
||||
"privacyDescription" : {
|
||||
"NSPhotoLibraryUsageDescription" : "需要同意访问您的相册选取图片才能完善该条目",
|
||||
"NSPhotoLibraryAddUsageDescription" : "需要同意访问您的相册才能保存该图片",
|
||||
"NSCameraUsageDescription" : "需要同意访问您的摄像头拍摄照片才能完善该条目",
|
||||
"NSUserTrackingUsageDescription" : "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
|
||||
},
|
||||
"urltypes" : "shopro",
|
||||
"capabilities" : {
|
||||
"entitlements" : {
|
||||
"com.apple.developer.associated-domains" : [ "applinks:shopro.sheepjs.com" ]
|
||||
}
|
||||
},
|
||||
"idfa" : true
|
||||
},
|
||||
"sdkConfigs" : {
|
||||
"speech" : {},
|
||||
"ad" : {},
|
||||
"oauth" : {
|
||||
"apple" : {},
|
||||
"weixin" : {
|
||||
"appid" : "wxae7a0c156da9383b",
|
||||
"UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
||||
}
|
||||
},
|
||||
"payment" : {
|
||||
"weixin" : {
|
||||
"__platform__" : [ "ios", "android" ],
|
||||
"appid" : "wxae7a0c156da9383b",
|
||||
"UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
||||
},
|
||||
"alipay" : {
|
||||
"__platform__" : [ "ios", "android" ]
|
||||
}
|
||||
},
|
||||
"share" : {
|
||||
"weixin" : {
|
||||
"appid" : "wxae7a0c156da9383b",
|
||||
"UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
||||
}
|
||||
},
|
||||
"maps" : {},
|
||||
"geolocation" : {
|
||||
"system" : {
|
||||
"__platform__" : [ "ios", "android" ]
|
||||
}
|
||||
}
|
||||
},
|
||||
"orientation" : [ "portrait-primary" ],
|
||||
"splashscreen" : {
|
||||
"androidStyle" : "default",
|
||||
"iosStyle" : "common",
|
||||
"useOriginalMsgbox" : true,
|
||||
"android" : {
|
||||
"hdpi" : "C:/Users/20513/Pictures/login-bg.png",
|
||||
"xhdpi" : "C:/Users/20513/Pictures/login-bg.png",
|
||||
"xxhdpi" : "C:/Users/20513/Pictures/login-bg.png"
|
||||
}
|
||||
},
|
||||
"icons" : {
|
||||
"android" : {
|
||||
"hdpi" : "unpackage/res/icons/72x72.png",
|
||||
"xhdpi" : "unpackage/res/icons/96x96.png",
|
||||
"xxhdpi" : "unpackage/res/icons/144x144.png",
|
||||
"xxxhdpi" : "unpackage/res/icons/192x192.png"
|
||||
},
|
||||
"ios" : {
|
||||
"appstore" : "unpackage/res/icons/1024x1024.png",
|
||||
"ipad" : {
|
||||
"app" : "unpackage/res/icons/76x76.png",
|
||||
"app@2x" : "unpackage/res/icons/152x152.png",
|
||||
"notification" : "unpackage/res/icons/20x20.png",
|
||||
"notification@2x" : "unpackage/res/icons/40x40.png",
|
||||
"proapp@2x" : "unpackage/res/icons/167x167.png",
|
||||
"settings" : "unpackage/res/icons/29x29.png",
|
||||
"settings@2x" : "unpackage/res/icons/58x58.png",
|
||||
"spotlight" : "unpackage/res/icons/40x40.png",
|
||||
"spotlight@2x" : "unpackage/res/icons/80x80.png"
|
||||
},
|
||||
"iphone" : {
|
||||
"app@2x" : "unpackage/res/icons/120x120.png",
|
||||
"app@3x" : "unpackage/res/icons/180x180.png",
|
||||
"notification@2x" : "unpackage/res/icons/40x40.png",
|
||||
"notification@3x" : "unpackage/res/icons/60x60.png",
|
||||
"settings@2x" : "unpackage/res/icons/58x58.png",
|
||||
"settings@3x" : "unpackage/res/icons/87x87.png",
|
||||
"spotlight@2x" : "unpackage/res/icons/80x80.png",
|
||||
"spotlight@3x" : "unpackage/res/icons/120x120.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nativePlugins" : {
|
||||
"AP-FaceDetectModule" : {
|
||||
"__plugin_info__" : {
|
||||
"name" : "AP-FaceDetectModule",
|
||||
"description" : "阿里云金融级实人认证SDK",
|
||||
"platforms" : "Android,iOS",
|
||||
"url" : "",
|
||||
"android_package_name" : "",
|
||||
"ios_bundle_id" : "",
|
||||
"isCloud" : false,
|
||||
"bought" : -1,
|
||||
"pid" : "",
|
||||
"parameters" : {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"safearea": {
|
||||
"bottom": {
|
||||
"offset": "none"
|
||||
}
|
||||
},
|
||||
"modules": {
|
||||
"Payment": {},
|
||||
"Share": {},
|
||||
"VideoPlayer": {},
|
||||
"OAuth": {},
|
||||
"Camera": {},
|
||||
"Geolocation": {}
|
||||
},
|
||||
"distribute": {
|
||||
"android": {
|
||||
"permissions": [
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_SMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||
"<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
|
||||
],
|
||||
"minSdkVersion": 21,
|
||||
"schemes": "shopro",
|
||||
"excludePermissions": [
|
||||
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>"
|
||||
"quickapp" : {},
|
||||
"quickapp-native" : {
|
||||
"icon" : "/static/logo.png",
|
||||
"package" : "com.example.demo",
|
||||
"features" : [
|
||||
{
|
||||
"name" : "system.clipboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ios": {
|
||||
"urlschemewhitelist": ["baidumap", "iosamap"],
|
||||
"dSYMs": false,
|
||||
"privacyDescription": {
|
||||
"NSPhotoLibraryUsageDescription": "需要同意访问您的相册选取图片才能完善该条目",
|
||||
"NSPhotoLibraryAddUsageDescription": "需要同意访问您的相册才能保存该图片",
|
||||
"NSCameraUsageDescription": "需要同意访问您的摄像头拍摄照片才能完善该条目",
|
||||
"NSUserTrackingUsageDescription": "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
|
||||
},
|
||||
"quickapp-webview" : {
|
||||
"icon" : "/static/logo.png",
|
||||
"package" : "com.example.demo",
|
||||
"minPlatformVersion" : 1070,
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : 100
|
||||
},
|
||||
"mp-weixin" : {
|
||||
"appid" : "wx66186af0759f47c9",
|
||||
"setting" : {
|
||||
"urlCheck" : false,
|
||||
"minified" : true,
|
||||
"postcss" : true
|
||||
},
|
||||
"urltypes": "shopro",
|
||||
"capabilities": {
|
||||
"entitlements": {
|
||||
"com.apple.developer.associated-domains": ["applinks:shopro.sheepjs.com"]
|
||||
}
|
||||
"optimization" : {
|
||||
"subPackages" : true
|
||||
},
|
||||
"idfa": true
|
||||
},
|
||||
"sdkConfigs": {
|
||||
"speech": {},
|
||||
"ad": {},
|
||||
"oauth": {
|
||||
"apple": {},
|
||||
"weixin": {
|
||||
"appid": "wxae7a0c156da9383b",
|
||||
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
||||
}
|
||||
"plugins" : {},
|
||||
"lazyCodeLoading" : "requiredComponents",
|
||||
"usingComponents" : {},
|
||||
"permission" : {},
|
||||
"requiredPrivateInfos" : [ "chooseAddress" ]
|
||||
},
|
||||
"mp-alipay" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-baidu" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-toutiao" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-jd" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"h5" : {
|
||||
"darkmode" : true,
|
||||
"template" : "index.html",
|
||||
"router" : {
|
||||
"mode" : "history",
|
||||
"base" : "/"
|
||||
},
|
||||
"payment": {
|
||||
"weixin": {
|
||||
"__platform__": ["ios", "android"],
|
||||
"appid": "wxae7a0c156da9383b",
|
||||
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
||||
},
|
||||
"alipay": {
|
||||
"__platform__": ["ios", "android"]
|
||||
}
|
||||
"sdkConfigs" : {
|
||||
"maps" : {}
|
||||
},
|
||||
"share": {
|
||||
"weixin": {
|
||||
"appid": "wxae7a0c156da9383b",
|
||||
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
||||
}
|
||||
"async" : {
|
||||
"timeout" : 20000
|
||||
},
|
||||
"maps": {},
|
||||
"geolocation": {
|
||||
"system": {
|
||||
"__platform__": ["ios", "android"]
|
||||
}
|
||||
"title" : "聊天交友",
|
||||
"optimization" : {
|
||||
"treeShaking" : {
|
||||
"enable" : true
|
||||
}
|
||||
}
|
||||
},
|
||||
"orientation": ["portrait-primary"],
|
||||
"splashscreen": {
|
||||
"androidStyle": "default",
|
||||
"iosStyle": "common",
|
||||
"useOriginalMsgbox": true,
|
||||
"android": {
|
||||
"hdpi": "C:/Users/20513/Pictures/login-bg.png",
|
||||
"xhdpi": "C:/Users/20513/Pictures/login-bg.png",
|
||||
"xxhdpi": "C:/Users/20513/Pictures/login-bg.png"
|
||||
}
|
||||
},
|
||||
"icons": {
|
||||
"android": {
|
||||
"hdpi": "unpackage/res/icons/72x72.png",
|
||||
"xhdpi": "unpackage/res/icons/96x96.png",
|
||||
"xxhdpi": "unpackage/res/icons/144x144.png",
|
||||
"xxxhdpi": "unpackage/res/icons/192x192.png"
|
||||
},
|
||||
"ios": {
|
||||
"appstore": "unpackage/res/icons/1024x1024.png",
|
||||
"ipad": {
|
||||
"app": "unpackage/res/icons/76x76.png",
|
||||
"app@2x": "unpackage/res/icons/152x152.png",
|
||||
"notification": "unpackage/res/icons/20x20.png",
|
||||
"notification@2x": "unpackage/res/icons/40x40.png",
|
||||
"proapp@2x": "unpackage/res/icons/167x167.png",
|
||||
"settings": "unpackage/res/icons/29x29.png",
|
||||
"settings@2x": "unpackage/res/icons/58x58.png",
|
||||
"spotlight": "unpackage/res/icons/40x40.png",
|
||||
"spotlight@2x": "unpackage/res/icons/80x80.png"
|
||||
},
|
||||
"iphone": {
|
||||
"app@2x": "unpackage/res/icons/120x120.png",
|
||||
"app@3x": "unpackage/res/icons/180x180.png",
|
||||
"notification@2x": "unpackage/res/icons/40x40.png",
|
||||
"notification@3x": "unpackage/res/icons/60x60.png",
|
||||
"settings@2x": "unpackage/res/icons/58x58.png",
|
||||
"settings@3x": "unpackage/res/icons/87x87.png",
|
||||
"spotlight@2x": "unpackage/res/icons/80x80.png",
|
||||
"spotlight@3x": "unpackage/res/icons/120x120.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nativePlugins": {}
|
||||
},
|
||||
"quickapp": {},
|
||||
"quickapp-native": {
|
||||
"icon": "/static/logo.png",
|
||||
"package": "com.example.demo",
|
||||
"features": [
|
||||
{
|
||||
"name": "system.clipboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"quickapp-webview": {
|
||||
"icon": "/static/logo.png",
|
||||
"package": "com.example.demo",
|
||||
"minPlatformVersion": 1070,
|
||||
"versionName": "1.0.0",
|
||||
"versionCode": 100
|
||||
},
|
||||
"mp-weixin": {
|
||||
"appid": "wx66186af0759f47c9",
|
||||
"setting": {
|
||||
"urlCheck": false,
|
||||
"minified": true,
|
||||
"postcss": true
|
||||
},
|
||||
"optimization": {
|
||||
"subPackages": true
|
||||
},
|
||||
"plugins": {},
|
||||
"lazyCodeLoading": "requiredComponents",
|
||||
"usingComponents": {},
|
||||
"permission": {},
|
||||
"requiredPrivateInfos": ["chooseAddress"]
|
||||
},
|
||||
"mp-alipay": {
|
||||
"usingComponents": true
|
||||
},
|
||||
"mp-baidu": {
|
||||
"usingComponents": true
|
||||
},
|
||||
"mp-toutiao": {
|
||||
"usingComponents": true
|
||||
},
|
||||
"mp-jd": {
|
||||
"usingComponents": true
|
||||
},
|
||||
"h5": {
|
||||
"darkmode": true,
|
||||
"template": "index.html",
|
||||
"router": {
|
||||
"mode": "history",
|
||||
"base": "/"
|
||||
},
|
||||
"sdkConfigs": {
|
||||
"maps": {}
|
||||
},
|
||||
"async": {
|
||||
"timeout": 20000
|
||||
},
|
||||
"title": "聊天交友",
|
||||
"optimization": {
|
||||
"treeShaking": {
|
||||
"enable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"vueVersion": "3",
|
||||
"_spaceID": "192b4892-5452-4e1d-9f09-eee1ece40639",
|
||||
"locale": "zh-Hans",
|
||||
"fallbackLocale": "zh-Hans"
|
||||
"vueVersion" : "3",
|
||||
"_spaceID" : "192b4892-5452-4e1d-9f09-eee1ece40639",
|
||||
"locale" : "zh-Hans",
|
||||
"fallbackLocale" : "zh-Hans"
|
||||
}
|
||||
@@ -226,6 +226,13 @@
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "face-verify",
|
||||
"style": {
|
||||
"navigationBarTitleText": "人脸认证",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "recharge",
|
||||
"style": {
|
||||
@@ -247,6 +254,13 @@
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "set-wechat",
|
||||
"style": {
|
||||
"navigationBarTitleText": "设置微信",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "about",
|
||||
"style": {
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
:loadMoreStatus="loadMoreStatus"
|
||||
@refresh="refreshList"
|
||||
@loadMore="listLoadMore"
|
||||
@scroll="scroll"
|
||||
:scroll-top="scrollTop"
|
||||
>
|
||||
<view v-if="isRefreshing" class="py-2 px-4" v-for="index in 4" :key="index">
|
||||
@@ -49,7 +48,7 @@
|
||||
scene: string;
|
||||
}>();
|
||||
|
||||
const scrollTop = ref(0);
|
||||
const scrollTop = ref(1);
|
||||
const userCity = computed(() => sheep.$store('user').userCity);
|
||||
const params = reactive({
|
||||
scene: props.scene,
|
||||
@@ -75,10 +74,6 @@
|
||||
},
|
||||
);
|
||||
|
||||
const scroll = (e: any) => {
|
||||
scrollTop.value = e.detail.scrollTop;
|
||||
};
|
||||
|
||||
const detail = (user: any) => {
|
||||
uni.navigateTo({
|
||||
url: `/pages/home/detail?memberId=${user.memberId}`,
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
<template #right>
|
||||
<view class="flex items-center">
|
||||
<view class="py-1 px-2 text-xs bg-color-theme-dark rounded-full mr-3">
|
||||
{{ userDetail.member?.memberCity || userDetail.issueCity }}
|
||||
{{ userDetail.member?.memberCity ? userDetail.member?.memberCity + ' · ' : '' }}
|
||||
{{ userDetail.distance?.toFixed(2) }}km
|
||||
</view>
|
||||
<uni-icons type="more-filled" size="28" color="#ffcd32"></uni-icons>
|
||||
</view>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
:loadMoreStatus="loadMoreStatus"
|
||||
@refresh="refreshList"
|
||||
@loadMore="listLoadMore"
|
||||
@scroll="scroll"
|
||||
:scroll-top="scrollTop"
|
||||
>
|
||||
<swiper
|
||||
@@ -60,7 +59,7 @@
|
||||
scene: string;
|
||||
}>();
|
||||
|
||||
const scrollTop = ref(0);
|
||||
const scrollTop = ref(1);
|
||||
const userCity = computed(() => sheep.$store('user').userCity);
|
||||
const params = reactive({
|
||||
scene: props.scene,
|
||||
@@ -86,10 +85,6 @@
|
||||
},
|
||||
);
|
||||
|
||||
const scroll = (e: any) => {
|
||||
scrollTop.value = e.detail.scrollTop;
|
||||
};
|
||||
|
||||
// 查看用户详情
|
||||
const goDetail = (user: any) => {
|
||||
uni.navigateTo({
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
</template>
|
||||
</wd-navbar>
|
||||
|
||||
<scroll-view scroll-y style="height: calc(100dvh - 44px)">
|
||||
<scroll-view scroll-y style="height: calc(100dvh - 88px)">
|
||||
<wd-textarea v-model="params.description" :maxlength="1000" clearable show-word-limit />
|
||||
<wd-tabs v-model="activeTab">
|
||||
<wd-tab title="发图片">
|
||||
<wd-tab title="发图文">
|
||||
<view class="px-4 py-8">
|
||||
<wd-upload
|
||||
v-model:file-list="params.coverPic"
|
||||
@@ -33,7 +33,7 @@
|
||||
/>
|
||||
</view>
|
||||
</wd-tab>
|
||||
<wd-tab title="发视频">
|
||||
<wd-tab v-if="false" title="发视频">
|
||||
<view class="px-4 py-8">
|
||||
<wd-upload
|
||||
v-model:file-list="params.coverVideo"
|
||||
@@ -58,10 +58,6 @@
|
||||
:column-change="columnChange"
|
||||
@confirm="areaPickerConfirm"
|
||||
/>
|
||||
<wd-cell title="详细地址" vertical>
|
||||
<wd-input v-model.trim="params.issueAddress" :maxlength="20" show-word-limit />
|
||||
</wd-cell>
|
||||
<view class="h-100" />
|
||||
</scroll-view>
|
||||
</wd-config-provider>
|
||||
</template>
|
||||
@@ -90,7 +86,6 @@
|
||||
issueProvince: '',
|
||||
issueCity: '',
|
||||
issueDistrict: '',
|
||||
issueAddress: '',
|
||||
});
|
||||
const coverPic = computed(() => {
|
||||
return params.coverPic.map((item: any) => JSON.parse(item.response).data);
|
||||
@@ -161,7 +156,7 @@
|
||||
|
||||
// 发布朋友圈
|
||||
const publishMoments = async () => {
|
||||
if (!params.description || !params.issueProvince || !params.issueAddress)
|
||||
if (!params.description || !params.issueProvince)
|
||||
return uni.showToast({ title: '请填写内容', icon: 'error' });
|
||||
if (!params.coverPic || !params.coverPic.length)
|
||||
return uni.showToast({ title: '请上传图片', icon: 'error' });
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<scroll-view style="height: calc(100dvh - 88px)" scroll-y>
|
||||
<view
|
||||
class="mx-4 p-4 rounded-2 bg-#000 b-4 b-solid b-t-#ffcd32/80 b-l-#ffcd32/60 b-r-#ffcd32/60 b-b-#ffcd32/40"
|
||||
class="mx-4 p-4 rounded-2 bg-gradient-to-b from-#111 to-#222 b-4 b-solid b-t-#ffcd32/60 b-l-#ffcd32/40 b-r-#ffcd32/40 b-b-#ffcd32/20"
|
||||
>
|
||||
<view class="text-color-theme-dark font-900 font-italic text-xl mb-1">VIP</view>
|
||||
<view class="flex-col-center mb-4">
|
||||
@@ -26,7 +26,7 @@
|
||||
<scroll-view scroll-x class="w-full" :show-scrollbar="false">
|
||||
<view class="flex">
|
||||
<view
|
||||
v-for="(item, index) in openTypeList"
|
||||
v-for="item in openTypeList"
|
||||
:key="item.id"
|
||||
class="mr-3 ml-1 my-1"
|
||||
@click="curOpenTypeId = item.id"
|
||||
@@ -40,9 +40,9 @@
|
||||
]"
|
||||
>
|
||||
<view class="mt-2 text-sm text-#ffffff">{{ item.title }}</view>
|
||||
<view class="mt-1 text-lg font-900 text-color-theme-dark"
|
||||
>¥{{ fen2yuan(item.preferentialPrice) }}</view
|
||||
>
|
||||
<view class="mt-1 text-lg font-900 text-color-theme-dark">
|
||||
¥{{ fen2yuan(item.preferentialPrice) }}
|
||||
</view>
|
||||
<view class="mt-1 text-sm line-through text-gray">
|
||||
¥{{ fen2yuan(item.originalPrice) }}
|
||||
</view>
|
||||
@@ -80,13 +80,13 @@
|
||||
<!-- 协议 -->
|
||||
<view class="mt-4 px-4 text-xs text-gray leading-relaxed text-center">
|
||||
开通即视为同意
|
||||
<text class="text-color-theme-dark">《VIP会员服务协议》</text>
|
||||
<text class="text-color-theme-dark">《VIP会员协议》</text>
|
||||
和
|
||||
<text class="text-color-theme-dark">《自动续费协议》</text>
|
||||
<text class="text-color-theme-dark">《会员充值协议》</text>
|
||||
</view>
|
||||
|
||||
<!-- v-if="openTypeList?.length" -->
|
||||
<view
|
||||
v-if="openTypeList.length"
|
||||
class="mt-4 w-2/3 mx-auto py-2 text-center rounded-full bg-color-theme-dark text-black text-sm active:bg-color-theme"
|
||||
@click="handleOpenVip"
|
||||
>
|
||||
@@ -142,7 +142,7 @@
|
||||
{ title: '专属身份标识', desc: '昵称后展示 VIP 标识,提升可信度' },
|
||||
];
|
||||
const payMethod = ref<'alipay' | 'wechat'>('alipay'); // 支付方式:alipay / wechat
|
||||
const openTypeList = ref<OpenTypeItem[]>(); // 会员类型列表
|
||||
const openTypeList = ref<OpenTypeItem[]>([]); // 会员类型列表
|
||||
const curOpenTypeId = ref<number>(); // 当前选择的会员类型id
|
||||
const currentOpenType = computed<OpenTypeItem | undefined>(() =>
|
||||
openTypeList.value?.find((item) => item.id === curOpenTypeId.value),
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
hover-class="navigator-hover"
|
||||
>
|
||||
<wd-icon name="add-circle1" size="18px" />
|
||||
<text class="text-28rpx">上传相册</text>
|
||||
<text class="text-28rpx ml-1">上传相册</text>
|
||||
</navigator>
|
||||
</view>
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
<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="22" color="#ffcd32" />
|
||||
</navigator>
|
||||
</template>
|
||||
</wd-navbar>
|
||||
|
||||
<view class="bg-color-theme-dark" @click="faceVerify">人脸认证</view>
|
||||
</wd-config-provider>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const faceVerify = () => {
|
||||
// #ifdef APP-PLUS
|
||||
const aliyunVerify = uni.requireNativePlugin('AP-FaceDetectModule');
|
||||
let metaInfo = aliyunVerify.getMetaInfo();
|
||||
let p = uni.getSystemInfoSync().platform;
|
||||
if (p === 'ios') {
|
||||
metaInfo = JSON.stringify(metaInfo);
|
||||
}
|
||||
console.log('metaInfo', metaInfo);
|
||||
|
||||
aliyunVerify.verify(
|
||||
{
|
||||
certifyId: '<替换生成的certifyId>',
|
||||
extParams: { '<扩展参数key>': '<扩展参数value>' },
|
||||
},
|
||||
function (response: any) {
|
||||
console.log(response);
|
||||
},
|
||||
);
|
||||
// #endif
|
||||
};
|
||||
</script>
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<wd-config-provider theme="dark" :theme-vars="themeVars">
|
||||
<wd-navbar title="发布动态" safeAreaInsetTop :bordered="false">
|
||||
<wd-navbar title="问题反馈" safeAreaInsetTop :bordered="false">
|
||||
<template #left>
|
||||
<navigator open-type="navigateBack" hover-class="navigator-hover">
|
||||
<uni-icons type="back" size="30" color="#ffcd32"></uni-icons>
|
||||
|
||||
@@ -39,25 +39,25 @@
|
||||
<view class="flex justify-around my-4 text-base">
|
||||
<view class="flex flex-col items-center" @click="goLike(0)">
|
||||
<text class="text-color-theme font-600 text-lg">{{ recentTotal.likeItTotal }}</text>
|
||||
<text class="text-color-theme text-xs">我喜欢</text>
|
||||
<text class="text-color-theme text-sm">我喜欢</text>
|
||||
</view>
|
||||
<view class="flex flex-col items-center" @click="goLike(1)">
|
||||
<text class="text-color-theme font-600 text-lg">{{ recentTotal.likeMeTotal }}</text>
|
||||
<text class="text-color-theme text-xs">喜欢我</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(wallet.balance) }}</text>
|
||||
<text class="text-color-theme text-xs">钱包</text>
|
||||
<text class="text-color-theme text-sm">钱包</text>
|
||||
</view>
|
||||
</navigator>
|
||||
</view>
|
||||
|
||||
<!-- 开通vip -->
|
||||
<view
|
||||
class="text-color-theme-dark mx-4 p-3 rounded-2 bg-#000 b-4 b-solid b-t-#ffcd32/80 b-l-#ffcd32/60 b-r-#ffcd32/60 b-b-#ffcd32/40 flex justify-between"
|
||||
class="text-color-theme-dark mx-4 p-4 rounded-2 bg-gradient-to-b from-#111 to-#222 b-4 b-solid b-t-#ffcd32/60 b-l-#ffcd32/40 b-r-#ffcd32/40 b-b-#ffcd32/20 flex justify-between"
|
||||
>
|
||||
<view class="font-900 font-italic text-lg">VIP</view>
|
||||
<view class="font-900 font-italic text-xl">VIP</view>
|
||||
<view class="flex items-center">
|
||||
<text class="text-xs">尊享vip免费特权</text>
|
||||
<navigator
|
||||
@@ -65,7 +65,7 @@
|
||||
open-type="navigate"
|
||||
hover-class="navigator-hover"
|
||||
>
|
||||
<text class="ml-2 px-2 py-1 rounded-full text-sm bg-color-theme text-black">
|
||||
<text class="ml-4 px-4 py-1 rounded-full text-24rpx bg-color-theme text-black">
|
||||
立即开通
|
||||
</text>
|
||||
</navigator>
|
||||
@@ -220,11 +220,11 @@
|
||||
const MenuCellList = [
|
||||
{ title: '我的收益', value: '', icon: 'wallet', to: '' },
|
||||
{ title: '访客记录', value: '', icon: 'dong', to: '/pages/profile/view-record' },
|
||||
{ title: '认证中心', value: '', icon: 'user', to: '' },
|
||||
{ title: '认证中心', value: '', icon: 'user', to: '/pages/profile/face-verify' },
|
||||
{ title: '我的动态', value: '', icon: 'star', to: '/pages/profile/my-moment' },
|
||||
{ title: '我的评价', value: '', icon: 'view-module', to: '', click: lookMyEvaluation },
|
||||
{ title: '问题反馈', value: '', icon: 'backtop-rectangle', to: '', click: goFeedback },
|
||||
{ title: '客服助手', value: '', icon: 'service', to: '' },
|
||||
{ title: '问题反馈√', value: '', icon: 'backtop-rectangle', to: '', click: goFeedback },
|
||||
// { title: '客服助手', value: '', icon: 'service', to: '' },
|
||||
{ title: '关注公众号√', value: '获取最新消息', icon: 'qrcode', to: '', click: subOfficial },
|
||||
{ title: '设置√', value: '', icon: 'setting1', to: '/pages/profile/setting' },
|
||||
];
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<scroll-view style="height: calc(100dvh - 88px)" scroll-y>
|
||||
<view
|
||||
class="mx-4 p-4 rounded-2 bg-#000 b-4 b-solid b-t-#ffcd32/80 b-l-#ffcd32/60 b-r-#ffcd32/60 b-b-#ffcd32/40"
|
||||
class="mx-4 p-4 rounded-2 bg-gradient-to-b from-#111 to-#222 b-4 b-solid b-t-#ffcd32/60 b-l-#ffcd32/40 b-r-#ffcd32/40 b-b-#ffcd32/20"
|
||||
>
|
||||
<view class="text-color-theme-dark font-900 font-italic text-xl mb-1">VIP</view>
|
||||
<view class="flex-col-center mb-4">
|
||||
@@ -129,6 +129,7 @@
|
||||
const { code } = await RecentApi.walletRecharge({ packageId: item.id });
|
||||
if (code !== 0) return uni.showToast({ title: '购买失败', icon: 'fail' });
|
||||
uni.showToast({ title: '购买成功', icon: 'success' });
|
||||
await getWallet();
|
||||
})
|
||||
.catch(() => {});
|
||||
};
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
<template>
|
||||
<wd-config-provider theme="dark" :theme-vars="themeVars">
|
||||
<wd-navbar title="设置微信" safeAreaInsetTop :bordered="false">
|
||||
<template #left>
|
||||
<navigator open-type="navigateBack" hover-class="navigator-hover">
|
||||
<uni-icons type="back" size="30" color="#ffcd32"></uni-icons>
|
||||
</navigator>
|
||||
</template>
|
||||
</wd-navbar>
|
||||
|
||||
<view class="text-base mx-4 my-2">微信号</view>
|
||||
<view class="mx-4 rounded-3">
|
||||
<wd-input
|
||||
v-model.trim="params.wechatNum"
|
||||
placeholder="填写我的微信号"
|
||||
clearable
|
||||
:maxlength="20"
|
||||
:focus="true"
|
||||
/>
|
||||
</view>
|
||||
<view class="text-base mx-4 my-2">上传我的微信二维码</view>
|
||||
<view class="px-4">
|
||||
<s-uploader v-model:url="params.wechatQrCode" fileMediatype="image" limit="1" mode="grid" />
|
||||
</view>
|
||||
<view
|
||||
class="mt-80rpx w-1/3 mx-auto rounded-full bg-color-theme-dark text-base text-center py-2 active:bg-color-theme"
|
||||
@click="saveWeChat"
|
||||
>
|
||||
保 存
|
||||
</view>
|
||||
</wd-config-provider>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import RecentApi from '@/sheep/api/member/recent';
|
||||
import { reactive, ref } from 'vue';
|
||||
|
||||
const themeVars = reactive({
|
||||
darkBackground2: '#333',
|
||||
});
|
||||
|
||||
const params = reactive({
|
||||
wechatNum: '',
|
||||
wechatQrCode: '',
|
||||
});
|
||||
|
||||
const saveWeChat = async () => {
|
||||
if (!params.wechatNum || !params.wechatQrCode)
|
||||
return uni.showToast({ title: '请填写内容', icon: 'error' });
|
||||
const { code } = await RecentApi.updateWeChatInfo(params);
|
||||
if (code !== 0) return;
|
||||
uni.showToast({ title: '保存成功', icon: 'success' });
|
||||
uni.navigateBack();
|
||||
};
|
||||
</script>
|
||||
@@ -8,19 +8,44 @@
|
||||
</template>
|
||||
</wd-navbar>
|
||||
|
||||
<wd-cell title="消息推送" value="消息推送" ellipsis>
|
||||
<wd-switch v-model="params.isPush" inactive-color="#777" @change="change" size="20" />
|
||||
</wd-cell>
|
||||
<wd-cell title="首页隐身" value="首页隐身" ellipsis>
|
||||
<wd-switch v-model="params.homeHide" inactive-color="#777" @change="change" size="20" />
|
||||
</wd-cell>
|
||||
<wd-cell title="隐私保护" value="隐私保护" ellipsis>
|
||||
<wd-switch v-model="params.privacySecure" inactive-color="#777" @change="change" size="20" />
|
||||
</wd-cell>
|
||||
<wd-cell title="短信通知" value="短信通知" ellipsis>
|
||||
<wd-switch v-model="params.shortNote" inactive-color="#777" @change="change" size="20" />
|
||||
</wd-cell>
|
||||
<wd-cell title="关于" value="" is-link ellipsis to="/pages/profile/about" />
|
||||
<wd-cell-group>
|
||||
<wd-cell title="手机号" :value="mobile" />
|
||||
<wd-cell title="设置微信" is-link ellipsis to="/pages/profile/set-wechat" />
|
||||
<wd-cell title="客服邮箱" value="1@1.com" is-link ellipsis />
|
||||
<wd-cell title="消息推送" value="消息推送" ellipsis>
|
||||
<wd-switch
|
||||
v-model="params.isPush"
|
||||
inactive-color="#777"
|
||||
@change="settingChange"
|
||||
size="20"
|
||||
/>
|
||||
</wd-cell>
|
||||
<wd-cell title="首页隐身" value="首页隐身" ellipsis>
|
||||
<wd-switch
|
||||
v-model="params.homeHide"
|
||||
inactive-color="#777"
|
||||
@change="settingChange"
|
||||
size="20"
|
||||
/>
|
||||
</wd-cell>
|
||||
<wd-cell title="隐私保护" value="隐私保护" ellipsis>
|
||||
<wd-switch
|
||||
v-model="params.privacySecure"
|
||||
inactive-color="#777"
|
||||
@change="settingChange"
|
||||
size="20"
|
||||
/>
|
||||
</wd-cell>
|
||||
<wd-cell title="短信通知" value="短信通知" ellipsis>
|
||||
<wd-switch
|
||||
v-model="params.shortNote"
|
||||
inactive-color="#777"
|
||||
@change="settingChange"
|
||||
size="20"
|
||||
/>
|
||||
</wd-cell>
|
||||
<wd-cell title="关于应用" value="" is-link ellipsis to="/pages/profile/about" />
|
||||
</wd-cell-group>
|
||||
|
||||
<view
|
||||
class="mt-40rpx rounded-full bg-color-theme-dark text-base text-center py-2 mx-8 active:bg-color-theme"
|
||||
@@ -35,7 +60,7 @@
|
||||
<script setup lang="ts">
|
||||
import RecentApi from '@/sheep/api/member/recent';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import { reactive } from 'vue';
|
||||
import { computed, reactive } from 'vue';
|
||||
import { useMessage } from '@/uni_modules/wot-design-uni';
|
||||
// @ts-ignore
|
||||
import sheep from '@/sheep';
|
||||
@@ -48,6 +73,7 @@
|
||||
privacySecure: true,
|
||||
shortNote: true,
|
||||
});
|
||||
const mobile = computed(() => sheep.$store('user').userInfo?.mobile);
|
||||
|
||||
onLoad(async () => {
|
||||
const { code, data } = await RecentApi.getSetting();
|
||||
@@ -58,7 +84,7 @@
|
||||
params.shortNote = data.shortNote;
|
||||
});
|
||||
|
||||
const change = async () => {
|
||||
const settingChange = async () => {
|
||||
await RecentApi.updateSetting(params);
|
||||
};
|
||||
|
||||
|
||||
@@ -10,33 +10,19 @@
|
||||
|
||||
<view class="mx-5 my-3 flex justify-between text-color-theme">
|
||||
<text>图片</text>
|
||||
<text>{{ imageFileList?.length || 0 }}/10</text>
|
||||
<text>{{ imageFileList?.length || 0 }}/20</text>
|
||||
</view>
|
||||
<view class="px-4">
|
||||
<wd-upload
|
||||
v-model:file-list="imageFileList"
|
||||
:action="baseUrl + apiPath + '/infra/file/upload'"
|
||||
:header="header"
|
||||
image-mode="aspectFill"
|
||||
:upload-method="customUpload"
|
||||
accept="image"
|
||||
multiple
|
||||
:limit="10"
|
||||
:max-size="500000"
|
||||
:before-remove="beforeRemove"
|
||||
/>
|
||||
</view>
|
||||
<view class="mx-5 my-3 flex justify-between text-color-theme">
|
||||
<text>视频</text>
|
||||
<text>{{ videoFileList?.length || 0 }}/10</text>
|
||||
</view>
|
||||
<view class="px-4">
|
||||
<wd-upload
|
||||
v-model:file-list="videoFileList"
|
||||
image-mode="aspectFill"
|
||||
:upload-method="customUpload"
|
||||
accept="video"
|
||||
multiple
|
||||
:limit="10"
|
||||
:max-size="2000000"
|
||||
:limit="20"
|
||||
:max-size="3000000"
|
||||
@success="uploadSuccess"
|
||||
:before-remove="beforeRemove"
|
||||
/>
|
||||
</view>
|
||||
@@ -47,19 +33,25 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed, ref, watch } from 'vue';
|
||||
import { ref, watch } from 'vue';
|
||||
import useAblum from './use-ablum';
|
||||
import type {
|
||||
UploadFile,
|
||||
UploadMethod,
|
||||
} from '@/uni_modules/wot-design-uni/components/wd-upload/types';
|
||||
// @ts-ignore
|
||||
import FileApi from '@/sheep/api/infra/file';
|
||||
import type { UploadFile } from '@/uni_modules/wot-design-uni/components/wd-upload/types';
|
||||
import { useMessage, useToast } from '@/uni_modules/wot-design-uni';
|
||||
// @ts-ignore
|
||||
import { baseUrl, apiPath, tenantId } from '@/sheep/config';
|
||||
// @ts-ignore
|
||||
import { getAccessToken } from '@/sheep/request';
|
||||
import RecentApi from '@/sheep/api/member/recent';
|
||||
|
||||
const header = {
|
||||
Accept: '*/*',
|
||||
'tenant-id': tenantId,
|
||||
Authorization: 'Bearer ' + getAccessToken(),
|
||||
};
|
||||
|
||||
const messageBox = useMessage();
|
||||
const toast = useToast();
|
||||
const { ablumList } = useAblum();
|
||||
const { ablumList, getUserAlbum } = useAblum();
|
||||
|
||||
const imageFileList = ref<UploadFile[]>([]);
|
||||
const videoFileList = ref<UploadFile[]>([]);
|
||||
@@ -67,47 +59,36 @@
|
||||
watch(
|
||||
() => ablumList.value,
|
||||
(val) => {
|
||||
imageFileList.value = val
|
||||
.filter((item) => item.resourceType === '1')
|
||||
.map((item) => ({ url: item.address, id: item.id }));
|
||||
videoFileList.value = val
|
||||
.filter((item) => item.resourceType === 'VIDEO')
|
||||
.map((item) => ({ url: item.address, id: item.id }));
|
||||
imageFileList.value = val.map((item) => ({ url: item.address, id: item.id }));
|
||||
},
|
||||
{ immediate: true },
|
||||
);
|
||||
|
||||
const customUpload: UploadMethod = async (file, formData, options) => {
|
||||
const { code, data, msg } = await FileApi.uploadFile(file.url);
|
||||
if (code !== 0) {
|
||||
return options.onError(msg, file, formData);
|
||||
}
|
||||
options.onSuccess(data, file, formData);
|
||||
const uploadSuccess = async ({ file }: any) => {
|
||||
await RecentApi.saveUserAlbum({
|
||||
address: JSON.parse(file.response).data,
|
||||
resourceType: 'IMAGE',
|
||||
});
|
||||
await getUserAlbum();
|
||||
};
|
||||
|
||||
// 移除确认
|
||||
const beforeRemove = ({ file, fileList, resolve }: any) => {
|
||||
console.log(file, fileList, resolve);
|
||||
|
||||
messageBox
|
||||
.confirm({
|
||||
msg: '是否移除',
|
||||
title: '提示',
|
||||
})
|
||||
.then(() => {
|
||||
toast.success('移除成功');
|
||||
resolve(true);
|
||||
.then(async () => {
|
||||
const { code } = await RecentApi.deleteUserAlbum(file.id);
|
||||
if (code === 0) {
|
||||
resolve(true);
|
||||
return toast.success('移除成功');
|
||||
}
|
||||
toast.error('移除失败');
|
||||
})
|
||||
.catch(() => {
|
||||
// toast.show('取消删除操作');
|
||||
});
|
||||
resolve(true);
|
||||
};
|
||||
|
||||
const images = computed(() => {
|
||||
return imageFileList.value.map((item) => ({ address: item.url, resourceType: 'IMAGE' }));
|
||||
});
|
||||
const videos = computed(() => {
|
||||
return imageFileList.value.map((item) => ({ address: item.url, resourceType: 'VIDEO' }));
|
||||
});
|
||||
</script>
|
||||
@@ -7,7 +7,11 @@ export default function useAblum() {
|
||||
|
||||
// 获取用户相册
|
||||
const getUserAlbum = async () => {
|
||||
const { data = null } = await RecentApi.getUserAlbum({ pageNo: 1, pageSize: 20 });
|
||||
const { data = null } = await RecentApi.getUserAlbum({
|
||||
pageNo: 1,
|
||||
pageSize: 20,
|
||||
resourceType: 'IMAGE',
|
||||
});
|
||||
ablumList.value = data.list ?? [];
|
||||
};
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ const RecentApi = {
|
||||
},
|
||||
});
|
||||
},
|
||||
// 保存用户相册
|
||||
// 保存用户相册单个照片资源
|
||||
saveUserAlbum: (data: any) => {
|
||||
return request({
|
||||
url: '/member/photo/upload',
|
||||
@@ -162,15 +162,15 @@ const RecentApi = {
|
||||
},
|
||||
});
|
||||
},
|
||||
// 移除用户相册
|
||||
// 删除用户相册单个照片
|
||||
deleteUserAlbum: (id: any) => {
|
||||
return request({
|
||||
url: '/member/photo/delete',
|
||||
method: 'GET',
|
||||
method: 'DELETE',
|
||||
params: { id },
|
||||
custom: {
|
||||
showLoading: true,
|
||||
loadingMsg: '操作中',
|
||||
loadingMsg: '删除中',
|
||||
},
|
||||
});
|
||||
},
|
||||
@@ -290,6 +290,18 @@ const RecentApi = {
|
||||
},
|
||||
});
|
||||
},
|
||||
// 更新用户设置
|
||||
updateWeChatInfo: (data: any) => {
|
||||
return request({
|
||||
url: '/member/user/update-wechat',
|
||||
method: 'PUT',
|
||||
data,
|
||||
custom: {
|
||||
showLoading: true,
|
||||
loadingMsg: '保存中',
|
||||
},
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export default RecentApi;
|
||||
@@ -3,21 +3,25 @@
|
||||
<view class="mb-1 flex items-center" @click="detail">
|
||||
<image
|
||||
:src="member.memberAvatar"
|
||||
class="mr-3 size-100rpx rounded-full bg-#333333"
|
||||
class="mr-3 size-120rpx rounded-full bg-#333333"
|
||||
mode="aspectFill"
|
||||
/>
|
||||
<view class="flex-1">
|
||||
<view class="flex-1 overflow-hidden">
|
||||
<view class="flex justify-between items-center">
|
||||
<view class="flex items-center">
|
||||
<text class="mr-4 text-base">{{ member?.memberNickname }}</text>
|
||||
<view
|
||||
class="inline-flex items-center px-1 text-20rpx text-black rounded-1 bg-color-theme-dark"
|
||||
>
|
||||
<wd-icon name="discount-filled" size="12px" color="#000"></wd-icon>
|
||||
<text>真人认证</text>
|
||||
</view>
|
||||
<text class="text-base truncate">{{ member?.memberNickname }}</text>
|
||||
<text class="text-22rpx c-gray whitespace-nowrap">
|
||||
{{ formatDate(data.createTime, 'YYYY-MM-DD HH:mm') }}
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex my-1">
|
||||
<view
|
||||
v-for="(item, index) in data.memberTagList"
|
||||
:key="index"
|
||||
class="mr-2 flex items-center px-1 text-18rpx text-black rounded-4rpx bg-color-theme-dark"
|
||||
>
|
||||
<wd-icon name="discount-filled" size="10px" color="#000" />
|
||||
<text class="whitespace-nowrap">{{ item.tagTitle }}</text>
|
||||
</view>
|
||||
<text class="text-22rpx c-gray">{{ formatDate(data.createTime) }}</text>
|
||||
</view>
|
||||
<view class="mt-1 text-xs c-gray">
|
||||
{{ getGender(member.memberSex) }}·{{ member.memberAge }}岁
|
||||
@@ -26,7 +30,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mb-30rpx pl-130rpx">
|
||||
<view class="mb-30rpx pl-140rpx">
|
||||
<text class="leading-[1.5] text-white">{{ data.description }}</text>
|
||||
<view class="mt-20rpx flex flex-wrap gap-20rpx">
|
||||
<image
|
||||
@@ -37,7 +41,7 @@
|
||||
mode="aspectFill"
|
||||
@click="previewImage(pic)"
|
||||
/>
|
||||
<template v-for="video in data.coverVideo?.split(',')">
|
||||
<template v-if="false" v-for="video in data.coverVideo?.split(',')">
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<su-video class="size-260rpx rounded-10rpx bg-#333333" :src="video" />
|
||||
<!-- #endif -->
|
||||
@@ -47,9 +51,9 @@
|
||||
</template>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mb-2 flex items-center pl-130rpx text-xs text-white/70">
|
||||
<view class="mb-4 flex items-center pl-130rpx text-xs text-white/70">
|
||||
<uni-icons type="location" size="16" color="#B5B4BC"></uni-icons>
|
||||
<text>{{ data.issueProvince }} {{ data.issueCity }} {{ data.issueAddress }}</text>
|
||||
<text> {{ data.issueCity }} · {{ data.distance.toFixed(2) }}km </text>
|
||||
</view>
|
||||
<view class="flex gap-60rpx pl-130rpx text-white">
|
||||
<view class="flex items-center gap-10rpx text-sm">
|
||||
|
||||
@@ -5,49 +5,65 @@
|
||||
:src="data.coverPic?.split(',')[0]"
|
||||
mode="aspectFill"
|
||||
/>
|
||||
<view class="flex-1">
|
||||
<view class="flex justify-between items-center">
|
||||
<text class="text-size-base">{{ member.memberNickname }}</text>
|
||||
<text class="py-1 px-2 rounded-full text-xs bg-color-theme-dark">
|
||||
{{ member.appRefreshDate ? member.appRefreshDate + '在线' : '离线' }}
|
||||
<view class="flex-1 overflow-hidden">
|
||||
<view class="flex justify-between items-center mt-2">
|
||||
<text class="text-sm truncate">{{ member.memberNickname }}</text>
|
||||
<text class="py-4rpx px-2 rounded-full text-22rpx bg-color-theme-dark whitespace-nowrap">
|
||||
{{
|
||||
member.appRefreshDate
|
||||
? formatDate(member.appRefreshDate, 'MM-DD HH:mm前') + ' 在线'
|
||||
: '离线'
|
||||
}}
|
||||
</text>
|
||||
</view>
|
||||
<view
|
||||
v-for="(item, index) in data.memberTagList"
|
||||
:key="index"
|
||||
class="mt-2 inline-flex px-2 py-1 text-xs c-black rounded-1 bg-color-theme-dark mr-2"
|
||||
class="mt-2 inline-flex px-1 py-6rpx text-18rpx c-black rounded-4rpx bg-color-theme-dark mr-2"
|
||||
>
|
||||
<wd-icon name="discount-filled" size="16px" color="#000"></wd-icon>
|
||||
<wd-icon name="discount-filled" size="10px" color="#000" />
|
||||
<text>{{ item.tagTitle }}</text>
|
||||
</view>
|
||||
<view class="mt-2 flex flex-wrap gap-3">
|
||||
<text class="bg-#333 text-color-theme-dark text-xs px-2 py-1 rounded-1">
|
||||
{{ getGender(member.memberSex) }}·{{ member.memberAge }}岁
|
||||
<text class="bg-#333 text-color-theme-dark text-22rpx px-1 py-4rpx rounded-1">
|
||||
{{ getGender(member.memberSex) }} · {{ member.memberAge || 0 }}岁
|
||||
</text>
|
||||
<text class="bg-#333 text-color-theme-dark text-xs px-2 py-1 rounded-1">
|
||||
<text
|
||||
v-if="member.memberHeight"
|
||||
class="bg-#333 text-color-theme-dark text-22rpx px-1 py-4rpx rounded-1"
|
||||
>
|
||||
{{ member.memberHeight }}cm
|
||||
</text>
|
||||
<text class="bg-#333 text-color-theme-dark text-xs px-2 py-1 rounded-1">
|
||||
<text
|
||||
v-if="member.memberWeight"
|
||||
class="bg-#333 text-color-theme-dark text-22rpx px-1 py-4rpx rounded-1"
|
||||
>
|
||||
{{ member.memberWeight }}kg
|
||||
</text>
|
||||
<text class="bg-#333 text-color-theme-dark text-xs px-2 py-1 rounded-1">
|
||||
<text
|
||||
v-if="member.memberOcc"
|
||||
class="bg-#333 text-color-theme-dark text-22rpx px-1 py-4rpx rounded-1"
|
||||
>
|
||||
{{ member.memberOcc }}
|
||||
</text>
|
||||
<text class="bg-#333 text-color-theme-dark text-xs px-2 py-1 rounded-1">
|
||||
{{ data.location?.distance }}
|
||||
</text>
|
||||
<text class="bg-#333 text-color-theme-dark text-xs px-2 py-1 rounded-1">
|
||||
{{ member.memberCity || data.issueCity }}
|
||||
<text
|
||||
v-if="data.distance"
|
||||
class="bg-#333 text-color-theme-dark text-22rpx px-1 py-4rpx rounded-1"
|
||||
>
|
||||
{{ data.distance.toFixed(2) }}km
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="h-1rpx bg-#333 ml-30 mr-4"></view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
// @ts-ignore
|
||||
import { getGender } from '@/sheep/util/index';
|
||||
// @ts-ignore
|
||||
import { formatDate } from '@/sheep/util/index';
|
||||
|
||||
const props = defineProps<{
|
||||
data?: any;
|
||||
|
||||
Reference in new issue
Block a user