Commit 82d45e6e authored by dragondean@qq.com's avatar dragondean@qq.com

Merge remote-tracking branch 'origin/release' into release

parents 8fa1bb58 6c87a36b
<script>
export default {
onLaunch: function() {
let Authorization = uni.getStorageSync('Authorization')
if((!Authorization || Authorization == '')){
if(this.$route.path != '/pages/register/register' && this.$route.path != '/pages/activityShare/index' ){
uni.redirectTo({
url: './pages/login/login'
})
}
}
if(Authorization && !this.$store.state.userInfo){
this.$store.dispatch('updateUserInfo')
export default {
onLaunch: function () {
let Authorization = uni.getStorageSync('Authorization')
if (!Authorization || Authorization == '') {
if (
this.$route.path != '/pages/register/register' &&
this.$route.path != '/pages/activityShare/index' &&
this.$route.path != '/pages/register/shareRegister' &&
this.$route.path != '/pages/register/downloadTips'
) {
uni.redirectTo({
url: './pages/login/login'
})
}
//#ifdef APP-PLUS
plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) {
// 获取 app的version
let appversion = wgtinfo.version;
let versionCode = wgtinfo.versionCode
// 存缓存 版本号
try {
uni.setStorageSync('appversion', appversion);
uni.setStorageSync('versionCode', versionCode);
} catch (e) {}
console.log( "appversion:" + appversion );
} );
//#endif
},
onShow: function() {
},
onHide: function() {
}
}
}
if (Authorization && !this.$store.state.userInfo) {
this.$store.dispatch('updateUserInfo')
}
//#ifdef APP-PLUS
plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {
// 获取 app的version
let appversion = wgtinfo.version
let versionCode = wgtinfo.versionCode
// 存缓存 版本号
try {
uni.setStorageSync('appversion', appversion)
uni.setStorageSync('versionCode', versionCode)
} catch (e) {}
console.log('appversion:' + appversion)
})
//#endif
},
onShow: function () {},
onHide: function () {}
}
</script>
<style>
@import url(@/static/css/main.css);
@import url(@/static/css/main.css);
</style>
......@@ -49,6 +49,18 @@
"navigationStyle": "custom"
}
},
{
"path": "pages/register/shareRegister",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/register/downloadTips",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/consult/consult",
"style": {
......
......@@ -10,7 +10,7 @@
</view>
<view class="container-main">
<view class="activity-title">{{
locale === "zh" ? detailInfo.titleZh : detailInfo.titleEn
locale === 'zh' ? detailInfo.titleZh : detailInfo.titleEn
}}</view>
<view
class="activity-remark"
......@@ -27,7 +27,7 @@
<view class="cell-content">
<image class="cell-image" src="../../static/img/score_b.png"></image>
<span v-if="detailInfo.type == 4">{{
detail.shareLabel(detailInfo.getScoreOnce)
detail.shareLabel(detailInfo.getScoreOnce)
}}</span>
<span v-if="detailInfo.type == 3">{{
detail.referralCodeLabel(detailInfo.getScoreOnce)
......@@ -46,7 +46,7 @@
low: ruleItem.low,
high: ruleItem.high,
score: ruleItem.score,
unit: detailInfo.extraOrderVtransportType == 1 ? "" : "kg"
unit: detailInfo.extraOrderV.transportType == 1 ? '' : 'kg'
})
}}
</view>
......@@ -69,7 +69,7 @@
<view class="activity-cell">
<view class="cell-label">{{ detail.rulesIllustrate }}</view>
<view class="cell-content">
{{ locale === "zh" ? detailInfo.descZh : detailInfo.descEn }}
{{ locale === 'zh' ? detailInfo.descZh : detailInfo.descEn }}
</view>
</view>
</view>
......@@ -78,7 +78,7 @@
</template>
<script>
import dHeader from "../../components/dHeader/index.vue"
import dHeader from '../../components/dHeader/index.vue'
export default {
components: {
dHeader
......@@ -106,7 +106,7 @@ export default {
// 获取详情
getDetail() {
this.$request
.post("/app-api/member/score-rule/get", { id: this.id })
.post('/app-api/member/score-rule/get', { id: this.id })
.then(({ code, data }) => {
if (code === 0 && data) {
this.detailInfo = data
......@@ -115,15 +115,14 @@ export default {
},
// 时间范围返回
getTimeRange(start, end) {
const formatDate = (timestamp) => {
const date = new Date(timestamp)
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, "0")
const day = String(date.getDate()).padStart(2, "0")
const hours = String(date.getHours()).padStart(2, "0")
const minutes = String(date.getMinutes()).padStart(2, "0")
const seconds = String(date.getSeconds()).padStart(2, "0")
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, '0')
const seconds = String(date.getSeconds()).padStart(2, '0')
return `${year}-${month}-${day}`
}
return `${formatDate(start)}${this.detail.to}${formatDate(end)}`
......
......@@ -2,23 +2,15 @@
<view>
<dHeader :title="$lang.lang.log.logExchange"></dHeader>
<view class="container">
<view
class="item"
v-for="item in list"
:key="item.id"
@click="toDetail(item.id)"
>
<view class="item" v-for="item in list" :key="item.id" @click="toDetail(item.id)">
<div class="item-title">{{ $lang.lang.log.redeemGifts }}</div>
<div class="item-box">
<div class="box-img">
<image
class="imgs"
:src="locale === 'zh' ? item.imgZh : item.imgEn"
></image>
<image class="imgs" :src="locale === 'zh' ? item.imgZh : item.imgEn"></image>
</div>
<div class="box-content">
<div class="content-text">
{{ locale === "zh" ? item.rewardTitleZh : item.rewardTitleEn }}
{{ locale === 'zh' ? item.rewardTitleZh : item.rewardTitleEn }}
</div>
<div class="content-time">{{ formatDate(item.createTime) }}</div>
</div>
......@@ -33,63 +25,57 @@
</template>
<script>
import dHeader from "../../components/dHeader/index.vue";
import dHeader from '../../components/dHeader/index.vue'
export default {
components: {
dHeader,
dHeader
},
data() {
return {
list: [],
};
list: []
}
},
created() {
this.getList();
this.getList()
},
computed: {
locale() {
return this.$lang.locale;
},
return this.$lang.locale
}
},
methods: {
toDetail(id) {
uni.navigateTo({
url: "/pages/exchange_detail/exchange_detail?id=" + id,
});
url: '/pages/exchange_detail/exchange_detail?id=' + id
})
},
// 获取礼品列表
async getList() {
try {
const memberId = this.$store.getters.id;
const { code, data } = await this.$request.post(
"/app-api/reward/redeem/record/list",
{
memberId,
}
);
const memberId = this.$store.getters.id
const { code, data } = await this.$request.post('/app-api/reward/redeem/record/list', {
memberId
})
if (code == 0 && data) {
this.list = data;
this.list = data
}
} catch (error) {
console.log(error);
console.log(error)
}
},
// 时间戳转换为YYYY-MM-DD HH:mm:ss
formatDate(time) {
const date = new Date(time);
const Y = date.getFullYear() + "-";
const M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
const D = date.getDate() + " ";
const h = date.getHours() + ":";
const m = date.getMinutes() + ":";
const s = date.getSeconds();
return Y + M + D + h + m + s;
},
},
};
const date = new Date(time)
const Y = date.getFullYear() + '-'
const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
const D = `${date.getDate()}`.padStart(2, '0') + ' '
const h = `${date.getHours()}`.padStart(2, '0') + ':'
const m = `${date.getMinutes()}`.padStart(2, '0') + ':'
const s = `${date.getSeconds()}`.padStart(2, '0')
return Y + M + D + h + m + s
}
}
}
</script>
<style lang="scss">
......
......@@ -4,7 +4,7 @@
<view class="container">
<view class="item" v-for="(item, index) in list" :key="index">
<div class="item-title">
{{ locale == "zh" ? item.sourceTypeZh : item.sourceTypeEn }}
{{ locale == 'zh' ? item.sourceTypeZh : item.sourceTypeEn }}
</div>
<div class="item-box">
<div class="box-img">
......@@ -12,20 +12,16 @@
</div>
<div class="box-content">
<div class="content-text">
{{ locale == "zh" ? item.descZh : item.descEn }}
{{ locale == 'zh' ? item.descZh : item.descEn }}
</div>
<div class="content-time">{{ formatDate(item.createTime) }}</div>
</div>
<div class="box-right">
<view class="box-right-num" v-if="item.rewardCount"
>X{{ item.rewardCount }}</view
>
<view class="box-right-num" v-if="item.rewardCount">X{{ item.rewardCount }}</view>
<view class="box-right-img" v-if="item.expired">
<image src="../../static/img/overdue.png"></image>
</view>
<view class="box-right-text"
>{{ item.operateType }}&ensp;{{ item.scoreCount }}</view
>
<view class="box-right-text">{{ item.operateType }}&ensp;{{ item.scoreCount }}</view>
</div>
</div>
</view>
......@@ -34,68 +30,62 @@
</template>
<script>
import dHeader from "../../components/dHeader/index.vue";
import dHeader from '../../components/dHeader/index.vue'
export default {
components: {
dHeader,
dHeader
},
data() {
return {
list: [],
};
list: []
}
},
created() {
this.getList();
this.getList()
},
computed: {
locale() {
return this.$lang.locale;
return this.$lang.locale
},
// 图片数组
imgArr() {
return {
1: "../../static/img/log_type1.png",
2: "../../static/img/log_type2.png",
4: "../../static/img/log_type4.png",
5: "../../static/img/log_type5.png",
6: "../../static/img/log_type6.png",
7: "../../static/img/log_type7.png",
8: "../../static/img/log_type8.png",
};
},
1: '../../static/img/log_type1.png',
2: '../../static/img/log_type2.png',
4: '../../static/img/log_type4.png',
5: '../../static/img/log_type5.png',
6: '../../static/img/log_type6.png',
7: '../../static/img/log_type7.png',
8: '../../static/img/log_type8.png'
}
}
},
methods: {
// 获取列表
async getList() {
try {
const id = this.$store.getters.id;
const { code, data } = await this.$request.post(
"/app-api/member/user-score/log",
{
id,
}
);
const id = this.$store.getters.id
const { code, data } = await this.$request.post('/app-api/member/user-score/log', {
id
})
if (code == 0 && data) {
this.list = data;
this.list = data
}
} catch (err) {}
},
// 时间戳转换为YYYY-MM-DD HH:mm:ss
formatDate(time) {
const date = new Date(time);
const Y = date.getFullYear() + "-";
const M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
const D = date.getDate() + " ";
const h = date.getHours() + ":";
const m = date.getMinutes() + ":";
const s = date.getSeconds();
return Y + M + D + h + m + s;
},
},
};
const date = new Date(time)
const Y = date.getFullYear() + '-'
const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
const D = `${date.getDate()}`.padStart(2, '0') + ' '
const h = `${date.getHours()}`.padStart(2, '0') + ':'
const m = `${date.getMinutes()}`.padStart(2, '0') + ':'
const s = `${date.getSeconds()}`.padStart(2, '0')
return Y + M + D + h + m + s
}
}
}
</script>
<style lang="scss">
......
<template>
<uni-popup ref="popup" type="bottom" border-radius="10px 10px 0 0" @maskClick="hiddeDatePicker">
<view class="date-container">
<view class="transparent">
<view class="date-confirm">
<view @click="hiddeDatePicker" class="pickerCancel">{{ $lang.lang.myInfo.cancel }}</view>
<!-- 输入框 -->
<input
style="width: 70%"
:placeholder="$lang.lang.myInfo.placeholder"
:show-action="false"
v-model="searchValue"
shape="round"
/>
<view @click="confirm" class="pickerConfirm">{{ $lang.lang.myInfo.confirm }}</view>
</view>
<picker-view
:immediate-change="true"
indicator-class="indicator"
:value="setValues"
@change="bindChange"
style="height: 430rpx"
>
<picker-view-column>
<view v-for="item in list" :key="item.id" class="u-column-item"
>{{ rangeKey == 'zh' ? item.titleZh : item.titleEn }}
</view>
</picker-view-column>
</picker-view>
</view>
</view>
</uni-popup>
</template>
<script>
export default {
props: {
dataSource: {
type: Array,
default() {
return []
}
},
pickerValues: {
//picker默认展示的值
type: String | Number,
default: ''
},
value: {
type: Boolean,
default: false
}
},
computed: {
rangeKey() {
return this.$lang.locale == 'zh' ? 'zh' : 'en'
}
},
data() {
return {
searchValue: '', // 搜索值
setValues: [], // picker 选择值
form: {
//要传过去的值
id: '',
name: ''
},
list: this.dataSource
}
},
onLoad(option) {},
watch: {
dataSource: {
handler(newValue, oldValue) {
this.list = newValue
},
deep: true,
immediate: true
},
value(newValue, oldValue) {
this.init()
if (newValue) {
this.$refs.popup.open('bottom')
} else {
this.$refs.popup.close()
}
},
searchValue: {
handler(newValue, oldValue) {
this.reset()
if (!newValue) {
this.list = this.dataSource
} else {
this.list = this.dataSource.filter((item) => {
const title = this.rangeKey == 'zh' ? item.titleZh : item.titleEn
return title.includes(this.searchValue)
})
}
}
}
},
methods: {
init() {
this.$nextTick(() => {
//组件渲染完成后在更新数据
const index = this.list.findIndex((item) => item.id == this.pickerValues)
this.setValues = index > 0 ? [index] : [0]
})
},
bindChange(e) {
let value = e.detail.value.toString()
this.list.forEach((item, index) => {
if (value == index) {
this.form.id = item.id
this.form.name = this.rangeKey == 'zh' ? item.titleZh : item.titleEn
}
})
},
hiddeDatePicker() {
this.searchValue = ''
this.$emit('input', false)
},
confirm(e) {
if (this.form.id == '' && this.list.length > 0) {
this.form = {
id: this.list[0].id,
name: this.rangeKey == 'zh' ? this.list[0].titleZh : this.list[0].titleEn
}
}
console.log('ocfkfd', this.setValues)
this.hiddeDatePicker()
this.$emit('reLoad', this.form)
},
// 搜索查询
searchChange(e) {
this.reset()
},
reset() {
//重置
this.form = {
id: '',
name: ''
}
}
}
}
</script>
<style lang="scss" scoped>
.date-container {
width: 100%;
background: #fff;
}
.date-confirm {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20rpx;
font-size: 34rpx;
line-height: 100rpx;
z-index: 2;
height: 70rpx;
}
::v-deep .indicator {
height: 100rpx;
}
.pickerCancel {
font-size: 30rpx;
color: #606266;
box-sizing: border-box;
text-align: center;
text-decoration: none;
padding: 0rpx 8rpx;
}
.pickerConfirm {
font-size: 30rpx;
color: #2979ff;
box-sizing: border-box;
text-align: center;
text-decoration: none;
padding: 0rpx 8rpx;
}
.u-column-item {
line-height: 100rpx;
text-align: center;
}
</style>
......@@ -99,19 +99,18 @@
<view class="consult-item-label required-icon">
<text>{{ $lang.lang.myInfo.city }}</text>
</view>
<view class="consult-item-put">
<picker
style="width: 100%"
:range="cityArray"
:range-key="rangeKey == 'zh' ? 'titleZh' : 'titleEn'"
@change="bindCityChange"
>
<view :class="{ placeholder: !params.city }">{{
params.cityValue ? params.cityValue : $lang.lang.notices.city
}}</view>
</picker>
<view class="consult-item-put" @click="showCityPicker">
<view :class="{ placeholder: !params.city }">
{{ params.cityValue || $lang.lang.notices.city }}
</view>
<image class="rgt" src="../../static/img/rgt.png" mode=""></image>
</view>
<cityListPicker
v-model="cityPickerPopup"
:dataSource="cityArray"
:pickerValues="params.city"
@reLoad="changeCity"
></cityListPicker>
</view>
<view class="consult-item">
<view class="consult-item-label">
......@@ -150,9 +149,11 @@
<script>
import dHeader from '../../components/dHeader/index.vue'
import cityListPicker from './cityListPicker.vue'
export default {
components: {
dHeader
dHeader,
cityListPicker
},
data() {
const currentDate = this.getDate({
......@@ -177,7 +178,8 @@ export default {
// 城市列表
cityArray: [],
// 是否为首次进入 没有国家城市信息
first: false
first: false,
cityPickerPopup: false //城市下拉列表展示
}
},
onLoad(route) {
......@@ -198,7 +200,22 @@ export default {
return this.$lang.locale == 'zh' ? 'zh' : 'en'
}
},
watch: {
cityPickerPopup(newValue, oldValue) {
console.log('99999', newValue)
}
},
methods: {
//变更城市
changeCity(e) {
this.$set(this.params, 'cityValue', e.name)
this.$set(this.params, 'city', e.id)
console.log('000008', e)
},
//弹出城市下拉筛选列表
showCityPicker() {
this.cityPickerPopup = true
},
submitForm() {
if (!this.params.nickname) {
uni.showToast({
......@@ -264,6 +281,11 @@ export default {
}
const { city, country, countryTitleZh, countryTitleEn, cityTitleZh, cityTitleEn } =
res.data
if (this.first) {
this.params.nickname = ''
this.params.englishName = ''
}
this.params.city = city
this.params.country = country
this.params.cityValue = this.rangeKey == 'zh' ? cityTitleZh : cityTitleEn
......@@ -351,14 +373,6 @@ export default {
this.cityArray = res.data
}
})
},
// 城市选择 change
bindCityChange(e) {
const index = e.detail.value
const { titleZh, titleEn, id } = this.cityArray[index]
const value = this.rangeKey == 'zh' ? titleZh : titleEn
this.$set(this.params, 'cityValue', value)
this.$set(this.params, 'city', id)
}
}
}
......
This diff is collapsed.
<template>
<!-- #ifdef H5 -->
<view class="downloadTipsBox" v-if="closePopup">
<image class="logoImg" src="/static/img/logo.76c4d986.png"></image>
<view class="textAlert">{{ $lang.lang.integral.downloadTitle }}</view>
<view class="descText">{{ $lang.lang.integral.downloadTextDesc }} </view>
<view class="downloadTips descText">{{ $lang.lang.integral.downloadTextTips }}</view>
<view class="downloadBtn" @click="handleDownload">{{ $lang.lang.integral.downloadBtn }}</view>
<!-- <view class="closeBtn-l" @click="closePopup = false">X</view> -->
</view>
<!-- #endif -->
</template>
<script>
import userAgreement from '../../components/userAgreement/index.vue'
export default {
components: {
userAgreement
},
data() {
return {
closePopup: true,
areaIndex: 0,
mobile: '',
password: '',
passworded: '',
code: '',
agree: false,
areaData: [],
areaName: [],
leftTime: 60,
referralCode: ''
}
},
onLoad() {
this.Country()
this.referralCode = this.$route.query.code
},
methods: {
handleDownload() {
if (uni.getSystemInfoSync().platform === 'android') {
console.log('运行Android上')
window.open('https://www.pgyer.com/qHcSOD1F', '_blank')
} else {
window.open('https://apps.apple.com/cn/app/e-c-logistics/id6466407990', '_blank')
console.log('运行iOS上')
}
}
}
}
</script>
<style>
.downloadTipsBox {
height: 100%;
position: absolute;
top: 0;
left: 0;
width: 100%;
background: #373333c7;
padding: 10upx 54upx;
display: flex;
z-index: 10;
align-items: center;
flex-direction: column;
box-sizing: border-box;
justify-content: center;
}
.textAlert {
padding: 40upx;
font-size: 40upx;
color: #fff;
}
.logoImg {
height: 200rpx;
width: 200rpx;
}
.downloadBtn {
background: #5ba8dc;
padding: 4upx 20upx;
color: #fff;
font-size: 36upx;
border-radius: 100px;
}
.closeBtn-l {
color: #fff;
font-size: 24upx;
padding: 8px;
top: 0px;
position: absolute;
right: 70px;
}
.descText {
color: #fff;
font-size: 26upx;
padding-bottom: 40upx;
}
.downloadTips {
color: red;
width: 100%;
}
</style>
<template>
<view class="main">
<!-- <view class="login-top">
<image src="../../static/img/back.png" @click="$request.backGo()" mode=""></image>
</view> -->
<view class="login-top">
<image
v-if="locale == 'en'"
src="../../static/img/zh.png"
mode=""
@click="changeLang('zh')"
></image>
<image
v-if="locale == 'zh'"
src="../../static/img/en.png"
mode=""
@click="changeLang('en')"
></image>
</view>
<view class="logo">
<image src="../../static/img/logo.png" mode=""></image>
<text>{{ $lang.lang.login.title }}</text>
</view>
<view class="login-item">
<view class="login-v">
<view class="login-vs">
<image src="../../static/img/phone.png" mode=""></image>
</view>
<view class="login-vp login-phone">
<view class="login-area">
<picker :value="areaIndex" :range="areaName" @change="areaChange">
<view class="uni-input">{{ $request.checkAddIcon(areaData[areaIndex]) }}</view>
</picker>
<image src="../../static/img/more.png" mode=""></image>
</view>
<input
class="vp-input"
v-model="mobile"
type="number"
placeholder-style="color: #ffffff"
:placeholder="$lang.lang.notices.phone"
/>
</view>
</view>
<view class="login-v">
<view class="login-vs">
<image src="../../static/img/code.png" mode=""></image>
</view>
<view class="login-vp">
<input
class="vp-input"
v-model="code"
type="number"
placeholder-style="color: #ffffff"
:placeholder="$lang.lang.notices.code"
/>
<view class="login-code" v-if="leftTime < 60">{{ leftTime }}S</view>
<view class="login-code" v-else @click="sendCode">{{ $lang.lang.login.code }}</view>
</view>
</view>
<view class="login-v">
<view class="login-vs">
<image src="../../static/img/pass.png" mode=""></image>
</view>
<view class="login-vp">
<input
class="vp-input"
v-model="password"
type="password"
placeholder-style="color: #ffffff"
:placeholder="$lang.lang.notices.numPsd"
/>
</view>
</view>
<view class="login-v">
<view class="login-vs">
<image src="../../static/img/safe.png" mode=""></image>
</view>
<view class="login-vp">
<input
class="vp-input"
v-model="passworded"
type="password"
placeholder-style="color: #ffffff"
:placeholder="$lang.lang.notices.nextPsd"
/>
</view>
</view>
<view class="login-v">
<view class="login-vs">
<image src="../../static/img/recommend.png" mode=""></image>
</view>
<view class="login-vp">
<input
class="vp-input"
v-model="referralCode"
type="text"
placeholder-style="color: #ffffff"
:placeholder="$lang.lang.notices.recommend"
/>
</view>
</view>
</view>
<view class="login-btns">
<view class="" @click="register">{{ $lang.lang.login.register }}</view>
</view>
<view class="agree" @click="agree = !agree">
<image
:src="agree ? '../../static/img/check_true.png' : '../../static/img/check_false.png'"
mode=""
></image>
<view
>{{ $lang.lang.notices.read
}}<text @click="showUser">{{ $lang.lang.notices.service }}</text></view
>
</view>
<user-agreement ref="userment" />
</view>
</template>
<script>
import userAgreement from '../../components/userAgreement/index.vue'
export default {
components: {
userAgreement
},
data() {
return {
closePopup: true,
areaIndex: 0,
locale: this.$request.getLocale(),
mobile: '',
password: '',
passworded: '',
code: '',
agree: false,
areaData: [],
areaName: [],
leftTime: 60,
referralCode: ''
}
},
onLoad() {
this.Country()
this.referralCode = this.$route.query.code
},
methods: {
changeLang(data) {
this.locale = data
// this.getLeviteData()
uni.setStorageSync('locale', data)
this.$lang.setLang(data)
},
handleDownload() {
if (uni.getSystemInfoSync().platform === 'android') {
console.log('运行Android上')
window.open('https://www.pgyer.com/qHcSOD1F', '_blank')
} else {
window.open('https://apps.apple.com/cn/app/e-c-logistics/id6466407990', '_blank')
console.log('运行iOS上')
}
},
showUser() {
this.$refs.userment.open()
},
Country() {
this.$request.get('/app-api/ecw/country/list-all').then((res) => {
if (res.code == 0 && res.data.length > 0) {
for (let i in res.data) {
this.areaData.push(res.data[i].tel)
if (this.$lang.locale == 'zh') {
this.areaName.push('+' + res.data[i].tel + ' ' + res.data[i].nameZh)
} else {
this.areaName.push('+' + res.data[i].tel + ' ' + res.data[i].nameEn)
}
}
}
})
},
areaChange(e) {
this.areaIndex = e.detail.value
},
ismobile(code, mobile) {
this.$request
.get('/app-api/param/validator/mobile', { code: code, mobile: mobile })
.then((res) => {
if (res.code == 0) {
this.$request
.post('/app-api/member/send-sms-code', {
areaCode: this.areaData[this.areaIndex],
mobile: this.mobile,
scene: 0
})
.then((res) => {
if (res.code == 0) {
this.countDown()
} else {
uni.showToast({
title: res.msg || 'error',
icon: 'none'
})
}
})
} else {
uni.showToast({
title: this.$lang.lang.notices.nophone,
icon: 'error'
})
}
})
},
sendCode() {
if (this.mobile == '') {
return uni.showToast({
title: this.$lang.lang.notices.phone,
icon: 'error'
})
}
if (this.leftTime < 60) {
return false
}
this.ismobile(this.areaData[this.areaIndex], this.mobile)
},
countDown() {
this.leftTime--
if (this.leftTime > 0) {
setTimeout(this.countDown, 1000)
} else {
this.leftTime = 60
}
},
register() {
let params = {
areaCode: this.areaData[this.areaIndex],
code: this.code,
englishName: '',
mobile: this.mobile,
password: this.password,
referralCode: this.referralCode,
registerPlatform: '2'
}
if (this.mobile == '') {
return uni.showToast({
title: this.$lang.lang.notices.phone,
icon: 'error'
})
}
if (this.code == '') {
return uni.showToast({
title: this.$lang.lang.notices.code,
icon: 'error'
})
}
if (this.password == '') {
return uni.showToast({
title: this.$lang.lang.notices.password,
icon: 'error'
})
}
if (this.passworded == '') {
return uni.showToast({
title: this.$lang.lang.notices.nextPsd,
icon: 'error'
})
} else {
var reg1 = new RegExp('^(?=.*[0-9])(?=.*[a-zA-Z])(.{6,32})$')
if (!reg1.test(this.passworded)) {
return uni.showToast({
title: this.$lang.lang.notices.numPsd,
icon: 'error'
})
}
}
if (this.password != this.passworded) {
return uni.showToast({
title: this.$lang.lang.notices.different,
icon: 'none'
})
}
if (!this.agree) {
return uni.showToast({
title: this.$lang.lang.notices.chooseService,
icon: 'none'
})
}
this.$request.post('/app-api/member/share-page/reg', params).then((res) => {
if (res.code == 0 && res.data) {
// uni.setStorageSync('Authorization', res.data.token)
uni.reLaunch({
url: '/pages/register/downloadTips'
})
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
})
}
}
}
</script>
<style>
@import url(../../static/css/register.css);
.downloadBox {
height: 100upx;
position: absolute;
top: 0;
left: 0;
width: 100%;
background: #373333c7;
padding: 10upx 54upx;
display: flex;
z-index: 10;
align-items: center;
}
.textAlert {
padding: 0 40upx;
color: #fff;
}
.logoImg {
height: 60upx;
width: 60upx;
}
.downloadBtn {
background: #5ba8dc;
padding: 4upx 20upx;
color: #fff;
font-size: 36upx;
border-radius: 100px;
}
.closeBtn-l {
color: #fff;
font-size: 24upx;
padding: 8px;
top: 0px;
position: absolute;
right: 70px;
}
</style>
......@@ -8,16 +8,16 @@ export default {
logExchange: 'exchange log',
redeemGifts: 'redeem gifts',
pointsCampaign: 'points campaign',
pointsRemark: 'Points can be redeemed differently at different outlets',
outlets: 'Please select a location',
remainder: val => {
pointsRemark: 'Redemption points are different at different pick-up points',
outlets: 'Please select the pick-up point',
remainder: (val) => {
return `剩余${val}份`
},
orderMail: 'Confirm the order',
code: 'Get a verification code',
codePlaceloader: 'Please enter a verification code',
codeError: 'The verification code is incorrect',
codeTimeText: val => {
codeTimeText: (val) => {
return `${val}秒后重新获取`
},
remark: 'Please enter a comment',
......@@ -25,11 +25,22 @@ export default {
redeemType: 'Redemption Method',
activityTime: 'Event time',
textLength: 'Enter up to 100 words',
totalScore: num => {
totalScore: (num) => {
return `已选${num}件,合计积分:`
},
totalScore1: 'integral',
addAddress: 'new address for additional shipments',
totalScoreError: 'Insufficient points',
to: 'to',
gift: 'gift:',
Num: 'Quantity:',
total: 'Total Score:',
exchangeType: 'Exchange Method:',
deliveryAddress: 'Delivery Address:',
branch: 'branch:',
downloadTitle: 'E&C logistics APP',
downloadTextDesc:
"E&C Logistics currently provides major services such as shipping bulk cargo, shipping full container, dedicated air transport, sea-air combined transport, special containers, overseas warehouses, e-commerce consolidation, etc., and has gradually expanded to include Valuation Premium, On hold control, and Door to door delivery, financial services, E-Survey and other value-added services.Adhering to the mission of 'Making Sino-African trade more convenient', E&C Logistics continues to improve service quality, strives for innovation, and has built its own with the logistics tracking system, cargo owners can check the status of goods in real time, control/release goods by themselves, download bills of lading, and provide SMS notification reminders at key nodes.",
downloadTextTips: 'Download the login APP and get points',
downloadBtn: 'Download'
}
export default {
"info": "persoal information",
"name": "name",
"nameEn": "English name",
"birth": "birthday",
"sex": "gender",
"phone": "phone number",
"adderss": "address",
"department": "department",
"job": "job position",
"edit": "edit",
"girl": "female",
"boy": "male",
"secret": "classifield",
"country": "country",
"city": "city"
}
\ No newline at end of file
info: 'persoal information',
name: 'name',
nameEn: 'English name',
birth: 'birthday',
sex: 'gender',
phone: 'phone number',
adderss: 'address',
department: 'department',
job: 'job position',
edit: 'edit',
girl: 'female',
boy: 'male',
secret: 'classifield',
country: 'country',
city: 'city',
confirm: 'confirm',
cancel: 'cancel',
placeholder: 'placeholder'
}
......@@ -8,16 +8,16 @@ export default {
logExchange: '兑换日志',
redeemGifts: '兑换礼品',
pointsCampaign: '积分活动',
pointsRemark: '不同点兑换积分不同',
outlets: '请选择',
remainder: val => {
pointsRemark: '不同提货点兑换积分不同',
outlets: '请选择提货',
remainder: (val) => {
return `剩余${val}份`
},
orderMail: '确定订单',
code: '获取验证码',
codePlaceloader: '请输入验证码',
codeError: '验证码错误',
codeTimeText: val => {
codeTimeText: (val) => {
return `${val}秒后重新获取`
},
remark: '请输入备注',
......@@ -25,11 +25,22 @@ export default {
redeemType: '兑换方式',
activityTime: '活动时间',
textLength: '最多输入100字',
totalScore: num => {
totalScore: (num) => {
return `已选${num}件,合计积分:`
},
totalScore1: '积分',
addAddress: '新增收货地址',
totalScoreError: '积分不足',
to: '',
gift: '礼品:',
Num: '数量:',
total: '合计积分:',
exchangeType: '兑换方式:',
deliveryAddress: '邮寄地址:',
branch: '网点:',
downloadTitle: '捷道国际货运APP',
downloadTextDesc:
"E&C Logistics捷道物流目前提供海运散货、海运整柜、专线空运、海空联运、特殊货柜、海外仓、电商集运等主要业务,陆续延伸出了保价赔付、控货、目的港门到门派送、金融服务、企业调研等增值服务。秉承着'让中非贸易更便捷'的使命,捷道物流不断提升服务质量,努力创新,搭建了自有的物流追踪系统,货主可以实时查询货物状态,自行控/放货、下载提单,重点节点提供短信通知提醒。",
downloadTextTips: '下载登录APP,获取积分',
downloadBtn: '立即下载'
}
export default {
"info": "个人信息",
"name": "姓名",
"nameEn": "英文名",
"birth": "生日",
"sex": "性别",
"phone": "电话",
"adderss": "地址",
"department": "部门",
"job": "岗位",
"edit": "修改",
"girl": "",
"boy": "",
"secret": "保密",
"country": "国家",
"city": "城市"
}
\ No newline at end of file
info: '个人信息',
name: '姓名',
nameEn: '英文名',
birth: '生日',
sex: '性别',
phone: '电话',
adderss: '地址',
department: '部门',
job: '岗位',
edit: '修改',
girl: '',
boy: '',
secret: '保密',
country: '国家',
city: '城市',
confirm: '确认',
cancel: '取消',
placeholder: '请输入'
}
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