设置代理,避免出现跨域问题

/*设置代理,避免出现跨域问题*/
proxyTable: {'/api':{target: 'https://www.oschina.net/action/apiv2/',changeOrigin: true,pathRewrite: {'^/api': ''}}
},

api/index.js  接口配置

/*** 引入 异步请求API*/
import "whatwg-fetch"const host_addr='http://192.168.1.110:8081/'/*** 获取资讯列表* 解决跨域问题: 用 '/api' 代替 host_addr*/
export let getList = async (page, tag) => {let response = await fetch('/api' + `news_list?pageIndex=${page}&pageSize=20&catalog=${tag}`, {method: 'GET',mode: 'cors'}).catch((error) => {console.log(error)})return await response.json().catch((error) => {console.log(error)})
}/*** 获取资讯详情*/
export let getNewsDetail = async (id) => {let response = await fetch('/api' + `news_detail?id=${id}`, {method: 'GET',mode: 'cors'}).catch((error) => {console.log(error)})return await response.json().catch((error) => {console.log(error)})
}/*** 获取博客列表*/
export let getBlogList = async (page, tag) => {let response = await fetch(host_addr + `blog_list?pageIndex=${page}&pageSize=20&catalog=${tag}`, {method: 'GET',mode: 'cors'}).catch((error) => {console.log(error)})return await response.json().catch((error) => {console.log(error)})
}/*** 获取问答列表*/
export let getQuestionList = async (page, tag) => {let response = await fetch(host_addr + `question_list?pageIndex=${page}&pageSize=20&catalog=${tag}`, {method: 'GET',mode: 'cors'}).catch((error) => {console.log(error)})return await response.json().catch((error) => {console.log(error)})
}/*** 获取活动列表*/
export let getEventList = async (page, tag) => {let response = await fetch(host_addr + `event_list?pageIndex=${page}&pageSize=20&catalog=${tag}`, {method: 'GET',mode: 'cors'}).catch((error) => {console.log(error)})return await response.json().catch((error) => {console.log(error)})
}

1.资讯页

NewsList.vue

<!-- 资讯 -->
<template><div><!-- 轮播图 --><swiper :list="imgs" auto style="width:100%;height:120px;margin:0 auto;" dots-class="custom-bottom" dots-position="center"></swiper><!-- 滚动列表 --><div><scroller lock-x scrollbar-y :height="height" :bounce=false :scrollbarY="false" ref="scroller"><div class="news-wrap-list"><cell v-for="x in Objlist" :title="x.title" :link="{path:'/newsDetail',query:{id:x.id,tag:'资讯'}}" :inline-desc="x.body" :key="x.id"><img class="ic_img" slot="icon" src="../../assets/img/ic_label_today.png"><div><span class="pubdate">{{x.pub_date}}</span></div></cell></div></scroller></div></div>
</template><script>// 引入 vux 内部组件import { Swiper, Scroller, Cell } from 'vux'// 引入 api接口文档import { getList } from '../../api/index.js'// 轮播图列表const imgList = ['http://file06.16sucai.com/2016/0222/17714c3b51079911760e5ef7fdb553f6.jpg','http://pic.58pic.com/58pic/15/67/98/93C58PICjeM_1024.jpg','http://file06.16sucai.com/2016/0315/1df566087c24a94cd9534bc9bc1871ff.jpg'];// 轮播图图片地址列表const urlList = imgList.map((one, index) => ({url: 'javascript:',  //这里填写图片点击的链接img: one}));export default {name: 'NewsList',components:{Swiper,Scroller,Cell},data(){return {imgs:urlList,Objlist:[],ishow:false,pageIndex:1,catalog:0,height: ''}},created(){// 获取屏幕高度this.height = document.documentElement.clientHeight - 46 - 44 - 120 - 53 + 'px';console.log(this.height);// 请求列表数据this.getList();},methods:{// 异步请求async getList(){// 获取列表数据let data = await getList(this.pageIndex, this.catalog);console.log(data);// 获取资讯列表数据var news_list = data.obj_list;// 判断是否还有数据if(news_list.length > 0){this.ishow = true;for(var i=0;i<news_list.length;i++){var time = news_list[i].pub_date;// 修改日期显示格式var bngDate = new Date(time.replace(/-/g,"/"));var endDate = new Date();var minutes = (endDate.getTime() - bngDate.getTime())/60/1000;// 时间段 判断pub_date显示内容if(minutes >= 60){minutes = minutes/60;var dateTime = parseInt(minutes);if(dateTime >= 48){news_list[i].pub_date = "2天前";}else if(dateTime >= 24){news_list[i].pub_date = "昨天";}else{news_list[i].pub_date = dateTime + "小时以前";}}else{var minute = parseInt(minutes);news_list[i].pub_date = minute + "分钟以前";}news_list[i].title = "  " + news_list[i].title;this.Objlist.push(news_list[i]);}}this.locked = false;this.loading = false;},load(uuid){setTimeout(() => {this.$broadcast('pulldown:reset', uuid);}, 1000);}}}
</script><style lang="less" scoped>.ic_img{position:absolute; top:10px; left: 5px;width:15px;height:15px;}.weui_cell_bd>p{font-size:15px;}.vux-label-desc{padding-right:15px;}.weui_cell_bd.weui_cell_primary{padding-left:5px;}.news-wrap-list {height: 2800px;overflow: hidden;}.pubdate{font-size:5px;}
</style>

