vue2
1.添加用户登录注册退出时的提示 弹出Toast提示1秒后跳转 2.增加列表下拉刷新 3.新建vue2不打包 方便本地调试 更新版本和结构 4.在远程服务器获取不到数据时使用mock进行数据模拟
This commit is contained in:
105
codes/news_recsys/news_rec_web/README.md
Normal file
105
codes/news_recsys/news_rec_web/README.md
Normal file
@@ -0,0 +1,105 @@
|
||||
### 新闻推荐系统
|
||||
|
||||
+ 基于vue的框架Vant UI的基本使用。
|
||||
|
||||
+ 基于nodejs的npm包管理工具、打包工具webpack和与之相对应的插件。
|
||||
|
||||
+ vue路由的相关知识,路由的配置和渲染以及路由守卫的使用。
|
||||
|
||||
+ vue-axios的使用,项目里调用接口都是用的这个异步ajax插件。
|
||||
|
||||
+ 全局组件的使用。
|
||||
|
||||
---
|
||||
|
||||
### 项目地址
|
||||
|
||||
#### vue2(自动打包 方便运行在远程服务器)
|
||||
|
||||
**源代码:**
|
||||
[GitHub](https://github.com/datawhalechina/fun-rec/tree/master/codes/news_recsys/news_rec_web/Vue-newsinfo)
|
||||
|
||||
**演示链接:**
|
||||
http://47.108.56.188:8686/#/
|
||||
|
||||
- 测试用户名: `11` 测试密码: `111111`
|
||||
|
||||
<br>
|
||||
|
||||
#### vue2(不打包 方便本地调试)
|
||||
|
||||
**源代码:**
|
||||
[GitHub](https://github.com/datawhalechina/fun-rec/tree/master/codes/news_recsys/news_rec_web/vue2-fun-rec) [Gitee](https://gitee.com/theNeverLemon/vue-fun-rec)
|
||||
|
||||
**演示链接:**
|
||||
http://theneverlemon.gitee.io/vue2-fun-rec-project/#/
|
||||
|
||||
- 测试用户名: `11` 测试密码: `111111` (连接远程服务器,具有推荐功能,优先使用这个)
|
||||
- 测试用户名: `user` 测试密码: `pass` (mock数据模拟,远程服务器获取不到数据时使用,没有推荐功能)
|
||||
|
||||
---
|
||||
|
||||
|
||||
### 目标功能
|
||||
- [X] **用户登录** —— 老用户登录
|
||||
|
||||
- `记住我`可以保存将登录信息保存7天
|
||||
|
||||
- `忘记密码` 暂时没有写逻辑不能使用
|
||||
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/登录.jpg" width = "30%" height = "30%" alt="登录"/>
|
||||
</div>
|
||||
|
||||
|
||||
- [X] **用户注册** —— 新用户注册信息
|
||||
|
||||
- 用户名可以为英文和数字
|
||||
|
||||
- 密码是大于6位的英文和数字
|
||||
|
||||
- 年龄是1-100的整数
|
||||
|
||||
- 注册成功后将跳转至主页面
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/注册.jpg" width = "30%" height = "30%" alt="注册"/>
|
||||
</div>
|
||||
|
||||
|
||||
- [X] **推荐页及热门页内容显示** —— 根据不同用户个性化显示不同新闻内容
|
||||
|
||||
- 推荐页和热门页之间的切换(首次切换时会刷新,正在修复这个bug)
|
||||
|
||||
- 点进新闻详情页后阅读次数会实时增加
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/推荐.jpg" width = "30%" height = "30%" alt="推荐"/>
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/热门.jpg" width = "30%" height = "30%" alt="热门"/>
|
||||
</div>
|
||||
|
||||
|
||||
- [x] **新闻详情** —— 显示当前新闻的详细信息
|
||||
|
||||
- 显示标题、内容等信息
|
||||
|
||||
- 底部点击`喜欢`或者`收藏`可以记录将当前用户行为,并在列表页相应增加
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/新闻详情.jpg" width = "30%" height = "30%" alt="新闻详情"/>
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/新闻详情2.jpg" width = "30%" height = "30%" alt="新闻详情2"/>
|
||||
</div>
|
||||
|
||||
- [X] **个人中心** —— 记录用户的头像和用户名
|
||||
|
||||
- 显示头像和登录名(头像暂时统一为DataWhle图标)
|
||||
|
||||
- 显示DataWhale相关介绍
|
||||
|
||||
- 点击`退出登录`回到登录页
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/个人中心1.jpg" width = "30%" height = "30%" alt="个人中心1"/>
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/个人中心2.jpg" width = "30%" height = "30%" alt="个人中心2"/>
|
||||
</div>
|
||||
@@ -10,12 +10,13 @@
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@vant/area-data": "^1.1.3",
|
||||
"axios": "^0.19.0",
|
||||
"axios": "^0.19.2",
|
||||
"bootstrap": "^3.4.1",
|
||||
"crypto-js": "^4.1.1",
|
||||
"into": "^0.2.0",
|
||||
"js-pinyin": "^0.1.9",
|
||||
"less-loader": "^10.2.0",
|
||||
"mockjs": "^1.1.0",
|
||||
"moment": "^2.24.0",
|
||||
"vant": "^2.12.34",
|
||||
"vue": "^2.6.10",
|
||||
@@ -41,7 +42,7 @@
|
||||
"style-loader": "^0.23.1",
|
||||
"url-loader": "^2.1.0",
|
||||
"vue-loader": "^15.7.1",
|
||||
"vue-template-compiler": "^2.6.10",
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"vuex": "^2.5.0",
|
||||
"webpack-cli": "^3.3.6",
|
||||
"webpack-dev-server": "^3.7.2",
|
||||
@@ -620,8 +621,8 @@
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "0.19.2",
|
||||
"resolved": "https://registry.npmmirror.com/axios/download/axios-0.19.2.tgz?cache=0&sync_timestamp=1633067760110&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxios%2Fdownload%2Faxios-0.19.2.tgz",
|
||||
"integrity": "sha1-PqNsXYgY0NX4qKl6bTa4bNwAyyc=",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
|
||||
"integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
|
||||
"deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410",
|
||||
"dependencies": {
|
||||
"follow-redirects": "1.5.10"
|
||||
@@ -5421,6 +5422,17 @@
|
||||
"mkdirp": "bin/cmd.js"
|
||||
}
|
||||
},
|
||||
"node_modules/mockjs": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz",
|
||||
"integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==",
|
||||
"dependencies": {
|
||||
"commander": "*"
|
||||
},
|
||||
"bin": {
|
||||
"random": "bin/random"
|
||||
}
|
||||
},
|
||||
"node_modules/moment": {
|
||||
"version": "2.29.1",
|
||||
"resolved": "https://registry.nlark.com/moment/download/moment-2.29.1.tgz",
|
||||
@@ -8088,8 +8100,8 @@
|
||||
},
|
||||
"node_modules/vue-template-compiler": {
|
||||
"version": "2.6.14",
|
||||
"resolved": "https://registry.nlark.com/vue-template-compiler/download/vue-template-compiler-2.6.14.tgz",
|
||||
"integrity": "sha1-ovDn2YVnDULJye4NBE/tdpD092M=",
|
||||
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz",
|
||||
"integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"de-indent": "^1.0.2",
|
||||
@@ -9488,8 +9500,8 @@
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.19.2",
|
||||
"resolved": "https://registry.npmmirror.com/axios/download/axios-0.19.2.tgz?cache=0&sync_timestamp=1633067760110&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxios%2Fdownload%2Faxios-0.19.2.tgz",
|
||||
"integrity": "sha1-PqNsXYgY0NX4qKl6bTa4bNwAyyc=",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
|
||||
"integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
|
||||
"requires": {
|
||||
"follow-redirects": "1.5.10"
|
||||
}
|
||||
@@ -13486,6 +13498,14 @@
|
||||
"minimist": "^1.2.5"
|
||||
}
|
||||
},
|
||||
"mockjs": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz",
|
||||
"integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==",
|
||||
"requires": {
|
||||
"commander": "*"
|
||||
}
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.29.1",
|
||||
"resolved": "https://registry.nlark.com/moment/download/moment-2.29.1.tgz",
|
||||
@@ -15679,8 +15699,8 @@
|
||||
},
|
||||
"vue-template-compiler": {
|
||||
"version": "2.6.14",
|
||||
"resolved": "https://registry.nlark.com/vue-template-compiler/download/vue-template-compiler-2.6.14.tgz",
|
||||
"integrity": "sha1-ovDn2YVnDULJye4NBE/tdpD092M=",
|
||||
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz",
|
||||
"integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"de-indent": "^1.0.2",
|
||||
|
||||
@@ -5,12 +5,13 @@
|
||||
"main": "webpack.config.js",
|
||||
"dependencies": {
|
||||
"@vant/area-data": "^1.1.3",
|
||||
"axios": "^0.19.0",
|
||||
"axios": "^0.19.2",
|
||||
"bootstrap": "^3.4.1",
|
||||
"crypto-js": "^4.1.1",
|
||||
"into": "^0.2.0",
|
||||
"js-pinyin": "^0.1.9",
|
||||
"less-loader": "^10.2.0",
|
||||
"mockjs": "^1.1.0",
|
||||
"moment": "^2.24.0",
|
||||
"vant": "^2.12.34",
|
||||
"vue": "^2.6.10",
|
||||
@@ -36,7 +37,7 @@
|
||||
"style-loader": "^0.23.1",
|
||||
"url-loader": "^2.1.0",
|
||||
"vue-loader": "^15.7.1",
|
||||
"vue-template-compiler": "^2.6.10",
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"vuex": "^2.5.0",
|
||||
"webpack-cli": "^3.3.6",
|
||||
"webpack-dev-server": "^3.7.2",
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<span>推荐</span>
|
||||
</label>
|
||||
</li>
|
||||
<li title="Delivery Contents" class="hot" @click="toHot">
|
||||
<li title="Delivery Contents" class="hot">
|
||||
<label for="tab2" role="button" class="hotCont">
|
||||
<svg viewBox="0 0 24 24" class="hotPath">
|
||||
<path d="M2,10.96C1.5,10.68 1.35,10.07 1.63,9.59L3.13,7C3.24,6.8 3.41,6.66 3.6,6.58L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.66,6.72 20.82,6.88 20.91,7.08L22.36,9.6C22.64,10.08 22.47,10.69 22,10.96L21,11.54V16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V10.96C2.7,11.13 2.32,11.14 2,10.96M12,4.15V4.15L12,10.85V10.85L17.96,7.5L12,4.15M5,15.91L11,19.29V12.58L5,9.21V15.91M19,15.91V12.69L14,15.59C13.67,15.77 13.3,15.76 13,15.6V19.29L19,15.91M13.85,13.36L20.13,9.73L19.55,8.72L13.27,12.35L13.85,13.36Z" />
|
||||
@@ -24,29 +24,34 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="lists">
|
||||
<van-list v-model="vanListLoading" :finished="finished" :finished-text="finishedText" @load="onLoad" :offset=300>
|
||||
<!-- 循环$store.state.hotList内的每一个item并显示 -->
|
||||
<van-cell v-for="(item) in $store.state.hotList" :key="item.news_id">
|
||||
<!-- 路由地址传参,需要前面加:号,表示这个参数不是字符串 -->
|
||||
<router-link :to="{name:'NewsInfo' ,params:{id:item.news_id,likes:item.likes,collections:item.collections,cate:item.cate}}">
|
||||
<div>
|
||||
<p>
|
||||
<span class="cate">{{item.cate}}</span>
|
||||
<span class='title'>{{ item.title }}</span>
|
||||
</p>
|
||||
|
||||
<p class="discribe">
|
||||
<span class="ctime">{{ item.ctime}} </span>
|
||||
<span class="read_num">阅读:{{item.read_num}}</span>
|
||||
<span class="likes">喜欢:{{item.likes}}</span>
|
||||
<span class="collections">收藏:{{item.collections}}</span>
|
||||
</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</van-cell>
|
||||
</van-list>
|
||||
</div>
|
||||
<van-pull-refresh v-model="isLoading" @refresh="onRefresh">
|
||||
<div class="lists">
|
||||
<van-list v-model="vanListLoading" :finished="finished" :finished-text="finishedText" @load="onLoad" :offset=300>
|
||||
<!-- 循环$store.state.hotList内的每一个item并显示 -->
|
||||
<van-cell v-for="(item,i) in $store.state.hotList" :key="i">
|
||||
<!-- 路由地址传参,需要前面加:号,表示这个参数不是字符串 -->
|
||||
<router-link :to="{name:'NewsInfo' ,params:{id:item.news_id,likes:item.likes,collections:item.collections,cate:item.cate}}">
|
||||
<div>
|
||||
<p>
|
||||
<span class="cate">{{item.cate}}</span>
|
||||
<span class='title'>{{ item.title }}</span>
|
||||
</p>
|
||||
|
||||
<p class="discribe">
|
||||
<span class="ctime">{{ item.ctime}} </span>
|
||||
<span class="read_num">阅读:{{item.read_num}}</span>
|
||||
<span class="likes">喜欢:{{item.likes}}</span>
|
||||
<span class="collections">收藏:{{item.collections}}</span>
|
||||
</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</van-cell>
|
||||
</van-list>
|
||||
</div>
|
||||
</van-pull-refresh>
|
||||
|
||||
|
||||
|
||||
<!-- 底部导航栏,多个组件都会用到,需要时直接引入 -->
|
||||
<bottomBar></bottomBar>
|
||||
@@ -63,13 +68,25 @@
|
||||
vanListLoading: false, // 加载状态
|
||||
finished: false, // 是否加载
|
||||
finishedText: '', // 加载完成后的提示文案
|
||||
scrollTop:0
|
||||
scrollTop:0,
|
||||
|
||||
isLoading: false,
|
||||
};
|
||||
},
|
||||
components: {
|
||||
bottomBar
|
||||
},
|
||||
mounted () {
|
||||
window.addEventListener("scroll", this.handleScroll, true);
|
||||
},
|
||||
methods: {
|
||||
onRefresh() {
|
||||
setTimeout(() => {
|
||||
this.isLoading = false;
|
||||
this.$store.commit('clearList', "hotList")
|
||||
this.getList()
|
||||
}, 1000);
|
||||
},
|
||||
getList() {
|
||||
let url = '/recsys/hot_list?' + 'user_id=' + this.$store.state.user.username
|
||||
this.axios.get(url).then(res => {
|
||||
@@ -90,7 +107,7 @@
|
||||
},
|
||||
toHot() {
|
||||
this.$router.push('/hotLists')
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
// 当组件在 <keep-alive> 内被切换,activated 会被对应执行
|
||||
|
||||
@@ -24,30 +24,33 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="lists" ref="lists">
|
||||
<van-list v-model="vanListLoading" :finished="finished" :finished-text="finishedText" @load="onLoad" :offset=300>
|
||||
<!-- 循环$store.state.hotList内的每一个item并显示 -->
|
||||
<van-cell v-for="(item) in $store.state.recList" :key="item.news_id">
|
||||
<!-- 路由地址传参,需要前面加:号,表示这个参数不是字符串 -->
|
||||
<router-link :to="{name:'NewsInfo' ,params:{id:item.news_id,likes:item.likes,collections:item.collections,cate:item.cate}}">
|
||||
<div>
|
||||
<p>
|
||||
<span class="cate">{{item.cate}}</span>
|
||||
<span class='title'>{{ item.title }}</span>
|
||||
</p>
|
||||
|
||||
<p class="discribe">
|
||||
<span class="ctime">{{ item.ctime}} </span>
|
||||
<span class="read_num">阅读:{{item.read_num}}</span>
|
||||
<span class="likes">喜欢:{{item.likes}}</span>
|
||||
<span class="collections">收藏:{{item.collections}}</span>
|
||||
</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</van-cell>
|
||||
</van-list>
|
||||
</div>
|
||||
|
||||
<van-pull-refresh v-model="isLoading" @refresh="onRefresh">
|
||||
<div class="lists" ref="lists">
|
||||
<van-list v-model="vanListLoading" :finished="finished" :finished-text="finishedText" @load="onLoad" :offset=300>
|
||||
<!-- 循环$store.state.hotList内的每一个item并显示 -->
|
||||
<van-cell v-for="(item,i) in $store.state.recList" :key="i">
|
||||
<!-- 路由地址传参,需要前面加:号,表示这个参数不是字符串 -->
|
||||
<router-link :to="{name:'NewsInfo' ,params:{id:item.news_id,likes:item.likes,collections:item.collections,cate:item.cate}}">
|
||||
<div>
|
||||
<p>
|
||||
<span class="cate">{{item.cate}}</span>
|
||||
<span class='title'>{{ item.title }}</span>
|
||||
</p>
|
||||
|
||||
<p class="discribe">
|
||||
<span class="ctime">{{ item.ctime}} </span>
|
||||
<span class="read_num">阅读:{{item.read_num}}</span>
|
||||
<span class="likes">喜欢:{{item.likes}}</span>
|
||||
<span class="collections">收藏:{{item.collections}}</span>
|
||||
</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</van-cell>
|
||||
</van-list>
|
||||
</div>
|
||||
</van-pull-refresh>
|
||||
|
||||
<!-- 底部导航栏,多个组件都会用到,需要时直接引入 -->
|
||||
<bottomBar></bottomBar>
|
||||
|
||||
@@ -65,12 +68,20 @@
|
||||
finished: false, // 是否加载
|
||||
finishedText: '', // 加载完成后的提示文案
|
||||
scrollTop:0,
|
||||
isLoading: false,
|
||||
};
|
||||
},
|
||||
components: {
|
||||
bottomBar
|
||||
},
|
||||
methods: {
|
||||
onRefresh() {
|
||||
setTimeout(() => {
|
||||
this.isLoading = false;
|
||||
this.$store.commit('clearList', "hotList")
|
||||
this.getList()
|
||||
}, 1000);
|
||||
},
|
||||
getList() {
|
||||
var url;
|
||||
if(this.$store.state.type == 'signIn'){
|
||||
|
||||
@@ -52,6 +52,8 @@
|
||||
|
||||
this.axios.post(url, res).then(resource => {
|
||||
if (resource.data.code === 200) {
|
||||
console.log('success');
|
||||
|
||||
let loginInfo = {
|
||||
LoginName: res.username,
|
||||
openId: "asfafsfsfsdfsdfsdfdsf"
|
||||
@@ -67,8 +69,24 @@
|
||||
|
||||
this.$store.state.type = 'signIn'
|
||||
this.$store.state.user.username = res.username
|
||||
this.$router.push({name:'recLists' ,params:{type:'signIn',username:this.model.username}})
|
||||
|
||||
|
||||
const toast = Toast({
|
||||
message: '登陆成功',
|
||||
icon:'success'
|
||||
});
|
||||
|
||||
let second = 1;
|
||||
// 延迟一秒执行
|
||||
const timer = setInterval(() => {
|
||||
second--;
|
||||
if (!second) {
|
||||
clearInterval(timer);
|
||||
// 手动清除 Toast
|
||||
Toast.clear();
|
||||
this.$router.push({name:'recLists' ,params:{type:'signIn',username:this.model.username}})
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
}if(resource.data.code === 500){
|
||||
Toast('登陆失败')
|
||||
}if(resource.data.code === 501){
|
||||
|
||||
@@ -15,6 +15,7 @@ import store from './store';
|
||||
import axios from 'axios'
|
||||
import VueAxios from 'vue-axios'
|
||||
Vue.use(VueAxios, axios);
|
||||
|
||||
// axios公共基路径,以后所有的请求都会在前面加上这个路径
|
||||
axios.defaults.baseURL = "http://47.108.56.188:3000";
|
||||
// 设置表单提交方式,默认是 json
|
||||
@@ -59,6 +60,7 @@ Vue.use(List);
|
||||
import { Cell } from 'vant'
|
||||
Vue.use(Cell)
|
||||
import { PullRefresh } from 'vant'
|
||||
import 'vant/lib/pull-refresh/style';
|
||||
Vue.use(PullRefresh)
|
||||
import { Tabbar, TabbarItem } from 'vant';
|
||||
import 'vant/lib/tabbar/style'
|
||||
@@ -71,7 +73,8 @@ Vue.use(NavBar);
|
||||
import { Button } from 'vant';
|
||||
import 'vant/lib/button/style'
|
||||
Vue.use(Button);
|
||||
import 'vant/lib/toast/style'
|
||||
import 'vant/lib/toast/style';
|
||||
|
||||
|
||||
|
||||
Vue.config.devtools = false; //生产环境中需要设置为false
|
||||
|
||||
@@ -15,6 +15,15 @@ export default new Vuex.Store({
|
||||
hotList: [], //热门页的新闻列表
|
||||
},
|
||||
mutations: {
|
||||
// 清空列表 在刷新时调用 重新给列表赋值
|
||||
clearList(state, payload){
|
||||
if(payload == "recList"){
|
||||
state.recList = []
|
||||
}else if(payload == "hotList"){
|
||||
state.hotList = []
|
||||
}
|
||||
},
|
||||
|
||||
//点进新闻详情页时触发,让阅读次数增加
|
||||
numChange(state, payload) {
|
||||
let reg = /NewsInfo\//
|
||||
|
||||
Reference in New Issue
Block a user