Browse Source

swiper

master
maochaoying 2 years ago
parent
commit
f9888fe35d
  1. 43
      package-lock.json
  2. 4
      package.json
  3. 66
      src/App.vue
  4. 17
      src/api/index.js
  5. 1
      src/assets/scss/globalVar.scss
  6. 33
      src/components/Count.vue
  7. 41
      src/style.scss
  8. 16
      yarn.lock

43
package-lock.json

@ -10,13 +10,15 @@
"dependencies": {
"axios": "^1.3.4",
"pinia": "^2.0.32",
"swiper": "^9.0.0",
"vue": "^3.2.45",
"vue-router": "^4.0.13"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.0.0",
"@vue/compiler-sfc": "^3.2.45",
"sass": "^1.58.3",
"vite": "^4.1.0"
"vite": "^4.0.4"
}
},
"node_modules/@babel/parser": {
@ -702,6 +704,11 @@
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"license": "MIT"
},
"node_modules/ssr-window": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz",
"integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
},
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
@ -715,6 +722,27 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/swiper": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-9.1.0.tgz",
"integrity": "sha512-Ck8CywwfUghkbUAHbxTAWyeUAcNrIDNJ6EnKFBGGcHDjeqbh0Jq08RbmD5fMu1a0oOv1eIkUGVkqNJy/asm+yA==",
"funding": [
{
"type": "patreon",
"url": "https://www.patreon.com/swiperjs"
},
{
"type": "open_collective",
"url": "http://opencollective.com/swiper"
}
],
"dependencies": {
"ssr-window": "^4.0.2"
},
"engines": {
"node": ">= 4.7.0"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@ -1287,12 +1315,25 @@
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
},
"ssr-window": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz",
"integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
},
"supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true
},
"swiper": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-9.1.0.tgz",
"integrity": "sha512-Ck8CywwfUghkbUAHbxTAWyeUAcNrIDNJ6EnKFBGGcHDjeqbh0Jq08RbmD5fMu1a0oOv1eIkUGVkqNJy/asm+yA==",
"requires": {
"ssr-window": "^4.0.2"
}
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

4
package.json

@ -11,12 +11,14 @@
"dependencies": {
"axios": "^1.3.4",
"pinia": "^2.0.32",
"swiper": "^9.0.0",
"vue": "^3.2.45",
"vue-router": "^4.0.13"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.0.0",
"@vue/compiler-sfc": "^3.2.45",
"sass": "^1.58.3",
"vite": "^4.1.0"
"vite": "^4.0.4"
}
}

66
src/App.vue

@ -1,9 +1,63 @@
<script setup>
import Count from 'cpns/Count'
</script>
<template>
<Count />
<swiper
virtual
:direction="'vertical'"
:slidesPerView="1"
:spaceBetween="0"
:mousewheel="true"
:pagination="{
clickable: true,
}"
:keyboard="{
enabled: true,
onlyInViewport: false,
pageUpDown: true,
}"
@swiper="onSwiper"
@slideChange="onSlideChange"
:modules="modules"
class="mySwiper"
>
<swiper-slide>Slide 1</swiper-slide>
<swiper-slide>Slide 2</swiper-slide>
<swiper-slide>Slide 3</swiper-slide>
<swiper-slide>Slide 4</swiper-slide>
<swiper-slide>Slide 5</swiper-slide>
<swiper-slide>Slide 6</swiper-slide>
<swiper-slide>Slide 7</swiper-slide>
<swiper-slide>Slide 8</swiper-slide>
<swiper-slide>Slide 9</swiper-slide>
</swiper>
</template>
<script>
// Import Swiper Vue.js components
import { Swiper, SwiperSlide } from 'swiper/vue'
// Import Swiper styles
import 'swiper/css'
import 'swiper/css/pagination'
import './style.scss'
<style scoped></style>
// import required modules
import { Mousewheel, Pagination, Virtual } from 'swiper'
export default {
components: {
Swiper,
SwiperSlide,
},
setup() {
const onSwiper = swiper => {
console.log(swiper)
}
const onSlideChange = () => {
console.log('slide change')
}
return {
onSwiper,
onSlideChange,
modules: [Mousewheel, Pagination, Virtual],
}
},
}
</script>

17
src/api/index.js

@ -1,17 +0,0 @@
import request from '@/service'
export const get15DaysWeatherByArea = data => {
return request({
url: '/api/common/weather/get15DaysWeatherByArea',
method: 'GET',
data,
interceptors: {
requestInterceptors(res) {
return res
},
responseInterceptors(result) {
return result
},
},
})
}

1
src/assets/scss/globalVar.scss

@ -1 +0,0 @@
$bg-color: #1989fa;

33
src/components/Count.vue

@ -1,33 +0,0 @@
<template>
<div class="bg">
<span>当前数值{{ countComputed }}</span>
<br />
<span>双倍数值{{ doubleCount }}</span>
<br />
<button type="primary" size="default" @click="countStore.countAdd">
+1
</button>
<button type="primary" size="default" @click="countStore.countReduce">
-1
</button>
</div>
</template>
<script setup>
import { computed, onMounted } from 'vue'
import { get15DaysWeatherByArea } from '@/api'
import { useCountStore } from '@/store'
import { storeToRefs } from 'pinia'
const countStore = useCountStore()
//
const countComputed = computed(() => countStore.count)
// storeToRefs api
const { doubleCount } = storeToRefs(countStore)
onMounted(() => {
get15DaysWeatherByArea()
})
</script>
<style scoped lang="scss">
.bg {
background: $bg-color;
}
</style>

41
src/style.scss

@ -0,0 +1,41 @@
#app {
height: 100%;
}
html,
body {
position: relative;
height: 100%;
}
body {
background: #eee;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color: #000;
margin: 0;
padding: 0;
}
.swiper {
width: 100%;
height: 100%;
}
.swiper-slide {
text-align: center;
font-size: 18px;
background: #fff;
/* Center slide text vertically */
display: flex;
justify-content: center;
align-items: center;
}
.swiper-slide {
img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
}

16
yarn.lock

@ -35,7 +35,7 @@
"@vue/compiler-core" "3.2.47"
"@vue/shared" "3.2.47"
"@vue/compiler-sfc@3.2.47":
"@vue/compiler-sfc@^3.2.45", "@vue/compiler-sfc@3.2.47":
"integrity" "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ=="
"resolved" "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz"
"version" "3.2.47"
@ -400,11 +400,23 @@
"resolved" "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz"
"version" "1.4.8"
"ssr-window@^4.0.2":
"integrity" "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
"resolved" "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz"
"version" "4.0.2"
"supports-preserve-symlinks-flag@^1.0.0":
"integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
"resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
"version" "1.0.0"
"swiper@^9.0.0":
"integrity" "sha512-Ck8CywwfUghkbUAHbxTAWyeUAcNrIDNJ6EnKFBGGcHDjeqbh0Jq08RbmD5fMu1a0oOv1eIkUGVkqNJy/asm+yA=="
"resolved" "https://registry.npmjs.org/swiper/-/swiper-9.1.0.tgz"
"version" "9.1.0"
dependencies:
"ssr-window" "^4.0.2"
"to-regex-range@^5.0.1":
"integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
"resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
@ -412,7 +424,7 @@
dependencies:
"is-number" "^7.0.0"
"vite@^4.0.0", "vite@^4.1.0":
"vite@^4.0.0", "vite@^4.0.4":
"integrity" "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg=="
"resolved" "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz"
"version" "4.1.4"

Loading…
Cancel
Save