更新记录

1.0.0(2025-01-14) 下载此版本

模版初始化


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

cc-headSearch

uniapp专属精品组件页面模板(由前端组件开发出品)精品组件页面模板

●组件模板规划:

由前端组件开发出品的精品组件页面模板,将陆续发布,预计高达约几百种供您使用,是快速快发项目、创业的必备精品。

合集地址: uni-app模板合集地址:(https://ext.dcloud.net.cn/publisher?id=274945) 如查看全部页面模板,请前往上述uniapp插件市场合集地址;

●组件模板效果图:

可下载项目后预览,效果图见右侧图片;

●组件模板费用:

学习:免费下载,进行学习,无费用;

使用/商用:本页面地址赞赏10元后,可终身商用;

●组件模板使用版权/商用:

本组件模板免费下载可供学习,如需使用及商用,请在本组件页面模板进行赞赏10元

(仅需10元获取精品页面模板代码-物有所值,1个组件页面市场价100元 )

赞赏10元后(当前项目产生赞赏订单可追溯)即可终身商用当前本地址下载的页面模版代码,不同下载地址需进行不同的赞赏。(不赞赏就进行商用使用者,面临侵权!保留追究知识产权法律责任!后果自负!)

我的技术公众号(私信可加前端技术交流群)

群内气氛挺不错的,应该或许可能大概,算是为数不多的,专搞技术的前端群,偶尔聊天摸鱼

图片

自定义顶部搜索框 用于搜索跳转使用方法


<template>
    <view class="content">

        <view style="display: flex; padding: 5px 0px 8px 0px; width: 100vw; background-color: white;">

            <view class="locText" @click="selectCity">{{ currentCity }}</view>
            <!-- 自定义顶部搜索框 用于搜索跳转 skipUrl:跳转url为绝对路径 /pages开头 -->
            <cc-headSearch @click.native="goSearchClick"></cc-headSearch>

        </view>

    </view>
</template>

<script>    
    export default {

        data() {
            return {
                currentCity: '定位中',
                // 经纬度
                locationStr:'',
                // 地区
                regionStr:'',

                startLoc: {
                    name: ''
                },
                endLoc: {
                    name: ""
                }

            }
        },
        onShareAppMessage() {
            return {
                title: '站点线路规划',
                path: '/pages/index/index'
            }
        },
        onShareTimeline() {
            return {
                title: '全国地铁查询',
                query: '', // 你可以传递一些参数,例如 `id` 等
                imageUrl: '/static/logo.png' // 自定义分享图片路径
            };
        },
        onLoad() {

            let that = this;
            this.$nextTick(() => {

                // 获取当前位置
                that.getCurrentCity();

            });

        },

        methods: {

            goSearchClick(){

                uni.navigateTo({
                    url:'/pagesB/search/search?location=' + this.locationStr + '&region=' + this.regionStr
                })
            },
            getCurrentCity() {

                let keyArr = ["VOEBZ-APTCZ-FGBXG-TPJM4-XWGRV-JKBQX", "SFABZ-WANWW-FISRY-3IGTF-HV7RE-YSFTI"]
                const randomKey = keyArr[Math.floor(Math.random() * keyArr.length)];

                uni.getLocation({
                    type: 'gcj02',
                    success: (res) => {
                        const latitude = res.latitude;
                        const longitude = res.longitude;
                        this.locationStr = `${latitude},${longitude}`;

                        uni.request({
                            url: `https://apis.map.qq.com/ws/geocoder/v1/`,
                            method: 'GET',
                            data: {
                                key: randomKey, // 替换为你的腾讯地图密钥
                                location: `${latitude},${longitude}`
                            },
                            success: (res) => {
                                if (res.data.status === 0) {
                                    this.currentCity = res.data.result.address_component.city;
                                    this.regionStr = this.currentCity;
                                    // 存储当前位置
                                    uni.setStorageSync('curLoc', this.currentCity);

                                } else {
                                    this.currentCity = '定位失败';
                                }
                            },
                            fail: () => {
                                this.currentCity = '定位失败';
                            }
                        });
                    },
                    fail: () => {
                        this.currentCity = '定位失败';
                    }
                });
            },
            selectCity() {
                uni.navigateTo({
                    url: './cityList',
                    events: {
                        selectCity: (data) => {
                            this.currentCity = data.city;
                            // 存储当前位置
                            uni.setStorageSync('curLoc', this.currentCity);
                        }
                    }
                });
            },

        }

    }
</script>

<style>
    page {
        background: #f8f8f8;
    }

    .content {
        display: flex;
        flex-direction: column;
        height: 100%;
    }

    .uni-btn-v {
        width: 100%;
        height: auto;
    }

    .botBtn {
        width: 90%;
        margin-top: 28px;
        background-color: #e54d42;
        height: 44px;
        line-height: 44px;
        border-radius: 22px;
        color: white;

    }

    .botGratBtn {
        width: 90%;
        margin-top: 26px;
        background-color: darkgray;
        height: 44px;
        line-height: 44px;
        border-radius: 22px;
        color: white;

    }

    .upView {
        margin-top: 28px;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        margin-left: 12px;
        width: calc(100vw - 24px);
        padding: 8px 0px;
        background-color: white;
        border-radius: 8px;

    }

    .tipText {
        width: 100%;
        margin-left: 0px;
        text-align: center;
        color: #666666;
        margin-top: 26px;
        margin-bottom: 26px;
        font-size: 28rpx;
    }

    .useIntroV {
        margin-left: calc(50vw - 35px);
        width: 66px;
        font-weight: 400;
        margin-top: 16px;
        text-align: center;
        color: #e54d42;
        font-size: 13px;
        height: 28px;
        line-height: 28px;
        border-bottom: 1px #eee solid;

    }

    .locText {
        font-size: 13px;
        margin: 6px 8px;
        width: 52px !important;
        line-height: 44px;
        height: 44px;
        color: #333;
        text-align: center;
    }
</style>

<template>
  <view class="container">
    <view class="grid">
      <view v-for="city in cities" :key="city" class="grid-item" @click="selectCity(city)">
        {{ city }}
      </view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      cities: ['北京市', '上海市', '广州市', '深圳市', '杭州市', '南京市', '成都市', '重庆市', '武汉市', '西安市', '天津市', '沈阳市', '大连市', '青岛市', '宁波市', '郑州市', '长沙市', '苏州市', '佛山市', '东莞市','福州市','长春市','合肥市','昆明市','南昌市'] // 有地铁的城市
    };
  },
  methods: {
    selectCity(city) {
      const eventChannel = this.getOpenerEventChannel();
      eventChannel.emit('selectCity', { city });
      uni.navigateBack();
    }
  }
};
</script>

<style>
.container {
  padding: 12px;
}
.grid {
  display: flex;
  flex-wrap: wrap;
}
.grid-item {
  width: 24%;
  padding: 10px;
  margin:  5px 6px;
  text-align: center;
  background-color: #f0f0f0;
  border-radius: 4px;
  cursor: pointer;
}
</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问