366 lines
9.2 KiB
Vue
366 lines
9.2 KiB
Vue
<template>
|
|
<view>
|
|
<view class="form-title redtitle">
|
|
<!-- 升级会员信息 -->
|
|
{{ $t('w_0243') }}
|
|
</view>
|
|
<view class="prefecture form-group mb20">
|
|
<!-- 升级编号 -->
|
|
<view class="form-item">
|
|
<view class="form-label">
|
|
<text class="domation mr10">*</text>
|
|
{{ $t('w_0095') }}
|
|
</view>
|
|
<input @blur="changeInput('upgradeMemberCode')" class="form-input" type="text"
|
|
v-model="form.upgradeMemberCode" :placeholder="$t('w_0097')" />
|
|
</view>
|
|
<!-- 升级姓名 -->
|
|
<view class="form-item">
|
|
<view class="form-label">
|
|
<text class="domation mr10">*</text>
|
|
{{ $t('w_0098') }}
|
|
</view>
|
|
<view class="disabled-input">{{ form.upgradeMemberName }}</view>
|
|
</view>
|
|
<view class="form-item">
|
|
<view class="form-label">
|
|
<text class="domation mr10">*</text>
|
|
{{$t('PER_DA_4')}}
|
|
</view>
|
|
<view class="flex-1 d-s-c">
|
|
<image class="queryimg mr10" mode="heightFix"
|
|
:src="pkSettleCountry>=0&&countryList[pkSettleCountry] ? countryList[pkSettleCountry].nationalFlag1 : ''">
|
|
</image>
|
|
<view class="flex-1">
|
|
{{pkSettleCountry>=0&&countryList[pkSettleCountry] ? countryList[pkSettleCountry].shortName : ''}}
|
|
</view>
|
|
</view>
|
|
<!-- <text class="icon iconfont icon-jiantou"></text> -->
|
|
</view>
|
|
<!-- 发货方式 -->
|
|
<view class="form-item" style="border-bottom: 1rpx solid #eee;" @click="opendeliveryShow"
|
|
v-if="deliveryList">
|
|
<view class="form-label">
|
|
<text class="domation mr10">*</text>
|
|
{{ $t('w_0061') }}
|
|
</view>
|
|
<view class="form-input">{{ deliveryIndex }}</view>
|
|
<text class="icon iconfont icon-jiantou" v-if="userCountry != 1"></text>
|
|
</view>
|
|
<u-picker :cancelText="$t('MN_F_31')" :confirmText="$t('MN_F_32')" @cancel="deliveryShow = false"
|
|
:show="deliveryShow" ref="deliveryList" :columns="[deliveryList]" @confirm="changeDelivery"
|
|
keyName="label"></u-picker>
|
|
<!-- 会员店铺 -->
|
|
<view class="form-item" style="border-bottom: 1rpx solid #eee;" @click="openStoreDialog" v-if="userCountry != 1 && form.deliveryWay != 2">
|
|
<view class="form-label">
|
|
<text class="domation mr10">*</text>
|
|
{{ $t('w_0100') }}
|
|
</view>
|
|
<view class="form-input">{{ storeIndex }}</view>
|
|
<text class="icon iconfont icon-jiantou" v-if="userCountry != 1"></text>
|
|
</view>
|
|
</view>
|
|
<view v-if="isQuery" @touchmove.stop.prevent="moveHandle">
|
|
<view class="pop-up-bg" @click="isQuery = false"></view>
|
|
<view class="pop-up">
|
|
<view class="d-e-c p20">
|
|
<view class="blue f28" @click="closeQuery">完成</view>
|
|
</view>
|
|
<picker-view :indicator-style="'height: 80px;'" @change="changeQuery" class="picker-view">
|
|
<picker-view-column>
|
|
<view class="item d-c d-c-c" v-for="(item, index) in countryList" :key="index">
|
|
<image style="height: 50px;" mode="heightFix" :src="item.nationalFlag1"></image>
|
|
<view class="f28 gray9 mt10">{{ item.name }}</view>
|
|
</view>
|
|
</picker-view-column>
|
|
</picker-view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
deliveryIndex: '',
|
|
transportIndex: 0,
|
|
storeIndex: '',
|
|
storehouseIndex: '',
|
|
deliveryShow: false,
|
|
storeShow: false,
|
|
isQuery: false,
|
|
pkCountry: -1,
|
|
pkSettleCountry: -1,
|
|
poptype: '',
|
|
showStoreDialog: false,
|
|
filteredStores: [],
|
|
searchTerm: '',
|
|
storeData:{},
|
|
};
|
|
},
|
|
inject: ['form'],
|
|
props: ['deliveryList', 'transportType', 'userCountry', 'storeList', 'storehouse', 'countryList','storeLists'],
|
|
created() {
|
|
let self= this;
|
|
self.$fire.on('handleStoreData', function(n) {
|
|
console.log(n,'n');
|
|
self.handleStoreData(n)
|
|
})
|
|
},
|
|
watch: {
|
|
deliveryList: function(n, o) {
|
|
if (n != o && n != '') {
|
|
this.deliveryIndex = n[0].label;
|
|
this.form.deliveryWay = n[0].value;
|
|
}
|
|
},
|
|
countryList: function(n, o) {
|
|
let self = this;
|
|
if (n != o) {
|
|
let num = 0;
|
|
n.some((item, index) => {
|
|
if (item.pkId == self.userCountry) {
|
|
num = index;
|
|
return true;
|
|
}
|
|
});
|
|
self.pkSettleCountry = num;
|
|
self.pkCountry = num;
|
|
if (n) {
|
|
self.form.pkSettleCountry = n[self.pkSettleCountry].pkId;
|
|
// self.form.pkCountry = n[self.pkCountry].pkId;
|
|
}
|
|
}
|
|
},
|
|
|
|
},
|
|
methods: {
|
|
openStoreDialog() {
|
|
if(!this.form.upgradeMemberCode){
|
|
uni.showToast({
|
|
title: this.$t('w_0097'),
|
|
icon: 'none',
|
|
duration: 2000
|
|
});
|
|
return;
|
|
}
|
|
let url = '/pages/prefecture/part/memberStore?userCountry=' + this.userCountry;
|
|
uni.navigateTo({
|
|
url: url
|
|
});
|
|
},
|
|
handleStoreData(data) {
|
|
this.storeData = data; // 接收子页面传递的数据
|
|
this.storeIndex = this.storeData.storeName+'('+this.storeData.storeCode+')';
|
|
this.form.pkMemberStore = this.storeData.pkId;
|
|
},
|
|
|
|
opendeliveryShow() {
|
|
if (this.userCountry == 1) {
|
|
return;
|
|
}
|
|
this.deliveryShow = true;
|
|
},
|
|
changePkMemberStore(e) {
|
|
this.storeIndex = e.value[0].storeName;
|
|
if (this.storeList) {
|
|
this.form.pkMemberStore = e.value[0].pkId;
|
|
}
|
|
this.storeShow = false;
|
|
},
|
|
changeDelivery(e) {
|
|
// this.deliveryIndex = e.detail.value;
|
|
// this.form.deliveryWay = this.deliveryList[this.deliveryIndex].value;
|
|
this.deliveryIndex = e.value[0].label;
|
|
this.form.deliveryWay = e.value[0].value;
|
|
this.$emit('queryOrderPostage');
|
|
this.deliveryShow = false;
|
|
},
|
|
changeStore(e) {
|
|
this.storeIndex = e.detail.value;
|
|
if (this.storeList) {
|
|
this.form.pkMemberStore = this.storeList[this.storeIndex].pkId;
|
|
}
|
|
},
|
|
changeStorehouse(e) {
|
|
this.storehouseIndex = e.detail.value;
|
|
if (this.storehouse) {
|
|
this.form.pkStorehouse = this.storehouse[this.storehouseIndex].pkId;
|
|
}
|
|
},
|
|
changeInput(e) {
|
|
this.$emit('changeInput', e);
|
|
},
|
|
changeTransport(e) {
|
|
this.transportIndex = e.detail.value;
|
|
this.form.transType = this.transportType[this.transportIndex].value;
|
|
this.$emit('queryOrderPostage');
|
|
},
|
|
changeAccount(e) {
|
|
this.bank_index = e.detail.value;
|
|
console.log(this.bank_index);
|
|
this.form.pkBank = this.accountList[this.bank_index].value;
|
|
},
|
|
changeType(n) {
|
|
this.registType = n;
|
|
},
|
|
changePlaceDept(e) {
|
|
this.form.placeDept = e.detail.value + 1;
|
|
this.changeInput('placeDept');
|
|
},
|
|
closeQuery() {
|
|
this[this.poptype] = this.queryValue;
|
|
if (this.poptype == 'pkSettleCountry') {
|
|
this.form.pkSettleCountry = this.countryList[this.pkSettleCountry].pkId;
|
|
} else {
|
|
this.form.pkCountry = this.countryList[this.pkCountry].pkId;
|
|
}
|
|
this.isQuery = false;
|
|
},
|
|
changeQuery(e) {
|
|
this.queryValue = e.detail.value[0];
|
|
},
|
|
moveHandle() {
|
|
return false;
|
|
},
|
|
openCPop(name) {
|
|
this.poptype = name;
|
|
this.isQuery = true;
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.title-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 20rpx 0rpx;
|
|
margin-left: 20rpx;
|
|
border-bottom: 1rpx solid #ccc;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.title-row span {
|
|
flex: 1;
|
|
}
|
|
|
|
.fixed-rows {
|
|
padding: 0;
|
|
margin: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
.data-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 30rpx 0; /* 调整每个数据项的上下内边距 */
|
|
border-bottom: 1px solid #eee; /* 添加底部边框 */
|
|
margin-bottom: 10rpx;
|
|
}
|
|
.data-item view {
|
|
flex: 1; /* 均分每个数据项的宽度 */
|
|
white-space: nowrap; /* 不换行 */
|
|
overflow: hidden; /* 超出部分隐藏 */
|
|
text-overflow: ellipsis; /* 超出部分用省略号表示 */
|
|
margin-left: 10rpx;
|
|
}
|
|
.pop-up-bg {
|
|
position: fixed;
|
|
background-color: rgba(0, 0, 0, 0.6);
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100vh;
|
|
z-index: 99;
|
|
}
|
|
|
|
.pop-up {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 50vh; /* 限制最大高度 */
|
|
overflow-y: auto; /* 当内容超出时,允许垂直滚动 */
|
|
background-color: #ffffff;
|
|
z-index: 100;
|
|
}
|
|
.picker-view {
|
|
width: 750rpx;
|
|
height: 600rpx;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.item {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
height: 80px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
text-align: center;
|
|
}
|
|
.queryimg {
|
|
height: 60rpx;
|
|
width: 60rpx;
|
|
// flex-shrink: 0;
|
|
}
|
|
|
|
.form-title {
|
|
width: 750rpx;
|
|
height: 106rpx;
|
|
background: #fb3024;
|
|
padding-left: 44rpx;
|
|
padding-right: 25rpx;
|
|
position: relative;
|
|
box-sizing: border-box;
|
|
font-size: 28rpx;
|
|
color: #ffffff;
|
|
line-height: 106rpx;
|
|
font-weight: bold;
|
|
z-index: 1;
|
|
}
|
|
|
|
.form-title.redtitle {
|
|
width: 750rpx;
|
|
height: 106rpx;
|
|
background: #fb3024;
|
|
padding-left: 44rpx;
|
|
position: relative;
|
|
box-sizing: border-box;
|
|
font-size: 28rpx;
|
|
color: #fff;
|
|
line-height: 106rpx;
|
|
font-weight: bold;
|
|
z-index: 1;
|
|
}
|
|
|
|
.form-title::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
margin: auto;
|
|
left: 25rpx;
|
|
width: 6rpx;
|
|
height: 24rpx;
|
|
background-color: #fb3024;
|
|
z-index: 1;
|
|
}
|
|
|
|
.redtitle.form-title::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
margin: auto;
|
|
left: 25rpx;
|
|
width: 6rpx;
|
|
height: 24rpx;
|
|
background-color: #fff;
|
|
z-index: 1;
|
|
}
|
|
</style> |