Browse Source

第一次提交

master
前端-胡立永 2 months ago
parent
commit
a5bb5f26e5
67 changed files with 1044 additions and 391 deletions
  1. +15
    -14
      App.vue
  2. +92
    -67
      api/api.js
  3. +8
    -8
      config.js
  4. +0
    -0
      doc/PrivacyAgreementPoup/icon.png
  5. BIN
      doc/address.png
  6. +0
    -0
      doc/bg - 副本/1.png
  7. +0
    -0
      doc/bg - 副本/2.png
  8. +0
    -0
      doc/bg - 副本/3.png
  9. +0
    -0
      doc/bg - 副本/4.png
  10. +0
    -0
      doc/bg - 副本/5.png
  11. BIN
      doc/bg - 副本/bg1x2.png
  12. BIN
      doc/bg - 副本/logo @2x.png
  13. BIN
      doc/bg - 副本/百富门logo_slices.zip
  14. BIN
      doc/bg - 副本/组 3_slices.zip
  15. BIN
      doc/bg - 副本/酒2_slices.zip
  16. BIN
      doc/bg/bg1x2.png
  17. BIN
      doc/bg/close-icon.png
  18. BIN
      doc/bg/content.png
  19. BIN
      doc/bg/fail.png
  20. BIN
      doc/bg/jiu.png
  21. BIN
      doc/bg/loglist.png
  22. BIN
      doc/bg/logolist2.png
  23. BIN
      doc/bg/logtop.png
  24. BIN
      doc/bg/message.png
  25. BIN
      doc/bg/sbg.png
  26. BIN
      doc/bg/success.png
  27. BIN
      doc/bg/user.png
  28. BIN
      doc/bg/组 1@2x.png
  29. BIN
      doc/c.png
  30. BIN
      doc/cart.png
  31. BIN
      doc/category.png
  32. BIN
      doc/center.png
  33. BIN
      doc/editAddress.png
  34. BIN
      doc/home-s.png
  35. BIN
      doc/home.png
  36. +0
    -0
      doc/home/btn.png
  37. +0
    -0
      doc/home/home-background.png
  38. BIN
      doc/order.png
  39. BIN
      doc/productDetail.png
  40. BIN
      doc/productUnit.png
  41. BIN
      doc/purse.png
  42. BIN
      doc/下一页_slices.zip
  43. BIN
      doc/威士忌鉴玩家@2x.png
  44. BIN
      doc/已满18岁_slices/-m--e-组 1@2x.png
  45. BIN
      doc/已满18岁_slices/-m--e-组 1@3x.png
  46. BIN
      doc/组 4@2x.png
  47. +4
    -0
      main.js
  48. +43
    -0
      mixins/configList.js
  49. +94
    -0
      pages - 副本.json
  50. +8
    -10
      pages.json
  51. +150
    -0
      pages/index/agreement.vue
  52. +133
    -70
      pages/index/home.vue
  53. +66
    -0
      pages/index/index - 副本.vue
  54. +84
    -32
      pages/index/index.vue
  55. +126
    -0
      pages/index/introduce - 副本.vue
  56. +61
    -64
      pages/index/introduce.vue
  57. +75
    -0
      pages/index/preAppoint.vue
  58. +0
    -38
      pages/index/reschedule.vue
  59. +1
    -1
      pages/index/review.vue
  60. +0
    -37
      pages/index/viewDetail.vue
  61. +2
    -2
      pages_order/auth/wxUserInfo.vue
  62. +1
    -1
      pages_order/info/fillInfo.vue
  63. +1
    -1
      pages_order/info/isAdult.vue
  64. BIN
      static/image/bg/X1.png
  65. BIN
      static/image/bg/logolist2.png
  66. +57
    -44
      store/store.js
  67. +23
    -2
      uni.scss

+ 15
- 14
App.vue View File

