Commit 3e80e835 authored by 肖健's avatar 肖健

Merge remote-tracking branch 'origin/master' into dev_cd

# Conflicts:
#	main.js
#	pages/binding/binding.vue
#	pages/binding/index.vue
#	pagesB/pages/move-car/addCar.vue
#	pagesB/pages/move-car/loveCar.vue
#	pagesB/pages/move-car/myCall.vue
#	pagesB/pages/move-car/myMoveCar.vue
#	pagesB/pages/move-car/myRecord.vue
#	pagesC/pages/shop/index.vue
#	pagesC/pages/shop/pay.vue
#	pagesD/pages/personal/carTime.vue
#	pagesD/pages/personal/editAddress.vue
#	pagesD/pages/personal/myOrder.vue
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/active-form/active-form.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/active-form/components/checkbox-group.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/active-form/components/checkbox.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/active-form/components/popup.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/active-form/components/radio-group.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/active-form/components/radio.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/active-form/components/select.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/codecook-carnumber/codecook-carnumber.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/codecook-keyboard/codecook-keyboard.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-action-sheet/u-action-sheet.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-badge/u-badge.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-checkbox-group/u-checkbox-group.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-checkbox/u-checkbox.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-datetime-picker/u-datetime-picker.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-form-item/u-form-item.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-gap/u-gap.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-icon/u-icon.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-input/u-input.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-line/u-line.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-loading-icon/u-loading-icon.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-modal/u-modal.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-overlay/u-overlay.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-picker/u-picker.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-popup/u-popup.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-safe-bottom/u-safe-bottom.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-search/u-search.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-status-bar/u-status-bar.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-swiper-indicator/u-swiper-indicator.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-swiper/u-swiper.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-switch/u-switch.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-tabs/u-tabs.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-textarea/u-textarea.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-toolbar/u-toolbar.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/uview-ui/components/u-transition/u-transition.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/common/wxcomponents/custom-tarbar/custom-tarbar.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pages/binding/binding.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pages/binding/index.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesA/pages/index/getCarCode.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesA/pages/index/getPrice.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesA/pages/index/index.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/addCar.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/callDetail.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/editCar.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/index.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/loveCar.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/moveCarDetail.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/myCall.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/myMoveCar.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/myRecord.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/oneMoveCar.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/recordDetail.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesB/pages/move-car/scan.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesC/pages/shop/detail.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesC/pages/shop/index.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesC/pages/shop/pay.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesC/pages/shop/payOk.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesC/pages/shop/search.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/addAddress.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/ask.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/asking.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/carTime.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/editAddress.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/help.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/index.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/myAddress.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/myOrder.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/orderDetail.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/pull.js.map
#	unpackage/dist/dev/.sourcemap/mp-weixin/pagesD/pages/personal/userInfo.js.map
#	unpackage/dist/dev/mp-weixin/app.json
#	unpackage/dist/dev/mp-weixin/common/active-form/active-form.js
#	unpackage/dist/dev/mp-weixin/common/active-form/components/checkbox-group.js
#	unpackage/dist/dev/mp-weixin/common/active-form/components/checkbox.js
#	unpackage/dist/dev/mp-weixin/common/active-form/components/popup.js
#	unpackage/dist/dev/mp-weixin/common/active-form/components/radio-group.js
#	unpackage/dist/dev/mp-weixin/common/active-form/components/radio.js
#	unpackage/dist/dev/mp-weixin/common/active-form/components/select.js
#	unpackage/dist/dev/mp-weixin/common/codecook-carnumber/codecook-carnumber.js
#	unpackage/dist/dev/mp-weixin/common/codecook-keyboard/codecook-keyboard.js
#	unpackage/dist/dev/mp-weixin/common/codecook-keyboard/codecook-keyboard.wxss
#	unpackage/dist/dev/mp-weixin/common/main.js
#	unpackage/dist/dev/mp-weixin/common/runtime.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u--form/u--form.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u--input/u--input.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u--textarea/u--textarea.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-action-sheet/u-action-sheet.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-badge/u-badge.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-checkbox/u-checkbox.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-datetime-picker/u-datetime-picker.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-datetime-picker/u-datetime-picker.json
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-form-item/u-form-item.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-form/u-form.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-icon/u-icon.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-input/u-input.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-line/u-line.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-loading-icon/u-loading-icon.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-modal/u-modal.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-overlay/u-overlay.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-picker/u-picker.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-picker/u-picker.json
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-popup/u-popup.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-popup/u-popup.json
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-safe-bottom/u-safe-bottom.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-safe-bottom/u-safe-bottom.json
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-search/u-search.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-status-bar/u-status-bar.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-swiper-indicator/u-swiper-indicator.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-swiper/u-swiper.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-switch/u-switch.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-switch/u-switch.json
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-tabs/u-tabs.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-tabs/u-tabs.json
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-textarea/u-textarea.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-toolbar/u-toolbar.js
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-toolbar/u-toolbar.json
#	unpackage/dist/dev/mp-weixin/common/uview-ui/components/u-transition/u-transition.js
#	unpackage/dist/dev/mp-weixin/common/vendor.js
#	unpackage/dist/dev/mp-weixin/pages/binding/binding.js
#	unpackage/dist/dev/mp-weixin/pages/binding/binding.wxml
#	unpackage/dist/dev/mp-weixin/pages/binding/index.js
#	unpackage/dist/dev/mp-weixin/pages/binding/index.wxml
#	unpackage/dist/dev/mp-weixin/pagesA/pages/index/getPrice.wxss
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/addCar.js
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/addCar.wxml
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/loveCar.js
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/loveCar.wxml
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/myCall.js
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/myCall.wxml
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/myMoveCar.js
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/myMoveCar.wxml
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/myRecord.js
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/myRecord.wxml
#	unpackage/dist/dev/mp-weixin/pagesB/pages/move-car/scan.js
#	unpackage/dist/dev/mp-weixin/pagesC/pages/shop/index.js
#	unpackage/dist/dev/mp-weixin/pagesC/pages/shop/index.wxml
#	unpackage/dist/dev/mp-weixin/pagesC/pages/shop/pay.js
#	unpackage/dist/dev/mp-weixin/pagesC/pages/shop/pay.wxml
#	unpackage/dist/dev/mp-weixin/pagesC/pages/shop/pay.wxss
#	unpackage/dist/dev/mp-weixin/pagesD/pages/personal/addAddress.wxss
#	unpackage/dist/dev/mp-weixin/pagesD/pages/personal/carTime.js
#	unpackage/dist/dev/mp-weixin/pagesD/pages/personal/carTime.wxml
#	unpackage/dist/dev/mp-weixin/pagesD/pages/personal/editAddress.wxml
#	unpackage/dist/dev/mp-weixin/pagesD/pages/personal/editAddress.wxss
#	unpackage/dist/dev/mp-weixin/pagesD/pages/personal/myOrder.js
#	unpackage/dist/dev/mp-weixin/pagesD/pages/personal/myOrder.wxml
#	unpackage/dist/dev/mp-weixin/pagesD/pages/personal/userInfo.js
parents 7d20cf58 d8023677
No preview for this file type
No preview for this file type
......@@ -98,6 +98,7 @@
left: 0;
width: 100%;
background-color: #F5F5F5;
z-index: 9999;
}
.status-bar {
......
<!--
* @Author: euzhi
* @Description: 描述
-->
<!--
defaultOption: {
page: 1, // 分页
size: 15, // 分页大小
auto: true, // 自动加载
height: null, // 组件高度
disabled: false, // 禁用
background: '', // 背景颜色属性
emptyImage: '', // 空数据提示图片
offsetBottom: 0, // 底部高度补偿
pullDownSpeed: 0.5, // 下拉速率
lowerThreshold: 40, // 距离底部上拉加载距离
refresherThreshold: 80, // 距离顶部下拉刷新距离
refreshDelayed: 800, // 刷新延迟
refreshFinishDelayed: 800, // 刷新完成后的延迟
safeArea: false, // 是否开启安全区域适配
emptyTextColor: '#82848a', // 空提示文字颜色
loadTextColor: '#82848a', // 上拉加载文字颜色
loadIconColor: '#82848a', // 上拉加载图标颜色
refresherTextColor: '#82848a', // 下拉刷新文字颜色
refresherIconColor: '#82848a', // 下拉刷新图标颜色
emptyText: '暂无列表~', // 空数据提示文字
loadingText: '正在加载中~', // 加载中文字
loadFailText: '加载失败啦~', // 加载失败文字
noMoreText: '没有更多啦~', // 没有更多文字
refreshingText: '正在刷新~', // 正在刷新文字
refreshFailText: '刷新失败~', // 刷新失败文字
refreshSuccessText: '刷新成功~', // 刷新成功文字
pulldownText: '下拉刷新~', // 下拉中的文字
pulldownFinishText: '松开刷新~' // 下拉完成的文字
}
<template>
<view class="page-wrap">
<scroll-list ref="list" :option="option" @load="load" @refresh="refresh">
<view class="list-item" v-for="(item, index) in list" :key="index" @click="handleTest">
<view class="avatar">{{ index + 1 }}</view>
<view class="info">
<view class="info-item"></view>
<view class="info-item"></view>
</view>
</view>
</scroll-list>
</view>
</template>
<script>
export default {
data() {
return {
option: {
size: 5,
auto: true
},
};
},
onLoad() {
},
() {},
onHide() {},
methods: {
// 加载数据
load(paging) {
setTimeout(() => {
let list = [];
for (var i = 0; i < paging.size; i++) {
list.push(i);
}
this.list = [...this.list, ...list];
// 加载成功 参数对象{list: 当前列表,total: 数据总长度(后端查询的total)}
this.$refs.list.loadSuccess({ list: this.list, total: 50 });
// 加载失败
// this.$refs.list.loadFail()
}, this.$u.random(100, 1000));
},
// 刷新刷剧
refresh(paging) {
setTimeout(() => {
let list = [];
for (var i = 0; i < paging.size; i++) {
list.push(i);
}
this.list = list;
// 刷新成功 参数对象{list: 当前列表,total: 数据总长度(后端查询的total)}
this.$refs.list.refreshSuccess({ list: this.list, total: 50 });
// 刷新失败
// this.$refs.list.refreshFail()
}, this.$u.random(100, 1000));
}
}
};
</script>
-->
\ No newline at end of file
export default {
empty: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHoAAABoCAYAAAA+R+R0AAAG50lEQVR4Xu2df1PURhjHn71fOQ8ZsKIoWioWsHcOLU49O53OqbwDfQm+AugraN+B+grad1D7CkDPzrSeHbAM54+2YLHiyGAL43DclSTb2UgwQC7Zu01ySfbJPzdym2ef5/vJdzeX7KwE8JBCASJFlVgkIGhJLgIEjaAlUUCSMtHRCFoSBSQpEx2NoCVRQJIy0dEBgi5XqtOlYmEiwC53u0LQAalersxfBUhOA2gTpeLYTEDdIuighUbQQSsecH/vAJvHO0eb/wrS2Th0+wiezckAYAF9oLOZoOZsBO0jaBYaHe2zwGELj3N02Ij4lA+Ctgg7PTvbO3Hhwrr56ZPmHQuLv6MBgMFNqcocAPkOgN4oFQtnOkYkhh2H6masXFn4FoB8Qym5cflS/vsY6t2xkkIDmjk6qSrPgZIpAvpU6dL58Y6pEsOOQwM6htqGqiQEHSoc/iWDoP3TNlSREXSocPiXDIL2T9tQRUbQocLhXzII2j9tQxUZQYcKh3/JIGj/tA1VZGlAsydvaS1zk1JiPEMnhD7fTv73NXuJEioiPiUjBeifHiyM64TMJBKkK3com2Ja1rbqqq7TzQSlV7+6dH7OJ31DEzZ2oO89rF4jFCatChOAz0kikTt3diB5KKsYX23VG/B0cUWjul6jAL9a21MCty9fLNwJDSUPEokV6B3IP6TTSVXJZAznskNJp+B4Xw+YkM2/M9iraxvQ2FZ3pdyqN3RN0xOUwPU4wY4U6PKD6iQQuOZwgY9n0qme/PCHJJlMtO2Dueoi6Dplc3fTIZ0CzGkquT3xZf552x0FeGJkQN9/+Pg3SulYJp1SD2Xfu9Wq1WatDtmsAqNDA0ISPltagXq9AV25rG2czVpDVzUtAUDXVTVxIQqwIwH6fqU6RQFuDg70weDAsaYQ55/+BVuNbch/fBpEHP3o8RL0dndBfvh0075WXv8Diy9eAxC4XbpYmBK6sgI42TPQd39hq0MArnxx3vj08ihXqjNKJl0qfjrsOB6/WX8Lj//4GzKZtDEvt3PU6g3QNN2AfLS32zHEz7PPmLPLpWLBae12O2l4fo5noHcWq4MfC9IZ6J7u3JWxcx+5CsBgM7eJHAP9H7hCZvHZCLLxtnYXQYuobTm3FdAedckVRhrQbLhOJMgVO1V0nd71ahhH0FzXnWMjoaEbQePQLX4J4tDtqYZCjrZmEpabMU/VcQkmzRxt1cHvn1e8d90I2l4Bzxztp8B4MyauLoIW0FDKoVtAL9dTvXJ0vbENvy+9goH+I3D0iPNTL9ekZH1gwiNMu228Ar38cg2WV9bAeGZ+qq/ddHbPQ0cLS7g3AIIWF1SqOboVR2+8rUFPd85RYXS0+AW4JwKPo2cXluBwLgtDg8chlUzaZsADWtU0mH/yAti77fzwKce5HEEHDJrBqTz603i9yBYLjA6dsF008OZf9hrzJRztPQz5kYPvmhlcBpnFUzJpGPtkELJKumk1CDpg0Kw7BunZ0ivYrDUMR48MnTjgRjYczz9ZNu66zw7278ny9doGLC2vGpC7cooBudnIYJ6IoDsAmnXJIC0urxoL/tgxMnQS+vt69mTD2uwHaDqdNWSLCEeHTnJVgKC5ZOJvxDNHW6MZy3yWV22da9er6XS7C8MpSwTNz5CrZaugWVD2cMRpfuXq2KURgvZCRUuMdkB7nIJtOATtscoIWlxQqR6YiMu1NwI62mNF0dHigqKjBTQUcbSfCzXsSkLQHQLt59IrBC0A1e5UEUcjaBtF4zJHB7U8Gh3dYUcjaBcAcXG0tUwcumM8dCNoCR2NP68kcbTHtwuu4QL7HX2vUr1DgNwCoJOlYuG6a2b4UqMViVzbBgba3J6CAvx4uVhw2nDmQNLsZiyrpEsXx5x3PHCt1uMGUu544KZh+cHCHBCyTgHGtVTjTCs79r3fw+SYsSY7DIe0e5i4ic9272M79Jmfbu33f79zoXymZFJqVrHflajVmO22N3clogAbmkrGcVeidpVsct6Os1sa9j1O4X04AnPqNrkVBcgs6cDmaN8Ex8BcCiBoLpmi3whBR58hVwUImkum6DdC0NFnyFWBEOi9/9s5V39SNCoVx2ashVp12v+d2Y5Hy2bn8ojaNuid12yh3wOTRwQf2syYW2Ue1EmbOHghVKcBgEfL3bit5tw2aNYRz1XYakJxaB8rR8cBiEw1CDlaJqGiXiuCjjpBzvwRNKdQUW+GoKNOkDP/UIJ2WhbL6tq/F7i5opKzZk+bebkvuaeJ7QuGoAXVRdCCAuLp3ioQSkd7WyJGYwogaEmuAwSNoCVRQJIy0dEIWhIFJCkTHY2gJVFAkjLR0QhaEgUkKRMdjaAlUUCSMtHRkoD+H39JyZZ6zcs+AAAAAElFTkSuQmCC',
success: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4wMSIvPjxwYXRoIGQ9Ik0xMCAyNEwyMCAzNEw0MCAxNCIgc3Ryb2tlPSIjMzAzMTMzIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==',
error: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4wMSIvPjxwYXRoIGQ9Ik0xNCAxNEwzNCAzNCIgc3Ryb2tlPSIjMzAzMTMzIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0xNCAzNEwzNCAxNCIgc3Ryb2tlPSIjMzAzMTMzIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg=='
}
<template>
<view class="scroll-list-wrap" :style="[scrollListWrapStyle]">
<scroll-view
class="scroll-view"
:class="[elClass]"
:style="[listWrapStyle]"
scroll-y
scroll-anchoring
enable-back-to-top
:scroll-top="scrollTop"
:lower-threshold="defaultOption.lowerThreshold"
@scroll="handleScroll"
@touchend="handleTouchEnd"
@touchmove.prevent.stop="handleTouchMove"
@touchstart="handleTouchStart"
@scrolltolower="handleScrolltolower"
>
<view class="scroll-content" :style="[scrollContentStyle]">
<view class="pull-down-wrap">
<slot name="pulldown" v-if="$slots.pulldown"></slot>
<view class="refresh-view" :style="[refreshViewStyle]" v-else>
<view class="pull-down-animation" :class="{ refreshing: refreshing }" :style="[pullDownAnimationStyle]"></view>
<text class="pull-down-text" :style="[pullDownTextStyle]">{{ refreshStateText }}</text>
</view>
</view>
<view class="empty-wrap" v-if="showEmpty">
<slot name="empty" v-if="$slots.empty"></slot>
<view class="empty-view" v-else>
<image class="empty-image" :src="defaultOption.emptyImage || images.empty" mode="aspectFit"></image>
<text class="empty-text" :style="[emptyTextStyle]">{{ emptyText }}</text>
</view>
</view>
<view class="list-content"><slot></slot></view>
<view class="pull-up-wrap" v-if="showPullUp">
<slot name="pullup" v-if="$slots.pullup"></slot>
<view class="load-view" v-else>
<view class="pull-up-animation" v-if="loading" :style="[pullUpAnimationStyle]"></view>
<text class="pull-up-text" :style="[pullUpTextStyle]">{{ loadStateText }}</text>
</view>
</view>
</view>
</scroll-view>
</view>
</template>
<script>
import images from './images.js';
export default {
name: 'scroll-list',
props: {
// 配置信息
option: {
type: Object,
default: () => ({})
}
},
data() {
return {
defaultOption: {
page: 1, // 分页
size: 15, // 分页大小
auto: true, // 自动加载
height: null, // 组件高度
disabled: false, // 禁用
background: '', // 背景颜色属性
emptyImage: '', // 空数据提示图片
offsetBottom: 0, // 底部高度补偿
pullDownSpeed: 0.5, // 下拉速率
lowerThreshold: 40, // 距离底部上拉加载距离
refresherThreshold: 80, // 距离顶部下拉刷新距离
refreshDelayed: 800, // 刷新延迟
refreshFinishDelayed: 800, // 刷新完成后的延迟
safeArea: false, // 是否开启安全区域适配
emptyTextColor: '#82848a', // 空提示文字颜色
loadTextColor: '#82848a', // 上拉加载文字颜色
loadIconColor: '#82848a', // 上拉加载图标颜色
refresherTextColor: '#82848a', // 下拉刷新文字颜色
refresherIconColor: '#82848a', // 下拉刷新图标颜色
emptyText: '暂无列表~', // 空数据提示文字
loadingText: '正在加载中~', // 加载中文字
loadFailText: '加载失败啦~', // 加载失败文字
noMoreText: '没有更多啦~', // 没有更多文字
refreshingText: '正在刷新~', // 正在刷新文字
refreshFailText: '刷新失败~', // 刷新失败文字
refreshSuccessText: '刷新成功~', // 刷新成功文字
pulldownText: '下拉刷新~', // 下拉中的文字
pulldownFinishText: '松开刷新~' // 下拉完成的文字
},
images, // 内置图片
elClass: '', // 组件动态class
windowInfo: {}, // 窗口信息
scrollTop: 0, // 距离顶部滚动高度
scrollViewTop: -1, // 滚动视图顶部位置
scrollViewHeight: 0, // 滚动视图高度
currentPage: 1, // 当前分页页码
currentSize: 15, // 当前分页大小
currentScrollTop: 0, // 当前滚动高度
emptyText: '暂无列表~',
loadStateText: '正在加载中~', // 加载状态文字
refreshStateText: '下拉刷新~', // 刷新状态文字
loadDisabled: false, // 是否禁用上拉加载
loading: false, // 是否加载中
refreshing: false, // 是否刷新中
refreshFinish: false, // 是否刷新完成
pulldowning: false, // 是否正在下拉
pullDownHeight: 0, // 下拉高度
showEmpty: false, // 是否显示空数据提示
showPullUp: false, // 是否显示上拉加载
showPullDown: false // 是否显示下拉刷新
};
},
methods: {
// 组件初始化
handleInit() {
// 合并配置
this.defaultOption = Object.assign(this.defaultOption, this.option);
this.showEmpty = !this.defaultOption.auto;
this.currentPage = this.defaultOption.page;
this.currentSize = this.defaultOption.size;
this.emptyText = this.defaultOption.emptyText;
this.loadStateText = this.defaultOption.loadingText;
this.refreshStateText = this.defaultOption.pulldownText;
// 计算高度
this.queryRect('.' + this.elClass).then(rect => {
// 设置组件顶部位置
this.scrollViewTop = rect.top;
// 判断是否自动加载
if (this.defaultOption.auto) this.load();
});
},
// 加载数据
load() {
if (this.defaultOption.disabled || this.loading || this.loadDisabled) return;
// 开启正在加载
this.loading = true;
// 设置正在加载状态文字
this.loadStateText = this.defaultOption.loadingText;
// 显示上拉加载
this.showPullUp = true;
// 分页参数
let paging = { page: this.currentPage, size: this.currentSize };
// 触发load事件
this.$emit('load', paging);
},
// 加载成功
loadSuccess(data = {}) {
// 解构数据
const { list, total } = data;
// 判断列表是否是数组
if (Array.isArray(list)) {
// 判断列表长度
if (list.length) {
// 判断列表长度和列表总数是否相同
if (list.length >= total) {
// 设置禁用上拉加载
this.loadDisabled = true;
// 加载状态文字
this.loadStateText = this.defaultOption.noMoreText;
} else {
// 关闭禁用上拉加载
this.loadDisabled = false;
// 设置分页参数
this.currentPage++;
// 加载状态为加载中
this.loadStateText = this.defaultOption.loadingText;
// 加载计算
this.loadCompute();
}
// 显示上拉加载
this.showPullUp = true;
// 隐藏空数据提示
this.showEmpty = false;
} else {
// 设置禁用上拉加载
this.loadDisabled = true;
// 隐藏上拉加载
this.showPullUp = false;
// 隐藏上拉加载
this.showPullUp = false;
// 显示空数据提示
this.showEmpty = true;
}
// 关闭正在加载
this.loading = false;
// 触发加载成功事件
this.$emit('loadSuccess', list);
} else {
// 不是数组类型当作加载失败处理
this.loadFail();
console.error('the list must be a array');
}
},
// 加载失败
loadFail() {
// 关闭正在加载
this.loading = false;
// 关闭空数据提示
this.showEmpty = false;
// 显示上拉加载
this.showPullUp = true;
// 加载状态为加载失败
this.loadStateText = this.defaultOption.loadFailText;
// 触发加载失败事件
this.$emit('loadFail');
},
// 刷新数据
refresh() {
// 如果是下拉刷新
if (this.pullDownHeight == this.defaultOption.refresherThreshold) {
// 关闭正在加载
this.loading = false;
// 隐藏上拉加载
this.showPullUp = false;
} else {
// 开启正在加载
this.loading = true;
// 隐藏空数据提示
this.showEmpty = false;
// 显示上拉加载
this.showPullUp = true;
// 设置正在刷新状态文字
this.loadStateText = this.defaultOption.refreshingText;
}
// 设置刷新未完成
this.refreshFinish = false;
// 开启正在刷新
this.refreshing = true;
// 设置正在刷新状态文字
this.refreshStateText = this.defaultOption.refreshingText;
// 设置分页参数
this.currentPage = 1;
this.currentSize = this.defaultOption.size;
let paging = { page: this.currentPage, size: this.currentSize };
// 触发refresh事件
setTimeout(() => {
this.$emit('refresh', paging);
}, this.defaultOption.refreshDelayed);
},
// 刷新成功
refreshSuccess(data) {
// 解构数据
const { list, total } = data;
// 判断列表是否是数组
if (Array.isArray(list)) {
// 判断列表长度
if (list.length) {
// 判断列表长度和列表总数是否相同
if (list.length >= total) {
// 设置禁用上拉加载
this.loadDisabled = true;
// 设置没有更多状态文字
this.loadStateText = this.defaultOption.noMoreText;
} else {
// 设置分页参数
this.currentPage++;
// 关闭禁用上拉加载
this.loadDisabled = false;
// 设置加载中状态文字
this.loadStateText = this.defaultOption.loadingText;
// 开启自动加载
this.defaultOption.auto = true;
// 加载计算
this.loadCompute();
}
// 关闭空数据提示
this.showEmpty = false;
// 显示上拉加载
this.showPullUp = true;
} else {
// 设置禁用上拉加载
this.loadDisabled = true;
// 隐藏上拉加载
this.showPullUp = false;
// 显示空数据提示
this.showEmpty = true;
// 设置没有更多状态文字
this.loadStateText = this.defaultOption.noMoreText;
}
// 关闭正在加载
this.loading = false;
// 设置刷新成功状态文字
this.refreshStateText = this.defaultOption.refreshSuccessText;
// 关闭正在刷新
this.refreshing = false;
// 关闭正在下拉
this.pulldowning = false;
// 触发刷新成功事件
this.$emit('refreshSuccess', list);
setTimeout(() => {
// 设置刷新完成
this.refreshFinish = true;
// 重置下拉高度
this.pullDownHeight = 0;
// 隐藏下拉刷新
this.showPullDown = false;
this.$emit('refreshSuccess');
}, this.defaultOption.refreshFinishDelayed);
} else {
// 不是数组类型当作刷新失败处理
this.refreshFail();
console.error('the list must be a array');
}
},
// 刷新失败
refreshFail() {
// 设置加载失败状态文字
this.loadStateText = this.defaultOption.refreshFailText;
// 设置刷新失败状态文字
this.refreshStateText = this.defaultOption.refreshFailText;
// 关闭正在加载
this.loading = false;
// 显示下拉加载
this.showPullUp = true;
// 关闭正在刷新
this.refreshing = false;
// 关闭正在下拉
this.pulldowning = false;
// 延迟执行刷新完成后状态
setTimeout(() => {
// 设置刷新完成
this.refreshFinish = true;
// 重置下拉高度
this.pullDownHeight = 0;
// 隐藏下拉刷新
this.showPullDown = false;
// 触发刷新失败事件
this.$emit('refreshError');
}, this.defaultOption.refreshFinishDelayed);
},
// 加载计算
loadCompute() {
// 判断是否自动加载
if (this.defaultOption.auto) {
// 延迟执行下否者可能会高度计算错误
setTimeout(() => {
this.$nextTick(() => {
this.queryRect('.list-content').then(rect => {
if (rect.height <= this.scrollViewHeight) {
this.load();
}
});
});
}, 100);
}
},
// 上拉触底事件
handleScrolltolower(e) {
if (this.loadDisabled) return;
this.$emit('scrolltolower', e);
this.load();
},
// 滚动事件
handleScroll(event) {
this.currentScrollTop = event.detail.scrollTop;
this.$emit('scroll', event.detail);
},
// 触摸按下处理
handleTouchStart(event) {
if (this.defaultOption.disabled) return;
this.currentTouchStartY = event.touches[0].clientY;
this.$emit('touchStart', event);
},
// 触摸按下滑动处理
handleTouchMove(event) {
if (this.defaultOption.disabled || this.currentScrollTop) return;
if (event.touches[0].clientY >= this.currentTouchStartY) {
this.pulldowning = true;
this.showPullDown = true;
let pullDownDistance = (event.touches[0].clientY - this.currentTouchStartY) * this.defaultOption.pullDownSpeed;
this.pullDownHeight = pullDownDistance > this.defaultOption.refresherThreshold ? this.defaultOption.refresherThreshold : pullDownDistance;
this.refreshStateText =
this.pullDownHeight >= this.defaultOption.refresherThreshold ? this.defaultOption.pulldownFinishText : this.defaultOption.pulldownText;
this.$emit('touchMove', event);
}
},
// 触摸松开处理
handleTouchEnd(event) {
if (this.defaultOption.disabled) return;
// 当下拉高度小于下拉阈值
if (this.pullDownHeight < this.defaultOption.refresherThreshold) {
// 关闭正在下拉
this.pulldowning = false;
// 重置下拉高度
this.pullDownHeight = 0;
// 隐藏下拉刷新
this.showPullDown = false;
// 触发下拉中断事件
this.$emit('refreshStop');
} else {
this.refresh();
}
// 触发下拉触摸松开事件
this.$emit('touchEnd', event);
},
// 更新组件
updateScrollView() {
if (this.defaultOption.height) {
this.scrollViewHeight = uni.upx2px(this.defaultOption.height);
} else {
this.scrollViewHeight = this.windowInfo.windowHeight - this.scrollViewTop;
}
this.scrollViewObserve();
},
// 监听列表高度变化
listContentObserve() {
this.disconnectObserve('_listContentObserve');
const listContentObserve = this.createIntersectionObserver({
thresholds: [0, 0.5, 1]
});
listContentObserve.relativeToViewport({
// #ifdef H5
top: -(this.windowInfo.windowTop + rect.top),
// #endif
// #ifndef H5
top: -rect.top
// #endif
});
},
// 监听组件位置变化
scrollViewObserve() {
this.disconnectObserve('_scrollViewObserve');
this.$nextTick(() => {
this.queryRect('.' + this.elClass).then(rect => {
const scrollViewObserve = this.createIntersectionObserver({
thresholds: [0, 0.5, 1]
});
scrollViewObserve.relativeToViewport({
// #ifdef H5
top: -(this.windowInfo.windowTop + rect.top),
// #endif
// #ifndef H5
top: -rect.top
// #endif
});
scrollViewObserve.observe('.' + this.elClass, position => {
// #ifdef H5
this.scrollViewTop = position.boundingClientRect.top - this.windowInfo.windowTop;
// #endif
// #ifndef H5
this.scrollViewTop = position.boundingClientRect.top;
// #endif
});
this._scrollViewObserve = scrollViewObserve;
});
});
},
// 断开监听组件
disconnectObserve(observerName) {
const observer = this[observerName];
observer && observer.disconnect();
},
// 查询dom节点信息
queryRect(selector, all) {
return new Promise(resolve => {
uni.createSelectorQuery()
.in(this)
[all ? 'selectAll' : 'select'](selector)
.boundingClientRect(rect => {
if (all && Array.isArray(rect) && rect.length) {
resolve(rect);
}
if (!all && rect) {
resolve(rect);
}
})
.exec();
});
},
// 16进制转RGB
hexToRgb(hex) {
const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, (m, r, g, b) => {
return r + r + g + g + b + b;
});
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result
? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
}
: null;
}
},
computed: {
scrollListWrapStyle(){
let style = {};
style.background = this.defaultOption.background;
return style;
},
// 组件容器样式
listWrapStyle() {
let style = {};
const { offsetBottom } = this.defaultOption;
style.height = this.scrollViewHeight - uni.upx2px(offsetBottom) + 'px';
if (this.defaultOption.safeArea) style.paddingBottom = 'env(safe-area-inset-bottom) !important';
return style;
},
// 滚动内容样式
scrollContentStyle() {
const style = {};
const { pullDownHeight, pulldowning, showPullDown } = this;
style.transform = showPullDown ? `translateY(${pullDownHeight}px)` : `translateY(0px)`;
style.transition = pulldowning ? `transform 100ms ease-out` : `transform 200ms cubic-bezier(0.19,1.64,0.42,0.72)`;
return style;
},
// 下拉刷新样式
refreshViewStyle() {
const style = {};
const { showPullDown } = this;
style.opacity = showPullDown ? 1 : 0;
return style;
},
// 下拉中动画样式
pullDownAnimationStyle() {
const style = {};
const { refresherIconColor, refresherThreshold } = this.defaultOption;
const { refreshing, pullDownHeight } = this;
const { r, g, b } = this.hexToRgb(refresherIconColor);
const rate = pullDownHeight / refresherThreshold;
style.borderColor = `rgba(${r},${g},${b},0.2)`;
style.borderTopColor = refresherIconColor;
if (!refreshing) {
style.transform = `rotate(${360 * rate}deg)`;
style.transition = 'transform 100ms linear';
}
return style;
},
pullDownTextStyle() {
const style = {};
const { refresherTextColor } = this.defaultOption;
style.color = refresherTextColor;
return style;
},
// 上拉中动画样式
pullUpAnimationStyle() {
const style = {};
const { loadIconColor } = this.defaultOption;
const { r, g, b } = this.hexToRgb(loadIconColor);
style.borderColor = `rgba(${r},${g},${b},0.2)`;
style.borderTopColor = loadIconColor;
return style;
},
// 上拉中文字样式
pullUpTextStyle() {
const style = {};
const { loadTextColor } = this.defaultOption;
style.color = loadTextColor;
return style;
},
// 空数据提示文字样式
emptyTextStyle() {
const style = {};
const { emptyTextColor } = this.defaultOption;
style.color = emptyTextColor;
return style;
}
},
watch: {
scrollViewTop(val) {
this.updateScrollView();
}
},
created() {
this.elClass = 'scroll-view-' + this._uid;
this.windowInfo = uni.getSystemInfoSync();
},
mounted() {
this.handleInit();
}
};
</script>
<style scoped lang="scss">
.scroll-list-wrap {
box-sizing: border-box;
.scroll-view {
position: relative;
.scroll-content {
height: 100%;
display: flex;
will-change: transform;
flex-direction: column;
.pull-down-wrap {
left: 0;
width: 100%;
display: flex;
padding: 30rpx 0;
position: absolute;
align-items: flex-end;
justify-content: center;
transform: translateY(-100%);
.refresh-view {
display: flex;
justify-content: center;
.pull-down-animation {
width: 32rpx;
height: 32rpx;
border-width: 4rpx;
border-style: solid;
border-radius: 50%;
&.refreshing {
animation: spin 0.5s linear infinite;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
}
.pull-down-text {
margin-left: 10rpx;
}
}
}
.empty-wrap {
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
position: absolute;
align-items: center;
flex-direction: column;
.empty-view {
margin: auto;
display: flex;
align-items: center;
flex-direction: column;
.empty-image {
width: 200rpx;
height: 200rpx;
}
.empty-text {
color: #606266;
margin-top: 20rpx;
}
}
}
.list-content {
}
.pull-up-wrap {
display: flex;
align-items: center;
justify-content: center;
.load-view {
padding: 20rpx 0;
display: flex;
align-items: center;
justify-content: center;
.pull-up-animation {
width: 32rpx;
height: 32rpx;
border-width: 4rpx;
border-style: solid;
border-radius: 50%;
animation: spin 0.5s linear infinite;
}
.pull-up-text {
margin-left: 10rpx;
}
}
}
}
}
}
</style>
import Vue from 'vue'
import App from './App'
import uView from '@/common/uview-ui/index';
import store from "./store";
Vue.prototype.$store = store;
import http from "./common/api/api.js"
Vue.config.productionTip = false
import ActiveForm from "@/common/active-form/active-form";
import scrollList from "@/common/scroll-list/scroll-list";
Vue.use(uView);
Vue.prototype.http = http
Vue.prototype.nc_templateid = '59-hfHg3CnDvgVEnjqxiHRFwpABehc5lZxHQeUctlrg'
App.mpType = 'app'
Vue.component('ActiveForm', ActiveForm)
Vue.component('scrollList', scrollList)
const app = new Vue({
...App
})
......
......@@ -4,7 +4,7 @@
-->
<template>
<view class="appCotent">
<div class="bindingLogin">
<div class="bindingLogin">
<div class="login__logo">
<image src="@/static/binding/logo.png">
</div>
......@@ -18,14 +18,14 @@
</div>
<div class="login__read">
<u-checkbox-group placement="row">
<u-checkbox v-model="checked" ></u-checkbox>
<u-checkbox :checked='checked' @change="changeBtn"></u-checkbox>
</u-checkbox-group>
已阅读并同意<span>京东挪车牌用户协议(含隐私政策)</span><span>京东用户注册协议</span><span>京东隐私政策</span><span>联通账号认证服务条款</span>并使用本机号码登录
</div>
<div>
<view class="subform" @click="sub">确认绑定</view>
</div>
</div>
</div>
</view>
</template>
......@@ -64,8 +64,12 @@ export default {
};
},
methods: {
changeBtn() {
this.checked = !this.checked;
},
// 提交表单
sub() {
if (this.checked) {
// this.$vervify(this.formData); //表单校验 成功会继续往下走 失败抛出异常
// const res = this.$submitForm(this.formData); //校验成功 获取表单值
......@@ -79,35 +83,13 @@ export default {
uni.navigateTo({
url: '/pagesA/pages/index/index'
});
// let param = {"appId" : "6", "ids": [151],
// "channelCode" : "wx_lite", "channelExtras" : {"openid" : "orQCF5W_Z6281tGMooVnSNE1yGog"},
// }
// let opts = { url: '/app/pay/order/submit/more', method: 'post' }
// this.http.httpRequest(opts, param).then(res => {
// console.log(res);
// if (res.data.code == 200) {
// let paymentData = res.data.data.invokeResponse;
// uni.requestPayment({
// provider: 'wxpay', // 服务提提供商
// timeStamp: paymentData.timeStamp,
// nonceStr: paymentData.nonceStr,
// package: paymentData.packageValue,
// signType: paymentData.signType,
// paySign: paymentData.paySign,
// success: function (res) {
// console.log('支付成功',res);
// // 业务逻辑。。。
// },
// fail: function (err) {
// console.log('支付失败',err);
// },
// });
// } else {
// }
// })
} else {
uni.showToast({
title: "请阅读并同意京东挪车牌用户协议",
icon: 'none',
duration: 2000,
});
}
},
},
}
......@@ -148,6 +130,7 @@ export default {
.u-checkbox-group {
display: inline-block !important;
}
/deep/.u-checkbox-group--row {
display: inline-block !important;
}
......
......@@ -20,7 +20,7 @@
</view> -->
<view v-if="isCanUse2">
<view>
<button class="login__btn" hover-class="none" type='primary' open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
<button class="login__btn" :disabled="!checked" hover-class="none" type='primary' open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
微信一键登录
</button>
</view>
......@@ -30,7 +30,7 @@
<div class="login__read">
<u-checkbox-group placement="row">
<u-checkbox activeColor="green" v-model="checked"></u-checkbox>
<u-checkbox :checked='checked' @change="changeBtn"></u-checkbox>
</u-checkbox-group>
已阅读并同意 <span>《京东用户注册协议》</span><span>《京东隐私政策》</span>。若您的手机号未注册,将为您直接注册京东账号
</div>
......@@ -55,6 +55,9 @@ export default {
};
},
methods: {
changeBtn() {
this.checked = !this.checked;
},
//登录
login() {
let _this = this;
......
......@@ -161,13 +161,18 @@ export default {
/deep/.uni-input-input,
.uni-input-placeholder {
text-indent: 300rpx;
text-align: right;
}
.self__input__km {
display: flex;
align-items: center;
justify-content: space-between;
span{
text-align: right;
display: inline-block;
width: 100rpx;
}
}
.content__code {
......
......@@ -29,7 +29,7 @@
</div>
<div class="add__user">
<u-checkbox-group placement="row">
<u-checkbox v-model="checked"></u-checkbox>
<u-checkbox :checked='checked' @change="changeBtn" ></u-checkbox>
</u-checkbox-group>
勾选同意<span>《用户服务协议》</span>
</div>
......@@ -97,6 +97,9 @@ export default {
};
},
methods: {
changeBtn(){
this.checked = !this.checked;
},
goBack() {
uni.navigateBack({
delta: 1
......
......@@ -48,6 +48,13 @@ export default {
};
},
methods: {
select(item) {
this.$store.state.selectedCar=item;
//返回
uni.navigateBack({
delta: 1
});
},
addCar() {
uni.navigateTo({
url: '/pagesB/pages/move-car/addCar'
......
......@@ -5,6 +5,7 @@
<template>
<view class="appCotent">
<div class="myRecord">
<scroll-list ref="list" :option="option" @load="load">
<div class="record__item" v-for="(vo,inx) in items" :key="inx">
<div class="item__top">
<div class="top__time">
......@@ -31,6 +32,7 @@
</div>
</div>
</div>
</scroll-list>
</div>
</view>
</template>
......@@ -39,11 +41,37 @@
export default {
data() {
return {
option: {
size: 10,
auto: true
},
items: [],
type: '请求他人挪车'
};
},
methods: {
// 加载数据
load(paging) {
setTimeout(() => {
let list = [];
let opts = { url: '/app/moveLog/apply/list', method: 'get' };
this.http.httpTokenRequest(opts, {}).then(res => {
if (res.data.code == 200) {
list = res.data.rows
this.items = [...this.items, ...list]
// 加载成功 参数对象{list: 当前列表,total: 数据总长度(后端查询的total)}
this.$refs.list.loadSuccess({
list: this.items,
total: res.data.total
});
// 加载失败
// this.$refs.list.loadFail()
}
})
}, this.$u.random(100, 1000));
},
goDetail(id){
uni.navigateTo({
url: '/pagesB/pages/move-car/callDetail?id=' + id
......@@ -59,7 +87,7 @@ export default {
},
},
created() {
this.getApplyMoveLogList()
//this.getApplyMoveLogList()
},
}
</script>
......
......@@ -9,6 +9,7 @@
<u-search placeholder="请输入车牌号" :showAction='false' bgColor='#ffffff' v-model="keyword"></u-search>
</div>
<div class="my__list">
<scroll-list ref="list" :option="option" @load="load">
<div class="list__item" v-for="(vo,inx) in items" :key="inx">
<div class="item__top">
<div class="top__img">
......@@ -35,6 +36,7 @@
@confirm="unbind" @cancel="cancelModal" showCancelButton="true"></u-modal>
</div>
</div>
</scroll-list>
</div>
</div>
</view>
......@@ -44,6 +46,10 @@
export default {
data() {
return {
option: {
size: 10,
auto: true
},
keyword: '',
//挪车码列表
items: [],
......@@ -58,6 +64,26 @@ export default {
};
},
methods: {
// 加载数据
load(paging) {
setTimeout(() => {
let list = [];
let opts = { url: '/app/moveCode/list', method: 'get' };
this.http.httpTokenRequest(opts, {}).then(res => {
if (res.data.code == 200) {
list = res.data.rows
this.items = [...this.items, ...list]
// 加载成功 参数对象{list: 当前列表,total: 数据总长度(后端查询的total)}
this.$refs.list.loadSuccess({
list: this.items,
total: res.data.total
});
// 加载失败
// this.$refs.list.loadFail()
}
})
}, this.$u.random(100, 1000));
},
goView(id){
uni.navigateTo({
url: '/pagesB/pages/move-car/moveCarDetail?id=' + id
......@@ -93,7 +119,7 @@ export default {
},
},
created() {
this.getMyMoveCodeList()
//this.getMyMoveCodeList()
}
}
......@@ -119,6 +145,7 @@ export default {
justify-content: space-between;
margin-bottom: 44rpx;
align-items: center;
.top__img {
width: 100rpx;
height: 100rpx;
......@@ -158,6 +185,7 @@ export default {
.item__bottom {
display: flex;
justify-content: flex-end;
span {
display: inline-block;
width: 180rpx;
......
......@@ -5,6 +5,7 @@
<template>
<view class="appCotent">
<div class="myRecord">
<scroll-list ref="list" :option="option" @load="load">
<div class="record__item" v-for="(vo,inx) in items" :key="inx">
<div class="item__top">
<div class="top__time">
......@@ -31,6 +32,7 @@
</div>
</div>
</div>
</scroll-list>
</div>
</view>
</template>
......@@ -39,11 +41,36 @@
export default {
data() {
return {
option: {
size: 10,
auto: true
},
items: [],
type: '他人请求挪车',
};
},
methods: {
// 加载数据
load(paging) {
setTimeout(() => {
let list = [];
let opts = { url: '/app/moveLog/my/list', method: 'get' };
this.http.httpTokenRequest(opts, {}).then(res => {
if (res.data.code == 200) {
list = res.data.rows
this.items = [...this.items, ...list]
// 加载成功 参数对象{list: 当前列表,total: 数据总长度(后端查询的total)}
this.$refs.list.loadSuccess({
list: this.items,
total: res.data.total
});
}
})
// 加载失败
// this.$refs.list.loadFail()
}, this.$u.random(100, 1000));
},
goDetail(id){
console.log(id)
uni.navigateTo({
......@@ -60,7 +87,7 @@ export default {
},
},
created() {
this.getMyMoveLogList()
//this.getMyMoveLogList()
},
}
</script>
......@@ -141,6 +168,7 @@ export default {
font-family: PingFang SC;
font-weight: 500;
color: #999999;
>div {
width: 180rpx;
height: 56rpx;
......
......@@ -162,6 +162,9 @@ export default {
onLoad(option) {
this.moveCode = option.moveCode
},
onShow:function(){
console.log( this.$store.state.selectedCar);
}
}
</script>
......
......@@ -26,6 +26,7 @@
<div class="shop__list__one">
<div class="view__title">车主精选 养车必备</div>
<div class="list__one__items">
<scroll-list ref="list" :option="option" @load="load">
<div class="one__item" v-for="(vo,inx) in boutiqueMallList" :key="inx" @click="goDetail(vo.id)">
<div class="one__item__img">
<image :src="getImage(vo.mainImgUrl)" />
......@@ -38,6 +39,7 @@
</div>
</div>
</div>
</scroll-list>
</div>
</view>
<u-gap bgColor="transparent" height="60"></u-gap>
......@@ -54,6 +56,10 @@ export default {
},
data() {
return {
option: {
size: 10,
auto: true
},
keyword: '',
list3: [
'https://cdn.uviewui.com/uview/swiper/swiper3.png',
......@@ -67,6 +73,26 @@ export default {
}
},
methods: {
// 加载数据
load(paging) {
setTimeout(() => {
let opts = { url: '/app/mall/list', method: 'get' };
this.http.httpTokenRequest(opts, {classification: "2"}).then(res => {
if (res.data.code == 200) {
let list = res.data.data.rows
this.boutiqueMallList = [...this.boutiqueMallList, ...list];
// 加载成功 参数对象{list: 当前列表,total: 数据总长度(后端查询的total)}
this.$refs.list.loadSuccess({
list: this.boutiqueMallList,
total: res.data.data.total
});
// 加载失败
// this.$refs.list.loadFail()
}
})
}, this.$u.random(100, 1000));
},
goSearch() {
uni.navigateTo({
url: '/pagesC/pages/shop/search'
......
......@@ -221,6 +221,28 @@ export default {
.pay {
padding-top: 40rpx;
.add__address {
width: 670rpx;
height: 90rpx;
background: #ffffff;
box-shadow: 0rpx 0rpx 28rpx 1rpx rgba(232, 232, 232, 0.16);
border-radius: 10rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #F88D28;
display: flex;
margin: 0 auto;
align-items: center;
justify-content: center;
image {
width: 34rpx;
height: 36rpx;
margin-right: 20rpx;
}
}
.price__bottom {
width: 100%;
height: 156rpx;
......@@ -310,9 +332,16 @@ export default {
display: flex;
align-items: center;
span:nth-of-type(1) {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #F88D28;
padding: 2rpx 4rpx;
border: 1rpx solid #F88D28;
}
span:nth-of-type(2) {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
......@@ -320,20 +349,11 @@ export default {
padding: 0 14rpx;
}
span:nth-of-type(2) {
span:nth-of-type(3) {
font-size: 28rpx;
font-family: DIN;
font-weight: 500;
color: #666666;
}
span:nth-of-type(3) {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #F88D28;
margin-left: 20rpx;
padding: 2rpx 4rpx;
border: 1rpx solid #F88D28;
}
}
}
......@@ -345,27 +365,7 @@ export default {
}
}
}
.add__address {
width: 670rpx;
height: 90rpx;
background: #ffffff;
box-shadow: 0rpx 0rpx 28rpx 1rpx rgba(232, 232, 232, 0.16);
border-radius: 10rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #F88D28;
display: flex;
margin: 0 auto;
align-items: center;
justify-content: center;
image {
width: 34rpx;
height: 36rpx;
margin-right: 20rpx;
}
}
.pay__item {
padding: 30rpx 40rpx;
......
......@@ -172,6 +172,7 @@ export default {
/deep/ .u-form-item__body__right__content__slot {
justify-content: flex-end;
flex-direction: row !important;
}
}
......
......@@ -17,7 +17,7 @@
<div>
物流单号:{{waybillInfo.waybillNo}}
</div>
<div class="time__btn btn__one">
<div class="time__btn btn__one" @click="copy">
<span>复制</span>
</div>
</div>
......@@ -96,6 +96,23 @@ export default {
}
},
methods: {
copy() {
wx.setClipboardData({
data: this.order,
success(res) {
wx.getClipboardData({
success(res) {
//提示
uni.showToast({
title: "已复制到剪切板",
icon: 'none',
duration: 2000,
});
}
})
}
})
}
//获得订单详情
getWaybillInfo(){
let opts = { url: '/app/user/order/waybill/' + this.orderId, method: 'get' };
......
......@@ -149,12 +149,14 @@ export default {
<style lang="scss" scoped>
.editAddress {
.app__gps{
display: inline-block;
image{
width: 34rpx;
height: 36rpx;
}
}
.app__right{
display: inline-block;
padding-left: 20rpx;
padding-bottom: 10rpx;
image{
......@@ -219,6 +221,7 @@ export default {
/deep/ .u-form-item__body__right__content__slot {
justify-content: flex-end;
flex-direction: row !important;
}
}
......
......@@ -14,6 +14,7 @@
transform: 'scale(1)'
}" itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;">
</u-tabs>
<scroll-list ref="list" :option="option" @load="load">
<div class="order__content" v-for="(item,index) in orderList">
<div class="order__items" @click="orderDetail(item.id)" v-if="(current===0||current===1) && item.orderStatus == 10">
<div class="item">
......@@ -143,7 +144,9 @@
</div>
</div>
</div>
</div>
</scroll-list>
</div>
</view>
</template>
......@@ -152,6 +155,11 @@
export default {
data() {
return {
list:[],
option: {
size: 10,
auto: true
},
current: 0,
list4: [{
name: '全部订单'
......@@ -180,6 +188,40 @@ export default {
})
},
methods: {
// 加载数据
load(paging) {
setTimeout(() => {
let list = [];
let order = {}
//订单状态:0-未支付,10-待发货,20-待收货,30-退款/售后,50-已完成
if(this.current == 0){
}else if(this.current == 1){
order.orderStatus = 10;
}else if(this.current == 2){
order.orderStatus = 20;
}else if(this.current == 3){
order.orderStatus = 50;
}else if(this.current == 4){
order.orderStatus = 30;
}else{
}
let opts = { url: '/app/user/order/list', method: 'get' };
this.http.httpTokenRequest(opts, order).then(res => {
if (res.data.code == 200) {
list = res.data.data.rows
this.orderList = [...this.orderList, ...list];
// 加载成功 参数对象{list: 当前列表,total: 数据总长度(后端查询的total)}
this.$refs.list.loadSuccess({
list: this.orderList,
total: res.data.data.total
});
// 加载失败
// this.$refs.list.loadFail()
}
})
}, this.$u.random(100, 1000));
},
pull(orderId) {
uni.navigateTo({
url: '/pagesD/pages/personal/pull?orderId=' + orderId
......@@ -250,7 +292,7 @@ export default {
},
},
onShow() {
this.getOrderList()
//this.getOrderList()
},
onLoad(e) {
if(e.current) {
......
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
token: "",
selectedCar: {},
},
actions: {},
});
export default store;
{"version":3,"sources":["webpack:////Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?e313","webpack:////Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?88d9","webpack:////Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?a819","webpack:////Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?8a58","uni-app:///common/scroll-list/scroll-list.vue","webpack:////Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?d17c","webpack:////Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?2ae7"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoI;AACpI;AAC+D;AACL;AACsC;;;AAGhG;AACgN;AAChN,gBAAgB,iNAAU;AAC1B,EAAE,iFAAM;AACR,EAAE,kGAAM;AACR,EAAE,2GAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,sGAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAA;AAAy0B,CAAgB,yyBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8C71B,kF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACA,EACA,mBADA,EAEA,SACA;AACA,cACA,YADA,EAEA,yCAFA,EAFA,EAFA,EASA,IATA,kBASA,CACA,SACA,iBACA,OADA,EACA;AACA,gBAFA,EAEA;AACA,kBAHA,EAGA;AACA,oBAJA,EAIA;AACA,uBALA,EAKA;AACA,sBANA,EAMA;AACA,sBAPA,EAOA;AACA,uBARA,EAQA;AACA,0BATA,EASA;AACA,0BAVA,EAUA;AACA,8BAXA,EAWA;AACA,2BAZA,EAYA;AACA,iCAbA,EAaA;AACA,uBAdA,EAcA;AACA,iCAfA,EAeA;AACA,gCAhBA,EAgBA;AACA,gCAjBA,EAiBA;AACA,qCAlBA,EAkBA;AACA,qCAnBA,EAmBA;AACA,0BApBA,EAoBA;AACA,6BArBA,EAqBA;AACA,8BAtBA,EAsBA;AACA,4BAvBA,EAuBA;AACA,+BAxBA,EAwBA;AACA,gCAzBA,EAyBA;AACA,mCA1BA,EA0BA;AACA,6BA3BA,EA2BA;AACA,mCA5BA,CA4BA;AA5BA,OADA,EA+BA,uBA/BA,EA+BA;AACA,iBAhCA,EAgCA;AACA,oBAjCA,EAiCA;AACA,kBAlCA,EAkCA;AACA,uBAnCA,EAmCA;AACA,yBApCA,EAoCA;AACA,oBArCA,EAqCA;AACA,qBAtCA,EAsCA;AACA,yBAvCA,EAuCA;AACA,wBAxCA,EAyCA,uBAzCA,EAyCA;AACA,+BA1CA,EA0CA;AACA,yBA3CA,EA2CA;AACA,oBA5CA,EA4CA;AACA,uBA7CA,EA6CA;AACA,0BA9CA,EA8CA;AACA,wBA/CA,EA+CA;AACA,uBAhDA,EAgDA;AACA,sBAjDA,EAiDA;AACA,uBAlDA,EAkDA;AACA,yBAnDA,CAmDA;AAnDA,MAqDA,CA/DA,EAgEA,WACA;AACA,cAFA,wBAEA,mBACA;AACA,0EACA,0CACA,2CACA,2CACA,8CACA,oDACA,wDARA,CASA;AACA,+DACA;AACA,uCAFA,CAGA;AACA,mDACA,CALA,EAMA,CAlBA,EAmBA;AACA,QApBA,kBAoBA,CACA,6EADA,CAEA;AACA,0BAHA,CAIA;AACA,0DALA,CAMA;AACA,6BAPA,CAQA;AACA,sEATA,CAUA;AACA,iCACA,CAhCA,EAiCA;AACA,eAlCA,yBAkCA,oFACA;AADA,UAEA,IAFA,GAEA,IAFA,CAEA,IAFA,CAEA,KAFA,GAEA,IAFA,CAEA,KAFA,EAGA;AACA,gCACA;AACA,0BACA;AACA,qCACA;AACA,qCAFA,CAGA;AACA,+DACA,CALA,MAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SArBA,MAqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OArCA,MAqCA;AACA;AACA;AACA;AACA;AACA,KAhFA;AAiFA;AACA,YAlFA,sBAkFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA7FA;AA8FA;AACA,WA/FA,qBA+FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OALA,MAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAFA,EAEA,iCAFA;AAGA,KA9HA;AA+HA;AACA,kBAhIA,0BAgIA,IAhIA,EAgIA;AACA;AADA,UAEA,IAFA,GAEA,IAFA,CAEA,IAFA,CAEA,KAFA,GAEA,IAFA,CAEA,KAFA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WALA,MAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAvBA,MAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SARA,EAQA,uCARA;AASA,OAtDA,MAsDA;AACA;AACA;AACA;AACA;AACA,KA/LA;AAgMA;AACA,eAjMA,yBAiMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OATA,EASA,uCATA;AAUA,KAzNA;AA0NA;AACA,eA3NA,yBA2NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAJA;AAKA,WANA;AAOA,SARA,EAQA,GARA;AASA;AACA,KAzOA;AA0OA;AACA,uBA3OA,+BA2OA,CA3OA,EA2OA;AACA;AACA;AACA;AACA,KA/OA;AAgPA;AACA,gBAjPA,wBAiPA,KAjPA,EAiPA;AACA;AACA;AACA,KApPA;AAqPA;AACA,oBAtPA,4BAsPA,KAtPA,EAsPA;AACA;AACA;AACA;AACA,KA1PA;AA2PA;AACA,mBA5PA,2BA4PA,KA5PA,EA4PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IADA;AAEA;AACA;AACA,KAvQA;AAwQA;AACA,kBAzQA,0BAyQA,KAzQA,EAyQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OATA,MASA;AACA;AACA;AACA;AACA;AACA,KA1RA;AA2RA;AACA,oBA5RA,8BA4RA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;AACA;AACA,KAnSA;AAoSA;AACA,sBArSA,gCAqSA;AACA;AACA;AACA,+BADA;;AAGA;;;;;AAKA,sBALA;;;AAQA,KAlTA;AAmTA;AACA,qBApTA,+BAoTA;AACA;AACA;AACA;AACA;AACA,mCADA;;AAGA;;;;;AAKA,0BALA;;;AAQA;;;;;AAKA;;AAEA,WAPA;AAQA;AACA,SArBA;AAsBA,OAvBA;AAwBA,KA9UA;AA+UA;AACA,qBAhVA,6BAgVA,YAhVA,EAgVA;AACA;AACA;AACA,KAnVA;AAoVA;AACA,aArVA,qBAqVA,QArVA,EAqVA,GArVA,EAqVA;AACA;AACA;AACA,UADA,CACA,MADA;AAEA,oCAFA,EAEA,QAFA;AAGA,0BAHA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAVA;AAWA,YAXA;AAYA,OAbA;AAcA,KApWA;AAqWA;AACA,YAtWA,oBAsWA,GAtWA,EAsWA;AACA;AACA;AACA;AACA,OAFA;AAGA;AACA;AACA;AACA,kCADA;AAEA,kCAFA;AAGA,kCAHA,EADA;;AAMA,UANA;AAOA,KAnXA,EAhEA;;AAqbA;AACA,uBADA,iCACA;AACA;AACA;AACA;AACA,KALA;AAMA;AACA,iBAPA,2BAOA;AACA,qBADA;AAEA,kBAFA,GAEA,kBAFA,CAEA,YAFA;AAGA;AACA;AACA;AACA,KAbA;AAcA;AACA,sBAfA,gCAeA;AACA,qBADA;AAEA,oBAFA,GAEA,IAFA,CAEA,cAFA,CAEA,WAFA,GAEA,IAFA,CAEA,WAFA,CAEA,YAFA,GAEA,IAFA,CAEA,YAFA;AAGA;AACA;AACA;AACA,KArBA;AAsBA;AACA,oBAvBA,8BAuBA;AACA,qBADA;AAEA,kBAFA,GAEA,IAFA,CAEA,YAFA;AAGA;AACA;AACA,KA5BA;AA6BA;AACA,0BA9BA,oCA8BA;AACA,qBADA;AAEA,wBAFA,CAEA,kBAFA,uBAEA,kBAFA,CAEA,kBAFA,uBAEA,kBAFA;AAGA,gBAHA,GAGA,IAHA,CAGA,UAHA,CAGA,cAHA,GAGA,IAHA,CAGA,cAHA;AAIA,uCAJA,CAIA,CAJA,kBAIA,CAJA,CAIA,CAJA,kBAIA,CAJA,CAIA,CAJA,kBAIA,CAJA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA3CA;AA4CA,qBA5CA,+BA4CA;AACA,qBADA;AAEA,wBAFA,GAEA,kBAFA,CAEA,kBAFA;AAGA;AACA;AACA,KAjDA;AAkDA;AACA,wBAnDA,kCAmDA;AACA,qBADA;AAEA,mBAFA,GAEA,kBAFA,CAEA,aAFA;AAGA,kCAHA,CAGA,CAHA,mBAGA,CAHA,CAGA,CAHA,mBAGA,CAHA,CAGA,CAHA,mBAGA,CAHA;AAIA;AACA;AACA;AACA,KA1DA;AA2DA;AACA,mBA5DA,6BA4DA;AACA,qBADA;AAEA,mBAFA,GAEA,kBAFA,CAEA,aAFA;AAGA;AACA;AACA,KAjEA;AAkEA;AACA,kBAnEA,4BAmEA;AACA,qBADA;AAEA,oBAFA,GAEA,kBAFA,CAEA,cAFA;AAGA;AACA;AACA,KAxEA,EArbA;;AA+fA;AACA,iBADA,yBACA,GADA,EACA;AACA;AACA,KAHA,EA/fA;;AAogBA,SApgBA,qBAogBA;AACA;AACA;AACA,GAvgBA;AAwgBA,SAxgBA,qBAwgBA;AACA;AACA,GA1gBA,E;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAAgkD,CAAgB,g8CAAG,EAAC,C;;;;;;;;;;;ACAplD;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/scroll-list/scroll-list.js","sourcesContent":["import { render, staticRenderFns, recyclableRender, components } from \"./scroll-list.vue?vue&type=template&id=3378e1d2&scoped=true&\"\nvar renderjs\nimport script from \"./scroll-list.vue?vue&type=script&lang=js&\"\nexport * from \"./scroll-list.vue?vue&type=script&lang=js&\"\nimport style0 from \"./scroll-list.vue?vue&type=style&index=0&id=3378e1d2&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3378e1d2\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"common/scroll-list/scroll-list.vue\"\nexport default component.exports","export * from \"-!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--16-0!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./scroll-list.vue?vue&type=template&id=3378e1d2&scoped=true&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n var s0 = _vm.__get_style([_vm.scrollListWrapStyle])\n\n var s1 = _vm.__get_style([_vm.listWrapStyle])\n\n var s2 = _vm.__get_style([_vm.scrollContentStyle])\n\n var s3 = !_vm.$slots.pulldown ? _vm.__get_style([_vm.refreshViewStyle]) : null\n var s4 = !_vm.$slots.pulldown\n ? _vm.__get_style([_vm.pullDownAnimationStyle])\n : null\n var s5 = !_vm.$slots.pulldown\n ? _vm.__get_style([_vm.pullDownTextStyle])\n : null\n var s6 =\n _vm.showEmpty && !_vm.$slots.empty\n ? _vm.__get_style([_vm.emptyTextStyle])\n : null\n var s7 =\n _vm.showPullUp && !_vm.$slots.pullup && _vm.loading\n ? _vm.__get_style([_vm.pullUpAnimationStyle])\n : null\n var s8 =\n _vm.showPullUp && !_vm.$slots.pullup\n ? _vm.__get_style([_vm.pullUpTextStyle])\n : null\n _vm.$mp.data = Object.assign(\n {},\n {\n $root: {\n s0: s0,\n s1: s1,\n s2: s2,\n s3: s3,\n s4: s4,\n s5: s5,\n s6: s6,\n s7: s7,\n s8: s8\n }\n }\n )\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./scroll-list.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./scroll-list.vue?vue&type=script&lang=js&\"","<template>\r\n <view class=\"scroll-list-wrap\" :style=\"[scrollListWrapStyle]\">\r\n <scroll-view\r\n class=\"scroll-view\"\r\n :class=\"[elClass]\"\r\n :style=\"[listWrapStyle]\"\r\n scroll-y\r\n scroll-anchoring\r\n enable-back-to-top\r\n :scroll-top=\"scrollTop\"\r\n :lower-threshold=\"defaultOption.lowerThreshold\"\r\n @scroll=\"handleScroll\"\r\n @touchend=\"handleTouchEnd\"\r\n @touchmove.prevent.stop=\"handleTouchMove\"\r\n @touchstart=\"handleTouchStart\"\r\n @scrolltolower=\"handleScrolltolower\"\r\n >\r\n <view class=\"scroll-content\" :style=\"[scrollContentStyle]\">\r\n <view class=\"pull-down-wrap\">\r\n <slot name=\"pulldown\" v-if=\"$slots.pulldown\"></slot>\r\n <view class=\"refresh-view\" :style=\"[refreshViewStyle]\" v-else>\r\n <view class=\"pull-down-animation\" :class=\"{ refreshing: refreshing }\" :style=\"[pullDownAnimationStyle]\"></view>\r\n <text class=\"pull-down-text\" :style=\"[pullDownTextStyle]\">{{ refreshStateText }}</text>\r\n </view>\r\n </view>\r\n <view class=\"empty-wrap\" v-if=\"showEmpty\">\r\n <slot name=\"empty\" v-if=\"$slots.empty\"></slot>\r\n <view class=\"empty-view\" v-else>\r\n <image class=\"empty-image\" :src=\"defaultOption.emptyImage || images.empty\" mode=\"aspectFit\"></image>\r\n <text class=\"empty-text\" :style=\"[emptyTextStyle]\">{{ emptyText }}</text>\r\n </view>\r\n </view>\r\n <view class=\"list-content\"><slot></slot></view>\r\n <view class=\"pull-up-wrap\" v-if=\"showPullUp\">\r\n <slot name=\"pullup\" v-if=\"$slots.pullup\"></slot>\r\n <view class=\"load-view\" v-else>\r\n <view class=\"pull-up-animation\" v-if=\"loading\" :style=\"[pullUpAnimationStyle]\"></view>\r\n <text class=\"pull-up-text\" :style=\"[pullUpTextStyle]\">{{ loadStateText }}</text>\r\n </view>\r\n </view>\r\n </view>\r\n </scroll-view>\r\n </view>\r\n</template>\r\n\r\n<script>\r\nimport images from './images.js';\r\nexport default {\r\n name: 'scroll-list',\r\n props: {\r\n // 配置信息\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n data() {\r\n return {\r\n defaultOption: {\r\n page: 1, // 分页\r\n size: 15, // 分页大小\r\n auto: true, // 自动加载\r\n height: null, // 组件高度\r\n disabled: false, // 禁用\r\n background: '', // 背景颜色属性\r\n emptyImage: '', // 空数据提示图片\r\n offsetBottom: 0, // 底部高度补偿\r\n pullDownSpeed: 0.5, // 下拉速率\r\n lowerThreshold: 40, // 距离底部上拉加载距离\r\n refresherThreshold: 80, // 距离顶部下拉刷新距离\r\n refreshDelayed: 800, // 刷新延迟\r\n refreshFinishDelayed: 800, // 刷新完成后的延迟\r\n safeArea: false, // 是否开启安全区域适配\r\n emptyTextColor: '#82848a', // 空提示文字颜色\r\n loadTextColor: '#82848a', // 上拉加载文字颜色\r\n loadIconColor: '#82848a', // 上拉加载图标颜色\r\n refresherTextColor: '#82848a', // 下拉刷新文字颜色\r\n refresherIconColor: '#82848a', // 下拉刷新图标颜色\r\n emptyText: '暂无列表~', // 空数据提示文字\r\n loadingText: '正在加载中~', // 加载中文字\r\n loadFailText: '加载失败啦~', // 加载失败文字\r\n noMoreText: '没有更多啦~', // 没有更多文字\r\n refreshingText: '正在刷新~', // 正在刷新文字\r\n refreshFailText: '刷新失败~', // 刷新失败文字\r\n refreshSuccessText: '刷新成功~', // 刷新成功文字\r\n pulldownText: '下拉刷新~', // 下拉中的文字\r\n pulldownFinishText: '松开刷新~' // 下拉完成的文字\r\n },\r\n images, // 内置图片\r\n elClass: '', // 组件动态class\r\n windowInfo: {}, // 窗口信息\r\n scrollTop: 0, // 距离顶部滚动高度\r\n scrollViewTop: -1, // 滚动视图顶部位置\r\n scrollViewHeight: 0, // 滚动视图高度\r\n currentPage: 1, // 当前分页页码\r\n currentSize: 15, // 当前分页大小\r\n currentScrollTop: 0, // 当前滚动高度\r\n emptyText: '暂无列表~',\r\n loadStateText: '正在加载中~', // 加载状态文字\r\n refreshStateText: '下拉刷新~', // 刷新状态文字\r\n loadDisabled: false, // 是否禁用上拉加载\r\n loading: false, // 是否加载中\r\n refreshing: false, // 是否刷新中\r\n refreshFinish: false, // 是否刷新完成\r\n pulldowning: false, // 是否正在下拉\r\n pullDownHeight: 0, // 下拉高度\r\n showEmpty: false, // 是否显示空数据提示\r\n showPullUp: false, // 是否显示上拉加载\r\n showPullDown: false // 是否显示下拉刷新\r\n };\r\n },\r\n methods: {\r\n // 组件初始化\r\n handleInit() {\r\n // 合并配置\r\n this.defaultOption = Object.assign(this.defaultOption, this.option);\r\n this.showEmpty = !this.defaultOption.auto;\r\n this.currentPage = this.defaultOption.page;\r\n this.currentSize = this.defaultOption.size;\r\n this.emptyText = this.defaultOption.emptyText;\r\n this.loadStateText = this.defaultOption.loadingText;\r\n this.refreshStateText = this.defaultOption.pulldownText;\r\n // 计算高度\r\n this.queryRect('.' + this.elClass).then(rect => {\r\n // 设置组件顶部位置\r\n this.scrollViewTop = rect.top;\r\n // 判断是否自动加载\r\n if (this.defaultOption.auto) this.load();\r\n });\r\n },\r\n // 加载数据\r\n load() {\r\n if (this.defaultOption.disabled || this.loading || this.loadDisabled) return;\r\n // 开启正在加载\r\n this.loading = true;\r\n // 设置正在加载状态文字\r\n this.loadStateText = this.defaultOption.loadingText;\r\n // 显示上拉加载\r\n this.showPullUp = true;\r\n // 分页参数\r\n let paging = { page: this.currentPage, size: this.currentSize };\r\n // 触发load事件\r\n this.$emit('load', paging);\r\n },\r\n // 加载成功\r\n loadSuccess(data = {}) {\r\n // 解构数据\r\n const { list, total } = data;\r\n // 判断列表是否是数组\r\n if (Array.isArray(list)) {\r\n // 判断列表长度\r\n if (list.length) {\r\n // 判断列表长度和列表总数是否相同\r\n if (list.length >= total) {\r\n // 设置禁用上拉加载\r\n this.loadDisabled = true;\r\n // 加载状态文字\r\n this.loadStateText = this.defaultOption.noMoreText;\r\n } else {\r\n // 关闭禁用上拉加载\r\n this.loadDisabled = false;\r\n // 设置分页参数\r\n this.currentPage++;\r\n // 加载状态为加载中\r\n this.loadStateText = this.defaultOption.loadingText;\r\n // 加载计算\r\n this.loadCompute();\r\n }\r\n // 显示上拉加载\r\n this.showPullUp = true;\r\n // 隐藏空数据提示\r\n this.showEmpty = false;\r\n } else {\r\n // 设置禁用上拉加载\r\n this.loadDisabled = true;\r\n // 隐藏上拉加载\r\n this.showPullUp = false;\r\n // 隐藏上拉加载\r\n this.showPullUp = false;\r\n // 显示空数据提示\r\n this.showEmpty = true;\r\n }\r\n // 关闭正在加载\r\n this.loading = false;\r\n // 触发加载成功事件\r\n this.$emit('loadSuccess', list);\r\n } else {\r\n // 不是数组类型当作加载失败处理\r\n this.loadFail();\r\n console.error('the list must be a array');\r\n }\r\n },\r\n // 加载失败\r\n loadFail() {\r\n // 关闭正在加载\r\n this.loading = false;\r\n // 关闭空数据提示\r\n this.showEmpty = false;\r\n // 显示上拉加载\r\n this.showPullUp = true;\r\n // 加载状态为加载失败\r\n this.loadStateText = this.defaultOption.loadFailText;\r\n // 触发加载失败事件\r\n this.$emit('loadFail');\r\n },\r\n // 刷新数据\r\n refresh() {\r\n // 如果是下拉刷新\r\n if (this.pullDownHeight == this.defaultOption.refresherThreshold) {\r\n // 关闭正在加载\r\n this.loading = false;\r\n // 隐藏上拉加载\r\n this.showPullUp = false;\r\n } else {\r\n // 开启正在加载\r\n this.loading = true;\r\n // 隐藏空数据提示\r\n this.showEmpty = false;\r\n // 显示上拉加载\r\n this.showPullUp = true;\r\n // 设置正在刷新状态文字\r\n this.loadStateText = this.defaultOption.refreshingText;\r\n }\r\n // 设置刷新未完成\r\n this.refreshFinish = false;\r\n // 开启正在刷新\r\n this.refreshing = true;\r\n // 设置正在刷新状态文字\r\n this.refreshStateText = this.defaultOption.refreshingText;\r\n // 设置分页参数\r\n this.currentPage = 1;\r\n this.currentSize = this.defaultOption.size;\r\n let paging = { page: this.currentPage, size: this.currentSize };\r\n // 触发refresh事件\r\n setTimeout(() => {\r\n this.$emit('refresh', paging);\r\n }, this.defaultOption.refreshDelayed);\r\n },\r\n // 刷新成功\r\n refreshSuccess(data) {\r\n // 解构数据\r\n const { list, total } = data;\r\n // 判断列表是否是数组\r\n if (Array.isArray(list)) {\r\n // 判断列表长度\r\n if (list.length) {\r\n // 判断列表长度和列表总数是否相同\r\n if (list.length >= total) {\r\n // 设置禁用上拉加载\r\n this.loadDisabled = true;\r\n // 设置没有更多状态文字\r\n this.loadStateText = this.defaultOption.noMoreText;\r\n } else {\r\n // 设置分页参数\r\n this.currentPage++;\r\n // 关闭禁用上拉加载\r\n this.loadDisabled = false;\r\n // 设置加载中状态文字\r\n this.loadStateText = this.defaultOption.loadingText;\r\n // 开启自动加载\r\n this.defaultOption.auto = true;\r\n // 加载计算\r\n this.loadCompute();\r\n }\r\n // 关闭空数据提示\r\n this.showEmpty = false;\r\n // 显示上拉加载\r\n this.showPullUp = true;\r\n } else {\r\n // 设置禁用上拉加载\r\n this.loadDisabled = true;\r\n // 隐藏上拉加载\r\n this.showPullUp = false;\r\n // 显示空数据提示\r\n this.showEmpty = true;\r\n // 设置没有更多状态文字\r\n this.loadStateText = this.defaultOption.noMoreText;\r\n }\r\n // 关闭正在加载\r\n this.loading = false;\r\n // 设置刷新成功状态文字\r\n this.refreshStateText = this.defaultOption.refreshSuccessText;\r\n // 关闭正在刷新\r\n this.refreshing = false;\r\n // 关闭正在下拉\r\n this.pulldowning = false;\r\n // 触发刷新成功事件\r\n this.$emit('refreshSuccess', list);\r\n setTimeout(() => {\r\n // 设置刷新完成\r\n this.refreshFinish = true;\r\n // 重置下拉高度\r\n this.pullDownHeight = 0;\r\n // 隐藏下拉刷新\r\n this.showPullDown = false;\r\n this.$emit('refreshSuccess');\r\n }, this.defaultOption.refreshFinishDelayed);\r\n } else {\r\n // 不是数组类型当作刷新失败处理\r\n this.refreshFail();\r\n console.error('the list must be a array');\r\n }\r\n },\r\n // 刷新失败\r\n refreshFail() {\r\n // 设置加载失败状态文字\r\n this.loadStateText = this.defaultOption.refreshFailText;\r\n // 设置刷新失败状态文字\r\n this.refreshStateText = this.defaultOption.refreshFailText;\r\n // 关闭正在加载\r\n this.loading = false;\r\n // 显示下拉加载\r\n this.showPullUp = true;\r\n // 关闭正在刷新\r\n this.refreshing = false;\r\n // 关闭正在下拉\r\n this.pulldowning = false;\r\n // 延迟执行刷新完成后状态\r\n setTimeout(() => {\r\n // 设置刷新完成\r\n this.refreshFinish = true;\r\n // 重置下拉高度\r\n this.pullDownHeight = 0;\r\n // 隐藏下拉刷新\r\n this.showPullDown = false;\r\n // 触发刷新失败事件\r\n this.$emit('refreshError');\r\n }, this.defaultOption.refreshFinishDelayed);\r\n },\r\n // 加载计算\r\n loadCompute() {\r\n // 判断是否自动加载\r\n if (this.defaultOption.auto) {\r\n // 延迟执行下否者可能会高度计算错误\r\n setTimeout(() => {\r\n this.$nextTick(() => {\r\n this.queryRect('.list-content').then(rect => {\r\n if (rect.height <= this.scrollViewHeight) {\r\n this.load();\r\n }\r\n });\r\n });\r\n }, 100);\r\n }\r\n },\r\n // 上拉触底事件\r\n handleScrolltolower(e) {\r\n if (this.loadDisabled) return;\r\n this.$emit('scrolltolower', e);\r\n this.load();\r\n },\r\n // 滚动事件\r\n handleScroll(event) {\r\n this.currentScrollTop = event.detail.scrollTop;\r\n this.$emit('scroll', event.detail);\r\n },\r\n // 触摸按下处理\r\n handleTouchStart(event) {\r\n if (this.defaultOption.disabled) return;\r\n this.currentTouchStartY = event.touches[0].clientY;\r\n this.$emit('touchStart', event);\r\n },\r\n // 触摸按下滑动处理\r\n handleTouchMove(event) {\r\n if (this.defaultOption.disabled || this.currentScrollTop) return;\r\n if (event.touches[0].clientY >= this.currentTouchStartY) {\r\n this.pulldowning = true;\r\n this.showPullDown = true;\r\n let pullDownDistance = (event.touches[0].clientY - this.currentTouchStartY) * this.defaultOption.pullDownSpeed;\r\n this.pullDownHeight = pullDownDistance > this.defaultOption.refresherThreshold ? this.defaultOption.refresherThreshold : pullDownDistance;\r\n this.refreshStateText =\r\n this.pullDownHeight >= this.defaultOption.refresherThreshold ? this.defaultOption.pulldownFinishText : this.defaultOption.pulldownText;\r\n this.$emit('touchMove', event);\r\n }\r\n },\r\n // 触摸松开处理\r\n handleTouchEnd(event) {\r\n if (this.defaultOption.disabled) return;\r\n // 当下拉高度小于下拉阈值\r\n if (this.pullDownHeight < this.defaultOption.refresherThreshold) {\r\n // 关闭正在下拉\r\n this.pulldowning = false;\r\n // 重置下拉高度\r\n this.pullDownHeight = 0;\r\n // 隐藏下拉刷新\r\n this.showPullDown = false;\r\n // 触发下拉中断事件\r\n this.$emit('refreshStop');\r\n } else {\r\n this.refresh();\r\n }\r\n // 触发下拉触摸松开事件\r\n this.$emit('touchEnd', event);\r\n },\r\n // 更新组件\r\n updateScrollView() {\r\n if (this.defaultOption.height) {\r\n this.scrollViewHeight = uni.upx2px(this.defaultOption.height);\r\n } else {\r\n this.scrollViewHeight = this.windowInfo.windowHeight - this.scrollViewTop;\r\n }\r\n this.scrollViewObserve();\r\n },\r\n // 监听列表高度变化\r\n listContentObserve() {\r\n this.disconnectObserve('_listContentObserve');\r\n const listContentObserve = this.createIntersectionObserver({\r\n thresholds: [0, 0.5, 1]\r\n });\r\n listContentObserve.relativeToViewport({\r\n // #ifdef H5\r\n top: -(this.windowInfo.windowTop + rect.top),\r\n // #endif\r\n // #ifndef H5\r\n top: -rect.top\r\n // #endif\r\n });\r\n },\r\n // 监听组件位置变化\r\n scrollViewObserve() {\r\n this.disconnectObserve('_scrollViewObserve');\r\n this.$nextTick(() => {\r\n this.queryRect('.' + this.elClass).then(rect => {\r\n const scrollViewObserve = this.createIntersectionObserver({\r\n thresholds: [0, 0.5, 1]\r\n });\r\n scrollViewObserve.relativeToViewport({\r\n // #ifdef H5\r\n top: -(this.windowInfo.windowTop + rect.top),\r\n // #endif\r\n // #ifndef H5\r\n top: -rect.top\r\n // #endif\r\n });\r\n scrollViewObserve.observe('.' + this.elClass, position => {\r\n // #ifdef H5\r\n this.scrollViewTop = position.boundingClientRect.top - this.windowInfo.windowTop;\r\n // #endif\r\n // #ifndef H5\r\n this.scrollViewTop = position.boundingClientRect.top;\r\n // #endif\r\n });\r\n this._scrollViewObserve = scrollViewObserve;\r\n });\r\n });\r\n },\r\n // 断开监听组件\r\n disconnectObserve(observerName) {\r\n const observer = this[observerName];\r\n observer && observer.disconnect();\r\n },\r\n // 查询dom节点信息\r\n queryRect(selector, all) {\r\n return new Promise(resolve => {\r\n uni.createSelectorQuery()\r\n .in(this)\r\n [all ? 'selectAll' : 'select'](selector)\r\n .boundingClientRect(rect => {\r\n if (all && Array.isArray(rect) && rect.length) {\r\n resolve(rect);\r\n }\r\n if (!all && rect) {\r\n resolve(rect);\r\n }\r\n })\r\n .exec();\r\n });\r\n },\r\n // 16进制转RGB\r\n hexToRgb(hex) {\r\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n hex = hex.replace(shorthandRegex, (m, r, g, b) => {\r\n return r + r + g + g + b + b;\r\n });\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n }\r\n : null;\r\n }\r\n },\r\n computed: {\r\n scrollListWrapStyle(){\r\n let style = {};\r\n style.background = this.defaultOption.background;\r\n return style;\r\n },\r\n // 组件容器样式\r\n listWrapStyle() {\r\n let style = {};\r\n const { offsetBottom } = this.defaultOption;\r\n style.height = this.scrollViewHeight - uni.upx2px(offsetBottom) + 'px';\r\n if (this.defaultOption.safeArea) style.paddingBottom = 'env(safe-area-inset-bottom) !important';\r\n return style;\r\n },\r\n // 滚动内容样式\r\n scrollContentStyle() {\r\n const style = {};\r\n const { pullDownHeight, pulldowning, showPullDown } = this;\r\n style.transform = showPullDown ? `translateY(${pullDownHeight}px)` : `translateY(0px)`;\r\n style.transition = pulldowning ? `transform 100ms ease-out` : `transform 200ms cubic-bezier(0.19,1.64,0.42,0.72)`;\r\n return style;\r\n },\r\n // 下拉刷新样式\r\n refreshViewStyle() {\r\n const style = {};\r\n const { showPullDown } = this;\r\n style.opacity = showPullDown ? 1 : 0;\r\n return style;\r\n },\r\n // 下拉中动画样式\r\n pullDownAnimationStyle() {\r\n const style = {};\r\n const { refresherIconColor, refresherThreshold } = this.defaultOption;\r\n const { refreshing, pullDownHeight } = this;\r\n const { r, g, b } = this.hexToRgb(refresherIconColor);\r\n const rate = pullDownHeight / refresherThreshold;\r\n style.borderColor = `rgba(${r},${g},${b},0.2)`;\r\n style.borderTopColor = refresherIconColor;\r\n if (!refreshing) {\r\n style.transform = `rotate(${360 * rate}deg)`;\r\n style.transition = 'transform 100ms linear';\r\n }\r\n return style;\r\n },\r\n pullDownTextStyle() {\r\n const style = {};\r\n const { refresherTextColor } = this.defaultOption;\r\n style.color = refresherTextColor;\r\n return style;\r\n },\r\n // 上拉中动画样式\r\n pullUpAnimationStyle() {\r\n const style = {};\r\n const { loadIconColor } = this.defaultOption;\r\n const { r, g, b } = this.hexToRgb(loadIconColor);\r\n style.borderColor = `rgba(${r},${g},${b},0.2)`;\r\n style.borderTopColor = loadIconColor;\r\n return style;\r\n },\r\n // 上拉中文字样式\r\n pullUpTextStyle() {\r\n const style = {};\r\n const { loadTextColor } = this.defaultOption;\r\n style.color = loadTextColor;\r\n return style;\r\n },\r\n // 空数据提示文字样式\r\n emptyTextStyle() {\r\n const style = {};\r\n const { emptyTextColor } = this.defaultOption;\r\n style.color = emptyTextColor;\r\n return style;\r\n }\r\n },\r\n watch: {\r\n scrollViewTop(val) {\r\n this.updateScrollView();\r\n }\r\n },\r\n created() {\r\n this.elClass = 'scroll-view-' + this._uid;\r\n this.windowInfo = uni.getSystemInfoSync();\r\n },\r\n mounted() {\r\n this.handleInit();\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.scroll-list-wrap {\r\n box-sizing: border-box;\r\n .scroll-view {\r\n position: relative;\r\n .scroll-content {\r\n height: 100%;\r\n display: flex;\r\n will-change: transform;\r\n flex-direction: column;\r\n .pull-down-wrap {\r\n left: 0;\r\n width: 100%;\r\n display: flex;\r\n padding: 30rpx 0;\r\n position: absolute;\r\n align-items: flex-end;\r\n justify-content: center;\r\n transform: translateY(-100%);\r\n .refresh-view {\r\n display: flex;\r\n justify-content: center;\r\n .pull-down-animation {\r\n width: 32rpx;\r\n height: 32rpx;\r\n border-width: 4rpx;\r\n border-style: solid;\r\n border-radius: 50%;\r\n &.refreshing {\r\n animation: spin 0.5s linear infinite;\r\n }\r\n @keyframes spin {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n }\r\n .pull-down-text {\r\n margin-left: 10rpx;\r\n }\r\n }\r\n }\r\n .empty-wrap {\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n position: absolute;\r\n align-items: center;\r\n flex-direction: column;\r\n .empty-view {\r\n margin: auto;\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n .empty-image {\r\n width: 200rpx;\r\n height: 200rpx;\r\n }\r\n .empty-text {\r\n color: #606266;\r\n margin-top: 20rpx;\r\n }\r\n }\r\n }\r\n .list-content {\r\n }\r\n .pull-up-wrap {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n .load-view {\r\n padding: 20rpx 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n .pull-up-animation {\r\n width: 32rpx;\r\n height: 32rpx;\r\n border-width: 4rpx;\r\n border-style: solid;\r\n border-radius: 50%;\r\n animation: spin 0.5s linear infinite;\r\n }\r\n .pull-up-text {\r\n margin-left: 10rpx;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./scroll-list.vue?vue&type=style&index=0&id=3378e1d2&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./scroll-list.vue?vue&type=style&index=0&id=3378e1d2&scoped=true&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1650720810062\n var cssReload = require(\"/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""}
\ No newline at end of file
(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/scroll-list/scroll-list"],{
/***/ 799:
/*!****************************************************************************************!*\
!*** /Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue ***!
\****************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scroll-list.vue?vue&type=template&id=3378e1d2&scoped=true& */ 800);
/* harmony import */ var _scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scroll-list.vue?vue&type=script&lang=js& */ 802);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/* harmony import */ var _scroll_list_vue_vue_type_style_index_0_id_3378e1d2_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scroll-list.vue?vue&type=style&index=0&id=3378e1d2&scoped=true&lang=scss& */ 805);
/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 11);
var renderjs
/* normalize component */
var component = Object(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
_scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
_scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
_scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
"3378e1d2",
null,
false,
_scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"],
renderjs
)
component.options.__file = "common/scroll-list/scroll-list.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ 800:
/*!***********************************************************************************************************************************!*\
!*** /Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?vue&type=template&id=3378e1d2&scoped=true& ***!
\***********************************************************************************************************************************/
/*! exports provided: render, staticRenderFns, recyclableRender, components */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./scroll-list.vue?vue&type=template&id=3378e1d2&scoped=true& */ 801);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_template_id_3378e1d2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; });
/***/ }),
/***/ 801:
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!/Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?vue&type=template&id=3378e1d2&scoped=true& ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns, recyclableRender, components */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
var components
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
var s0 = _vm.__get_style([_vm.scrollListWrapStyle])
var s1 = _vm.__get_style([_vm.listWrapStyle])
var s2 = _vm.__get_style([_vm.scrollContentStyle])
var s3 = !_vm.$slots.pulldown ? _vm.__get_style([_vm.refreshViewStyle]) : null
var s4 = !_vm.$slots.pulldown
? _vm.__get_style([_vm.pullDownAnimationStyle])
: null
var s5 = !_vm.$slots.pulldown
? _vm.__get_style([_vm.pullDownTextStyle])
: null
var s6 =
_vm.showEmpty && !_vm.$slots.empty
? _vm.__get_style([_vm.emptyTextStyle])
: null
var s7 =
_vm.showPullUp && !_vm.$slots.pullup && _vm.loading
? _vm.__get_style([_vm.pullUpAnimationStyle])
: null
var s8 =
_vm.showPullUp && !_vm.$slots.pullup
? _vm.__get_style([_vm.pullUpTextStyle])
: null
_vm.$mp.data = Object.assign(
{},
{
$root: {
s0: s0,
s1: s1,
s2: s2,
s3: s3,
s4: s4,
s5: s5,
s6: s6,
s7: s7,
s8: s8
}
}
)
}
var recyclableRender = false
var staticRenderFns = []
render._withStripped = true
/***/ }),
/***/ 802:
/*!*****************************************************************************************************************!*\
!*** /Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?vue&type=script&lang=js& ***!
\*****************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./scroll-list.vue?vue&type=script&lang=js& */ 803);
/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/* harmony default export */ __webpack_exports__["default"] = (_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
/***/ }),
/***/ 803:
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!/Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?vue&type=script&lang=js& ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
var _images = _interopRequireDefault(__webpack_require__(/*! ./images.js */ 804));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var _default2 = { name: 'scroll-list', props: { // 配置信息
option: { type: Object, default: function _default() {return {};} } }, data: function data() {return { defaultOption: { page: 1, // 分页
size: 15, // 分页大小
auto: true, // 自动加载
height: null, // 组件高度
disabled: false, // 禁用
background: '', // 背景颜色属性
emptyImage: '', // 空数据提示图片
offsetBottom: 0, // 底部高度补偿
pullDownSpeed: 0.5, // 下拉速率
lowerThreshold: 40, // 距离底部上拉加载距离
refresherThreshold: 80, // 距离顶部下拉刷新距离
refreshDelayed: 800, // 刷新延迟
refreshFinishDelayed: 800, // 刷新完成后的延迟
safeArea: false, // 是否开启安全区域适配
emptyTextColor: '#82848a', // 空提示文字颜色
loadTextColor: '#82848a', // 上拉加载文字颜色
loadIconColor: '#82848a', // 上拉加载图标颜色
refresherTextColor: '#82848a', // 下拉刷新文字颜色
refresherIconColor: '#82848a', // 下拉刷新图标颜色
emptyText: '暂无列表~', // 空数据提示文字
loadingText: '正在加载中~', // 加载中文字
loadFailText: '加载失败啦~', // 加载失败文字
noMoreText: '没有更多啦~', // 没有更多文字
refreshingText: '正在刷新~', // 正在刷新文字
refreshFailText: '刷新失败~', // 刷新失败文字
refreshSuccessText: '刷新成功~', // 刷新成功文字
pulldownText: '下拉刷新~', // 下拉中的文字
pulldownFinishText: '松开刷新~' // 下拉完成的文字
}, images: _images.default, // 内置图片
elClass: '', // 组件动态class
windowInfo: {}, // 窗口信息
scrollTop: 0, // 距离顶部滚动高度
scrollViewTop: -1, // 滚动视图顶部位置
scrollViewHeight: 0, // 滚动视图高度
currentPage: 1, // 当前分页页码
currentSize: 15, // 当前分页大小
currentScrollTop: 0, // 当前滚动高度
emptyText: '暂无列表~', loadStateText: '正在加载中~', // 加载状态文字
refreshStateText: '下拉刷新~', // 刷新状态文字
loadDisabled: false, // 是否禁用上拉加载
loading: false, // 是否加载中
refreshing: false, // 是否刷新中
refreshFinish: false, // 是否刷新完成
pulldowning: false, // 是否正在下拉
pullDownHeight: 0, // 下拉高度
showEmpty: false, // 是否显示空数据提示
showPullUp: false, // 是否显示上拉加载
showPullDown: false // 是否显示下拉刷新
};}, methods: { // 组件初始化
handleInit: function handleInit() {var _this = this; // 合并配置
this.defaultOption = Object.assign(this.defaultOption, this.option);this.showEmpty = !this.defaultOption.auto;this.currentPage = this.defaultOption.page;this.currentSize = this.defaultOption.size;this.emptyText = this.defaultOption.emptyText;this.loadStateText = this.defaultOption.loadingText;this.refreshStateText = this.defaultOption.pulldownText; // 计算高度
this.queryRect('.' + this.elClass).then(function (rect) {// 设置组件顶部位置
_this.scrollViewTop = rect.top; // 判断是否自动加载
if (_this.defaultOption.auto) _this.load();});}, // 加载数据
load: function load() {if (this.defaultOption.disabled || this.loading || this.loadDisabled) return; // 开启正在加载
this.loading = true; // 设置正在加载状态文字
this.loadStateText = this.defaultOption.loadingText; // 显示上拉加载
this.showPullUp = true; // 分页参数
var paging = { page: this.currentPage, size: this.currentSize }; // 触发load事件
this.$emit('load', paging);}, // 加载成功
loadSuccess: function loadSuccess() {var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // 解构数据
var list = data.list,total = data.total; // 判断列表是否是数组
if (Array.isArray(list)) {// 判断列表长度
if (list.length) {// 判断列表长度和列表总数是否相同
if (list.length >= total) {// 设置禁用上拉加载
this.loadDisabled = true; // 加载状态文字
this.loadStateText = this.defaultOption.noMoreText;} else {
// 关闭禁用上拉加载
this.loadDisabled = false;
// 设置分页参数
this.currentPage++;
// 加载状态为加载中
this.loadStateText = this.defaultOption.loadingText;
// 加载计算
this.loadCompute();
}
// 显示上拉加载
this.showPullUp = true;
// 隐藏空数据提示
this.showEmpty = false;
} else {
// 设置禁用上拉加载
this.loadDisabled = true;
// 隐藏上拉加载
this.showPullUp = false;
// 隐藏上拉加载
this.showPullUp = false;
// 显示空数据提示
this.showEmpty = true;
}
// 关闭正在加载
this.loading = false;
// 触发加载成功事件
this.$emit('loadSuccess', list);
} else {
// 不是数组类型当作加载失败处理
this.loadFail();
console.error('the list must be a array');
}
},
// 加载失败
loadFail: function loadFail() {
// 关闭正在加载
this.loading = false;
// 关闭空数据提示
this.showEmpty = false;
// 显示上拉加载
this.showPullUp = true;
// 加载状态为加载失败
this.loadStateText = this.defaultOption.loadFailText;
// 触发加载失败事件
this.$emit('loadFail');
},
// 刷新数据
refresh: function refresh() {var _this2 = this;
// 如果是下拉刷新
if (this.pullDownHeight == this.defaultOption.refresherThreshold) {
// 关闭正在加载
this.loading = false;
// 隐藏上拉加载
this.showPullUp = false;
} else {
// 开启正在加载
this.loading = true;
// 隐藏空数据提示
this.showEmpty = false;
// 显示上拉加载
this.showPullUp = true;
// 设置正在刷新状态文字
this.loadStateText = this.defaultOption.refreshingText;
}
// 设置刷新未完成
this.refreshFinish = false;
// 开启正在刷新
this.refreshing = true;
// 设置正在刷新状态文字
this.refreshStateText = this.defaultOption.refreshingText;
// 设置分页参数
this.currentPage = 1;
this.currentSize = this.defaultOption.size;
var paging = { page: this.currentPage, size: this.currentSize };
// 触发refresh事件
setTimeout(function () {
_this2.$emit('refresh', paging);
}, this.defaultOption.refreshDelayed);
},
// 刷新成功
refreshSuccess: function refreshSuccess(data) {var _this3 = this;
// 解构数据
var list = data.list,total = data.total;
// 判断列表是否是数组
if (Array.isArray(list)) {
// 判断列表长度
if (list.length) {
// 判断列表长度和列表总数是否相同
if (list.length >= total) {
// 设置禁用上拉加载
this.loadDisabled = true;
// 设置没有更多状态文字
this.loadStateText = this.defaultOption.noMoreText;
} else {
// 设置分页参数
this.currentPage++;
// 关闭禁用上拉加载
this.loadDisabled = false;
// 设置加载中状态文字
this.loadStateText = this.defaultOption.loadingText;
// 开启自动加载
this.defaultOption.auto = true;
// 加载计算
this.loadCompute();
}
// 关闭空数据提示
this.showEmpty = false;
// 显示上拉加载
this.showPullUp = true;
} else {
// 设置禁用上拉加载
this.loadDisabled = true;
// 隐藏上拉加载
this.showPullUp = false;
// 显示空数据提示
this.showEmpty = true;
// 设置没有更多状态文字
this.loadStateText = this.defaultOption.noMoreText;
}
// 关闭正在加载
this.loading = false;
// 设置刷新成功状态文字
this.refreshStateText = this.defaultOption.refreshSuccessText;
// 关闭正在刷新
this.refreshing = false;
// 关闭正在下拉
this.pulldowning = false;
// 触发刷新成功事件
this.$emit('refreshSuccess', list);
setTimeout(function () {
// 设置刷新完成
_this3.refreshFinish = true;
// 重置下拉高度
_this3.pullDownHeight = 0;
// 隐藏下拉刷新
_this3.showPullDown = false;
_this3.$emit('refreshSuccess');
}, this.defaultOption.refreshFinishDelayed);
} else {
// 不是数组类型当作刷新失败处理
this.refreshFail();
console.error('the list must be a array');
}
},
// 刷新失败
refreshFail: function refreshFail() {var _this4 = this;
// 设置加载失败状态文字
this.loadStateText = this.defaultOption.refreshFailText;
// 设置刷新失败状态文字
this.refreshStateText = this.defaultOption.refreshFailText;
// 关闭正在加载
this.loading = false;
// 显示下拉加载
this.showPullUp = true;
// 关闭正在刷新
this.refreshing = false;
// 关闭正在下拉
this.pulldowning = false;
// 延迟执行刷新完成后状态
setTimeout(function () {
// 设置刷新完成
_this4.refreshFinish = true;
// 重置下拉高度
_this4.pullDownHeight = 0;
// 隐藏下拉刷新
_this4.showPullDown = false;
// 触发刷新失败事件
_this4.$emit('refreshError');
}, this.defaultOption.refreshFinishDelayed);
},
// 加载计算
loadCompute: function loadCompute() {var _this5 = this;
// 判断是否自动加载
if (this.defaultOption.auto) {
// 延迟执行下否者可能会高度计算错误
setTimeout(function () {
_this5.$nextTick(function () {
_this5.queryRect('.list-content').then(function (rect) {
if (rect.height <= _this5.scrollViewHeight) {
_this5.load();
}
});
});
}, 100);
}
},
// 上拉触底事件
handleScrolltolower: function handleScrolltolower(e) {
if (this.loadDisabled) return;
this.$emit('scrolltolower', e);
this.load();
},
// 滚动事件
handleScroll: function handleScroll(event) {
this.currentScrollTop = event.detail.scrollTop;
this.$emit('scroll', event.detail);
},
// 触摸按下处理
handleTouchStart: function handleTouchStart(event) {
if (this.defaultOption.disabled) return;
this.currentTouchStartY = event.touches[0].clientY;
this.$emit('touchStart', event);
},
// 触摸按下滑动处理
handleTouchMove: function handleTouchMove(event) {
if (this.defaultOption.disabled || this.currentScrollTop) return;
if (event.touches[0].clientY >= this.currentTouchStartY) {
this.pulldowning = true;
this.showPullDown = true;
var pullDownDistance = (event.touches[0].clientY - this.currentTouchStartY) * this.defaultOption.pullDownSpeed;
this.pullDownHeight = pullDownDistance > this.defaultOption.refresherThreshold ? this.defaultOption.refresherThreshold : pullDownDistance;
this.refreshStateText =
this.pullDownHeight >= this.defaultOption.refresherThreshold ? this.defaultOption.pulldownFinishText : this.defaultOption.pulldownText;
this.$emit('touchMove', event);
}
},
// 触摸松开处理
handleTouchEnd: function handleTouchEnd(event) {
if (this.defaultOption.disabled) return;
// 当下拉高度小于下拉阈值
if (this.pullDownHeight < this.defaultOption.refresherThreshold) {
// 关闭正在下拉
this.pulldowning = false;
// 重置下拉高度
this.pullDownHeight = 0;
// 隐藏下拉刷新
this.showPullDown = false;
// 触发下拉中断事件
this.$emit('refreshStop');
} else {
this.refresh();
}
// 触发下拉触摸松开事件
this.$emit('touchEnd', event);
},
// 更新组件
updateScrollView: function updateScrollView() {
if (this.defaultOption.height) {
this.scrollViewHeight = uni.upx2px(this.defaultOption.height);
} else {
this.scrollViewHeight = this.windowInfo.windowHeight - this.scrollViewTop;
}
this.scrollViewObserve();
},
// 监听列表高度变化
listContentObserve: function listContentObserve() {
this.disconnectObserve('_listContentObserve');
var listContentObserve = this.createIntersectionObserver({
thresholds: [0, 0.5, 1] });
listContentObserve.relativeToViewport({
top: -rect.top });
},
// 监听组件位置变化
scrollViewObserve: function scrollViewObserve() {var _this6 = this;
this.disconnectObserve('_scrollViewObserve');
this.$nextTick(function () {
_this6.queryRect('.' + _this6.elClass).then(function (rect) {
var scrollViewObserve = _this6.createIntersectionObserver({
thresholds: [0, 0.5, 1] });
scrollViewObserve.relativeToViewport({
top: -rect.top });
scrollViewObserve.observe('.' + _this6.elClass, function (position) {
_this6.scrollViewTop = position.boundingClientRect.top;
});
_this6._scrollViewObserve = scrollViewObserve;
});
});
},
// 断开监听组件
disconnectObserve: function disconnectObserve(observerName) {
var observer = this[observerName];
observer && observer.disconnect();
},
// 查询dom节点信息
queryRect: function queryRect(selector, all) {var _this7 = this;
return new Promise(function (resolve) {
uni.createSelectorQuery().
in(_this7)[
all ? 'selectAll' : 'select'](selector).
boundingClientRect(function (rect) {
if (all && Array.isArray(rect) && rect.length) {
resolve(rect);
}
if (!all && rect) {
resolve(rect);
}
}).
exec();
});
},
// 16进制转RGB
hexToRgb: function hexToRgb(hex) {
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, function (m, r, g, b) {
return r + r + g + g + b + b;
});
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ?
{
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16) } :
null;
} },
computed: {
scrollListWrapStyle: function scrollListWrapStyle() {
var style = {};
style.background = this.defaultOption.background;
return style;
},
// 组件容器样式
listWrapStyle: function listWrapStyle() {
var style = {};var
offsetBottom = this.defaultOption.offsetBottom;
style.height = this.scrollViewHeight - uni.upx2px(offsetBottom) + 'px';
if (this.defaultOption.safeArea) style.paddingBottom = 'env(safe-area-inset-bottom) !important';
return style;
},
// 滚动内容样式
scrollContentStyle: function scrollContentStyle() {
var style = {};var
pullDownHeight = this.pullDownHeight,pulldowning = this.pulldowning,showPullDown = this.showPullDown;
style.transform = showPullDown ? "translateY(".concat(pullDownHeight, "px)") : "translateY(0px)";
style.transition = pulldowning ? "transform 100ms ease-out" : "transform 200ms cubic-bezier(0.19,1.64,0.42,0.72)";
return style;
},
// 下拉刷新样式
refreshViewStyle: function refreshViewStyle() {
var style = {};var
showPullDown = this.showPullDown;
style.opacity = showPullDown ? 1 : 0;
return style;
},
// 下拉中动画样式
pullDownAnimationStyle: function pullDownAnimationStyle() {
var style = {};var _this$defaultOption =
this.defaultOption,refresherIconColor = _this$defaultOption.refresherIconColor,refresherThreshold = _this$defaultOption.refresherThreshold;var
refreshing = this.refreshing,pullDownHeight = this.pullDownHeight;var _this$hexToRgb =
this.hexToRgb(refresherIconColor),r = _this$hexToRgb.r,g = _this$hexToRgb.g,b = _this$hexToRgb.b;
var rate = pullDownHeight / refresherThreshold;
style.borderColor = "rgba(".concat(r, ",").concat(g, ",").concat(b, ",0.2)");
style.borderTopColor = refresherIconColor;
if (!refreshing) {
style.transform = "rotate(".concat(360 * rate, "deg)");
style.transition = 'transform 100ms linear';
}
return style;
},
pullDownTextStyle: function pullDownTextStyle() {
var style = {};var
refresherTextColor = this.defaultOption.refresherTextColor;
style.color = refresherTextColor;
return style;
},
// 上拉中动画样式
pullUpAnimationStyle: function pullUpAnimationStyle() {
var style = {};var
loadIconColor = this.defaultOption.loadIconColor;var _this$hexToRgb2 =
this.hexToRgb(loadIconColor),r = _this$hexToRgb2.r,g = _this$hexToRgb2.g,b = _this$hexToRgb2.b;
style.borderColor = "rgba(".concat(r, ",").concat(g, ",").concat(b, ",0.2)");
style.borderTopColor = loadIconColor;
return style;
},
// 上拉中文字样式
pullUpTextStyle: function pullUpTextStyle() {
var style = {};var
loadTextColor = this.defaultOption.loadTextColor;
style.color = loadTextColor;
return style;
},
// 空数据提示文字样式
emptyTextStyle: function emptyTextStyle() {
var style = {};var
emptyTextColor = this.defaultOption.emptyTextColor;
style.color = emptyTextColor;
return style;
} },
watch: {
scrollViewTop: function scrollViewTop(val) {
this.updateScrollView();
} },
created: function created() {
this.elClass = 'scroll-view-' + this._uid;
this.windowInfo = uni.getSystemInfoSync();
},
mounted: function mounted() {
this.handleInit();
} };exports.default = _default2;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
/***/ }),
/***/ 805:
/*!**************************************************************************************************************************************************!*\
!*** /Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?vue&type=style&index=0&id=3378e1d2&scoped=true&lang=scss& ***!
\**************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_style_index_0_id_3378e1d2_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--8-oneOf-1-3!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./scroll-list.vue?vue&type=style&index=0&id=3378e1d2&scoped=true&lang=scss& */ 806);
/* harmony import */ var _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_style_index_0_id_3378e1d2_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_style_index_0_id_3378e1d2_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_style_index_0_id_3378e1d2_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_style_index_0_id_3378e1d2_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/* harmony default export */ __webpack_exports__["default"] = (_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_Applications_HBuilderX_app_Contents_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_scroll_list_vue_vue_type_style_index_0_id_3378e1d2_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
/***/ }),
/***/ 806:
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!/Users/chengxinzhi/Desktop/move-car/jd-vx-app/common/scroll-list/scroll-list.vue?vue&type=style&index=0&id=3378e1d2&scoped=true&lang=scss& ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
if(false) { var cssReload; }
/***/ })
}]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/common/scroll-list/scroll-list.js.map
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
'common/scroll-list/scroll-list-create-component',
{
'common/scroll-list/scroll-list-create-component':(function(module, exports, __webpack_require__){
__webpack_require__('1')['createComponent'](__webpack_require__(799))
})
},
[['common/scroll-list/scroll-list-create-component']]
]);
{
"usingComponents": {},
"component": true
}
\ No newline at end of file
<view class="scroll-list-wrap data-v-3378e1d2" style="{{$root.s0}}"><scroll-view class="{{['scroll-view','data-v-3378e1d2',elClass]}}" style="{{$root.s1}}" scroll-y="{{true}}" scroll-anchoring="{{true}}" enable-back-to-top="{{true}}" scroll-top="{{scrollTop}}" lower-threshold="{{defaultOption.lowerThreshold}}" data-event-opts="{{[['scroll',[['handleScroll',['$event']]]],['touchend',[['handleTouchEnd',['$event']]]],['touchmove',[['handleTouchMove',['$event']]]],['touchstart',[['handleTouchStart',['$event']]]],['scrolltolower',[['handleScrolltolower',['$event']]]]]}}" bindscroll="__e" bindtouchend="__e" catchtouchmove="__e" bindtouchstart="__e" bindscrolltolower="__e"><view class="scroll-content data-v-3378e1d2" style="{{$root.s2}}"><view class="pull-down-wrap data-v-3378e1d2"><block wx:if="{{$slots.pulldown}}"><slot name="pulldown"></slot></block><block wx:else><view class="refresh-view data-v-3378e1d2" style="{{$root.s3}}"><view class="{{['pull-down-animation','data-v-3378e1d2',(refreshing)?'refreshing':'']}}" style="{{$root.s4}}"></view><text class="pull-down-text data-v-3378e1d2" style="{{$root.s5}}">{{refreshStateText}}</text></view></block></view><block wx:if="{{showEmpty}}"><view class="empty-wrap data-v-3378e1d2"><block wx:if="{{$slots.empty}}"><slot name="empty"></slot></block><block wx:else><view class="empty-view data-v-3378e1d2"><image class="empty-image data-v-3378e1d2" src="{{defaultOption.emptyImage||images.empty}}" mode="aspectFit"></image><text class="empty-text data-v-3378e1d2" style="{{$root.s6}}">{{emptyText}}</text></view></block></view></block><view class="list-content data-v-3378e1d2"><slot></slot></view><block wx:if="{{showPullUp}}"><view class="pull-up-wrap data-v-3378e1d2"><block wx:if="{{$slots.pullup}}"><slot name="pullup"></slot></block><block wx:else><view class="load-view data-v-3378e1d2"><block wx:if="{{loading}}"><view class="pull-up-animation data-v-3378e1d2" style="{{$root.s7}}"></view></block><text class="pull-up-text data-v-3378e1d2" style="{{$root.s8}}">{{loadStateText}}</text></view></block></view></block></view></scroll-view></view>
\ No newline at end of file
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.scroll-list-wrap.data-v-3378e1d2 {
box-sizing: border-box;
}
.scroll-list-wrap .scroll-view.data-v-3378e1d2 {
position: relative;
}
.scroll-list-wrap .scroll-view .scroll-content.data-v-3378e1d2 {
height: 100%;
display: flex;
will-change: transform;
flex-direction: column;
}
.scroll-list-wrap .scroll-view .scroll-content .pull-down-wrap.data-v-3378e1d2 {
left: 0;
width: 100%;
display: flex;
padding: 30rpx 0;
position: absolute;
align-items: flex-end;
justify-content: center;
-webkit-transform: translateY(-100%);
transform: translateY(-100%);
}
.scroll-list-wrap .scroll-view .scroll-content .pull-down-wrap .refresh-view.data-v-3378e1d2 {
display: flex;
justify-content: center;
}
.scroll-list-wrap .scroll-view .scroll-content .pull-down-wrap .refresh-view .pull-down-animation.data-v-3378e1d2 {
width: 32rpx;
height: 32rpx;
border-width: 4rpx;
border-style: solid;
border-radius: 50%;
}
.scroll-list-wrap .scroll-view .scroll-content .pull-down-wrap .refresh-view .pull-down-animation.refreshing.data-v-3378e1d2 {
-webkit-animation: spin-data-v-3378e1d2 0.5s linear infinite;
animation: spin-data-v-3378e1d2 0.5s linear infinite;
}
@-webkit-keyframes spin-data-v-3378e1d2 {
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin-data-v-3378e1d2 {
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
.scroll-list-wrap .scroll-view .scroll-content .pull-down-wrap .refresh-view .pull-down-text.data-v-3378e1d2 {
margin-left: 10rpx;
}
.scroll-list-wrap .scroll-view .scroll-content .empty-wrap.data-v-3378e1d2 {
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
position: absolute;
align-items: center;
flex-direction: column;
}
.scroll-list-wrap .scroll-view .scroll-content .empty-wrap .empty-view.data-v-3378e1d2 {
margin: auto;
display: flex;
align-items: center;
flex-direction: column;
}
.scroll-list-wrap .scroll-view .scroll-content .empty-wrap .empty-view .empty-image.data-v-3378e1d2 {
width: 200rpx;
height: 200rpx;
}
.scroll-list-wrap .scroll-view .scroll-content .empty-wrap .empty-view .empty-text.data-v-3378e1d2 {
color: #606266;
margin-top: 20rpx;
}
.scroll-list-wrap .scroll-view .scroll-content .pull-up-wrap.data-v-3378e1d2 {
display: flex;
align-items: center;
justify-content: center;
}
.scroll-list-wrap .scroll-view .scroll-content .pull-up-wrap .load-view.data-v-3378e1d2 {
padding: 20rpx 0;
display: flex;
align-items: center;
justify-content: center;
}
.scroll-list-wrap .scroll-view .scroll-content .pull-up-wrap .load-view .pull-up-animation.data-v-3378e1d2 {
width: 32rpx;
height: 32rpx;
border-width: 4rpx;
border-style: solid;
border-radius: 50%;
-webkit-animation: spin-data-v-3378e1d2 0.5s linear infinite;
animation: spin-data-v-3378e1d2 0.5s linear infinite;
}
.scroll-list-wrap .scroll-view .scroll-content .pull-up-wrap .load-view .pull-up-text.data-v-3378e1d2 {
margin-left: 10rpx;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment