<template> <view> <image src="../../static/images/my.png" mode="widthFix" class="top"></image> <view class="cmain"> <view class="vsearch"> <view class="vse"> <u-search placeholder="搜索资讯" v-model="keyword" @search="search" :actionStyle="{ color: 'white' }" :animation="true" actionText="取消"></u-search> </view> <view class="icon" @click="message()"></view> <view class="bage" v-if="count > 0"></view> </view> <!--轮播图--> <u-swiper circular :radius="5" :indicator="true" keyName="image" :list="bannerList" :height="110" class="uni-swiper" @click="click"></u-swiper> <!--通知公告--> <view class="notice"> <u-notice-bar color="#848484" :text="noticeList" :step="true" direction="column" mode="link" bgColor="white" speed="300" url="/pages/news/list"></u-notice-bar> </view> <!--菜单--> <view class="menu"> <view class="msn" v-for="(item, index) in menuList" :key="index" @click="navTo(item.path)"> <view class="out"> <view class="int"> <image :src="item.icon" mode="widthFix" style="max-width: 54px; max-height: 52px; object-fit: contain;"></image> <view class="tit">{{ item.menuName }}</view> </view> </view> </view> <view class="clear"></view> </view> <!--最新资讯--> <view class="news"> <view class="vlabel"> <view class="tag"></view> <text class="title">最新资讯</text> <text class="more" @click="navTo('/pages/news/list')"> <text>更多</text> <text class="icon"></text> </text> </view> <view class="list animated fadeInDown"> <view class="news_item" v-for="(item, index) in newsList" :key="index" @click="go('/pages/news/detail?id=' + item.id)"> <image :src="item.cover" mode="aspectFill" class="img" v-if="item.cover"></image> <view class="con"> <view class="title ellip">{{ item.title }}</view> <view class="source omit"> <text class="icon"></text> <text>{{ item.readCount }}</text> </view> <view class="releaseTime">{{item.releaseTime}}</view> </view> </view> </view> </view> </view> <u-popup :show="show" @close="close()" round="15" mode="center" :closeable="false" :closeOnClickOverlay="false" :customStyle="{ width: '90%' }"> <view class="ppopup"> <u-divider text="交易订单提醒" textSize="16"></u-divider> <view class="contents"> <view class="item omit"> <text class="label">商品名称:</text> <text class="desc">{{ order.goodsNames }}</text> </view> <view class="item omit"> <text class="label">数量:</text> <text class="desc">{{ order.totalWeight }}</text> </view> <view class="item omit"> <text class="label">金额:</text> <text class="desc">¥ {{ order.totalPrice }}</text> </view> </view> <button class="btn" @click="confirm()">去处理</button> </view> </u-popup> <u-popup :show="faceRegister" @close="close()" round="15" mode="center" :closeable="false" :closeOnClickOverlay="false" :customStyle="{ width: '90%' }"> <view class="reflush" @click="checkFace">刷新</view> <view class="ppopup"> <u-divider text="人脸录入" textSize="16"></u-divider> <view class="contents"> <view class="item omit"> <text class="label">边民信息:</text> <text class="desc">{{ user.name }}({{ user.phone }})</text> </view> <view style="text-indent: 2rem;line-height: 60rpx;"> 根据相关规定,边民进行互市贸易需要确保为本人实际操作,为了确保后续交易的合规合法化,需要您先录入人脸!</view> </view> <button class="btn" @click="go('/pages/face/faceRegister')">马上录入</button> </view> </u-popup> <u-popup :show="purchaser" round="15" mode="center" :closeable="false" :closeOnClickOverlay="false" :customStyle="{ width: '90%' }"> <view class="reflush" @click="getTbPurchaserAuth()">刷新</view> <view class="ppopup"> <u-divider text="提醒" textSize="16"></u-divider> <view class="contents"> <view style="text-indent: 2rem;line-height: 60rpx;"> 您的资料不完善或正在审核中,请前往补充或者等待管理员审核!</view> </view> <button class="btn" @click="go('/pages/authentication/index')">前往查看</button> </view> </u-popup> <u-popup :show="update.visible" round="15" mode="center" :closeable="false" :closeOnClickOverlay="false" :customStyle="{ width: '90%' }"> <view class="ppopup"> <u-divider text="有新版本更新!" textSize="16"></u-divider> <view class="contents"> <view style="text-indent: 2rem;line-height: 60rpx;"> 更新内容:{{update.content}} </view> <view style="text-indent: 2rem;line-height: 60rpx;"> 当前版本号:{{update.currentVersion}} </view> <view style="text-indent: 2rem;line-height: 60rpx;"> 新版本号:{{update.version}} </view> </view> <button class="btn" @click="updateApk">立即更新</button> </view> </u-popup> </view> </template> <script> export default { data() { return { keyword: '', bannerList: [], newsList: [], noticeList: [], roleMenu: [], menuList: [], count: 0, show: false, order: {}, user: {}, faceRegister: false, cooper_entrust: 2, purchaser: false, update: { visible: false, currentVersion: '', version: '', content: '', url: '' } }; }, onLoad() { uni.hideLoading() this.getBannerList(); this.getNewsList(); this.getMenu(); uni.$on('getMenu', res => { this.getMenu(); }); }, onShow() { this.keyword = ''; let user = uni.getStorageSync('info'); this.user = user; this.checkFace() this.getRead(); this.getUpdateInfo(); }, methods: { getUpdateInfo() { let currentVersion = uni.getAppBaseInfo().appVersion; this.update.visible=false; this.http.request({ url: '/sp-admin/app/updateInfo', loading: 'false', success: resp => { if(resp.data.data){ let version = resp.data.data.version; this.update = { visible: currentVersion != version, currentVersion: currentVersion, content: resp.data.data.content, version: version, url: resp.data.data.url }; } } }) }, updateApk() { plus.runtime.openURL(this.update.url) return; var dtask = plus.downloader.createDownload( this.update.url, { force: true }, (d, status) => { if (status == 200) { console.log("下载成功安装: " + d.filename); plus.runtime.install(d.filename) } else { plus.nativeUI.alert("安装失败,请稍候重试: " + status) } }); dtask.start(); }, close() { this.show = false; }, checkFace() { let user = this.user; this.faceRegister = false; if ((user.userType == 1 || user.userType == 2)) { this.http.request({ url:'/sp-admin/app/AppUser/getAuth', success:resp=>{ let res=resp.data.data; this.user.name=res.name; this.user.phone=res.phone; this.user.face=res.face; this.faceRegister=res.face==0; if(res.face==1){ this.getOrderConfirm(); } } }) return; } else if (user.userType == 3) { this.getTbPurchaserAuth() } }, go(url) { uni.navigateTo({ url: url }); }, getTbPurchaserAuth() { this.purchaser = false; this.http.request({ url: '/level-two-server/app/TbPurchaser/info', loading: 'false', success: res => { let resp = res.data; if (!resp.data || resp.data.judgeStatus == 2) { this.purchaser = true; return; } } }) }, //获取待处理的订单弹出 getOrderConfirm() { let user = this.getUser(); if (user.userType > 2) { return; } // 是否校验互助委托书【1校验 2不校验】 this.http.request({ url: '/sp-admin/SpCfg/cooper', method: 'POST', data: { cfgName: 'cooper_entrust_cfg' }, success: res => { this.cooper_entrust = JSON.parse(res.data.data).cooper_entrust this.http.request({ url: '/level-one-server/app/TbOrder/getNoConfirmOrder', data: { cooper_entrust: this.cooper_entrust }, loading: 'false', success: res => { if (res.data.data) { this.order = res.data.data; this.show = true; } } }); } }) }, confirm() { if (this.order.declareType == '1') { uni.navigateTo({ url: '/pages/market/one/leader/handle?orderId=' + this.order.id + '&peopleConfirmStatus=' + this.order.peopleConfirmStatus + '&applyConfirmStatus=' + this.order.applyConfirmStatus }); } else { uni.navigateTo({ url: '/pages/market/one/leader/handleThree?orderId=' + this.order.id + '&peopleConfirmStatus=' + this.order.peopleConfirmStatus + '&cooperEntrustStatus=' + this.order.cooperEntrustStatus + '&applyConfirmStatus=' + this.order.applyConfirmStatus }); } this.show = false; }, getRead() { this.http.request({ url: '/sp-admin/app/TbMessage/getRead', loading: 'false', success: res => { if (res.data.data.count > 0) { this.count = res.data.data.count; uni.setTabBarBadge({ index: 1, text: res.data.data.count }); } else { this.count = 0; } } }); }, getBannerList() { this.http.request({ url: '/level-one-server/app/TbBanner/getList', success: res => { this.bannerList = res.data.data; } }); }, getMenu() { this.menuList = []; let menu = uni.getStorageSync('menu'); this.http.request({ url: '/sp-admin/app/AppMenu/getList', data: { pageNo: 1, pageSize: 50 }, success: res => { let data = res.data.data; menu.map((item2, index1) => { data.map((item1, index) => { if (parseInt(item1.id) == parseInt(item2)) { item1.icon = item1.icon this.menuList.push(item1); } }); }); this.menuList.sort((a, b) => a.sort - b.sort); } }); }, getNewsList() { this.http.request({ url: '/level-one-server/app/TbPortNews/getNewestList', data: { limit: 3 }, success: res => { let list = res.data.data; this.newsList = res.data.data; this.noticeList = list?list.map(obj => obj.title):[]; } }); }, getUserWallet() { if(this.user.userType===1){ this.http.request({ url: '/level-one-server/app/TbPeople/getById', data: { id: this.user.fkId }, success: res => { this.user.wallet = res.data.data.wallet; uni.setStorageSync('info', this.user); } }); } }, //点击轮播图 click(index) { let item = this.bannerList[index]; let url = item.url; if (url) { // #ifdef APP-PLUS plus.runtime.openURL(url) //这里默认使用外部浏览器打开而不是内部web-view组件打开 // #endif // #ifdef H5 window.open(url) // #endif } }, message() { uni.switchTab({ url: '/pages/message/message' }); }, search() { uni.navigateTo({ url: '/pages/news/list?keyword=' + this.keyword }); }, navTo(url) { //收购商需要认证才给访问 if (this.getUser().userType == 3 && !this.hasAuth()) { uni.navigateTo({ url: '/pages/authentication/index' }); return; } console.log(url); uni.navigateTo({ url: url, fail: res => { uni.showModal({ content: '功能还在开发中', showCancel: false }); } }); }, go(url) { uni.navigateTo({ url: url }); } }, //下拉刷新 onPullDownRefresh() { setTimeout(() => { uni.stopPullDownRefresh(); this.getMenu(); }, 1000); } }; </script> <style lang="scss"> page { background-color: $pg; } .top { width: 100%; position: relative; } .cmain { padding: 10px 15px 10px 15px; margin-top: -183px; position: relative; .vsearch { margin-bottom: 13px; position: relative; .vse { width: 82% !important; } .icon { position: absolute; right: 0px; top: 0px; color: white; font-size: 25px; top: 5px; } .bage { width: 8px; height: 8px; border-radius: 50%; background-color: #f44336; top: 0px; right: 0px; position: absolute; } } .uni-swiper { box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); } .notice { margin-top: 10px; border-radius: 5px !important; overflow: hidden; } .news { margin-top: 15px; } } .reflush { width: 60rpx; height: 60rpx; float: right; position: absolute; right: 20rpx; padding: 20rpx; font-size: 24rpx; } .ppopup { padding: 50rpx 30rpx; .item { padding: 5px 0px 5px 0px; color: $font-c; .label { width: 70px; float: left; text-align: left; padding-right: 10px; font-weight: bold; } } } </style>