Browse Source

💄 简化页面结构

master
MelodyKnit 5 months ago
parent
commit
718eae4e66
25 changed files with 1307 additions and 482 deletions
  1. +83
    -73
      App.vue
  2. +1
    -3
      package.json
  3. +48
    -122
      pages.json
  4. +11
    -4
      pages/index/home.vue
  5. +1
    -1
      pages_order/auth/loginAndRegisterAndForgetPassword.vue
  6. +64
    -136
      pages_order/auth/wxLogin.vue
  7. +43
    -135
      pages_order/auth/wxUserInfo.vue
  8. +122
    -0
      pages_order/info/appoint.vue
  9. +191
    -0
      pages_order/info/appointDate.vue
  10. +38
    -0
      pages_order/info/chooseArea.vue
  11. +34
    -0
      pages_order/info/comment.vue
  12. +104
    -0
      pages_order/info/experience.vue
  13. +35
    -0
      pages_order/info/feedback.vue
  14. +90
    -0
      pages_order/info/fillInfo.vue
  15. +40
    -0
      pages_order/info/greet.vue
  16. +176
    -0
      pages_order/info/infoPages.vue
  17. +89
    -0
      pages_order/info/isAdult.vue
  18. +49
    -0
      pages_order/info/start.vue
  19. +63
    -0
      pages_order/info/startTest.vue
  20. +1
    -0
      pages_order/static/info/down.svg
  21. BIN
      pages_order/static/info/下拉.png
  22. +8
    -7
      project.config.json
  23. +13
    -0
      project.private.config.json
  24. +2
    -1
      uni.scss
  25. +1
    -0
      utils/index.js

+ 83
- 73
App.vue View File

@ -1,41 +1,63 @@
<script> <script>
export default { export default {
onLaunch: function() {
},
onLaunch: function() {},
onShow: function() { onShow: function() {
// this.$store.commit('initConfig') // this.$store.commit('initConfig')
}, },
onHide: function() {
}
onHide: function() {}
} }
</script> </script>
<style> <style>
/*每个页面公共css */ /*每个页面公共css */
body{
body {
background-color: #f7f7f7; background-color: #f7f7f7;
font-size: 30rpx; font-size: 30rpx;
} }
.page{
.background {
background-color: #f7f7f7;
}
.page {
padding-top: var(--window-top); padding-top: var(--window-top);
} }
/* 水平垂直居中 */
.flex-center{
.logo {
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
background-color: #e6c38b;
}
img {
width: 100%;
height: 100%;
}
.title {
font-size: 40rpx;
font-weight: bold;
margin: 40rpx 0 20rpx 0;
}
/* 布局 */
.flex-center {
display: flex; display: flex;
align-items: center;
justify-content: center; justify-content: center;
align-items: center;
} }
/* 水平居左,垂直居中 间距 20rpx */ /* 水平居左,垂直居中 间距 20rpx */
.flex-start{
.flex-start {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: start; justify-content: start;
gap: 20rpx; gap: 20rpx;
} }
/* 垂直居中 */ /* 垂直居中 */
.flex-col{
.flex-col {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
@ -44,107 +66,75 @@
justify-content: center; justify-content: center;
gap: 20rpx; gap: 20rpx;
} }
/* 垂直居左 */ /* 垂直居左 */
.flex-start-col{
.flex-start-col {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: start; align-items: start;
justify-content: center; justify-content: center;
gap: 40rpx; gap: 40rpx;
} }
/* 两段对齐 */ /* 两段对齐 */
.flex-sb{
.flex-sb {
display: flex; display: flex;
align-items: center; align-items: center;
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
} }
/* 两段对齐 */ /* 两段对齐 */
.flex-sa{
.flex-sa {
display: flex; display: flex;
align-items: center; align-items: center;
width: 100%; width: 100%;
justify-content: space-around; justify-content: space-around;
} }
/* 字体加粗 */ /* 字体加粗 */
.font-bold{
.font-bold {
font-weight: bold; font-weight: bold;
letter-spacing: 2rpx; letter-spacing: 2rpx;
} }
/* 上边距 */
.mt-60{
margin-top: 60rpx;
}
.mt-40{
margin-top: 40rpx;
}
.dline{
border: 1px solid #f1f1f1;
width: 100%;
}
.btn-def{
width: 30%;
border: none;
outline: none;
font-size: 28rpx;
}
.btn-suc{
width: 30%;
border: none;
outline: none;
font-size: 28rpx;
}
.mt-40{
margin-top: 40rpx;
}
.mb-60{
margin-bottom: 60rpx;
}
.home{
background-image: url('static/image/home/home-background.png');
background-size: cover;
.home {
/* background-image: url('./static/image/home/home-background.png'); */
/* background-size: cover;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
width: 100%; width: 100%;
height: 100vh; height: 100vh;
overflow: hidden;
overflow: hidden; */
} }
.content{
.content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
padding-top: 31vh;
padding-top: 30vh;
} }
.mian-btn{
.mian-btn {
border: 4rpx solid #e6bf7f; border: 4rpx solid #e6bf7f;
padding: 16rpx 66rpx; padding: 16rpx 66rpx;
border-radius: 66rpx; border-radius: 66rpx;
margin-top: 30rpx; margin-top: 30rpx;
color: #e6bf7f; color: #e6bf7f;
} }
.active{
.active {
background-color: #e6bf7f; background-color: #e6bf7f;
color: white; color: white;
} }
.second-color{
.second-color {
color: #d2d2d2; color: #d2d2d2;
margin-top: 20rpx; margin-top: 20rpx;
font-size: 26rpx; font-size: 26rpx;
} }
.btn2{
.btn2 {
border: 4rpx solid #ecb864; border: 4rpx solid #ecb864;
display: flex; display: flex;
align-items: center; align-items: center;
@ -153,9 +143,8 @@
color: #ecb864; color: #ecb864;
border-radius: 10rpx; border-radius: 10rpx;
} }
.btn3{
.btn3 {
border: 4rpx solid #ecb864; border: 4rpx solid #ecb864;
display: flex; display: flex;
align-items: center; align-items: center;
@ -164,4 +153,25 @@
color: #ecb864; color: #ecb864;
border-radius: 10rpx; border-radius: 10rpx;
} }
</style>
.mb-60 {
margin-bottom: 60rpx;
}
.mt-60 {
margin-top: 60rpx;
}
.mt-40 {
margin-top: 40rpx;
}
.mt-20 {
margin-top: 20vh;
}
.content-text {
line-height: 50rpx;
font-size: 28rpx;
}
</style>

+ 1
- 3
package.json View File

@ -14,9 +14,7 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@dcloudio/uni-ui": "^1.5.6",
"ali-oss": "^6.21.0", "ali-oss": "^6.21.0",
"dayjs": "^1.11.12",
"sass": "^1.79.3"
"dayjs": "^1.11.12"
} }
} }

+ 48
- 122
pages.json View File

