Commit 569da69b authored by lizhan's avatar lizhan

📝 【TASK-20240806-01】TASK:APP我的积分静态页面完成

首页nav栏入口增加,我的积分页面完成,增加图片,增加icon组件
parent 003f471f
...@@ -267,6 +267,12 @@ ...@@ -267,6 +267,12 @@
"style": { "style": {
"navigationStyle": "custom" "navigationStyle": "custom"
} }
},
{
"path": "pages/integral/integral",
"style": {
"navigationStyle": "custom"
}
} }
], ],
"globalStyle": { "globalStyle": {
......
<template> <template>
<view class="main"> <view class="main">
<view class="hd-v"> <view class="hd-v">
<view class="start-bar"></view> <view class="start-bar"></view>
<view class="tabs"> <view class="tabs">
<view class="">{{$lang.lang.index.index}}</view> <view class="">{{ $lang.lang.index.index }}</view>
<view class="igs"> <view class="igs">
<view class="index_msg" @click="$request.goPage('../msg/msg')"> <view class="index_msg" @click="$request.goPage('../msg/msg')">
<image src="../../static/img/notice.png" mode=""></image> <image src="../../static/img/notice.png" mode=""></image>
...@@ -24,15 +23,20 @@ ...@@ -24,15 +23,20 @@
</view> </view>
</view> </view>
<view class="nvs"> <view class="nvs">
<!-- <view class="index_msg" v-for="(item, index) in nvs" @click="toPage(item.url)" :key="index">--> <!-- <view class="index_msg" v-for="(item, index) in nvs" @click="toPage(item.url)" :key="index">-->
<view class="index_msg" v-for="(item, index) in nvs" @click="toPage(item.url,item.isHttp)" :key="index"> <view
class="index_msg"
v-for="(item, index) in nvs"
@click="toPage(item.url, item.isHttp)"
:key="index"
>
<image :src="item.icon" mode=""></image> <image :src="item.icon" mode=""></image>
<view v-if="item.num>0" class="order_dian">{{item.num}}</view> <view v-if="item.num > 0" class="order_dian">{{ item.num }}</view>
<text>{{item.name}}</text> <text>{{ item.name }}</text>
</view> </view>
</view> </view>
<!-- 搜索 --> <!-- 搜索 -->
<!-- <view class="order-tabs"> <!-- <view class="order-tabs">
<view class="order-tabs-v2"> <view class="order-tabs-v2">
<view class="order-tabs-v2s"> <view class="order-tabs-v2s">
<image class="search" src="../../static/img/search.png" mode=""></image> <image class="search" src="../../static/img/search.png" mode=""></image>
...@@ -44,85 +48,99 @@ ...@@ -44,85 +48,99 @@
<view class="mssgv"> <view class="mssgv">
<view class="mssgv-v" @click="$request.goPage('../notice/notice')"> <view class="mssgv-v" @click="$request.goPage('../notice/notice')">
<view class="mssgv-v-1"> <view class="mssgv-v-1">
<text>{{$lang.lang.index.system}}</text> <text>{{ $lang.lang.index.system }}</text>
<text>{{$lang.lang.index.notice}}</text> <text>{{ $lang.lang.index.notice }}</text>
</view> </view>
<view class="notice"> <view class="notice">
<swiper class="swiper-nav" <swiper
class="swiper-nav"
:circular="true" :circular="true"
:vertical="true" :vertical="true"
:autoplay="true" :autoplay="true"
:interval="4000" :interval="4000"
:duration="1000" :duration="1000"
style="height:70px" style="height: 70px"
>
<swiper-item
style="display: table"
@touchmove.stop="stopTouchMove"
v-for="(item, index) in noticeData"
:key="index"
> >
<swiper-item style="display: table;" @touchmove.stop='stopTouchMove' v-for="(item,index) in noticeData" :key="index">
<view class="mssgv-v-2"> <view class="mssgv-v-2">
<view class="">{{$lang.locale=='zh'?item.titleZh:item.titleEn}}</view> <view class="">{{ $lang.locale == 'zh' ? item.titleZh : item.titleEn }}</view>
<view class=""> <view class="">
<image src="../../static/img/time.png" mode=""></image> <image src="../../static/img/time.png" mode=""></image>
<text>{{getDate(item.createTime)}}</text> <text>{{ getDate(item.createTime) }}</text>
</view> </view>
</view> </view>
<image class="rgt" src="../../static/img/rgt.png" mode="widthFix"></image> <image class="rgt" src="../../static/img/rgt.png" mode="widthFix"></image>
</swiper-item> </swiper-item>
</swiper> </swiper>
</view> </view>
</view> </view>
</view> </view>
<view class="actions"> <view class="actions">
<view class="title"> <view class="title">
<image src="../../static/img/dongtai.png" mode=""></image> <image src="../../static/img/dongtai.png" mode=""></image>
<text>{{$lang.lang.index.dynamic}}</text> <text>{{ $lang.lang.index.dynamic }}</text>
</view> </view>
<view class="act-list"> <view class="act-list">
<view v-if="orderData.length==0" class="noData"> <view v-if="orderData.length == 0" class="noData">
<image src="../../static/img/empty.png" mode="widthFix"></image> <image src="../../static/img/empty.png" mode="widthFix"></image>
<text>{{$lang.lang.notices.noData}}~</text> <text>{{ $lang.lang.notices.noData }}~</text>
</view> </view>
<view v-else class="item" v-for="(item,index) in orderData" @click="toOrderInfo(item.orderId)"> <template v-else>
<view
class="item"
v-for="(item, index) in orderData"
:key="item.orderId"
@click="toOrderInfo(item.orderId)"
>
<view class="item-til"> <view class="item-til">
<image src="../../static/img/sn.png" mode=""></image> <image src="../../static/img/sn.png" mode=""></image>
<text>{{$lang.lang.index.orderNo}}:{{item.orderNo}}</text> <text>{{ $lang.lang.index.orderNo }}:{{ item.orderNo }}</text>
<view class="">{{$lang.lang.index.marks}}:{{item.marks}}</view> <view class="">{{ $lang.lang.index.marks }}:{{ item.marks }}</view>
</view> </view>
<view class="item-body"> <view class="item-body">
<view class="item-body-v">{{item.departureName}}</view> <view class="item-body-v">{{ item.departureName }}</view>
<view class="item-body-v-2"> <view class="item-body-v-2">
<view class="">{{getStatusName(item.status)}}</view> <view class="">{{ getStatusName(item.status) }}</view>
<image src="../../static/img/jiant1.png" mode="widthFix"></image> <image src="../../static/img/jiant1.png" mode="widthFix"></image>
</view> </view>
<view class="item-body-v">{{item.objectiveName}}</view> <view class="item-body-v">{{ item.objectiveName }}</view>
</view> </view>
<view class="item-times"> <view class="item-times">
<image src="../../static/img/time.png" mode=""></image> <image src="../../static/img/time.png" mode=""></image>
<text>{{item.createTime}}</text> <text>{{ item.createTime }}</text>
</view> </view>
</view> </view>
</template>
</view> </view>
</view> </view>
<view class="bom"> <view class="bom">
<view class="" @click="$request.goPage('../help/help')"> <view class="" @click="$request.goPage('../help/help')">
<image src="../../static/img/help.png" mode=""></image> <image src="../../static/img/help.png" mode=""></image>
<text>{{$lang.lang.index.help}}</text> <text>{{ $lang.lang.index.help }}</text>
</view> </view>
<view class="" @click="$request.goPage('../consult/consult')"> <view class="" @click="$request.goPage('../consult/consult')">
<image src="../../static/img/zixun.png" mode=""></image> <image src="../../static/img/zixun.png" mode=""></image>
<text>{{$lang.lang.index.consult}}</text> <text>{{ $lang.lang.index.consult }}</text>
</view> </view>
</view> </view>
<uni-popup ref="adpopup" type="center" :mask-click="false"> <uni-popup ref="adpopup" type="center" :mask-click="false">
<view class="ad-conten"> <view class="ad-conten">
<image @click="closeAd" class="ad-bg" src='../../static/img/index_close.png'></image> <image @click="closeAd" class="ad-bg" src="../../static/img/index_close.png"></image>
<view class="ad-title">{{$lang.locale=='zh'?adData.titleZh:adData.titleEn}}</view> <view class="ad-title">{{ $lang.locale == 'zh' ? adData.titleZh : adData.titleEn }}</view>
<view class="ad-info"> <view class="ad-info">
<rich-text :nodes="$lang.locale=='zh'?adData.htmlAppZh:adData.htmlAppEn"></rich-text> <rich-text
:nodes="$lang.locale == 'zh' ? adData.htmlAppZh : adData.htmlAppEn"
></rich-text>
</view> </view>
<view class="ad-btns"> <view class="ad-btns">
<view class="ad-btn" @click="closeAd"> <view class="ad-btn" @click="closeAd">
<view>{{$lang.lang.index.know}}</view> <view>{{ $lang.lang.index.know }}</view>
</view> </view>
</view> </view>
</view> </view>
...@@ -132,27 +150,37 @@ ...@@ -132,27 +150,37 @@
<image @click="closeTransport" class="ad-bg1" src="../../static/img/colse1.png"></image> <image @click="closeTransport" class="ad-bg1" src="../../static/img/colse1.png"></image>
<view class="transport-title"> <view class="transport-title">
<span>{{$lang.lang.notices.transport}}</span> <span>{{ $lang.lang.notices.transport }}</span>
</view> </view>
<image class="type-bg" src="../../static/img/type-1.png"></image> <image class="type-bg" src="../../static/img/type-1.png"></image>
<view class="transport-info"> <view class="transport-info">
<view v-for="item in transType" @click="toCreatOrder(item.value)" :class="'type'+item.value">{{$lang.locale=='zh'?item.label:item.labelEn}}</view> <view
v-for="item in transType"
@click="toCreatOrder(item.value)"
:class="'type' + item.value"
>{{ $lang.locale == 'zh' ? item.label : item.labelEn }}</view
>
</view> </view>
</view> </view>
</uni-popup> </uni-popup>
<uni-popup ref="vepopup" type="center" :mask-click="false"> <uni-popup ref="vepopup" type="center" :mask-click="false">
<view class="ad-conten"> <view class="ad-conten">
<image v-if="!forceUpdate" @click="closeVe" class="ad-bg" src='../../static/img/index_close.png'></image> <image
<view class="ad-title">V{{appVersion}}{{$lang.lang.notices.newVersion}}</view> v-if="!forceUpdate"
@click="closeVe"
class="ad-bg"
src="../../static/img/index_close.png"
></image>
<view class="ad-title">V{{ appVersion }}{{ $lang.lang.notices.newVersion }}</view>
<view class="ad-info"> <view class="ad-info">
<rich-text :nodes="veData"></rich-text> <rich-text :nodes="veData"></rich-text>
</view> </view>
<view class="ad-btns"> <view class="ad-btns">
<view class="ad-btn" @click="toupdate"> <view class="ad-btn" @click="toupdate">
<view>{{$lang.lang.notices.update}}</view> <view>{{ $lang.lang.notices.update }}</view>
</view> </view>
<view v-if="!forceUpdate" class="ad-btn" @click="closeVe"> <view v-if="!forceUpdate" class="ad-btn" @click="closeVe">
<view>{{$lang.lang.notices.close}}</view> <view>{{ $lang.lang.notices.close }}</view>
</view> </view>
</view> </view>
<view class="progress" v-if="showdownLine"> <view class="progress" v-if="showdownLine">
...@@ -164,40 +192,62 @@ ...@@ -164,40 +192,62 @@
</template> </template>
<script> <script>
import md5 from 'js-md5'; import md5 from 'js-md5'
export default { export default {
data() { data() {
return { return {
nvs: [ nvs: [
{name: this.$lang.lang.index.delivery, icon: '../../static/img/express.png', url: '../create_order/create_order',num:0}, {
{name: this.$lang.lang.index.order, icon: '../../static/img/order.png', url: '../order/order',num:0}, name: this.$lang.lang.index.delivery,
icon: '../../static/img/express.png',
url: '../create_order/create_order',
num: 0
},
{
name: this.$lang.lang.index.order,
icon: '../../static/img/order.png',
url: '../order/order',
num: 0
},
// {name: this.$lang.lang.index.consolidation, icon: '../../static/img/order.png', url: '../consolidation/consolidation',num:0}, // {name: this.$lang.lang.index.consolidation, icon: '../../static/img/order.png', url: '../consolidation/consolidation',num:0},
// {name: this.$lang.lang.index.coupon, icon: '../../static/img/copue.png', url: '../coupon/coupon',num:0}, // {name: this.$lang.lang.index.coupon, icon: '../../static/img/copue.png', url: '../coupon/coupon',num:0},
{name: this.$lang.lang.index.old_system, icon: '../../static/img/copue.png', url: '',num:0,isHttp:true}, {
name: this.$lang.lang.index.old_system,
icon: '../../static/img/copue.png',
url: '',
num: 0,
isHttp: true
},
{
name: this.$lang.lang.index.integral,
icon: '../../static/img/copue.png',
url: '/pages/integral/integral',
num: 0
}
// {name: this.$lang.lang.index.price, icon: '../../static/img/wallet.png', url: '../price_inquiry/price_inquiry',num:0}, // {name: this.$lang.lang.index.price, icon: '../../static/img/wallet.png', url: '../price_inquiry/price_inquiry',num:0},
], ],
banner: [], banner: [],
orderData: [], orderData: [],
page: 1, page: 1,
isIdcard:false, isIdcard: false,
statusData:[], statusData: [],
name:{}, name: {},
adData:{}, adData: {},
noticeData:[], noticeData: [],
msgHave:false, msgHave: false,
version:'1.0.2', version: '1.0.2',
appUrl:'', appUrl: '',
veData:'', veData: '',
versionCode:0, versionCode: 0,
appVersion:'', appVersion: '',
forceUpdate:0, forceUpdate: 0,
showdownLine:false, showdownLine: false,
downloadNum:0,//下载百分比 downloadNum: 0, //下载百分比
totalSize:0,//下载总量 totalSize: 0, //下载总量
transType:[], transType: [],
preLoginPage:false, preLoginPage: false,
searchKey:'' //搜索关键词 searchKey: '' //搜索关键词
} }
}, },
onLoad(options) { onLoad(options) {
...@@ -209,83 +259,85 @@ import md5 from 'js-md5'; ...@@ -209,83 +259,85 @@ import md5 from 'js-md5';
this.getAdData() this.getAdData()
}, },
onShow() { onShow() {
this.getOrder() this.getOrder()
if(this.banner.length == 0){ if (this.banner.length == 0) {
this.getBanner() this.getBanner()
} }
if(this.orderData.length == 0){ if (this.orderData.length == 0) {
this.getOrderData() this.getOrderData()
} }
}, },
methods: { methods: {
toupdate(){ toupdate() {
let that = this let that = this
if(that.showdownLine) return if (that.showdownLine) return
// #ifdef APP-PLUS // #ifdef APP-PLUS
let platform = uni.getSystemInfoSync().platform.toLocaleLowerCase() let platform = uni.getSystemInfoSync().platform.toLocaleLowerCase()
if (platform == 'ios') { if (platform == 'ios') {
plus.runtime.openURL('https://apps.apple.com/us/app/e-c-logistics/id6466407990') plus.runtime.openURL('https://apps.apple.com/us/app/e-c-logistics/id6466407990')
}else{ } else {
uni.showLoading({ uni.showLoading({
title: this.$lang.lang.notices.startDown, title: this.$lang.lang.notices.startDown
}) })
that.showdownLine = true that.showdownLine = true
var dtask = plus.downloader.createDownload( var dtask = plus.downloader.createDownload(that.appUrl, {}, (d, status) => {
that.appUrl,
{
}, (d, status) => {
uni.hideLoading() uni.hideLoading()
if (status == 200) { if (status == 200) {
that.closeVe() that.closeVe()
that.showdownLine = false that.showdownLine = false
console.log("下载成功安装: " + d.filename); console.log('下载成功安装: ' + d.filename)
plus.runtime.install(d.filename) plus.runtime.install(d.filename)
} else { } else {
that.showdownLine = false that.showdownLine = false
that.closeVe() that.closeVe()
plus.nativeUI.alert(that.$lang.lang.notices.failDown) plus.nativeUI.alert(that.$lang.lang.notices.failDown)
} }
}); })
// uni.navigateTo({ // uni.navigateTo({
// url:'../updateView/updateView?url='+this.appUrl // url:'../updateView/updateView?url='+this.appUrl
// }) // })
// 下载进度 // 下载进度
dtask.addEventListener("statechanged", function (download, status) { dtask.addEventListener('statechanged', function (download, status) {
if(that.downloadNum==100){ if (that.downloadNum == 100) {
uni.hideLoading(); uni.hideLoading()
} }
switch (download.state) { switch (download.state) {
case 2: case 2:
break; break
case 3://进度条百分比 totalSize为总量,baifen为当前下载的百分比 case 3: //进度条百分比 totalSize为总量,baifen为当前下载的百分比
if(that.totalSize==0){ if (that.totalSize == 0) {
that.totalSize=parseInt(download.totalSize); that.totalSize = parseInt(download.totalSize)
} }
if(parseInt(download.downloadedSize/that.totalSize*100)!=that.downloadNum){ if (parseInt((download.downloadedSize / that.totalSize) * 100) != that.downloadNum) {
that.downloadNum=parseInt(download.downloadedSize/that.totalSize*100); that.downloadNum = parseInt((download.downloadedSize / that.totalSize) * 100)
} }
break; break
case 4: case 4:
// mui.toast("下载完成"); // mui.toast("下载完成");
uni.hideLoading(); uni.hideLoading()
break; break
} }
}); })
dtask.start(); dtask.start()
} }
// #endif // #endif
}, },
getVersion(){ getVersion() {
this.version = uni.getStorageSync('appversion'); this.version = uni.getStorageSync('appversion')
this.versionCode = uni.getStorageSync('versionCode'); this.versionCode = uni.getStorageSync('versionCode')
this.getVeData() this.getVeData()
}, },
old() { old() {
const code = md5(md5('jiedaoguoji' + this.userInfo.mobile)) const code = md5(md5('jiedaoguoji' + this.userInfo.mobile))
const url = 'http://backend.groupage.cn/#/pages/login/free_login?phone=' + this.userInfo.mobile + '&code=' + code + '&area_code=+' + this.userInfo.areaCode const url =
'http://backend.groupage.cn/#/pages/login/free_login?phone=' +
this.userInfo.mobile +
'&code=' +
code +
'&area_code=+' +
this.userInfo.areaCode
// #ifdef APP-PLUS // #ifdef APP-PLUS
plus.runtime.openURL(url) plus.runtime.openURL(url)
// #endif // #endif
...@@ -294,37 +346,36 @@ import md5 from 'js-md5'; ...@@ -294,37 +346,36 @@ import md5 from 'js-md5';
window.open(url) window.open(url)
// #endif // #endif
}, },
getUserInfo(){ getUserInfo() {
let that = this let that = this
that.$request.get('/app-api/member/user/get').then(res => { that.$request.get('/app-api/member/user/get').then((res) => {
console.log(res.data) console.log(res.data)
if(res.code==0&&res.data){ if (res.code == 0 && res.data) {
if (res.data.isSimplePassword) {
if(res.data.isSimplePassword){
uni.showModal({ uni.showModal({
title: that.$lang.lang.notices.notice, title: that.$lang.lang.notices.notice,
confirmText:that.$lang.lang.site.editPsd, confirmText: that.$lang.lang.site.editPsd,
cancelText:that.$lang.lang.index.know, cancelText: that.$lang.lang.index.know,
content: that.$lang.lang.notices.easyPass, content: that.$lang.lang.notices.easyPass,
success: function (res) { success: function (res) {
if (res.confirm) { if (res.confirm) {
uni.navigateTo({ uni.navigateTo({
url:"../editPsd/editPsd" url: '../editPsd/editPsd'
}) })
}else if(!that.preLoginPage){ } else if (!that.preLoginPage) {
that.openAd() that.openAd()
// #ifdef APP-PLUS // #ifdef APP-PLUS
if(that.appVersion){ if (that.appVersion) {
that.openVe() that.openVe()
} }
// #endif // #endif
} }
} }
}); })
}else if(!that.preLoginPage){ } else if (!that.preLoginPage) {
that.openAd() that.openAd()
// #ifdef APP-PLUS // #ifdef APP-PLUS
if(that.appVersion){ if (that.appVersion) {
that.openVe() that.openVe()
} }
// #endif // #endif
...@@ -333,96 +384,100 @@ import md5 from 'js-md5'; ...@@ -333,96 +384,100 @@ import md5 from 'js-md5';
} }
}) })
}, },
getOrder(){ getOrder() {
this.$request.get('/app-api/member/user/angle-mark').then(res=>{ this.$request.get('/app-api/member/user/angle-mark').then((res) => {
if(res.code==0&&res.data){ if (res.code == 0 && res.data) {
this.nvs[1].num = res.data.allOrderNum this.nvs[1].num = res.data.allOrderNum
this.nvs[2].num = res.data.couponNum this.nvs[2].num = res.data.couponNum
if(res.data.unreadMessageNum&&res.data.unreadMessageNum>0){ if (res.data.unreadMessageNum && res.data.unreadMessageNum > 0) {
this.msgHave = true this.msgHave = true
}else{ } else {
this.msgHave = false this.msgHave = false
} }
} }
}) })
}, },
getStatusName(status){ getStatusName(status) {
var statusName = '' var statusName = ''
let that = this let that = this
if(that.statusData.length>0){ if (that.statusData.length > 0) {
var name = that.statusData.filter(item=>item.value == status)||[] var name = that.statusData.filter((item) => item.value == status) || []
if(name.length>0) { if (name.length > 0) {
if(that.$lang.locale=='zh'){ if (that.$lang.locale == 'zh') {
statusName = name[0].label statusName = name[0].label
}else{ } else {
statusName = name[0].labelEn statusName = name[0].labelEn
} }
} }
} }
return statusName return statusName
}, },
openAd(){ openAd() {
console.log(this.adData) console.log(this.adData)
if(JSON.stringify(this.adData) != "{}"){ if (JSON.stringify(this.adData) != '{}') {
this.$refs.adpopup.open() this.$refs.adpopup.open()
} }
}, },
closeAd(){ closeAd() {
this.preLoginPage = false this.preLoginPage = false
this.$refs.adpopup.close() this.$refs.adpopup.close()
}, },
closeTransport(){ closeTransport() {
this.$refs.choiceTransport.close() this.$refs.choiceTransport.close()
}, },
openTransport(){ openTransport() {
this.$refs.choiceTransport.open() this.$refs.choiceTransport.open()
}, },
openVe(){ openVe() {
this.$refs.vepopup.open() this.$refs.vepopup.open()
}, },
closeVe(){ closeVe() {
this.$refs.vepopup.close() this.$refs.vepopup.close()
// this.getUserInfo() // this.getUserInfo()
}, },
getBanner () { getBanner() {
this.$request.get('/app-api/ecw/banner/page', {page: 1, rows: 20,status:0}).then(res => { this.$request
if(res.code==0&&res.data&&res.data.list&&res.data.list.length>0){ .get('/app-api/ecw/banner/page', { page: 1, rows: 20, status: 0 })
.then((res) => {
if (res.code == 0 && res.data && res.data.list && res.data.list.length > 0) {
this.banner = res.data.list this.banner = res.data.list
} }
}) })
}, },
getOrderData () { getOrderData() {
this.$request.get('/app-api/my/order/dynamic/page', { page: this.page, rows: 6}).then(res => { this.$request
if(res.code==0&&res.data&&res.data.list&&res.data.list.length>0){ .get('/app-api/my/order/dynamic/page', { page: this.page, rows: 6 })
.then((res) => {
if (res.code == 0 && res.data && res.data.list && res.data.list.length > 0) {
this.orderData = res.data.list this.orderData = res.data.list
} }
}) })
}, },
getNoticeData(){ getNoticeData() {
this.$request.get('/app-api/system/notice/page', { page: 1, rows: 6}).then(res => { this.$request.get('/app-api/system/notice/page', { page: 1, rows: 6 }).then((res) => {
if(res.code==0&&res.data&&res.data.list&&res.data.list.length>0){ if (res.code == 0 && res.data && res.data.list && res.data.list.length > 0) {
this.noticeData = res.data.list this.noticeData = res.data.list
} }
}) })
}, },
getDate(time) { getDate(time) {
const date = new Date(time); const date = new Date(time)
let year = date.getFullYear(); let year = date.getFullYear()
let month = date.getMonth() + 1; let month = date.getMonth() + 1
let day = date.getDate(); let day = date.getDate()
month = month > 9 ? month : '0' + month; month = month > 9 ? month : '0' + month
day = day > 9 ? day : '0' + day; day = day > 9 ? day : '0' + day
return `${year}-${month}-${day}`; return `${year}-${month}-${day}`
}, },
getAdData(){ getAdData() {
this.$request.get('/app-api/ecw/banner-pop/page', { page: 1, rows: 6}).then(res => { this.$request.get('/app-api/ecw/banner-pop/page', { page: 1, rows: 6 }).then((res) => {
if(res.code==0&&res.data&&res.data.list&&res.data.list.length>0){ if (res.code == 0 && res.data && res.data.list && res.data.list.length > 0) {
this.adData = res.data.list[0] this.adData = res.data.list[0]
let pages = getCurrentPages() // 获取栈实例 let pages = getCurrentPages() // 获取栈实例
if(pages.length>1){ if (pages.length > 1) {
let prevPage = pages[pages.length - 2] let prevPage = pages[pages.length - 2]
if(prevPage&&prevPage.route=='pages/login/login'){ if (prevPage && prevPage.route == 'pages/login/login') {
this.preLoginPage = true this.preLoginPage = true
} }
} }
...@@ -434,89 +489,93 @@ import md5 from 'js-md5'; ...@@ -434,89 +489,93 @@ import md5 from 'js-md5';
this.getUserInfo() this.getUserInfo()
//#endif //#endif
}) })
}, },
getVeData(){ getVeData() {
let that = this let that = this
var addType = uni.getSystemInfoSync().platform=='ios'?'userIos':'userAndroid' var addType = uni.getSystemInfoSync().platform == 'ios' ? 'userIos' : 'userAndroid'
that.$request.get('/app-api/system/version/latestVersion', { appType: addType,versionCode:that.versionCode}).then(res => { that.$request
.get('/app-api/system/version/latestVersion', {
appType: addType,
versionCode: that.versionCode
})
.then((res) => {
console.log(res) console.log(res)
if(res.code==0&&res.data){ if (res.code == 0 && res.data) {
that.veData = res.data.desp that.veData = res.data.desp
that.appUrl = res.data.appUrl that.appUrl = res.data.appUrl
that.appVersion = res.data.appVersion that.appVersion = res.data.appVersion
that.forceUpdate = res.data.forceUpdate that.forceUpdate = res.data.forceUpdate
// that.openVe() // that.openVe()
}else{ } else {
// that.getUserInfo() // that.getUserInfo()
} }
}) })
}, },
getStatusData(){ getStatusData() {
this.$request.getConfig('order_status').then(res => { this.$request.getConfig('order_status').then((res) => {
if(res.code==0&&res.data&&res.data.list&&res.data.list.length>0){ if (res.code == 0 && res.data && res.data.list && res.data.list.length > 0) {
this.statusData = res.data.list this.statusData = res.data.list
} }
}) })
}, },
getIdcard () { getIdcard() {
this.$request.get('/app-api/member/user/get-auth-idcard-info').then(res => { this.$request.get('/app-api/member/user/get-auth-idcard-info').then((res) => {
if(res.code==0&&res.data&&res.data.status==2){ if (res.code == 0 && res.data && res.data.status == 2) {
this.isIdcard = true this.isIdcard = true
} }
}) })
}, },
toPage(url,isHttp){ toPage(url, isHttp) {
if(isHttp){ if (isHttp) {
// window.location.href=url; // window.location.href=url;
this.old() this.old()
}else{ } else {
if(url=='../create_order/create_order'){ if (url == '../create_order/create_order') {
this.openTransport() this.openTransport()
}else{ } else {
uni.navigateTo({ uni.navigateTo({
url:url url: url
}) })
} }
} }
}, },
toCreatOrder(id){ toCreatOrder(id) {
this.closeTransport() this.closeTransport()
uni.navigateTo({ uni.navigateTo({
url:'../create_order/create_order?transportId='+id url: '../create_order/create_order?transportId=' + id
}) })
}, },
toBanner(id){ toBanner(id) {
uni.navigateTo({ uni.navigateTo({
url:'../banner_info/banner_info?id='+id url: '../banner_info/banner_info?id=' + id
}) })
}, },
toOrderInfo(id){ toOrderInfo(id) {
uni.navigateTo({ uni.navigateTo({
url:'../orderInfo/orderInfo?id='+id url: '../orderInfo/orderInfo?id=' + id
}) })
}, },
orderConfig () { orderConfig() {
let that = this let that = this
that.$request.getConfig('transport_type').then(res => { that.$request.getConfig('transport_type').then((res) => {
if(res.code==0&&res.data&&res.data.list.length > 0){ if (res.code == 0 && res.data && res.data.list.length > 0) {
that.transType = res.data.list that.transType = res.data.list
} }
}) })
}, },
goPage(url){ goPage(url) {
uni.redirectTo({ uni.redirectTo({
url:url, url: url
}) })
}, },
toMyOrder(){ toMyOrder() {
uni.navigateTo({ uni.navigateTo({
url:'../order/order?key='+this.searchKey url: '../order/order?key=' + this.searchKey
}) })
} }
} }
} }
</script> </script>
<style> <style>
@import url(../../static/css/index.css); @import url(../../static/css/index.css);
</style> </style>
<template>
<view class="gift">
<view class="gift-remark">不同网点兑换积分不同</view>
<view class="gift-select">
<view class="select-list">
<view class="list-item"
>中国
<uni-icons class="list-icon" type="right" color="#B3B3B3" size="12"></uni-icons>
</view>
<view class="list-item"
>大连
<uni-icons class="list-icon" type="right" color="#B3B3B3" size="12"></uni-icons>
</view>
</view>
<view class="select-right">
请选择网点
<uni-icons class="list-icon" type="right" color="#B3B3B3" size="12"></uni-icons>
</view>
</view>
<view class="gift-content">
<view class="gift-item" v-for="item in 7" :key="item">
<view class="gift-image-box">
<image class="gift-image" mode="cover" src="../../../static/img/wallet.png"></image>
<view class="gift-tag">
<view class="tags">
<image class="tag-image" src="../../../static/img/score.png"></image>
<view class="tag-text">{{ item }}</view>
</view>
</view>
<view class="foot-tag">剩余99份</view>
</view>
<view class="gift-name">商品名称</view>
<view class="gift-menu">
<view class="gift-menu-text">包邮</view>
<view class="gift-menu-text">到付</view>
<view class="gift-menu-text">自提</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {}
</script>
<style lang="scss" scoped>
.gift {
width: 100%;
height: 100%;
box-sizing: border-box;
}
.gift-remark {
padding: 0 32upx;
width: 100%;
height: 42upx;
display: flex;
align-items: center;
justify-content: right;
box-sizing: border-box;
font-size: 20upx;
color: red;
}
.gift-select {
padding: 0 32upx;
display: flex;
width: 100%;
height: 70upx;
color: #b3b3b3;
box-sizing: border-box;
align-items: center;
border-bottom: 2upx solid #e7e7e7;
}
.select-list {
font-size: 20upx;
display: flex;
align-items: center;
}
.list-item {
display: flex;
align-items: center;
margin-right: 20upx;
&:last-child {
margin-right: 0;
}
}
.list-icon {
font-weight: 600;
margin-left: 50upx;
&:last-child {
margin-left: 20upx;
}
}
.select-right {
margin-left: auto;
font-size: 24upx;
}
.gift-content {
overflow-y: auto;
width: 100%;
height: calc(100% - 152upx);
padding: 32upx 32upx;
gap: 22upx;
display: flex;
flex-wrap: wrap;
box-sizing: border-box;
justify-content: space-between;
}
.gift-item {
display: flex;
flex-direction: column;
width: 300upx;
height: 318upx;
box-sizing: border-box;
// background-color: red;
}
.gift-image {
margin: 0;
width: 300upx;
height: 200upx;
}
.gift-name {
margin: 0;
display: flex;
height: 60upx;
font-size: 24upx;
color: #000000;
align-items: center;
}
.gift-menu {
display: flex;
height: 58upx;
font-size: 20upx;
color: #b3b3b3;
align-items: center;
}
.gift-menu-text {
padding: 4upx 4upx;
border: 2upx solid #ef8d15;
font-size: 24upx;
color: #ef8d15;
border-radius: 20upx;
margin-right: 10upx;
&:last-child {
margin-right: 0;
}
}
.gift-image-box {
position: relative;
}
.gift-tag {
position: absolute;
top: 0;
left: 0;
z-index: 9;
display: flex;
align-items: center;
justify-content: center;
width: 80upx;
height: 32upx;
background: linear-gradient(#ef7e1a, #f1b009);
transform: skewX(15deg);
border-top-right-radius: 10upx;
border-bottom-left-radius: 10upx;
}
.tag-image {
width: 24upx;
height: 24upx;
}
.tags {
display: flex;
align-items: center;
justify-content: center;
transform: skewX(-15deg);
}
.tag-text {
margin-left: 4upx;
font-weight: 500;
color: #fff;
font-size: 24upx;
}
.foot-tag {
position: absolute;
padding: 0 8upx;
bottom: 0;
right: 0;
z-index: 9;
display: flex;
align-items: center;
justify-content: center;
min-width: 110upx;
height: 32upx;
color: #fff;
font-size: 22upx;
box-sizing: border-box;
background: linear-gradient(#ef7e1a, #f1b009);
border-top-right-radius: 10upx;
border-bottom-left-radius: 10upx;
}
</style>
<template>
<view class="int">
<view class="int-centent" v-for="item in 6" :key="item">
<view class="int-centent-left">
<view class="centent-tag">
<view class="tag-text">APP注册</view>
</view>
<image class="centent-image" src="../../../static/img/company.png"></image>
</view>
<view class="int-centent-right">
<view class="centent-title">此处是活动标题</view>
<view class="centent-text"
>此处是活动内容,此处是活动内容,此处是活动内容,此处是活动内容,此处是活动内容,此处是活动内容,此处是活动内容,</view
>
</view>
</view>
</view>
</template>
<script>
export default {}
</script>
<style lang="scss" scoped>
.int {
padding: 30upx 0;
height: inherit;
overflow-y: auto;
}
.int-centent {
margin-bottom: 20upx;
width: 100%;
height: 220upx;
display: flex;
padding: 0 30upx;
box-sizing: border-box;
border-bottom: 2upx solid #e7e7e7;
&:last-child {
margin-bottom: 0;
}
}
.int-centent-left {
position: relative;
width: 200upx;
height: inherit;
.centent-image {
width: 200upx;
height: 200upx;
}
}
.int-centent-right {
flex: 1;
height: inherit;
padding-left: 20upx;
box-sizing: border-box;
.centent-title {
font-size: 28upx;
color: #333;
margin-bottom: 20upx;
}
.centent-text {
font-size: 20upx;
color: #666;
line-height: 36upx;
}
}
.centent-tag {
position: absolute;
top: 0;
left: 0;
z-index: 9;
display: flex;
font-size: 24upx;
min-width: 120upx;
height: 40upx;
color: #fff;
align-items: center;
justify-content: center;
box-sizing: border-box;
transform: skewX(15deg);
background-color: #ff4d4f;
border-top-right-radius: 10upx;
border-bottom-left-radius: 10upx;
}
.tag-text {
transform: skewX(-15deg);
}
</style>
<template>
<view class="integral">
<dHeader :title="$lang.lang.integral.info"></dHeader>
<view class="container">
<view class="header">
<view class="avatar">
<image src="../../static/img/vip_avatar.png" mode=""></image>
</view>
<view class="content">
<view class="content-title">{{ $lang.lang.integral.headerTitle }}白金会员</view>
<view class="content-text">
<view class="text">{{ $lang.lang.integral.spend }} 100</view>
<view class="text">{{ $lang.lang.integral.available }} 88</view>
</view>
<view class="divider">
<view class="divider-active"></view>
<view class="divider-unm">238</view>
<view class="divider-level">VIP2</view>
</view>
</view>
<view class="classification">
<image class="classification-image" src="../../static/img/vip_2.png"></image>
<view class="log-menu">
<view class="menu-item">积分日志 &gt;</view>
<view class="menu-item">兑换日志 &gt;</view>
</view>
</view>
</view>
<view class="main">
<view class="main-nav">
<view class="nav-item" :class="{ 'nav-active1': navIndex === 0 }" @click="navIndex = 0"
>兑换礼品</view
>
<view class="nav-item" :class="{ 'nav-active2': navIndex === 1 }" @click="navIndex = 1"
>积分活动</view
>
</view>
<view class="main-content">
<gift v-if="navIndex === 0"></gift>
<points v-if="navIndex === 1"></points>
</view>
</view>
</view>
</view>
</template>
<script>
import dHeader from '../../components/dHeader/index.vue'
import points from './components/points.vue'
import gift from './components/gift.vue'
export default {
components: {
dHeader,
gift,
points
},
data() {
return {
navIndex: 0
}
}
}
</script>
<style>
@import url(../../static/css/integral.css);
</style>
page {
/* #ifdef H5 */
padding-top: 140upx;
/* #endif */
/* #ifdef APP-PLUS */
padding-top: calc(var(--status-bar-height) + 100upx);
/* #endif */
height: 100%;
}
.integral {
padding: 0 32upx;
height: inherit;
}
.container {
width: 100%;
display: flex;
height: inherit;
flex-direction: column;
box-sizing: border-box;
background-color: #C3C8D3;
border-top-left-radius: 12upx;
border-top-right-radius: 12upx;
}
.header {
padding: 32upx 32upx 20upx;
height: 240upx;
display: flex;
color: #8C8E97;
font-size: 24upx;
box-sizing: border-box;
}
.avatar image {
width: 68upx;
height: 68upx;
}
.content {
flex: 1;
margin-left: 10upx;
}
.content .content-title {
font-size: 32upx;
color: #2A426B;
margin-bottom: 16upx;
text-shadow: 2upx 4upx 12upx rgba(0, 0, 0, 0.5);
}
.content .content-text {
display: flex;
}
.content .content-text .text {
text-align: left;
margin-right: 20upx;
font-size: 20upx;
/* transform: scale(0.8); */
}
.content .divider {
position: relative;
margin-top: 76upx;
width: 260upx;
height: 4upx;
background-color: #fff;
border-radius: 4upx;
}
.divider-active {
position: absolute;
top: 0;
left: 0;
width: 130upx;
height: 4upx;
background-color: #2A426B;
border-radius: 4upx;
}
.divider-unm {
position: absolute;
top: 0;
right: 50%;
color: #2A426B;
transform: translate(50%, -110%);
}
.divider-level {
position: absolute;
top: 0;
right: 0;
color: #2A426B;
transform: translate(130%, -50%);
}
.classification {
position: relative;
display: flex;
flex-direction: column;
}
.classification-image {
position: absolute;
width: 164upx;
height: 116upx;
transform: translateY(-60upx);
}
.log-menu {
margin-top: auto;
text-align: right;
color: #8A8E96;
}
.menu-item {
font-size: 24upx;
margin-top: 10upx;
}
.main {
overflow: hidden;
flex: 1;
height: calc(100% - 240upx);
background-color: #fff;
border-top-left-radius: 18upx;
border-top-right-radius: 18upx;
box-shadow: -2px 0px 12px 0 rgba(0, 0, 0, 0.1)
}
.main-nav {
display: flex;
width: 100%;
height: 80upx;
align-items: center;
justify-content: space-around;
background-color: #D1D5E1;
box-sizing: border-box;
}
.nav-item {
flex: 1;
display: flex;
height: 80upx;
font-size: 28upx;
color: #3F4044;
align-items: center;
justify-content: center;
border: 0;
}
.nav-active1 {
clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 80% 0%);
/* clip-path: path('M 0 0 H 80 Q 100 0 100 20 V 100 H 0 Z'); */
font-weight: 600;
background-color: #fff !important;
color: #000 !important;
position: relative;
overflow: hidden;
}
.nav-active2 {
clip-path: polygon(20% 0%, 0% 100%, 100% 100%, 100% 0%);
/* clip-path: path('M 0 0 H 80 Q 100 0 100 20 V 100 H 0 Z'); */
font-weight: 600;
background-color: #fff !important;
color: #000 !important;
position: relative;
overflow: hidden;
}
.main-content {
height: calc(100% - 80upx);
box-sizing: border-box;
}
...@@ -456,7 +456,14 @@ export default { ...@@ -456,7 +456,14 @@ export default {
old_system: 'Old Order', old_system: 'Old Order',
sea: 'Groupage container', sea: 'Groupage container',
seaAir: 'Sea&air Cargo', seaAir: 'Sea&air Cargo',
air: 'Air Cargo' air: 'Air Cargo',
integral: 'my integral'
},
integral: {
info: 'my integral',
headerTitle: 'Honorable',
spend: 'redeemed points are',
available: 'The available credits are'
}, },
levite: { levite: {
levite: 'warehousing notes' levite: 'warehousing notes'
......
...@@ -451,7 +451,14 @@ export default { ...@@ -451,7 +451,14 @@ export default {
old_system: '旧订单', old_system: '旧订单',
sea: '海运拼柜', sea: '海运拼柜',
seaAir: '海空联运', seaAir: '海空联运',
air: '空运专线' air: '空运专线',
integral: '我的积分'
},
integral: {
info: '我的积分',
headerTitle: '尊贵的',
spend: '已兑换积分为',
available: '可用积分为'
}, },
levite: { levite: {
levite: '入仓须知' levite: '入仓须知'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment