feat: 城市列表页搜索功能增加防抖And商家管理退款静态页面开发

This commit is contained in:
mayubo@gmail.com 2025-07-03 17:19:17 +08:00
parent 6db9b3becf
commit 702d3ffcec
16 changed files with 466 additions and 80 deletions

View File

@ -3,7 +3,7 @@ page {
} }
.container { .container {
.container_body { .container_body {
background: url("http://127.0.0.1:5500/assets/community_providentFund_Group_1523.png") no-repeat; background: url("http://192.168.0.152:5500/assets/community_providentFund_Group_1523.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.title { .title {

View File

@ -59,13 +59,13 @@
<image <image
v-if="item.checked" v-if="item.checked"
class="pic" class="pic"
src="http://127.0.0.1:5500/assets/community_providentFund_Group_1444.png" src="http://192.168.0.152:5500/assets/community_providentFund_Group_1444.png"
mode="scaleToFill" mode="scaleToFill"
/> />
<image <image
v-else v-else
class="pic" class="pic"
src="http://127.0.0.1:5500/assets/community_providentFund_Ellipse_160.png" src="http://192.168.0.152:5500/assets/community_providentFund_Ellipse_160.png"
mode="scaleToFill" mode="scaleToFill"
/> />
</view> </view>
@ -90,7 +90,7 @@ export default {
data() { data() {
return { return {
top: '', top: '',
moeny: 0.00, moeny: '0.00',
show: false, show: false,
ownerDesc: '本房产的物业公积金为该房产的所有成员物业公积金总和。无需经过成员同意便可用于本房产的物业费抵扣,一旦成功抵扣,成员所拥有的物业公积金将自动进行扣除。', ownerDesc: '本房产的物业公积金为该房产的所有成员物业公积金总和。无需经过成员同意便可用于本房产的物业费抵扣,一旦成功抵扣,成员所拥有的物业公积金将自动进行扣除。',
desc: '物业公积金可通用至您加入的所有房产,任一房产的物业相关费用均可用该物业公积金抵扣。', desc: '物业公积金可通用至您加入的所有房产,任一房产的物业相关费用均可用该物业公积金抵扣。',

View File

@ -89,11 +89,11 @@
<view>导航</view> <view>导航</view>
</view> </view>
<view class="left_label" @click="handlePhoneClick"> <view class="left_label" @click="handlePhoneClick">
<image src="http://127.0.0.1:5500/assets/localLife_detail_Frame.png" mode="" /> <image src="http://192.168.0.152:5500/assets/localLife_detail_Frame.png" mode="" />
<view>电话</view> <view>电话</view>
</view> </view>
<view class="left_label" @click="handleDiscussClick"> <view class="left_label" @click="handleDiscussClick">
<image src="http://127.0.0.1:5500/assets/localLife_shopList_Group_1334.png" mode="" /> <image src="http://192.168.0.152:5500/assets/localLife_shopList_Group_1334.png" mode="" />
<view>点评</view> <view>点评</view>
</view> </view>
</view> </view>

View File

@ -23,7 +23,7 @@
<view class="discuss"> <view class="discuss">
<image <image
class="discuss_pic" class="discuss_pic"
src="http://127.0.0.1:5500/assets/localLife_shopList_Group_1334.png" src="http://192.168.0.152:5500/assets/localLife_shopList_Group_1334.png"
/> />
<text>点评</text> <text>点评</text>
</view> </view>
@ -49,7 +49,7 @@ export default {
list: [ list: [
{ {
title: "李氏济世堂", title: "李氏济世堂",
pic: "http://127.0.0.1:5500/assets/index_Mask_group.png", pic: "http://192.168.0.152:5500/assets/index_Mask_group.png",
desc: ["到家服务", "买单返物业费", "买单返物业费"], desc: ["到家服务", "买单返物业费", "买单返物业费"],
address: "苏州市太仓市城厢镇桃园三村11幢105市", address: "苏州市太仓市城厢镇桃园三村11幢105市",
distance: "898km", distance: "898km",
@ -57,7 +57,7 @@ export default {
}, },
{ {
title: "美容美发", title: "美容美发",
pic: "http://127.0.0.1:5500/assets/index_Mask_group.png", pic: "http://192.168.0.152:5500/assets/index_Mask_group.png",
desc: [ "买单返物业费"], desc: [ "买单返物业费"],
address: "苏州市太仓市城厢镇桃园三村11幢105市", address: "苏州市太仓市城厢镇桃园三村11幢105市",
distance: "898km", distance: "898km",

View File

@ -0,0 +1,133 @@
page {
background: #F6F7FB;
// background: red;
}
.container {
margin: 0 20px;
.header {
margin-top: 20rpx;
background-color: #FFFFFF;
border-radius: 20rpx;
.title {
padding-left: 20rpx;
font-size: 28rpx;
font-weight: 600;
color: #222222;
height: 85rpx;
line-height: 85rpx;
border-radius: 20rpx 20rpx 0 0;
background: linear-gradient( 304deg, #FFFFFF 0%, #FEE7C3 100%);
}
.list {
padding: 20rpx;
.item {
margin-top: 20rpx;
display: flex;
justify-content: space-between;
&:first-child{
margin-top: 0;
}
.label {
font-size: 28rpx;
color: #999999;
}
.desc {
font-weight: 400;
font-size: 28rpx;
color: #222222;
text-align: right;
.price {
font-size: 36rpx;
}
.time {
font-size: 24rpx;
margin-top: 10rpx;
color: #999999;
}
.payLogo {
width: 36rpx;
height: 31rpx;
margin-right: 10rpx;
}
}
.pay {
display: flex;
align-items: center;
}
}
.line {
height: 0;
margin: 30rpx 0 10rpx;
border-bottom: 1px solid #EBEBEB;
}
}
}
.main {
margin-top: 20rpx;
background-color: #FFFFFF;
border-radius: 20rpx;
padding: 58rpx 20rpx;
.title {
font-size: 32rpx;
color: #222222;
font-weight: 600;
text-align: center;
}
.price {
text-align: center;
font-size: 60rpx;
color: #FF370B;
margin-top: 10rpx;
font-weight: 800;
}
.desc {
font-size: 26rpx;
color: #999999;
text-align: center;
margin-top: 10rpx;
}
.remark {
margin-top: 58rpx;
font-size: 26rpx;
color: #999999;
margin-bottom: 25rpx;
}
}
.btn {
margin: 60rpx auto 0;
width: 600rpx;
height: 90rpx;
line-height: 90rpx;
background: linear-gradient( 91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 36rpx;
color: #FFFFFF;
text-align: center;
}
.popup_container {
display: flex;
flex-direction: column;
align-items: center;
.popup_pic {
margin-top: 51rpx;
width: 169rpx;
height: 148rpx;
}
.title {
margin-top: 28rpx;
font-size: 36rpx;
color: #222222;
font-weight: 500;
margin-bottom: 56rpx;
}
.btn {
width: 170rpx;
height: 52rpx;
line-height: 52rpx;
background: #FF370B;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 28rpx;
color: #FFFFFF;
}
}
}

View File

@ -0,0 +1,109 @@
<template>
<view class="container">
<view class="header">
<view class="title">订单编号12345678941</view>
<view class="list">
<view class="item">
<view class="label">收益金额</view>
<view class="desc">
<view class="price">65.1</view>
<view class="time">刚刚</view>
</view>
</view>
<view class="line" />
<view class="item">
<view class="label">消费门店</view>
<view class="desc">真彩图文</view>
</view>
<view class="item">
<view class="label">支付状态</view>
<view class="desc">已支付</view>
</view>
<view class="item">
<view class="label">支付方式</view>
<view class="desc pay">
<image
class="payLogo"
src="http://192.168.0.152:5500/assets/orderDetail_Vector17.png"
mode="scaleToFill"
/>
微信支付</view>
</view>
<view class="item">
<view class="label">创建时间</view>
<view class="desc">2025-06-25 18:10:08</view>
</view>
<view class="item">
<view class="label">收款单号</view>
<view class="desc">103481365813181</view>
</view>
</view>
</view>
<view class="main">
<view class="title">退款</view>
<view class="price">64.1</view>
<view class="desc">确认退款后款项将自动原路返回消费者</view>
<view class="remark">退款备注</view>
<input type="text" :value="desc"placeholder="请输入备注内容" @input="headerInputClick" />
</view>
<view class="btn" @click="headerSubmitClick">确定</view>
<u-popup :show="show" mode="center" customStyle="width: 550rpx; heigt: 456rpx" :round="20" @close="close">
<view class="popup_container">
<image
class="popup_pic"
src="http://192.168.0.152:5500/assets/orderDetail_Group_1600.png"
mode="scaleToFill"
/>
<view class="title">提交成功</view>
<view class="btn" @click="close">确定</view>
</view>
</u-popup>
</view>
</template>
<script>
import {
request,
picUrl,
menuButtonInfo,
} from '../../../utils';
import { apiArr } from '../../../api/v2Community';
export default {
data() {
return {
top: '',
moeny: '0.00',
desc: '',
show: false,
}
},
onLoad(options) {
const meun = menuButtonInfo();
this.top = meun.height + meun.top;
},
methods: {
headerSubmitClick() {
this.show = true;
},
headerInputClick(e) {
this.desc = e.detail.value;
},
close() {
this.show = false;
},
},
}
</script>
<style lang="scss">
@import './index.scss';
</style>

View File

@ -313,6 +313,13 @@
} }
} }
}, },
{
"path": "orderDetail/index",
"style": {
"navigationBarTitleText": "退款操作",
"navigationBarBackgroundColor": "#F9F9F9"
}
},
{ {
"path": "resetPwd/index", "path": "resetPwd/index",
"style": { "style": {

View File

@ -2,9 +2,12 @@ page {
height: 100vh; height: 100vh;
overflow: hidden; overflow: hidden;
} }
.search_popup {
max-height: 1000rpx;
overflow: auto;
}
.city-select-page { .city-select-page {
background-color: #f9f9f9; background-color: #f9f9f9;
/* background-color: red; */
} }
.white_container { .white_container {
background: #FFFFFF; background: #FFFFFF;
@ -24,6 +27,7 @@ page {
} }
.hot-cities { .hot-cities {
padding-right: 36rpx;
margin-top: 40rpx; margin-top: 40rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
@ -37,10 +41,11 @@ page {
.city-list { .city-list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
padding-left: 4rpx;
} }
.city_name { .city_name {
display: inline-block; display: inline-block;
padding: 13rpx 52rpx 18rpx; padding: 13rpx 38rpx 18rpx;
border-radius: 8rpx 8rpx 8rpx 8rpx; border-radius: 8rpx 8rpx 8rpx 8rpx;
border: 1rpx solid #EBEBEB; border: 1rpx solid #EBEBEB;
font-size: 28rpx; font-size: 28rpx;

View File

@ -1,5 +1,5 @@
<template> <template>
<view class="city-select-page"> <view class="city-select-page" v-if="loading">
<view class="white_container padding_bottom40"> <view class="white_container padding_bottom40">
<!-- 搜索框 --> <!-- 搜索框 -->
<u-search <u-search
@ -13,7 +13,9 @@
shape="round" shape="round"
></u-search> ></u-search>
<view v-if="searchValue" class="search_popup"> <view v-if="searchValue" class="search_popup">
<view v-if="searchRes.length === 0" class="list-item">暂无搜索结果</view>
<view <view
v-else
v-for="(item, index) in searchRes" v-for="(item, index) in searchRes"
:key="index" :key="index"
:class="['list-item', index === searchRes.length - 1 && 'no_border']" :class="['list-item', index === searchRes.length - 1 && 'no_border']"
@ -37,11 +39,11 @@
<text class="title">国内热门城市</text> <text class="title">国内热门城市</text>
<view class="city-list"> <view class="city-list">
<view <view
v-for="(item, index) in hotCities" v-for="(item, index) in hotCityList"
class="city_name" class="city_name"
:key="index" :key="index"
@click="headerSelectMapClick(item)" @click="headerSelectMapClick(item)"
>{{ item }}</view >{{ item.name }}</view
> >
</view> </view>
</view> </view>
@ -93,7 +95,7 @@
<script> <script>
import { apiArr } from "../../api/area.js"; import { apiArr } from "../../api/area.js";
import { request } from "../../utils/index.js"; import { request, debounce } from "../../utils/index.js";
export default { export default {
data() { data() {
@ -149,29 +151,10 @@ export default {
], ],
activeId: "", // ID activeId: "", // ID
activeLetter: "", // activeLetter: "", //
searchRes: [ searchRes: [],
{ loading: false,
name: "河北,石家庄", hotCityList: [], //
}, groupedData: [], //
{
name: "河北,廊坊",
},
{
name: "河北,保定",
},
{
name: "河北,衡水",
},
{
name: "河北,沧州",
},
{
name: "河北,唐山",
},
],
cityList: [], //
groupedData: [], //
}; };
}, },
@ -217,13 +200,28 @@ export default {
}, },
}); });
}, },
handleSearch(e) { handleSearch: debounce(function(keyword) {
// searchValue if(keyword === '') {
this.searchValue = e; this.searchValue = '';
console.log("搜ee索:", e); this.searchRes = [];
}, return;
}
groupData() { uni.showLoading({
title: '加载中',
mask: true
})
request(apiArr.getRegionList, 'POST', {
short_name: keyword
}, { silent: false }).then((res) => {
console.log('搜索结果', res);
this.searchValue = keyword;
this.searchRes = res.rows || [];
uni.hideLoading();
})
}, 500),
groupData(item) {
const map = {}; const map = {};
this.letters.forEach((letter) => { this.letters.forEach((letter) => {
map[letter] = { map[letter] = {
@ -232,9 +230,9 @@ export default {
}; };
}); });
this.cityList.forEach((item) => { item.forEach((items) => {
if (map[item.letters]) { if (map[items.letters]) {
map[item.letters].list.push(item); map[items.letters].list.push(items);
} }
}); });
@ -242,6 +240,8 @@ export default {
this.groupedData = Object.values(map).filter( this.groupedData = Object.values(map).filter(
(group) => group.list.length > 0 (group) => group.list.length > 0
); );
uni.hideLoading();
this.loading = true;
}, },
// //
@ -254,16 +254,32 @@ export default {
async init() { async init() {
const res = await request(apiArr.getRegionList, 'POST', { uni.showLoading({
page_num: 1, title: '加载中',
page_size: 100, mask: true
})
const res = await request(apiArr.getRegionList, 'POST', {}, { silent: false });
// TODO:
const newRes = res.rows.map((item) => {
return {
lat: item.lat,
letters: item.letters,
long: item.long,
name: item.name,
}
})
console.log('111', newRes)
// this.cityList = newRes;
const hotsList = res.rows.filter((item) => item.hot === 2).map((item) => {
return {
lat: item.lat,
long: item.long,
name: item.name,
};
}); });
console.log('111111', res);
this.cityList = res.rows;
const hotsList = res.rows.filter((item) => item.hot === 2);
console.log('热门城市信息', hotsList); console.log('热门城市信息', hotsList);
this.hotCityList = hotsList;
await this.groupData(); await this.groupData(newRes);
}, },
// //

View File

@ -6,7 +6,7 @@ page {
/* height: 578rpx; */ /* height: 578rpx; */
/* background: linear-gradient(to bottom, #FFE7E1, #FFFFFF); */ /* background: linear-gradient(to bottom, #FFE7E1, #FFFFFF); */
/* background: linear-gradient( 359deg, rgba(255,255,255,0) 0%, #FDD9CA 100%); */ /* background: linear-gradient( 359deg, rgba(255,255,255,0) 0%, #FDD9CA 100%); */
background: url('http://127.0.0.1:5500/assets/page_user_Group_1584.png'); background: url('http://192.168.0.152:5500/assets/page_user_Group_1584.png');
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-attachment: fixed; background-attachment: fixed;

View File

@ -10,7 +10,7 @@
<view class="avatar_title"> <view class="avatar_title">
<view class="login-btn">{{userInfo.nick_name ? userInfo.nick_name : '登录/注册'}}</view> <view class="login-btn">{{userInfo.nick_name ? userInfo.nick_name : '登录/注册'}}</view>
<view class="avatar_setting"> <view class="avatar_setting">
<image src="http://127.0.0.1:5500/assets/page_user_Vector13.png" mode="" @click.stop="headerRefreshClick"/> <image src="http://192.168.0.152:5500/assets/page_user_Vector13.png" mode="" @click.stop="headerRefreshClick"/>
<button <button
class="login-btn" class="login-btn"
open-type="getPhoneNumber" open-type="getPhoneNumber"
@ -19,7 +19,7 @@
@getphonenumber="getPhoneNumber" @getphonenumber="getPhoneNumber"
id="hiddenLoginBtn" id="hiddenLoginBtn"
></button> ></button>
<image src="http://127.0.0.1:5500/assets/page_user_Vector14.png" mode="" @click.stop="headerSettingsClick"/> <image src="http://192.168.0.152:5500/assets/page_user_Vector14.png" mode="" @click.stop="headerSettingsClick"/>
</view> </view>
</view> </view>
<view class="avater_mobile">{{ userInfo.mobile }}</view> <view class="avater_mobile">{{ userInfo.mobile }}</view>
@ -49,26 +49,26 @@
<view class="gold_title"> <view class="gold_title">
<span class="gold">金币</span> <span class="monenyt">0</span> | <span class="price">价值0.00</span> <u-icon size="30" name="arrow-right" /> <span class="gold">金币</span> <span class="monenyt">0</span> | <span class="price">价值0.00</span> <u-icon size="30" name="arrow-right" />
</view> </view>
<image class="gold_pic" src="http://127.0.0.1:5500/assets/page_user_Group_1556.png" /> <image class="gold_pic" src="http://192.168.0.152:5500/assets/page_user_Group_1556.png" />
</view> </view>
<view class="main main1"> <view class="main main1">
<view class="main_title">物业服务</view> <view class="main_title">物业服务</view>
<view class="item1"> <view class="item1">
<view class="item_device" @click="handleCommunityClick"> <view class="item_device" @click="handleCommunityClick">
<image class="icon-community icon-img" <image class="icon-community icon-img"
src="http://127.0.0.1:5500/assets/page_user_Group_1382.png"></image> src="http://192.168.0.152:5500/assets/page_user_Group_1382.png"></image>
<text class="community-title title-item">我的房产</text> <text class="community-title title-item">我的房产</text>
</view> </view>
<view class="item_device" @click="handleApplyOwnerClick"> <view class="item_device" @click="handleApplyOwnerClick">
<image class="icon-img" src="http://127.0.0.1:5500/assets/page_user_Group_1559.png" /> <image class="icon-img" src="http://192.168.0.152:5500/assets/page_user_Group_1559.png" />
<text class="owner-title title-item">物业账单</text> <text class="owner-title title-item">物业账单</text>
</view> </view>
<view class="item_device" @click="handleFacilityClick"> <view class="item_device" @click="handleFacilityClick">
<image class="icon-img" src="http://127.0.0.1:5500/assets/page_user_Group_1557.png"/> <image class="icon-img" src="http://192.168.0.152:5500/assets/page_user_Group_1557.png"/>
<text class="device-title title-item">我的工单</text> <text class="device-title title-item">我的工单</text>
</view> </view>
<view class="item_device" @click="handleMeApplyClick"> <view class="item_device" @click="handleMeApplyClick">
<image class="icon-img" src="http://127.0.0.1:5500/assets/page_user_Group_1558.png"/> <image class="icon-img" src="http://192.168.0.152:5500/assets/page_user_Group_1558.png"/>
<text class="device-title title-item">我的管家</text> <text class="device-title title-item">我的管家</text>
</view> </view>
</view> </view>
@ -109,8 +109,19 @@
</u-grid> </u-grid>
</view> </view>
</view> </view>
<view class="main margin20" v-if="isShop">
<view class="main_title">商家端</view>
<view class="item1 padding_bottom0">
<u-grid col="4" :border="false" >
<u-grid-item @click="headerOrderClick(item)" v-for="(item, index) in shopManagementList" :key="index">
<image class="nav_icon" :src="item.image" mode=""></image>
<text class="grid-text">{{item.name}}</text>
</u-grid-item>
</u-grid>
</view>
</view>
<view class="customer" @click="headerCustomerClick"> <view class="customer" @click="headerCustomerClick">
<image src="http://127.0.0.1:5500/assets/page_user_Vector16.png" mode=""/> <image src="http://192.168.0.152:5500/assets/page_user_Vector16.png" mode=""/>
<view>客服</view> <view>客服</view>
</view> </view>
<view style="padding-top: 174rpx;"></view> <view style="padding-top: 174rpx;"></view>
@ -127,70 +138,75 @@
return { return {
top: 0, top: 0,
networkList: [{ networkList: [{
image: "http://127.0.0.1:5500/assets/page_user_Group_1568.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1568.png",
name: "我的订单", name: "我的订单",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1567.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1567.png",
name: "我的拼团", name: "我的拼团",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1565.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1565.png",
name: "我的收藏", name: "我的收藏",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1566.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1566.png",
name: "售后服务", name: "售后服务",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1563.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1563.png",
name: "收货地址", name: "收货地址",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1564.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1564.png",
name: "购物车", name: "购物车",
url: "", url: "",
}, },
], ],
visitList: [{ visitList: [{
image: "http://127.0.0.1:5500/assets/page_user_Group_1572.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1572.png",
name: "服务工单", name: "服务工单",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1573.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1573.png",
name: "服务地址", name: "服务地址",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1574.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1574.png",
name: "服务卡", name: "服务卡",
url: "", url: "",
} }
], ],
shopList: [{ shopList: [{
image: "http://127.0.0.1:5500/assets/page_user_Group_1580.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1580.png",
name: "附近门店", name: "附近门店",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1581.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1581.png",
name: "服务券", name: "服务券",
url: "", url: "",
}, },
{ {
image: "http://127.0.0.1:5500/assets/page_user_Group_1582.png", image: "http://192.168.0.152:5500/assets/page_user_Group_1582.png",
name: "支付记录", name: "支付记录",
url: "", url: "",
} }
], ],
shopManagementList:[{
image: "http://192.168.0.152:5500/assets/user_page_Group_1782.png",
name: "店铺管理",
url: "",
}],
userInfo: {}, userInfo: {},
isShop: false, isShop: uni.getStorageSync('is_shop'),
} }
}, },

File diff suppressed because one or more lines are too long

View File

@ -73,6 +73,7 @@
"index/index", "index/index",
"replenishInfo/index", "replenishInfo/index",
"uploadAvatar/index", "uploadAvatar/index",
"orderDetail/index",
"resetPwd/index", "resetPwd/index",
"points/index", "points/index",
"pointsSign/index", "pointsSign/index",

View File

@ -2841,7 +2841,7 @@ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/inte
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "__esModule", {
value: true value: true
}); });
exports.validateEmail = exports.uploadVideo = exports.upload = exports.uniqueByField = exports.request = exports.picUrl = exports.menuButtonInfo = exports.isPhone = exports.getProviderPromise = exports.floatCalculate = exports.calculateDistance = exports.NavgateTo = void 0; exports.validateEmail = exports.uploadVideo = exports.upload = exports.uniqueByField = exports.request = exports.picUrl = exports.menuButtonInfo = exports.isPhone = exports.getProviderPromise = exports.floatCalculate = exports.debounce = exports.calculateDistance = exports.NavgateTo = void 0;
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@ -3223,7 +3223,37 @@ var validateEmail = function validateEmail(email) {
} }
return true; return true;
}; };
/**
* 防抖函数
* @param {Function} fn 需要防抖的函数
* @param {number} delay 延迟时间(毫秒)
* @param {boolean} immediate 是否立即执行
* @return {Function} 返回防抖处理后的函数
*/
exports.validateEmail = validateEmail; exports.validateEmail = validateEmail;
var debounce = function debounce(fn) {
var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var timer = null;
return function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var context = this;
if (timer) clearTimeout(timer);
if (immediate && !timer) {
fn.apply(context, args);
}
timer = setTimeout(function () {
if (!immediate) {
fn.apply(context, args);
}
timer = null;
}, delay);
};
};
exports.debounce = debounce;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"])) /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))
/***/ }), /***/ }),

View File

@ -3,5 +3,46 @@
"projectname": "uniapp-ZHSQ", "projectname": "uniapp-ZHSQ",
"setting": { "setting": {
"compileHotReLoad": true "compileHotReLoad": true
},
"condition": {
"miniprogram": {
"list": [
{
"name": "packages/user/orderDetail/index",
"pathName": "packages/user/orderDetail/index",
"query": "",
"scene": null,
"launchMode": "default"
},
{
"name": "pages/user/index",
"pathName": "pages/user/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "packages/community/index/index",
"pathName": "packages/community/index/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "pages/shopcity/shopcity",
"pathName": "pages/shopcity/shopcity",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "packages/community/providentFund/index",
"pathName": "packages/community/providentFund/index",
"query": "",
"launchMode": "default",
"scene": null
}
]
}
} }
} }

View File

@ -369,4 +369,32 @@ export const validateEmail = (email) => {
return true return true
} }
/**
* 防抖函数
* @param {Function} fn 需要防抖的函数
* @param {number} delay 延迟时间(毫秒)
* @param {boolean} immediate 是否立即执行
* @return {Function} 返回防抖处理后的函数
*/
export const debounce = (fn, delay = 300, immediate = false) => {
let timer = null;
return function(...args) {
const context = this;
if (timer) clearTimeout(timer);
if (immediate && !timer) {
fn.apply(context, args);
}
timer = setTimeout(() => {
if (!immediate) {
fn.apply(context, args);
}
timer = null;
}, delay);
};
}