@ -3,9 +3,9 @@
onLaunch: function() {}, onLaunch: function() {},
onShow: function() { onShow: function() {
this.$store.commit('initConfig') this.$store.commit('initConfig')
this.$store.commit('getBanner')
this.$store.commit('getArticleList')
this.$store.commit('getProblemList')
// this.$store.commit('getBanner')
// this.$store.commit('getArticleList')
// this.$store.commit('getProblemList')
}, },
onHide: function() {} onHide: function() {}
} }
@ -17,7 +17,7 @@
background-color: #f7f7f7; background-color: #f7f7f7;
font-size: 30rpx; font-size: 30rpx;
} }
.background { .background {
background-color: #f7f7f7; background-color: #f7f7f7;
} }
@ -27,12 +27,12 @@
} }
.page-bg{ .page-bg{
height: calc(100vh - 120rpx);
height: 100vh;
width: 100vw; width: 100vw;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
padding-top: 120rpx;
z-index: -1;
} }
// .logo { // .logo {
@ -120,13 +120,13 @@
overflow: hidden; */ overflow: hidden; */
} }
.content {
display: flex;
flex-direction: column;
align-items: center;
padding-top: 480rpx;
position: relative;
}
// .content {
// display: flex;
// flex-direction: column;
// align-items: center;
// padding-top: 480rpx;
// position: relative;
// }
.content_now{ .content_now{
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -139,6 +139,7 @@
padding: 0 70rpx; padding: 0 70rpx;
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
--color2 : #000;
} }
.mian-btn { .mian-btn {
@ -156,7 +157,7 @@
.second-color { .second-color {
color: #d2d2d2; color: #d2d2d2;
margin-top: 40rpx;
// margin-top: 40rpx;
font-size: 26rpx; font-size: 26rpx;
} }


+ 92
- 67
api/api.js View File

@ -35,17 +35,17 @@ const config = {
showLoading : true, showLoading : true,
}, },
//首页-出现问题列表接口
problemList: {
url: '/applet_index/problemList',
method: 'GET',
},
// //首页-出现问题列表接口
// problemList: {
// url: '/applet_index/problemList',
// method: 'GET',
// },
//首页-文章列表接口
articleList: {
url: '/applet_index/articleList',
method: 'GET',
},
// //首页-文章列表接口
// articleList: {
// url: '/applet_index/articleList',
// method: 'GET',
// },
//首页-品牌介绍接口 //首页-品牌介绍接口
getBrand: { getBrand: {
url: '/applet_index/getBrand', url: '/applet_index/getBrand',
@ -53,73 +53,94 @@ const config = {
}, },
//首页-轮播图接口 //首页-轮播图接口
bannerList: {
url: '/applet_index/bannerList',
method: 'GET',
},
// bannerList: {
// url: '/applet_index/bannerList',
// method: 'GET',
// },
//提交问答记录 //提交问答记录
submitLog: {
url: '/applet_post/submitLog',
method: 'POST',
limit : 1000,
showLoading : true,
auth: true,
},
// submitLog: {
// url: '/applet_post/submitLog',
// method: 'POST',
// limit : 1000,
// showLoading : true,
// auth: true,
// },
//提交预约信息 //提交预约信息
submit: {
url: '/applet_post/submit',
method: 'POST',
limit : 1000,
showLoading : true,
auth: true,
},
//查询我的问答记录
queryMyLog: {
url: '/applet_post/queryMyLog',
method: 'GET',
auth: true,
showLoading : true,
},
//查询预约记录
queryReservation: {
url: '/applet_post/queryReservation',
method: 'GET',
auth: true,
},
//查询预约详情
queryReservationDetail: {
url: '/applet_post/queryReservationDetail',
method: 'GET',
auth: true,
},
//查询预约详情
queryReservationDetail: {
url: '/applet_post/queryReservationDetail',
// submit: {
// url: '/applet_post/submit',
// method: 'POST',
// limit : 1000,
// showLoading : true,
// auth: true,
// },
// //查询我的问答记录
// queryMyLog: {
// url: '/applet_post/queryMyLog',
// method: 'GET',
// auth: true,
// showLoading : true,
// },
// //查询预约记录
// queryReservation: {
// url: '/applet_post/queryReservation',
// method: 'GET',
// auth: true,
// },
// //查询预约详情
// queryReservationDetail: {
// url: '/applet_post/queryReservationDetail',
// method: 'GET',
// auth: true,
// },
// //查询预约详情
// queryReservationDetail: {
// url: '/applet_post/queryReservationDetail',
// method: 'GET',
// auth: true,
// },
// //取消预约
// cancelReservation: {
// url: '/applet_post/cancelReservation',
// method: 'GET',
// auth: true,
// showLoading : true,
// },
// //我的-评论题目列表接口
// queryAnswerList: {
// url: '/applet_post/queryAnswerList',
// method: 'GET',
// },
// //我的-回答评论接口
// answerComment: {
// url: '/applet_post/answerComment',
// method: 'POST',
// auth : true,
// },
// =======================================================
// 第二版本
// =======================================================
// 1、查询第一个题目接口(返回一个题目和答案列表)
firstQuestion: {
url: '/applet_index/firstQuestion',
method: 'GET', method: 'GET',
auth: true,
}, },
//取消预约
cancelReservation: {
url: '/applet_post/cancelReservation',
// 2、根据题目id查询题目接口(返回一个题目和答案列表)
getProblemById: {
url: '/applet_index/getProblemById',
method: 'GET', method: 'GET',
auth: true,
showLoading : true,
limit : 500,
}, },
//我的-评论题目列表接口
queryAnswerList: {
url: '/applet_post/queryAnswerList',
// 3、根据用户选择的答案id列表查询出获得的称号接口(返回称号图片、文章列表)
getTitleByIds: {
url: '/applet_index/getTitleByIds',
method: 'GET', method: 'GET',
limit : 500,
}, },
//我的-回答评论接口
answerComment: {
url: '/applet_post/answerComment',
method: 'POST',
auth : true,
},
} }
@ -146,6 +167,10 @@ export function api(key, data, callback, loadingTitle){
let storageKey = 'limit:' + req.url let storageKey = 'limit:' + req.url
let storage = uni.getStorageSync(storageKey) let storage = uni.getStorageSync(storageKey)
if(storage && new Date().getTime() - parseInt(storage) < req.limit){ if(storage && new Date().getTime() - parseInt(storage) < req.limit){
// uni.showToast({
// title: '请勿点击过快',
// icon: 'none',
// })
return return
} }
uni.setStorageSync(storageKey, new Date().getTime()) uni.setStorageSync(storageKey, new Date().getTime())


+ 8
- 8
config.js View File

@ -7,7 +7,7 @@ import uvUI from '@/uni_modules/uv-ui-tools'
Vue.use(uvUI); Vue.use(uvUI);
// 当前环境 // 当前环境
const type = 'prod'
const type = 'dev'
// 环境配置 // 环境配置
@ -24,18 +24,18 @@ const config = {
// 默认配置 // 默认配置
const defaultConfig = { const defaultConfig = {
mapKey : 'XMBBZ-BCPCV-SXPPQ-5Y7MY-PHZXK-YFFVU', mapKey : 'XMBBZ-BCPCV-SXPPQ-5Y7MY-PHZXK-YFFVU',
aliOss : {
url : 'https://tennis-oss.xzaiyp.top/',
config : {
aliOss: {
url: 'https://image.hhlm1688.com/',
config: {
//桶的地址 //桶的地址
region: 'oss-cn-guangzhou', region: 'oss-cn-guangzhou',
//id //id
accessKeyId:'LTAI5tNycA46YTwm383dRvMV',
accessKeyId: 'LTAI5tQSs47izVy8DLVdwUU9',
//密钥 //密钥
accessKeySecret:'tAdbYQCmdur6jbZ8hjvgB7T1Z52mIG',
accessKeySecret: 'qHI7C3PaXYZySr84HTToviC71AYlFq',
//桶的名字 //桶的名字
bucket: 'zhuoqiu-image',
endpoint:'oss-cn-guangzhou.aliyuncs.com',
bucket: 'hanhaiimage',
endpoint: 'oss-cn-shenzhen.aliyuncs.com',
} }
}, },
} }


static/image/PrivacyAgreementPoup/icon.png → doc/PrivacyAgreementPoup/icon.png View File


BIN
doc/address.png View File

Before After
Width: 597  |  Height: 1255  |  Size: 149 KiB

static/image/bg/1.png → doc/bg - 副本/1.png View File


static/image/bg/2.png → doc/bg - 副本/2.png View File


static/image/bg/3.png → doc/bg - 副本/3.png View File


static/image/bg/4.png → doc/bg - 副本/4.png View File


static/image/bg/5.png → doc/bg - 副本/5.png View File


BIN
doc/bg - 副本/bg1x2.png View File

Before After
Width: 750  |  Height: 1624  |  Size: 516 KiB

BIN
doc/bg - 副本/logo @2x.png View File

Before After
Width: 568  |  Height: 69  |  Size: 24 KiB

BIN
doc/bg - 副本/百富门logo_slices.zip View File


BIN
doc/bg - 副本/组 3_slices.zip View File


BIN
doc/bg - 副本/酒2_slices.zip View File


BIN
doc/bg/bg1x2.png View File

Before After
Width: 750  |  Height: 1624  |  Size: 516 KiB

BIN
doc/bg/close-icon.png View File

Before After
Width: 86  |  Height: 95  |  Size: 1.7 KiB

BIN
doc/bg/content.png View File

Before After
Width: 702  |  Height: 777  |  Size: 96 KiB

BIN
doc/bg/fail.png View File

Before After
Width: 111  |  Height: 111  |  Size: 2.6 KiB

BIN
doc/bg/jiu.png View File

Before After
Width: 751  |  Height: 1625  |  Size: 666 KiB

BIN
doc/bg/loglist.png View File

Before After
Width: 568  |  Height: 69  |  Size: 24 KiB

BIN
doc/bg/logolist2.png View File

Before After
Width: 615  |  Height: 92  |  Size: 28 KiB

BIN
doc/bg/logtop.png View File

Before After
Width: 748  |  Height: 208  |  Size: 29 KiB

BIN
doc/bg/message.png View File

Before After
Width: 113  |  Height: 110  |  Size: 4.5 KiB

BIN
doc/bg/sbg.png View File

Before After
Width: 750  |  Height: 1624  |  Size: 1.1 MiB

BIN
doc/bg/success.png View File

Before After
Width: 111  |  Height: 111  |  Size: 3.9 KiB

BIN
doc/bg/user.png View File

Before After
Width: 75  |  Height: 107  |  Size: 4.9 KiB

BIN
doc/bg/组 1@2x.png View File

Before After
Width: 750  |  Height: 1624  |  Size: 1.1 MiB

BIN
doc/c.png View File

Before After
Width: 586  |  Height: 1275  |  Size: 120 KiB

BIN
doc/cart.png View File

Before After
Width: 604  |  Height: 1279  |  Size: 137 KiB

BIN
doc/category.png View File

Before After
Width: 606  |  Height: 1263  |  Size: 136 KiB

BIN
doc/center.png View File

Before After
Width: 580  |  Height: 1266  |  Size: 140 KiB

BIN
doc/editAddress.png View File

Before After
Width: 601  |  Height: 1276  |  Size: 157 KiB

BIN
doc/home-s.png View File

Before After
Width: 595  |  Height: 1270  |  Size: 176 KiB

BIN
doc/home.png View File

Before After
Width: 586  |  Height: 1276  |  Size: 271 KiB

static/image/home/btn.png → doc/home/btn.png View File


static/image/home/home-background.png → doc/home/home-background.png View File


BIN
doc/order.png View File

Before After
Width: 588  |  Height: 1270  |  Size: 107 KiB

BIN
doc/productDetail.png View File

Before After
Width: 604  |  Height: 1264  |  Size: 177 KiB

BIN
doc/productUnit.png View File

Before After
Width: 619  |  Height: 1254  |  Size: 161 KiB

BIN
doc/purse.png View File

Before After
Width: 615  |  Height: 1267  |  Size: 138 KiB

BIN
doc/下一页_slices.zip View File


BIN
doc/威士忌鉴玩家@2x.png View File

Before After
Width: 750  |  Height: 519  |  Size: 27 KiB

BIN
doc/已满18岁_slices/-m--e-组 1@2x.png View File

Before After
Width: 750  |  Height: 1624  |  Size: 575 KiB

BIN
doc/已满18岁_slices/-m--e-组 1@3x.png View File

Before After
Width: 1125  |  Height: 2436  |  Size: 1.3 MiB

BIN
doc/组 4@2x.png View File

Before After
Width: 458  |  Height: 321  |  Size: 143 KiB

+ 4
- 0
main.js View File

@ -14,6 +14,10 @@ import store from '@/store/store'
import './config' import './config'
import './utils/index.js' import './utils/index.js'
import mixinConfigList from '@/mixins/configList.js'
Vue.mixin(mixinConfigList)
//组件注册 //组件注册
import configPopup from '@/components/config/configPopup.vue' import configPopup from '@/components/config/configPopup.vue'
import navbar from '@/components/base/navbar.vue' import navbar from '@/components/base/navbar.vue'


+ 43
- 0
mixins/configList.js View File

@ -0,0 +1,43 @@
import { mapState } from 'vuex'
export default {
data() {
return {
// 默认的全局分享内容
Gshare: {
// title: '三只青蛙',
path: '/pages/index/index', // 全局分享的路径,比如 首页
// imageUrl: '/static/image/login/logo.png', // 全局分享的图片(可本地可网络)
}
}
},
computed: {
...mapState(['configList', 'userInfo']),
},
// 定义全局分享
// 1.发送给朋友
onShareAppMessage(res) {
let o = {
...this.Gshare,
title : this.configList.logo_name,
}
if(this.userInfo.id){
o.path = this.Gshare.path + '?shareId=' + this.userInfo.id
}
return o
},
//2.分享到朋友圈
onShareTimeline(res) {
let o = {
...this.Gshare,
title : this.configList.logo_name,
}
if(this.userInfo.id){
o.path = this.Gshare.path + '?shareId=' + this.userInfo.id
}
return o
},
methods: {
}
}

+ 94
- 0
pages - 副本.json View File

@ -0,0 +1,94 @@
{
"pages": [
{
"path" : "pages/index/agreement",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/index/home",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/index/article"
},
{
"path": "pages/index/cancelArticle"
},
{
"path": "pages/index/order",
"style": {
"enablePullDownRefresh": true
}
},
{
"path" : "pages/index/introduce",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/logoInfo",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/review",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/preAppoint",
"style" :
{
"navigationBarTitleText" : ""
}
}
],
"preloadRule": {
"pages/index/home": {
"network": "all",
"packages": ["pages_order"]
}
},
"subPackages": [{
"root": "pages_order",
"pages": [
{
"path": "auth/wxLogin"
},
{
"path": "auth/wxUserInfo"
},
{
"path" : "info/appoint"
},
{
"path" : "info/fillInfo"
}
]
}],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8",
"navigationStyle": "custom"
},
"uniIdRouter": {}
}

+ 8
- 10
pages.json View File

@ -1,5 +1,12 @@
{ {
"pages": [ "pages": [
{
"path" : "pages/index/agreement",
"style" :
{
"navigationBarTitleText" : ""
}
},
{ {
"path": "pages/index/index", "path": "pages/index/index",
"style": { "style": {
@ -18,12 +25,6 @@
{ {
"path": "pages/index/cancelArticle" "path": "pages/index/cancelArticle"
}, },
{
"path": "pages/index/order",
"style": {
"enablePullDownRefresh": true
}
},
{ {
"path" : "pages/index/introduce", "path" : "pages/index/introduce",
"style" : "style" :
@ -39,7 +40,7 @@
} }
}, },
{ {
"path" : "pages/index/review",
"path" : "pages/index/preAppoint",
"style" : "style" :
{ {
"navigationBarTitleText" : "" "navigationBarTitleText" : ""
@ -63,9 +64,6 @@
}, },
{ {
"path" : "info/appoint" "path" : "info/appoint"
},
{
"path" : "info/fillInfo"
} }
] ]
}], }],


+ 150
- 0
pages/index/agreement.vue View File

@ -0,0 +1,150 @@
<template>
<view class="home">
<image src="/static/image/bg/X1.png"
class="page-bg"
mode="aspectFill"></image>
<view class="content_now">
<view class="title">
Genius Journey Club
</view>
<view class="title-desc">
欢迎您的到来
</view>
<view class="desc">
使用小程序请确认您已满18周岁
</view>
<view class="mian-btn"
:class="{active:isActive === '未满18岁'}"
@click="setActive('未满18岁')">{{ '未满18岁' }}</view>
<view class="mian-btn"
:class="{active:isActive === '已满18岁'}"
@click="setActive('已满18岁')">{{ '已满18岁' }}</view>
<view class="checkbox">
<uv-checkbox-group v-model="checkboxValue">
<view class="flex-center">
<uv-checkbox
size="40rpx"
icon-size="30rpx"
activeColor="#ecb864" :name="1"></uv-checkbox>
<text>已同意</text>
<text @click="$refs.popup.open('privacyAgreement')">隐私政策</text>
</view>
</uv-checkbox-group>
</view>
<view class="uni-color-btn"
@click="next">
立即开启
</view>
<text class="second-color">{{ configObj.bg_title }}</text>
</view>
<configPopup ref="popup"></configPopup>
</view>
</template>
<script>
import { mapState } from 'vuex'
export default {
data() {
return {
isActive : null,
checkboxValue : [],
configObj : {},
}
},
computed : {
},
onLoad() {
uni.$on('initConfig', data => {
this.configObj = data
})
},
onShow() {
},
methods: {
setActive(value){
this.isActive = value
},
next(){
if(!this.isActive){
uni.showToast({
title:'请选择',
icon: 'none'
})
return
}
if(!this.checkboxValue.length){
uni.showToast({
title:'请同意隐私政策',
icon: 'none'
})
return
}
if(!uni.getStorageSync('token')){
this.$utils.toLogin()
return
}
this.$store.commit('getUserInfo', () => {
uni.navigateTo({
url: '/pages/index/index'
})
})
},
}
}
</script>
<style lang="scss" scoped>
.content_now{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
position: fixed;
top: 55%;
transform: translate(0, -50%);
padding: 0 70rpx;
box-sizing: border-box;
width: 100%;
--color2 : #000;
.title-desc{
font-size: 26rpx;
}
.desc{
font-size: 26rpx;
margin-top: 30rpx;
}
.mian-btn{
border-color: $uni-color-primary;
color: $uni-color-primary;
}
.active{
background-color: $uni-color-primary;
color: #fff;
}
.checkbox{
margin-top: 460rpx;
}
.uni-color-btn{
width: 80%;
}
.flex-center {
display: flex;
justify-content: center;
align-items: center;
font-size: 26rpx;
}
}
</style>

+ 133
- 70
pages/index/home.vue View File

@ -1,35 +1,37 @@
<template> <template>
<view class="home">
<view class="page">
<image src="/static/image/bg/1.png"
<image :src="configList.img_13"
class="page-bg" class="page-bg"
mode="aspectFill"></image> mode="aspectFill"></image>
<image :src="configList.img_7"
class="logo"
mode="widthFix"></image>
<!-- next1 --> <!-- next1 -->
<view class="content_now" v-if="stop == 1">
<view class=""
v-if="probleme[index]"
v-html="$utils.stringFormatHtml(probleme[index].title)">
</view>
<view class="content" v-if="question[index]">
<!-- <view class="mian-btn"
:class="{active:isActive === '是'}"
@click="setActive('是')"></view>
<image :src="configList.img_11"
class="content-bg"
mode="aspectFill"></image>
<view class="mian-btn"
:class="{active:isActive === '否'}"
@click="setActive('否')"></view> -->
<view class=""
v-html="$utils.stringFormatHtml(question[index].title)">
</view>
<view class="mian-btn" <view class="mian-btn"
v-for="(item, index) in probleme[index] && probleme[index].danan && probleme[index].danan.split(',')"
:class="{active:isActive === item}"
:key="index"
@click="setActive(item)">{{ item }}</view>
v-for="(item, i) in question[index].answerObjectSkuList"
:class="{active : answerIds[index] == item.id}"
:key="i"
@click="select(item)">
{{ item.title }}
</view>
</view> </view>
<!-- next2 --> <!-- next2 -->
<view class="content_now" v-if="stop == 2">
<view class="content" v-if="stop == 2">
<text class="font-bold mb-60">请选择您所在的区域</text> <text class="font-bold mb-60">请选择您所在的区域</text>
<view class=""> <view class="">
<picker <picker
@ -57,21 +59,21 @@
<view class="an"> <view class="an">
<!-- <view style="display: flex;width: 600rpx;"
v-if="stop == 1">
<view class="next-btn"
<view style="display: flex;gap: 30rpx;"
>
<view class="next-btn-2"
v-if="index > 0" v-if="index > 0"
@click="index--">
@click="ret">
上一题 上一题
</view> </view>
<view class="next-btn" <view class="next-btn"
@click="next">
@click="next1">
下一题 下一题
</view> </view>
</view> -->
</view>
<view class="next-btn"
<!-- <view class="next-btn"
v-if="stop == 1" v-if="stop == 1"
@click="next"> @click="next">
下一题 下一题
@ -81,7 +83,7 @@
v-if="stop == 2" v-if="stop == 2"
@click="next"> @click="next">
提交 提交
</view>
</view> -->
<text class="second-color">{{ configList.bg_title }}</text> <text class="second-color">{{ configList.bg_title }}</text>
</view> </view>
@ -101,61 +103,84 @@
province : '', province : '',
city : '', city : '',
district : '', district : '',
}
},
question : [],
answerIds : [],
} }
}, },
computed : { computed : {
...mapState(['problemList', 'configList', 'queryMyLog']),
probleme(){
let ids = []
for(let i = 0;i < this.queryMyLog.length;i++){
ids.push(this.queryMyLog[i].topId)
}
return this.problemList.filter(n => {
return !ids.includes(n.id)
})
},
...mapState(['configList']),
}, },
onLoad() { onLoad() {
if(this.probleme.length == 0){
this.stop++
}
let address = uni.getStorageSync('user_address')
if(address){
this.address = JSON.parse(address)
}
this.firstQuestion()
}, },
onShow() { onShow() {
}, },
methods: { methods: {
setActive(value){
this.isActive = value
select(item){
this.answerIds.splice(this.index, 1, item.id)
this.isActive = item.toMainId
}, },
next(){
this['next' + this.stop]()
ret(){
this.index--
this.isActive = null
this.question[this.index]
.answerObjectSkuList.forEach(n => {
if(n.id == this.answerIds[this.index]){
this.isActive = n.toMainId
}
})
},
firstQuestion(){
this.$api('firstQuestion', res => {
if(res.code == 200){
this.question.push(res.result)
}
})
}, },
next1(){ next1(){
if(this.isActive){
this.$api('submitLog', {
topId : this.probleme[this.index].id,
context : this.isActive,
}, res => {
this.isActive = null
if(this.index == this.probleme.length - 1){
this.stop = 2
}else{
this.index++
}
})
}else{
if(!this.isActive){
uni.showToast({ uni.showToast({
title:'请选择后进行下一题', title:'请选择后进行下一题',
icon: 'none' icon: 'none'
}) })
return
}
let item = null
this.question[this.index]
.answerObjectSkuList.forEach(n => {
if(n.id == this.answerIds[this.index]){
item = n
}
})
if(item.isEnd == 'Y'){
this.$store.commit('getTitleByIds', item.toRuleId)
return
} }
this.$api('getProblemById', {
id : this.isActive
}, res => {
if(res.code == 200){
this.index++
this.question.splice(this.index, 1, res.result)
}
})
// this.$api('submitLog', {
// topId : this.probleme[this.index].id,
// context : this.isActive,
// }, res => {
// this.isActive = null
// if(this.index == this.probleme.length - 1){
// this.stop = 2
// }else{
// uni.navigateTo({
// url: '/pages/index/preAppoint'
// })
// }
// })
}, },
next2(){ next2(){
// this.stop = 3 // this.stop = 3
@ -187,6 +212,33 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page{
.logo{
width: 600rpx;
margin: 150rpx 75rpx;
}
.content{
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-sizing: border-box;
padding: 0 60rpx;
text-align: center;
width: 700rpx;
height: 650rpx;
margin: 0 25rpx;
.content-bg{
height: 100%;
width: 100%;
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
}
}
.region{ .region{
display: flex; display: flex;
@ -215,18 +267,26 @@
color: #e6bf7f; color: #e6bf7f;
} }
} }
.next-btn{ .next-btn{
background-image: url('../../static/image/home/btn.png');
background-size: contain;
background-repeat: no-repeat;
background-position: center;
width: 280rpx;
width: 120rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
color: white; color: white;
padding: 16rpx 90rpx; padding: 16rpx 90rpx;
background-color: $uni-color;
border-radius: 30rpx;
}
.next-btn-2{
width: 120rpx;
display: flex;
align-items: center;
justify-content: center;
color: white;
padding: 16rpx 90rpx;
background-color: $uni-color-primary;
border-radius: 30rpx;
} }
.an{ .an{
@ -239,4 +299,7 @@
justify-content: center; justify-content: center;
width: 100%; width: 100%;
} }
.second-color{
margin-top: 20rpx;
}
</style> </style>

+ 66
- 0
pages/index/index - 副本.vue View File

@ -0,0 +1,66 @@
<template>
<view class="home">
<image src="/static/image/bg/2.png"
class="page-bg"
mode="aspectFill"></image>
<view class="swipe" style="padding-top: 310rpx;">
<uv-swiper :list="bannerList"
keyName="image"
height="300rpx"></uv-swiper>
</view>
<view class="content" style="padding-top: 20rpx;">
<text>欢迎</text>
<text style="font-size: 80rpx; margin: 10rpx 0;">Christine</text>
<view class="flex-col" style="gap: 5rpx; margin-top: 20rpx;">
<text>来到百富门的世界</text>
<text>品味传承与创新交织的威士忌艺术</text>
<text>开启您的专属品鉴之旅</text>
</view>
<view style="margin-top: 40rpx;" @click="query">
<view class="btn2">
点击进入
</view>
</view>
<view class="link"
@click="$utils.navigateTo('/pages/index/order')">
预约记录
</view>
</view>
</view>
</template>
<script>
import { mapState } from 'vuex'
export default {
data() {
return {
}
},
computed : {
...mapState(['bannerList']),
},
onShow() {
},
methods: {
query(){
uni.navigateTo({
// url: '/pages/index/article'
url: '/pages/index/introduce'
})
},
}
}
</script>
<style lang="scss" scoped>
.link{
margin-top: 30rpx;
font-size: 26rpx;
color: $uni-color;
text-decoration: underline;
}
</style>

+ 84
- 32
pages/index/index.vue View File

@ -1,35 +1,44 @@
<template> <template>
<view class="home">
<view class="page">
<image src="/static/image/bg/2.png"
<image :src="configList.img_4"
class="page-bg" class="page-bg"
mode="aspectFill"></image> mode="aspectFill"></image>
<view class="swipe" style="padding-top: 310rpx;">
<uv-swiper :list="bannerList"
keyName="image"
height="300rpx"></uv-swiper>
</view>
<image :src="configList.img_6"
class="logo"
mode="widthFix"></image>
<image :src="configList.img_9"
class="page-bg"
mode="widthFix"></image>
<view class="content" style="padding-top: 20rpx;">
<text>欢迎</text>
<text style="font-size: 80rpx; margin: 10rpx 0;">Christine</text>
<view class="flex-col" style="gap: 5rpx; margin-top: 20rpx;">
<text>来到百富门的世界</text>
<text>品味传承与创新交织的威士忌艺术</text>
<text>开启您的专属品鉴之旅</text>
<view class="info">
<view class="title">
{{ userInfo.nickName }}
</view> </view>
<view style="margin-top: 40rpx;" @click="query">
<view class="btn2">
点击进入
</view>
<view class="list">
欢迎来到百富门的世界
<br />
品味传承与创新交织的威士忌
<br />
艺术开启您的专属品鉴之旅
</view> </view>
<view class="link"
@click="$utils.navigateTo('/pages/index/order')">
预约记录
</view>
<image :src="configList.img_8"
class="logo"
mode="widthFix"></image>
<view class="position">
<view class="btn"
@click="next">
点击进入
</view> </view>
<text class="second-color">{{ configList.bg_title }}</text>
</view> </view>
</view> </view>
</template> </template>
@ -41,15 +50,24 @@
} }
}, },
computed : { computed : {
...mapState(['bannerList']),
}, },
onShow() { onShow() {
this.$store.commit('getUserInfo')
}, },
methods: { methods: {
query(){
uni.navigateTo({
// url: '/pages/index/article'
url: '/pages/index/introduce'
next(){
uni.requestSubscribeMessage({
//ID
tmplIds: [
'ZREm8r0Bgv-W0W48DHw83nUMYYOdaslI99MTlqgR0ZI',
'0GqFy6mBu1bmoHsSugtKoQ64aFs1oQXy6sZOE1FlDcw'
],
success (res) {
console.log(res)
uni.navigateTo({
url: '/pages/index/introduce'
})
}
}) })
}, },
} }
@ -57,10 +75,44 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.link{
margin-top: 30rpx;
font-size: 26rpx;
color: $uni-color;
text-decoration: underline;
}
.page{
width: 100%;
.logo{
width: 600rpx;
margin: 50rpx 75rpx;
}
.info{
text-align: center;
.title {
font-size: 40rpx;
font-weight: bold;
margin: 40rpx 0 20rpx 0;
}
.list{
line-height: 50rpx;
}
}
.position{
position: absolute;
bottom: 130rpx;
left: 75rpx;
display: flex;
flex-direction: column;
align-items: center;
.btn{
border-radius: 40rpx;
padding: 30rpx 0;
background: $uni-color-primary;
color: #fff;
text-align: center;
font-size: 28rpx;
width: 600rpx;
}
}
.second-color{
color: $uni-color-primary;
margin-top: 20rpx;
font-size: 26rpx;
}
}
</style> </style>

