|
@@ -7,7 +7,7 @@
|
|
|
:LoginNavIndex="1"
|
|
|
/>
|
|
|
<ul class="option">
|
|
|
- <li class="option-item" :class="[typeValue===indexo?'active':'']" v-for="(itemo,indexo) in optionList" :key="indexo" @click="handleClick(indexo)">
|
|
|
+ <li class="option-item" :class="[typeIndex===indexo?'active':'']" v-for="(itemo,indexo) in optionList" :key="indexo" @click="handleClick(itemo,indexo)">
|
|
|
<svg-icon :icon-class="itemo.img" className="icon-img"></svg-icon>
|
|
|
<span>{{itemo.label}}</span>
|
|
|
<b>{{itemo.number}}</b>
|
|
@@ -37,12 +37,13 @@
|
|
|
<el-button slot="append" icon="el-icon-search" @click="getSearch"></el-button>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
- <h5 class="show-title" v-if="typeValue!==0">{{optionList[typeValue].label}}<b>{{optionList[typeValue].number}}</b></h5>
|
|
|
- <div class="list">
|
|
|
+ <h5 class="show-title" v-if="typeIndex!==0">{{optionList[typeIndex].label}}<b>{{optionList[typeIndex].number}}</b></h5>
|
|
|
+ <div class="list" v-if="BookList.length>0">
|
|
|
<!-- v-infinite-scroll="load" -->
|
|
|
<div
|
|
|
v-for="(item,index) in BookList"
|
|
|
:key="index+'todayNew'"
|
|
|
+ v-infinite-scroll="load"
|
|
|
infinite-scroll-disabled="disabled"
|
|
|
:style="{
|
|
|
marginLeft:index==0||index%5==0?'0':'50px',
|
|
@@ -63,6 +64,10 @@
|
|
|
<p v-if="loading" class="tips">加载中...</p>
|
|
|
<p v-if="noMore" class="tips">没有更多了</p>
|
|
|
</div>
|
|
|
+ <div class="nodata" v-else>
|
|
|
+ <img src="../../assets/nodata.png" />
|
|
|
+ <p>找不到文件</p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -72,6 +77,7 @@
|
|
|
//例如:import 《组件名称》from ‘《组件路径》';
|
|
|
import Header from "../../components/Header.vue";
|
|
|
import BookCard from "@/components/common/BookCard.vue"
|
|
|
+import { getLogin } from "@/api/ajax";
|
|
|
|
|
|
export default {
|
|
|
//import引入的组件需要注入到对象中才能使用
|
|
@@ -80,68 +86,51 @@ export default {
|
|
|
data() {
|
|
|
//这里存放数据
|
|
|
return {
|
|
|
- BookList: [{
|
|
|
- src: require('../../assets/baozhi1.png'),
|
|
|
- name: "第815期",
|
|
|
- date: "2023-05-15",
|
|
|
- type:'baozhi'
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/baozhi2.png'),
|
|
|
- name: "第813期",
|
|
|
- typeName: '2023-05-01',
|
|
|
- type:'baozhi'
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/baozhi1.png'),
|
|
|
- name: "第810期",
|
|
|
- classperiod: '2023-04-10',
|
|
|
- type:'baozhi'
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/baozhi1.png'),
|
|
|
- name: "第809期 ",
|
|
|
- date: "2023-04-03",
|
|
|
- type:'baozhi'
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/baozhi2.png'),
|
|
|
- name: "第804期",
|
|
|
- date: "2023-02-27",
|
|
|
- type:'baozhi'
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/baozhi2.png'),
|
|
|
- name: "第801期",
|
|
|
- date: "2023-01-09",
|
|
|
- type:'baozhi'
|
|
|
- }
|
|
|
+ BookList: [
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ }
|
|
|
],
|
|
|
optionList: [
|
|
|
{
|
|
|
label: '全部',
|
|
|
img: 'quanbu',
|
|
|
- number: '6'
|
|
|
+ number: 0,
|
|
|
+ value: -1
|
|
|
},
|
|
|
{
|
|
|
label: '画刊',
|
|
|
img: 'huakan',
|
|
|
- number: '0'
|
|
|
+ number: 0,
|
|
|
},
|
|
|
{
|
|
|
label: '报纸',
|
|
|
img: 'baozhi',
|
|
|
- number: '6'
|
|
|
+ number: 0,
|
|
|
+ value: 2
|
|
|
},
|
|
|
{
|
|
|
label: '练习册',
|
|
|
img: 'xiti',
|
|
|
- number: '0'
|
|
|
+ number: 0
|
|
|
},
|
|
|
{
|
|
|
label: '课程',
|
|
|
img: 'kecheng',
|
|
|
- number: '0'
|
|
|
+ number: 0,
|
|
|
+ value: 10
|
|
|
}
|
|
|
// ,
|
|
|
// {
|
|
@@ -150,28 +139,31 @@ export default {
|
|
|
// number: '6'
|
|
|
// }
|
|
|
],
|
|
|
- typeValue: 0,
|
|
|
+ typeValue: -1,
|
|
|
changeList: [
|
|
|
{
|
|
|
name: "按购买时间",
|
|
|
sort: "down",
|
|
|
- sortName: "gmsj",
|
|
|
+ sortName: "buy_time",
|
|
|
},
|
|
|
{
|
|
|
name: "按名称",
|
|
|
sort: "",
|
|
|
- sortName: "fbsj",
|
|
|
+ sortName: "name",
|
|
|
},
|
|
|
{
|
|
|
name: "最近使用",
|
|
|
sort: "",
|
|
|
- sortName: "zjsy",
|
|
|
+ sortName: "last_use_time",
|
|
|
},
|
|
|
],
|
|
|
- sortField: "gmsj",
|
|
|
+ sortField: "",
|
|
|
searchNameValue: '', // 搜索名称值
|
|
|
loading: false,
|
|
|
- noMore: false
|
|
|
+ noMore: false,
|
|
|
+ pageNumber: 1,
|
|
|
+ pageSize: 30,
|
|
|
+ typeIndex: 0
|
|
|
}
|
|
|
},
|
|
|
//计算属性 类似于data概念
|
|
@@ -184,14 +176,61 @@ export default {
|
|
|
watch: {},
|
|
|
//方法集合
|
|
|
methods: {
|
|
|
- handleClick(value){
|
|
|
- this.typeValue = value
|
|
|
+ handleClick(item,index){
|
|
|
+ this.typeIndex = index
|
|
|
+ this.pageNumber = 1
|
|
|
+ if(item.hasOwnProperty("value")){
|
|
|
+ this.typeValue = item.value
|
|
|
+ if(item.number>0){
|
|
|
+ this.BookList = [
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ this.getList()
|
|
|
+ }else{
|
|
|
+ this.BookList = []
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ this.BookList = []
|
|
|
+ }
|
|
|
+
|
|
|
$(".list").animate({
|
|
|
scrollTop: 0
|
|
|
}, 200);
|
|
|
},
|
|
|
// 搜索查询
|
|
|
getSearch(){
|
|
|
+ this.pageNumber = 1
|
|
|
+ this.BookList = [
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ skeleton: true
|
|
|
+ }
|
|
|
+ ]
|
|
|
$(".list").animate({
|
|
|
scrollTop: 0
|
|
|
}, 200);
|
|
@@ -223,58 +262,104 @@ export default {
|
|
|
$(".list").animate({
|
|
|
scrollTop: 0
|
|
|
}, 200);
|
|
|
+ this.pageNumber = 1
|
|
|
this.getList()
|
|
|
},
|
|
|
// 查询列表
|
|
|
getList(){
|
|
|
- let arr = [{
|
|
|
- src: require('../../assets/bookcard-image.png'),
|
|
|
- name: "名称名称名称名称名称名称名称名称名称名称名称名称",
|
|
|
- date: "2012-03-15",
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/bookcard-image.png'),
|
|
|
- name: "练习册练习册",
|
|
|
- typeName: '初三提高级'
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/bookcard-image.png'),
|
|
|
- name: "课程课程",
|
|
|
- classperiod: '45节'
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/bookcard-image.png'),
|
|
|
- name: "名称名称名称名称名称名称名称名称名称名称名称名称",
|
|
|
- date: "2012-03-15",
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/bookcard-image.png'),
|
|
|
- name: "名称名称名称名称名称名称名称名称名称名称名称名称",
|
|
|
- date: "2012-03-15",
|
|
|
- },
|
|
|
- {
|
|
|
- src: require('../../assets/bookcard-image.png'),
|
|
|
- name: "名称名称名称名称名称名称名称名称名称名称名称名称",
|
|
|
- date: "2012-03-15",
|
|
|
- }
|
|
|
- ]
|
|
|
- if(this.BookList.length<100){
|
|
|
- this.BookList = this.BookList.concat(arr)
|
|
|
- }else{
|
|
|
- this.noMore = true
|
|
|
+ this.loading = true
|
|
|
+ let MethodName = "/ShopServer/Client/BookshelfQuery/PageQueryMyGoodsList";
|
|
|
+ let order_column_list = []
|
|
|
+ if(this.sortField !== ''){
|
|
|
+ if(this.sortType===1){
|
|
|
+ order_column_list = [this.sortField + ':desc']
|
|
|
+ }else if(this.sortType===0){
|
|
|
+ // 升序不传值
|
|
|
+ order_column_list = [this.sortField]
|
|
|
+ }
|
|
|
}
|
|
|
+ let data = {
|
|
|
+ goods_name: this.searchNameValue.trim(),
|
|
|
+ goods_type: this.typeValue,
|
|
|
+ page_capacity:this.pageSize,
|
|
|
+ cur_page:this.pageNumber,
|
|
|
+ order_column_list: order_column_list
|
|
|
+ }
|
|
|
+ getLogin(MethodName, data)
|
|
|
+ .then((res) => {
|
|
|
+ this.loading = false
|
|
|
+ if(res.status===1){
|
|
|
+ if(this.pageNumber===1){
|
|
|
+ this.BookList = []
|
|
|
+ this.noMore = false
|
|
|
+ }
|
|
|
+ this.BookList = this.BookList.concat(res.goods_list)
|
|
|
+ if(res.total_page<=this.pageNumber){
|
|
|
+ this.noMore = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.loading = false
|
|
|
+ });
|
|
|
+
|
|
|
},
|
|
|
load () {
|
|
|
- this.loading = true
|
|
|
- setTimeout(() => {
|
|
|
+ this.pageNumber++
|
|
|
this.getList()
|
|
|
- this.loading = false
|
|
|
- }, 2000)
|
|
|
+ },
|
|
|
+ // 获取商品个数
|
|
|
+ getNumber(){
|
|
|
+ let MethodName = "/ShopServer/Client/BookshelfQuery/GetMyGoodsCount"
|
|
|
+ getLogin(MethodName, {}).then((res) => {
|
|
|
+ if(res.status===1){
|
|
|
+ this.optionList= [
|
|
|
+ {
|
|
|
+ label: '全部',
|
|
|
+ img: 'quanbu',
|
|
|
+ number: res.count_all,
|
|
|
+ value: -1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '画刊',
|
|
|
+ img: 'huakan',
|
|
|
+ number: 0,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '报纸',
|
|
|
+ img: 'baozhi',
|
|
|
+ number: res.count_issue,
|
|
|
+ value: 2
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '练习册',
|
|
|
+ img: 'xiti',
|
|
|
+ number: 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '课程',
|
|
|
+ img: 'kecheng',
|
|
|
+ number: res.count_course,
|
|
|
+ value: 10
|
|
|
+ }
|
|
|
+ // ,
|
|
|
+ // {
|
|
|
+ // label: '合刊',
|
|
|
+ // img: 'hekan',
|
|
|
+ // number: '6'
|
|
|
+ // }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.loading = false
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
|
created() {
|
|
|
-
|
|
|
+ this.getNumber()
|
|
|
+ this.getList()
|
|
|
},
|
|
|
//生命周期 - 挂载完成(可以访问DOM元素)
|
|
|
mounted() {
|
|
@@ -431,6 +516,7 @@ export default {
|
|
|
}
|
|
|
> div {
|
|
|
width: 200px;
|
|
|
+ height: 352px;
|
|
|
border-radius: 8px;
|
|
|
overflow: hidden;
|
|
|
background: #ffffff;
|
|
@@ -444,7 +530,19 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ .nodata{
|
|
|
+ text-align: center;
|
|
|
+ img{
|
|
|
+ width: 329px;
|
|
|
+ }
|
|
|
+ p{
|
|
|
+ color: #A8A8A8;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 22px;
|
|
|
+ margin: 30px 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|
|
|
<style lang="scss">
|
|
@@ -473,7 +571,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.el-button{
|
|
|
- padding: 0;
|
|
|
+ padding: 10px 12px;
|
|
|
color: #ffffff;
|
|
|
}
|
|
|
}
|