111
This commit is contained in:
211
pages/SelectAddressActivity.vue
Normal file
211
pages/SelectAddressActivity.vue
Normal file
@@ -0,0 +1,211 @@
|
||||
<template>
|
||||
<view>
|
||||
<view style="position: sticky;top: 0;background-color: #FFFFFF;">
|
||||
<view class="search-container">
|
||||
<!-- 搜索框 -->
|
||||
<view class="search-container-bar">
|
||||
<!-- :cancelText="keyBoardPopup ? '取消' : '搜索'" -->
|
||||
<uni-search-bar ref="searchBar" style="flex:1;margin-left: 20rpx;" radius="100"
|
||||
v-model="associativeText" :focus="focus" :placeholder="hotWorld" clearButton="auto"
|
||||
cancelButton="none" @clear="clear" />
|
||||
<view v-if="stringIsNotEmpty(associativeText) && associativeText!=page.key" @click="search"
|
||||
style="margin-right: 10px;font-size: 13px;">搜索</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="search-body">
|
||||
<view
|
||||
style="font-size: 26rpx;padding-left: 40rpx;padding-right: 40rpx;padding-top: 10rpx;padding-bottom: 20rpx;color: steelblue;">
|
||||
输入关键字筛选提货点
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<loading-state ref="pageView" @request="request">
|
||||
<!-- 搜索联想 -->
|
||||
<view
|
||||
style="display: flex;flex-direction: column;background: #FFFFFF;border-radius: 30rpx;padding: 20rpx;box-sizing: border-box;margin: 20rpx;width: calc(100% - 40rpx);padding-bottom: 0px;"
|
||||
v-for="(item,index) in dataList" :key="index">
|
||||
|
||||
<!-- 顶部标题 -->
|
||||
<view
|
||||
style="display: flex;flex-direction: row;width: 100%;box-sizing: border-box;width: 100%;margin-top:10rpx ;align-items: center;">
|
||||
<image src="../static/address_name.png" style="width: 50rpx;height: 50rpx;flex-shrink: 0;">
|
||||
</image>
|
||||
<text
|
||||
style="font-size: 31.5rpx;margin-left: 18rpx;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;">{{item.name}}
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<!-- 营业时间 -->
|
||||
<text
|
||||
style="font-size: 24rpx;color: #999999;margin-top: 6rpx;box-sizing: border-box;width: 100%;display:inline-block;white-space: pre-wrap; word-wrap: break-word;height: auto;">营业时间:{{item.businessHours}}</text>
|
||||
|
||||
<!-- 提货点信息 -->
|
||||
<view style="display: flex;flex-direction: row;margin-top: 22rpx;">
|
||||
<image v-if="false"
|
||||
style="width: 120rpx;height: 120rpx;border-radius: 20rpx;flex-shrink: 0;background-color: #fafafa;">
|
||||
</image>
|
||||
<view style="display: flex;flex: 1;flex-direction: column;margin-left: 20rpx;margin-top: 10rpx;">
|
||||
<view style="display: flex;flex-direction: row;">
|
||||
<image src="../static/address_location.png"
|
||||
style="width: 16px;height: 16px;flex-shrink: 0;margin-right: 3px;">
|
||||
</image>
|
||||
<view style="color: #666666;font-size: 29.5rpx;">{{item.address}}
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;flex-direction: row;margin-top: 22rpx;">
|
||||
<image src="../static/address_phone.png"
|
||||
style="width: 16px;height: 16px;margin-right: 3px;flex-shrink: 0;">
|
||||
</image>
|
||||
<view style="color: #5259D7;font-size: 29.5rpx;">{{item.phone}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 底部 -->
|
||||
|
||||
<view style="display: flex;flex-direction: row;margin-top: 38rpx;border-top: 1rpx #f1f2f3 solid;">
|
||||
<view style="flex: 1;"></view>
|
||||
|
||||
<view class="btn" style="flex-shrink: 0;font-size: 30rpx;color: #191919;"
|
||||
@click.stop="phone(item.phone)">
|
||||
<image src="../static/address_phone2.png" style="width: 18px;height: 18px;"></image>
|
||||
<view style="font-size: 13px;margin-left: 6px;">电话</view>
|
||||
</view>
|
||||
<view class="btn" style="flex-shrink: 0;font-size: 30rpx;color: #191919;"
|
||||
@click.stop="confirm(item)">
|
||||
<image src="../static/address_confirm.png" style="width: 18px;height: 18px;"></image>
|
||||
<view style="font-size: 13px;margin-left: 6px;">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</loading-state>
|
||||
|
||||
<view style="height: 20px;"></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
page: {
|
||||
key: ''
|
||||
},
|
||||
associativeText: '',
|
||||
hotWorld: '请输入', // 搜索热词,如果没有输入即回车,则搜索热词,但是不会加入搜索记录
|
||||
focus: true, // 是否自动聚焦
|
||||
dataList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 首次请求
|
||||
this.request()
|
||||
|
||||
// #ifdef APP-PLUS
|
||||
uni.onKeyboardHeightChange((res) => {
|
||||
this.keyBoardPopup = res.height !== 0;
|
||||
})
|
||||
// #endif
|
||||
},
|
||||
methods: {
|
||||
search() {
|
||||
this.page.key = this.associativeText
|
||||
this.request()
|
||||
},
|
||||
phone(num) {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: num
|
||||
});
|
||||
},
|
||||
confirm(item) {
|
||||
uni.$emit('address', item.sid)
|
||||
uni.navigateBack()
|
||||
},
|
||||
request() {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.pageView.setLoadState(0)
|
||||
})
|
||||
let _this = this
|
||||
_this.$api.address({
|
||||
'name': this.page.key
|
||||
}).then((resp) => {
|
||||
_this.dataList = resp
|
||||
if (resp.length == 0) {
|
||||
_this.$nextTick(() => {
|
||||
_this.$refs.pageView.setLoadState(100)
|
||||
})
|
||||
} else {
|
||||
_this.$nextTick(() => {
|
||||
_this.$refs.pageView.setLoadState(2)
|
||||
})
|
||||
}
|
||||
}).catch(e => {
|
||||
_this.$nextTick(() => {
|
||||
_this.$refs.pageView.setLoadState(1)
|
||||
})
|
||||
})
|
||||
},
|
||||
clear(res) {
|
||||
this.page.key = ''
|
||||
this.request()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss">
|
||||
uni-page-body,
|
||||
page {
|
||||
background: #f3f4f6;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
padding: 10px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.search-body {
|
||||
background-color: #ffffff;
|
||||
border-bottom-right-radius: 10px;
|
||||
border-bottom-left-radius: 10px;
|
||||
}
|
||||
|
||||
@mixin uni-flex {
|
||||
/* #ifndef APP-NVUE */
|
||||
display: flex;
|
||||
/* #endif */
|
||||
}
|
||||
|
||||
$search-bar-height: 52px;
|
||||
$word-container_header-height: 72rpx;
|
||||
|
||||
.search-container {
|
||||
height: $search-bar-height;
|
||||
@include uni-flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
background: white;
|
||||
|
||||
@at-root {
|
||||
#{&}-bar {
|
||||
@include uni-flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user