Commit d44bd85e authored by wangqinghua's avatar wangqinghua

我的发布 我的收藏 下拉刷新 上滑加载更多

parent 77bba691
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -394,7 +394,7 @@ a[disabled], button[disabled], [ion-button][disabled], ...@@ -394,7 +394,7 @@ a[disabled], button[disabled], [ion-button][disabled],
.noData{ .noData{
text-align: center; text-align: center;
color: #999; color: #999;
padding-bottom: 5px; padding-bottom: 20px;
} }
//相机的actionsheet //相机的actionsheet
......
...@@ -271,11 +271,32 @@ export class PublishPage { ...@@ -271,11 +271,32 @@ export class PublishPage {
{ {
text: '预览', text: '预览',
handler: () => { handler: () => {
let attachmentsArr = [];
let content = this.obj.content;
if(this.fileList.length > 0){
if(this.type == 'image'){ //将第一张图片作为标题图片 ,后面的图片 作为文章里面的图片
const obj = {
resourceType:1,
path: this.fileList[0].path,
name: this.fileList[0].name,
};
attachmentsArr = this.fileList.splice(1,this.fileList.length -1);
attachmentsArr.forEach(e=>{
content += `<br><img src="/wisdomgroup/${e.path} " alt="图片">`;
});
this.fileList = [obj];
}
}
if(this.type == 'video'){
this.fileList.forEach(e=>{
e.resourceType = 3;
})
}
const obj = { const obj = {
title:this.obj.title, title:this.obj.title,
source: '上海市委组织部', source: '上海市委组织部',
publishTime:new Date().getTime(), publishTime:new Date().getTime(),
content:this.obj.content, content:content,
attachments:this.fileList, attachments:this.fileList,
} }
this.navCtrl.push('PreviewPage',{ this.navCtrl.push('PreviewPage',{
......
<ion-header> <ion-header>
<ion-navbar> <ion-navbar>
<ion-title>我的收藏</ion-title> <ion-title>我的收藏</ion-title>
</ion-navbar> </ion-navbar>
</ion-header> </ion-header>
<ion-content> <ion-content>
<div class="main-news"> <ion-refresher (ionRefresh)="doRefresh($event)">
<ng-container *ngFor="let new of collectionList;"> <ion-refresher-content pullingText="下拉刷新"
<ng-container *ngIf="new.imgUrl"> refreshingSpinner="bubbles">
<ion-row class="news-item" (click)="goToDetail(new)"> </ion-refresher-content>
<ion-col col-8 class="news-left"> </ion-refresher>
<p class="news-title"> <div class="main-news">
{{new.title}} <ng-container *ngFor="let new of collectionList;">
<ion-icon *ngIf="new.topTime" class="icon-fire iconfont"></ion-icon> <ng-container *ngIf="new.imgUrl">
</p> <ion-row class="news-item" (click)="goToDetail(new)">
<p class="news-end"> <ion-col col-8 class="news-left">
<span>收藏时间:</span><span>{{new.publishTime | date:'yyyy-MM-dd'}}</span> <p class="news-title">
</p> {{new.title}}
</ion-col> </p>
<ion-col col-4 class="news-right"> <p class="news-end">
<img src="{{picture+new.imgUrl}}"> <!-- <span>收藏时间:</span><span>{{new.publishTime | date:'yyyy-MM-dd'}}</span>-->
</ion-col> </p>
</ion-row> </ion-col>
</ng-container> <ion-col col-4 class="news-right">
<ng-container *ngIf="!new.imgUrl"> <img src="{{picture+new.imgUrl}}">
<ion-row class="news-item" (click)="goToDetail(new)"> </ion-col>
<ion-col col-12 class="news-left"> </ion-row>
<p class="news-title"> </ng-container>
{{new.title}} <ng-container *ngIf="!new.imgUrl">
<ion-icon *ngIf="new.topTime" class="icon-fire iconfont"></ion-icon> <ion-row class="news-item" (click)="goToDetail(new)">
</p> <ion-col col-12 class="news-left">
<p class="news-end"> <p class="news-title">
<span>收藏时间:</span><span>{{new.publishTime | date:'yyyy-MM-dd'}}</span> {{new.title}}
</p>
<p class="news-end">
<!-- <span>收藏时间:</span><span>{{new.publishTime | date:'yyyy-MM-dd'}}</span>-->
</p>
</ion-col>
</ion-row>
</ng-container>
</ng-container>
<ion-list text-center style="margin-top: 10rem" *ngIf="!isLoad && collectionList.length == 0">
<img style="width: 20%;" src="./assets/imgs/no-info.png" alt="">
<p text-center>
暂无收藏
</p> </p>
</ion-col> </ion-list>
</ion-row> </div>
</ng-container> <ion-infinite-scroll (ionInfinite)="doInfinite($event)">
</ng-container> <ion-infinite-scroll-content
</div> loadingSpinner="bubbles"
loadingText="加载中"></ion-infinite-scroll-content>
</ion-infinite-scroll>
<p class="noData" *ngIf="!loadMore">你已经看到我的底线了</p>
</ion-content> </ion-content>
import {Component} from '@angular/core'; import {Component, ViewChild} from '@angular/core';
import {IonicPage, NavController, NavParams} from 'ionic-angular'; import {InfiniteScrollContent, IonicPage, NavController, NavParams} from 'ionic-angular';
import {MineService} from "../mine.service"; import {MineService} from "../mine.service";
import {AppGlobal} from "../../../service/http.service"; import {AppGlobal} from "../../../service/http.service";
import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail"; import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail";
import {CommonService} from "../../../provide/common.service";
@IonicPage() @IonicPage()
@Component({ @Component({
...@@ -10,14 +11,18 @@ import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail"; ...@@ -10,14 +11,18 @@ import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail";
templateUrl: 'my-collection.html', templateUrl: 'my-collection.html',
}) })
export class MyCollectionPage { export class MyCollectionPage {
@ViewChild(InfiniteScrollContent) infiniteScrollContent:InfiniteScrollContent;
pageNum = 1; pageNum = 1;
pageCount = AppGlobal.pageCount; pageCount = 10;
collectionList = []; collectionList = [];
picture: string = AppGlobal.domain + '/wisdomgroup'; picture: string = AppGlobal.domain + '/wisdomgroup';
isLoad = true;
loadMore = true;
totalNum; //总条数
constructor(public navCtrl: NavController, public navParams: NavParams, constructor(public navCtrl: NavController, public navParams: NavParams,
public mineSer: MineService) { public mineSer: MineService,public commonSer:CommonService) {
} }
ionViewDidEnter() { ionViewDidEnter() {
...@@ -32,6 +37,53 @@ export class MyCollectionPage { ...@@ -32,6 +37,53 @@ export class MyCollectionPage {
this.mineSer.myCollection(data).subscribe( this.mineSer.myCollection(data).subscribe(
(res) => { (res) => {
this.collectionList = res.data.list; this.collectionList = res.data.list;
this.isLoad = false;
this.totalNum = res.data.total;
}
)
}
//下拉刷新
doRefresh(e){
this.loadMore = true;
this.infiniteScrollContent.inf.enable(true);
const data = {
pageNum: 1,
pageCount: this.pageCount
};
this.mineSer.myCollection(data).subscribe(
(res) => {
this.collectionList = res.data.list;
this.totalNum = res.data.total;
setTimeout(()=>{
this.commonSer.toast('刷新成功')
e.complete()
},800);
}
)
}
//加载更多
doInfinite(e){
if(this.totalNum == this.collectionList.length ){
this.loadMore = false;
e.enable(false);
return false;
}
this.pageNum ++;
const data = {
pageNum: this.pageNum,
pageCount: this.pageCount
};
this.mineSer.myCollection(data).subscribe(
(res) => {
this.totalNum = res.data.total;
res.data.list.forEach(e=>{
this.collectionList.push(e);
});
setTimeout(()=>{
e.complete()
},800);
} }
) )
} }
......
<ion-header> <ion-header>
<ion-navbar> <ion-navbar>
<ion-title>我的发布</ion-title> <ion-title>我的发布</ion-title>
</ion-navbar> </ion-navbar>
</ion-header> </ion-header>
<ion-content> <ion-content>
<div class="main-news"> <ion-refresher (ionRefresh)="doRefresh($event)">
<ng-container *ngFor="let new of publicList;"> <ion-refresher-content pullingText="下拉刷新"
<ng-container *ngIf="new.imgUrl"> refreshingSpinner="bubbles">
<ion-row class="news-item" (click)="goToDetail(new)"> </ion-refresher-content>
<ion-col col-8 class="news-left"> </ion-refresher>
<p class="news-title"> <div class="main-news">
{{new.title}} <ng-container *ngFor="let new of publicList;">
<ion-icon *ngIf="new.topTime" class="icon-fire iconfont"></ion-icon> <ng-container *ngIf="new.imgUrl">
<ion-row class="news-item" (click)="goToDetail(new)">
<ion-col col-8 class="news-left">
<p class="news-title">
{{new.title}}
<ion-icon *ngIf="new.topTime" class="icon-fire iconfont"></ion-icon>
</p>
<p class="news-end">
<span>发布时间:</span><span>{{new.publishTime | date:'yyyy-MM-dd'}}</span>
</p>
</ion-col>
<ion-col col-4 class="news-right">
<img src="{{picture+new.imgUrl}}">
</ion-col>
</ion-row>
</ng-container>
<ng-container *ngIf="!new.imgUrl">
<ion-row class="news-item" (click)="goToDetail(new)">
<ion-col col-12 class="news-left">
<p class="news-title">
{{new.title}}
<ion-icon *ngIf="new.topTime" class="icon-fire iconfont"></ion-icon>
</p>
<p class="news-end">
<span>发布时间:</span><span>{{new.publishTime | date:'yyyy-MM-dd'}}</span>
</p>
</ion-col>
</ion-row>
</ng-container>
</ng-container>
<ion-list text-center style="margin-top: 10rem" *ngIf=" !isLoad && publicList.length == 0">
<img style="width: 20%;" src="./assets/imgs/no-info.png" alt="">
<p text-center>
暂无发布
</p> </p>
<p class="news-end"> </ion-list>
<span>发布时间:</span><span>{{new.publishTime | date:'yyyy-MM-dd'}}</span> </div>
</p> <ion-infinite-scroll (ionInfinite)="doInfinite($event)">
</ion-col> <ion-infinite-scroll-content
<ion-col col-4 class="news-right"> loadingSpinner="bubbles"
<img src="{{picture+new.imgUrl}}"> loadingText="加载中"></ion-infinite-scroll-content>
</ion-col> </ion-infinite-scroll>
</ion-row> <p class="noData" *ngIf="!loadMore">你已经看到我的底线了</p>
</ng-container>
<ng-container *ngIf="!new.imgUrl">
<ion-row class="news-item" (click)="goToDetail(new)">
<ion-col col-12 class="news-left">
<p class="news-title">
{{new.title}}
<ion-icon *ngIf="new.topTime" class="icon-fire iconfont"></ion-icon>
</p>
<p class="news-end">
<span>发布时间:</span><span>{{new.publishTime | date:'yyyy-MM-dd'}}</span>
</p>
</ion-col>
</ion-row>
</ng-container>
</ng-container>
</div>
</ion-content> </ion-content>
import { Component } from '@angular/core'; import {Component, ViewChild} from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular'; import {InfiniteScrollContent, IonicPage, NavController, NavParams} from 'ionic-angular';
import {AppGlobal} from "../../../service/http.service"; import {AppGlobal} from "../../../service/http.service";
import {MineService} from "../mine.service"; import {MineService} from "../mine.service";
import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail"; import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail";
import {CommonService} from "../../../provide/common.service";
/** /**
* Generated class for the MyPublishPage page. * Generated class for the MyPublishPage page.
...@@ -17,13 +18,18 @@ import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail"; ...@@ -17,13 +18,18 @@ import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail";
templateUrl: 'my-publish.html', templateUrl: 'my-publish.html',
}) })
export class MyPublishPage { export class MyPublishPage {
@ViewChild(InfiniteScrollContent) infiniteScrollContent:InfiniteScrollContent;
pageNum = 1; pageNum = 1;
pageCount = AppGlobal.pageCount; pageCount = AppGlobal.pageCount;
publicList = []; publicList = [];
picture: string = AppGlobal.domain + '/wisdomgroup'; picture: string = AppGlobal.domain + '/wisdomgroup';
isLoad = true;
totalNum;
loadMore = true;
constructor(public navCtrl: NavController, public navParams: NavParams, constructor(public navCtrl: NavController, public navParams: NavParams,
public mineSer:MineService) { public mineSer:MineService,public commonSer:CommonService) {
} }
ionViewDidLoad() { ionViewDidLoad() {
...@@ -38,6 +44,53 @@ export class MyPublishPage { ...@@ -38,6 +44,53 @@ export class MyPublishPage {
this.mineSer.myPublish(data).subscribe( this.mineSer.myPublish(data).subscribe(
(res)=>{ (res)=>{
this.publicList = res.data.list; this.publicList = res.data.list;
this.isLoad = false;
this.totalNum = res.data.total;
}
)
}
//下拉刷新
doRefresh(e){
this.loadMore = true;
this.infiniteScrollContent.inf.enable(true);
const data = {
pageNum: 1,
pageCount: this.pageCount
};
this.mineSer.myPublish(data).subscribe(
(res) => {
this.publicList = res.data.list;
this.totalNum = res.data.total;
setTimeout(()=>{
this.commonSer.toast('刷新成功')
e.complete()
},800);
}
)
}
//加载更多
doInfinite(e){
if(this.totalNum == this.publicList.length ){
this.loadMore = false;
e.enable(false);
return false;
}
this.pageNum ++;
const data = {
pageNum: this.pageNum,
pageCount: this.pageCount
};
this.mineSer.myPublish(data).subscribe(
(res) => {
this.totalNum = res.data.total;
res.data.list.forEach(e=>{
this.publicList.push(e);
});
setTimeout(()=>{
e.complete()
},800);
} }
) )
} }
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<div class="photo-box" (click)="tackePic()"> <div class="photo-box" (click)="tackePic()">
<img *ngIf="user?.userDetail?.user?.picUrl == ''" src="./assets/imgs/head.png" class="img"> <img *ngIf="user?.userDetail?.user?.picUrl == ''" src="./assets/imgs/head.png" class="img">
<img *ngIf="user?.userDetail?.user?.picUrl != ''" src="{{picture+user?.userDetail?.user?.picUrl}}" class="img"> <img *ngIf="user?.userDetail?.user?.picUrl != ''" src="{{picture+user?.userDetail?.user?.picUrl}}" class="img">
<ion-icon name="ios-arrow-forward"></ion-icon>
</div> </div>
</div> </div>
</ion-item> </ion-item>
......
page-personInfo { page-personInfo {
.searchToolBar{ .searchToolBar {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: left; justify-content: left;
box-sizing: border-box; box-sizing: border-box;
} }
.content{
background-color: #f1f1f1;
}
.info-item{ .content {
background-color: #f1f1f1;
}
.info-item {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
box-sizing: border-box; box-sizing: border-box;
} }
.img{ .img {
width: 40px; width: 50px;
height: 40px; border-radius: 5px;
} }
.info{ .info {
font-size: 18px; font-size: 18px;
color: #272727; color: #272727;
margin-right: 15px; margin-right: 15px;
} }
.contact-sex{ .contact-sex {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
} }
.male{ .male {
color: #72a4fe; color: #72a4fe;
} }
.female{ .female {
color: #f09ae5; color: #f09ae5;
} }
.photo-box{ .photo-box {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-sizing: border-box; box-sizing: border-box;
}
ion-icon {
.icon-more{ margin-left: 10px;
color: #d1d1d5; color: #747474;
margin-left: 5px; font-size: 1.4rem;
} }
}
.info-span{
color: #747474; .icon-more {
} color: #d1d1d5;
margin-left: 5px;
.edit{ }
width: 30px;
height: 30px; .info-span {
} color: #747474;
}
.content-title{
.edit {
width: 30px;
height: 30px;
}
.content-title {
background-color: #f5f5f5; background-color: #f5f5f5;
font-size: 14px; font-size: 14px;
color: #b2b2b2; color: #b2b2b2;
padding-left: 10px; padding-left: 10px;
padding-top: 5px; padding-top: 5px;
padding-bottom: 5px; padding-bottom: 5px;
} }
.list-ios{ .list-ios {
margin: 0 0; margin: 0 0;
} }
.save{ .save {
margin-top: 30px; margin-top: 30px;
} }
.info-item-content{ .info-item-content {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-sizing: border-box; box-sizing: border-box;
img{
width: 1.5rem; img {
height: 1.5rem; width: 1.5rem;
} height: 1.5rem;
}
.list-md {
margin: -1px 0 0px;
}
.back-btn{
width: 30px;
height: 30px;
} }
.submit{
}
.list-md {
margin: -1px 0 0px;
}
.back-btn {
width: 30px;
height: 30px;
}
.submit {
margin-top: 20px; margin-top: 20px;
border: 1px solid #34b4fc; border: 1px solid #34b4fc;
background-color: #34b4fc; background-color: #34b4fc;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment