main
liudan 1 year ago
parent edbeaa9fdd
commit afa706960a
  1. 39
      .hbuilderx/launch.json
  2. 2
      common/api.js
  3. 3
      common/auth.js
  4. 213
      pages/detail/detail.vue
  5. 308
      pages/detail/detail1.vue
  6. 7
      pages/index/index.vue
  7. 76
      pages/index/searchPage.vue
  8. 1
      pages/login/login.vue
  9. 11
      pages/my/collection.vue
  10. 11
      pages/my/look.vue
  11. 8
      pages/my/my.vue
  12. 11
      pages/my/share.vue
  13. 1
      store/index.js

@ -1,20 +1,23 @@
{ // launch.json configurations app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtypelocalremote, localremote
"version": "0.0",
"configurations": [{
"app-plus" :
{
"launchtype" : "local"
},
"default" :
{
"launchtype" : "local"
},
"mp-weixin" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
{
// launch.json configurations app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtypelocalremote, localremote
"version" : "0.0",
"configurations" : [
{
"app-plus" : {
"launchtype" : "local"
},
"default" : {
"launchtype" : "local"
},
"mp-weixin" : {
"launchtype" : "local"
},
"type" : "uniCloud"
},
{
"playground" : "standard",
"type" : "uni-app:app-android"
}
]
}

@ -40,6 +40,8 @@ export const addShare = (params, config = {}) => http.post('/wx_article_share/ad
export const logout = (params, config = {custom: { auth: true }}) => http.post('/user/logout', params, config);
//文章列表
export const articalList = (params, config = {}) => http.post('/wx_article/index', params, config);
//获取菜单下栏目
export const getNavList = (params, config = {}) => http.get('/wx_menu/nav', {params}, config);

@ -44,7 +44,8 @@ export function getUserInfo() {
* 删除用户相关缓存信息
*/
export function removeAll() {
uni.removeStorageSync(USER_TOKEN)
uni.clearStorageSync()
uni.removeStorage(USER_TOKEN)
uni.removeStorageSync(USER_INFO)
}

@ -1,42 +1,65 @@
<template>
<view class="details">
<view class="status_bar"><!-- 这里是状态栏 --></view>
<u-navbar height="50" :autoBack="true">
<view
class="u-nav-slot"
slot="left"
>
<u-icon
name="arrow-left"
size="19"
></u-icon>
<view class="title">
详情
<view class="topContent">
<!-- 这里是状态栏 -->
<view class="status_bar"></view>
<u-navbar height="50" :autoBack="true" :bgColor="'transparent'">
<view
class="u-nav-slot"
slot="left"
@click="backHandle"
>
<u-icon
name="arrow-left"
size="19"
color="#ffffff"
></u-icon>
<view class="title" style="background: transparent;color:#ffffff">
详情
</view>
</view>
</u-navbar>
<image :src="baseUrl+titleInfo.listimage" class="listImage" mode="aspectFill"></image>
<view class="schoolItem">
<image :src="logo" class="logo" mode="aspectFill"></image>
<view class="textContentInfo">
<view class="itemTitle">{{titleInfo.title}}</view>
<view class="itemSubTitle">{{titleInfo.sectitle}}</view>
</view>
<view class="tagListContent">
<view class="tagItem" v-for="(item,index) in tagList" :key="index" @click="getArticleText(item,index)">
<image :src="item.icon" class="tagImage" mode="aspectFill"></image>
<text :class="index==activeIndex?'activeText':''">{{item.name}}</text>
</view>
</view>
</view>
</u-navbar>
<view class="detailContent">
<view class="detailTitle">
{{titleInfo.title}}
</view>
<view class="tools">
<view class="time">
{{titleInfo.updatetime}}
<view class="detailContent">
<view class="detailTitle">
{{activeText}}
</view>
<view class="toolItem">
<view class="" @click="addCollect">
<image src="/static/m1.png" mode="widthFix" v-if="!isCollect"></image>
<image src="/static/collected.png" mode="widthFix" v-else></image>
<text>收藏</text>
<view class="tools">
<view class="time">
{{titleInfo.updatetime}}
</view>
<view class="" @click="addShare">
<image src="/static/m3.png" mode="widthFix"></image>
<text>分享</text>
<view class="toolItem">
<view class="" @click="addCollect">
<image src="/static/m1.png" mode="widthFix" v-if="!isCollect"></image>
<image src="/static/collected.png" mode="widthFix" v-else></image>
<text>收藏</text>
</view>
<view class="" @click="addShare">
<image src="/static/m3.png" mode="widthFix"></image>
<text>分享</text>
</view>
</view>
</view>
<u-parse :content="titleInfo.content"></u-parse>
</view>
<u-parse :content="titleInfo.content"></u-parse>
</view>
<!-- -->
<view class="bottomContent" v-if="showBottom">
<view class="left">
<image src="../../static/lxwx.png" mode="widthFix"></image>
@ -51,26 +74,47 @@
</template>
<script>
import {downloadApp,articleDetails,addCollect,addShare} from '@/common/api.js'
import {downloadApp,articleDetails,addCollect,addShare,getNavList} from '@/common/api.js'
export default {
data() {
return {
showBottom:false,
titleInfo:{},
id:null,
isCollect:false
isCollect:false,
menu_id:null,
tagList:[],
logo:null,
activeIndex:0,
activeText:''
};
},
onLoad(option) {
this.id = option.id
this.id = option.id;
this.menu_id = option.menu_id;
this.logo = option.logo
this.$store.commit('shareHandle',this.$mp.page.route+'?id='+this.$mp.page.options.id)
this.articleDetails()
this.getNavList()
// H5:
// #ifndef APP-PLUS
this.showBottom = true
// #endif
},
methods:{
//
getNavList(){
getNavList({menu_id:this.menu_id}).then(res=>{
console.log(res);
this.tagList = res;
this.activeText = this.tagList[0].name
this.articleDetails(this.tagList[0].id)
})
},
backHandle(){
console.log("999")
uni.navigateBack({delta: 1})
},
downloadAppHandle(){
downloadApp().then(res=>{
let u = navigator.userAgent
@ -86,6 +130,7 @@
})
},
addCollect(){
let params={
wx_article_id:this.titleInfo.id,
wx_category_id:this.titleInfo.wx_category_id
@ -166,7 +211,7 @@
// console.log(res,"iiiii")
// })
},
articleDetails(){
articleDetails(navId){
// let params={ids:this.id}
// uni.$u.http.post('http://lxwx.njrenzhou.cn/api/wx_article_collect/add',
// params,
@ -184,7 +229,7 @@
// })
// {custom: { auth: true }}
articleDetails({ids:this.id}).then(res=>{
articleDetails({ids:this.id,nav_id:navId}).then(res=>{
this.titleInfo = res;
if(res.is_collect==0){
this.isCollect = false
@ -203,6 +248,12 @@
let m = d.getMinutes();
let s = d.getSeconds();
return Y+'-'+M+'-'+D+' '+h+':'+m+':'+s;
},
getArticleText(val,index){
console.log(val,index)
this.activeIndex = index;
this.activeText = val.name
this.articleDetails(val.id)
}
}
}
@ -211,7 +262,84 @@
<style lang="scss" scoped>
.details{
min-height:calc(100vh);
background-color: #ffffff;
// background-color: #ffffff;
}
.topContent{
padding-bottom: 140upx;
position: relative;
.listImage{
width:100%;
// height:100%;
height:calc(60vh);
position: absolute;
top:0;
left:0;
}
.schoolItem{
position:relative;
z-index:10;
padding:0 24upx;
.logo{
border-radius: 50%;
width:160upx;
height:160upx;
margin-top:110upx;
}
.textContentInfo{
margin-top:10upx;
.itemTitle{
font-size: 30upx;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
}
.itemSubTitle{
font-size: 24upx;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
margin-top: 14upx;
}
}
.tagListContent{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.tagItem{
// width:25%;
display: flex;
flex: 0 0 24%;
flex-direction: column;
align-items: center;
justify-content: center;
margin-right: calc(4% / 3);
margin-bottom: calc(4% / 3);
margin-top:20upx;
&>image{
width:80upx;
height:80upx;
border-radius:50%;
}
&>text{
color:#ffffff;
font-size:24upx;
margin-top:10upx;
}
.activeText{
color:#0076F6 !important;
}
}
.tagItem:nth-child(4n){
margin-right: 0;
}
/* 使最后一个元素的边距填满剩余空间 */
.tagItem:last-child{
margin-right: auto;
}
}
}
}
.u-nav-slot{
display: flex;
@ -222,9 +350,16 @@
}
}
.detailContent{
margin-top:50px;
margin-bottom:120upx;
padding:38upx 25upx;
position: relative;
z-index:99;
background: #fff;
margin: 0 24upx;
margin-top:30upx;
// margin-bottom:140upx;
border-radius: 20upx;
.detailTitle{
font-size: 36upx;
font-weight: bold;
@ -273,7 +408,7 @@
padding: 0 24upx;
position:fixed;
bottom:0;
z-index:9;
z-index:100;
width:calc(100% - 48upx);
image{
width: 80upx;

@ -0,0 +1,308 @@
<template>
<view class="details">
<view class="status_bar"><!-- 这里是状态栏 --></view>
<u-navbar height="50" :autoBack="true">
<view
class="u-nav-slot"
slot="left"
>
<u-icon
name="arrow-left"
size="19"
></u-icon>
<view class="title">
详情
</view>
</view>
</u-navbar>
<view class="detailContent">
<view class="detailTitle">
{{titleInfo.title}}
</view>
<view class="tools">
<view class="time">
{{titleInfo.updatetime}}
</view>
<view class="toolItem">
<view class="" @click="addCollect">
<image src="/static/m1.png" mode="widthFix" v-if="!isCollect"></image>
<image src="/static/collected.png" mode="widthFix" v-else></image>
<text>收藏</text>
</view>
<view class="" @click="addShare">
<image src="/static/m3.png" mode="widthFix"></image>
<text>分享</text>
</view>
</view>
</view>
<u-parse :content="titleInfo.content"></u-parse>
</view>
<view class="bottomContent" v-if="showBottom">
<view class="left">
<image src="../../static/lxwx.png" mode="widthFix"></image>
<text>APP下载</text>
</view>
<view class="btn" @click="downloadAppHandle">
下载
</view>
</view>
<u-toast ref="uToast"></u-toast>
</view>
</template>
<script>
import {downloadApp,articleDetails,addCollect,addShare} from '@/common/api.js'
export default {
data() {
return {
showBottom:false,
titleInfo:{},
id:null,
isCollect:false
};
},
onLoad(option) {
this.id = option.id
this.$store.commit('shareHandle',this.$mp.page.route+'?id='+this.$mp.page.options.id)
this.articleDetails()
// H5:
// #ifndef APP-PLUS
this.showBottom = true
// #endif
},
methods:{
downloadAppHandle(){
downloadApp().then(res=>{
let u = navigator.userAgent
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; // Android
let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // iOS
if(isAndroid){
window.location.href = res.android
}
if(isIOS){
window.location.href = res.ios
}
console.log(res)
})
},
addCollect(){
let params={
wx_article_id:this.titleInfo.id,
wx_category_id:this.titleInfo.wx_category_id
}
uni.$u.http.post('http://lxwx.njrenzhou.cn/api/wx_article_collect/add',
params,
{
header: {
'Content-Type': 'application/x-www-form-urlencoded',
'token':uni.getStorageSync('userInfo').token
},
}).then((res) => {
this.$refs.uToast.show({
message:"收藏成功"
})
this.isCollect = true
}).catch((res) =>{
})
},
addShare(){
if(!uni.getStorageSync('userInfo')){
uni.showToast({
title:'请登录后操作',
icon:'none'
});
uni.navigateTo({
url:"/pages/login/login"
})
return;
}
let routes = this.$mp.page.route
let that = this;
// ifdef APP
uni.share({
provider:'weixin',//weixin|qq|sinaweibo
type:0,//
scene:'WXSceneSession',//provider weixin WXSceneSessionWXSceneTimelineWXSceneFavorite
title:this.titleInfo.title,//
summary:this.titleInfo.title,//
href:`http://lxwx.h5.njrenzhou.cn/#/${routes}?id=${this.titleInfo.wx_category_id}`,//type 0
imageUrl:`http://lxwx.njrenzhou.cn${this.titleInfo.listimage}`,//type 025
success(res) {
//
let params={
wx_article_id:that.titleInfo.id,
wx_category_id:that.titleInfo.wx_category_id
}
uni.$u.http.post('http://lxwx.njrenzhou.cn/api/wx_article_share/add',
params,
{
header: {
'Content-Type': 'application/x-www-form-urlencoded',
'token':uni.getStorageSync('userInfo').token
},
}).then((res) => {
that.$store.commit('shareHandle',this.$mp.page.route+'?id='+this.$mp.page.options.id)
that.$refs.uToast.show({
message:"分享成功"
})
}).catch((res) =>{
})
},
fail(err) {
//
console.log(err);
}
})
// endif
// let params={
// wx_article_id:this.titleInfo.id,
// wx_category_id:this.titleInfo.wx_category_id
// }
// addShare(params,{ custom: { auth: true }}).then(res=>{
// console.log(res,"iiiii")
// })
},
articleDetails(){
// let params={ids:this.id}
// uni.$u.http.post('http://lxwx.njrenzhou.cn/api/wx_article_collect/add',
// params,
// {
// header: {
// 'Content-Type': 'application/x-www-form-urlencoded',
// 'token':uni.getStorageSync('userInfo').token
// },
// }).then((res) => {
// this.$refs.uToast.show({
// message:""
// })
// this.isCollect = true
// }).catch((res) =>{
// })
// {custom: { auth: true }}
articleDetails({ids:this.id,nav_id:0}).then(res=>{
this.titleInfo = res;
if(res.is_collect==0){
this.isCollect = false
}else{
this.isCollect = true;
}
this.titleInfo.updatetime = this.getFormatDate(this.titleInfo.updatetime)
})
},
getFormatDate(time) {
let d = new Date(time*1000);
let Y = d.getFullYear();
let M = d.getMonth() + 1; // 0-11+1
let D = d.getDate();
let h = d.getHours();
let m = d.getMinutes();
let s = d.getSeconds();
return Y+'-'+M+'-'+D+' '+h+':'+m+':'+s;
}
}
}
</script>
<style lang="scss" scoped>
.details{
min-height:calc(100vh);
background-color: #ffffff;
}
.u-nav-slot{
display: flex;
align-items: center;
.title{
font-size: 36upx;
color: #222222;
}
}
.detailContent{
margin-top:50px;
margin-bottom:120upx;
padding:38upx 25upx;
.detailTitle{
font-size: 36upx;
font-weight: bold;
color: #333333;
line-height: 54upx;
}
.tools{
display: flex;
align-items: center;
margin:27upx 0;
.time{
font-size: 24upx;
font-weight: 500;
color: #999999;
flex:1;
}
.toolItem{
flex:1;
display: flex;
justify-content: space-around;
&>view{
display: flex;
align-items: center;
}
image{
width:35upx;
height:auto;
}
text{
font-size: 24upx;
color: #333333;
margin-left:13upx;
}
}
}
}
.bottomContent{
height: 100upx;
background: #FFFFFF;
border: 1px solid #EAEAEA;
box-shadow: 0px 4px 13px 0px rgba(17,21,38,0.14);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 24upx;
position:fixed;
bottom:0;
z-index:9;
width:calc(100% - 48upx);
image{
width: 80upx;
height: 80upx;
background: #0076F6;
border-radius: 20upx;
}
text{
font-size: 30upx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
margin-left:20upx;
}
.left{
display: flex;
align-items: center;
}
.btn{
padding:19upx 57upx;
border-radius: 30upx;
background: #0076F6;
// opacity: 0.4;
text-align: center;
font-size: 24upx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
}
}
</style>

@ -33,7 +33,7 @@
<view class="msgContent">
<view class="msgItem" v-for="(item,index) in msgList" :key="index" @click="godetails(item)">
<view class="left">
<image :src="baseUrl+item.listimage" mode="widthFix"></image>
<image :src="baseUrl+item.listimage" mode="aspectFill"></image>
</view>
<view class="right">
<u--text :lines="2" color="#222222" :bold="true" :text="item.title"></u--text>
@ -88,6 +88,7 @@
// #endif
},
click(name) {
console.log(name)
uni.navigateTo({
url:'/pages/index/searchPage?id='+name.id+'&typedata='+name.typedata
})
@ -98,9 +99,10 @@
})
},
godetails(item){
console.log(item,"000")
uni.navigateTo({
// url:'/pages/detail/detail?id='+item.id
url:'/pages/detail/detail?id='+item.wx_category_id
url:'/pages/detail/detail?id='+item.wx_category_id+'&menu_id='+item.wxcategory.wx_menu_id+'&logo='+item.wxcategory.logo
})
},
getFormatDate(time) {
@ -208,6 +210,7 @@
overflow: hidden;
&>image{
width:100%;
height:100%;
}
}
.right{

@ -60,10 +60,10 @@
<view v-if="contentList.length>0" :class="noSearch?'nosearchListContent marginTop':'nosearchListContent'">
<view class="firstItem" v-for="item in contentList"
:key="item.id" @click="goNextSection(item)">
<image src="../../static/xiaohui.png" mode=""></image>
<image :src="item.logo" mode=""></image>
<view class="schoolInfo">
<view class="schoolName">{{item.name}}</view>
<view class="schoolSubName">Massachusetts Institute of Technology</view>
<!-- <view class="schoolSubName">Massachusetts Institute of Technology</view> -->
<view class="schoolSubName">{{item.subName}}</view>
</view>
</view>
@ -115,14 +115,16 @@ export default{
methods:{
getContent(val){
this.catagoryName = val;
this.page=1
this.page=1;
this.contentList = []
this.getListData(this.catagoryId)
},
searchHandle(){
this.page=1
this.page=1;
this.contentList = []
this.getListData(this.catagoryId)
},
getListData(id){
getListData(id,isAdd){
let params={
wx_menu_id:id,
typedata:this.typedata,
@ -141,40 +143,13 @@ export default{
}).then(res=>{
if(res.searchList.length==0){
this.noSearch = true;
this.contentList = res.rows
}else{
this.tagList = res.searchList
this.noSearch = false;
this.contentList = res.rows;
this.originListRow = res.rows;
this.total = res.total;
this.contentList.forEach(item=>{
let subobj = res.searchList.filter(i=>{
return item.wx_category_id==i.id
})
this.$set(item,'subName',subobj[0].name)
})
}
})
},
getListData1(id){
let params={
wx_menu_id:id,
typedata:this.typedata,
name:this.catagoryName,
page:this.page,
limit:this.limit,
wx_category_id:this.wx_category_id
}
listData(params).then(res=>{
if(res.searchList.length==0){
this.noSearch = true;
this.contentList = res.rows
this.contentList.push(...res.rows)
}else{
this.tagList = res.searchList
this.noSearch = false;
this.contentList.push(...res.rows);
this.originListRow = res.rows;
this.total = res.total;
this.contentList.forEach(item=>{
let subobj = res.searchList.filter(i=>{
return item.wx_category_id==i.id
@ -184,8 +159,36 @@ export default{
}
})
},
// getListData1(id){
// let params={
// wx_menu_id:id,
// typedata:this.typedata,
// name:this.catagoryName,
// page:this.page,
// limit:this.limit,
// wx_category_id:this.wx_category_id
// }
// listData(params).then(res=>{
// if(res.searchList.length==0){
// this.noSearch = true;
// this.contentList = res.rows
// }else{
// this.tagList = res.searchList
// this.noSearch = false;
// this.contentList.push(...res.rows);
// this.originListRow = res.rows;
// this.contentList.forEach(item=>{
// let subobj = res.searchList.filter(i=>{
// return item.wx_category_id==i.id
// })
// this.$set(item,'subName',subobj[0].name)
// })
// }
// })
// },
clickSearchItem(item,index){
console.log(item,index,"--==")
this.contentList = []
this.page = 1
if(this.active==index){
this.options[0].header = '国家地区选择'
@ -218,8 +221,9 @@ export default{
},
goNextSection(item){
console.log(item,"iii")
uni.navigateTo({
url:'/pages/detail/detail?id='+item.id
url:'/pages/detail/detail?id='+item.id+'&menu_id='+this.catagoryId+'&logo='+item.logo
// url:'/pages/detail/detail?id='+item.wx_category_id
})
}
@ -228,7 +232,7 @@ export default{
console.log('已触底');
if(this.contentList.length<this.total){
this.page++;
this.getListData1(this.catagoryId)
this.getListData(this.catagoryId)
}else{
return;
}

@ -44,6 +44,7 @@
},
onShow() {
let info = JSON.parse(JSON.stringify(uni.getStorageSync('userInfo')))
console.log(info,"000")
if(info){
uni.switchTab({
url:'/pages/index/index'

@ -17,6 +17,7 @@
</u-navbar>
<view class="editInfoContent" v-if="list.length>0">
<view class="lookItem" @click="godetails(item)" v-for="(item,index) in list" :key="index">
<image :src="item.wxcategory.logo" mode=""></image>
{{item.wxcategory.name}}
</view>
</view>
@ -39,7 +40,7 @@ export default{
godetails(item){
uni.navigateTo({
// url:'/pages/detail/detail?id='+item.id
url:'/pages/detail/detail?id='+item.wx_category_id
url:'/pages/detail/detail?id='+item.wx_category_id+'&menu_id='+item.wxcategory.wx_menu_id+'&logo='+item.wxcategory.logo
})
},
collectRecord(){
@ -73,6 +74,14 @@ export default{
padding:29upx 22upx;
background-color: #ffffff;
margin-bottom:20upx;
display: flex;
align-items: center;
image{
width:120upx;
height:120upx;
border-radius:50%;
margin-right:20upx;
}
}
}
.empty{

@ -17,6 +17,7 @@
</u-navbar>
<view class="editInfoContent" v-if="list.length>0">
<view class="lookItem" @click="godetails(item)" v-for="(item,index) in list" :key="index">
<image :src="item.wxcategory.logo" mode=""></image>
{{item.wxcategory.name}}
</view>
</view>
@ -39,7 +40,7 @@ export default{
godetails(item){
uni.navigateTo({
// url:'/pages/detail/detail?id='+item.id
url:'/pages/detail/detail?id='+item.wx_category_id
url:'/pages/detail/detail?id='+item.wx_category_id+'&menu_id='+item.wxcategory.wx_menu_id+'&logo='+item.wxcategory.logo
})
},
shareRecord(){
@ -73,6 +74,14 @@ export default{
padding:29upx 22upx;
background-color: #ffffff;
margin-bottom:20upx;
display: flex;
align-items: center;
image{
width:120upx;
height:120upx;
border-radius:50%;
margin-right:20upx;
}
}
}
.empty{

@ -110,9 +110,15 @@
})
},
layoutHandle(){
uni.removeStorageSync('userInfo')
uni.removeStorage({
key: 'userInfo'
})
uni.clearStorageSync()
this.$store.commit('logout')
logout({ custom: { auth: true }}).then(res=>{
console.log("success")
this.$store.commit('logout')
uni.switchTab({
url:'/pages/index/index'
})

@ -17,6 +17,7 @@
</u-navbar>
<view class="editInfoContent" v-if="list.length>0">
<view class="lookItem" @click="godetails(item)" v-for="(item,index) in list" :key="index">
<image :src="item.wxcategory.logo" mode=""></image>
{{item.wxcategory.name}}
</view>
</view>
@ -39,7 +40,7 @@ export default{
godetails(item){
uni.navigateTo({
// url:'/pages/detail/detail?id='+item.id
url:'/pages/detail/detail?id='+item.wx_category_id
url:'/pages/detail/detail?id='+item.wx_category_id+'&menu_id='+item.wxcategory.wx_menu_id+'&logo='+item.wxcategory.logo
})
},
shareRecord(){
@ -73,6 +74,14 @@ export default{
padding:29upx 22upx;
background-color: #ffffff;
margin-bottom:20upx;
display: flex;
align-items: center;
image{
width:120upx;
height:120upx;
border-radius:50%;
margin-right:20upx;
}
}
}
.empty{

@ -27,6 +27,7 @@ const store = new Vuex.Store({
uni.removeStorage({
key: 'userInfo'
})
uni.clearStorageSync()
},
shareHandle(state,value){
state.share = value;

Loading…
Cancel
Save