You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

364 lines
8.7 KiB

<template>
<view class="collection">
<view class="nav center">
<view>
<text :class="{ nav_select: !isPrivate }" @tap="selectNav(false)">
/
</text>
<text :class="{ nav_select: isPrivate }" @tap="selectNav(true)">
</text>
</view>
</view>
<view class="center" style="padding-top: 0">
<view class="private_serch">
<view class="private_serch_left">
<u-icon name="search" size="20"></u-icon>
<input
type="text"
v-model="serchValue"
placeholder="请输入请输入个股代码、板块或名称"
class="private_serch_ipt"
style="margin-left: 8rpx"
/>
</view>
<view @tap="submit">搜索</view>
</view>
</view>
<view v-if="!showLoad">
<view class="private_table_head">
<view class="private_table_head_left">
<view class="private_head_name">股票名称</view>
<view class="private_head_price">价格</view>
<view class="private_head_gains">涨幅</view>
</view>
<view class="private_table_head_right" @tap="privateBelong">
<view>关注日期</view>
</view>
</view>
<view
class="private_table_list"
v-for="(item, index) in list"
@tap="to(item.securityName, item.securityCode)"
:key="index"
>
<view class="private_table_list_left">
<view class="table_list_name">
<view>{{ item.securityName }}</view>
<view class="table_list_code">{{ item.securityCode }}</view>
</view>
<view
class="table_list_price"
:class="{ table_list_price1: item.riseLossesCurrentDay < 0 }"
>
{{ item.closingPrice }}
</view>
<view
class="table_list_gains"
:class="{ table_list_gains1: item.riseLossesCurrentDay < 0 }"
>
<span v-if="item.riseLossesCurrentDay"
>{{ item.riseLossesCurrentDay.toFixed(2) }}%</span
>
</view>
</view>
<view>{{ item.collectDate }}</view>
</view>
</view>
<view v-else class="show_load">
<u-loading-icon></u-loading-icon>
</view>
</view>
</template>
<script>
export default {
data() {
return {
showLoad: false,
// 指数/板块or个股
isPrivate: false,
list: [],
pagenum: 1,
last_page: null,
serchValue: '',
}
},
onLoad(options) {
this.rending()
},
onReachBottom() {
if (this.pagenum < this.last_page) {
this.getnewGoods()
}
},
methods: {
// 前往搜索页
// toSerch() {
// uni.navigateTo({
// url: `/pages/user/collectionSerch`,
// })
// },
submit() {
this.isPrivate ? this.privateRending() : this.rending()
},
selectNav(is) {
this.pagenum = 1
this.showLoad = true
this.isPrivate = is
this.serchValue = ''
if (is) {
this.privateRending()
} else {
this.rending()
}
},
// 请求个股数据
privateRending() {
// /collect/query
this.$api
.post('/collect/query', {
businessDate: '',
keyWord: this.serchValue,
market: '',
pageModel: {
pageNo: this.pagenum,
pageSize: 20,
sortField: '',
sortWay: '',
},
plateOrA: 2,
})
.then(r => {
if (r) {
this.list = r.list
console.log(this.list)
this.last_page = r.totalPage
this.showLoad = false
}
})
.catch(fall => {
console.log(fall)
})
},
privateRending1() {
this.showLoad = false
// /collect/query
this.$api
.post('/collect/query', {
businessDate: '',
keyWord: this.serchValue,
market: '',
pageModel: {
pageNo: this.pagenum,
pageSize: 20,
sortField: '',
sortWay: '',
},
plateOrA: 2,
})
.then(r => {
if (r) {
this.list = [...this.list, ...r.list]
this.last_page = r.totalPage
}
})
.catch(fall => {
console.log(fall)
})
},
rending() {
this.$api
.post('/collect/query', {
businessDate: '',
keyWord: this.serchValue,
market: '',
pageModel: {
pageNo: this.pagenum,
pageSize: 20,
sortField: '',
sortWay: '',
},
plateOrA: 1,
})
.then(r => {
if (r) {
this.list = r.list
this.last_page = r.totalPage
this.showLoad = false
}
})
.catch(fall => {
console.log(fall)
})
},
rending1() {
this.$api
.post('/collect/query', {
businessDate: '',
keyWord: this.serchValue,
market: '',
pageModel: {
pageNo: this.pagenum,
pageSize: 20,
sortField: '',
sortWay: '',
},
plateOrA: 1,
})
.then(r => {
if (r) {
this.list = [...this.list, ...r.list]
this.last_page = r.totalPage
this.showLoad = false
}
})
.catch(fall => {
console.log(fall)
})
},
// 上拉加载
getnewGoods() {
this.pagenum = this.pagenum + 1
if (this.isPrivate) {
this.privateRending1()
} else {
this.rending1()
}
// 1.展示loading效果
uni.showLoading({
title: '数据加载中...',
})
// 2.开启节流阀
this.isLoading = true
// 3.发起网络请求
// 无论成功与否都会调用该方法
// 4.隐藏loading效果
uni.hideLoading()
// 5.关闭节流阀
this.isLoading = false
},
to(name, id) {
if (this.isPrivate) {
uni.navigateTo({
url: `/pages/home/private/privateDetail?name=${name}&id=${id}`,
})
}
},
},
}
</script>
<style lang="scss" scoped>
.center {
padding: 32rpx 24rpx;
}
.nav {
font-size: 24rpx;
color: #999999;
display: flex;
justify-content: space-between;
align-items: center;
}
.nav text {
margin-right: 32rpx;
}
.nav_select {
font-weight: bold;
font-size: 32rpx;
color: #ec7c00;
}
.private_serch {
padding: 24rpx 32rpx;
border: 2rpx solid #dedede;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 24rpx;
border-radius: 12rpx;
color: #ec7c00;
.private_serch_ipt {
width: 400rpx;
font-size: 24rpx;
}
.private_serch_left {
display: flex;
align-items: center;
}
}
.private_table_head {
display: flex;
align-items: center;
font-size: 24rpx;
font-weight: bold;
background-color: #fff9f3;
padding: 20rpx 24rpx;
justify-content: space-between;
.private_table_head_right {
display: flex;
align-items: center;
}
.private_table_head_left {
display: flex;
align-items: center;
.private_head_name {
width: 200rpx;
}
.private_head_price {
width: 150rpx;
text-align: center;
}
.private_head_gains {
width: 150rpx;
text-align: center;
}
}
}
.private_table_list {
padding: 24rpx 24rpx;
border-bottom: 2rpx solid #f6f6f6;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 28rpx;
.private_table_list_left {
display: flex;
align-items: center;
.table_list_name {
width: 200rpx;
}
.table_list_code {
margin-top: 10rpx;
font-size: 24rpx;
color: #999999;
}
.table_list_price {
width: 150rpx;
text-align: center;
color: #d9001b;
}
.table_list_price1 {
color: #8fc320;
}
.table_list_gains {
width: 150rpx;
text-align: center;
color: #d9001b;
}
.table_list_gains1 {
color: #8fc320;
}
}
}
.private_screening_icon {
width: 18rpx;
height: 10rpx;
margin-left: 24rpx;
}
.show_load {
margin-top: 100rpx;
}
</style>