|
|
- <template>
- <view class="receiving flex-1">
- <view class="receiving-container" v-if="addressData.length">
- <view v-for="item in addressData" :key="item.id">
- <receiving-item :list="item" active :type="type" />
- </view>
- </view>
- <view class="vw-100 h-100" v-else>
- <u-empty icon-size="430" mode="" :src="IMG_URL + 'receiving-empty.png'"></u-empty>
- </view>
- <view class="receiving-footer position-fixed flex align-center justify-center" v-if="!addressData.length">
- <u-button type="primary" shape="circle" @click="toAdd">新增取货点</u-button>
- </view>
- </view>
- </template>
-
- <script>
- import { IMG_URL } from '@/env.js'
- export default{
- data(){
- return{
- IMG_URL,
- value:'',
- params:{
- pageNo:1,
- pageSize:10
- },
- addressData:[],
- pageNo: 1,
- pageSize: 10,
- total: null,
- isLock: true,
- type: ''
- }
- },
- computed: {
- userInfo () {
- return this.$store.state.userInfo
- },
- longitude () {
- console.log(this.userInfo)
- return this.userInfo?.longitude || 0
- },
- latitude () {
- return this.userInfo?.latitude || 0
- }
- },
- onLoad(options) {
- this.type = options?.type || ''
- this.getStationmasterList()
- // this.getLongitudeLatitude();
- uni.$on('delAddress', () => {
- })
- },
- onUnload() {
- uni.$off('delAddress');
-
- },
- onReachBottom() {
- if(this.isLock) {
- if(this.total !== null && this.pageNo * this.pageSize >= this.total){
- this.isLock = false;
- this.$Toast('没有更多数据了哦!');
- setTimeout(()=>{
- this.isLock = true;
- },3000)
- return
- }
- this.pageNo+=1;
- this.getStationmasterList();
- }
- },
- methods: {
- toAdd () {
- this.$tools.navigateTo({
- url: '/pagesC/receiving/receivingMap'
- })
- },
-
- getStationmasterList(){
- const params = {
- longitude: this.longitude,
- latitude: this.latitude
- }
- this.$api('getStationmasterList',params).then( res => {
- let { code, result, message } = res;
- if( code == 200) {
- result.forEach(item => {
- item.distance = this.GetDistance(item.latitude,item.longitude);
- })
-
- this.addressData = this.addressData.concat(result);
- console.log(this.addressData)
- } else {
- code !== 9001 && this.$Toast(message)
- }
- }).catch(err => {
- this.$Toast(err.message)
- })
- },
- Rad(d) {
- return d * Math.PI / 180.0;//经纬度转换成三角函数中度分表形式。
- },
-
- GetDistance(lat1, lng1) {//传入两个点的经纬度
- let lat2= this.latitude;
- let lng2 = this.longitude;
- let radLat1 = this.Rad(lat1);
- let radLat2 = this.Rad(lat2);
- let a = radLat1 - radLat2;
- let b = this.Rad(lng1) - this.Rad(lng2);
- let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
- Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
- s = s * 6378.137;// EARTH_RADIUS;
- s = Math.round(s * 10000) / 10000; //输出为公里
- s = s.toFixed(2);//保留小数点后两位小数
- return s;
- },
-
- }
- }
- </script>
-
- <style scoped lang="scss">
-
- .list-box{
- width: 750upx;
- }
- .u-radio-group{
- width: 100%;
- }
- .item{
- margin: 32upx;
- border: 1upx solid #707070;
- padding: 20upx;
- border-radius: 10upx;
- position: relative;
- width: 100%;
- .delete{
- position: absolute;
- right: 20upx;
- top: 20upx;
- }
- .header-box{
- display: flex;
- align-items: center;
- text{
- margin-left: 12upx;
- font-size: 26upx;
- }
- .phone-box{
- margin-left: 20upx;
- }
- .nickname{
- font-size: 28upx;
- font-weight: bold;
- color: #000000;
- }
- .tel{
- color: #707070;
- margin-left: 4upx;
- }
- }
- .content-box{
- padding: 20upx 10upx;
- display: flex;
- font-size: 28upx;
- color: #707070;
- text{
- margin-left: 8upx;
- }
- }
- .bottom-box{
- padding:10upx 10upx 10upx 10upx;
- display: flex;
- justify-content: space-between;
- align-items: center;
- font-size: 26upx;
- .text-orange-dark{
- color: #FFA206;
- font-size: 26upx;
- }
- }
- }
- .function-box{
- position: fixed;
- bottom: 0upx;
- left: 0upx;
- height: 150upx;
- width: 750upx;
- display: flex;
- align-items: center;
- justify-content: center;
- .create{
- display: flex;
- align-items: center;
- justify-content: center;
- width: 670upx;
- height: 95upx;
- background-color: #000000;
- color: #FFFFFF;
- }
- }
-
- .receiving {
- padding-bottom: 120rpx;
-
-
- &-container {
- height: 100%;
- background: #fff;
- padding: 30rpx;
- }
- &-footer {
- height: 120rpx;
- bottom: 0;
- left: 0;
- width: 100%;
- background: #fff;
- /deep/.u-btn {
- width: 600rpx;
- height: 80rpx;
- }
- }
- }
- </style>
|