@ -1,129 +1,26 @@
{ {
"pages": [
{
"path" : "pages/index/home",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/area",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/checkAge",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/fillIn",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/greet",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/greetP1",
"style" :
{
"navigationBarTitleText" : ""
"pages": [{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": ""
} }
}, },
{ {
"path" : "pages/index/greetP2",
"style" :
{
"navigationBarTitleText" : ""
"path": "pages/index/order",
"style": {
"navigationBarTitleText": ""
} }
}, },
{ {
"path" : "pages/index/greetP3",
"style" :
{
"navigationBarTitleText" : ""
"path": "pages/index/center",
"style": {
"navigationBarTitleText": ""
} }
}, },
{ {
"path" : "pages/index/greetP4",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/greetP5",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/appointment",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/back",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/viewDetail",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/reschedule",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/cancle",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/start",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/comment",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/selectAppointment",
"style" :
{
"navigationBarTitleText" : ""
"path": "pages/index/home",
"style": {
"navigationBarTitleText": ""
} }
} }
], ],
@ -163,17 +60,46 @@
"path": "auth/loginAndRegisterAndForgetPassword" "path": "auth/loginAndRegisterAndForgetPassword"
}, },
{ {
"path" : "auth/takePhoto",
"style" :
{
"navigationBarTitleText" : ""
}
"path": "info/chooseArea"
},
{
"path": "info/isAdult"
},
{
"path": "info/fillInfo"
},
{
"path": "info/greet"
},
{
"path": "info/startTest"
},
{
"path": "info/infoPages"
},
{
"path": "info/appointDate"
},
{
"path" : "info/feedback"
},
{
"path" : "info/start"
},
{
"path" : "info/experience"
},
{
"path" : "info/comment"
},
{
"path" : "info/appoint"
} }
] ]
}], }],
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
"navigationBarTitleText": "答题小程序",
"navigationBarTitleText": "酒店桌布",
"navigationBarBackgroundColor": "#F8F8F8", "navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8",
"navigationStyle": "custom" "navigationStyle": "custom"


+ 11
- 4
pages/index/home.vue View File

@ -4,7 +4,7 @@
<span class="font-bold mb-60">您是否有品鉴威士忌的习惯?</span> <span class="font-bold mb-60">您是否有品鉴威士忌的习惯?</span>
<view class="mian-btn" :class="{active:isActive === 'yes'}" @click="setActive('yes')"></view> <view class="mian-btn" :class="{active:isActive === 'yes'}" @click="setActive('yes')"></view>
<view class="mian-btn" :class="{active:isActive === 'no'}" @click="setActive('no')"></view> <view class="mian-btn" :class="{active:isActive === 'no'}" @click="setActive('no')"></view>
<view class="b-btn">
<view class="b-btn mt-60">
<view class="pre-btn"> <view class="pre-btn">
上一题 上一题
</view> </view>
@ -29,9 +29,16 @@
this.isActive = value this.isActive = value
}, },
next(){ next(){
uni.navigateTo({
url:'/pages/index/area'
})
if(this.isActive!==null){
uni.navigateTo({
url:'/pages_order/info/chooseArea'
})
}else{
uni.showToast({
title:'请选择后进行下一题',
icon: 'none'
})
}
} }
} }
} }


+ 1
- 1
pages_order/auth/loginAndRegisterAndForgetPassword.vue View File

@ -198,7 +198,7 @@
// uni.$uv.toast(''); // uni.$uv.toast('');
}, },
start() { start() {
// uni.`$uv.toast('');
// uni.$uv.toast('');
} }
} }
} }


+ 64
- 136
pages_order/auth/wxLogin.vue View File

