| @ -0,0 +1,49 @@ | |||||
| <template> | |||||
| <view class="home"> | |||||
| <view class="content" :class="btn[0]==='下一页'?'mt-25':'mt-30'"> | |||||
| <span v-show="btn[0]==='下一页'" style="margin-bottom: 10rpx; font-size: 28rpx;">作为一位</span> | |||||
| <span style="color: #c7a87c;">{{title}}</span> | |||||
| <span v-for="(item,index) in textList" :key="index" style="margin-top: 15rpx;"> | |||||
| {{item}} | |||||
| </span> | |||||
| <view class="flex-col query" style="gap: 0rpx;" v-show="btn.length>0"> | |||||
| <view class="btn2" @click="query"> | |||||
| {{btn[0]}} | |||||
| </view> | |||||
| <text class="second-color">欢快无限饮 饮酒有限度</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| } | |||||
| }, | |||||
| props:['title','textList','path','btn'], | |||||
| methods: { | |||||
| query(){ | |||||
| uni.navigateTo({ | |||||
| url:this.path | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .query{ | |||||
| position: absolute; | |||||
| bottom: -25vh; | |||||
| } | |||||
| .mt-25{ | |||||
| padding-top: 25vh; | |||||
| } | |||||
| .mt-30{ | |||||
| padding-top: 30vh; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,60 @@ | |||||
| <template> | |||||
| <view class="home"> | |||||
| <view class="content mt-30"> | |||||
| <span v-for="(item,index) in textList" :key="index" style="margin-top: 10rpx;"> | |||||
| {{item}} | |||||
| </span> | |||||
| <view class="flex-col query" style="gap: 0rpx;"> | |||||
| <view class="flex-sa"> | |||||
| <view class="btn3" @click="pre"> | |||||
| 返回 | |||||
| </view> | |||||
| <view class="btn3" @click="next"> | |||||
| 点击预约 | |||||
| </view> | |||||
| </view> | |||||
| <text class="second-color">欢快无限饮 饮酒有限度</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList: [ | |||||
| '您的品味值得专属礼遇!', | |||||
| '在您生成了专属称号之后,', | |||||
| '我们将为您提供一次奢华的', | |||||
| '上门威士忌品鉴服务,', | |||||
| '让您在舒适的环境中,', | |||||
| '品味与您的称号完美契合的精致佳酿。' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| pre() { | |||||
| uni.navigateTo({ | |||||
| url: '/pages/index/greetP5' | |||||
| }) | |||||
| }, | |||||
| next() { | |||||
| uni.navigateTo({ | |||||
| url: '/pages/index/viewDetail' | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .query { | |||||
| position: absolute; | |||||
| bottom: -25vh; | |||||
| } | |||||
| .mt-30 { | |||||
| padding-top: 30vh; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,39 @@ | |||||
| <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">欢快无限饮 饮酒有限度</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| next(){ | |||||
| uni.navigateTo({ | |||||
| url:'/pages/index/checkAge' | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .query{ | |||||
| position: absolute; | |||||
| bottom: -25vh; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,36 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents title="" :textList="textList" :path="back" :btn="btn"/> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList:[ | |||||
| '很抱歉,您的所在区域暂时', | |||||
| '无法提供上门威士忌品鉴服务。', | |||||
| '但我们仍为您准备了其他专属体', | |||||
| '验敬请期待。' | |||||
| ], | |||||
| back:'/pages/index/appointment', | |||||
| btn:[ | |||||
| '返回' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components:{ | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,33 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents :textList="textList" :btn="btn"/> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList: [ | |||||
| '我们已收到您的取消请求,', | |||||
| '非常遗憾无法为您提供此次上门威士忌品鉴服务。', | |||||
| '如果您有其他需求或在未来希望重新预约,', | |||||
| '随时与我们联系。', | |||||
| '期待在合适的时间为您奉上难忘的品监体验!' | |||||
| ], | |||||
| btn: [] | |||||
| } | |||||
| }, | |||||
| components: { | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -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">欢快无限饮 饮酒有限度</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/index/fillIn' | |||||
| }) | |||||
| } 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> | |||||
| @ -0,0 +1,32 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents :textList="textList" :btn="btn"/> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList: [ | |||||
| '感谢您分享宝贵的评价!', | |||||
| '您的反馈对我们非常重要。', | |||||
| '祝愿您每一天都充满精彩与愉悦,生活美满,', | |||||
| '尽享每一杯威士忌的独特魅力!' | |||||
| ], | |||||
| btn: [] | |||||
| } | |||||
| }, | |||||
| components: { | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,91 @@ | |||||
| <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">欢快无限饮 饮酒有限度</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/index/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> | |||||
| @ -0,0 +1,40 @@ | |||||
| <template> | |||||
| <view class="home"> | |||||
| <view class="content" style="padding-top: 35vh;"> | |||||
| <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/index/greetP1' | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| </style> | |||||
| @ -0,0 +1,38 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents title="“威士忌鉴赏家”" :textList="textList" :path="greetP2" :btn="btn"/> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList:[ | |||||
| '您的独到品味和对复杂风味的深刻理解展现了', | |||||
| '您在威士忌世界中的非凡见解。', | |||||
| '无论是高年份的经典之作,', | |||||
| '还是精湛工艺的限量版,', | |||||
| '每一杯威士忌在您手中都被赋予了更多的意义。', | |||||
| '愿您在未来的品鉴之旅中继续探索更多顶级佳酿,', | |||||
| '感受威士忌的独特魅力畅享每一滴带来的极致体验!' | |||||
| ], | |||||
| greetP2:'/pages/index/greetP2', | |||||
| btn:[ | |||||
| '下一页' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components:{ | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,36 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents title="“威士忌探秘者”" :textList="textList" :path="greetP3" :btn="btn"/> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList:[ | |||||
| '您的好奇心和冒险精神', | |||||
| '让您不断探索新奇和冒险精神。', | |||||
| '愿每一杯威士忌都能拿为您带来', | |||||
| '新鲜的体验与惊喜,', | |||||
| '在这段探秘旅程中发现无尽的可能性。' | |||||
| ], | |||||
| greetP3:'/pages/index/greetP3', | |||||
| btn:[ | |||||
| '下一页' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components:{ | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,35 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents title="“威士忌品鉴大师”" :textList="textList" :path="greetP4" :btn="btn"/> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList: [ | |||||
| '您的敏锐舌尖与挑剔眼光', | |||||
| '让您在细微之处也能捕捉到每一滴威士忌的精髓。', | |||||
| '愿您在今后的品鉴之路上,', | |||||
| '继续发现与享受那些别具匠心的美妙时刻。' | |||||
| ], | |||||
| greetP4: '/pages/index/greetP4', | |||||
| btn:[ | |||||
| '下一页' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components: { | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,36 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents title="“威士忌藏家”" :textList="textList" :path="greetP5" :btn="btn"/> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList:[ | |||||
| '您的眼光独到,能够识别并珍藏', | |||||
| '那些真正值得铭记的佳酿。', | |||||
| '愿您在未来的岁月中,', | |||||
| '继续收集那些能够讲述故事、承载记忆的珍品,将', | |||||
| '您的收藏变成一段永恒的艺术。' | |||||
| ], | |||||
| greetP5:'/pages/index/greetP5', | |||||
| btn:[ | |||||
| '下一页' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components:{ | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,37 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents title="“威士忌玩家”" :textList="textList" :path="greetP5" :btn="btn"/> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList:[ | |||||
| '您对威士忌的热爱不仅体现在酒杯中,', | |||||
| '更体现在与朋友分享的每一个欢乐时刻。', | |||||
| '愿您在每一次聚会中,', | |||||
| '都能用您的创意和激情,', | |||||
| '让威士忌成为欢聚的中心,', | |||||
| '点燃无数难忘的瞬间。' | |||||
| ], | |||||
| greetP5:'/pages/index/appointment', | |||||
| btn:[ | |||||
| '下一页' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components:{ | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,66 @@ | |||||
| <template> | |||||
| <view class="home"> | |||||
| <view class="content"> | |||||
| <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 === 'no'}" @click="setActive('no')">否</view> | |||||
| <view class="b-btn"> | |||||
| <view class="pre-btn"> | |||||
| 上一题 | |||||
| </view> | |||||
| <view class="next-btn" @click="next"> | |||||
| 下一题 | |||||
| </view> | |||||
| </view> | |||||
| <text class="second-color">欢快无限饮 饮酒有限度</text> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| isActive:null | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| setActive(value){ | |||||
| this.isActive = value | |||||
| }, | |||||
| next(){ | |||||
| uni.navigateTo({ | |||||
| url:'/pages/index/area' | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .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> | |||||
| @ -0,0 +1,38 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents :textList="textList" :path="reschedule" :btn="btn" /> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList: [ | |||||
| '非常抱歉,由于特殊原因,', | |||||
| '我们暂时无法在您最初选定的时间段', | |||||
| '进行上门品鉴服务。', | |||||
| '为了确保您享受到最完美的威士忌体验,', | |||||
| '恳请您重新选择一个方便的时间,', | |||||
| '我们将优先为您安排,', | |||||
| '感谢您的理解与支持。' | |||||
| ], | |||||
| reschedule: '/pages/index/appointment', | |||||
| btn: [ | |||||
| '查看详情' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components: { | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,249 @@ | |||||
| <template> | |||||
| <view class="home"> | |||||
| <view class="content" style="padding-top: 25vh;"> | |||||
| <span class="font-bold">预约日期和时间</span> | |||||
| <view class="flex-center mt-60" style="gap: 50rpx;"> | |||||
| <view class="time-wrapper"> | |||||
| <span style="color: #dcb066;">2024年</span> | |||||
| </view> | |||||
| <view class="time-wrapper"> | |||||
| 9月20日 | |||||
| </view> | |||||
| <view class="time-wrapper"> | |||||
| 08:00 | |||||
| </view> | |||||
| </view> | |||||
| <span class="font-bold mt-60">预约信息</span> | |||||
| <view class="flex-center mt-40" style="gap: 30rpx;"> | |||||
| <view class="flex-center"> | |||||
| <input class="time-wrapper1" type="text" v-model="firstName" /> | |||||
| <span>姓</span> | |||||
| </view> | |||||
| <view class="flex-center"> | |||||
| <input class="time-wrapper1" type="text" v-model="lastName" /> | |||||
| <span>名</span> | |||||
| </view> | |||||
| <view class=""> | |||||
| <uv-drop-down ref="dropDown" sign="dropDown_1" text-active-color="#3c9cff" | |||||
| :extra-icon="{name:'arrow-down-fill',color:'#666',size:'26rpx'}" | |||||
| :extra-active-icon="{name:'arrow-up-fill',color:'#3c9cff',size:'26rpx'}" | |||||
| :defaultValue="defaultValue" :custom-style="{padding: '0 30rpx'}" @click="selectMenu"> | |||||
| <uv-drop-down-item name="order" type="2" :label="dropItem('order').label" | |||||
| :value="dropItem('order').value"> | |||||
| </uv-drop-down-item> | |||||
| <uv-drop-down-item name="type" type="2" :label="dropItem('type').label" | |||||
| :value="dropItem('type').value"> | |||||
| </uv-drop-down-item> | |||||
| <uv-drop-down-item name="vip_type" type="1" label='VIP文档' :value="dropItem('vip_type').value"> | |||||
| </uv-drop-down-item> | |||||
| </uv-drop-down> | |||||
| <uv-drop-down-popup sign="dropDown_1" :click-overlay-on-close="true" | |||||
| :currentDropItem="currentDropItem" @clickItem="clickItem" | |||||
| @popupChange="change"></uv-drop-down-popup> | |||||
| </view> | |||||
| </view> | |||||
| <view class="flex-col query" style="gap: 0rpx;"> | |||||
| <view class="flex-sa"> | |||||
| <view class="btn3" @click="pre"> | |||||
| 返回 | |||||
| </view> | |||||
| <view class="btn3" @click="next"> | |||||
| 取消预约 | |||||
| </view> | |||||
| </view> | |||||
| <text class="second-color">欢快无限饮 饮酒有限度</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| firstName: '', | |||||
| lastName: '', | |||||
| // 表示value等于这些值,就属于默认值 | |||||
| defaultValue: [0, 'all', '0'], | |||||
| // 筛选结果 | |||||
| result: [{ | |||||
| name: 'order', | |||||
| label: '最新发布', | |||||
| value: 'new' | |||||
| }], | |||||
| // { name: 'order', label: '最新发布', value: 'new' } | |||||
| activeName: 'order', | |||||
| order: { | |||||
| label: '综合排序', | |||||
| value: 'all', | |||||
| activeIndex: 0, | |||||
| color: '#333', | |||||
| activeColor: '#2878ff', | |||||
| child: [{ | |||||
| label: '综合排序', | |||||
| value: 'all' | |||||
| }, { | |||||
| label: '最新发布', | |||||
| value: 'new' | |||||
| }, { | |||||
| label: '低价优先', | |||||
| value: 'money' | |||||
| }] | |||||
| }, | |||||
| type: { | |||||
| label: '文档格式', | |||||
| value: 'all', | |||||
| activeIndex: 0, | |||||
| color: '#333', | |||||
| activeColor: '#2878ff', | |||||
| child: [{ | |||||
| label: '全部', | |||||
| value: 'all' | |||||
| }, { | |||||
| label: 'PDF', | |||||
| value: 'pdf' | |||||
| }, { | |||||
| label: 'WROD', | |||||
| value: 'word' | |||||
| }, { | |||||
| label: 'PPT', | |||||
| value: 'ppt' | |||||
| }] | |||||
| }, | |||||
| vip_type: { | |||||
| label: 'VIP文档', | |||||
| value: 0, | |||||
| activeIndex: 0 | |||||
| } | |||||
| } | |||||
| }, | |||||
| onPageScroll() { | |||||
| // 滚动后及时更新位置 | |||||
| this.$refs.dropDown.init(); | |||||
| }, | |||||
| computed: { | |||||
| dropItem(name) { | |||||
| return (name) => { | |||||
| const result = {}; | |||||
| const find = this.result.find(item => item.name === name); | |||||
| if (find) { | |||||
| result.label = find.label; | |||||
| result.value = find.value; | |||||
| } else { | |||||
| result.label = this[name].label; | |||||
| result.value = this[name].value; | |||||
| } | |||||
| return result; | |||||
| } | |||||
| }, | |||||
| // 获取当前下拉筛选项 | |||||
| currentDropItem() { | |||||
| return this[this.activeName]; | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| pre() { | |||||
| uni.navigateTo({ | |||||
| url: '/pages/index/greetP5' | |||||
| }) | |||||
| }, | |||||
| next() { | |||||
| uni.navigateTo({ | |||||
| url: '/pages/index/selectAppointment' | |||||
| }) | |||||
| }, | |||||
| change(e) { | |||||
| console.log('弹窗打开状态:', e); | |||||
| }, | |||||
| /** | |||||
| * 点击每个筛选项回调 | |||||
| * @param {Object} e { name, active, type } = e | |||||
| */ | |||||
| selectMenu(e) { | |||||
| const { | |||||
| name, | |||||
| active, | |||||
| type | |||||
| } = e; | |||||
| this.activeName = name; | |||||
| // type 等于1 的需要特殊处理:type不等于1可以忽略 | |||||
| if (type == 1) { | |||||
| this.clickItem({ | |||||
| name: 'vip_type', | |||||
| label: 'VIP文档', | |||||
| value: e.active ? 1 : 0 | |||||
| }); | |||||
| } else { | |||||
| const find = this.result.find(item => item.name == this.activeName); | |||||
| if (find) { | |||||
| const findIndex = this[this.activeName].child.findIndex(item => item.label == find.label && item | |||||
| .value == find.value); | |||||
| this[this.activeName].activeIndex = findIndex; | |||||
| } else { | |||||
| this[this.activeName].activeIndex = 0; | |||||
| } | |||||
| } | |||||
| }, | |||||
| /** | |||||
| * 点击菜单回调处理 | |||||
| * @param {Object} item 选中项 { label,value } = e | |||||
| */ | |||||
| clickItem(e) { | |||||
| // 下面有重新赋值,所以用let | |||||
| let { | |||||
| label, | |||||
| value | |||||
| } = e; | |||||
| const findIndex = this.result.findIndex(item => item.name == this.activeName); | |||||
| if (this.defaultValue.indexOf(value) > -1 && this[this.activeName].label) { | |||||
| label = this[this.activeName].label; | |||||
| } | |||||
| // 已经存在筛选项 | |||||
| if (findIndex > -1) { | |||||
| this.$set(this.result, findIndex, { | |||||
| name: this.activeName, | |||||
| label, | |||||
| value | |||||
| }) | |||||
| } else { | |||||
| this.result.push({ | |||||
| name: this.activeName, | |||||
| label, | |||||
| value | |||||
| }); | |||||
| } | |||||
| this.result = this.result.filter(item => this.defaultValue.indexOf(item.value) == -1); | |||||
| uni.showModal({ | |||||
| content: `筛选的值:${JSON.stringify(this.result)}` | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .query { | |||||
| position: relative; | |||||
| bottom: -45vh; | |||||
| } | |||||
| .mt-30 { | |||||
| padding-top: 30vh; | |||||
| } | |||||
| .time-wrapper { | |||||
| border: 4rpx solid #dcb066; | |||||
| padding: 16rpx 26rpx; | |||||
| border-radius: 20rpx; | |||||
| } | |||||
| .time-wrapper1 { | |||||
| border: 4rpx solid #dcb066; | |||||
| margin-right: 20rpx; | |||||
| padding: 14rpx 20rpx; | |||||
| width: 80rpx; | |||||
| border-radius: 15rpx; | |||||
| text-align: center; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,36 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents :textList="textList" :path="greetP5" :btn="btn" /> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList: [ | |||||
| '感谢您参加我们的上门威士忌品鉴服务!', | |||||
| '我们希望您享受了这次独特的体验。', | |||||
| '为了帮助我们不断提升服务质量,', | |||||
| '请您花几分钟时间分享您的评价和反馈。', | |||||
| '您的意见对我们非常重要,感谢您的支持!', | |||||
| ], | |||||
| greetP5: '/pages/index/appointment', | |||||
| btn: [ | |||||
| '开始' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components: { | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,37 @@ | |||||
| <template> | |||||
| <view> | |||||
| <greetCmponents :textList="textList" :path="greetP5" :btn="btn" /> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import greetCmponents from "../../components/home/greetComponents.vue" | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| textList: [ | |||||
| '感谢您的预约!', | |||||
| '我们已成功安排了您的上门威士忌品鉴服务。', | |||||
| '我们将为您提供一次奢华的', | |||||
| '我们的专员将在您选择的时间到达,', | |||||
| '为您带来精致的品鉴体验。', | |||||
| '期待与您共享这段美妙的威士忌之旅!' | |||||
| ], | |||||
| greetP5: '/pages/index/appointment', | |||||
| btn: [ | |||||
| '查看详情' | |||||
| ] | |||||
| } | |||||
| }, | |||||
| components: { | |||||
| greetCmponents | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| </style> | |||||
| @ -0,0 +1,172 @@ | |||||
| <template> | |||||
| <view> | |||||
| <block v-if="authCamera"> | |||||
| <camera :device-position="devPosition" @initdone="init" flash="off" style="width: 100%;" :style="{height:viewH-btmH+'px'}"></camera> | |||||
| </block> | |||||
| <block v-else> | |||||
| <view class="defaultBgm" :style="{height:viewH-btmH+'px'}"></view> | |||||
| </block> | |||||
| <!-- 摄像头区域 --> | |||||
| <!-- 底部区域 --> | |||||
| <view class="view_cont_btm flex_row"> | |||||
| <view class="cont_box" @click="openAlbum">相册</view> | |||||
| <view class="photobtn"> | |||||
| <button @click="takePhoto"></button> | |||||
| </view> | |||||
| <view class="cont_box" @click="switchPosition">切换</view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| devPosition: 'back', //打开的摄像头位置 | |||||
| viewH: 0, //页面整体高度 | |||||
| btmH: 0, //底部高度 | |||||
| authCamera: false, //检测摄像头是否授权,如果没有则不显示camera | |||||
| } | |||||
| }, | |||||
| onLoad(option) { | |||||
| }, | |||||
| onShow() { | |||||
| var that = this; | |||||
| // 检测用户是否授权打开摄像头 | |||||
| uni.getSetting({ | |||||
| success(e) { | |||||
| console.log(e) | |||||
| if(!e.authSetting['scope.camera']){ | |||||
| uni.showModal({ | |||||
| title: '提示', | |||||
| content: '需要您授权打开摄像头', | |||||
| success(e) { | |||||
| if (e.confirm) { | |||||
| uni.openSetting({ | |||||
| success(res) { | |||||
| console.log(res) | |||||
| if(res.authSetting['scope.camera']){ | |||||
| that.authCamera = true | |||||
| }else{ | |||||
| uni.showToast({ | |||||
| title: '未授权', | |||||
| icon:'none' | |||||
| }) | |||||
| } | |||||
| } | |||||
| }) | |||||
| }else{ | |||||
| uni.showToast({ | |||||
| title: '未授权', | |||||
| icon:'none' | |||||
| }) | |||||
| } | |||||
| } | |||||
| }) | |||||
| }else{ | |||||
| that.authCamera = true | |||||
| } | |||||
| } | |||||
| }) | |||||
| }, | |||||
| created() { | |||||
| var that = this; | |||||
| var h = uni.getSystemInfoSync().windowHeight; | |||||
| this.viewH = h; | |||||
| let info = uni.createSelectorQuery().select(".view_cont_btm"); | |||||
| info.boundingClientRect(function(data) { //data - 各种参数 | |||||
| that.btmH = data.height | |||||
| }).exec() | |||||
| }, | |||||
| methods: { | |||||
| // 点击相册 | |||||
| openAlbum() { | |||||
| uni.chooseImage({ | |||||
| count: 1, | |||||
| sourceType: ['album'], | |||||
| success(res) { | |||||
| console.log(JSON.stringify(res.tempFilePaths)); | |||||
| uni.previewImage({ | |||||
| urls: res.tempFilePaths, | |||||
| }) | |||||
| } | |||||
| }) | |||||
| }, | |||||
| // 点击切换摄像头 | |||||
| switchPosition() { | |||||
| if(this.devPosition == 'back'){ | |||||
| this.devPosition = 'front' | |||||
| }else{ | |||||
| this.devPosition = 'back' | |||||
| } | |||||
| }, | |||||
| // 点击拍照 | |||||
| takePhoto() { | |||||
| uni.showLoading({ | |||||
| title: '识别中..' | |||||
| }) | |||||
| const ctx = uni.createCameraContext(); | |||||
| ctx.takePhoto({ | |||||
| quality: 'high', | |||||
| success: (res) => { | |||||
| var imgs = [res.tempImagePath]; | |||||
| uni.previewImage({ | |||||
| urls: imgs, | |||||
| success() { | |||||
| uni.hideLoading(); | |||||
| } | |||||
| }) | |||||
| this.src = res.tempImagePath | |||||
| } | |||||
| }); | |||||
| }, | |||||
| // 相机初始化完成时触发 | |||||
| init(e){ | |||||
| console.log('初始化') | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| .defaultBgm{ | |||||
| background: #4AA352; | |||||
| } | |||||
| .view_cont_btm{ | |||||
| padding: 120rpx 60rpx; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| } | |||||
| .cont_box{ | |||||
| border: 1px solid #4AA352; | |||||
| color: #4AA352; | |||||
| padding: 20rpx; | |||||
| font-size: 28rpx; | |||||
| } | |||||
| .photobtn{ | |||||
| width: 160rpx; | |||||
| height: 160rpx; | |||||
| border-radius: 50%; | |||||
| border: 1px solid #4AA352; | |||||
| padding: 10rpx; | |||||
| box-sizing: border-box; | |||||
| text-align: center; | |||||
| } | |||||
| .photobtn button{ | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| margin: 0; | |||||
| background: linear-gradient(to right, #5eab52, #9ac454); | |||||
| border-radius: 50%; | |||||
| } | |||||
| </style> | |||||
| @ -1,153 +1,256 @@ | |||||
| <template> | <template> | ||||
| <view class="login"> | <view class="login"> | ||||
| <uv-navbar leftText="登录" height="100rpx" leftIconSize="28rpx" @leftClick="backUp"></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> | ||||
| <view class="title"> | <view class="title"> | ||||
| 欢迎使用酒店桌布租赁平台 | |||||
| 答题小程序 | |||||
| </view> | </view> | ||||
| <view class="btn mt" | |||||
| @click="wxLogin"> | |||||
| <view class="btn mt" @click="wxLogin"> | |||||
| <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=""> | |||||
| 微信授权登录 | |||||
| <view class="login-name"> | |||||
| 微信登录 | |||||
| </view> | </view> | ||||
| </view> | </view> | ||||
| <!-- <view class="btn b2"> | <!-- <view class="btn b2"> | ||||
| 使用短信验证登录 | 使用短信验证登录 | ||||
| </view> --> | </view> --> | ||||
| <view class="config"> | <view class="config"> | ||||
| <uv-checkbox-group | |||||
| v-model="checkboxValue" | |||||
| shape="circle"> | |||||
| <view class="content"> | |||||
| <view | |||||
| style="display: flex;"> | |||||
| <uv-checkbox | |||||
| size="40rpx" | |||||
| icon-size="30rpx" | |||||
| activeColor="#FD5100" | |||||
| :name="1" | |||||
| ></uv-checkbox> | |||||
| 阅读并同意我们的<text @click="openConfigDetail('privacyAgreement')">“服务协议与隐私条款”</text> | |||||
| </view> | |||||
| <view class=""> | |||||
| 以及<text @click="openConfigDetail('userAgreement')">个人信息保护指引</text> | |||||
| <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> | |||||
| <text @click="openConfigDetail('privacyAgreement')">《隐私政策》</text> | |||||
| <text @click="openConfigDetail('userAgreement')">《服务条款》</text> | |||||
| <img class="info" 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> | |||||
| <configPopup ref="popup"></configPopup> | |||||
| <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> | |||||
| </view> | |||||
| </uv-popup> | |||||
| <!-- <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() { | ||||
| return { | return { | ||||
| checkboxValue : [] | |||||
| checkboxValue: [] | |||||
| } | } | ||||
| }, | }, | ||||
| methods: { | methods: { | ||||
| wxLogin(){ | |||||
| if(!this.checkboxValue.length){ | |||||
| backUp() { | |||||
| uni.navigateTo({ | |||||
| url: '/pages_order/auth/wxUserInfo' | |||||
| }); | |||||
| }, | |||||
| wxLogin() { | |||||
| if (!this.checkboxValue.length) { | |||||
| return uni.showToast({ | return uni.showToast({ | ||||
| title: '请先同意隐私协议', | title: '请先同意隐私协议', | ||||
| icon:'none' | |||||
| icon: 'none' | |||||
| }) | }) | ||||
| } | } | ||||
| this.$store.commit('login') | |||||
| this.$refs.popup.open(); | |||||
| }, | |||||
| allow(){ | |||||
| this.$refs.popup.close(); | |||||
| this.$refs.service.open(); | |||||
| }, | |||||
| rejective(){ | |||||
| this.$refs.service.close(); | |||||
| }, | |||||
| agree(){ | |||||
| this.$refs.service.close(); | |||||
| uni.navigateTo({ | |||||
| url:'/pages/index/home' | |||||
| }) | |||||
| }, | }, | ||||
| //打开应用配置 | //打开应用配置 | ||||
| openConfigDetail(key){ | |||||
| openConfigDetail(key) { | |||||
| this.$refs.popup.open(key) | this.$refs.popup.open(key) | ||||
| } | } | ||||
| }, | |||||
| computed: { | |||||
| customStyle() { | |||||
| return { | |||||
| background: '#f1f1f1', | |||||
| color: '#00bf61' | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| </script> | </script> | ||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||
| .login{ | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| height: 80vh; | |||||
| flex-direction: column; | |||||
| position: relative; | |||||
| .logo{ | |||||
| height: 140rpx; | |||||
| width: 140rpx; | |||||
| background-color: #ddd; | |||||
| border-radius: 30rpx; | |||||
| image{ | |||||
| width: 80rpx; | |||||
| height: 80rpx; | |||||
| } | |||||
| margin-bottom: 20rpx; | |||||
| } | |||||
| .title{ | |||||
| position: relative; | |||||
| font-weight: 900; | |||||
| font-size: 45rpx; | |||||
| &::after{ | |||||
| content: ''; | |||||
| position: absolute; | |||||
| left: 0; | |||||
| top: 100%; | |||||
| display: block; | |||||
| height: 8rpx; | |||||
| width: 210rpx; | |||||
| background: linear-gradient(to right,$uni-color, #fff); | |||||
| } | |||||
| } | |||||
| .btn{ | |||||
| width: 80%; | |||||
| height: 100rpx; | |||||
| background-color: $uni-color; | |||||
| color: #fff; | |||||
| .login { | |||||
| display: flex; | display: flex; | ||||
| justify-content: center; | justify-content: center; | ||||
| align-items: center; | align-items: center; | ||||
| margin: 20rpx 0; | |||||
| border-radius: 20rpx; | |||||
| .icon{ | |||||
| margin-right: 10rpx; | |||||
| image{ | |||||
| width: 40rpx; | |||||
| height: 35rpx; | |||||
| height: 100vh; | |||||
| flex-direction: column; | |||||
| position: relative; | |||||
| background-color: white; | |||||
| .logo { | |||||
| height: 160rpx; | |||||
| width: 160rpx; | |||||
| background-color: #e5c28b; | |||||
| border-radius: 15rpx; | |||||
| image { | |||||
| width: 80rpx; | |||||
| height: 80rpx; | |||||
| } | } | ||||
| margin-bottom: 20rpx; | |||||
| } | } | ||||
| } | |||||
| .b2{ | |||||
| background-color: #3c69f122; | |||||
| color: #3c69f1; | |||||
| } | |||||
| .mt{ | |||||
| margin-top: 200rpx; | |||||
| } | |||||
| .config{ | |||||
| position: absolute; | |||||
| bottom: 0; | |||||
| font-size: 22rpx; | |||||
| text-align: center; | |||||
| line-height: 40rpx; | |||||
| text{ | |||||
| color: $uni-color; | |||||
| .title { | |||||
| position: relative; | |||||
| font-weight: bold; | |||||
| font-size: 35rpx; | |||||
| } | |||||
| .btn { | |||||
| width: 80%; | |||||
| padding: 20rpx 0; | |||||
| background-color: $uni-color-login-btn; | |||||
| color: #fff; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| margin: 20rpx 0; | |||||
| border-radius: 100rpx; | |||||
| .icon { | |||||
| margin-right: 10rpx; | |||||
| image { | |||||
| width: 40rpx; | |||||
| height: 35rpx; | |||||
| } | |||||
| } | |||||
| .login-name { | |||||
| position: relative; | |||||
| bottom: 6rpx; | |||||
| left: 10rpx; | |||||
| } | |||||
| } | |||||
| .b2 { | |||||
| background-color: #3c69f122; | |||||
| color: #3c69f1; | |||||
| } | |||||
| .mt { | |||||
| margin-top: 300rpx; | |||||
| } | |||||
| .config { | |||||
| font-size: 26rpx; | |||||
| margin-top: 20rpx; | |||||
| .contents { | |||||
| .info { | |||||
| position: absolute; | |||||
| right: 60rpx; | |||||
| width: 35rpx; | |||||
| height: 35rpx; | |||||
| } | |||||
| } | |||||
| text { | |||||
| color: #47b87e; | |||||
| } | |||||
| } | |||||
| .circle-logo { | |||||
| width: 50rpx; | |||||
| height: 50rpx; | |||||
| background-color: #e5c28b; | |||||
| border-radius: 50%; | |||||
| } | |||||
| .avatar { | |||||
| width: 90rpx; | |||||
| height: 90rpx; | |||||
| } | |||||
| .icon-service{ | |||||
| width: 90rpx; | |||||
| height: 90rpx; | |||||
| background-color: #e4c28b; | |||||
| border-radius: 50%; | |||||
| } | } | ||||
| } | } | ||||
| } | |||||
| </style> | |||||
| </style> | |||||
| @ -0,0 +1 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?><svg width="26" height="26" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M43 11L16.875 37L5 25.1818" stroke="#00bf61" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg> | |||||
| @ -0,0 +1 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?><svg width="20" height="20" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 44C29.5228 44 34.5228 41.7614 38.1421 38.1421C41.7614 34.5228 44 29.5228 44 24C44 18.4772 41.7614 13.4772 38.1421 9.85786C34.5228 6.23858 29.5228 4 24 4C18.4772 4 13.4772 6.23858 9.85786 9.85786C6.23858 13.4772 4 18.4772 4 24C4 29.5228 6.23858 34.5228 9.85786 38.1421C13.4772 41.7614 18.4772 44 24 44Z" fill="none" stroke="#89b79f" stroke-width="4" stroke-linejoin="round"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 11C25.3807 11 26.5 12.1193 26.5 13.5C26.5 14.8807 25.3807 16 24 16C22.6193 16 21.5 14.8807 21.5 13.5C21.5 12.1193 22.6193 11 24 11Z" fill="#89b79f"/><path d="M24.5 34V20H23.5H22.5" stroke="#89b79f" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M21 34H28" stroke="#89b79f" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg> | |||||
| @ -0,0 +1,30 @@ | |||||
| { | |||||
| "appid": "wx75654b529ae6a8ea", | |||||
| "compileType": "miniprogram", | |||||
| "miniprogramRoot": "unpackage/dist/dev/mp-weixin/", | |||||
| "libVersion": "3.5.8", | |||||
| "packOptions": { | |||||
| "ignore": [], | |||||
| "include": [] | |||||
| }, | |||||
| "setting": { | |||||
| "coverView": true, | |||||
| "es6": true, | |||||
| "postcss": true, | |||||
| "minified": true, | |||||
| "enhance": true, | |||||
| "showShadowRootInWxmlPanel": true, | |||||
| "packNpmRelationList": [], | |||||
| "babelSetting": { | |||||
| "ignore": [], | |||||
| "disablePlugins": [], | |||||
| "outputPath": "" | |||||
| } | |||||
| }, | |||||
| "condition": {}, | |||||
| "editorSetting": { | |||||
| "tabIndent": "insertSpaces", | |||||
| "tabSize": 2 | |||||
| }, | |||||
| "srcMiniprogramRoot": "unpackage/dist/dev/mp-weixin/" | |||||
| } | |||||
| @ -0,0 +1,7 @@ | |||||
| { | |||||
| "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", | |||||
| "projectname": "drink-answer-wechat-uniapp-24-9-2", | |||||
| "setting": { | |||||
| "compileHotReLoad": true | |||||
| } | |||||
| } | |||||