添加动画及移动端修复

master
yujialong 8 months ago
parent cf06f798a6
commit b849c5d88a
  1. 42
      package-lock.json
  2. 1
      package.json
  3. BIN
      src/assets/images/occupationlab.png
  4. 75
      src/components/occuQrcode/index.vue
  5. 37
      src/layouts/header/index.vue
  6. 40
      src/pages/aboutUs/index.vue
  7. 8
      src/pages/index/show/index.vue
  8. 30
      src/pages/member/index.vue

42
package-lock.json generated

@ -9938,6 +9938,19 @@
"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true "dev": true
}, },
"is-dom-node": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-dom-node/-/is-dom-node-1.0.4.tgz",
"integrity": "sha512-NEnTHKCeyGJTL0cKdzATF8SWzyTMYf5CbNKWBvsXvyMxZG32g+a09qkeCbrfQNLTD85CbPeHb4YjIJCjyzF0yA=="
},
"is-dom-node-list": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-dom-node-list/-/is-dom-node-list-1.2.1.tgz",
"integrity": "sha512-P1H071iT5TGG8pAHslhrLDo/tQLYc8tGuWABVqhGU4l2mm7aDNb9cx2myQ2AujEQO6B2cAujcW4a0/+6UfXInw==",
"requires": {
"is-dom-node": "^1.0.4"
}
},
"is-extendable": { "is-extendable": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@ -11151,6 +11164,11 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
}, },
"miniraf": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/miniraf/-/miniraf-1.0.0.tgz",
"integrity": "sha512-XpvhtJYzVrpXe+JoAthrT9E40NIrSDDMcdHEYL2M+lR/OCas0nadetcBBq/MWYqlgV5aDWVQ3mfAqd+fG6Y/EQ=="
},
"mississippi": { "mississippi": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
@ -14281,6 +14299,11 @@
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
"dev": true "dev": true
}, },
"rematrix": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/rematrix/-/rematrix-0.3.0.tgz",
"integrity": "sha512-xB/9ZvJIKaDgXX0qkvV9/pLD8zK23A6TVV6F8Vhsl+SrxbBeVYutz5uszxgC6Rt3RP9LZiH8OXaYjr+x6WXWmQ=="
},
"remove-trailing-separator": { "remove-trailing-separator": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
@ -14747,6 +14770,16 @@
"ajv-keywords": "^3.5.2" "ajv-keywords": "^3.5.2"
} }
}, },
"scrollreveal": {
"version": "4.0.9",
"resolved": "https://registry.npmjs.org/scrollreveal/-/scrollreveal-4.0.9.tgz",
"integrity": "sha512-fefGvzVS8YbXbDK1+T0kvy2yqxaiBJZeGUhPeqajf+7sGqtX4xikbKGAlzQuPCpswAMswx94ZwhDjXKnRIqW1w==",
"requires": {
"miniraf": "1.0.0",
"rematrix": "0.3.0",
"tealight": "0.3.6"
}
},
"scss-tokenizer": { "scss-tokenizer": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz", "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz",
@ -16003,6 +16036,15 @@
} }
} }
}, },
"tealight": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/tealight/-/tealight-0.3.6.tgz",
"integrity": "sha512-Dys3N8jFBThD9pNVpPCyUiu6DfWcTBdqWQJIvnAuVaFkGEdrPBJ43070vVbn6sTlLvn2IQK2zFW4FrVIrTo8eQ==",
"requires": {
"is-dom-node": "^1.0.4",
"is-dom-node-list": "^1.2.1"
}
},
"temp-dir": { "temp-dir": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",

@ -22,6 +22,7 @@
"mavon-editor": "^2.9.1", "mavon-editor": "^2.9.1",
"node-sass": "^4.14.1", "node-sass": "^4.14.1",
"pinyin-pro": "^3.15.1", "pinyin-pro": "^3.15.1",
"scrollreveal": "^4.0.9",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-animate-number": "^0.4.2", "vue-animate-number": "^0.4.2",
"vue-cropperjs": "^3.0.0", "vue-cropperjs": "^3.0.0",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 834 KiB

After

Width:  |  Height:  |  Size: 594 KiB

@ -0,0 +1,75 @@
<template>
<el-dialog title=""
:visible.sync="diaVisible"
center
:width="$store.getters.getModelType ? '500px' : '100%'"
append-to-body
:top="qrcodeTop"
lock-scroll
custom-class="qrcode-dia">
<div class="pic-wrap">
<img class="pic"
src="@/assets/images/occupationlab.png"
alt="">
</div>
</el-dialog>
</template>
<script>
export default {
props: ['visible'],
data () {
return {
qrcodeTop: '100px'
};
},
computed: {
diaVisible: {
get () {
return this.visible
},
set (val) {
this.$emit('update:visible', val)
}
}
},
mounted () {
const height = (window.innerHeight - (this.$store.getters.getModelType ? 758 : 600)) / 2
this.qrcodeTop = (height > 0 ? height : 0) + 'px'
},
methods: {
close () {
this.$emit('update:visible', false)
}
},
};
</script>
<style lang="scss" scoped>
/deep/.qrcode-dia {
background-color: transparent;
.el-dialog__header,
.el-dialog__body {
padding: 0;
background-color: transparent;
overflow: hidden;
}
.el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.pic-wrap {
display: flex;
justify-content: center;
align-items: center;
}
.pic {
width: 100%;
}
}
@media (max-width: 1200px) {
/deep/.qrcode-dia {
.pic {
width: 95%;
}
}
}
</style>

@ -32,6 +32,8 @@
<!-- 手机端 --> <!-- 手机端 -->
<div v-else <div v-else
class="mobile-tools"> class="mobile-tools">
<i class="login el-icon-user-solid"
@click="toLogin"></i>
<i class="menu-icon" <i class="menu-icon"
:class="modelType ? 'el-icon-s-fold': 'el-icon-s-unfold' " :class="modelType ? 'el-icon-s-fold': 'el-icon-s-unfold' "
@click.stop="updateModelType"></i> @click.stop="updateModelType"></i>
@ -41,30 +43,16 @@
:isHome.sync="isHome" :isHome.sync="isHome"
@updateModelType="updateType"></navbar> @updateModelType="updateType"></navbar>
</div> </div>
<i class="login el-icon-user-solid"
@click="toLogin"></i>
</div> </div>
<el-dialog title="" <occuQrcode :visible.sync="qrcodeVisible" />
:visible.sync="qrcodeVisible"
fullscreen
center
:top="qrcodeTop"
append-to-body
custom-class="qrcode-dia">
<div>
<img width="100%"
style="height: 100vh;object-fit: cover;"
src="@/assets/images/occupationlab.png"
alt="">
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import Util from '@/libs/util' import Util from '@/libs/util'
import { mapMutations } from 'vuex' import { mapMutations } from 'vuex'
import navbar from '../navbar' import navbar from '../navbar'
import occuQrcode from '@/components/occuQrcode'
export default { export default {
data () { data () {
return { return {
@ -79,11 +67,11 @@ export default {
modelType: false, modelType: false,
navShow: true, navShow: true,
qrcodeVisible: false, qrcodeVisible: false,
qrcodeTop: '100px'
}; };
}, },
components: { components: {
navbar navbar,
occuQrcode
}, },
computed: { computed: {
isSfel () { isSfel () {
@ -108,8 +96,6 @@ export default {
window.removeEventListener('scroll', this.handleScroll) window.removeEventListener('scroll', this.handleScroll)
}, },
mounted () { mounted () {
const height = (window.innerHeight - 758) / 2
this.qrcodeTop = (height > 0 ? height : 0) + 'px'
this.setKeyword('') this.setKeyword('')
window.addEventListener('scroll', this.handleScroll) // window.addEventListener('scroll', this.handleScroll) //
document.body.addEventListener('click', e => { document.body.addEventListener('click', e => {
@ -258,7 +244,7 @@ $height: 90px;
} }
} }
.menu-icon { .menu-icon {
margin-right: 10px; margin-left: 10px;
font-size: 1.8rem; font-size: 1.8rem;
color: #c1c1c1; color: #c1c1c1;
cursor: pointer; cursor: pointer;
@ -310,15 +296,6 @@ $height: 90px;
max-height: 30rem; max-height: 30rem;
overflow-y: scroll; overflow-y: scroll;
} }
/deep/.qrcode-dia {
.el-dialog__header,
.el-dialog__body {
padding: 0;
}
.el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
}
@media (max-width: 1660px) { @media (max-width: 1660px) {
.header { .header {
.logo { .logo {

@ -100,7 +100,8 @@
<ul class="list"> <ul class="list">
<template v-for="(item, i) in modules[4].list"> <template v-for="(item, i) in modules[4].list">
<li v-if="item.isEnable" <li v-if="item.isEnable"
:key="i"> :key="i"
class="fadeInUp">
<img :src="item.pic" <img :src="item.pic"
alt=""> alt="">
<h6>{{ item.title }}</h6> <h6>{{ item.title }}</h6>
@ -123,7 +124,8 @@
<ul class="list"> <ul class="list">
<template v-for="(item, i) in modules[6].list"> <template v-for="(item, i) in modules[6].list">
<li v-if="item.isEnable" <li v-if="item.isEnable"
:key="i"> :key="i"
class="fadeInUp">
<img :src="item.pic" <img :src="item.pic"
alt=""> alt="">
<h6>{{ item.title }}</h6> <h6>{{ item.title }}</h6>
@ -164,8 +166,8 @@
:class-option="{limitMoveNum: 2, direction: 2}"> :class-option="{limitMoveNum: 2, direction: 2}">
<ul class="client-list" <ul class="client-list"
ref="client"> ref="client">
<li v-for="item in modules[9].list" <li v-for="(item, i) in modules[9].list"
:key="item"> :key="i">
<img :src="item.pic" <img :src="item.pic"
alt=""> alt="">
</li> </li>
@ -283,26 +285,46 @@
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Setting from '@/setting'
import Util from '@/libs/util' import Util from '@/libs/util'
import WOW from 'wow.js'
import scroll from 'vue-seamless-scroll' import scroll from 'vue-seamless-scroll'
import ScrollReveal from 'scrollreveal'
export default { export default {
mixins: [mixins], mixins: [mixins],
data () { data () {
return { return {
isImg: Util.isImg, isImg: Util.isImg,
active: '', active: '',
clients: [1, 2, 3, 4, 5] clients: [1, 2, 3, 4, 5],
sr: null,
} }
}, },
components: { components: {
scroll scroll
}, },
mounted () { mounted () {
new WOW().init()
}, },
methods: { methods: {
//
initAnimate () {
ScrollReveal().reveal('.wow', {
reset: true, // true, n
// origin: 'bottom', //
distance: '50px',//
duration: 1000, //
scale: 0.8,
// viewFactor: 100,
})
ScrollReveal().reveal('.fadeInUp', {
reset: true, // true, n
origin: 'top', //
distance: '100px',//
duration: 1000, //
// scale: 0.8,
// viewFactor: 100,
})
},
// //
getInfo () { getInfo () {
// / // /
@ -314,6 +336,7 @@ export default {
data[data.length - 1][data[data.length - 1].state ? 'theEditedJson' : 'jsonBeforeEditing']) data[data.length - 1][data[data.length - 1].state ? 'theEditedJson' : 'jsonBeforeEditing'])
this.modules = json this.modules = json
console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json) console.log("🚀 ~ file: index.vue ~ line 180 ~ this.$post ~ json", json)
this.$nextTick(this.initAnimate)
} }
}).catch(err => { }) }).catch(err => { })
}, },
@ -331,7 +354,6 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import url(../../plugins/wow/animate.css);
.wrap { .wrap {
position: relative; position: relative;
background-color: #f9f9f9; background-color: #f9f9f9;

@ -213,6 +213,7 @@
import Util from "@/libs/util" import Util from "@/libs/util"
import Setting from "@/setting" import Setting from "@/setting"
import Breadcrumb from '@/components/breadcrumb' import Breadcrumb from '@/components/breadcrumb'
import ScrollReveal from 'scrollreveal'
export default { export default {
data () { data () {
return { return {
@ -289,6 +290,13 @@ export default {
this.qrcodeTop = (height > 0 ? height : 0) + 'px' this.qrcodeTop = (height > 0 ? height : 0) + 'px'
this.getData() this.getData()
this.getHot() this.getHot()
ScrollReveal().reveal('.products', {
reset: true, // true, n
origin: 'bottom', //
// distance: '300px',//
duration: 1000, //
scale: 0.8,
})
}, },
methods: { methods: {
// //

@ -29,36 +29,25 @@
</div> </div>
</div> </div>
<el-dialog title="" <occuQrcode :visible.sync="qrcodeVisible" />
:visible.sync="qrcodeVisible"
width="500px"
center
:top="qrcodeTop"
custom-class="qrcode-dia">
<div>
<img width="100%"
src="@/assets/images/occupationlab.png"
alt="">
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import mixins from '@/mixins/page' import mixins from '@/mixins/page'
import Setting from '@/setting'
import WOW from 'wow.js' import WOW from 'wow.js'
import occuQrcode from '@/components/occuQrcode'
export default { export default {
mixins: [mixins], mixins: [mixins],
data () { data () {
return { return {
qrcodeVisible: false, qrcodeVisible: false,
qrcodeTop: '100px'
} }
}, },
components: {
occuQrcode
},
mounted () { mounted () {
const height = (window.innerHeight - 758) / 2
this.qrcodeTop = (height > 0 ? height : 0) + 'px'
new WOW().init() new WOW().init()
}, },
methods: { methods: {
@ -188,15 +177,6 @@ export default {
} }
} }
} }
/deep/.qrcode-dia {
.el-dialog__header,
.el-dialog__body {
padding: 0;
}
.el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
}
@media (max-width: 1200px) { @media (max-width: 1200px) {
.reg { .reg {
h6 { h6 {

Loading…
Cancel
Save