+ 126
- 0
pages/index/introduce - 副本.vue View File

@ -0,0 +1,126 @@
<template>
<view class="home">
<image src="/static/image/bg/bg1x2.png"
class="page-bg"
mode="aspectFill"></image>
<view class="content_now">
<view class="article">
<uv-parse :content="configList.introduce"></uv-parse>
</view>
</view>
<view class="an">
<view class="btn2"
@click="start">
开始
</view>
<view class="logo-list">
<view class="logoo-item"
:key="index"
v-for="(item, index) in list">
<image :src="item.image" mode="aspectFill"></image>
<view class="btn"
@click="toBrand(item.id)">
点击进入
</view>
</view>
</view>
<text class="second-color">{{ configList.bg_title }}</text>
</view>
</view>
</template>
<script>
import { mapState } from 'vuex'
export default {
computed : {
...mapState(['articleList', 'configList']),
},
data() {
return {
key : 'cancel_value',
list : [],
}
},
onLoad(args) {
this.getBrand()
},
methods: {
next(){
},
start(){
uni.navigateTo({
url: '/pages/index/article'
})
},
getBrand(){
this.$api('getBrand', res => {
if(res.code == 200){
this.list = res.result
}
})
},
toBrand(id){
uni.navigateTo({
url: '/pages/index/logoInfo?id=' + id
})
},
}
}
</script>
<style lang="scss" scoped>
.article{
width: 600rpx;
font-size: 28rpx;
line-height: 50rpx;
}
.an{
position: fixed;
bottom: 190rpx;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
}
.second-color{
margin-top: 20rpx;
}
.btn2 {
border: 4rpx solid $uni-color;
display: flex;
align-items: center;
justify-content: center;
padding: 16rpx 200rpx;
color: $uni-color;
border-radius: 10rpx;
}
.logo-list{
display: flex;
gap: 30rpx;
margin-top: 20rpx;
image{
width: 160rpx;
height: 90rpx;
}
.logoo-item{
background-color: rgba(236, 184, 100, 0.1);
border: 1rpx solid rgba(236, 184, 100, 0.4);
padding: 10rpx 20rpx;
border-radius: 10rpx;
.btn{
font-size: 20rpx;
color: #fff;
background-color: rgba(236, 184, 100, 1);
border-radius: 30rpx;
padding: 4rpx 14rpx;
}
}
}
</style>

