feat: 增加发邮件功能

This commit is contained in:
kenny
2025-10-16 19:15:42 +08:00
parent 617f4f6acf
commit 728dc5e559
4 changed files with 625 additions and 219 deletions
+229 -214
View File
@@ -1,222 +1,237 @@
{ {
"name" : "商城", "name": "商城",
"appid" : "__UNI__A2B711F", "appid": "__UNI__A2B711F",
"description" : "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。", "description": "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
"versionName" : "2025.09", "versionName": "2025.09",
"versionCode" : "183", "versionCode": "183",
"transformPx" : false, "transformPx": false,
"app-plus" : { "app-plus": {
"usingComponents" : true, "usingComponents": true,
"nvueCompiler" : "uni-app", "nvueCompiler": "uni-app",
"nvueStyleCompiler" : "uni-app", "nvueStyleCompiler": "uni-app",
"compilerVersion" : 3, "compilerVersion": 3,
"nvueLaunchMode" : "fast", "nvueLaunchMode": "fast",
"splashscreen" : { "splashscreen": {
"alwaysShowBeforeRender" : true, "alwaysShowBeforeRender": true,
"waiting" : true, "waiting": true,
"autoclose" : true, "autoclose": true,
"delay" : 0 "delay": 0
},
"safearea": {
"bottom": {
"offset": "none"
}
},
"modules": {
"Payment": {},
"Share": {},
"VideoPlayer": {},
"OAuth": {}
},
"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_CONTACTS\"/>",
"<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"
},
"ios": {
"urlschemewhitelist": [
"baidumap",
"iosamap"
],
"dSYMs": false,
"privacyDescription": {
"NSPhotoLibraryUsageDescription": "需要同意访问您的相册选取图片才能完善该条目",
"NSPhotoLibraryAddUsageDescription": "需要同意访问您的相册才能保存该图片",
"NSCameraUsageDescription": "需要同意访问您的摄像头拍摄照片才能完善该条目",
"NSUserTrackingUsageDescription": "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
}, },
"safearea" : { "urltypes": "shopro",
"bottom" : { "capabilities": {
"offset" : "none" "entitlements": {
} "com.apple.developer.associated-domains": [
"applinks:shopro.sheepjs.com"
]
}
}, },
"modules" : { "idfa": true
"Payment" : {}, },
"Share" : {}, "sdkConfigs": {
"VideoPlayer" : {}, "speech": {},
"OAuth" : {} "ad": {},
"oauth": {
"apple": {},
"weixin": {
"appid": "wxae7a0c156da9383b",
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
}
}, },
"distribute" : { "payment": {
"android" : { "weixin": {
"permissions" : [ "__platform__": [
"<uses-feature android:name=\"android.hardware.camera\"/>", "ios",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", "android"
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", ],
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", "appid": "wxae7a0c156da9383b",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
"<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>", },
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", "alipay": {
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", "__platform__": [
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>", "ios",
"<uses-permission android:name=\"android.permission.CAMERA\"/>", "android"
"<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\"/>", "share": {
"<uses-permission android:name=\"android.permission.GET_TASKS\"/>", "weixin": {
"<uses-permission android:name=\"android.permission.INTERNET\"/>", "appid": "wxae7a0c156da9383b",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", }
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
"<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"
},
"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/"
}
}
},
"orientation" : [ "portrait-primary" ],
"splashscreen" : {
"androidStyle" : "common",
"iosStyle" : "common",
"useOriginalMsgbox" : true
},
"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"
}
}
}
} }
}, },
"quickapp" : {}, "orientation": [
"quickapp-native" : { "portrait-primary"
"icon" : "/static/logo.png", ],
"package" : "com.example.demo", "splashscreen": {
"features" : [ "androidStyle": "common",
{ "iosStyle": "common",
"name" : "system.clipboard" "useOriginalMsgbox": true
} },
] "icons": {
}, "android": {
"quickapp-webview" : { "hdpi": "unpackage/res/icons/72x72.png",
"icon" : "/static/logo.png", "xhdpi": "unpackage/res/icons/96x96.png",
"package" : "com.example.demo", "xxhdpi": "unpackage/res/icons/144x144.png",
"minPlatformVersion" : 1070, "xxxhdpi": "unpackage/res/icons/192x192.png"
"versionName" : "1.0.0",
"versionCode" : 100
},
"mp-weixin" : {
"appid" : "wx736793c30c956243",
"setting" : {
"urlCheck" : false,
"minified" : true,
"postcss" : true
}, },
"optimization" : { "ios": {
"subPackages" : true "appstore": "unpackage/res/icons/1024x1024.png",
}, "ipad": {
"plugins" : {}, "app": "unpackage/res/icons/76x76.png",
"lazyCodeLoading" : "requiredComponents", "app@2x": "unpackage/res/icons/152x152.png",
"usingComponents" : {}, "notification": "unpackage/res/icons/20x20.png",
"permission" : {}, "notification@2x": "unpackage/res/icons/40x40.png",
"requiredPrivateInfos" : [ "chooseAddress" ] "proapp@2x": "unpackage/res/icons/167x167.png",
}, "settings": "unpackage/res/icons/29x29.png",
"mp-alipay" : { "settings@2x": "unpackage/res/icons/58x58.png",
"usingComponents" : true "spotlight": "unpackage/res/icons/40x40.png",
}, "spotlight@2x": "unpackage/res/icons/80x80.png"
"mp-baidu" : { },
"usingComponents" : true "iphone": {
}, "app@2x": "unpackage/res/icons/120x120.png",
"mp-toutiao" : { "app@3x": "unpackage/res/icons/180x180.png",
"usingComponents" : true "notification@2x": "unpackage/res/icons/40x40.png",
}, "notification@3x": "unpackage/res/icons/60x60.png",
"mp-jd" : { "settings@2x": "unpackage/res/icons/58x58.png",
"usingComponents" : true "settings@3x": "unpackage/res/icons/87x87.png",
}, "spotlight@2x": "unpackage/res/icons/80x80.png",
"h5" : { "spotlight@3x": "unpackage/res/icons/120x120.png"
"template" : "index.html", }
"router" : {
"mode" : "history",
"base" : "/"
},
"sdkConfigs" : {
"maps" : {}
},
"async" : {
"timeout" : 20000
},
"title" : "商城",
"optimization" : {
"treeShaking" : {
"enable" : true
}
} }
}
}
},
"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": "wx736793c30c956243",
"setting": {
"urlCheck": false,
"minified": true,
"postcss": true
}, },
"vueVersion" : "3", "optimization": {
"_spaceID" : "192b4892-5452-4e1d-9f09-eee1ece40639", "subPackages": true
"locale" : "zh-Hans", },
"fallbackLocale" : "zh-Hans" "plugins": {},
} "lazyCodeLoading": "requiredComponents",
"usingComponents": {},
"permission": {},
"requiredPrivateInfos": [
"chooseAddress"
]
},
"mp-alipay": {
"usingComponents": true
},
"mp-baidu": {
"usingComponents": true
},
"mp-toutiao": {
"usingComponents": true
},
"mp-jd": {
"usingComponents": true
},
"h5": {
"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"
}
@@ -0,0 +1,186 @@
<template>
<div class="dialog" v-if="visible && info">
<div class="dialog-main">
<div class="dialog-title">{{ info.name }}</div>
<div class="dialog-body">
<!-- <div class="dialog-score" v-if="info.result">
<div class="text" :style="{ color: info.color }">
{{ info.result }}
</div>
<div class="count">{{ info.userValue }}</div>
</div> -->
<!-- <div class="dialog-text" v-if="info.text">
{{ info.text }}
</div>
<div class="dialog-box" v-if="!info.text">
<div
v-for="(item, index) in [
info.explanationAnalyzeResult.advicesList,
info.explanationAnalyzeResult.detailsList,
].flat(Infinity)"
:key="index"
>
<div class="dialog-box-title" :style="{ margin: 0 }">
{{ item.name }}
</div>
<div
class="dialog-box-item"
v-for="(value, idx) in item.valuesList"
:key="idx + value"
>
{{ value }}
</div>
</div>
</div> -->
<div class="dialog-text">xxxxxxxxxxxxxxx</div>
</div>
<div class="dialog-btn" @click="onClose">知道了</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {};
},
props: {
visible: {
type: Boolean,
default: false,
},
info: {
type: Object,
default: null,
},
},
methods: {
onClose() {
console.log("onClose: xxxxxxxxx", this.info);
this.$emit("update:visible", false);
},
},
};
</script>
<style scoped lang="scss">
.dialog {
position: fixed;
inset: 0;
background-color: rgba(0, 0, 0, 0.4);
.dialog-main {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
display: flex;
flex-direction: column;
// background-color: red;
width: 380rpx;
// height: 548rpx;
// min-height: 363rpx;
// max-height: 548rpx;
background: #f5f7fb;
border-radius: 25rpx;
box-sizing: border-box;
padding: 25rpx;
.dialog-title {
color: #000000;
font-size: 20rpx;
text-align: center;
font-weight: bolder;
padding-bottom: 25rpx;
border-bottom: 1rpx solid #d9d9d9;
}
.dialog-body {
// padding: 25rpx;
margin-top: 25rpx;
padding-bottom: 25rpx;
// overflow-y: scroll;
flex: 1;
.dialog-score {
display: flex;
align-items: center;
flex-direction: column;
margin-bottom: 25rpx;
// margin-top: 25rpx;
// display: none;
.text {
font-size: 23rpx;
color: #5ea2f0;
font-weight: bold;
line-height: 1;
}
.count {
font-size: 18rpx;
color: #343434;
line-height: 1;
margin-top: 3rpx;
}
}
.dialog-text {
font-size: 16rpx;
color: #343434;
line-height: 21rpx;
// margin: 25rpx 0;
letter-spacing: 3rpx;
// margin-top: 25rpx;
// background-color: red;
}
.dialog-box {
overflow-y: scroll;
max-height: 600rpx;
// padding-top: 25rpx;
// background-color: red;
.dialog-box-title {
font-size: 18rpx;
color: #000000;
font-weight: bolder;
margin-top: 25rpx;
}
.dialog-box-item {
font-size: 16rpx;
color: #515f65;
line-height: 21rpx;
letter-spacing: 3rpx;
margin-top: 6rpx;
}
}
}
.dialog-btn {
height: 50rpx;
background: #5ea2f0;
border-radius: 15rpx;
font-size: 16rpx;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
&:active {
opacity: 0.4;
}
}
}
}
</style>
+161 -4
View File
@@ -310,7 +310,22 @@
</view> </view>
<view class="btn-bottom" v-if="collect"> <view class="btn-bottom" v-if="collect">
<button class="next-btn" >马上体验</button> <button class="next-btn" @click="openEmailDialog">发送到邮件</button>
</view>
<view class="m-dialog" v-if="dialog.visible">
<div class="m-dialog-main">
<div class="email">
邮箱<input
v-model="email"
focus
placeholder="请输入您的邮箱"
placeholder-class="placeholder"
/>
</div>
<button class="btn" @click="sendEmail">发送</button>
</div>
</view> </view>
</template> </template>
@@ -348,6 +363,8 @@
} from '@/constant/aiText'; } from '@/constant/aiText';
import { praiseTextApi } from '@/sheep/api/doubao'; import { praiseTextApi } from '@/sheep/api/doubao';
const email = ref('');
const { const {
// praiseTextApi, // praiseTextApi,
getStyleApi, getStyleApi,
@@ -359,6 +376,7 @@
getAiFaceResult, getAiFaceResult,
getUserInfo, getUserInfo,
getUserAvatar, getUserAvatar,
sendMail,
} = ReportApi; } = ReportApi;
const collect = ref(null); const collect = ref(null);
@@ -864,12 +882,45 @@
} }
activeTab.value = tabIndex; activeTab.value = tabIndex;
} }
const dialog = ref({
visible: false,
});
const openEmailDialog = () => {
console.log('openEmailDialog: ');
dialog.value.visible = true;
};
const sendEmail = async () => {
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
if (!emailRegex.test(email.value)) {
uni.showToast({ title: '请输入正确的邮箱', icon: 'none' });
return;
}
const res = await sendMail({
timeout: 100 * 1000,
pageUrl: window.location.href,
email: email.value,
});
if (res.data.code == 0) {
dialog.value.visible = false;
email.value = '';
uni.showToast({ title: '已经进入发送队列,稍后请查收邮件', icon: 'none' });
}
};
</script> </script>
<style> <style>
.report { .report {
padding: 20px 20px 0; padding: 20px 20px 0;
} }
.report-title { .report-title {
font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important; font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important;
font-weight: 400; font-weight: 400;
@@ -877,6 +928,7 @@
line-height: 28px !important; line-height: 28px !important;
letter-spacing: 0px; letter-spacing: 0px;
} }
.report-title-en { .report-title-en {
font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important; font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important;
font-weight: 400; font-weight: 400;
@@ -885,57 +937,69 @@
letter-spacing: 0px; letter-spacing: 0px;
color: rgba(216, 216, 216, 1); color: rgba(216, 216, 216, 1);
} }
.padding-top20 { .padding-top20 {
padding: 20px 20px 0; padding: 20px 20px 0;
} }
.color-tab-content { .color-tab-content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
} }
.color-img { .color-img {
width: 100%; width: 100%;
max-width: 400px; max-width: 400px;
border-radius: 8px; border-radius: 8px;
margin-bottom: 12px; margin-bottom: 12px;
} }
.color-desc { .color-desc {
text-align: center; text-align: center;
color: #666; color: #666;
font-size: 16px; font-size: 16px;
} }
.title { .title {
padding: 0 20px; padding: 0 20px;
} }
.swiper-container { .swiper-container {
position: relative; position: relative;
} }
.avatar-box { .avatar-box {
display: flex; display: flex;
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 235px; height: 235px;
} }
.avatar { .avatar {
position: absolute; position: absolute;
width: 235px; width: 235px;
height: 235px; height: 235px;
z-index: 9; z-index: 9;
} }
.avatar img { .avatar img {
/* width: 235px; */ /* width: 235px; */
height: 235px; height: 235px;
transform: scale(1.2); transform: scale(1.2);
} }
.swiper { .swiper {
width: 100%; width: 100%;
height: 235px; height: 235px;
margin-top: 20px; margin-top: 20px;
} }
.img-box { .img-box {
width: 235px; width: 235px;
position: relative; position: relative;
} }
.btn { .btn {
position: absolute; position: absolute;
z-index: 999; z-index: 999;
@@ -946,13 +1010,16 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.btn img { .btn img {
width: 32px; width: 32px;
height: 32px; height: 32px;
} }
.left-btn { .left-btn {
left: 0; left: 0;
} }
.right-btn { .right-btn {
right: 0; right: 0;
} }
@@ -966,6 +1033,7 @@
justify-content: center; justify-content: center;
/* background-color: red; */ /* background-color: red; */
} }
.swiper-instructions { .swiper-instructions {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -973,6 +1041,7 @@
/* justify-content: center; */ /* justify-content: center; */
padding-top: 10px; padding-top: 10px;
} }
.swiper-type-name { .swiper-type-name {
font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important; font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important;
font-weight: 400; font-weight: 400;
@@ -980,6 +1049,7 @@
line-height: 28px !important; line-height: 28px !important;
letter-spacing: 94%; letter-spacing: 94%;
} }
.swiper-type-name-en { .swiper-type-name-en {
font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important; font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important;
font-weight: 400; font-weight: 400;
@@ -990,6 +1060,7 @@
color: rgba(216, 216, 216, 1); color: rgba(216, 216, 216, 1);
margin-top: 5px; margin-top: 5px;
} }
.swiper-type-text { .swiper-type-text {
font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important; font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important;
font-weight: 400; font-weight: 400;
@@ -998,6 +1069,7 @@
letter-spacing: 0%; letter-spacing: 0%;
margin-top: 5px; margin-top: 5px;
} }
.image { .image {
width: 100%; width: 100%;
} }
@@ -1009,14 +1081,17 @@
line-height: 28px !important; line-height: 28px !important;
letter-spacing: 0% !important; letter-spacing: 0% !important;
} }
.reference-title { .reference-title {
width: 100%; width: 100%;
height: 17px; height: 17px;
} }
.reference-title img { .reference-title img {
width: 100%; width: 100%;
height: 17px; height: 17px;
} }
.reference-img-box { .reference-img-box {
height: 195.5px; height: 195.5px;
margin-top: 20px; margin-top: 20px;
@@ -1024,14 +1099,17 @@
justify-content: space-between; justify-content: space-between;
margin-bottom: 30px; margin-bottom: 30px;
} }
.reference-img-box .reference-img1 { .reference-img-box .reference-img1 {
width: 100%; width: 100%;
height: 195.5px; height: 195.5px;
} }
.reference-img-box .reference-img2 { .reference-img-box .reference-img2 {
width: 45px; width: 45px;
height: 165px; height: 165px;
} }
.reference-complate { .reference-complate {
width: 100%; width: 100%;
height: 21px; height: 21px;
@@ -1047,6 +1125,7 @@
color: rgba(216, 216, 216, 1); color: rgba(216, 216, 216, 1);
margin: 20px 0; margin: 20px 0;
} }
.avatar-warp { .avatar-warp {
width: 100%; width: 100%;
height: 192px; height: 192px;
@@ -1054,6 +1133,7 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.avatar-main { .avatar-main {
width: 116px; width: 116px;
height: 160px; height: 160px;
@@ -1061,11 +1141,13 @@
border-radius: 40px; border-radius: 40px;
overflow: hidden; overflow: hidden;
} }
.avatar-main img { .avatar-main img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
} }
.avatar-side { .avatar-side {
width: 80px; width: 80px;
height: 120px; height: 120px;
@@ -1073,28 +1155,34 @@
border-radius: 40px; border-radius: 40px;
overflow: hidden; overflow: hidden;
} }
.avatar-side img { .avatar-side img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
} }
.rich-text-content { .rich-text-content {
padding: 0 20px 20px; padding: 0 20px 20px;
} }
.face-img-box { .face-img-box {
width: 336px; width: 336px;
height: 338px; height: 338px;
} }
.face-img-box img { .face-img-box img {
width: 100%; width: 100%;
height: 100%; height: 100%;
/* border-radius: 8px; */ /* border-radius: 8px; */
} }
.more-hairstyle { .more-hairstyle {
width: 100%; width: 100%;
/* height: 135px; */ /* height: 135px; */
margin-top: 20px; margin-top: 20px;
} }
.more-hairstyle img { .more-hairstyle img {
width: 100%; width: 100%;
height: 100%; height: 100%;
@@ -1105,18 +1193,22 @@
min-height: 950px; min-height: 950px;
/* overflow-y: hidden; */ /* overflow-y: hidden; */
} }
.shengxiao { .shengxiao {
width: 100%; width: 100%;
height: 283px; height: 283px;
} }
.shengxiao img { .shengxiao img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.five-attribute-box { .five-attribute-box {
position: relative; position: relative;
/* margin-bottom: 20px; */ /* margin-bottom: 20px; */
} }
.numblock { .numblock {
width: 50px; width: 50px;
height: 50px; height: 50px;
@@ -1128,15 +1220,18 @@
color: white; color: white;
z-index: 999; z-index: 999;
} }
.five-attribute { .five-attribute {
width: 100%; width: 100%;
/* height: 597px; */ /* height: 597px; */
position: relative; position: relative;
} }
.five-attribute img { .five-attribute img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.avatorLogo { .avatorLogo {
position: absolute; position: absolute;
left: 50%; left: 50%;
@@ -1149,11 +1244,13 @@
overflow: hidden; overflow: hidden;
border: 3.22px solid rgba(167, 178, 179, 1); border: 3.22px solid rgba(167, 178, 179, 1);
} }
.avatorLogo img { .avatorLogo img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
} }
.style-type { .style-type {
line-height: 28px !important; line-height: 28px !important;
font-family: 'Microsoft YaHei', 'Arial', sans-serif !important; font-family: 'Microsoft YaHei', 'Arial', sans-serif !important;
@@ -1166,6 +1263,7 @@
/* height: 900px; /* height: 900px;
background-color: red; */ background-color: red; */
} }
.trends-title { .trends-title {
font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important; font-family: 'PingFang SC', 'Microsoft YaHei', 'Arial', sans-serif !important;
margin-bottom: 16px; margin-bottom: 16px;
@@ -1174,15 +1272,18 @@
line-height: 28px !important; line-height: 28px !important;
letter-spacing: 0px; letter-spacing: 0px;
} }
.trends-img-box { .trends-img-box {
display: flex; display: flex;
width: 100%; width: 100%;
height: 330px; height: 330px;
justify-content: space-between; justify-content: space-between;
} }
.trends-img-box1 { .trends-img-box1 {
width: 220px; width: 220px;
} }
.trends-img-box1 img { .trends-img-box1 img {
width: 100%; width: 100%;
height: 100%; height: 100%;
@@ -1194,14 +1295,17 @@
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
} }
.trends-img { .trends-img {
width: 102px; width: 102px;
height: 134px; height: 134px;
} }
.trends-img img { .trends-img img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.trends-one-try-btn { .trends-one-try-btn {
width: 102px; width: 102px;
height: 24px; height: 24px;
@@ -1218,22 +1322,29 @@
line-height: 28px !important; line-height: 28px !important;
letter-spacing: 0px; letter-spacing: 0px;
} }
.scroll-box { .scroll-box {
width: 100%; width: 100%;
overflow-x: auto; overflow-x: auto;
display: flex; display: flex;
white-space: nowrap; white-space: nowrap;
scrollbar-width: none; /* Firefox 隐藏滚动条 */ scrollbar-width: none;
-ms-overflow-style: none; /* IE/Edge 隐藏滚动条 */ /* Firefox 隐藏滚动条 */
-ms-overflow-style: none;
/* IE/Edge 隐藏滚动条 */
} }
.scroll-box::-webkit-scrollbar { .scroll-box::-webkit-scrollbar {
display: none; /* Chrome/Safari/Opera 隐藏滚动条 */ display: none;
/* Chrome/Safari/Opera 隐藏滚动条 */
} }
.fixed { .fixed {
position: fixed; position: fixed;
top: 0; top: 0;
z-index: 9999; z-index: 9999;
} }
/* 预览遮罩层样式 */ /* 预览遮罩层样式 */
.preview-mask { .preview-mask {
position: fixed; position: fixed;
@@ -1268,6 +1379,7 @@
margin-top: 20rpx; margin-top: 20rpx;
height: 300rpx; height: 300rpx;
.next-btn { .next-btn {
width: 80% !important; width: 80% !important;
height: 80rpx; height: 80rpx;
@@ -1277,4 +1389,49 @@
font-size: 32rpx; font-size: 32rpx;
} }
} }
.m-dialog {
position: fixed;
inset: 0;
background-color: rgba(0, 0, 0, 0.4);
z-index: 9999;
.m-dialog-main {
position: absolute;
left: 50%;
top: 50%;
width: 80%;
height: 50%;
background-color: white;
transform: translate(-50%, -60%);
border-radius: 15rpx;
// display: flex;
// align-items: center;
// flex-direction: column;
// justify-content: center;
padding-top: 250rpx;
box-sizing: border-box;
padding-left: 30rpx;
.email {
// font-size: 35rpx;
display: flex;
}
.placeholder {
font-size: 35rpx;
line-height: 1;
}
.btn {
width: 80% !important;
height: 80rpx;
border-radius: 16rpx;
margin-top: 50rpx;
background-color: #0d232c;
color: white;
font-size: 32rpx;
}
}
}
</style> </style>
+49 -1
View File
@@ -1,4 +1,5 @@
import request from '@/sheep/request'; import request from '@/sheep/request';
import Request from 'luch-request';
const ReportApi = { const ReportApi = {
getHairApi: (data) => { getHairApi: (data) => {
@@ -77,10 +78,57 @@ const ReportApi = {
getUserAvatar: () => getUserAvatar: () =>
request({ request({
url: '/member/user/get ', url: '/member/user/get',
method: 'get', method: 'get',
}), }),
// sendMail: () =>
// request({
// url: '/sendMail',
// method: 'post',
// }),
sendMail: (data) => {
// const init = () => {
// const http = new Request({
// baseURL: 'http://42.193.102.139:4000/api/pdf',
// timeout: 100 * 1000,
// method: 'POST',
// header: {
// Accept: 'text/json',
// 'Content-Type': 'application/json;charset=UTF-8',
// },
// // #ifdef H5
// // 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+
// withCredentials: false,
// // #endif
// });
// return http;
// };
const http = new Request({
baseURL: 'http://42.193.102.139:4000/api/pdf',
timeout: 100 * 1000,
method: 'GET',
header: {
Accept: 'text/json',
'Content-Type': 'application/json;charset=UTF-8',
Authorization: 'Bearer 14fc0280-fc65-462d-ac2d-50178c0212e3',
},
// #ifdef H5
// 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+
withCredentials: false,
// #endif
});
// const http = init();
return http.request({
method: 'POST',
data,
});
},
// https://puton.huimeimeta.com/app-api/cloth/getFaceList // https://puton.huimeimeta.com/app-api/cloth/getFaceList
}; };
export default ReportApi; export default ReportApi;