@ -1,6 +1,6 @@
<template> <template>
<view class="login"> <view class="login">
<uv-navbar leftText="登录" height="100rpx" leftIconSize="28rpx" @leftClick="backUp"></uv-navbar>
<uv-navbar leftText="注册" @leftClick="leftClick" class="background"></uv-navbar>
<view class="logo"> <view class="logo">
<!-- <image src="/static/image/login/logo.png" mode=""></image> --> <!-- <image src="/static/image/login/logo.png" mode=""></image> -->
</view> </view>
@ -11,7 +11,7 @@
<view class="icon"> <view class="icon">
<image src="../static/auth/wx.png" mode=""></image> <image src="../static/auth/wx.png" mode=""></image>
</view> </view>
<view class="login-name">
<view class="">
微信登录 微信登录
</view> </view>
</view> </view>
@ -19,85 +19,49 @@
使用短信验证登录 使用短信验证登录
</view> --> </view> -->
<view class="config"> <view class="config">
<uv-checkbox-group v-model="checkboxValue" shape="circle"> <uv-checkbox-group v-model="checkboxValue" shape="circle">
<view class="contents">
<view style="display: flex;">
<uv-checkbox size="35rpx" icon-size="25rpx" activeColor="#09b963" :name="1"></uv-checkbox>
<span>已同意</span>
<view class="flex-center">
<uv-checkbox size="30rpx" icon-size="20rpx" activeColor="#07c060" :name="1"></uv-checkbox>
<text>已同意</text>
<text @click="openConfigDetail('privacyAgreement')">隐私政策</text> <text @click="openConfigDetail('privacyAgreement')">隐私政策</text>
<text @click="openConfigDetail('userAgreement')">服务条款</text> <text @click="openConfigDetail('userAgreement')">服务条款</text>
<img class="info" src="../static/auth/info.svg" alt="info" />
<view class="info">
<img src="../static/auth/info.svg" alt="info" />
</view>
</view> </view>
</view>
</uv-checkbox-group> </uv-checkbox-group>
</view> </view>
<uv-popup mode="bottom" round="20" ref="popup" duration="500">
<view class="flex-start-col" style="padding: 80rpx 30rpx;">
<view class="flex-start">
<view class="flex-start">
<view class="circle-logo"></view>
<span class="font-bold">答题小程序</span>
</view>
<span style="margin-left: 60rpx; color: #7a7a7a;">申请</span>
</view>
<span class="font-bold">获取你的昵称头像地区及性别</span>
<view class="dline"></view>
<view class="flex-sb">
<view class="flex-start">
<view class="avatar">
<img style="width: 100%; height: 100%;" src="../static/logo.png" alt="" />
</view>
<view class="flex-start-col" style="margin-left: 20rpx; gap: 10rpx;">
<span class="font-bold">可可</span>
<span style="color: #d2d2d2; font-size: 28rpx;">微信个人信息</span>
</view>
</view>
<view class="">
<img src="../static/auth/check.svg" alt="" />
</view>
</view>
<view class="dline"></view>
<span style="color: #004a77; font-size: 26rpx;">使用其他头像和昵称</span>
<view class="flex-sa mt-20">
<uv-button class="btn-def" text="拒绝" :custom-style=customStyle></uv-button>
<uv-button class="btn-suc" type="error" text="允许" @click="allow"></uv-button>
</view>
</view>
</uv-popup>
<uv-popup mode="center" round="20" ref="service" duration="500"> <uv-popup mode="center" round="20" ref="service" duration="500">
<view class="flex-col" style="padding: 60rpx 30rpx; width: 88vw;">
<div class="icon-service"></div>
<h3>服务协议和隐私权政策</h3>
<span style="color: #7a7a7a; line-height: 55rpx;">
请您务必审慎阅读充分理解用户协议和隐私
政策各条款包括但不限于用户注意事项
户行为规范以及为了向你提供服务而收集使
存储你的个人信息的情况等你可阅读
<span style="color: black; font-weight: bold;">遗产里的景德镇平台用户服务协议</span>
<span style="color: black; font-weight: bold;">遗产里的景德镇平台隐私权政策</span>
了解详细信息如你同意请点击下方按钮开始接受我们的服务
</span>
<view class="flex-sa mt-40 mb-60">
<uv-button class="btn-def" text="不同意" :custom-style=customStyle @click="rejective"></uv-button>
<uv-button class="btn-suc" type="error" text="同意" @click="agree"></uv-button>
<view class="flex-col" style="width: 88vw;">
<view class="flex-col" style="width: 76vw; padding: 30rpx;">
<div class="icon-service">
<img src="" alt="" />
</div>
<h3>服务协议和隐私权政策</h3>
<span style="color: #7a7a7a; font-size: 26.5rpx; line-height: 55rpx;">
请您务必审慎阅读充分理解用户协议和隐私政策各条款包括但不限于用户注意事项用户行为规范以及为了向你提供服务而收集使用存储你的个人信息的情况等你可阅读
<span style="color: black; font-weight: bold; font-size: 26.5rpx; ">遗产里的景德镇平台用户服务协议</span>
<span style="color: black; font-weight: bold; font-size: 26.5rpx; ">遗产里的景德镇平台隐私权政策</span>
了解详细信息如你同意请点击下方按钮开始接受我们的服务
</span>
<view class="flex-sa mt-40 mb-60">
<uv-button text="不同意" size="large" :custom-style=customStyle @click="close()"></uv-button>
<uv-button type="error" size="large" text="同意" @click="agree"></uv-button>
</view>
</view> </view>
</view> </view>
</uv-popup> </uv-popup>
<!-- <configPopup ref="popup"></configPopup> -->
<configPopup ref="popup"></configPopup>
</view> </view>
</template> </template>
<script> <script>
// import configPopup from '@/components/config/configPopup.vue';
import configPopup from '@/components/config/configPopup.vue';
export default { export default {
name: 'Login', name: 'Login',
data() { data() {
@ -106,11 +70,6 @@
} }
}, },
methods: { methods: {
backUp() {
uni.navigateTo({
url: '/pages_order/auth/wxUserInfo'
});
},
wxLogin() { wxLogin() {
if (!this.checkboxValue.length) { if (!this.checkboxValue.length) {
return uni.showToast({ return uni.showToast({
@ -118,24 +77,30 @@
icon: 'none' icon: 'none'
}) })
} }
this.$refs.popup.open();
this.open()
// this.$store.commit('login')
}, },
allow(){
this.$refs.popup.close();
leftClick() {
uni.navigateBack({
delta: 1
})
},
openConfigDetail(key) {
this.$refs.popup.open(key)
},
open(){
this.$refs.service.open(); this.$refs.service.open();
}, },
rejective(){
close(){
this.$refs.service.close(); this.$refs.service.close();
}, },
agree(){ agree(){
this.$refs.service.close();
this.close();
uni.navigateTo({ uni.navigateTo({
url:'/pages/index/home' url:'/pages/index/home'
}) })
},
//
openConfigDetail(key) {
this.$refs.popup.open(key)
} }
}, },
computed: { computed: {
@ -154,43 +119,25 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 100vh;
height: 80vh;
flex-direction: column; flex-direction: column;
position: relative; position: relative;
background-color: white;
.logo {
height: 160rpx;
width: 160rpx;
background-color: #e5c28b;
border-radius: 15rpx;
image {
width: 80rpx;
height: 80rpx;
}
margin-bottom: 20rpx;
}
.title {
position: relative;
font-weight: bold;
font-size: 35rpx;
}
.btn { .btn {
width: 80%;
padding: 20rpx 0;
background-color: $uni-color-login-btn;
width: 70%;
height: 80rpx;
background-color: $uni-wx-color;
color: #fff; color: #fff;
display: flex; display: flex;
align-items: center;
justify-content: center; justify-content: center;
align-items: center;
margin: 20rpx 0; margin: 20rpx 0;
border-radius: 100rpx;
border-radius: 120rpx;
.icon { .icon {
position: relative;
top: 6rpx;
right: 6rpx;
margin-right: 10rpx; margin-right: 10rpx;
image { image {
@ -198,12 +145,6 @@
height: 35rpx; height: 35rpx;
} }
} }
.login-name {
position: relative;
bottom: 6rpx;
left: 10rpx;
}
} }
.b2 { .b2 {
@ -212,41 +153,28 @@
} }
.mt { .mt {
margin-top: 300rpx;
margin-top: 200rpx;
} }
.config { .config {
font-size: 26rpx;
margin-top: 20rpx;
.contents {
.info {
position: absolute;
right: 60rpx;
width: 35rpx;
height: 35rpx;
}
}
font-size: 22rpx;
text-align: center;
line-height: 40rpx;
text { text {
color: #47b87e;
color: $uni-wx-color;
} }
}
.circle-logo {
width: 50rpx;
height: 50rpx;
background-color: #e5c28b;
border-radius: 50%;
.info {
width: 30rpx;
height: 30rpx;
position: relative;
left: 80rpx;
}
} }
.avatar {
width: 90rpx;
height: 90rpx;
}
.icon-service{
.icon-service {
width: 90rpx; width: 90rpx;
height: 90rpx; height: 90rpx;
background-color: #e4c28b; background-color: #e4c28b;


+ 43
- 135
pages_order/auth/wxUserInfo.vue View File

@ -1,17 +1,16 @@
<template> <template>
<view class="login"> <view class="login">
<view class="logo"> <view class="logo">
<!-- <image src="/static/image/login/logo.png" mode=""></image> -->
<img src="" alt="" />
</view> </view>
<view class="title"> <view class="title">
答题小程序 答题小程序
</view> </view>
<view class="contents">
<view class="">
申请获取你的头像昵称 申请获取你的头像昵称
</view> </view>
<view class="chooseAvatar" @click="open" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<button class="chooseAvatar" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<view class="line"> <view class="line">
<view class=""> <view class="">
头像 头像
@ -19,61 +18,24 @@
<view class=""> <view class="">
<image :src="userInfo.headImage" v-if="userInfo.headImage" style="width: 60rpx;height: 60rpx;" <image :src="userInfo.headImage" v-if="userInfo.headImage" style="width: 60rpx;height: 60rpx;"
mode=""></image> mode=""></image>
<image src="../static/auth/headImage.png" v-else style="width: 50rpx;height: 50rpx;" mode=""> <image src="../static/auth/headImage.png" v-else style="width: 50rpx;height: 50rpx;" mode="">
</image> </image>
</view> </view>
</view> </view>
</view>
<view class="line line-2">
</button>
<view class="line">
<view class=""> <view class="">
昵称 昵称
</view> </view>
<view class=""> <view class="">
<input type="nickname" placeholder="请输入称" style="text-align: right;" id="nickName"
v-model="userInfo.nickName" @input="changeName"/>
<input type="nickname" placeholder="请输入称" style="text-align: right;" id="nickName"
v-model="userInfo.nickName" />
</view> </view>
</view> </view>
<view class="btn" @click="submit"> <view class="btn" @click="submit">
确认 确认
</view> </view>
<uv-popup mode="bottom" round="20" ref="popup" duration="500">
<view class="flex-start-col" style="padding: 30px;">
<view class="flex-start">
<view class="flex-start">
<view class="circle-logo"></view>
<span class="font-bold">答题小程序</span>
</view>
<span style="margin-left: 60rpx; color: #7a7a7a;">申请</span>
</view>
<span class="font-bold">获取你的昵称头像地区及性别</span>
<view class="dline"></view>
<view class="flex-sb" @click="queryInfo">
<view class="flex-start">
<view class="avatar">
<img style="width: 100%; height: 100%;" :src="userInfo.avatar" alt="" />
</view>
<view class="flex-start-col" style="margin-left: 20rpx; gap: 10rpx;">
<span class="font-bold">{{userInfo.userName}}</span>
<span style="color: #d2d2d2; font-size: 28rpx;">微信个人信息</span>
</view>
</view>
<view class="">
<img src="../static/auth/check.svg" alt="" />
</view>
</view>
<view class="dline"></view>
<view class="flex-col" style="gap: 35rpx;">
<span @click="chooseavatar">从相册选择</span>
<span @click="takePhoto">拍照</span>
<view style="width: 100%; border: 6rpx solid #f1f1f1;"></view>
<span @click="close">取消</span>
</view>
</view>
</uv-popup>
<video v-show="show" ref="showVideo" :controls="false" :enable-progress-gesture="false" object-fit="cover"
:show-center-play-btn="false" style="width: 100%; height:calc(100% - 216rpx) ; display: block;">
</video>
</view> </view>
</template> </template>
@ -81,29 +43,15 @@
export default { export default {
data() { data() {
return { return {
show:false,
userInfo: { userInfo: {
headImage: '', headImage: '',
nickName: '', nickName: '',
userName: '可可',
avatar: '../static/logo.png'
} }
}; };
}, },
onShow() {}, onShow() {},
computed: {}, computed: {},
methods: { methods: {
open() {
this.$refs.popup.open();
},
close() {
this.$refs.popup.close();
},
queryInfo() {
this.userInfo.nickName = this.userInfo.userName;
this.userInfo.headImage = this.userInfo.avatar;
this.close();
},
onChooseAvatar(res) { onChooseAvatar(res) {
let self = this let self = this
self.$Oss.ossUpload(res.target.avatarUrl) self.$Oss.ossUpload(res.target.avatarUrl)
@ -111,38 +59,39 @@
self.userInfo.headImage = url self.userInfo.headImage = url
}) })
}, },
chooseavatar() {
let self = this
uni.chooseImage({
count: 1,
sourceType: ['album'],
success: function(res) {
self.userInfo.headImage = res.tempFiles[0].path;
self.userInfo.avatar = res.tempFiles[0].path;
self.close();
}
});
},
changeName(value){
this.userInfo.nickName = value.detail.value;
this.userInfo.userName = value.detail.value;
},
takePhoto() {
uni.navigateTo({
url:'/pages_order/auth/takePhoto'
})
},
submit() { submit() {
if (this.userInfo.nickName && this.userInfo.headImage) {
uni.navigateTo({
url: '/pages_order/auth/wxLogin'
let self = this
uni.createSelectorQuery().in(this)
.select("#nickName")
.fields({
properties: ["value"],
}) })
} else {
uni.showToast({
title: '您的头像和用户名不能为空',
icon: 'none'
.exec((res) => {
const nickName = res?.[0]?.value
self.userInfo.nickName = nickName
//
uni.navigateTo({
url: 'wxLogin'
})
// if (self.$utils.verificationAll(self.userInfo, {
// headImage: '',
// nickName: '',
// })) {
// return
// }
self.$api('infoUpdateInfo', self.userInfo, res => {
if (res.code == 200) {
uni.switchTab({
url: '/pages/index/index'
})
}
})
}) })
}
}, },
} }
} }
@ -156,51 +105,21 @@
align-items: center; align-items: center;
height: 80vh; height: 80vh;
.logo {
height: 160rpx;
width: 160rpx;
background-color: #e5c28b;
border-radius: 15rpx;
}
.title {
margin-top: 25rpx;
font-weight: bolder;
}
.contents {
margin-top: 35rpx;
font-size: 28rpx;
}
.line { .line {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
width: 80%; width: 80%;
border-top: 1px solid #00000023;
border-bottom: 1px solid #00000023; border-bottom: 1px solid #00000023;
padding: 30rpx 0; padding: 30rpx 0;
margin: 0 auto; margin: 0 auto;
} }
.line-2 {
border-top: none;
padding: 45rpx 0;
}
.chooseAvatar { .chooseAvatar {
width: 100%; width: 100%;
padding: 0; padding: 0;
margin: 0; margin: 0;
margin-top: 10vh; margin-top: 10vh;
border: none;
outline: none;
}
.chooseAvatar:after {
border: none;
outline: none;
} }
.btn { .btn {
@ -210,25 +129,14 @@
width: 80%; width: 80%;
padding: 20rpx 0; padding: 20rpx 0;
text-align: center; text-align: center;
border-radius: 100rpx;
border-radius: 115rpx;
margin-top: 10vh; margin-top: 10vh;
outline: none;
}
.btn:active {
background-color: #e5c28b;
}
.circle-logo {
width: 50rpx;
height: 50rpx;
background-color: #e5c28b;
border-radius: 50%;
} }
.avatar {
width: 90rpx;
height: 90rpx;
uni-button:after {
content: "";
border: none !important;
outline: none !important;
} }
} }
</style> </style>

