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

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

parents 8fa1bb58 6c87a36b
<script> <script>
export default { export default {
onLaunch: function() { onLaunch: function () {
let Authorization = uni.getStorageSync('Authorization')
let Authorization = uni.getStorageSync('Authorization') if (!Authorization || Authorization == '') {
if((!Authorization || Authorization == '')){ if (
if(this.$route.path != '/pages/register/register' && this.$route.path != '/pages/activityShare/index' ){ this.$route.path != '/pages/register/register' &&
uni.redirectTo({ this.$route.path != '/pages/activityShare/index' &&
url: './pages/login/login' this.$route.path != '/pages/register/shareRegister' &&
}) this.$route.path != '/pages/register/downloadTips'
} ) {
uni.redirectTo({
} url: './pages/login/login'
if(Authorization && !this.$store.state.userInfo){ })
this.$store.dispatch('updateUserInfo')
} }
//#ifdef APP-PLUS }
plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) { if (Authorization && !this.$store.state.userInfo) {
// 获取 app的version this.$store.dispatch('updateUserInfo')
let appversion = wgtinfo.version; }
let versionCode = wgtinfo.versionCode //#ifdef APP-PLUS
// 存缓存 版本号 plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {
try { // 获取 app的version
uni.setStorageSync('appversion', appversion); let appversion = wgtinfo.version
uni.setStorageSync('versionCode', versionCode); let versionCode = wgtinfo.versionCode
} catch (e) {} // 存缓存 版本号
console.log( "appversion:" + appversion ); try {
} ); uni.setStorageSync('appversion', appversion)
//#endif uni.setStorageSync('versionCode', versionCode)
}, } catch (e) {}
onShow: function() { console.log('appversion:' + appversion)
}, })
onHide: function() { //#endif
} },
} onShow: function () {},
onHide: function () {}
}
</script> </script>
<style> <style>
@import url(@/static/css/main.css); @import url(@/static/css/main.css);
</style> </style>
...@@ -49,6 +49,18 @@ ...@@ -49,6 +49,18 @@
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
{
"path": "pages/register/shareRegister",
"style": {
"navigationStyle": "custom"
}
},
{
"path": "pages/register/downloadTips",
"style": {
"navigationStyle": "custom"
}
},
{ {
"path": "pages/consult/consult", "path": "pages/consult/consult",
"style": { "style": {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</view> </view>
<view class="container-main"> <view class="container-main">
<view class="activity-title">{{ <view class="activity-title">{{
locale === "zh" ? detailInfo.titleZh : detailInfo.titleEn locale === 'zh' ? detailInfo.titleZh : detailInfo.titleEn
}}</view> }}</view>
<view <view
class="activity-remark" class="activity-remark"
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<view class="cell-content"> <view class="cell-content">
<image class="cell-image" src="../../static/img/score_b.png"></image> <image class="cell-image" src="../../static/img/score_b.png"></image>
<span v-if="detailInfo.type == 4">{{ <span v-if="detailInfo.type == 4">{{
detail.shareLabel(detailInfo.getScoreOnce) detail.shareLabel(detailInfo.getScoreOnce)
}}</span> }}</span>
<span v-if="detailInfo.type == 3">{{ <span v-if="detailInfo.type == 3">{{
detail.referralCodeLabel(detailInfo.getScoreOnce) detail.referralCodeLabel(detailInfo.getScoreOnce)
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
low: ruleItem.low, low: ruleItem.low,
high: ruleItem.high, high: ruleItem.high,
score: ruleItem.score, score: ruleItem.score,
unit: detailInfo.extraOrderVtransportType == 1 ? "" : "kg" unit: detailInfo.extraOrderV.transportType == 1 ? '' : 'kg'
}) })
}} }}
</view> </view>
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
<view class="activity-cell"> <view class="activity-cell">
<view class="cell-label">{{ detail.rulesIllustrate }}</view> <view class="cell-label">{{ detail.rulesIllustrate }}</view>
<view class="cell-content"> <view class="cell-content">
{{ locale === "zh" ? detailInfo.descZh : detailInfo.descEn }} {{ locale === 'zh' ? detailInfo.descZh : detailInfo.descEn }}
</view> </view>
</view> </view>
</view> </view>
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
</template> </template>
<script> <script>
import dHeader from "../../components/dHeader/index.vue" import dHeader from '../../components/dHeader/index.vue'
export default { export default {
components: { components: {
dHeader dHeader
...@@ -106,7 +106,7 @@ export default { ...@@ -106,7 +106,7 @@ export default {
// 获取详情 // 获取详情
getDetail() { getDetail() {
this.$request 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 }) => { .then(({ code, data }) => {
if (code === 0 && data) { if (code === 0 && data) {
this.detailInfo = data this.detailInfo = data
...@@ -115,15 +115,14 @@ export default { ...@@ -115,15 +115,14 @@ export default {
}, },
// 时间范围返回 // 时间范围返回
getTimeRange(start, end) { getTimeRange(start, end) {
const formatDate = (timestamp) => { const formatDate = (timestamp) => {
const date = new Date(timestamp) const date = new Date(timestamp)
const year = date.getFullYear() const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, "0") const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, "0") const day = String(date.getDate()).padStart(2, '0')
const hours = String(date.getHours()).padStart(2, "0") const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, "0") const minutes = String(date.getMinutes()).padStart(2, '0')
const seconds = String(date.getSeconds()).padStart(2, "0") const seconds = String(date.getSeconds()).padStart(2, '0')
return `${year}-${month}-${day}` return `${year}-${month}-${day}`
} }
return `${formatDate(start)}${this.detail.to}${formatDate(end)}` return `${formatDate(start)}${this.detail.to}${formatDate(end)}`
......
...@@ -2,23 +2,15 @@ ...@@ -2,23 +2,15 @@
<view> <view>
<dHeader :title="$lang.lang.log.logExchange"></dHeader> <dHeader :title="$lang.lang.log.logExchange"></dHeader>
<view class="container"> <view class="container">
<view <view class="item" v-for="item in list" :key="item.id" @click="toDetail(item.id)">
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-title">{{ $lang.lang.log.redeemGifts }}</div>
<div class="item-box"> <div class="item-box">
<div class="box-img"> <div class="box-img">
<image <image class="imgs" :src="locale === 'zh' ? item.imgZh : item.imgEn"></image>
class="imgs"
:src="locale === 'zh' ? item.imgZh : item.imgEn"
></image>
</div> </div>
<div class="box-content"> <div class="box-content">
<div class="content-text"> <div class="content-text">
{{ locale === "zh" ? item.rewardTitleZh : item.rewardTitleEn }} {{ locale === 'zh' ? item.rewardTitleZh : item.rewardTitleEn }}
</div> </div>
<div class="content-time">{{ formatDate(item.createTime) }}</div> <div class="content-time">{{ formatDate(item.createTime) }}</div>
</div> </div>
...@@ -33,63 +25,57 @@ ...@@ -33,63 +25,57 @@
</template> </template>
<script> <script>
import dHeader from "../../components/dHeader/index.vue"; import dHeader from '../../components/dHeader/index.vue'
export default { export default {
components: { components: {
dHeader, dHeader
}, },
data() { data() {
return { return {
list: [], list: []
}; }
}, },
created() { created() {
this.getList(); this.getList()
}, },
computed: { computed: {
locale() { locale() {
return this.$lang.locale; return this.$lang.locale
}, }
}, },
methods: { methods: {
toDetail(id) { toDetail(id) {
uni.navigateTo({ uni.navigateTo({
url: "/pages/exchange_detail/exchange_detail?id=" + id, url: '/pages/exchange_detail/exchange_detail?id=' + id
}); })
}, },
// 获取礼品列表 // 获取礼品列表
async getList() { async getList() {
try { try {
const memberId = this.$store.getters.id; const memberId = this.$store.getters.id
const { code, data } = await this.$request.post( const { code, data } = await this.$request.post('/app-api/reward/redeem/record/list', {
"/app-api/reward/redeem/record/list", memberId
{ })
memberId,
}
);
if (code == 0 && data) { if (code == 0 && data) {
this.list = data; this.list = data
} }
} catch (error) { } catch (error) {
console.log(error); console.log(error)
} }
}, },
// 时间戳转换为YYYY-MM-DD HH:mm:ss // 时间戳转换为YYYY-MM-DD HH:mm:ss
formatDate(time) { formatDate(time) {
const date = new Date(time); const date = new Date(time)
const Y = date.getFullYear() + "-"; const Y = date.getFullYear() + '-'
const M = const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
(date.getMonth() + 1 < 10 const D = `${date.getDate()}`.padStart(2, '0') + ' '
? "0" + (date.getMonth() + 1) const h = `${date.getHours()}`.padStart(2, '0') + ':'
: date.getMonth() + 1) + "-"; const m = `${date.getMinutes()}`.padStart(2, '0') + ':'
const D = date.getDate() + " "; const s = `${date.getSeconds()}`.padStart(2, '0')
const h = date.getHours() + ":"; return Y + M + D + h + m + s
const m = date.getMinutes() + ":"; }
const s = date.getSeconds(); }
return Y + M + D + h + m + s; }
},
},
};
</script> </script>
<style lang="scss"> <style lang="scss">
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<view class="container"> <view class="container">
<view class="item" v-for="(item, index) in list" :key="index"> <view class="item" v-for="(item, index) in list" :key="index">
<div class="item-title"> <div class="item-title">
{{ locale == "zh" ? item.sourceTypeZh : item.sourceTypeEn }} {{ locale == 'zh' ? item.sourceTypeZh : item.sourceTypeEn }}
</div> </div>
<div class="item-box"> <div class="item-box">
<div class="box-img"> <div class="box-img">
...@@ -12,20 +12,16 @@ ...@@ -12,20 +12,16 @@
</div> </div>
<div class="box-content"> <div class="box-content">
<div class="content-text"> <div class="content-text">
{{ locale == "zh" ? item.descZh : item.descEn }} {{ locale == 'zh' ? item.descZh : item.descEn }}
</div> </div>
<div class="content-time">{{ formatDate(item.createTime) }}</div> <div class="content-time">{{ formatDate(item.createTime) }}</div>
</div> </div>
<div class="box-right"> <div class="box-right">
<view class="box-right-num" v-if="item.rewardCount" <view class="box-right-num" v-if="item.rewardCount">X{{ item.rewardCount }}</view>
>X{{ item.rewardCount }}</view
>
<view class="box-right-img" v-if="item.expired"> <view class="box-right-img" v-if="item.expired">
<image src="../../static/img/overdue.png"></image> <image src="../../static/img/overdue.png"></image>
</view> </view>
<view class="box-right-text" <view class="box-right-text">{{ item.operateType }}&ensp;{{ item.scoreCount }}</view>
>{{ item.operateType }}&ensp;{{ item.scoreCount }}</view
>
</div> </div>
</div> </div>
</view> </view>
...@@ -34,68 +30,62 @@ ...@@ -34,68 +30,62 @@
</template> </template>
<script> <script>
import dHeader from "../../components/dHeader/index.vue"; import dHeader from '../../components/dHeader/index.vue'
export default { export default {
components: { components: {
dHeader, dHeader
}, },
data() { data() {
return { return {
list: [], list: []
}; }
}, },
created() { created() {
this.getList(); this.getList()
}, },
computed: { computed: {
locale() { locale() {
return this.$lang.locale; return this.$lang.locale
}, },
// 图片数组 // 图片数组
imgArr() { imgArr() {
return { return {
1: "../../static/img/log_type1.png", 1: '../../static/img/log_type1.png',
2: "../../static/img/log_type2.png", 2: '../../static/img/log_type2.png',
4: "../../static/img/log_type4.png", 4: '../../static/img/log_type4.png',
5: "../../static/img/log_type5.png", 5: '../../static/img/log_type5.png',
6: "../../static/img/log_type6.png", 6: '../../static/img/log_type6.png',
7: "../../static/img/log_type7.png", 7: '../../static/img/log_type7.png',
8: "../../static/img/log_type8.png", 8: '../../static/img/log_type8.png'
}; }
}, }
}, },
methods: { methods: {
// 获取列表 // 获取列表
async getList() { async getList() {
try { try {
const id = this.$store.getters.id; const id = this.$store.getters.id
const { code, data } = await this.$request.post( const { code, data } = await this.$request.post('/app-api/member/user-score/log', {
"/app-api/member/user-score/log", id
{ })
id,
}
);
if (code == 0 && data) { if (code == 0 && data) {
this.list = data; this.list = data
} }
} catch (err) {} } catch (err) {}
}, },
// 时间戳转换为YYYY-MM-DD HH:mm:ss // 时间戳转换为YYYY-MM-DD HH:mm:ss
formatDate(time) { formatDate(time) {
const date = new Date(time); const date = new Date(time)
const Y = date.getFullYear() + "-"; const Y = date.getFullYear() + '-'
const M = const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
(date.getMonth() + 1 < 10 const D = `${date.getDate()}`.padStart(2, '0') + ' '
? "0" + (date.getMonth() + 1) const h = `${date.getHours()}`.padStart(2, '0') + ':'
: date.getMonth() + 1) + "-"; const m = `${date.getMinutes()}`.padStart(2, '0') + ':'
const D = date.getDate() + " "; const s = `${date.getSeconds()}`.padStart(2, '0')
const h = date.getHours() + ":"; return Y + M + D + h + m + s
const m = date.getMinutes() + ":"; }
const s = date.getSeconds(); }
return Y + M + D + h + m + s; }
},
},
};
</script> </script>
<style lang="scss"> <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 @@ ...@@ -99,19 +99,18 @@
<view class="consult-item-label required-icon"> <view class="consult-item-label required-icon">
<text>{{ $lang.lang.myInfo.city }}</text> <text>{{ $lang.lang.myInfo.city }}</text>
</view> </view>
<view class="consult-item-put"> <view class="consult-item-put" @click="showCityPicker">
<picker <view :class="{ placeholder: !params.city }">
style="width: 100%" {{ params.cityValue || $lang.lang.notices.city }}
:range="cityArray" </view>
:range-key="rangeKey == 'zh' ? 'titleZh' : 'titleEn'"
@change="bindCityChange"
>
<view :class="{ placeholder: !params.city }">{{
params.cityValue ? params.cityValue : $lang.lang.notices.city
}}</view>
</picker>
<image class="rgt" src="../../static/img/rgt.png" mode=""></image> <image class="rgt" src="../../static/img/rgt.png" mode=""></image>
</view> </view>
<cityListPicker
v-model="cityPickerPopup"
:dataSource="cityArray"
:pickerValues="params.city"
@reLoad="changeCity"
></cityListPicker>
</view> </view>
<view class="consult-item"> <view class="consult-item">
<view class="consult-item-label"> <view class="consult-item-label">
...@@ -150,9 +149,11 @@ ...@@ -150,9 +149,11 @@
<script> <script>
import dHeader from '../../components/dHeader/index.vue' import dHeader from '../../components/dHeader/index.vue'
import cityListPicker from './cityListPicker.vue'
export default { export default {
components: { components: {
dHeader dHeader,
cityListPicker
}, },
data() { data() {
const currentDate = this.getDate({ const currentDate = this.getDate({
...@@ -177,7 +178,8 @@ export default { ...@@ -177,7 +178,8 @@ export default {
// 城市列表 // 城市列表
cityArray: [], cityArray: [],
// 是否为首次进入 没有国家城市信息 // 是否为首次进入 没有国家城市信息
first: false first: false,
cityPickerPopup: false //城市下拉列表展示
} }
}, },
onLoad(route) { onLoad(route) {
...@@ -198,7 +200,22 @@ export default { ...@@ -198,7 +200,22 @@ export default {
return this.$lang.locale == 'zh' ? 'zh' : 'en' return this.$lang.locale == 'zh' ? 'zh' : 'en'
} }
}, },
watch: {
cityPickerPopup(newValue, oldValue) {
console.log('99999', newValue)
}
},
methods: { 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() { submitForm() {
if (!this.params.nickname) { if (!this.params.nickname) {
uni.showToast({ uni.showToast({
...@@ -264,6 +281,11 @@ export default { ...@@ -264,6 +281,11 @@ export default {
} }
const { city, country, countryTitleZh, countryTitleEn, cityTitleZh, cityTitleEn } = const { city, country, countryTitleZh, countryTitleEn, cityTitleZh, cityTitleEn } =
res.data res.data
if (this.first) {
this.params.nickname = ''
this.params.englishName = ''
}
this.params.city = city this.params.city = city
this.params.country = country this.params.country = country
this.params.cityValue = this.rangeKey == 'zh' ? cityTitleZh : cityTitleEn this.params.cityValue = this.rangeKey == 'zh' ? cityTitleZh : cityTitleEn
...@@ -351,14 +373,6 @@ export default { ...@@ -351,14 +373,6 @@ export default {
this.cityArray = res.data 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)
} }
} }
} }
......
...@@ -9,11 +9,8 @@ ...@@ -9,11 +9,8 @@
v-for="item in menu" v-for="item in menu"
:key="item.value" :key="item.value"
> >
<text <text class="header-text" :class="{ 'header-active': item.value == current }">
class="header-text" {{ locale === 'zh' ? item.labelZh : item.labelEn }}
:class="{ 'header-active': item.value == current }"
>
{{ locale === "zh" ? item.labelZh : item.labelEn }}
</text> </text>
</view> </view>
</view> </view>
...@@ -27,7 +24,7 @@ ...@@ -27,7 +24,7 @@
</view> </view>
<view class="content-info"> <view class="content-info">
<view class="info-name">{{ showAddress.name }}</view> <view class="info-name">{{ showAddress.name }}</view>
<view class="info-phone" <view class="info-phone" v-if="showAddress.areaCode"
>+{{ showAddress.areaCode }}&ensp;{{ showAddress.phone }}</view >+{{ showAddress.areaCode }}&ensp;{{ showAddress.phone }}</view
> >
</view> </view>
...@@ -42,7 +39,7 @@ ...@@ -42,7 +39,7 @@
</view> </view>
<view class="address-content address-content2"> <view class="address-content address-content2">
<view class="content-text"> <view class="content-text">
{{ locale === "zh" ? orderInfo.nodeZh : orderInfo.nodeEn }} {{ locale === 'zh' ? orderInfo.nodeZh : orderInfo.nodeEn }}
</view> </view>
</view> </view>
</view> </view>
...@@ -50,39 +47,28 @@ ...@@ -50,39 +47,28 @@
<view class="main-gift"> <view class="main-gift">
<view class="gift"> <view class="gift">
<view class="gift-image"> <view class="gift-image">
<image <image class="img" :src="locale === 'zh' ? orderInfo.imgZh : orderInfo.imgEn"></image>
class="img"
:src="locale === 'zh' ? orderInfo.imgZh : orderInfo.imgEn"
></image>
<view class="gift-tag"> <view class="gift-tag">
<view class="tags"> <view class="tags">
<image <image class="tag-image" src="../../static/img/score.png"></image>
class="tag-image"
src="../../static/img/score.png"
></image>
<view class="tag-text">{{ orderInfo.pointsRequire }}</view> <view class="tag-text">{{ orderInfo.pointsRequire }}</view>
</view> </view>
</view> </view>
<view class="foot-tag">{{ <view class="foot-tag">{{ integral.remainder(orderInfo.quantityRemain) }}</view>
integral.remainder(orderInfo.quantityRemain)
}}</view>
</view> </view>
<view class="gift-content"> <view class="gift-content">
<view class="gift-content-text">{{ <view class="gift-content-text">{{
locale === "zh" ? orderInfo.titleZh : orderInfo.titleEn locale === 'zh' ? orderInfo.titleZh : orderInfo.titleEn
}}</view> }}</view>
<view class="gift-cell"> <view class="gift-cell">
<view class="cell-label">{{ integral.redeemType }}</view> <view class="cell-label">{{ integral.redeemType }}</view>
<view class="cell-text">{{ <view class="cell-text">{{ handExchangeText(orderInfo.pickMethodList) }}</view>
handExchangeText(orderInfo.pickMethodList)
}}</view>
</view> </view>
<view class="gift-cell"> <view class="gift-cell">
<view class="cell-label">{{ integral.activityTime }}</view> <view class="cell-label">{{ integral.activityTime }}</view>
<view class="cell-text" <view class="cell-text"
>{{ orderInfo.startTime | $parseTime("{y}-{m}-{d}") >{{ orderInfo.startTime | $parseTime('{y}-{m}-{d}') }}{{ integral.to
}}{{ integral.to }}{{ orderInfo.endTime | $parseTime('{y}-{m}-{d}') }}</view
}}{{ orderInfo.endTime | $parseTime("{y}-{m}-{d}") }}</view
> >
</view> </view>
</view> </view>
...@@ -92,11 +78,8 @@ ...@@ -92,11 +78,8 @@
</view> </view>
</view> </view>
<view class="main-footer"> <view class="main-footer">
<input <view class="mobile">{{ $store.state.userInfo.mobile }}</view>
class="inp" <input class="inp" :placeholder="integral.codePlaceloader" v-model="code" />
:placeholder="integral.codePlaceloader"
v-model="code"
/>
<view class="btn" @click="handleCode">{{ <view class="btn" @click="handleCode">{{
codeTime == 0 ? integral.code : integral.codeTimeText(codeTime) codeTime == 0 ? integral.code : integral.codeTimeText(codeTime)
}}</view> }}</view>
...@@ -118,19 +101,11 @@ ...@@ -118,19 +101,11 @@
<view class="placeholder">{{ integral.textLength }}</view> <view class="placeholder">{{ integral.textLength }}</view>
</view> </view>
<view class="container-text"> <view class="container-text">
{{ integral.totalScore(num) {{ integral.totalScore(num) }}<view class="container-num">{{ total }}</view
}}<view class="container-num">{{ total }}</view
>{{ integral.totalScore1 }} >{{ integral.totalScore1 }}
</view> </view>
<view class="container-btn" @click="bindSubmitOrder">{{ <view class="container-btn" @click="bindSubmitOrder">{{ integral.orderMail }}</view>
integral.orderMail <uni-popup ref="popup" type="bottom" border-radius="10px 10px 0 0" background-color="#fff">
}}</view>
<uni-popup
ref="popup"
type="bottom"
border-radius="10px 10px 0 0"
background-color="#fff"
>
<view class="popup-list"> <view class="popup-list">
<view <view
class="popup-list-item" class="popup-list-item"
...@@ -159,16 +134,57 @@ ...@@ -159,16 +134,57 @@
<view class="text">{{ integral.addAddress }}</view> <view class="text">{{ integral.addAddress }}</view>
</view> </view>
</uni-popup> </uni-popup>
<!-- 确认提交弹窗信息 -->
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog
type="success"
:cancelText="$lang.lang.myInfo.cancel"
:confirmText="$lang.lang.myInfo.confirm"
:title="$lang.lang.notices.notice"
@confirm="dialogConfirm"
@close="dialogClose"
>
<view class="content">
<view
>{{ $lang.lang.integral.branch }}
{{ locale === 'zh' ? orderInfo.nodeZh : orderInfo.nodeEn }}
</view>
<view
>{{ $lang.lang.integral.gift }}
{{ locale === 'zh' ? orderInfo.titleZh : orderInfo.titleEn }}
</view>
<view
>{{ $lang.lang.integral.Num }}
{{ num }}
</view>
<view
>{{ $lang.lang.integral.total }}
{{ total }}
</view>
<view
>{{ $lang.lang.integral.exchangeType }}
{{
locale === 'zh' ? handleExchangeSelected().labelZh : handleExchangeSelected().labelEn
}}
</view>
<view v-if="current != 1 && addressId"
>{{ $lang.lang.integral.deliveryAddress }}
{{ showAddress.address }}
</view>
</view>
</uni-popup-dialog>
</uni-popup>
</view> </view>
</template> </template>
<script> <script>
import dHeader from "../../components/dHeader/index.vue"; import dHeader from '../../components/dHeader/index.vue'
import count from "./components/count.vue"; import count from './components/count.vue'
export default { export default {
components: { components: {
dHeader, dHeader,
count, count
}, },
data() { data() {
return { return {
...@@ -178,7 +194,7 @@ export default { ...@@ -178,7 +194,7 @@ export default {
// 数量 // 数量
num: 1, num: 1,
// 备注 // 备注
remark: "", remark: '',
// 礼品详细信息 // 礼品详细信息
orderInfo: {}, orderInfo: {},
// 礼品id // 礼品id
...@@ -193,178 +209,180 @@ export default { ...@@ -193,178 +209,180 @@ export default {
// 地址id // 地址id
addressId: null, addressId: null,
// 验证码 // 验证码
code: "", code: '',
// 验证码倒计时 // 验证码倒计时
codeTime: 0, codeTime: 0
}; }
}, },
onLoad(route) { onLoad(route) {
this.id = route.id; this.id = route.id
uni.$on("refreshPreviousPage", (params) => { uni.$on('refreshPreviousPage', (params) => {
this.bindPopup(); this.bindPopup()
}); })
this.getOrder(); this.getOrder()
}, },
onShow() { onShow() {
this.getAddress(); this.getAddress()
}, },
computed: { computed: {
locale() { locale() {
return this.$lang.locale; return this.$lang.locale
}, },
integral() { integral() {
return this.$lang.lang.integral; return this.$lang.lang.integral
}, },
// 计算总积分 // 计算总积分
total() { total() {
if (this.orderInfo.pointsRequire) { if (this.orderInfo.pointsRequire) {
return this.num * this.orderInfo.pointsRequire; return this.num * this.orderInfo.pointsRequire
} }
return 0; return 0
}, }
}, },
methods: { methods: {
// 送货类型切换 // 送货类型切换
menuChange(i) { menuChange(i) {
this.current = i; this.current = i
}, },
// 获取订单信息 礼品详情 // 获取订单信息 礼品详情
async getOrder() { async getOrder() {
try { try {
const { code, data, msg } = await this.$request.get( const { code, data, msg } = await this.$request.get('/app-api/ecw/reward/get', {
"/app-api/ecw/reward/get", id: this.id
{ })
id: this.id,
}
);
if (code === 0 && data) { if (code === 0 && data) {
console.log(data); console.log(data)
this.orderInfo = data; this.orderInfo = data
this.menu = data.pickMethodList; this.menu = data.pickMethodList
this.current = data.pickMethodList[0].value; this.current = data.pickMethodList[0].value
} else { } else {
uni.showToast({ uni.showToast({
title: msg, title: msg,
icon: "none", icon: 'none'
}); })
} }
} catch (error) { } catch (error) {
console.log(error); console.log(error)
} }
}, },
// 获取验证码 // 获取验证码
async handleCode() { async handleCode() {
if (this.codeTime > 0) return; if (this.codeTime > 0) return
this.codeTime = 60; this.codeTime = 60
this.timer = setInterval(() => { this.timer = setInterval(() => {
this.codeTime--; this.codeTime--
if (this.codeTime <= 0) { if (this.codeTime <= 0) {
clearInterval(this.timer); clearInterval(this.timer)
} }
}, 1000); }, 1000)
try { try {
const memberId = this.$store.getters.id; const memberId = this.$store.getters.id
await this.$request.post("/app-api/reward/redeem/send-sms-code", { await this.$request.post('/app-api/reward/redeem/send-sms-code', {
memberId, memberId
}); })
} catch (error) {} } catch (error) {}
}, },
// 打开弹出层 // 打开弹出层
bindPopup() { bindPopup() {
this.$refs.popup.open(); this.$refs.popup.open()
}, },
// 获取地址列表 // 获取地址列表
async getAddress() { async getAddress() {
try { try {
const id = this.$store.getters.id; const id = this.$store.getters.id
const { code, data } = await this.$request.get( const { code, data } = await this.$request.get('/app-api/member/user-address/member/list', {
"/app-api/member/user-address/member/list", id
{ })
id, if (code !== 0) return
} this.addressList = data
);
if (code !== 0) return;
this.addressList = data;
if (this.first) { if (this.first) {
this.first = false; this.first = false
const defaultAddress = this.addressList.find( const defaultAddress = this.addressList.find((item) => item.isDefault === 0)
(item) => item.isDefault === 0
);
if (defaultAddress) { if (defaultAddress) {
this.check = defaultAddress.id; this.check = defaultAddress.id
this.addressId = defaultAddress.id; this.addressId = defaultAddress.id
this.showAddress = defaultAddress; this.showAddress = defaultAddress
} else if (this.addressList.length > 0) { } else if (this.addressList.length > 0) {
this.showAddress = this.addressList[0]; this.showAddress = this.addressList[0]
this.addressId = this.addressList[0].id; this.addressId = this.addressList[0].id
} }
} }
// this.addressChange(); // this.addressChange();
} catch (error) { } catch (error) {
console.error(error); console.error(error)
} }
}, },
// 切换默认地址 // 切换默认地址
async bindCheck(e, item) { async bindCheck(e, item) {
let that = this; let that = this
that.check = item.id; that.check = item.id
try { try {
await that.$request.post("/app-api/member/user-address/update", { await that.$request.post('/app-api/member/user-address/update', {
...item, ...item,
isDefault: 0, isDefault: 0
}); })
} catch (err) {} } catch (err) {}
}, },
// 切换地址 // 切换地址
bindAddress(id) { bindAddress(id) {
this.addressId = id; this.addressId = id
this.addressChange(); this.addressChange()
}, },
// 地址信息更改 // 地址信息更改
addressChange() { addressChange() {
const i = this.addressList.findIndex( const i = this.addressList.findIndex((item) => item.id === this.addressId)
(item) => item.id === this.addressId if (i >= 0) this.showAddress = this.addressList[i]
); this.$refs.popup.close()
if (i >= 0) this.showAddress = this.addressList[i];
this.$refs.popup.close();
}, },
// 新增地址 // 新增地址
toAddressAdd() { toAddressAdd() {
uni.navigateTo({ uni.navigateTo({
url: "/pages/address_add/address_add", url: '/pages/address_add/address_add'
}); })
this.$refs.popup.close(); this.$refs.popup.close()
}, },
toEditAddress(id) { toEditAddress(id) {
uni.navigateTo({ uni.navigateTo({
url: "/pages/address_edit/address_edit?id=" + id, url: '/pages/address_edit/address_edit?id=' + id
}); })
this.$refs.popup.close(); this.$refs.popup.close()
}, },
// 兑换类型返回 // 兑换类型返回
handExchangeText(list) { handExchangeText(list) {
if (!list) return ""; if (!list) return ''
let str = this.locale === "zh" ? "Zh" : "En"; let str = this.locale === 'zh' ? 'Zh' : 'En'
return list.map((item) => item[`label${str}`]).join("/"); return list.map((item) => item[`label${str}`]).join('/')
},
//获取选中的兑换类型
handleExchangeSelected() {
return this.orderInfo.pickMethodList.filter((element) => {
return this.current == element.value
})[0]
}, },
// 提交订单 // 提交订单
bindSubmitOrder() { bindSubmitOrder() {
if (!this.code) { if (!this.code) {
uni.showToast({ uni.showToast({
title: this.integral.codePlaceloader, title: this.integral.codePlaceloader,
icon: "none", icon: 'none'
}); })
return; return
} }
this.$refs.alertDialog.open()
},
dialogConfirm() {
uni.showLoading({ uni.showLoading({
title: this.$lang.lang.notices.loading, title: this.$lang.lang.notices.loading
}); })
this.submitOrder(); this.submitOrder()
},
dialogClose() {
this.$refs.alertDialog.close()
}, },
// 提交订单 // 提交订单
async submitOrder() { async submitOrder() {
try { try {
const memberId = this.$store.getters.id; const memberId = this.$store.getters.id
const params = { const params = {
memberId, memberId,
code: this.code, code: this.code,
...@@ -375,29 +393,26 @@ export default { ...@@ -375,29 +393,26 @@ export default {
redeemType: this.current, redeemType: this.current,
rewardCount: this.num, rewardCount: this.num,
rewardId: this.orderInfo.id, rewardId: this.orderInfo.id,
remark: this.remark, remark: this.remark
}; }
const { code, msg } = await this.$request.post( const { code, msg } = await this.$request.post('/app-api/reward/redeem/single', params)
"/app-api/reward/redeem/single",
params
);
if (code === 0) { if (code === 0) {
uni.reLaunch({ uni.reLaunch({
url: "/pages/index/index", url: '/pages/integral/integral'
}); })
} else { } else {
uni.showToast({ uni.showToast({
title: msg, title: msg,
icon: "none", icon: 'none'
}); })
} }
} catch (error) { } catch (error) {
console.log(error); console.log(error)
} }
uni.hideLoading(); uni.hideLoading()
}, }
}, }
}; }
</script> </script>
<style lang="scss"> <style lang="scss">
page { page {
...@@ -552,7 +567,7 @@ page { ...@@ -552,7 +567,7 @@ page {
.main-footer { .main-footer {
box-sizing: border-box; box-sizing: border-box;
font-size: 24upx; font-size: 24upx;
padding: 0 64upx; padding: 0 28upx;
width: 100%; width: 100%;
display: flex; display: flex;
height: 84upx; height: 84upx;
...@@ -654,6 +669,9 @@ page { ...@@ -654,6 +669,9 @@ page {
margin-right: 10upx; margin-right: 10upx;
} }
} }
.mobile {
color: #4f4848;
}
.popup-list-item-text { .popup-list-item-text {
min-height: 80upx; min-height: 80upx;
flex: 1; flex: 1;
......
<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 { ...@@ -8,16 +8,16 @@ export default {
logExchange: 'exchange log', logExchange: 'exchange log',
redeemGifts: 'redeem gifts', redeemGifts: 'redeem gifts',
pointsCampaign: 'points campaign', pointsCampaign: 'points campaign',
pointsRemark: 'Points can be redeemed differently at different outlets', pointsRemark: 'Redemption points are different at different pick-up points',
outlets: 'Please select a location', outlets: 'Please select the pick-up point',
remainder: val => { remainder: (val) => {
return `剩余${val}份` return `剩余${val}份`
}, },
orderMail: 'Confirm the order', orderMail: 'Confirm the order',
code: 'Get a verification code', code: 'Get a verification code',
codePlaceloader: 'Please enter a verification code', codePlaceloader: 'Please enter a verification code',
codeError: 'The verification code is incorrect', codeError: 'The verification code is incorrect',
codeTimeText: val => { codeTimeText: (val) => {
return `${val}秒后重新获取` return `${val}秒后重新获取`
}, },
remark: 'Please enter a comment', remark: 'Please enter a comment',
...@@ -25,11 +25,22 @@ export default { ...@@ -25,11 +25,22 @@ export default {
redeemType: 'Redemption Method', redeemType: 'Redemption Method',
activityTime: 'Event time', activityTime: 'Event time',
textLength: 'Enter up to 100 words', textLength: 'Enter up to 100 words',
totalScore: num => { totalScore: (num) => {
return `已选${num}件,合计积分:` return `已选${num}件,合计积分:`
}, },
totalScore1: 'integral', totalScore1: 'integral',
addAddress: 'new address for additional shipments', addAddress: 'new address for additional shipments',
totalScoreError: 'Insufficient points', totalScoreError: 'Insufficient points',
to: 'to', 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 { export default {
"info": "persoal information", info: 'persoal information',
"name": "name", name: 'name',
"nameEn": "English name", nameEn: 'English name',
"birth": "birthday", birth: 'birthday',
"sex": "gender", sex: 'gender',
"phone": "phone number", phone: 'phone number',
"adderss": "address", adderss: 'address',
"department": "department", department: 'department',
"job": "job position", job: 'job position',
"edit": "edit", edit: 'edit',
"girl": "female", girl: 'female',
"boy": "male", boy: 'male',
"secret": "classifield", secret: 'classifield',
"country": "country", country: 'country',
"city": "city" city: 'city',
} confirm: 'confirm',
\ No newline at end of file cancel: 'cancel',
placeholder: 'placeholder'
}
...@@ -8,16 +8,16 @@ export default { ...@@ -8,16 +8,16 @@ export default {
logExchange: '兑换日志', logExchange: '兑换日志',
redeemGifts: '兑换礼品', redeemGifts: '兑换礼品',
pointsCampaign: '积分活动', pointsCampaign: '积分活动',
pointsRemark: '不同点兑换积分不同', pointsRemark: '不同提货点兑换积分不同',
outlets: '请选择', outlets: '请选择提货',
remainder: val => { remainder: (val) => {
return `剩余${val}份` return `剩余${val}份`
}, },
orderMail: '确定订单', orderMail: '确定订单',
code: '获取验证码', code: '获取验证码',
codePlaceloader: '请输入验证码', codePlaceloader: '请输入验证码',
codeError: '验证码错误', codeError: '验证码错误',
codeTimeText: val => { codeTimeText: (val) => {
return `${val}秒后重新获取` return `${val}秒后重新获取`
}, },
remark: '请输入备注', remark: '请输入备注',
...@@ -25,11 +25,22 @@ export default { ...@@ -25,11 +25,22 @@ export default {
redeemType: '兑换方式', redeemType: '兑换方式',
activityTime: '活动时间', activityTime: '活动时间',
textLength: '最多输入100字', textLength: '最多输入100字',
totalScore: num => { totalScore: (num) => {
return `已选${num}件,合计积分:` return `已选${num}件,合计积分:`
}, },
totalScore1: '积分', totalScore1: '积分',
addAddress: '新增收货地址', addAddress: '新增收货地址',
totalScoreError: '积分不足', totalScoreError: '积分不足',
to: '', to: '',
gift: '礼品:',
Num: '数量:',
total: '合计积分:',
exchangeType: '兑换方式:',
deliveryAddress: '邮寄地址:',
branch: '网点:',
downloadTitle: '捷道国际货运APP',
downloadTextDesc:
"E&C Logistics捷道物流目前提供海运散货、海运整柜、专线空运、海空联运、特殊货柜、海外仓、电商集运等主要业务,陆续延伸出了保价赔付、控货、目的港门到门派送、金融服务、企业调研等增值服务。秉承着'让中非贸易更便捷'的使命,捷道物流不断提升服务质量,努力创新,搭建了自有的物流追踪系统,货主可以实时查询货物状态,自行控/放货、下载提单,重点节点提供短信通知提醒。",
downloadTextTips: '下载登录APP,获取积分',
downloadBtn: '立即下载'
} }
export default { export default {
"info": "个人信息", info: '个人信息',
"name": "姓名", name: '姓名',
"nameEn": "英文名", nameEn: '英文名',
"birth": "生日", birth: '生日',
"sex": "性别", sex: '性别',
"phone": "电话", phone: '电话',
"adderss": "地址", adderss: '地址',
"department": "部门", department: '部门',
"job": "岗位", job: '岗位',
"edit": "修改", edit: '修改',
"girl": "", girl: '',
"boy": "", boy: '',
"secret": "保密", secret: '保密',
"country": "国家", country: '国家',
"city": "城市" city: '城市',
} confirm: '确认',
\ No newline at end of file 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