2.资讯详情页

NewsDetail.vue

<!-- 资讯详情页 -->
<template><div><tabbar class="tabbar"><div class="title">{{title}}</div><tabbar-item class="search"></tabbar-item></tabbar><h3 class="htitle">{{result.title}}</h3><scroller  lock-x scrollbar-y :height="height" :bounce=false :scrollbarY="false" ref="scroller"><div id="content" class="contentDiv"></div></scroller></div>
</template><script>import { Tabbar,TabbarItem,Scroller} from 'vux'import { getNewsDetail } from '../../api/index.js'// 引入 jqueryimport "jquery"var $ = require('jquery');window.$ = $;export default{name:'NewsDetail',data () {return {title: '',result:'',body: '',height: ''}},components:{Tabbar,TabbarItem,Scroller},created () {// 获取屏幕高度this.height = document.documentElement.clientHeight - 50 - 100 - 53 + 'px';console.log(this.$route.query);this.title = this.$route.query.tag;this.getDetail();},methods:{// 获取消息id,根据id到服务端请求详情async getDetail() {let data = await getNewsDetail(this.$route.query.id);console.log(data);if(data.code >= 0){this.result = data.obj_data;this.body = data.obj_data.body;$(".contentDiv").html(this.body);//获取div高度,根据该高度设定滑动区域,避免footer位置变化var contentHeight=$(".contentDiv").height() + 50;document.getElementById("content").style.height = contentHeight + "px";this.$nextTick(() => {this.$refs.scroller.reset();});}}}}
</script><style lang="less" scoped>.tabbar{background-color:#00CC66;height:50px;position:relative;}.search{position:absolute;right:5px;top:5px;z-index:999;}.title{text-align:center;margin:auto;color:white;line-height:50px;font-size:18px;}.htitle{text-align:center;margin:auto;color:black;line-height:50px;height: 100px;}
</style>

3.效果图

转载于:https://www.cnblogs.com/crazycode2/p/7862453.html

vue2.0 + vux (六)NewsList 资讯页 及 NewsDetail 资讯详情页相关推荐

  1. 微信小程序之网易云音乐(五)- 排行详情页、歌单详情页、播放器组件开发

    微信小程序之网易云音乐(五)- 排行详情页.歌单详情页.播放器组件开发 一. 排行详情页模块 二. 歌单详情页模块 三. 播放器组件 微信小程序之网易云音乐导航 一. 排行详情页模块 rank.vue ...

  2. 【一句话调用】h5页面 返回缓存 如js加载列表页点击进入详情页,返回后刷新的问题和无法定位问题 html 返回定位

    在做html5开发时,经常会碰到从列表页跳转到详情页,然后在点击返回或者手机手势返回后,列表内容刷新且无法定位到点击的位置,尤其包含列表加列表的情况 问题尤其明显. 解决办法如下: 1.vue的组件切 ...

  3. 用vue2写一个新闻列表页,和新闻详情页,该怎么做?

    首先,您需要安装Vue CLI并创建一个新项目.接下来,您可以使用Vue的单文件组件编写新闻列表页和新闻详情页. 新闻列表页: 在项目中创建一个名为"NewsList"的组件. 在 ...

  4. 淘宝商品详情接口,淘宝详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,淘宝APP详情

    一.接口参数说明: 提取淘宝商品详情页各项数据,包含skuid.价格.收藏数.加购数.月销售量.主图.标题.详情页图片,点击获取请求key和secret 二.建议使用场景 1.商品销售情况分析,根据销 ...

  5. 小米商城官网(登录页,首页,详情页,我的购物车页,我的订单页,确认订单页)HTML+CSS+JS

    文章目录 前言 一.登录页 二.首页 三.我的购物车页 四.我的订单页 五.确认订单页 六.详情页 七.整体结构和效果图 总结 前言 仿小米商城官网项目是本人实训内容,实训老师带着做的首页和登录页,本 ...

  6. 拼多多商品详情接口,拼多多详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,拼多多APP详情

    一.接口参数说明: 提取拼多多商品详情页各项数据,包含skuid.价格.收藏数.加购数.月销售量.主图.标题.详情页图片等参数,接口对接希望能够帮助到有需要的朋友,具体参数对接如下: 1.公共参数 名 ...

  7. Vue项目 课程列表页 跳转 课程详情页 跳转 视频播放页

    课程列表页Course.vue - Coursemain.vue 跳转至 课程详情页 <!-- 课程列表 --><div class="container-body&quo ...

  8. 淘宝app详情接口,淘宝详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情

    一.接口效果(名称有联系方式可以加我) 提取淘宝商品详情页各项数据,包含skuid.价格.收藏数.加购数.月销售量.主图.标题.详情页图片,价格低至几厘 数据格式如下,2022年1月份最新版 | { ...

  9. 跨境电商,淘宝app详情接口,淘宝详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情

    一.接口效果(名称有联系方式可以加我) 提取淘宝商品详情页各项数据,包含skuid.价格.收藏数.加购数.月销售量.主图.标题.详情页图片,价格低至几厘 数据格式如下,2022年7月份最新版 全平台数 ...

最新文章

  1. 科软2020计算机科学与技术,2020新高考 报考计算机类专业怎么选科
  2. jquery 图片裁剪 java_[Java教程]5 款最新的 jQuery 图片裁剪插件
  3. MySQL存储引擎类别
  4. C#面向插件级别的软件开发 - 开源研究系列文章
  5. matlab矩阵元素绝对值,如何解决矩阵内部元素绝对值化
  6. python win32转pdf 横版_Python调用Win32com实现Office批量转PDF
  7. Python敏感词过滤DFA算法+免费附带敏感词库
  8. 使用Arduino和水流传感器进行流速和流量测量
  9. 激光中心线算法MATLAB仿真
  10. BGA封装的优缺点解析
  11. selenium+java发送cookie,绕过验证码登录
  12. 如何用photoshop来做流体渐变
  13. Android Framework 框架系列之PowerManager
  14. 计算机系统安全启动,关闭电脑的安全启动项( Secure Boot )
  15. 电脑 cmd 输入 python,跳转到商城,解决办法
  16. [附源码]SSM计算机毕业设计网上鞋店管理系统JAVA
  17. PPT中《此演示文稿中的一些控件无法激活》的解决办法
  18. systemctl 实现开机自启服务
  19. Linux内核源代码情景分析-内存管理
  20. QQ登录查看漫游记录每次都要输入独立密码怎么办?

热门文章

  1. 随机数生成器python_Python中的随机数生成器
  2. Akka异步通讯《three》译
  3. 深度学习大厂前端项目开发全流程全流程
  4. Java开发技术有哪些?
  5. Java基础篇:类的通用格式
  6. JSOI 2008 【魔兽地图】
  7. Picasso源码阅读笔记六
  8. HTML 代码复用实践 (静态页面公共部分提取复用)
  9. Silverlight3游戏开发之空当接龙基础篇
  10. 关于UTF-8的处理方法心得