+ 122
- 0
pages_order/info/appoint.vue View File

@ -0,0 +1,122 @@
<template>
<view class="home">
<view class="content" style="padding-top: 15vh;">
<view class="flex-col mt-40" style="width: 90vw; padding: 20rpx 0; gap: 10rpx; border-radius: 12rpx; border: 2rpx solid #07c060;">
<span style="font-size: 28rpx;">请选择您方便的时间</span>
<span style="font-size: 28rpx;">我们将根据您的日程为您安排上门威士忌品鉴服务</span>
<span style="font-size: 28rpx;">确保您能在舒适的环境中尽享专属体验</span>
</view>
<span class="font-bold" style="margin-top: 5vh;">预约信息</span>
<view class="" style="width: 90vw;">
<view class="flex-sb mt-40">
<view class="date">
{{year}}
<img src="../static/info/下拉.png" style="width: 25rpx; height: 25rpx;"/>
</view>
<view class="date">
{{date}}
<img src="../static/info/下拉.png" style="width: 25rpx; height: 25rpx;"/>
</view>
<view class="date">
{{time}}
<img src="../static/info/下拉.png" style="width: 25rpx; height: 25rpx;"/>
</view>
</view>
<view class="flex-start-col mt-40">
<view class="flex-center" style="align-items: flex-end;">
<view class="flex-start-col" style="gap: 10rpx;">
<span>姓名:</span>
<input v-model="username" type="text" class="input" style="width: 20vw;"></input>
</view>
<span style="margin-left: 20rpx; color: #dddddc; font-size: 26rpx;">(最开始填写的直接导入)</span>
</view>
<view class="flex-center" style="align-items: flex-end;">
<view class="flex-start-col" style="gap: 10rpx;">
<span>联系电话:</span>
<input v-model="phone" type="tel" class="input"></input>
</view>
<span style="margin-left: 20rpx; color: #dddddc; font-size: 26rpx;">(最开始填写的直接导入)</span>
</view>
<view class="flex-center">
<view class="flex-start-col" style="gap: 10rpx; width: 80vw;">
<span>详细地址:</span>
<input v-model="address" type="text" class="input" style="width: 100%; height: 60rpx;"></input>
</view>
</view>
</view>
</view>
<view class="flex-col query" style="gap: 0rpx;">
<view class="flex-center" style="gap: 30rpx;">
<view class="btn2" style="padding: 16rpx 80rpx;" @click="pre">
返回
</view>
<view class="btn2" style="padding: 16rpx 80rpx;" @click="next">
确定 / 提交
</view>
</view>
<text class="second-color">欢快无限饮&nbsp;&nbsp;饮酒有限度</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
year: '2024年',
date: '9月20日',
time: '08:00',
firstName: '张',
lastName: '里于',
gender: '',
phone: '',
message: ''
}
},
methods: {
next() {
uni.navigateTo({
url: '/pages_order/info/start'
})
},
pre(){
uni.navigateBack({
delta:1
})
}
},
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
bottom: -5vh;
}
.date {
border: 2rpx solid $uni-color;
padding: 14rpx 30rpx;
border-radius: 12rpx;
}
.main-color{
flex-wrap: nowrap;
color: $uni-color;
}
.input{
border: 2rpx solid #FD5100;
border-radius: 10rpx;
padding: 10rpx;
}
.area{
border: 2rpx solid #FD5100;
border-radius: 10rpx;
padding: 10rpx;
width: 100%;
height: 120rpx;
}
</style>

