From 8ea19a6bb34daab1410f6186992a4c1e90299c92 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Wed, 14 Sep 2022 08:54:44 +0800
Subject: [PATCH] 服务器配置

---
 pages/article/article.vue |  611 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 446 insertions(+), 165 deletions(-)

diff --git a/pages/article/article.vue b/pages/article/article.vue
index 2e346c6..cbed7f1 100644
--- a/pages/article/article.vue
+++ b/pages/article/article.vue
@@ -1,225 +1,506 @@
 <template>
 	<view class="advisory-big">
-			<!-- 顶部下拉刷新 -->
-			<view v-show="isFlash">
-				<uni-load-more :status="loadStatus" ></uni-load-more>
+		<!-- 自定义顶部导航栏 -->
+		<!-- <view class="uni-nav-bar-info" :style="{marginTop:navbarTopHeight}">
+			<view class="title" @click="goTabDetail(index)" v-for="(item,index) in titleList"
+				:style="titleNum==index? 'color:#000000':'color:#808080'">{{item}}</view>
+		</view> -->
+		<view>
+			<u-dropdown style="height:0rpx" @open="open">
+				<u-dropdown-item v-model="value1" title="看新闻" @change="change" :options="options1"></u-dropdown-item>
+				<u-dropdown-item v-model="value1" title="看视频" @change="change" :options="options2"></u-dropdown-item>
+				<u-dropdown-item v-model="value1" title="行业圈" @change="change" :options="options3"></u-dropdown-item>
+				<u-dropdown-item v-model="value1" title="看现场" @change="change" :options="options4"></u-dropdown-item>
+			</u-dropdown>
+		</view>
+		<view>
+			<view class="search-block" style="height: 35px">
+				<view class="search-ico-wapper">
+					<image src="../../static/images/search/search.png" class="search-ico" mode=""></image>
+				</view>
+				<input type="text" v-on:input="getKeyword" v-model="keyword" placeholder="搜索" class="search-text"
+					maxlength="10" focus />
+				<!-- <view class="search-ico-wapper1">
+					<image src="../../static/images/article/microphone.png" class="search-ico-1" mode=""></image>
+				</view> -->
 			</view>
-			<view  v-for="i in data" class="advisory-model" @click="goDetail(i)">
+		</view>
+		<scroll-view id="articleBox" :style="{ height: swiperHeight + 'px' }" class="article-content" scroll-y
+			style="width: 100%; margin-top: 100rpx;" :refresher-enabled="refresherFlag" :refresher-threshold="threshold"
+			:refresher-triggered="triggered" @refresherrefresh="refreshing" @refresherrestore="refresherrestore">
+			<view style="text-align: center;">
+				<u-loading size="90" mode="flower" :show="loading"></u-loading>
+			</view>
+			<view v-for="i in data" class="advisory-model" @click="goDetail(i)">
 				<view class="advisory-left">
 					<view class="advisory-title-top">
 						<view class="advisory-title">{{i.title}}</view>
 					</view>
 					<view class="advisory-title-down">
 						<view class="advisory-title-name">{{i.sourceName}}</view>
-						<view class="advisory-title-time">{{i.createTime}}</view>
+						<view class="advisory-title-time">{{i.createTime.substring(0,11)}}</view>
 					</view>
 				</view>
 				<view class="advisory-right">
 					<image :src="i.url"></image>
 				</view>
-				
 			</view>
-			<!-- loading加载提示处 -->
-			<view v-show="isLoadMore">
-				<uni-load-more :status="loadStatus" ></uni-load-more>
-		    </view>
+			<u-loadmore :status="status" />
+		</scroll-view>
+
+		<!-- <view class="article-content">
+		</view> -->
+		
+		<u-toast ref="uToast" />
+		<!-- 底部导航条 -->
+		<u-tabbar :list="tabbar" :mid-button="false"></u-tabbar>
 	</view>
 </template>
 
 <script>