+ 61
- 64
pages/index/introduce.vue View File

@ -1,37 +1,37 @@
<template> <template>
<view class="home">
<view class="page">
<image src="/static/image/bg/5.png"
<image :src="configList.img_13"
class="page-bg" class="page-bg"
mode="aspectFill"></image> mode="aspectFill"></image>
<view class="content_now">
<view class="article">
<uv-parse :content="configList.introduce"></uv-parse>
</view>
<image :src="configList.img_6"
class="logo"
mode="widthFix"></image>
<view class="article">
<uv-parse :content="configList.introduce"></uv-parse>
</view> </view>
<view class="an">
<view class="btn2"
@click="start">
开始
</view>
<view class="logo-list">
<view class="logoo-item"
:key="index"
v-for="(item, index) in list">
<image :src="item.image" mode="aspectFill"></image>
<view class="btn"
@click="toBrand(item.id)">
点击进入
</view>
<view class="logo-list">
<view class="logoo-item"
:key="index"
v-for="(item, index) in list">
<image :src="item.image" mode="aspectFill"></image>
<view class="btn"
@click="toBrand(item.id)">
点击进入
</view> </view>
</view> </view>
<text class="second-color">{{ configList.bg_title }}</text>
</view> </view>
<view class="uni-color-btn"
@click="start">
开始测试
</view>
<text class="second-color">{{ configList.bg_title }}</text>
</view> </view>
</template> </template>
@ -54,8 +54,11 @@
next(){ next(){
}, },
start(){ start(){
// uni.navigateTo({
// url: '/pages/index/article'
// })
uni.navigateTo({ uni.navigateTo({
url: '/pages/index/article'
url: '/pages/index/home'
}) })
}, },
getBrand(){ getBrand(){
@ -75,51 +78,45 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.article{
width: 600rpx;
font-size: 28rpx;
line-height: 50rpx;
}
.an{
position: fixed;
bottom: 190rpx;
.page{
text-align: center; text-align: center;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
width: 100%;
}
.second-color{
margin-top: 20rpx;
}
.btn2 {
border: 4rpx solid $uni-color;
display: flex;
align-items: center;
justify-content: center;
padding: 16rpx 200rpx;
color: $uni-color;
border-radius: 10rpx;
}
.logo-list{
display: flex;
gap: 30rpx;
margin-top: 20rpx;
image{
width: 160rpx;
height: 90rpx;
.logo{
margin-top: 100rpx;
}
.article{
margin: 30rpx;
} }
.logoo-item{
background-color: rgba(236, 184, 100, 0.1);
border: 1rpx solid rgba(236, 184, 100, 0.4);
padding: 10rpx 20rpx;
border-radius: 10rpx;
.btn{
font-size: 20rpx;
color: #fff;
background-color: rgba(236, 184, 100, 1);
border-radius: 30rpx;
padding: 4rpx 14rpx;
.uni-color-btn{
margin-top: 100rpx;
width: 560rpx;
}
.logo-list{
display: flex;
gap: 30rpx;
margin-top: 20rpx;
image{
width: 160rpx;
height: 90rpx;
}
.logoo-item{
background-color: #fff;
border-radius: 50%;
height: 200rpx;
width: 200rpx;
box-shadow: 0 0 10rpx 10rpx #00000011;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
.btn{
font-size: 20rpx;
color: $uni-color-primary;
border-radius: 30rpx;
padding: 4rpx 14rpx;
}
} }
} }
} }

+ 75
- 0
pages/index/preAppoint.vue View File

@ -0,0 +1,75 @@
<template>
<view class="page">
<image src="/static/image/bg/bg1x2.png"
class="page-bg"
mode="aspectFill"></image>
<image src="/static/image/bg/logolist2.png"
class="logo"
mode="widthFix"></image>
<view class="btn-list">
<view class="next-btn-2"
@click="">
保存
</view>
<view class="next-btn"
@click="next">
下一页
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.page{
.logo{
width: 600rpx;
margin: 150rpx 75rpx;
}
.btn-list{
display: flex;
flex-direction: column;
gap: 40rpx;
width: 100%;
justify-content: center;
align-items: center;
}
.next-btn{
width: 220rpx;
display: flex;
align-items: center;
justify-content: center;
color: white;
padding: 16rpx 90rpx;
background-color: $uni-color;
border-radius: 30rpx;
}
.next-btn-2{
width: 220rpx;
display: flex;
align-items: center;
justify-content: center;
color: white;
padding: 16rpx 90rpx;
background-color: $uni-color-primary;
border-radius: 30rpx;
}
}
</style>

+ 0
- 38
pages/index/reschedule.vue View File

@ -1,38 +0,0 @@
<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>

+ 1
- 1
pages/index/review.vue View File

@ -161,7 +161,7 @@
} }
.next-btn{ .next-btn{
background-image: url('../../static/image/home/btn.png');
// background-image: url('../../static/image/home/btn.png');
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;


+ 0
- 37
pages/index/viewDetail.vue View File

@ -1,37 +0,0 @@
<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>

+ 2
- 2
pages_order/auth/wxUserInfo.vue View File

@ -87,8 +87,8 @@
avatarUrl : self.userInfo.headImage, avatarUrl : self.userInfo.headImage,
}, res => { }, res => {
if (res.code == 200) { if (res.code == 200) {
uni.reLaunch({
url: '/pages/index/home'
uni.navigateTo({
url: '/pages/index/index'
}) })
} }
}) })