+ 191
- 0
pages_order/info/appointDate.vue View File

@ -0,0 +1,191 @@
<template>
<view class="home">
<view class="content" style="padding-top: 15vh;">
<span class="font-bold">预约日期和时间</span>
<view class="flex-center mt-40" style="gap: 50rpx;" @click="open">
<view class="date">
{{year}}
</view>
<view class="date">
{{date}}
</view>
<view class="date">
{{time}}
</view>
</view>
<span class="font-bold" style="margin-top: 5vh;">预约信息</span>
<view class="" style="width: 80vw;">
<view class="flex-sb mt-40">
<view class="flex-center">
<view class="date">
{{firstName}}
</view>
<span style="margin-left: 30rpx;"></span>
</view>
<view class="flex-center">
<view class="date">
{{lastName}}
</view>
<span style="margin-left: 30rpx;"></span>
</view>
<view class="flex-center">
<view class="flex-center" style="position: relative;" @click="checkGender">
<span class="main-color">先生</span>
<img src="../static/info/下拉.png" alt="" style="width: 40rpx; height: 40rpx;" />
</view>
<view class="flex-col select" id="select" ref="check">
<span class="main-color">先生</span>
<span class="main-color">女士</span>
</view>
</view>
</view>
<view class="flex-sb mt-40">
<view class="flex-center" style="gap: 30rpx;">
<input v-model="phone" type="tel" class="input"></input>
<span>手机</span>
</view>
<view class="">
<span class="main-color" style="text-decoration: underline;">修改号码</span>
</view>
</view>
<view class="mt-40" style="width: 100%;">
<textarea class="area" cols="20" rows="20" placeholder="如有下一步需求,请告诉我们"></textarea>
</view>
<view class="flex-start-col mt-40" style="gap: 20rpx;">
<view style="display: flex; align-items: start; gap: 20rpx;">
<uv-icon size="40" name="checkmark-circle" color="#07c060"></uv-icon>
<span style="font-size: 28rpx;">本人提交此信息即表示本人已网读并接受Genius JourneyClub 的使用条款和个人信息处理规则</span>
</view>
<view class="flex-center" style="gap: 20rpx;">
<uv-icon size="40" name="info-circle" color="#07c060"></uv-icon>
<span style="font-size: 28rpx;">未满18周岁请勿参与此内容</span>
</view>
</view>
</view>
<view class="flex-col query" style="gap: 0rpx;">
<view class="flex-center" style="gap: 30rpx;">
<view class="btn2" style="padding: 16rpx 80rpx;" @click="pre">
返回
</view>
<view class="btn2" style="padding: 16rpx 80rpx;" @click="next">
取消预约
</view>
</view>
<text class="second-color">欢快无限饮&nbsp;&nbsp;饮酒有限度</text>
</view>
</view>
<uv-popup mode="bottom" round="20" closeable ref="service" duration="500">
<view class="flex-col" style="gap: 30rpx; padding: 40rpx 0;">
<text style="font-weight: bold;">请填写预约信息</text>
<view class="flex-sa">
<img src="../static/address/icon.png" alt="" style="width: 40rpx; height: 40rpx;" />
<span>{{username}}</span>
<span>{{address}}</span>
</view>
</view>
<view class="" style="height: 20rpx; width: 100vw; background-color: #f6f6f6;">
</view>
<view class="" style="padding: 40rpx;">
<span>预约时间</span>
<view class="flex-sa mt-40" style="background-color: #f6f6f6; padding: 30rpx 20rpx;">
<span style="margin-right: 30rpx;">备注</span>
<uv-input placeholder="填选,可输入的其他需求" border="none" v-model="remark_column"></uv-input>
</view>
<uv-calendar ref="calendar" @confirm="confirm"></uv-calendar>
<view class="flex-sb mt-40" style="width: 90vw;border-radius: 100rpx; border: 2rpx solid #fab445; box-sizing: border-box; overflow: hidden;">
<span style=" padding: 30rpx;color: #fab445;">暂不预约先购买</span>
<span style=" padding: 30rpx;background-color: #fab445; color: white;">下一步确认订单</span>
</view>
</view>
</uv-popup>
</view>
</template>
<script>
export default {
data() {
return {
year: '2024年',
date: '9月20日',
time: '08:00',
firstName: '张',
lastName: '里于',
gender: '',
phone: '',
message: '',
username: '利曼和',
address: '湖南省长沙市天心村天启小区6栋',
remark_column:''
}
},
methods: {
next() {
uni.navigateTo({
url: '/pages_order/info/start'
})
},
pre() {
uni.navigateBack({
delta: 1
})
},
open() {
this.$refs.calendar.open();
this.$refs.service.open();
},
confirm(e){
console.log(e);
},
checkGender(){
}
},
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
bottom: -5vh;
}
.date {
border: 2rpx solid $uni-color;
padding: 14rpx 30rpx;
border-radius: 12rpx;
}
.main-color {
flex-wrap: nowrap;
color: $uni-color;
}
.input {
border: 2rpx solid #FD5100;
border-radius: 10rpx;
padding: 10rpx;
}
.area {
border: 2rpx solid #FD5100;
border-radius: 10rpx;
padding: 10rpx;
width: 100%;
height: 120rpx;
}
.select{
position: absolute;
margin-top: 180rpx;
margin-right: 25rpx;
gap: 10rpx;
width: 120rpx;
height: 120rpx;
background: white;
border-radius: 10rpx;
font-size: 28rpx;
transition: 0.4s;
display: none;
}
</style>

