徒步大会提交1

This commit is contained in:
zhaochuanxin 2021-05-05 09:51:56 +08:00
parent c2109f0e78
commit 04c3c92dec
28 changed files with 412 additions and 299 deletions

View File

@ -5,9 +5,9 @@ module.exports = {
overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8']
},
'postcss-pxtorem': {
rootValue: 37.5,
rootValue: 75,
propList: ['*'],
//selectorBlackList: ['van-']
selectorBlackList: ['van-toast']
}
}
}

76
package-lock.json generated
View File

@ -1906,9 +1906,9 @@
}
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"version": "4.1.1",
"resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995297666&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz",
"integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
"dev": true,
"optional": true,
"requires": {
@ -1965,8 +1965,8 @@
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
"dev": true,
"optional": true
},
@ -1978,8 +1978,8 @@
},
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
"integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
"dev": true,
"optional": true,
"requires": {
@ -2083,8 +2083,8 @@
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1618561027869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
"integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
"dev": true,
"optional": true,
"requires": {
@ -2109,9 +2109,9 @@
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.0.0-beta.8",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.0.0-beta.8.tgz",
"integrity": "sha512-oouKUQWWHbSihqSD7mhymGPX1OQ4hedzAHyvm8RdyHh6m3oIvoRF+NM45i/bhNOlo8jCnuJhaSUf/6oDjv978g==",
"version": "npm:vue-loader@16.2.0",
"resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.2.0.tgz",
"integrity": "sha1-BGpTMI3Ufljv4g3ewe3sAnzjtG4=",
"dev": true,
"optional": true,
"requires": {
@ -4517,58 +4517,6 @@
"sha.js": "^2.4.8"
}
},
"cross-env": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz",
"integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.1"
},
"dependencies": {
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
}
},
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"requires": {
"shebang-regex": "^3.0.0"
}
},
"shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"requires": {
"isexe": "^2.0.0"
}
}
}
},
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -1,5 +1,10 @@
// import qs from 'qs'
// axios
// import request from '@/utils/request'
// home api
// home homeApi
const homeApi = {
registerForWalkingFestival: '/ebapi/public_api/register_for_walking_festival'
}
export default homeApi

View File

