feat: add and optimize multilingual text resources
- add new language packs for multiple pages and components including category, cart, order, member center, distribution, etc. - add Chinese and English translations for new features and UI text - fix navigation service error message to use multilingual text - update component templates to use dynamic language translation instead of hardcoded text - adjust code indentation and formatting for consistency
This commit is contained in:
@@ -16,11 +16,11 @@
|
||||
<view class="oper-wrapper" :style="{ display: sD, top: tp }">
|
||||
<view class="oper">
|
||||
<view class="btn-wrapper" v-if="sO">
|
||||
<view @click="fClose" class="cancel" :style="{ width: bW }"><text>取消</text></view>
|
||||
<view @click="fClose" class="cancel" :style="{ width: bW }"><text>{{ $lang('components.imgCropping.cancel') }}</text></view>
|
||||
<view @click="fSelect" :style="{ width: bW }"><text class="iconfont icon-shangchuan"></text></view>
|
||||
<view @click="fRotate" :style="{ width: bW, display: bD }"><text class="iconfont icon-xuanzhuan"></text></view>
|
||||
<!-- <view @click="fPreview" hover-class="hover" :style="{width: bW}"><text>预览</text></view> -->
|
||||
<view @click="fUpload" :style="{ width: bW }"><text class="upload">上传</text></view>
|
||||
<view @click="fUpload" :style="{ width: bW }"><text class="upload">{{ $lang('components.imgCropping.upload') }}</text></view>
|
||||
</view>
|
||||
<view class="clr-wrapper" v-else>
|
||||
<slider
|
||||
@@ -35,7 +35,7 @@
|
||||
block-color="grey"
|
||||
show-value
|
||||
></slider>
|
||||
<view @click="fPrvUpload" hover-class="hover" :style="{ width: bW }"><text>上传</text></view>
|
||||
<view @click="fPrvUpload" hover-class="hover" :style="{ width: bW }"><text>{{ $lang('components.imgCropping.upload') }}</text></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -209,7 +209,7 @@ export default {
|
||||
// #endif
|
||||
// #ifndef MP-ALIPAY
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
title: this.$lang('components.imgCropping.loading'),
|
||||
mask: true
|
||||
});
|
||||
// #endif
|
||||
@@ -232,9 +232,9 @@ export default {
|
||||
style.left = ((this.wW - sW) | 0) / 2 + 'px';
|
||||
} else {
|
||||
uni.showModal({
|
||||
title: '裁剪框的宽或高没有设置',
|
||||
showCancel: false
|
||||
});
|
||||
title: this.$lang('components.imgCropping.cropBoxSizeNotSet'),
|
||||
showCancel: false
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.sS = style;
|
||||
@@ -252,7 +252,7 @@ export default {
|
||||
},
|
||||
fail: () => {
|
||||
this.$util.showToast({
|
||||
title: '请选择正确图片'
|
||||
title: this.$lang('components.imgCropping.pleaseSelectValidImage')
|
||||
});
|
||||
},
|
||||
complete() {
|
||||
@@ -282,7 +282,7 @@ export default {
|
||||
// #endif
|
||||
// #ifndef MP-ALIPAY
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
title: this.$lang('components.imgCropping.loading'),
|
||||
mask: true
|
||||
});
|
||||
// #endif
|
||||
@@ -439,7 +439,7 @@ export default {
|
||||
// #endif
|
||||
// #ifndef MP-ALIPAY
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
title: this.$lang('components.imgCropping.loading'),
|
||||
mask: true
|
||||
});
|
||||
// #endif
|
||||
@@ -750,7 +750,7 @@ export default {
|
||||
// #endif
|
||||
// #ifndef MP-ALIPAY
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
title: this.$lang('components.imgCropping.loading'),
|
||||
mask: true
|
||||
});
|
||||
// #endif
|
||||
@@ -1152,7 +1152,7 @@ export default {
|
||||
// #endif
|
||||
// #ifndef MP-ALIPAY
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
title: this.$lang('components.imgCropping.loading'),
|
||||
mask: true
|
||||
});
|
||||
// #endif
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</view>
|
||||
</block>
|
||||
<block v-else>
|
||||
<ns-empty :text="complete ? '提交成功' : '未获取到表单信息'" :isIndex="false"></ns-empty>
|
||||
<ns-empty :text="complete ? $lang('form.formdata.submitSuccess') : $lang('form.formdata.noFormInfo')" :isIndex="false"></ns-empty>
|
||||
</block>
|
||||
<loading-cover ref="loadingCover"></loading-cover>
|
||||
<ns-login ref="login"></ns-login>
|
||||
@@ -62,15 +62,15 @@ export default {
|
||||
show_banner: this.detail.show_banner,
|
||||
form_banner: this.detail.form_banner || 'public/uniapp/form/banner.png',
|
||||
show_tip: this.detail.show_tip,
|
||||
form_tip: this.detail.form_tip || '请填写表单所需信息'
|
||||
form_tip: this.detail.form_tip || this.$lang('form.formdata.formTipPlaceholder')
|
||||
}
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
if (!options.uniacid) {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '参数错误',
|
||||
title: this.$lang('form.formdata.tip'),
|
||||
content: this.$lang('form.formdata.paramError'),
|
||||
showCancel: false,
|
||||
success: () => { }
|
||||
})
|
||||
@@ -164,8 +164,8 @@ export default {
|
||||
success: res => {
|
||||
if (res.code == 0) {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '提交成功',
|
||||
title: this.$lang('form.formdata.tip'),
|
||||
content: this.$lang('form.formdata.submitSuccess'),
|
||||
showCancel: false,
|
||||
success: () => { }
|
||||
})
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<view class="evaluate-tab">
|
||||
<view v-for="(item, index) in evaluateList" :key="index"
|
||||
:class="evaluateTab == item.value ? 'active-tab' : ''" @click="onEvaluateTab(item.value)">
|
||||
{{ item.name }}({{ item.count }})
|
||||
{{ $lang(item.langKey) }}({{ item.count }})
|
||||
</view>
|
||||
</view>
|
||||
<mescroll-uni ref="mescroll" top="100" @getData="getGoodsEvaluate">
|
||||
@@ -44,12 +44,12 @@
|
||||
</scroll-view>
|
||||
|
||||
<view v-if="item.explain_first != ''" class="time shop-reply-box">
|
||||
<view class="shop-reply">商家回复:</view>
|
||||
<view class="shop-reply">{{ $lang('shopReply') }}</view>
|
||||
<view class="cont">{{ item.explain_first }}</view>
|
||||
</view>
|
||||
|
||||
<template v-if="item.again_content != '' && item.again_is_audit == 1">
|
||||
<view class="review-evaluation color-base-text">追加评价</view>
|
||||
<view class="review-evaluation color-base-text">{{ $lang('additionalReview') }}</view>
|
||||
<view class="cont">{{ item.again_content }}</view>
|
||||
<scroll-view scroll-x="true">
|
||||
<view class="evaluate-img" v-if="item.again_images.length > 0">
|
||||
@@ -61,12 +61,12 @@
|
||||
</scroll-view>
|
||||
|
||||
<view v-if="item.again_explain != ''" class="time shop-reply-box">
|
||||
<view class="shop-reply" v-if="item.again_explain != ''">商家回复:</view>
|
||||
<view class="shop-reply" v-if="item.again_explain != ''">{{ $lang('shopReply') }}</view>
|
||||
<view class="cont">{{ item.again_explain }}</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
<view v-if="list.length == 0"><ns-empty text="暂无商品评价"></ns-empty></view>
|
||||
<view v-if="list.length == 0"><ns-empty :text="$lang('emptyText')"></ns-empty></view>
|
||||
</block>
|
||||
</mescroll-uni>
|
||||
<loading-cover ref="loadingCover"></loading-cover>
|
||||
@@ -79,7 +79,7 @@ export default {
|
||||
return {
|
||||
goodsId: 0,
|
||||
list: [],
|
||||
evaluateList: [{ name: '全部', value: 0, count: 0 }, { name: '好评', value: 1, count: 0 }, { name: '中评', value: 2, count: 0 }, { name: '差评', value: 3, count: 0 }],
|
||||
evaluateList: [{ langKey: 'tabAll', value: 0, count: 0 }, { langKey: 'tabPositive', value: 1, count: 0 }, { langKey: 'tabNeutral', value: 2, count: 0 }, { langKey: 'tabNegative', value: 3, count: 0 }],
|
||||
evaluateTab: 0,
|
||||
mescroll_type: {}
|
||||
};
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<view class="history" v-if="historyList.length">
|
||||
<view class="history-box">
|
||||
<view class="history-top">
|
||||
<view class="title">历史搜索</view>
|
||||
<view class="title">{{ $lang('history') }}</view>
|
||||
<view class="icon iconfont icon-icon7" @click="deleteHistoryList"></view>
|
||||
</view>
|
||||
<view class="history-bottom " id="history-list" :style="{ maxHeight: !isAllHistory ? '100%' : '168rpx' }">
|
||||
@@ -30,7 +30,7 @@
|
||||
<view class="history" v-if="hotList.length">
|
||||
<view class="history-box">
|
||||
<view class="history-top">
|
||||
<view class="title">热门搜索</view>
|
||||
<view class="title">{{ $lang('hot') }}</view>
|
||||
</view>
|
||||
<view class="history-bottom">
|
||||
<view class="history-li" v-for="(item, index) in hotList" :key="index" @click="otherSearch(item)" @longtap="deleteItem(item)">
|
||||
@@ -82,8 +82,8 @@
|
||||
//删除所有历史记录
|
||||
deleteHistoryList() {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确认删除全部历史记录?',
|
||||
title: this.$lang('tip'),
|
||||
content: this.$lang('confirmDeleteAllHistory'),
|
||||
success: res => {
|
||||
if (res.confirm) {
|
||||
uni.setStorageSync('search', []);
|
||||
@@ -95,8 +95,8 @@
|
||||
//删除历史记录的某一项
|
||||
deleteItem(e) {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确认删除该条历史记录?',
|
||||
title: this.$lang('tip'),
|
||||
content: this.$lang('confirmDeleteHistory'),
|
||||
success: res => {
|
||||
if (res.confirm) {
|
||||
let array = uni.getStorageSync('search');
|
||||
@@ -162,7 +162,7 @@
|
||||
} else {
|
||||
if (this.searchWords == '') {
|
||||
this.$util.showToast({
|
||||
title: '搜索内容不能为空哦'
|
||||
title: this.$lang('searchContentEmpty')
|
||||
});
|
||||
} else {
|
||||
this.$util.redirectTo('/pages_goods/list', {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="address-edit-content" :style="themeColor">
|
||||
<view class="edit-wrap">
|
||||
<view class="tip">地址信息</view>
|
||||
<view class="tip">{{ $lang('member.addressEdit.addressInfo') }}</view>
|
||||
<view class="edit-item">
|
||||
<text class="tit">
|
||||
{{ $lang('consignee') }}
|
||||
@@ -41,7 +41,7 @@
|
||||
<text>*</text>
|
||||
</text>
|
||||
<view class="text_inp" :class="{ empty: !formData.full_address, 'color-tip': !formData.full_address }" @click="selectAddress">
|
||||
{{ formData.full_address ? formData.full_address : '请选择省市区县' }}
|
||||
{{ formData.full_address ? formData.full_address : $lang('member.addressEdit.selectRegionPlaceholder') }}
|
||||
</view>
|
||||
|
||||
<text @click="selectAddress" class="padding-left iconfont icon-location"></text>
|
||||
@@ -55,7 +55,7 @@
|
||||
</text>
|
||||
<pick-regions :default-regions="defaultRegions" @getRegions="handleGetRegions">
|
||||
<text class="select-address " :class="{ empty: !formData.full_address, 'color-tip': !formData.full_address }">
|
||||
{{ formData.full_address ? formData.full_address : '请选择省市区县' }}
|
||||
{{ formData.full_address ? formData.full_address : $lang('member.addressEdit.selectRegionPlaceholder') }}
|
||||
</text>
|
||||
</pick-regions>
|
||||
</view>
|
||||
@@ -193,7 +193,7 @@
|
||||
this.addressValue += res.data.district_id != undefined ? '-' + res.data.district_id : '';
|
||||
} else {
|
||||
this.showToast({
|
||||
title: '数据有误'
|
||||
title: this.$lang('member.addressEdit.dataError')
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -292,27 +292,27 @@
|
||||
var rule = [{
|
||||
name: 'name',
|
||||
checkType: 'required',
|
||||
errorMsg: '请输入姓名'
|
||||
errorMsg: this.$lang('member.addressEdit.pleaseEnterName')
|
||||
},
|
||||
{
|
||||
name: 'mobile',
|
||||
checkType: 'required',
|
||||
errorMsg: '请输入手机号'
|
||||
errorMsg: this.$lang('member.addressEdit.pleaseEnterMobile')
|
||||
},
|
||||
{
|
||||
name: 'mobile',
|
||||
checkType: 'phoneno',
|
||||
errorMsg: '请输入正确的手机号'
|
||||
errorMsg: this.$lang('member.addressEdit.pleaseEnterValidMobile')
|
||||
},
|
||||
{
|
||||
name: 'full_address',
|
||||
checkType: 'required',
|
||||
errorMsg: '请选择省市区县'
|
||||
errorMsg: this.$lang('member.addressEdit.pleaseSelectRegion')
|
||||
},
|
||||
{
|
||||
name: 'address',
|
||||
checkType: 'required',
|
||||
errorMsg: '详细地址不能为空'
|
||||
errorMsg: this.$lang('member.addressEdit.addressRequired')
|
||||
}
|
||||
];
|
||||
var checkRes = validate.check(this.formData, rule);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<view class="navbar-wrap">
|
||||
<text class="iconfont icon-back_light back" @click="$util.redirectTo($util.MEMBER_PAGE_URL)"></text>
|
||||
<view class="navbar-title">
|
||||
账户余额
|
||||
{{ $lang('member.balance.navbarTitle') }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
<view class="head-wrap" :style="{ background: 'url(' + $util.img('public/uniapp/balance/balance-bg.png') + ')',backgroundSize:'100% 100%' }">
|
||||
<!-- <view class="head-wrap" :style="{ background: 'url(' + $util.img('public/uniapp/balance/balance-bg.png') + ') no-repeat right bottom/ auto 380rpx, linear-gradient(314deg, #FE7849 0%, #FF1959 100%)' }"> -->
|
||||
<view class="title">账户余额(元)</view>
|
||||
<view class="title">{{ $lang('member.balance.balanceTitle') }}</view>
|
||||
<view class="balance price-font">{{ (parseFloat(balanceInfo.balance) + parseFloat(balanceInfo.balance_money)).toFixed(2) }}</view>
|
||||
<!-- <view class="flex-box">
|
||||
<view class="flex-item">
|
||||
@@ -29,8 +29,8 @@
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="btns">
|
||||
<view class="cash btn" @click="toWithdrawal">提现</view>
|
||||
<view class="recharge btn" @click="toList">充值</view>
|
||||
<view class="cash btn" @click="toWithdrawal">{{ $lang('member.balance.withdrawal') }}</view>
|
||||
<view class="recharge btn" @click="toList">{{ $lang('member.balance.recharge') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -39,14 +39,14 @@
|
||||
<view class="icon">
|
||||
<text class="iconfont icon-yuemingxi"></text>
|
||||
</view>
|
||||
<text class="title">提现记录</text>
|
||||
<text class="title">{{ $lang('member.balance.withdrawalRecord') }}</text>
|
||||
<text class="iconfont icon-right"></text>
|
||||
</view>
|
||||
<view class="menu-item" @click="toBalanceDetail" style="border-bottom: 0.5px solid #f2f2f2;">
|
||||
<view class="icon">
|
||||
<text class="iconfont icon-yuemingxi"></text>
|
||||
</view>
|
||||
<text class="title">余额明细</text>
|
||||
<text class="title">{{ $lang('member.balance.balanceDetailed') }}</text>
|
||||
<text class="iconfont icon-right"></text>
|
||||
</view>
|
||||
<!-- <view class="menu-item" @click="toOrderList">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="container" :style="themeColor">
|
||||
<view class="head-wrap" v-if="storeToken">
|
||||
<text @click="manageFootprint">{{ manage ? '完成' : '管理' }}</text>
|
||||
<text @click="manageFootprint">{{ manage ? $lang('member.footprint.done') : $lang('member.footprint.manage') }}</text>
|
||||
</view>
|
||||
<mescroll-uni ref="mescroll" @getData="getListData" top="110rpx">
|
||||
<block slot="list">
|
||||
@@ -39,14 +39,14 @@
|
||||
<text class="unit">{{ $lang('common.currencySymbol') }}</text>
|
||||
<text>{{ showMarketPrice(item) }}</text>
|
||||
</view>
|
||||
<view class="sale font-size-activity-tag color-tip" v-if="item.sale_show">已售{{ item.sale_num }}{{ item.unit ? item.unit : '件' }}</view>
|
||||
<view class="sale font-size-activity-tag color-tip" v-if="item.sale_show">{{ $lang('member.footprint.soldPrefix') }}{{ item.sale_num }}{{ item.unit ? item.unit : $lang('member.footprint.unitPiece') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="footprint-empty" v-else>
|
||||
<ns-empty text="暂无浏览过的商品" subText="赶紧去逛逛, 发现更多商品吧" :isIndex="Boolean(storeToken)" :emptyBtn="{ text: $lang('toGoodsCategoryPage'), url: '/pages_goods/category' }"></ns-empty>
|
||||
<ns-empty :text="$lang('member.footprint.emptyText')" :subText="$lang('member.footprint.emptySubText')" :isIndex="Boolean(storeToken)" :emptyBtn="{ text: $lang('toGoodsCategoryPage'), url: '/pages_goods/category' }"></ns-empty>
|
||||
<button type="primary" size="mini" class="button mini" v-if="!storeToken"
|
||||
@click="toLogin">{{ $lang('toLogin') }}</button>
|
||||
</view>
|
||||
@@ -54,9 +54,9 @@
|
||||
<view class="bottom-wrap" v-if="goodsList.length && manage">
|
||||
<view class="all-election" @click="allElection">
|
||||
<view class="iconfont" :class="isAll ? 'icon-yuan_checked color-base-text' : 'icon-yuan_checkbox'"></view>
|
||||
<text>全选</text>
|
||||
<text>{{ $lang('member.footprint.selectAll') }}</text>
|
||||
</view>
|
||||
<view class="action-btn"><button type="primary" @click="deleteFootprint()" class="delete" :class="{ disabled: selected }">删除</button></view>
|
||||
<view class="action-btn"><button type="primary" @click="deleteFootprint()" class="delete" :class="{ disabled: selected }">{{ $lang('member.footprint.delete') }}</button></view>
|
||||
</view>
|
||||
</block>
|
||||
</mescroll-uni>
|
||||
@@ -134,7 +134,7 @@ export default {
|
||||
deleteFootprint() {
|
||||
if (this.idArr.length == 0) {
|
||||
this.$util.showToast({
|
||||
title: '请选择要删除的数据!'
|
||||
title: this.$lang('member.footprint.pleaseSelectDelete')
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<view v-if="indent == 'all' && memberInfo" class="info-wrap">
|
||||
<!-- 头像@click="headImage" -->
|
||||
<view class="info-list-cell info-item info-list-con" hover-class="cell-hover">
|
||||
<text class="cell-tit">头像</text>
|
||||
<text class="cell-tit">{{ $lang('member.info.avatar') }}</text>
|
||||
<view class="info-list-head cell-tip">
|
||||
<image :src="memberInfo.headimg ? $util.img(memberInfo.headimg) : $util.getDefaultImage().head" @error="memberInfo.headimg = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
|
||||
</view>
|
||||
@@ -22,32 +22,32 @@
|
||||
</view> -->
|
||||
<!-- 昵称 -->
|
||||
<view class="info-list-cell info-list-con" hover-class="cell-hover" @click="modifyInfo('name')">
|
||||
<text class="cell-tit">昵称</text>
|
||||
<text class="cell-tit">{{ $lang('member.info.nickname') }}</text>
|
||||
<text class="cell-tip">{{ memberInfoformData.nickName }}</text>
|
||||
<text class="cell-more"></text>
|
||||
</view>
|
||||
<!-- 真实姓名 -->
|
||||
<view class="info-list-cell info-list-con" hover-class="cell-hover" @click="modifyInfo('realName')">
|
||||
<text class="cell-tit">姓名</text>
|
||||
<text class="cell-tit">{{ $lang('member.info.name') }}</text>
|
||||
<text class="cell-tip">{{ memberInfoformData.realName }}</text>
|
||||
<text class="cell-more"></text>
|
||||
</view>
|
||||
<!-- 性别 -->
|
||||
<view class="info-list-cell info-list-con" hover-class="cell-hover" @click="modifyInfo('sex')">
|
||||
<text class="cell-tit">性别</text>
|
||||
<text class="cell-tit">{{ $lang('member.info.gender') }}</text>
|
||||
<text class="cell-tip">{{ memberInfoformData.sex }}</text>
|
||||
<text class="cell-more"></text>
|
||||
</view>
|
||||
<!-- 生日 -->
|
||||
<view class="info-list-cell info-list-con" hover-class="cell-hover" @click="modifyInfo('birthday')">
|
||||
<text class="cell-tit">生日</text>
|
||||
<text class="cell-tit">{{ $lang('member.info.birthday') }}</text>
|
||||
<text class="cell-tip">{{ memberInfoformData.birthday }}</text>
|
||||
<text class="cell-more"></text>
|
||||
</view>
|
||||
<!-- 手机号 -->
|
||||
<view class="info-list-cell info-list-con" @click="modifyInfo('mobile')">
|
||||
<text class="cell-tit">手机号</text>
|
||||
<text v-if="memberInfoformData.user_tel == ''" class="cell-tip">密码</text>
|
||||
<text class="cell-tit">{{ $lang('member.info.mobile') }}</text>
|
||||
<text v-if="memberInfoformData.user_tel == ''" class="cell-tip">{{ $lang('member.info.password') }}</text>
|
||||
<text v-else class="cell-tip">{{ memberInfoformData.mobile }}</text>
|
||||
<text class="cell-more"></text>
|
||||
</view>
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
<!-- 注销 -->
|
||||
<view class="info-list-cell info-list-con" hover-class="cell-hover" @click="cancellation()">
|
||||
<text class="cell-tit">注销账号</text>
|
||||
<text class="cell-tit">{{ $lang('member.info.cancellation') }}</text>
|
||||
<text class="cell-more"></text>
|
||||
</view>
|
||||
<!-- <view class="info-list-cell info-list-con" hover-class="cell-hover" @click="cancellation()" v-if="addonIsExist.membercancel && memberConfig.is_enable == 1">
|
||||
@@ -98,7 +98,7 @@
|
||||
|
||||
<!-- #endif -->
|
||||
<view class="save-item" @click="logout">
|
||||
<button type="primary">退出登录</button>
|
||||
<button type="primary">{{ $lang('member.info.logout') }}</button>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<view class="navbar-wrap">
|
||||
<text class="iconfont icon-back_light back" @click="$util.redirectTo($util.MEMBER_PAGE_URL)"></text>
|
||||
<view class="navbar-title">
|
||||
我的积分
|
||||
{{ $lang('member.point.title') }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -17,19 +17,19 @@
|
||||
|
||||
<view class="head-wrap" :style="{ background: 'url(' + $util.img('public/uniapp/point/point_bg.png') + ') no-repeat right bottom/ auto 340rpx, linear-gradient(314deg, #F16914 0%, #FEAA4C 100%)' }">
|
||||
<view class="point price-font">{{ pointInfo.point }}</view>
|
||||
<view class="title">当前积分</view>
|
||||
<view class="title">{{ $lang('member.point.currentPoints') }}</view>
|
||||
<view class="flex-box">
|
||||
<view class="flex-item">
|
||||
<view class="num price-font">{{ pointInfo.totalPoint }}</view>
|
||||
<view class="font-size-tag">累计积分</view>
|
||||
<view class="font-size-tag">{{ $lang('member.point.totalPoints') }}</view>
|
||||
</view>
|
||||
<view class="flex-item">
|
||||
<view class="num price-font">{{ pointInfo.totalConsumePoint }}</view>
|
||||
<view class="font-size-tag">累计消费</view>
|
||||
<view class="font-size-tag">{{ $lang('member.point.totalConsume') }}</view>
|
||||
</view>
|
||||
<view class="flex-item">
|
||||
<view class="num price-font">{{ pointInfo.todayPoint }}</view>
|
||||
<view class="font-size-tag">今日获得</view>
|
||||
<view class="font-size-tag">{{ $lang('member.point.todayEarned') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -39,13 +39,13 @@
|
||||
<view class="icon">
|
||||
<image :src="$util.img('public/uniapp/point/point_detail_icon.png')" mode="widthFix"></image>
|
||||
</view>
|
||||
<text class="title">积分明细</text>
|
||||
<text class="title">{{ $lang('member.point.pointDetail') }}</text>
|
||||
</view>
|
||||
<view class="menu-item" @click="$util.redirectTo('/pages_promotion/point/list')">
|
||||
<view class="icon">
|
||||
<image :src="$util.img('public/uniapp/point/point_shop.png')" mode="widthFix" show-menu-by-longpress></image>
|
||||
</view>
|
||||
<text class="title">积分商城</text>
|
||||
<text class="title">{{ $lang('member.point.pointMall') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<!--
|
||||
|
||||
@@ -28,7 +28,7 @@ export default {
|
||||
setTimeout( () => {
|
||||
if (!this.addonIsExist.membersignin) {
|
||||
this.$util.showToast({
|
||||
title: '商家未开启会员签到',
|
||||
title: this.$lang('signinNotEnabled'),
|
||||
mask: true,
|
||||
duration: 2000
|
||||
});
|
||||
@@ -198,7 +198,7 @@ export default {
|
||||
sign() {
|
||||
if (this.signState == 0) {
|
||||
this.$util.showToast({
|
||||
title: '签到未开启'
|
||||
title: this.$lang('signinClosed')
|
||||
})
|
||||
}
|
||||
|
||||
@@ -233,8 +233,8 @@ export default {
|
||||
let shareUrl = this.$config.h5Domain + '/pages_tool/member/signin';
|
||||
|
||||
this.$util.setPublicShare({
|
||||
title: '签到有礼',
|
||||
desc: '天天签到,积分好礼送不停',
|
||||
title: this.$lang('title'),
|
||||
desc: this.$lang('shareDesc'),
|
||||
link: shareUrl,
|
||||
imgUrl: ''
|
||||
},
|
||||
@@ -265,7 +265,7 @@ export default {
|
||||
onShareAppMessage() {
|
||||
var path = '/pages_tool/member/signin';
|
||||
return {
|
||||
title: '签到有礼,天天签到,积分好礼送不停',
|
||||
title: this.$lang('shareTitle'),
|
||||
imageUrl: '',
|
||||
path: path,
|
||||
success: res => {},
|
||||
|
||||
@@ -7,43 +7,43 @@
|
||||
<!-- 状态0待审核1.待转账2已转账 -1拒绝' -->
|
||||
<view class="item">
|
||||
<view class="line-wrap">
|
||||
<text class="label">当前状态</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.currentStatus') }}</text>
|
||||
<text class="value">{{ detail.status_name }}</text>
|
||||
</view>
|
||||
<view class="line-wrap">
|
||||
<text class="label">交易号</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.transactionNo') }}</text>
|
||||
<text class="value">{{ detail.withdraw_no }}</text>
|
||||
</view>
|
||||
<view class="line-wrap">
|
||||
<text class="label">手续费</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.serviceFee') }}</text>
|
||||
<text class="value">¥{{ detail.service_money }}</text>
|
||||
</view>
|
||||
<view class="line-wrap">
|
||||
<text class="label">申请时间</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.applyTime') }}</text>
|
||||
<text class="value">{{ $util.timeStampTurnTime(detail.apply_time) }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="detail.status">
|
||||
<text class="label">审核时间</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.auditTime') }}</text>
|
||||
<text class="value">{{ $util.timeStampTurnTime(detail.audit_time) }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="detail.bank_name">
|
||||
<text class="label">银行名称</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.bankName') }}</text>
|
||||
<text class="value">{{ detail.bank_name }}</text>
|
||||
</view>
|
||||
<view class="line-wrap">
|
||||
<text class="label">收款账号</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.receivingAccount') }}</text>
|
||||
<text class="value">{{ detail.account_number }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="detail.status == -1 && detail.refuse_reason">
|
||||
<text class="label">拒绝理由</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.refuseReason') }}</text>
|
||||
<text class="value">{{ detail.refuse_reason }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="detail.status == 2">
|
||||
<text class="label">转账方式名称</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.transferTypeName') }}</text>
|
||||
<text class="value">{{ detail.transfer_type_name }}</text>
|
||||
</view>
|
||||
<view class="line-wrap" v-if="detail.status == 2">
|
||||
<text class="label">转账时间</text>
|
||||
<text class="label">{{ $lang('member.withdrawalDetail.transferTime') }}</text>
|
||||
<text class="value">{{ $util.timeStampTurnTime(detail.payment_time) }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<view class="order-item" v-for="(item, index) in refundList" :key="index">
|
||||
<view class="order-header">
|
||||
<text class="status-num font-size-base">{{ item.order_no }}</text>
|
||||
<view class="status-name" v-if="item.refund_status == 3">退款成功</view>
|
||||
<view class="status-name color-base-text" v-if="item.refund_status == 1">退款中</view>
|
||||
<view class="status-name color-base-text" v-if="item.refund_status == -1">退款失败</view>
|
||||
<view class="status-name" v-if="item.refund_status == 3">{{ $lang('status.success') }}</view>
|
||||
<view class="status-name color-base-text" v-if="item.refund_status == 1">{{ $lang('status.processing') }}</view>
|
||||
<view class="status-name color-base-text" v-if="item.refund_status == -1">{{ $lang('status.failed') }}</view>
|
||||
</view>
|
||||
<view class="goods-wrap">
|
||||
<image :src="$util.img(item.sku_image, { size: 'mid' })" @error="imageError(index)" mode="aspectFill" :lazy-load="true" show-menu-by-longpress></image>
|
||||
@@ -26,11 +26,11 @@
|
||||
</view>
|
||||
<view class="goods-btn">
|
||||
<view class="btn-text">
|
||||
<text>共{{ item.num }}件商品</text>
|
||||
<text>退款:¥{{ item.refund_status == 3 ? item.refund_real_money : item.refund_apply_money }}</text>
|
||||
<text>{{ $lang('totalItems', { num: item.num }) }}</text>
|
||||
<text>{{ $lang('refundAmount', { currency: $lang('common.currencySymbol'), amount: item.refund_status == 3 ? item.refund_real_money : item.refund_apply_money }) }}</text>
|
||||
</view>
|
||||
<view class="order-action">
|
||||
<view class="order-box-btn" @click="refundDetail(item.order_goods_id)">查看详情</view>
|
||||
<view class="order-box-btn" @click="refundDetail(item.order_goods_id)">{{ $lang('checkDetail') }}</view>
|
||||
<block v-if="item.refund_action.length">
|
||||
<view
|
||||
class="order-box-btn"
|
||||
@@ -112,7 +112,7 @@ export default {
|
||||
this.cancleRefund(data.order_goods_id, res => {
|
||||
if (res.code >= 0) {
|
||||
this.$util.showToast({
|
||||
title: '撤销成功'
|
||||
title: this.$lang('toast.cancelSuccess')
|
||||
});
|
||||
this.$refs.mescroll.refresh();
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</view>
|
||||
<view class="eval-star" v-if="!isEvaluate">
|
||||
<view class="star-box">
|
||||
<view class="star-title color-base-bg-before">描述相符</view>
|
||||
<view class="star-title color-base-bg-before">{{ $lang('order.evaluate.rating.descriptionMatch') }}</view>
|
||||
<view class="rate-box"><sx-rate :value="goodsEvalList[index].scores" :index="index"
|
||||
@change="setStar" /></view>
|
||||
<view class="grade-li">
|
||||
@@ -26,11 +26,11 @@
|
||||
: ''
|
||||
"></view>
|
||||
<view class="font-size-tag color-base-text"
|
||||
v-if="goodsEvalList[index].explain_type == '1'">好评</view>
|
||||
v-if="goodsEvalList[index].explain_type == '1'">{{ $lang('order.evaluate.rating.goodRating') }}</view>
|
||||
<view class="font-size-tag color-base-text"
|
||||
v-if="goodsEvalList[index].explain_type == '2'">中评</view>
|
||||
v-if="goodsEvalList[index].explain_type == '2'">{{ $lang('order.evaluate.rating.mediumRating') }}</view>
|
||||
<view class="font-size-tag color-base-text"
|
||||
v-if="goodsEvalList[index].explain_type == '3'">差评</view>
|
||||
v-if="goodsEvalList[index].explain_type == '3'">{{ $lang('order.evaluate.rating.badRating') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -39,12 +39,12 @@
|
||||
<view class="eval-text">
|
||||
<view class="text-box">
|
||||
<block v-if="!isEvaluate">
|
||||
<textarea placeholder="请在此处输入您的评价" v-model="goodsEvalList[index].content"
|
||||
<textarea :placeholder="$lang('order.evaluate.input.evaluationPlaceholder')" v-model="goodsEvalList[index].content"
|
||||
maxlength="200" />
|
||||
<text class="maxSize">{{ goodsEvalList[index].content.length }}/200</text>
|
||||
</block>
|
||||
<block v-else>
|
||||
<textarea placeholder="请在此处输入您的追评" v-model="goodsEvalList[index].again_content"
|
||||
<textarea :placeholder="$lang('order.evaluate.input.followUpPlaceholder')" v-model="goodsEvalList[index].again_content"
|
||||
maxlength="200" />
|
||||
<text class="maxSize">{{ goodsEvalList[index].again_content.length }}/200</text>
|
||||
</block>
|
||||
@@ -69,9 +69,9 @@
|
||||
<view class="all-election" @click="isAll()" v-if="!isEvaluate">
|
||||
<view class="iconfont color-base-text"
|
||||
:class="isAnonymous ? 'icon-yuan_checked color-base-text' : 'icon-yuan_checkbox'"></view>
|
||||
<text>匿名</text>
|
||||
<text>{{ $lang('order.evaluate.action.anonymous') }}</text>
|
||||
</view>
|
||||
<view class="action-btn"><button type="primary" @click="save()">提交</button></view>
|
||||
<view class="action-btn"><button type="primary" @click="save()">{{ $lang('order.evaluate.action.submit') }}</button></view>
|
||||
</view>
|
||||
<loading-cover ref="loadingCover"></loading-cover>
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ export default {
|
||||
}
|
||||
} else {
|
||||
this.$util.showToast({
|
||||
title: "未获取到订单数据"
|
||||
title: this.$lang('order.evaluate.toast.orderDataNotFound')
|
||||
})
|
||||
setTimeout(() => {
|
||||
this.$util.redirectTo('/pages_order/list', {}, "redirectTo");
|
||||
@@ -157,7 +157,7 @@ export default {
|
||||
save() {
|
||||
if (this.evaluateConfig.evaluate_status == 0) {
|
||||
this.$util.showToast({
|
||||
title: "商家未开启商品评价功能"
|
||||
title: this.$lang('order.evaluate.toast.evaluateNotEnabled')
|
||||
});
|
||||
return;
|
||||
}
|
||||
@@ -165,14 +165,14 @@ export default {
|
||||
if (this.isEvaluate) {
|
||||
if (!this.goodsEvalList[i].again_content.trim().length) {
|
||||
this.$util.showToast({
|
||||
title: "商品的评价不能为空哦"
|
||||
title: this.$lang('order.evaluate.toast.evaluationCannotBeEmpty')
|
||||
});
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (!this.goodsEvalList[i].content.trim().length) {
|
||||
this.$util.showToast({
|
||||
title: "商品的评价不能为空哦"
|
||||
title: this.$lang('order.evaluate.toast.evaluationCannotBeEmpty')
|
||||
});
|
||||
return;
|
||||
}
|
||||
@@ -197,7 +197,7 @@ export default {
|
||||
success: res => {
|
||||
if (res.code == 0) {
|
||||
this.$util.showToast({
|
||||
title: "评价成功"
|
||||
title: this.$lang('order.evaluate.toast.evaluationSuccess')
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.$util.redirectTo('/pages_order/list', {}, "redirectTo");
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
<view class="refund-option">
|
||||
<view class="option-item" @click="selectRefundType(1)">
|
||||
<view>
|
||||
<text>退款无需退货</text>
|
||||
<text class="font-size-goods-tag color-tip">没收到货,或与卖家协商同意无需退货只退款</text>
|
||||
<text>{{ $lang('refundTypeSelect.refundOnly') }}</text>
|
||||
<text class="font-size-goods-tag color-tip">{{ $lang('refundTypeSelect.refundOnlyDesc') }}</text>
|
||||
</view>
|
||||
<text class="iconfont icon-right"></text>
|
||||
</view>
|
||||
<view class="option-item" @click="selectRefundType(2)" v-if="refund_data.order_status == 3">
|
||||
<view>
|
||||
<text>退货退款</text>
|
||||
<text class="font-size-goods-tag color-tip">已收到货,需退还收到的货物</text>
|
||||
<text>{{ $lang('refundTypeSelect.returnRefund') }}</text>
|
||||
<text class="font-size-goods-tag color-tip">{{ $lang('refundTypeSelect.returnRefundDesc') }}</text>
|
||||
</view>
|
||||
<text class="iconfont icon-right"></text>
|
||||
</view>
|
||||
@@ -75,7 +75,7 @@
|
||||
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
||||
} else {
|
||||
this.$util.showToast({
|
||||
title: '未获取到该订单项退款信息'
|
||||
title: this.$lang('toast.noRefundInfo')
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.$util.redirectTo('/pages_order/list');
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
</view>
|
||||
<block v-if="g0>0">
|
||||
<view class="foot">
|
||||
<view @tap="generateImage" class="item" style="margin-right:30rpx;">导出图片</view>
|
||||
<view @tap="generatePdf" class="item">导出PDF</view>
|
||||
<view @tap="generateImage" class="item" style="margin-right:30rpx;">{{ $lang('exportImage') }}</view>
|
||||
<view @tap="generatePdf" class="item">{{ $lang('exportPdf') }}</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
@@ -26,7 +26,7 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
title: "搜索结果",
|
||||
title: "",
|
||||
info: {},
|
||||
list: [],
|
||||
keyword: "",
|
||||
@@ -39,6 +39,7 @@ export default {
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.title = this.$lang('title');
|
||||
if (options.keyword) {
|
||||
this.keyword = options.keyword;
|
||||
}
|
||||
@@ -50,7 +51,7 @@ export default {
|
||||
methods: {
|
||||
generatePdf() {
|
||||
const url = this.$util.img(this.info.files_url);
|
||||
uni.showLoading({ title: '正在加载' });
|
||||
uni.showLoading({ title: this.$lang('loading') });
|
||||
try {
|
||||
uni.downloadFile({
|
||||
url: url,
|
||||
@@ -70,7 +71,7 @@ export default {
|
||||
},
|
||||
complete: (res) => {
|
||||
if (res.statusCode === 404) {
|
||||
uni.showToast({ title: '文件不存在', icon: 'none' });
|
||||
uni.showToast({ title: this.$lang('fileNotExist'), icon: 'none' });
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -80,7 +81,7 @@ export default {
|
||||
},
|
||||
generateImage() {
|
||||
const url = this.$util.img(this.info.img_url);
|
||||
uni.showLoading({ title: '正在加载' });
|
||||
uni.showLoading({ title: this.$lang('loading') });
|
||||
uni.downloadFile({
|
||||
url: url,
|
||||
success: (res) => {
|
||||
@@ -89,21 +90,21 @@ export default {
|
||||
uni.saveImageToPhotosAlbum({
|
||||
filePath: res.tempFilePath,
|
||||
success: () => {
|
||||
this.$util.showToast({ title: '保存成功' });
|
||||
this.$util.showToast({ title: this.$lang('saveSuccess') });
|
||||
},
|
||||
fail: (err) => {
|
||||
if (err.errMsg !== 'saveImageToPhotosAlbum:fail auth deny' && err.errMsg !== 'saveImageToPhotosAlbum:fail:auth denied') {
|
||||
this.$util.showToast({ title: '保存失败,请稍后重试' });
|
||||
this.$util.showToast({ title: this.$lang('saveFailed') });
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.$util.showToast({ title: '下载失败' });
|
||||
this.$util.showToast({ title: this.$lang('downloadFailed') });
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
uni.hideLoading();
|
||||
this.$util.showToast({ title: '下载失败' });
|
||||
this.$util.showToast({ title: this.$lang('downloadFailed') });
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -196,4 +197,4 @@ export default {
|
||||
color: #fff;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<view class="content">
|
||||
<view class="cate-search">
|
||||
<view class="search-box">
|
||||
<input class="uni-input" maxlength="50" confirm-type="search" :focus="true" placeholder="请输入介质名称 '如汽油'" v-model="inputValue" @focus="inputFocus" @confirm="search" @input="inputChange" />
|
||||
<input class="uni-input" maxlength="50" confirm-type="search" :focus="true" :placeholder="$lang('seal.medium.search.placeholder')" v-model="inputValue" @focus="inputFocus" @confirm="search" @input="inputChange" />
|
||||
<text @tap="search" class="iconfont icon-sousuo3"></text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -12,7 +12,7 @@
|
||||
<view class="history">
|
||||
<view class="history-box">
|
||||
<view class="history-top">
|
||||
<view class="title">搜索结果</view>
|
||||
<view class="title">{{$lang('seal.medium.search.searchResult')}}</view>
|
||||
</view>
|
||||
<view class="history-bottom">
|
||||
<block v-for="(item, index) in list" :key="index">
|
||||
@@ -25,7 +25,7 @@
|
||||
</view>
|
||||
</block>
|
||||
<view>
|
||||
<ns-empty v-if="list.length === 0" isIndex="false" text="暂无数据"></ns-empty>
|
||||
<ns-empty v-if="list.length === 0" isIndex="false" :text="$lang('seal.medium.search.noData')"></ns-empty>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -78,8 +78,8 @@ export default {
|
||||
},
|
||||
deleteHistoryList() {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "确认删除全部历史记录?",
|
||||
title: this.$lang('seal.medium.search.tip'),
|
||||
content: this.$lang('seal.medium.search.confirmDeleteAllHistory'),
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
uni.setStorageSync("search", []);
|
||||
@@ -90,8 +90,8 @@ export default {
|
||||
},
|
||||
deleteItem(item, index) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "确认删除该条历史记录?",
|
||||
title: this.$lang('seal.medium.search.tip'),
|
||||
content: this.$lang('seal.medium.search.confirmDeleteHistory'),
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
let search = uni.getStorageSync("search");
|
||||
|
||||
Reference in New Issue
Block a user