+ 38
- 0
pages_order/info/chooseArea.vue View File

@ -0,0 +1,38 @@
<template>
<view class="home">
<view class="content">
<span class="font-bold mb-60">请选择您所在的区域</span>
<view class="flex-col query" style="gap: 0rpx;">
<view class="btn2" @click="next">
确定
</view>
<text class="second-color">欢快无限饮&nbsp;&nbsp;饮酒有限度</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
next() {
uni.navigateTo({
url: '/pages_order/info/isAdult'
})
}
}
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
bottom: -25vh;
}
</style>

+ 34
- 0
pages_order/info/comment.vue View File

@ -0,0 +1,34 @@
<template>
<view class="home">
<view class="content" style="padding-top: 30vh;">
<span v-for="(item,index) in textList1" :key="index" class="content-text" style="font-size: 28rpx;">
{{item}}
</span>
</view>
</view>
</template>
<script>
export default {
data() {
return {
textList1: [
'感谢您分享宝贵的评价!',
'您的反馈对我们非常重要。',
'祝愿您每一天都充满精彩与愉悦,生活美满,',
'尽享每一杯威士忌的独特魅力!'
],
}
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
top: 30vh;
}
</style>

+ 104
- 0
pages_order/info/experience.vue View File

@ -0,0 +1,104 @@
<template>
<view class="home">
<view class="content" style="padding-top: 20vh;">
<span style="font-weight: bold; margin-bottom: 40rpx;">整体体验</span>
<view class="flex-start-col" style="gap: 10rpx;">
<text>请评价服务的整体质量和满足感</text>
<text>包括品鉴过程中的舒适度和整体氛围</text>
</view>
<view class="mt-40">
<uv-radio-group shape="circle" v-model="checkboxValue">
<view style="display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; width: 72vw;">
<uv-radio inactiveColor="#ecb864" activeColor="#ecb864" labelColor="#ecb864" size="30"
labelSize="18px" iconSize="10px" label="不满意" name="不满意"
:customStyle="{margin: '8px'}"></uv-radio>
<uv-radio inactiveColor="#ecb864" activeColor="#ecb864" labelColor="#ecb864" size="30"
labelSize="18px" iconSize="10px" label="一般" name="一般"
:customStyle="{margin: '8px'}"></uv-radio>
<uv-radio inactiveColor="#ecb864" activeColor="#ecb864" labelColor="#ecb864" size="30"
labelSize="18px" iconSize="10px" label="满意" name="满意"
:customStyle="{margin: '8px'}"></uv-radio>
</view>
</uv-radio-group>
</view>
<view class="flex-center mt-20" style="width: 60%; gap: 10rpx;">
<view class="box active"></view>
<view class="box"></view>
<view class="box"></view>
<view class="box"></view>
<view class="box"></view>
</view>
<view class="flex-center" style="margin-top: 20rpx;">
<span class="flex-center" style="font-size: 24rpx; gap: 10rpx;">
<span class="indexs">{{index}}</span>
<span>/</span>
<span>5</span>
</span>
</view>
<view class="flex-col query mt-40" style="gap: 0rpx;">
<view class="flex-center" style="gap: 30rpx;">
<view class="btn2" style="padding: 16rpx 80rpx;" @click="pre">
上一题
</view>
<view class="btn2" style="padding: 16rpx 80rpx;" @click="next">
结束
</view>
</view>
<text class="second-color">欢快无限饮&nbsp;&nbsp;饮酒有限度</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
index: 1,
}
},
methods: {
query() {
},
pre() {
uni.navigateBack({
delta: 1
})
},
next() {
uni.redirectTo({
url: '/pages_order/info/startTest'
})
}
}
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
top: 10vh;
}
.box {
height: 15rpx;
width: 75rpx;
border-radius: 30rpx;
background-color: #fff6e5;
border: 2rpx solid #f6cf8e;
}
.active {
background-color: #f6cf8e;
}
.indexs {
color: #f6cf8e;
}
</style>

+ 35
- 0
pages_order/info/feedback.vue View File

@ -0,0 +1,35 @@
<template>
<view class="home">
<view class="content" style="padding-top: 30vh;">
<span v-for="(item,index) in textList1" :key="index" class="content-text" style="font-size: 28rpx;">
{{item}}
</span>
</view>
</view>
</template>
<script>
export default {
data() {
return {
textList1: [
'我们已收到您的取消请求,',
'非常遗憾无法为您提供此次上门威士忌品鉴服务。',
'如果您有其他需求或在未来希望重新预约,',
'随时与我们联系。',
'期待在合适的时间为您奉上难忘的品监体验!',
],
}
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
top: 30vh;
}
</style>

+ 90
- 0
pages_order/info/fillInfo.vue View File

@ -0,0 +1,90 @@
<template>
<view class="home">
<view class="content" style="padding-top: 25vh;">
<span class="font-bold">为了给您提供更个性化的服务</span>
<span class="font-bold">请您填写以下基本信息</span>
<view class="flex-col mt-40">
<view class="flex-center">
<span style="margin-right: 30rpx;">您的姓名:</span>
<input class="inputStyle" v-model="username" type="text" />
</view>
<view class="flex-center">
<span style="margin-right: 30rpx;">手机号码:</span>
<input class="inputStyle" v-model="phone" type="number" />
</view>
</view>
<view style="margin-top: 15vh;" @click="query">
<view class="btn2">
确认
</view>
</view>
<view class="flex-col query" style="gap: 0rpx;">
<text class="second-color">欢快无限饮&nbsp;&nbsp;饮酒有限度</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
username:'',
phone:''
}
},
methods: {
query(){
if(!this.username && !this.phone){
uni.showToast({
title:'您的姓名和手机号都不能为空哦~',
icon: 'none'
})
}else{
uni.navigateTo({
url:'/pages_order/info/greet'
})
}
}
}
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
bottom: -15vh;
}
.b-btn {
width: 86%;
display: flex;
justify-content: space-between;
padding-top: 20vh;
.pre-btn {
border: 4rpx solid #f1e0c6;
padding: 16rpx 90rpx;
border-radius: 66rpx;
color: #e6bf7f;
}
.next-btn {
background-image: url('../../static/image/home/btn.png');
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 40vw;
display: flex;
align-items: center;
justify-content: center;
color: white;
}
}
.inputStyle{
border: 3rpx solid #e5bf7d;
border-radius: 40rpx;
color: #e5bf7d;
padding: 10rpx 10rpx;
}
</style>