+ 1
- 1
pages_order/info/fillInfo.vue View File

@ -109,7 +109,7 @@
} }
.next-btn { .next-btn {
background-image: url('../../static/image/home/btn.png');
// background-image: url('../../static/image/home/btn.png');
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;


+ 1
- 1
pages_order/info/isAdult.vue View File

@ -80,7 +80,7 @@
} }
.next-btn { .next-btn {
background-image: url('../../static/image/home/btn.png');
// background-image: url('../../static/image/home/btn.png');
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;


BIN
static/image/bg/X1.png View File

Before After
Width: 375  |  Height: 812  |  Size: 151 KiB

BIN
static/image/bg/logolist2.png View File

Before After
Width: 615  |  Height: 92  |  Size: 28 KiB

+ 57
- 44
store/store.js View File

@ -15,6 +15,7 @@ const store = new Vuex.Store({
problemList : [],//问题列表 problemList : [],//问题列表
queryMyLog : [],//我的答题记录 queryMyLog : [],//我的答题记录
reviewAnswerList : [],//评论题目列表 reviewAnswerList : [],//评论题目列表
titleBy : {},//称号
}, },
getters: { getters: {
}, },
@ -27,6 +28,7 @@ const store = new Vuex.Store({
res.result.forEach(n => { res.result.forEach(n => {
state.configList[n.keyName] = n.keyContent state.configList[n.keyName] = n.keyContent
}) })
uni.$emit('initConfig', state.configList)
} }
}) })
@ -67,65 +69,76 @@ const store = new Vuex.Store({
url: '/pages_order/auth/wxUserInfo' url: '/pages_order/auth/wxUserInfo'
}) })
}else{ }else{
uni.navigateBack(-1)
uni.navigateTo({
url: '/pages/index/index'
})
} }
}) })
} }
}) })
}, },
getUserInfo(state){
getUserInfo(state, fn){
api('getInfo', res => { api('getInfo', res => {
if(res.code == 200){ if(res.code == 200){
state.userInfo = res.result state.userInfo = res.result
fn && fn(state.userInfo)
} }
}) })
}, },
// 获取轮播图
getBanner(state){
api('bannerList', res => {
if(res.code == 200){
state.bannerList = res.result
}
})
},
// 获取文章列表
getArticleList(state){
api('articleList', res => {
if(res.code == 200){
state.articleList = res.result
}
})
},
// 获取问题列表
getProblemList(state){
api('problemList', res => {
// 获得的称号接口
getTitleByIds(state, ids){
api('getTitleByIds', {ids}, res => {
if(res.code == 200){ if(res.code == 200){
state.problemList = res.result
}
})
},
// 评论题目列表接口
getAnswerList(state, id){
api('queryAnswerList', res => {
if(res.code == 200){
state.reviewAnswerList = res.result
uni.navigateTo({
url: '/pages/index/review?oid=' + id
})
}
})
},
// 查询我的答题记录
getQueryMyLog(state){
api('queryMyLog', res => {
if(res.code == 200){
state.queryMyLog = res.result
uni.navigateTo({
url: '/pages/index/home'
})
state.titleBy = res.result
} }
}) })
}, },
// // 获取轮播图
// getBanner(state){
// api('bannerList', res => {
// if(res.code == 200){
// state.bannerList = res.result
// }
// })
// },
// // 获取文章列表
// getArticleList(state){
// api('articleList', res => {
// if(res.code == 200){
// state.articleList = res.result
// }
// })
// },
// // 获取问题列表
// getProblemList(state){
// api('problemList', res => {
// if(res.code == 200){
// state.problemList = res.result
// }
// })
// },
// // 评论题目列表接口
// getAnswerList(state, id){
// api('queryAnswerList', res => {
// if(res.code == 200){
// state.reviewAnswerList = res.result
// uni.navigateTo({
// url: '/pages/index/review?oid=' + id
// })
// }
// })
// },
// // 查询我的答题记录
// getQueryMyLog(state){
// api('queryMyLog', res => {
// if(res.code == 200){
// state.queryMyLog = res.result
// uni.navigateTo({
// url: '/pages/index/home'
// })
// }
// })
// },
}, },
actions: {}, actions: {},
}) })


+ 23
- 2
uni.scss View File

@ -12,10 +12,10 @@
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件 * 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件
*/ */
/* 颜色变量 */ /* 颜色变量 */
$uni-color: #ecb864;
$uni-color: #cda470;
/* 行为相关颜色 */ /* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-primary: #321e15;
$uni-color-success: #4cd964; $uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e; $uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d; $uni-color-error: #dd524d;
@ -76,3 +76,24 @@ $uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:26px; $uni-font-size-subtitle:26px;
$uni-color-paragraph: #3F536E; // 文章段落颜色 $uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:15px; $uni-font-size-paragraph:15px;
.uni-color-btn{
border-radius: 40rpx;
padding: 20rpx;
margin: 40rpx;
background: $uni-color;
color: #fff;
text-align: center;
font-size: 28rpx;
}
.uni-uncolor-btn{
border-radius: 40rpx;
padding: 20rpx;
margin: 40rpx;
border: 1px solid $uni-color;
color: $uni-color;
text-align: center;
font-size: 28rpx;
}

Loading…
Cancel
Save