Browse Source

热门图书/作者推荐

master
x_ying 2 years ago
parent
commit
947af56b6d
  1. 22
      src/api/bookshelf.js
  2. 23
      src/views/authorRecommend.vue
  3. 18
      src/views/hotBook.vue
  4. 12
      src/views/module/bookList.vue
  5. 4
      src/views/newBook.vue

22
src/api/bookshelf.js

@ -19,6 +19,15 @@ export function FetchNewBookRecommend(params) {
}) })
} }
// 热门图书
export function FetchHotBookRecommend(params) {
return request({
url: '/dxhtsg/hotBookRecommend',
method: 'get',
params: params
})
}
// 通过isbn获取图书封面 // 通过isbn获取图书封面
export function FetchCoverByISBN(params) { export function FetchCoverByISBN(params) {
return request({ return request({
@ -56,11 +65,22 @@ export function FetchInitBookshelfDetails(params) {
}) })
} }
// 作者推荐
export function FetchProposeAuthor(params) {
return request({
url: '/dxhtsg/proposeAuthor',
method: 'get',
params: params
})
}
export default { export default {
FetchNewBookRecommend, FetchNewBookRecommend,
FetchCoverByISBN, FetchCoverByISBN,
initNumberResoures, initNumberResoures,
getBookDetailsByISBN, getBookDetailsByISBN,
initSmartBookshelf, initSmartBookshelf,
FetchInitBookshelfDetails
FetchInitBookshelfDetails,
FetchHotBookRecommend,
FetchProposeAuthor
} }

23
src/views/authorRecommend.vue

@ -10,8 +10,8 @@
<div v-for="(item,index) in authorList" :key="index" class="book-rack"> <div v-for="(item,index) in authorList" :key="index" class="book-rack">
<span class="author-index">{{ index+1 }}</span> <span class="author-index">{{ index+1 }}</span>
<div class="author-brief"> <div class="author-brief">
<h3>{{ item.name }}</h3>
<p>{{ item.brief }}</p>
<h3>{{ item.paAuthor }}</h3>
<p>{{ item.paExplain }}</p>
</div> </div>
</div> </div>
</div> </div>
@ -19,7 +19,8 @@
</template> </template>
<script> <script>
import data1 from './data1.json'
import { FetchProposeAuthor } from '@/api/bookshelf'
export default { export default {
name: 'AuthorRecommend', name: 'AuthorRecommend',
components: { components: {
@ -30,7 +31,21 @@ export default {
} }
}, },
created() { created() {
this.authorList = data1.authors
this.getAuthor()
},
methods: {
getAuthor() {
const params = {
libcode: this.libcode,
pageNo: 1,
pageSize: 22
}
FetchProposeAuthor(params).then(res => {
this.authorList = res.proposeAuthorList
}).catch(() => {
this.$message.error('接口错误')
})
}
} }
} }
</script> </script>

18
src/views/hotBook.vue

@ -1,6 +1,5 @@
<template> <template>
<div id="bookshelf"> <div id="bookshelf">
<!-- <HeaderTop /> -->
<div class="bookshelf-header" style="height:120px"> <div class="bookshelf-header" style="height:120px">
<router-link to="/"> <router-link to="/">
<span class="icon iconfont icon-l">&#xe631;</span> <span class="icon iconfont icon-l">&#xe631;</span>
@ -12,11 +11,10 @@
</template> </template>
<script> <script>
// import HeaderTop from '@/views/module/headerTop.vue'
import BookList from '@/views/module/bookList.vue' import BookList from '@/views/module/bookList.vue'
import { FetchNewBookRecommend, FetchCoverByISBN } from '@/api/bookshelf'
import { FetchHotBookRecommend, FetchCoverByISBN } from '@/api/bookshelf'
export default { export default {
name: 'NewBook',
name: 'HotBook',
components: { BookList }, components: { BookList },
data() { data() {
return { return {
@ -28,11 +26,13 @@ export default {
}, },
methods: { methods: {
getBookData() { getBookData() {
FetchNewBookRecommend().then(res => {
console.log(res, 'res')
let data = []
data = res
data.forEach(item => {
const params = {
libcode: this.libcode,
pageNo: 1,
pageSize: 22
}
FetchHotBookRecommend(params).then(res => {
res.hotbookList.forEach(item => {
this.getCoverByISBN(item.isbn.replace(/\-/g, ''), item) this.getCoverByISBN(item.isbn.replace(/\-/g, ''), item)
}) })
}).catch(() => { }).catch(() => {

12
src/views/module/bookList.vue

@ -6,17 +6,17 @@
</div> </div>
<div class="most-book-txt book-rack"> <div class="most-book-txt book-rack">
<div class="txt"> <div class="txt">
<h3>书名{{ bookdata[0].nbName }}</h3>
<p>作者{{ bookdata[0].nbAuthor }}</p>
<p>出版社{{ bookdata[0].nbAuthor }}</p>
<p>出版时间{{ bookdata[0].nbPublisherdate }}</p>
<h3>书名{{ bookdata[0].nbName || bookdata[0].hbName }}</h3>
<p>作者{{ bookdata[0].nbAuthor || bookdata[0].hbAuthor }}</p>
<p>出版社{{ bookdata[0].nbAuthor || bookdata[0].hbAuthor }}</p>
<p>出版时间{{ bookdata[0].nbPublisherdate || bookdata[0].hbPublisherdate }}</p>
</div> </div>
</div> </div>
</div> </div>
<ul class="hotbook-list"> <ul class="hotbook-list">
<li v-for="(item,index) in bookList" :key="index" @click="handleDetails(index+1)"> <li v-for="(item,index) in bookList" :key="index" @click="handleDetails(index+1)">
<img :src="item.cover ? item.cover : ''" :onerror="defaultImg"> <img :src="item.cover ? item.cover : ''" :onerror="defaultImg">
<p class="book-name">{{ item.nbName }}</p>
<p class="book-name">{{ item.nbName || item.hbName }}</p>
</li> </li>
</ul> </ul>
<BookDetails ref="detailDom" /> <BookDetails ref="detailDom" />
@ -54,6 +54,7 @@ export default {
isbn: this.bookdata[index].isbn.replace(/\-/g, '') isbn: this.bookdata[index].isbn.replace(/\-/g, '')
} }
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
}) })
@ -126,6 +127,7 @@ export default {
} }
.book-name{ .book-name{
width: 100%; width: 100%;
text-align: center;
overflow: hidden; overflow: hidden;
text-overflow:ellipsis; text-overflow:ellipsis;
white-space: nowrap; white-space: nowrap;

4
src/views/newBook.vue

@ -32,10 +32,9 @@ export default {
const params = { const params = {
libcode: this.libcode, libcode: this.libcode,
pageNo: 1, pageNo: 1,
pageSize: 10
pageSize: 22
} }
FetchNewBookRecommend(params).then(res => { FetchNewBookRecommend(params).then(res => {
console.log(res, 'res')
res.newbookList.forEach(item => { res.newbookList.forEach(item => {
this.getCoverByISBN(item.isbn.replace(/\-/g, ''), item) this.getCoverByISBN(item.isbn.replace(/\-/g, ''), item)
}) })
@ -49,7 +48,6 @@ export default {
} }
FetchCoverByISBN(params).then((res) => { FetchCoverByISBN(params).then((res) => {
item.cover = window.URL.createObjectURL(res) item.cover = window.URL.createObjectURL(res)
console.log(res, 'res')
this.bookData.push(item) this.bookData.push(item)
}) })
} }

Loading…
Cancel
Save