+ 40
- 0
pages_order/info/greet.vue View File

@ -0,0 +1,40 @@
<template>
<view class="home">
<view class="content" style="padding-top: 30vh;">
<span>欢迎</span>
<span style="font-size: 80rpx; margin: 20rpx 0;">Christine</span>
<view class="flex-col" style="gap: 5rpx; margin-top: 40rpx;">
<span>来到百富门的世界</span>
<span>品味传承与创新交织的威士忌艺术</span>
<span>开启您的专属品鉴之旅</span>
</view>
<view style="margin-top: 6vh;" @click="query">
<view class="btn2">
点击进入
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
query(){
uni.navigateTo({
url: '/pages_order/info/infoPages'
})
}
}
}
</script>
<style lang="scss" scoped>
</style>

+ 176
- 0
pages_order/info/infoPages.vue View File

@ -0,0 +1,176 @@
<template>
<view class="home">
<view class="content" style="padding-top: 20vh;">
<span v-show="btn==='下一页'" style="margin-bottom: 10rpx; font-size: 28rpx;">作为一位</span>
<span v-show="btn==='下一页'" style="color: #c7a87c;">{{title1}}</span>
<span v-for="(item,index) in textList1" :key="index" class="content-text">
{{item}}
</span>
<view class="flex-col query" style="gap: 0rpx;">
<view v-show="btn !=='db'">
<view class="btn2" @click="query">
{{btn}}
</view>
</view>
<view v-show="btn ==='db'" class="flex-center" style="gap: 30rpx;">
<view class="btn2" style="padding: 16rpx 80rpx;" @click="pre">
返回
</view>
<view class="btn2" style="padding: 16rpx 80rpx;" @click="next">
点击预约
</view>
</view>
<text class="second-color">欢快无限饮&nbsp;&nbsp;饮酒有限度</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
flag: 0,
title1: '威士忌鉴赏家',
textList1: [
'您的独到品味和对复杂风味的深刻理解展现了',
'您在威士忌世界中的非凡见解。',
'无论是高年份的经典之作,',
'还是精湛工艺的限量版,',
'每一杯威士忌在您手中都被赋予了更多的意义。',
'愿您在未来的品鉴之旅中继续探索更多顶级佳酿,',
'感受威士忌的独特魅力畅享每一滴带来的极致体验!'
],
btn: '下一页',
title2: '威士忌探秘者',
textList2: [
'您的好奇心和冒险精神',
'让您不断探索新奇与未知的滋味。',
'愿每一杯威士忌都能为您带来',
'新鲜的体验与惊喜,',
'在这段探秘旅程中发现无尽的可能性。'
],
title3: '威士忌品鉴大师',
textList3: [
'您的敏锐舌尖与挑剔眼光',
'让您在细微之处也能捕捉到每一滴威士忌的精髓。',
'愿您在今后的品鉴之路上,',
'继续发现与享受那些别具匠心的美妙时刻。'
],
title4: '威士忌藏家',
textList4: [
'您的眼光独到,能够识别并珍藏',
'那些真正值得铭记的佳酿。',
'愿您在未来的岁月中,',
'继续收集那些能够讲述故事、承载记忆的珍品,将',
'您的收藏变成一段永恒的艺术。'
],
title5: '威士忌玩家',
textList5: [
'您对威士忌的热爱不仅体现在酒杯中',
'更体现在与朋友分享的每一个欢乐时刻。',
'愿您在每一次聚会中,',
'都能用您的创意和激情,',
'让威士忌成为欢聚的中心,',
'点燃无数难忘的瞬间。'
],
appoint_title: '',
appoint_text: [
'您的品味值得专属礼遇!',
'在您生成了专属称号之后,',
'我们将为您提供一次奢华的',
'上门威士忌品鉴服务,',
'让您在舒适的环境中,',
'品味与您的称号完美契合的精致佳酿。'
],
fail_title: '',
fail_text: [
'很抱歉,您的所在区域暂时',
'无法提供上门威士忌品鉴服务。',
'但我们仍为您准备了其他专属体验,',
'敬请期待。'
],
success_title: '',
success_text: [
'感谢您的预约!',
'我们已成功安排了您的上门威士忌品鉴服务。',
'我们的专员将在您选择的时间到达,',
'为您带来精致的品鉴体验。',
'期待与您共享这段美妙的威士忌之旅!'
],
reset_title: '',
reset_text:[
'非常抱歉,由于特殊原因,',
'我们暂时无法在您最初选定的时间段',
'进行上门品鉴服务。',
'为了确保您享受到最完美的威士忌体验,',
'恳请您重新选择一个方便的时间,',
'我们将优先为您安排,',
'感谢您的理解与支持。'
]
}
},
methods: {
query() {
if (this.flag === 0) {
this.title1 = this.title2
this.textList1 = this.textList2
this.flag = this.flag + 1
} else if (this.flag === 1) {
this.title1 = this.title3
this.textList1 = this.textList3
this.flag = this.flag + 1
} else if (this.flag === 2) {
this.title1 = this.title4
this.textList1 = this.textList4
this.flag = this.flag + 1
} else if (this.flag === 3) {
this.title1 = this.title5
this.textList1 = this.textList5
this.flag = this.flag + 1
} else if (this.flag === 4) {
this.title1 = this.appoint_title
this.textList1 = this.appoint_text
this.flag = this.flag + 1
this.btn = 'db'
} else if (this.flag === 6) {
this.btn = '查看详情'
this.title1 = this.success_title
this.textList1 = this.success_text
}
},
pre() {
uni.navigateBack({
delta: 1
})
},
next() {
uni.navigateTo({
url:'/pages_order/info/appointDate'
})
}
}
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
top: 30vh;
}
</style>

+ 89
- 0
pages_order/info/isAdult.vue View File

@ -0,0 +1,89 @@
<template>
<view class="home">
<view class="content" style="padding-top: 25vh;">
<span class="font-bold">Genius Journey Club</span>
<text style="margin-top: 20rpx; font-size: 28rpx; color: #878787;">欢迎您的到来</text>
<text style="margin-top: 30rpx; font-size: 28rpx; color: #878787;">使用小程序请确认您已满18周岁</text>
<view class="mian-btn" :class="{active:isActive === 'yes'}" @click="setActive('yes')">未满18岁</view>
<view class="mian-btn" :class="{active:isActive === 'no'}" @click="setActive('no')">已满18岁</view>
<view class="flex-center mt-40">
<uv-checkbox-group>
<uv-checkbox size="15px" v-model="isCheck" iconSize="20rpx" activeColor="#e6bf7f" @change="change"></uv-checkbox>
</uv-checkbox-group>
<span style="font-size: 26rpx;">我已阅读政策隐私条款</span>
</view>
<view class="" style="margin-top: 60rpx;" @click="start">
<view class="btn2">
立即开启
</view>
</view>
<view class="flex-col query" style="gap: 0rpx;">
<text class="second-color">欢快无限饮&nbsp;&nbsp;饮酒有限度</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
isActive: null,
isCheck: false
}
},
methods: {
setActive(val) {
this.isActive = val
},
change(e){
this.isCheck = e
},
start() {
if (this.isActive && this.isCheck) {
uni.navigateTo({
url:'/pages_order/info/fillInfo'
})
} else {
uni.showToast({
title: '请选择并勾选后开启',
icon: 'none'
})
}
}
}
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
bottom: -15vh;
}
.b-btn {
width: 86%;
display: flex;
justify-content: space-between;
padding-top: 20vh;
.pre-btn {
border: 4rpx solid #f1e0c6;
padding: 16rpx 90rpx;
border-radius: 66rpx;
color: #e6bf7f;
}
.next-btn {
background-image: url('../../static/image/home/btn.png');
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 40vw;
display: flex;
align-items: center;
justify-content: center;
color: white;
}
}
</style>