-	export default{
-		data(){
+	import navBarTop from '../../components/nav-bar-top/nav-bar-top.vue';
+	export default {
+		components: {
+			navBarTop
+		},
+		data() {
 			return {
 				// pathUrl:"http://localhost:89/",
-				pathUrl:"http://s16s652780.51mypc.cn/api/blade-jfpts",
-				page:1,
-				pagesize:10,
-				loadStatus:'loading',  //加载样式:more-加载前样式,loading-加载中样式,nomore-没有数据样式
-				isLoadMore:false,  //是否加载中
-				isFlash:false,//是否刷新
-				data:[]
+				pathUrl: this.$store.state.piAPI + "",
+				loading:true,//加载动画
+				page: 1,
+				pagesize: 999999,
+				status: 'loadmore',
+				// loadStatus:'loading',  //加载样式:more-加载前样式,loading-加载中样式,nomore-没有数据样式
+				isLoadMore: false, //是否加载中
+				isFlash: false, //是否刷新
+				data: [],
+				titleNum: 0,
+				articleTabArr: [],
+				articleTabNum: 0,
+				navbarTopHeight: "10px",
+				tabbar: this.$store.state.tabbar,
+				tabInfo: "0",
+				keyword: '',
+				value1: "",
+				rolename: "",
+				threshold: 50,
+				triggered: false,
+				isRefreshing: false, // 是否在刷新中
+				refresherFlag: true,
+				options1: [{
+						label: '全部',
+						value: 'kxw',
+					}, {
+						label: '热议',
+						value: 'kxw001',
+					},
+					{
+						label: '通知',
+						value: 'kxw002',
+					},
+					{
+						label: '警闻',
+						value: 'kxw003',
+					},
+					{
+						label: '民生',
+						value: 'kxw004',
+					}
+				],
+				options2: [{
+						label: '全部',
+						value: 'ksp',
+					}, {
+						label: '通告',
+						value: 'ksp001',
+					},
+					{
+						label: '微视',
+						value: 'ksp002',
+					},
+					{
+						label: '动态',
+						value: 'ksp003',
+					}
+				],
+				options3: [{
+						label: '全部',
+						value: 'hyq',
+					}, {
+						label: '消息发布',
+						value: 'hyq001',
+					},
+					{
+						label: '知识竞答',
+						value: 'hyq002',
+					},
+					{
+						label: '知识讨论',
+						value: 'hyq003',
+					}, {
+						label: '个人',
+						value: 'hyq004',
+					}
+				],
+				options4: [{
+					label: '全部',
+					value: 'kxc',
+				}],
+				swiperHeight: 0
 			}
 		},
-		mounted(){
+		mounted() {
 			// this.getArtcilePageList();
 		},
-		//上拉加载更多
-		onReachBottom(){  //上拉触底函数
-			if(!this.isLoadMore){  //此处判断,上锁,防止重复请求
-				this.isLoadMore=true
-				this.page+=1
-				this.getArtcilePageList()
-			}
-		},
-		//下拉刷新
-		onPullDownRefresh() {
-			// console.log("上拉了!....");
-			if(!this.isFlash){  //此处判断,上锁,防止重复请求
-				this.isFlash=true;
-				this.page =1;
-				this.getArtcilePageList();
-			}
-		},
 		onLoad() {
-		    this.getArtcilePageList();
+			//获取新闻数据
+			this.rolename = this.$store.state.UserData.role_name;
+			this.getArtcilePageList("0");
+			uni.startPullDownRefresh();
+
 		},
-		methods:{
+
+		onReady() {
+			let that = this;
+			uni.getSystemInfo({
+				success(e) {
+					console.log(e);
+					let {
+						windowWidth,
+						windowHeight,
+						safeArea
+					} = e;
+					const query = uni.createSelectorQuery().in(that);
+					query
+						.select('#articleBox')
+						.boundingClientRect(data => {
+							that.swiperHeight = (safeArea.bottom - data.top - 70);
+
+						})
+						.exec();
+				}
+			});
+		},
+
+		//上拉加载更多
+		onReachBottom() {
+			if (this.status == 'nomore') return;
+			this.page = ++this.page;
+			setTimeout(() => {
+				this.getArtcilePageList(this.tabInfo);
+			}, 100);
+		},
+		methods: {
+			goTabDetail(index) {
+				this.titleNum = index;
+			},
 			//去跳转详情页面
-			goDetail(e){
-				
-				//内容传值容易报错,所以直传id,然后调用接口去查询
-				// let detail = {
-				// 	title: e.title,
-				// 	content: e.content,
-				// 	id: e.id,
-				// 	createTime: e.createTime,
-				// 	sourceName: e.sourceName,
-				// 	imgUrl: e.url,
-				// 	videoUrl:e.videoUrl
-				// };
-				
+			goDetail(e) {
 				let detail = {
 					id: e.id
 				};
-				//去跳转
-				uni.navigateTo({
-					url: './article_detail?detailData=' + JSON.stringify(detail)
-				});
+				if (e.articleType.indexOf("ksp") != -1) {
+					//去跳转
+					uni.navigateTo({
+						url: './article_video?detailData=' + (JSON.stringify(e))
+					});
+				} else {
+					//去跳转
+					uni.navigateTo({
+						url: './article_detail?detailData=' + JSON.stringify(detail)
+					});
+				}
 			},
-			
+			//on input 通过 keyword 关键字查询
+			getKeyword() {
+				this.getArtcilePageList(this.tabInfo);
+			},
 			//获取资讯信息
-			getArtcilePageList(){
+			getArtcilePageList(tab) {
 				var that = this;
+				var paramData = null;
+				if (Number(tab) == "") {
+					paramData = {
+						rolename: this.rolename, //帐号角色
+						current: this.page,
+						size: this.pagesize,
+						keyword: this.keyword
+					}
+				} else {
+					paramData = {
+						rolename: this.rolename, //帐号角色
+						current: this.page,
+						size: this.pagesize,
+						keyword: this.keyword,
+						articleType: tab
+					}
+				}
 				uni.request({
-					url: that.pathUrl+'/article/article/page',
-					method:'GET',
-					data:{
-						current:this.page,
-						size: this.pagesize
-					},
+					url: that.$store.state.piAPI + '/article/article/pageDate',
+					method: 'GET',
+					data: paramData,
 					success: (res) => {
-						if(res.data.code==200){
-							if(res.data.data.records){
+						if (res.data.code == 200) {
+							that.loading = false;
+							if (res.data.data.records) {
 								//如果总数小于pageSize,不做其他操作
-								if(res.data.data.total<this.pagesize){
+								if (res.data.data.total < that.pagesize) {
 									that.data = res.data.data.records;
-								}else{
-									if(res.data.data.records.length<this.pagesize){
+									that.status = 'nomore';
+								} else {
+									if (res.data.data.records.length < that.pagesize) {
 										//如果数量小于分页数量,则为最后一页
-										this.isLoadMore=true;
-										this.loadStatus='nomore';
-									}else{
-										this.isLoadMore=false
+										that.status = 'nomore'
+									} else {
+										//否则继续加载更多数据
+										that.status = 'loading';
 									}
-									res.data.data.records.forEach((item)=>{
+									res.data.data.records.forEach((item) => {
 										that.data.push(item);
 									})
 								}
-							}else{
-								this.isLoadMore=true;
-								this.loadStatus='nomore';
 							}
+							setTimeout(() => {
+								that.triggered = false; //触发onRestore,并关闭刷新图标 正常应该放在请求成功得接口里
+								that.isRefreshing = false;
+							}, 1000)
 						}
 					}
 				});
-			}
+			},
+			change(e) {
+				this.page = 1;
+				this.getArtcilePageList(e);
+			},
+			open(e) {
+				if (e >= 2) {
+					this.$refs.uToast.show({
+						title: '功能研发中',
+						type: 'warning',
+					})
+				}
+			},
+			refreshing() {
+				if (this.isRefreshing) {
+					return;
+				}
+				this.isRefreshing = true;
+				//界面下拉触发,triggered可能不是true,要设为true
+				if (!this.triggered) {
+					this.triggered = true;
+				}
+
+				this.getArtcilePageList();
+			},
+
+			refresherrestore() {
+
+			},
 		}
 	}
 </script>
 
+<style>
+
+</style>
+
 <style lang="scss" scoped>
-	.advisory-big{
+	.advisory-big {
 		width: 100%;
-		height: 70%;
-		position: absolute;
-		top: 2%;
-		// background-color: #0078A8;
-		
-		.advisory-model{
-			width: 100%;
-			height: 20%;
-			// background-color: #00FF00;
-			
-			
-			.advisory-left{
-				width: 61%;
-				height: 80%;
-				float: left;
-				position: relative;
-				// background-color: #00FFFF;
-				position: relative;
-				left: 4%;
-				top: 10%;
-				
-				
-				.advisory-title-top{
-					// background-color: #2692FD;
-					width: 100%;
-					height: 75%;
-					
-					.advisory-title{
-						width: 92%;
-						font-size: 15px;
-						font-weight: 550;
-						overflow: hidden;
-						text-overflow: ellipsis;
-						display: -webkit-box; 
-						-webkit-line-clamp: 2; 
-						-webkit-box-orient: vertical;
-					}
-					
-					
-				}
-				
-				.advisory-title-down{
-					// background-color: #0078A8;
-					width: 100%;
-					height: 25%;
-					font-size: 12px;
-					font-weight: 550;
-					color: #808080;
-					
-					.advisory-title-name{
-						width: 130rpx;
-						float: left;
-						letter-spacing: 1px;
-						overflow: hidden;
-						text-overflow: ellipsis;
-						display: -webkit-box; 
-						-webkit-line-clamp: 1; 
-						-webkit-box-orient: vertical;
-						// background-color:#0078A8;
-					}
-					
-					.advisory-title-time{
-						position: relative;
-						left: 15rpx;
-					}
-				}
-				
+		height: 100%;
+		background-color: #f7f7f7;
+
+		.uni-nav-bar-info {
+			display: flex;
+			align-items: center;
+			height: 50px;
+
+			.title {
+				font-size: 1.2rem;
+				color: #808080;
+				margin-left: 1rem;
 			}
-			
-			.advisory-right{
-				// background-color: #222222;
-				width: 32%;
-				height: 80%;
-				left: 63%;
-				position: relative;
-				top: 10%;
-				
-				image{
+		}
+
+
+		.article-tab {
+			background-color: #fff;
+			width: 100%;
+			height: 2.5rem;
+			border-bottom: 2px solid #D7D7D7;
+			z-index: 999;
+			position: fixed;
+
+			.article-tab-title {
+				// text-align: center;
+				width: 14%;
+				float: left;
+				margin-left: 1rem;
+				margin-top: 0.5rem;
+				// border-bottom: 4px solid #000000;
+			}
+
+			image {
+				margin-top: 0.35rem;
+				width: 1.5rem;
+				height: 1.5rem;
+			}
+		}
+
+		.article-content {
+			// margin-top: 3.5rem;
+			width: 100%;
+			// background-color: #00FF00;
+
+			.advisory-model {
+				width: 94%;
+				margin: 0 auto;
+				height: 6rem;
+				background-color: #FFF;
+				border-radius: 8px;
+				margin-top: 0.5rem;
+
+
+				.advisory-left {
+					width: 64%;
+					height: 80%;
+					float: left;
 					position: relative;
-					left: 0px;
-					top: -100%;
-					width: 100%;
-					height: 100%;
-					border-radius: 5px;
+					// background-color: #00FFFF;
+					position: relative;
+					left: 3%;
+					top: 10%;
+
+
+					.advisory-title-top {
+						// background-color: #2692FD;
+						width: 100%;
+						height: 75%;
+
+						.advisory-title {
+							width: 92%;
+							font-size: 15px;
+							font-weight: 550;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							display: -webkit-box;
+							-webkit-line-clamp: 2;
+							-webkit-box-orient: vertical;
+						}
+
+
+					}
+
+					.advisory-title-down {
+						// background-color: #0078A8;
+						width: 100%;
+						height: 25%;
+						font-size: 12px;
+						font-weight: 550;
+						color: #808080;
+
+						.advisory-title-name {
+							width: 250rpx;
+							float: left;
+							letter-spacing: 1px;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							display: -webkit-box;
+							-webkit-line-clamp: 1;
+							-webkit-box-orient: vertical;
+							// background-color:#0078A8;
+						}
+
+						.advisory-title-time {
+							position: relative;
+							left: 15rpx;
+						}
+					}
+
+				}
+
+				.advisory-right {
+					// background-color: #222222;
+					width: 33%;
+					height: 80%;
+					left: 65%;
+					position: relative;
+					top: 10%;
+
+					image {
+						position: relative;
+						left: 0px;
+						top: -100%;
+						width: 100%;
+						height: 100%;
+						border-radius: 5px;
+					}
 				}
 			}
 		}
 	}
-	
-	
-	
-	
+
+	.cccc {
+		position: relative;
+		top: -5px;
+	}
+
+	.cccc::before {
+		position: relative;
+		top: 25px;
+		content: '';
+		width: 30px;
+		display: block;
+		height: 3.5px;
+		background-color: #0BB9C8;
+	}
+
+
+
+	/* 搜索框 */
+	.search-ico,
+	.search-ico-1 {
+		width: 40upx;
+		height: 40upx;
+	}
+
+	.search-block {
+		width: 94%;
+		margin: 0 auto;
+		// background-color: #007AFF;
+		display: flex;
+		flex-direction: row;
+		position: relative;
+		top: 2.85rem;
+
+		.search-ico-wapper {
+			background-color: #F1F1F1;
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			padding: 0upx 0upx 0upx 15upx;
+			border-bottom-left-radius: 7px;
+			border-top-left-radius: 7px;
+		}
+
+		.search-text {
+			font-size: 14px;
+			background-color: #F1F1F1;
+			height: 70upx;
+			width: 100%;
+			padding-left: 0.5rem;
+		}
+
+
+		.search-ico-wapper1 {
+			background-color: #F1F1F1;
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			padding: 0upx 15upx 0upx 0upx;
+			border-bottom-right-radius: 7px;
+			border-top-right-radius: 7px;
+		}
+	}
 </style>

--
Gitblit v1.9.3