@ -1,32 +1,14 @@
import api from './index'
import homeApi from './home'
// axios
import request from '@/utils/request'
// 登录
export function login(data) {
// 用户提交图片 & 手机号
export function registerForWalkingFestival(data) {
return request({
url: api.Login,
headers: { 'Content-Type': 'multipart/form-data' },
url: homeApi.registerForWalkingFestival,
method: 'post',
data
})
}
// 用户信息 post 方法
export function getUserInfo(data) {
return request({
url: api.UserInfo,
method: 'post',
data,
hideloading: true
})
}
// 用户名称 get 方法
export function getUserName(params) {
return request({
url: api.UserName,
method: 'get',
params,
hideloading: true
// hideloading: true
})
}

View File

@ -8,6 +8,13 @@ body .app {
background-color: $background-color;
}
.app-container {
padding-bottom: 50px;
// .app-container {
// padding-bottom: 50px;
// }
img {
max-width: 100%;
}
* {
box-sizing: border-box;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

View File

@ -1,9 +1,9 @@
// 本地环境配置
module.exports = {
title: 'vue-h5-template',
baseUrl: 'http://localhost:9018', // 项目地址
baseApi: 'https://test.xxx.com/api', // 本地api请求地址,注意:如果你使用了代理,请设置成'/'
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn: 'https://www.sunniejs.cn/static'
}
// 本地环境配置
module.exports = {
title: '徒步大会活动',
baseUrl: 'http://localhost:9018', // 项目地址
baseApi: '/api', // 本地api请求地址,注意:如果你使用了代理,请设置成'/'
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn: 'https://www.sunniejs.cn/static'
}

View File

@ -1,9 +1,9 @@
// 正式
module.exports = {
title: 'vue-h5-template',
baseUrl: 'https://www.xxx.com/', // 正式项目地址
baseApi: 'https://www.xxx.com/api', // 正式api请求地址
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn: 'https://www.sunniejs.cn/static'
}
// 正式
module.exports = {
title: '徒步大会活动',
baseUrl: 'https://mall.xiangleba.com.cn', // 正式项目地址
baseApi: 'https://mall.xiangleba.com.cn', // 正式api请求地址
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn: 'https://www.sunniejs.cn/static'
}

View File

@ -1,8 +1,8 @@
module.exports = {
title: 'vue-h5-template',
baseUrl: 'https://test.xxx.com', // 测试项目地址
baseApi: 'https://test.xxx.com/api', // 测试api请求地址
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn: 'https://www.sunniejs.cn/static'
}
module.exports = {
title: '徒步大会活动',
baseUrl: 'https://test.xxx.com', // 测试项目地址
baseApi: 'https://test.xxx.com/api', // 测试api请求地址
APPID: 'xxx',
APPSECRET: 'xxx',
$cdn: 'https://www.sunniejs.cn/static'
}

View File

@ -1,7 +1,9 @@
// 按需全局引入 vant组件
import Vue from 'vue'
import { Button, List, Cell, Tabbar, TabbarItem } from 'vant'
import { Button, List, Cell, ImagePreview, Toast, Tabbar, TabbarItem } from 'vant'
Vue.use(Button)
Vue.use(Cell)
Vue.use(List)
Vue.use(ImagePreview)
Vue.use(Toast)
Vue.use(Tabbar).use(TabbarItem)

View File

@ -17,12 +17,6 @@ export const constantRouterMap = [
name: 'Home',
component: () => import('@/views/home/index'),
meta: { title: '首页', keepAlive: false }
},
{
path: '/about',
name: 'About',
component: () => import('@/views/home/about'),
meta: { title: '关于我', keepAlive: false }
}
]
}

View File

@ -1,113 +0,0 @@
<!-- home -->
<template>
<div class="about-container">
<div class="warpper">
<div class="list">
<div class="logo"></div>
<div class="demo-home__title">VUE H5开发模板</div>
<div class="item">
项目地址:
<a href="https://github.com/sunniejs/vue-h5-template">https://github.com/sunniejs/vue-h5-template</a>
</div>
<div class="item">项目作者: sunnie</div>
<div class="item"></div>
<div class="wechat">
<img :src="this.wechat" alt="" />
</div>
<div class="item">关注公众号回复加群即可加 前端仙女群</div>
<div class="item">
{{ userName }}
<van-button v-if="userName == ''" type="warning" size="small" @click="doDispatch">快点我~</van-button>
</div>
</div>
</div>
</div>
</template>
<script>
//
import { getUserInfo } from '@/api/user.js'
import { mapGetters } from 'vuex'
export default {
data() {
return {
wechat: `${this.$cdn}/wx/640.gif`
}
},
computed: {
...mapGetters(['userName'])
},
mounted() {
this.initData()
},
methods: {
//
initData() {
// src->config
const params = { user: 'sunnie' }
getUserInfo(params)
.then(() => { })
.catch(() => { })
},
// Action store.dispatch
doDispatch() {
this.$store.dispatch('setUserName', '真乖,赶紧关注公众号,组织都在等你~')
},
goGithub(index) {
window.location.href = 'https://github.com/sunniejs/vue-h5-template'
}
}
}
</script>
<style lang="scss">
.about-container {
/* 你的命名空间 */
background: #fff;
height: 100vh;
box-sizing: border-box;
.warpper {
padding: 50px 12px 12px 12px;
.list {
display: flex;
flex-direction: column;
align-items: center;
color: #666;
font-size: 14px;
.demo-home__title {
margin: 0 0 6px;
font-size: 32px;
.demo-home__title img,
.demo-home__title span {
display: inline-block;
vertical-align: middle;
}
}
.item {
font-size: 14px;
line-height: 34px;
a {
text-decoration: underline;
}
.van-button {
/* vant-ui 元素*/
background: #ff5500;
}
}
.logo {
width: 120px;
height: 120px;
background: url($cdn+'/weapp/logo.png') center / contain no-repeat;
}
.wechat {
width: 200px;
height: 200px;
img {
width: 100%;
height: auto;
}
}
}
}
}
</style>

View File

@ -2,74 +2,361 @@
<template>
<div class="index-container">
<div class="warpper">
<h1 class="demo-home__title"><img src="https://www.sunniejs.cn/static/weapp/logo.png" /><span> VUE H5开发模板</span></h1>
<h2 class="demo-home__desc">
A vue h5 template with Vant UI
</h2>
<img class="warpper-bg" src="@/assets/images/home/zhutu.png" alt="" />
<div class="warpper-form" v-if="!isFinished">
<input type="text" name="phone" v-model="submitInfo.phone" placeholder="请输入手机号" />
<div class="warpper-form__file" v-if="!submitInfo.image">
<img class="warpper-form__emptyImage" src="@/assets/images/home/img_tianjia.png" alt="" />
<input type="file" name="image" accept="image/jpeg,image/jpg,image/png" @change="fileChange($event)" />
<div class="warpper-form__note">请上传徒步报名凭证</div>
</div>
<div class="warpper-form__upLoadImage" v-else>
<img :src="upLoadImage" alt="上传图片" />
</div>
<button class="warpper-form__submit" :disabled="!isVerification" @click="submit">立即上传</button>
</div>
<div class="warpper-finished" v-else>
<div class="warpper-finished__note--1">徒步大会报名费已返还</div>
<div class="warpper-finished__note--2">请下载享乐吧APP<br />购物商城 - 我的余额中查看</div>
<a href="https://h5.game8808.cn/themes/simplebootx/Appapi/Video/txjunp.php" class="warpper-finished__download">
<img src="@/assets/images/home/xiazai_button.png" alt="" />
</a>
</div>
<div class="warpper-rules">
<div class="title">活动规则</div>
<div class="warpper-rules__item">
<div class="item-title"><span>活动对象</span></div>
<div class="item-text">活动期间注册并登录享乐吧APP的新用户老用户</div>
</div>
<div class="warpper-rules__item">
<div class="item-title"><span>活动时间</span></div>
<div class="item-text">5月4日 - 5月14日</div>
</div>
<div class="warpper-rules__item">
<div class="item-title"><span>活动流程及规则</span></div>
<div class="item-text">
<span class="count">1.</span>
<span class="content">上传徒步大会有效报名证明图片</span>
</div>
<div class="item-text">
<span class="content">报名证明 </span>
</div>
<div class="item-text">
<span class="content">1公众号报名成功订单 </span>
</div>
<div class="item-text">
<span class="content">
<img :src="ActiveImage" alt="" @click="showImge" />
</span>
</div>
<div class="item-text">
<span class="content">2线下报名凭证 </span>
</div>
<div class="item-text">
<span class="count">2.</span>
<span class="content">平台审核通过后享乐吧APP发放10元商城余额请到购物商城-我的余额中查看;</span>
</div>
<div class="item-text">
<span class="count">3.</span>
<span class="content">活动注意事项</span>
</div>
<div class="item-text">
<span class="content">· 若发现用户违规行为享乐吧APP有权立即终止其活动 </span>
</div>
<div class="item-text">
<span class="content">· 本活动最终解释权归享乐吧APP平台所有</span>
</div>
</div>
</div>
<div class="warpper-download">
<a href="https://h5.game8808.cn/themes/simplebootx/Appapi/Video/txjunp.php">
<img src="@/assets/images/home/xiazai.png" alt="" />
</a>
</div>
</div>
<van-cell icon="success" v-for="item in list" :key="item" :title="item" />
</div>
</template>
<script>
import { ImagePreview, Toast } from 'vant'
import { registerForWalkingFestival } from '@/api/user'
import ActiveImage from '@/assets/images/home/img.png'
export default {
data() {
return {
list: [
'Vue-cli4',
'配置多环境变量',
'VantUI 组件按需加载',
'Sass 全局样式',
'Webpack 4',
'Vuex 状态管理',
'Axios 封装及接口管理',
'Vue-router',
'Webpack 4 vue.config.js 基础配置',
'配置 proxy 跨域',
'配置 alias 别名',
'配置 打包分析',
'配置 externals 引入 cdn 资源',
'去掉 console.log',
'splitChunks 单独打包第三方模块',
'添加 IE 兼容',
'Eslint+Pettier 统一开发规范'
]
submitInfo: {
phone: '',
image: ''
}, //
upLoadImage: '', //
isFinished: false, //
ActiveImage //
}
},
computed: {
isVerification() {
const emptyEnum = Object.values(this.submitInfo).filter(v => !v)
//
if (emptyEnum.length > 0) {
return false
}
return true
}
},
mounted() {},
methods: {
//
fileChange(event) {
const files = event.target.files
if (files.length) {
this.submitInfo.image = files[0]
const reader = new FileReader()
reader.readAsDataURL(files[0])
reader.onload = data => {
const result = data.target.result
this.upLoadImage = result
}
}
},
//
showImge() {
ImagePreview([ActiveImage])
},
//
submit() {
const { phone, image } = this.submitInfo
if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(phone)) {
return Toast('手机号码格式有误!')
}
if (!image) {
return Toast('没有上传图片嗷!')
}
computed: {},
mounted() { },
methods: {}
var formData = new FormData()
formData.append('phone', phone)
formData.append('image', image)
registerForWalkingFestival(formData)
.then(res => {
Toast('提交成功!')
this.isFinished = true
})
.catch(error => {
console.log('registerForWalkingFestival-error', error)
})
}
}
}
</script>
<style lang="scss" scoped>
.index-container {
.warpper {
padding: 12px;
background: #fff;
.demo-home__title {
margin: 0 0 6px;
background-color: #008a78;
background-image: url('../../assets/images/home/shumu.png');
background-position: bottom center;
background-size: 100%;
background-repeat: no-repeat;
padding-bottom: 56px;
min-height: 100vh;
.warpper-bg {
width: 100%;
}
.warpper-form {
position: relative;
width: 710px;
margin: 0 auto;
margin-top: -147px;
border-radius: 10px;
padding: 64px;
background-color: #fff;
border: 3px solid #3ea699;
margin-bottom: 66px;
.warpper-form__file {
position: relative;
}
input[type='text'] {
width: 582px;
height: 90px;
font-size: 32px;
.demo-home__title img,
.demo-home__title span {
display: inline-block;
vertical-align: middle;
font-family: 'PingFang-SC-Bold';
font-weight: bold;
border: 0;
-webkit-appearance: none;
box-shadow: 0 0 0 3px #4fada2;
-webkit-box-shadow: 0 0 0 3px #4fada2;
border-radius: 10px;
margin: 0 auto;
margin-bottom: 40px;
padding: 0 22px;
color: #167264;
&::placeholder {
color: #167264;
opacity: 0.5;
}
}
input[type='file'] {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
opacity: 0;
}
.warpper-form__emptyImage {
margin-bottom: 40px;
}
.warpper-form__upLoadImage {
margin-bottom: 40px;
img {
width: 32px;
width: 100%;
}
}
.warpper-form__note {
line-height: 1;
margin-bottom: 40px;
font-size: 36px;
font-family: PingFang SC;
font-weight: 500;
color: #008a78;
text-align: center;
}
.warpper-form__submit {
width: 582px;
height: 86px;
line-height: 86px;
margin: 0 auto;
border-radius: 43px;
border: 0;
color: #fff;
font-size: 36px;
font-weight: bold;
letter-spacing: 2px;
background: linear-gradient(to bottom, #2ec2af, #3ea79a);
box-shadow: 0 3px 0px 3px #2c9386;
text-align: center;
&:disabled {
background: linear-gradient(to bottom, #e5e5e5, #cccdcc);
box-shadow: 0 3px 0px 3px #b3b3b3;
}
}
}
.warpper-finished {
position: relative;
width: 710px;
margin: 0 auto;
margin-top: -147px;
border-radius: 10px;
padding: 64px;
background-color: #fff;
border: 3px solid #3ea699;
margin-bottom: 66px;
}
.warpper-finished__note--1 {
width: 582px;
height: 156px;
line-height: 156px;
font-size: 44px;
font-family: PingFang SC;
font-weight: bold;
color: #008a78;
text-align: center;
background-color: #e1fffb;
margin-bottom: 24px;
}
.warpper-finished__note--2 {
height: 69px;
font-size: 30px;
font-family: PingFang SC;
font-weight: 500;
color: #008a78;
line-height: 40px;
text-align: center;
margin-bottom: 30px;
}
.warpper-finished__download {
display: block;
margin: 0 auto;
width: 582px;
}
.warpper-rules {
width: 710px;
margin: 0 auto;
border-radius: 10px;
padding: 64px 34px;
padding-top: 0;
background-color: #fff;
border: 3px solid #3ea699;
margin-bottom: 24px;
.title {
text-align: center;
width: 320px;
height: 80px;
line-height: 80px;
margin: 0 auto;
margin-top: -41px;
border-radius: 43px;
border: 0;
color: #fff;
font-size: 36px;
font-weight: bold;
letter-spacing: 2px;
background: linear-gradient(to bottom, #2ec2af, #3ea79a);
box-shadow: 0 3px 0px 3px #2c9386;
margin-bottom: 30px;
}
}
.warpper-rules__item {
padding-bottom: 30px;
font-size: 30px;
font-family: PingFang SC;
font-weight: 500;
color: #008a78;
line-height: 1.8;
.item-title {
display: flex;
justify-content: flex-start;
height: 56px;
line-height: 56px;
color: #fff;
font-size: 30px;
font-family: PingFang SC;
font-weight: 500;
margin-bottom: 24px;
span {
margin-left: 16px;
font-weight: 500;
padding-left: 16px;
padding-right: 34px;
background-color: #008a78;
border-top-right-radius: 26px;
border-bottom-right-radius: 26px;
}
}
.demo-home__desc {
margin: 0 0 20px;
color: rgba(69, 90, 100, 0.6);
font-size: 14px;
.item-text {
display: flex;
.count {
position: absolute;
}
.content {
padding-left: 33px;
}
}
}
@keyframes moves {
form {
transform: translateY(-5%);
}
to {
transform: translateY(5%);
}
}
.warpper-download {
// position: fixed;
// bottom: 56px;
// left: 50%;
// margin-left: -340px;
margin: 0 auto;
width: 680px;
display: flex;
justify-content: center;
z-index: 10;
animation: moves 1s infinite alternate;
}
}
</style>

View File

@ -6,14 +6,14 @@
</keep-alive>
<router-view v-else></router-view>
</div>
<div class="layout-footer">
<!-- <div class="layout-footer">
<TabBar :data="tabbars" @change="handleChange" />
</div>
</div> -->
</div>
</template>
<script>
import TabBar from '@/components/TabBar'
// import TabBar from '@/components/TabBar'
export default {
name: 'AppLayout',
data() {
@ -37,7 +37,7 @@ export default {
}
},
components: {
TabBar
// TabBar
},
methods: {
handleChange(v) {

BIN
vue-h5-template.zip Normal file

Binary file not shown.

View File

@ -44,24 +44,25 @@ module.exports = {
lintOnSave: !IS_PROD,
productionSourceMap: false, // 如果你不需要生产环境的 source map可以将其设置为 false 以加速生产环境构建。
devServer: {
public: '0.0.0.0',
port: 9020, // 端口
open: false, // 启动后打开浏览器
overlay: {
// 当出现编译器错误或警告时,在浏览器中显示全屏覆盖层
warnings: false,
errors: true
},
proxy: {
// 配置跨域
'/api': {
target: 'https://vall.xiangleba.com.cn',
// ws:true,
changOrigin: true,
pathRewrite: {
'^/api': '/'
}
}
}
// proxy: {
// //配置跨域
// '/api': {
// target: "https://test.xxx.com",
// // ws:true,
// changOrigin:true,
// pathRewrite:{
// '^/api':'/'
// }
// }
// }
},
css: {
extract: IS_PROD, // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。