+ 49
- 0
pages_order/info/start.vue View File

@ -0,0 +1,49 @@
<template>
<view class="home">
<view class="content" style="padding-top: 35vh;">
<span v-for="(item,index) in textList1" :key="index" class="content-text" style="font-size: 28rpx; line-height: 50rpx;">
{{item}}
</span>
<view class="flex-col query" style="gap: 0rpx;">
<view>
<view class="btn2" @click="query">
开始
</view>
</view>
<text class="second-color">欢快无限饮&nbsp;&nbsp;饮酒有限度</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
textList1: [
'感谢您参加我们的上门威士忌品鉴服务!',
'我们希望您享受了这次独特的体验。',
'为了帮助我们不断提升服务质量,',
'请您花几分钟时间分享您的评价和反馈。',
'您的意见对我们非常重要,感谢您的支持!',
]
}
},
methods: {
query() {
uni.redirectTo({
url:'/pages_order/info/experience'
})
}
}
}
</script>
<style lang="scss" scoped>
.query {
position: relative;
top: 20vh;
}
</style>

+ 63
- 0
pages_order/info/startTest.vue View File

@ -0,0 +1,63 @@
<template>
<view class="home">
<view class="content" style="padding-top: 20vh;">
<view class="flex-col" style="gap: 40rpx; width: 90vw;">
<view class="flex-col">
<span v-for="(item,index) in textList1" :key="index" class="context-text" style="font-size: 26rpx; line-height: 1;">
{{item}}
</span>
</view>
<view class="flex-col">
<span v-for="(item,index) in textList2" :key="index" class="context-text" style="font-size: 26rpx;line-height: 1;">
{{item}}
</span>
</view>
</view>
<view style="margin-top: 6vh;" @click="query">
<view class="btn2" style="padding: 16rpx 100rpx;">
开始测试
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
textList1:[
'百富门酒业,全球知名美国洋酒公司。',
'1870年,由George Garvin Brown先生创立于肯塔基州。',
'150多年来,历经市场变革,',
'我们丰常的历史和承诺共同打造了我们坚实的基础,',
'继往开今,不断为世界带来丰富优质的产品。'
],
textList2:[
'作为美国首屈一指的烈酒及葡萄酒公司,',
'百富门酒业跻身全球销售额前十烈港公司之列(IWSR2022),',
'且为全球第五大顶级烈酒企业。',
'旗下拥有杰克丹尼、活福珍藏、本利亚克、',
'格兰多纳、格兰格拉索等知名威士忌品牌;',
'同时旗下拥有赫尔德拉马蹄铁龙舌兰酒、',
'香博法围力娇酒等在内的近30个品牌:',
'现如今,百富门酒业在全球六大洲拥有约5600名员工',
'生产营销和分销优质烈酒和葡萄酒,',
'并通过在世界各地的办事处,将产品销往近170多个国家。'
]
}
},
methods: {
query() {
uni.redirectTo({
url: '/pages_order/info/appoint'
})
}
}
}
</script>
<style lang="scss" scoped>
</style>

+ 1
- 0
pages_order/static/info/down.svg View File

@ -0,0 +1 @@
<svg t="1727521601230" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1447" width="200" height="200"><path d="M529.92 640.512L716.8 456.704a51.2 51.2 0 0 0-35.84-88.064H314.88a51.2 51.2 0 0 0-36.864 87.04l179.2 183.808a51.2 51.2 0 0 0 72.192 0z" fill="#FD5100" p-id="1448"></path></svg>

BIN
pages_order/static/info/下拉.png View File

Before After
Width: 200  |  Height: 200  |  Size: 1.9 KiB

+ 8
- 7
project.config.json View File

@ -2,11 +2,6 @@
"appid": "wx75654b529ae6a8ea", "appid": "wx75654b529ae6a8ea",
"compileType": "miniprogram", "compileType": "miniprogram",
"miniprogramRoot": "unpackage/dist/dev/mp-weixin/", "miniprogramRoot": "unpackage/dist/dev/mp-weixin/",
"libVersion": "3.5.8",
"packOptions": {
"ignore": [],
"include": []
},
"setting": { "setting": {
"coverView": true, "coverView": true,
"es6": true, "es6": true,
@ -19,12 +14,18 @@
"ignore": [], "ignore": [],
"disablePlugins": [], "disablePlugins": [],
"outputPath": "" "outputPath": ""
}
},
"ignoreUploadUnusedFiles": true
}, },
"condition": {}, "condition": {},
"editorSetting": { "editorSetting": {
"tabIndent": "insertSpaces", "tabIndent": "insertSpaces",
"tabSize": 2 "tabSize": 2
}, },
"srcMiniprogramRoot": "unpackage/dist/dev/mp-weixin/"
"srcMiniprogramRoot": "unpackage/dist/dev/mp-weixin/",
"libVersion": "3.5.8",
"packOptions": {
"ignore": [],
"include": []
}
} }

+ 13
- 0
project.private.config.json View File

@ -3,5 +3,18 @@
"projectname": "drink-answer-wechat-uniapp-24-9-2", "projectname": "drink-answer-wechat-uniapp-24-9-2",
"setting": { "setting": {
"compileHotReLoad": true "compileHotReLoad": true
},
"condition": {
"miniprogram": {
"list": [
{
"name": "pages_order/auth/wxUserInfo",
"pathName": "pages_order/auth/wxUserInfo",
"query": "",
"launchMode": "default",
"scene": null
}
]
}
} }
} }

+ 2
- 1
uni.scss View File

@ -19,7 +19,8 @@ $uni-color-primary: #007aff;
$uni-color-success: #4cd964; $uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e; $uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d; $uni-color-error: #dd524d;
$uni-color-login-btn: #00bf61;
$uni-wx-color: #07c060;
/* 文字基本颜色 */ /* 文字基本颜色 */
$uni-text-color:#333;//基本色 $uni-text-color:#333;//基本色


+ 1
- 0
utils/index.js View File

@ -1,3 +1,4 @@
import Vue from 'vue' import Vue from 'vue'
import util from './utils.js' import util from './utils.js'


Loading…
Cancel
Save