123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- <template>
- <view>
- <view @click="showAct" class="pd16_15 flex alcenter">
- <view style="width: calc(100% - 40rpx);" class="flex">
- <text class="iconfont iconicon_location02 ft18" :style="{color:tempColor}"></text>
- <view class="pl10" style="width: calc(100% - 40rpx);">
- <view v-if="getSelectItem == null" class="ft14 cl-main ftw600">选择门店</view>
- <view v-if="getSelectItem != null" class="ft14 cl-main ftw600 text-over">[{{getSelectItem.name}}]{{getSelectItem.address}}</view>
- <view v-if="getSelectItem != null" class="ft12 mt12 cl-orange">距离{{getSelectItem.juli}}km</view>
- </view>
- </view>
- <text class="iconfont iconicon_arrow_small ft14 cl-notice"></text>
- </view>
-
- <view v-show="showmendian" class="mendian-modal">
- <view class="modal-bg"></view>
- <view class="modal-box animated fast" :class="show ? 'slideInUp' : 'slideOutDown'">
- <view class="modal-main">
- <view class="closed">
- <text @click="closed()" class="iconfont ft20 cl-notice iconbtn_close"></text>
- </view>
- <view class="lh20 ft16 cl-main ftw600 text-center">选择自提门店</view>
-
- <view class="pd16_15">
-
- <radio-group @change="selectMendian">
-
- <view v-for="(item,index) in mendians" :key="index" class="box noshadow pd16_15 mt16 flex alcenter space">
- <view style="width: calc(100% - 60rpx);">
- <view class="flex alcenter">
- <view class="tag-default mr10" v-if="item.is_tuijian == 1" :style="{background:tempColor}">推荐</view>
- <text class="ft14 ftw600 cl-main text-over" style="width: calc(100% - 88rpx);">[{{item.name}}]{{item.address}}</text>
- </view>
- <view class="mt8 ft12 cl-orange ">
- 距离{{item.juli}}km
- </view>
- </view>
- <radio :value="item.mendian_id" :checked="item.mendian_id == getSelectId" :color="tempColor" />
- </view>
-
- </radio-group>
- </view>
-
- <view v-if="mendians.length > 0 " class="plr15 mt40">
- <button class="btn-big" @click="selectYes" :style="getBtnStyle">确定选择</button>
- </view>
- </view>
- </view>
- </view>
- </view>
- </template>
- <script>
- export default{
- props:{
- value:{
- type:Number,
- default:0
- },
- },
- data(){
- return {
- show:false,
- showmendian:false,
- isSelect:false,
- selectId:0,
- mendians:[
- {mendian_id:1,name:'高速店',address:'合肥市包河区万达临湖苑A区16栋1602室',juli:0.6,is_tuijian:1},
- {mendian_id:2,name:'万达店',address:'合肥市包河区万达临湖苑A区16栋2007室',juli:11,is_tuijian:0}
- ],
- }
- },
- computed:{
- getDefaultId(){
- if(this.mendians.length == 0) return 0;
- for(var a in this.mendians){
- if(this.mendians[a].is_tuijian == 1){
- return this.mendians[a].mendian_id;
- }
- }
- if(this.mendians[0]){
- return this.mendians[0].mendian_id;
- }
- },
- getSelectId(){
- if(this.isSelect){
- return this.selectId;
- }
- if(this.value > 0){
- return this.value;
- }
- return this.getDefaultId;
- },
- getSelectItem(){
- for(var a in this.mendians){
- if(this.mendians[a].mendian_id == this.value){
- return this.mendians[a];
- }
- }
- return null;
- }
- },
- created(){
-
- },
- methods:{
- selectMendian(e){
- this.isSelect = true;
- this.selectId = parseInt(e.detail.value);
- },
- showAct(){
- this.showmendian = true;
- this.show = true;
- },
- selectYes(){
- if(this.getSelectId){
- this.$emit('input',this.getSelectId);
- this.closed();
- }
- },
- closed(){
- this.show = false;
- setTimeout(()=>{
- this.showmendian = false;
- },400);
- }
- }
- }
- </script>
- <style>
- .mendian-modal{
- position: relative;
- z-index: 400;
- }
- .mendian-modal .modal-bg{
- position: fixed;
- z-index: 400;
- left: 0;
- top: 0;
- width: 100%;
- height: 100vh;
- background: rgba(0,0,0,.5);
- }
- .mendian-modal .modal-box{
- position: fixed;
- z-index: 401;
- background:#F5F6FA;
- left: 0;
- bottom: 0;
- width: 100%;
- padding-bottom:0rpx;
- padding-bottom:constant(safe-area-inset-bottom);
- padding-bottom:env(safe-area-inset-bottom);
- border-radius:32rpx 32rpx 0rpx 0rpx;
- }
- .mendian-modal .modal-main{
- position: relative;
- height: auto;
- overflow: hidden;
- padding-top: 64rpx;
- padding-bottom: 40rpx;
- }
- .mendian-modal .modal-main .closed{
- position: absolute;
- right: 40rpx;
- top: 40rpx;
- }
-
- .tag-default{
- width: 64rpx;
- height: 36rpx;
- border-radius: 4rpx;
- text-align: center;
- line-height: 36rpx;
- font-size: 24rpx;
- color:#FFFFFF;
- }
- </style>
|