Browse Source

首页 图书详情

master
x_ying 2 years ago
parent
commit
f660c9d1d8
  1. 15
      src/views/module/bookList.vue
  2. 17
      src/views/module/bookListItem.vue

15
src/views/module/bookList.vue

@ -25,7 +25,7 @@
<script> <script>
import BookDetails from './bookDetails.vue' import BookDetails from './bookDetails.vue'
import { getBookDetailsByISBN, FetchCoverByISBN } from '@/api/bookshelf'
import { getBookDetailsByISBN } from '@/api/bookshelf'
export default { export default {
name: 'BookList', name: 'BookList',
components: { BookDetails }, components: { BookDetails },
@ -50,26 +50,13 @@ export default {
}, },
methods: { methods: {
handleDetails(index) { handleDetails(index) {
console.log(this.bookdata[index])
const params = { const params = {
isbn: this.bookdata[index].isbn.replace(/\-/g, '') isbn: this.bookdata[index].isbn.replace(/\-/g, '')
} }
console.log(params)
getBookDetailsByISBN(params).then(res => { getBookDetailsByISBN(params).then(res => {
console.log(res, '详情')
this.$refs.detailDom.bookData = res this.$refs.detailDom.bookData = res
this.$refs.detailDom.dialogVisible = true this.$refs.detailDom.dialogVisible = true
}) })
},
getCoverByISBN(isbn, item) {
const params = {
isbn: isbn
}
FetchCoverByISBN(params).then((res) => {
item.cover = window.URL.createObjectURL(res)
console.log(res, 'res')
this.bookData.push(item)
})
} }
} }

17
src/views/module/bookListItem.vue

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<div v-for="item in listData" :key="item.ranking" class="list-item">
<div v-for="(item,index) in listData" :key="item.ranking" class="list-item" @click="handleDetails(index)">
<div class="book-img"> <div class="book-img">
<img :src="item.cover" :onerror="defaultImg"> <img :src="item.cover" :onerror="defaultImg">
</div> </div>
@ -15,12 +15,18 @@
</div> </div>
</div> </div>
</div> </div>
<BookDetails ref="detailDom" />
</div> </div>
</template> </template>
<script> <script>
import { getBookDetailsByISBN } from '@/api/bookshelf'
import BookDetails from './bookDetails.vue'
export default { export default {
name: 'BookListItem', name: 'BookListItem',
components: { BookDetails },
props: { props: {
listData: { listData: {
type: Array, type: Array,
@ -59,6 +65,15 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
handleDetails(index) {
const params = {
isbn: this.listData[index].isbn.replace(/\-/g, '')
}
getBookDetailsByISBN(params).then(res => {
this.$refs.detailDom.bookData = res
this.$refs.detailDom.dialogVisible = true
})
}
} }
} }
</script> </script>

Loading…
Cancel
Save