lxui-uni 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,6 @@
1
+ # lxui-uni
2
+
3
+ ### npm安装
4
+ ```sh
5
+ npm install lxui-uni -S
6
+ ```
@@ -0,0 +1,250 @@
1
+ <script lang="ts" setup>
2
+ /*
3
+ * @description: 头部组件
4
+ * @fileName: Header.vue
5
+ * @params
6
+ * @author: lxx
7
+ * @date: 2023-07-16 09:32:09
8
+ * @version: V1.0.2
9
+ */
10
+ import { goToPage } from '../../util'
11
+ import { type CSSProperties, computed, onMounted, ref, watchEffect } from 'vue'
12
+
13
+ type headerInt = {
14
+ // 头部高度 默认为44px (微信小程序不可用)
15
+ headerHeight?: number
16
+ // 是否显示左侧内容
17
+ leftIconShow?: boolean
18
+ // 样式部分
19
+ backgroundColor?: string
20
+ backgroundColor2?: string
21
+ textColor?: string
22
+ textFontSize?: number
23
+ title: string
24
+ // 是否需要生成和头部高度相同的盒子
25
+ isShowHeaderBox?: boolean
26
+ positionState?: string
27
+ isShowShadow?: boolean
28
+ isBlackIcon?: boolean
29
+ // 头部没有右侧盒子,true:左中右结构 false:左中结构(小程序可以为左中右结构但是没有右侧盒子)
30
+ isHaveRightBox?: boolean
31
+ }
32
+
33
+ const props = withDefaults(defineProps<headerInt>(), {
34
+ // 头部高度 默认为44px (微信小程序不可用)
35
+ headerHeight: 44,
36
+ // 是否显示左侧内容
37
+ leftIconShow: true,
38
+ // 样式部分
39
+ backgroundColor: 'linear-gradient(90deg, rgba(10, 207, 254, 1) 0%, rgba(74, 92, 255, 1) 100%)', //linear-gradient(90deg, rgba(10, 207, 254, 1) 0%, rgba(74, 92, 255, 1) 100%)
40
+ backgroundColor2: '#ffffff',
41
+ textColor: '#000',
42
+ textFontSize: 34,
43
+ title: '标题',
44
+ // 是否需要生成和头部高度相同的盒子
45
+ isShowHeaderBox: true,
46
+ positionState: 'fixed',
47
+ isShowShadow: false,
48
+ isBlackIcon: true, // 是否为黑色图标
49
+ isHaveRightBox: true
50
+ })
51
+
52
+ let { statusBarHeight } = uni.getSystemInfoSync()
53
+ // #ifdef MP-WEIXIN
54
+ // 胶囊状态
55
+ let menuButton = uni.getMenuButtonBoundingClientRect()
56
+ // 微信头部宽度
57
+ let wxHeaderWidth = menuButton.left - 10
58
+ // 上边距
59
+ statusBarHeight = menuButton.top
60
+ // #endif
61
+
62
+ // padding的高度(防止头部塌陷)
63
+ const fillBoxHeight = ref(statusBarHeight + 3)
64
+
65
+ // 设置header的高度
66
+ const headerHeightRef = ref(0)
67
+ watchEffect(() => {
68
+ headerHeightRef.value = props.headerHeight
69
+ // #ifdef MP-WEIXIN
70
+ // 中间高度
71
+ headerHeightRef.value = menuButton.height
72
+ // #endif
73
+ })
74
+ // console.log('statusBarHeight', statusBarHeight)
75
+
76
+ const style = computed(() => {
77
+ return {
78
+ boxShadow: props.isShowShadow ? '0 0 8rpx -3rpx #333' : '0 0 0 0 #333',
79
+ background: props.backgroundColor,
80
+ color: props.textColor,
81
+ position: props.positionState
82
+ } as CSSProperties
83
+ })
84
+ // 返回上一页(如没有页面返回首页)
85
+ const goBack = () => {
86
+ if (getCurrentPages().length <= 1) {
87
+ goToPage({
88
+ url: 'pages/index/index',
89
+ mode: 'redirectTo'
90
+ })
91
+ } else {
92
+ uni.navigateBack()
93
+ }
94
+ }
95
+
96
+ const backIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACMklEQVR4nO2av0uVURjHPyiEYgkuoVC4ODSK2pRDYFOENOQP6A+IEgknkWgKgqTEP6AaHIKyhqhGiSgVpKwGBweLBMHZcjAK47xcXrxxn6el5/pwzvnAme5wv5/ve+/hPO/7kslkMplMxjsjwCdgB7iV2tW6Aez/tW46yFUXpmvIh/U6AXfuCvJhnXOQz5R7ivz1iL0LZhX5Sw7ymTIviG8DpyP2pg14Kch/BjodZDSjHdgQ5D8CrZF6F3QD3wT5VeCog4xm9ADfBfn3scv3KvJhL2hxkNGMsJv/EOQfRepcchbYFeQnnWQ046JywLkSqXPJlCJ/2UlGM7Rz/WikziX3BfFfwLCTjGY8FuR/Av2ROpdIQ004159yktGMZ4L8Yuzn+mZgQZB/BTQ6yGhGOLevCPIvInUu6QK+CPLPnWQ05Z0gPxuxcxXSIWfAUUZT5oQCfgPXIvau4onyS5hwlNOUB0oJcxF7V6ENPuFofMRRVjNuKyW8SaWEIaWEt0CTg4zmDCq3v5ZSKUG7AboMdDjIaE6fUsJX4ETk/gU9lddbapWwncLzfiqPwTaVzfGCg4zmdCiTYxJ3iPnHo/CwrjrIWBeeKiWMJeBfoM0P4w7y1YUZpYQ7CfgXaEPUtIN8dUF6KXK/cqu9IYEOincApRIWU5kfxpUS1oDjDjKacx7YE0rYSGWI6lXmh4f/60s8bywfKkPUVo3Pjh1CnkPjJLB+4OqHv8aZlArIZDKZTMYC4A8EQ0uQY7/3uAAAAABJRU5ErkJggg=='
97
+ const backIconW = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACjElEQVR4nO2azatNURiH364S+SgTuUUmBoa6GDEwuCNJBr7KHyAkGUkyUsoN3T8AA0r5GugyUZK4lHwODAwQpYwvBqQeve4+deK8a5+zz9q3d6+9nnonp7PXWb/n7L1aH1symUwmk8lUBpiL2gO8BmaAU/p7bpiD8Cf4n5NtETDRI7zywEH0WWoMf9YIr4x7yP6XmsKfC4Q/kvoYMBkIv7PzPTdEDn/DCP4V2Nj93dQELAPuGOHfAKv/vcYNEcKvAN4b4V8BS3tdl4qAdcAnI/xLYLF1rRuGCD8GfDPCPw+FT0HA+kB4HQsWlbXhhgrhdTT/boS/2m87TRWwBfhhhD82SFtuGKDTO4zgyv5B76SmCTgeCL+vyjjihj46G5rX7604iDZGwAUj+G9gd9XwTRFwzQj/C9g8TPgmCLAWNTqvXztseO8Cbhnhp615fSoCFgL3jfB3gXmxwnsUoPP2Z0b4qZjBPQpYA3wwwt+uI7w3AY+N8JN1hY8pYCRCG5uMz6citF07MQRcMT6/JyIHHWWth+KWvG48BsrR1MeATl0MSLjcBgFSsvDRqfH81AVonQ5IeBhLghuMDu4KSHgELEhdgNb2wPbXk2EluKGko6EN0KfAaOoCtDYEJHwEVqYuQIpDkBlDgh58jqcuQIpjsM+BwXFb6gKkeOatlSOD7BC7ocLzGzoKVw6kLqBTNwMSDrVBgJSsHw63QYDW+YCEM20QICWLqIk2CJDAS5EUW+0jqQuQ4h1Ai+nu9YMbIguQYvCzeAssT12A1lbgpyFB3ygbdRB9lpoESPEekbV+uBSr/zF2hevihYiMiciXHu0vcdPLGu+ATq0C3nX9+/poWGcRmUwmk8lk+kRE/gCfWLdyj0KPNgAAAABJRU5ErkJggg=='
98
+ </script>
99
+
100
+ <template>
101
+ <!-- #ifndef MP-TOUTIAO -->
102
+ <view class="header_box">
103
+ <view class="header_main" :style="style">
104
+ <view class="status_bar" :style="{ height: statusBarHeight + 'px' }"></view>
105
+ <!-- 标准的左中右结构 -->
106
+ <view v-if="isHaveRightBox" class="header flex-center-between" :style="{ height: headerHeightRef + 'px' }">
107
+ <view class="header_left flex-center-between">
108
+ <slot name="left" v-if="leftIconShow">
109
+ <view class="icon flex" @click="goBack">
110
+ <image
111
+ :src="isBlackIcon ? backIcon : backIconW"
112
+ mode="widthFix"></image>
113
+ </view>
114
+ </slot>
115
+ </view>
116
+ <view class="header_center">
117
+ <slot name="center">
118
+ <view class="title" :style="{ fontSize: textFontSize + 'rpx' }">
119
+ {{ title }}
120
+ </view>
121
+ </slot>
122
+ </view>
123
+ <view class="header_right flex">
124
+ <!-- #ifndef MP-WEIXIN -->
125
+ <slot name="right"></slot>
126
+ <!-- #endif -->
127
+ </view>
128
+ </view>
129
+ <!-- 左右结构 -->
130
+ <view v-else class="wx_header flex"
131
+ :style="{ height: headerHeightRef + 'px', width: wxHeaderWidth + 'px' }">
132
+ <view class="wx_header_left flex">
133
+ <slot name="left">
134
+ <view class="icon flex" @click="goBack" v-if="leftIconShow">
135
+ <image
136
+ :src="isBlackIcon ? backIcon : backIconW"
137
+ mode="widthFix"></image>
138
+ </view>
139
+ </slot>
140
+ </view>
141
+ <view class="wx_header_txt flex">
142
+ <slot name="center">
143
+ <view class="title" :style="{ fontSize: textFontSize + 'rpx' }">
144
+ {{ title }}
145
+ </view>
146
+ </slot>
147
+ </view>
148
+ </view>
149
+ </view>
150
+ <!-- 填充头部防止塌陷 新加(v-if="isShowHeaderBox") -->
151
+ <view class="status_bar" v-if="isShowHeaderBox" :style="{ height: fillBoxHeight + 'px' }"></view>
152
+ <!-- #ifdef MP-WEIXIN -->
153
+ <view v-if="isShowHeaderBox" :style="{ height: headerHeightRef + 4 + 'px', background: backgroundColor2 }">
154
+ </view>
155
+ <!-- #endif -->
156
+ <!-- 待测试 -->
157
+ <!-- #ifndef MP-WEIXIN -->
158
+ <view v-if="isShowHeaderBox" :style="{ height: headerHeightRef + 'px', background: backgroundColor2 }"></view>
159
+ <!-- #endif -->
160
+ </view>
161
+ <!-- #endif -->
162
+ </template>
163
+
164
+ <style lang="scss" scoped>
165
+ .header_box {
166
+ // padding: 0 20rpx 5rpx;
167
+ // background-color: #fff;
168
+ }
169
+
170
+ .header_main {
171
+ width: 100%;
172
+ z-index: 9999;
173
+ top: 0;
174
+ left: 0;
175
+ /* #ifdef MP-WEIXIN */
176
+ padding: 0 20rpx 15rpx;
177
+ /* #endif */
178
+ /* #ifndef MP-WEIXIN */
179
+ padding: 5rpx 20rpx;
180
+ /* #endif */
181
+ box-sizing: border-box;
182
+ .img {
183
+ width: 48rpx;
184
+ height: 48rpx;
185
+ }
186
+ .header {
187
+ // padding: 0 16rpx;
188
+ box-sizing: border-box;
189
+
190
+ .header_left {
191
+ width: 20%;
192
+
193
+ .icon {
194
+ width: 48rpx;
195
+ }
196
+
197
+ .left_txt {
198
+ font-size: 22rpx;
199
+ line-height: 22rpx;
200
+ }
201
+ }
202
+
203
+ .header_center {
204
+ width: 60%;
205
+ text-align: center;
206
+ font-size: 28rpx;
207
+
208
+ .title {
209
+ overflow: hidden;
210
+ text-overflow: ellipsis;
211
+ white-space: nowrap;
212
+ }
213
+ }
214
+
215
+ .header_right {
216
+ width: 20%;
217
+ }
218
+ }
219
+
220
+ .wx_header {
221
+ .wx_header_left {
222
+ height: 100%;
223
+
224
+ .icon {
225
+ width: 48rpx;
226
+
227
+ image {
228
+ vertical-align: middle;
229
+ width: 100%;
230
+ }
231
+ }
232
+ }
233
+
234
+ .wx_header_txt {
235
+ flex: 1;
236
+ height: 100%;
237
+ padding-left: 26rpx;
238
+
239
+ .title {
240
+ width: 100%;
241
+ line-height: 1;
242
+ overflow: hidden;
243
+ text-overflow: ellipsis;
244
+ white-space: nowrap;
245
+ font-size: 28rpx;
246
+ }
247
+ }
248
+ }
249
+ }
250
+ </style>
@@ -1,4 +1,9 @@
1
1
  <script setup lang="ts">
2
+ /**
3
+ * @description:
4
+ * @param {*} msg 显示字符串
5
+ * @return {*}
6
+ */
2
7
  defineProps<{
3
8
  msg: string
4
9
  }>()
@@ -0,0 +1,3 @@
1
+ export const defauIcon = 'data:image/png;base64,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'
2
+
3
+ export const nomoreIcon = 'data:image/png;base64,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VW50RiNSbHQAAAAAAAAAAAAAAABTY2wgVW50RiNQcmNAWQAAAAAAAAAAABBjcm9wV2hlblByaW50aW5nYm9vbAAAAAAOY3JvcFJlY3RCb3R0b21sb25nAAAAAAAAAAxjcm9wUmVjdExlZnRsb25nAAAAAAAAAA1jcm9wUmVjdFJpZ2h0bG9uZwAAAAAAAAALY3JvcFJlY3RUb3Bsb25nAAAAAAA4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAABaOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAABOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgAMOEJJTQQCAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4QklNBDAAAAAAAA0BAQEBAQEBAQEBAQEBADhCSU0ELQAAAAAAAgAAOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAAz8AAAAGAAAAAAAAAAAAAAFMAAAB/gAAAAVnKmgHmJgALQAxAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAH+AAABTAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAABTAAAAABSZ2h0bG9uZwAAAf4AAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAA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UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIzLTEyLTE1VDEwOjIzOjE2KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzLTEyLTE1VDEwOjIzOjE2KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMy0xMi0xNVQxMDoyMzoxNiswODowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmMjMyYjc3Mi1hMTBmLTQ2NGUtYjJjNy1jY2Q1M2U0MzI4YTMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo5M2U0N2I5ZC03ZjAwLThjNDQtOGJmNi0zYWNkNjM3NjNhMWUiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4NDlhNzQ1Zi1hYzRmLWU5NDgtODM4YS1iNDhmODk4ZTE5YzkiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODQ5YTc0NWYtYWM0Zi1lOTQ4LTgzOGEtYjQ4Zjg5OGUxOWM5IiBzdEV2dDp3aGVuPSIyMDIzLTEyLTE1VDEwOjIzOjE2KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmMjMyYjc3Mi1hMTBmLTQ2NGUtYjJjNy1jY2Q1M2U0MzI4YTMiIHN0RXZ0OndoZW49IjIwMjMtMTItMTVUMTA6MjM6MTYrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDxwaG90b3Nob3A6VGV4dExheWVycz4gPHJkZjpCYWc+IDxyZGY6bGkgcGhvdG9zaG9wOkxheWVyTmFtZT0i5Yqg6L295aSx6LSlIiBwaG90b3Nob3A6TGF5ZXJUZXh0PSLliqDovb3lpLHotKUiLz4gPC9yZGY6QmFnPiA8L3Bob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+4ADkFkb2JlAGRAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQEBAQEBAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgBTAH+AwERAAIRAQMRAf/dAAQAQP/EAaIAAAAGAgMBAAAAAAAAAAAAAAcIBgUECQMKAgEACwEAAAYDAQEBAAAAAAAAAAAABgUEAwcCCAEJAAoLEAACAQMEAQMDAgMDAwIGCXUBAgMEEQUSBiEHEyIACDEUQTIjFQlRQhZhJDMXUnGBGGKRJUOhsfAmNHIKGcHRNSfhUzaC8ZKiRFRzRUY3R2MoVVZXGrLC0uLyZIN0k4Rlo7PD0+MpOGbzdSo5OkhJSlhZWmdoaWp2d3h5eoWGh4iJipSVlpeYmZqkpaanqKmqtLW2t7i5usTFxsfIycrU1dbX2Nna5OXm5+jp6vT19vf4+foRAAIBAwIEBAMFBAQEBgYFbQECAxEEIRIFMQYAIhNBUQcyYRRxCEKBI5EVUqFiFjMJsSTB0UNy8BfhgjQlklMYY0TxorImNRlUNkVkJwpzg5NGdMLS4vJVZXVWN4SFo7PD0+PzKRqUpLTE1OT0laW1xdXl9ShHV2Y4doaWprbG1ub2Z3eHl6e3x9fn90hYaHiImKi4yNjo+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//Q3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//R3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//S3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3SRXNfxLd8uCo31U+3selfmpENwMhk9UWJxz/j00az1Dj8HxEfn37r3Su9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/T3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690ld6bppNm7cyOeqtLtTReOjpybGsr5gUpKZbeqzycuRcrGrN+PfuvdIrpWgq12nLuHJu02W3dlK3O1k8g/ceN5DT0wNuBEVhaVAOFWWwsOB7r3Qv+/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuv/9Tf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3RKO4N01G+964/Z+Gl8lBjsjFiqfQS0VZm6udKWpqTp4eKmdvCh5tpdgbP7917o5WNoIMXj6HGUq6abH0dNRU62AtDSwpBGDbi+hB7917qb7917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de6/9Xf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690FPb2+Bsva032kujN5kS0GKCtaSC6D7vID8gUUTjSf8Ajq6fi/v3XuiS7O3HHtXcuN3DNjxlv4dJLMtI9SaYSSyQSwpKZ/DUEPC0utfSfUB7917o22H+Q2ya/SmUgyuDlNtTzUwrqRSf9TNQtLUsB/jAvv3XuhWw+8Nrbg0jDZ/FV8jfSnhrIhVi/wBNVHIyVSX/AMUHv3XulJ7917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuv//W3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdI3dewNrb0ETZ/HGoqKeIw01ZDUVFNU08bMXKxvDIsbLqYmzq63/Hv3XugGz3xrHrl2zuEj6lKPNw3/AMQDkKFAf8P+A/8AsffuvdF23TtTM7Nyn8IzkUEVWYEqk+3qoaqOSnleSOOUNExaPW0TWWQI9he1iCfde6HnoDr/AO7qDvjKwXpqSSSDARSL6Zqxbx1GR0sLNHScxxHn93UeDGPfuvdG79+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/9ff49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691Br8njcXEZ8lkKLHwD6y1tVBSx/n+3O6KTx7917oL813j17iNSRZOfMTqD+1iKV51JsbD7qc01GQSP7MjW9+690msN8itrZDIpR5HG5DC0srhIsjNJFVQozEBTVxwKJKeM/ll8gH5sLke690PlNU01ZBFVUlRDVU06CSCop5Umgmjb6PFLGzI6H+oJHv3Xus/v3Xuve/de697917rhJIkUbyyusccaNJJI5CoiICzuzHhVVRcn8D37r3RCIaCv7j7OrpITLHQ1la9RUVOn/i37foilPAbMCqztSoiILWaZ7ni59+690e7H0FJiqGkxtBAlNRUNPFS0sEY9MUMKBEXm5Y2HJNyTyeT7917qZ7917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuv/9Df49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdYKiqpqSJp6uogpYU5aaoljhiXi/qkkZUHA/J9+690G2Z7j69wutZM9FkJ0uPBiIpMgzEC9lniAo7n6cygX9+690E2Z+SsY1Jt/bbPywSpzFUEHB9JNFRhibj6jzi3v3XugkzXdfYOX1Bs5/CYDf9nEQx0IAJ/FT+5Wi3/LX37r3SJgx+5tzT+WGkzOanbg1Ei1NRe5/NXUnx2JP1L29+690tMd1Fuir0tXy47EIbEiec1lQo/oYKS6q3+Bce/de6XmO6e2/T6Wydfkso45MaGPH05P8ArQ+Sdl/13Fx7917oWtsRUu0wlPhYPs6EyBpqNJqiSCS5GtzHNLIqzMP7YAYn6kjj37r3Q4e/de697917r3v3Xugk7q3E+C2TV0lIWOS3HKmCoo4gWmZKsH75kRfW16NWjFuQ8q+/de6ldT7CTY+3I0qY0/juVEVXmJRYtE2kmnx6sL3joUcg2JDSs5HBFvde6FH37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691//9Hf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdIPcvZ2w9omSPO7mxtPVREq+PglNfklcX9D0FCtRVQkkWu6qt/qR7917oHst8lsSqH+723q2t1AGOpyk8VDEQfo4p6f7uVlZeQCyH+oHv3XugnzXe/YGU1iCvpMJTkn9vF0kaOF5sDVVZqqgGx+qst/wCnv3Xug6eTc+6qnW5zm4KljcO5rcgQT/zdkMkcf+tcW9+690q8d1Tu6t0vUw0eIiYX1V9SGnH/AFS0omk+n9SP9h7917peY7prEw2bLZetrm4LQ0UUdDBx9f3XM1QQfz+n37r3QhYfYu3aBl/hW3IJpha08sEmRqCR9CZqnzBWH+FvfuvdCHTbZy86qGjipIgLBZXChR/RYYQwUG/+Hv3Xunym2fTrY1dXLNxykKrCl/8Agx8jn/ePfuvdOUm2cQ8LRpT+KQqQk4eRpVa3DEs5DAH6g8H37r3QY2s9j9Vcqbf7S1r/AOxt7917obvfuvde9+691737r3QXnC/3s3+M5XJrwmyENBhYnF46vcc+ifJ5BQeGjxiiKFTb/gTGbG8ZHv3XuhQ9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691//S3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3UekqYq2lpqyBtUFXTw1MLf6qKeNZY2/wBijj37r3Uj37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdcXdI0aSRlSNFLu7sFRFUXZmZiAqqBck8D37r3QVbo7m2PtpZI1yIzdetwKLDGOqAcXFpqzUKOEBhY+tnH+pPv3Xuiw7x7x3juSOemoZxtvGtqIhxUssdfIgOpVqMpdKgnizCIQow4YEe/de6M/0g8svVu0pZpJJZZabISSSSu0kkjSZnIuXd3JZmbVe5N/fuvdCt7917ri7pEjySMEjjRnd2NlVEBZmJ/AVRf37r3VQeWrJtw7iyeQ5M+czVZWAN9TLkq6SYBvr/bm9+690Z7F9LU0aRfxjOTSlVUNBi6dYUNlAK/c1Xkkt/iEB9+690IeJ692pQsv2WAjrp1tpmrVlycwI4vaQNECbc2QD37r3QkUe28q6LHFSR0UAsAj+OmQAfS0EKk/T/affuvdP1Ns5eDV1jNzylMgQEf8ALSQM3+8D37r3T9TbfxNNYrSJK45D1BMzX/rZ7oP9gB7917p3VERQqKqKPoqqFUf6wAAHv3XuuXv3Xuve/de697917oEm/wA6/wDy1f8A6HPv3Xuht9+691737r3XvfuvdYKenhpYUggQJGhdrfUs8jtLLK7fV5ZpXZ3Y8szEnk+/de6z+/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de6//09/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdQMrWDHYvJZBiAKGgrKwk/QCmp5JiTfiwCe/de6SvWdSavYG0pmYswwlHAWJuSaVTSm55ubw+/de6XPv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917psyuZxODpWrcxkaPGUq3HmraiOBGYC+iPyMDLIR9FUFj+B7917ove6/kZi6NpKXaGOOXlAsuUyQnpMeH4IaKhtFX1SWJB1tTEH6XHv3Xui2bk3vuveNQWzWWq6uN5FaLHRM0OOhYEiMQY+HTB5FBsHKtK39pieffuvdO+C6x3HmAk9UiYWjex8tej/dMn+qix66Zif6eUwgjkE+/de6Fuj6523hMdVy/ZnL5COiqn+6r181pFgdtVPQi9LDpYXUlXkX/V359+690MvSY09W7OFiL4+oax+vryNa3+839+690Kfv3XukN2Zlf4J19vHJBtEkO38lFA/001VZTtRUh/H0qahP9f37r3VbHWmHGf39tPFNfRUZqkklta/hpGNbMOQRzFTn37r3VoVPtrE09iac1DCx1VDmTn/gg0x2P9Le/de6eo4ooV0RRxxL/qY0VF/2ygD37r3WT37r3Xvfuvde9+691737r3Xvfuvde9+691737r3QJN/nX/5av/0OffuvdDb7917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuv/9Tf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3SC7Rrf4f17u2ovp14eoowf8ckUxwt/iTVe/de6BjrvuPZ+19i4TEZafISZOgWvSamo6GSYqkmTrZ6e00rQU7E08qfRzb6Hn37r3Qp7G7UxO/8pX0GIxeUpoaCjFXLV5AUseovPHDFCIaaoqrNIGZr6voh9+690KPv3Xuve/de697917r3v3Xuve/de697917pKbh3xtTa0btm83Q0kqC/2YlE+Qe4uNFBT+SrYG/10aRfkj37r3RcN2/IutnL0uzseKGLlf4plESarb+jU9ErPTQW/rIZb/6ke/de6AiSTdm+sm0sr5TcORsA8kjPMtNG7EqrSOVpaCmLX0gmOMH6e/de6EfCdOzyKJtwZEUxNj9jjgk8oFgSJq2T9hHB4IRJV/If8e/de6GDbWx8XiiEwmK8lSP11ki+eq5FrtVSC0CsPwuhf8PfuvdCjQbSPD5CW3N/BAR/tnlI/wChf9v7917p3y9HS0G3M4lLAkSjD5MnSPW5FFPy7m7Mf8ST7917pJ9MC3V2y+CL4gNz/tdTUN/tuffuvdCd7917ovfyZyv8P6zlog1mzeaxeOKg8tHA0uWcn/aQ2NUH/Ej37r3Ra/jTjfvuzKepK3TFYjJV2o/RZHWKiT/kIirNv9b37r3VjHv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917oEm/zr/8ALV/+hz7917obffuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691//V3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690l95bXh3lt+r29U1k9DTVslI881MsbylaSqiq1jAlBQBpYV5IP09+690ESfHPZcEUjy5LcdTIkbsA1Xj4oSyqSLpHjPJa4/1fv3Xumv41YzxYbcuYK/8DMlSY5GI/s46maofT/gWyQv/AFI/w9+690Zn37r3Xvfuvde9+691737r3QT767g2zsmSXHnyZjORqC2LonVFpiwDIK+tZXipSym+hVklAIJQAg+/de6Kzuzujeu6BJTx1owONcsPssM0tNJIh1KFqq/WaycFGIdVaOJ/yn09+690icHtLPbhcDHUMhgJ9VbUXgo05FyZ2FpCL/pQO3+Hv3XuhnwPUmKoyk+cqGys4AP2sPkpaCNuD6mVlqanSfpcxqfyp9+690M2H29I0KUuIx0NJRIfSIYY6Oij+gJXQio7fS+kM39ffuvdLmg2nTQ2eukNU/B8Sao4VP5BYESSc/8ABR/h7917pUwwwwII4Io4ox9EjRUX/XsoAuffuvdZffuvdMW6G07Z3E1r2wWWNr2vagqOL/i/v3Xukn0+unrHZI5/4sVK3P8AtRdv9tzx7917oSffuvdEw+WmVvJs3Bo36UyuVqEv9dbUtHRtb/Dxzj/Y+/de6x/E3GXqN35llBCRY3GxNblWdqipmAP+Kqnv3Xuhv7a7Tj2FRwY/GRQ1m5snE8tJFNdqbHUgYxtkaxFKtIDICsMQI8jgkkKpv7r3RNq/fm9slVmuq92Z9qjyGRDT5KpoYYSTqCwUtE8FNFGp+i6SB7917o2nRfYGV3fjMnis9N95lMC1KyZBlVZq6grBMIWqggVGqoJadkZwBrWxI1XJ917oeffuvde9+6914kAEk2A5JPAAH1JPv3Xugb2r2pS7s7Fze2cc0LYTH4lnx9YLGTJ5GirUhyU8Lg2NEiTqsVv16C97MPfuvdDJ7917r3v3XugSb/Ov/wAtX/6HPv3Xuht9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/9bf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvddEBgVP0IIP+sRb37r3QVdK4s4vrrBh10zV5rclN/iamsmEDf43pI4/fuvdCt7917r3v3Xuve/de6T+68nUYXbG4MvSJrqsbhslW06lQyiampJZYnkUkXijdQz/7SD7917qsyeeapmmqamV5p55ZJ555XLySzSuZJZZXYlneR2JYnkk+/de6MXs7rXG4+mpshm4RX5KaKOb7SoQGkoS6hhEYW4nnQGzl7qG4C8XPuvdDth9uz18aSDRSUY9KNoF2C3BEEQ0jSpFr8D+l7e/de6XNFgcbRAFYBNIP921FpWv/AIKRoW3+A9+6908+/de697917r3v3Xuve/de6Te8Tp2luY2vbAZfi9v+UCe/P9bfT37r3TB1MunrTY45/wCPcxrc/wC1QK3+259+690Ifv3Xuq5fkrlf4j2fWUgbUuExOKxgAPpDSQtlnA/GoNk7H/EW/Hv3XujF/GDF/ZdeTZAj1ZjN1s4NuSlGI6FefyNcDe/de6ADuCpq6rsrdRq9YanqaSkpla4C0UNBTNTaF+gVvKzf4lifz7917oNf+R/7b37r3RyvjnteqxmCym5a2JoTuKWmjxyOpV2xeP8AOEqrHnx1lTUOUva6KG+hHv3XujHe/de697917otne/ZRxNK+ycHUFcrkIAc5VQPpfG4ydbrRoy8pWZKM8/QxwEn6upHuvdF56ry/8C7B2rVXWOGbIDEzm4VFp8rG1CL/AI0rNJGbf1A9+691Yz7917r3v3XugSb/ADr/APLV/wDoc+/de6G337r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//X3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdNuHx0eIxOMxUVvHjcfR0KECwIpaeOHV/yFov/sffuvdOXv3Xuve/de697917ppz+OOXwWaxINjlMTkccDe1jW0c1Ne/FreX37r3VXupk9afrT1L/AMGXlf8AeR7917o8scsc0aTwnVDLGssRB/VHIoeMg/m6Ee/de6G2njjighjit4kijWO30KKoCkf649+691m9+691737r3Xvfuvde9+691737r3Se3bSVOQ2vuGhoofuKusw2SpqaDUFMs09JLHGgZiFBZmFrn6+/de6D3rfduBxe29sbPzVW+39yYrD4/GVGKz8EuJmmqqanSKQUE1YsVJkUd0JXwSSEryQPfuvdDH7917qv3u3qPfFNuTcG8oaX+PYbKV9RXtPjEklq8ZTsbRQ19DZpxHSwIFM0euLSupil9I917rH1H37LsXH0e185jFrdu08s5p6uhAjydD95VS1c7SI7CKvi807G10dRwC1gvv3XujB7h2RsbuuKn3TtrcSU+SEEdPPWUcaVAnijBMNPl8ZK8FRDUU+shWvG4X0m4At7r3UbbPx0wGMq46zcWVqNxeFg6Y9aZcfjXdTdfuo1nqaiqj/qhkVDbkEXB917oxSIkSJHGixxxqqRxooRERAFVEVQFVVUWAHAHv3XuuXv3Xug67M39S7B29JW+ifMVxekwlCx/wA/V6LtUTKPUKKiU65T+eFHLD37r3VelXV1eQq6mvr6iSrrq2eWqrKqZtUlRUzNqllc/QXPAA4VQAOB7917rCk0lO8dTESJqaWKphK/qEtPIs0RH+IkQe/de6tDwuRjzGHxWViKmPJY6irl0kFQKqnjnsCP9SXt7917pz9+690CTf51/wDlq/8A0OffuvdDb7917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuv/Q3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3VYm6KCPF7m3FjIQBDjs7lqGIAWHipK+ogjsOLDRGPfuvdGn2dUir2pt6YHVpxFFTM3+qkoYVopT/AK5lpz7917owmJk8uMoHvc/aQKx/2tI1R/8Ak9T7917pw9+691737r3Xvfuvde9+691737r3XvfuvdNuVw2JzlK9FmMdR5OkkBDQVtPHUR8/UqJFJRv8RY+/de6QJ69yGDvJsPdWSwCLymCyhbcG2SPqIY6KtkNZjYTb/lFniPv3XuuH999z7e9G99n1QpkJDbh2f5s9iwg5M9Vi9CZygjC8kKlVa36vfuvdILcnVnVvbsFRl9qZTH4/OG7zV+EMTI07H6ZzBloJI5mYnUStPOSbsWtb37r3RV85s7szpfLJk0aroYlkCU+4MPLJPiatdVkhqW0KsZkuf2amNC3OkEc+/de6MH158m8fX+DGb9gTGVbaY0ztHGzY6ZjYBq2lXVLREn6smuP/AAUe/de6NZR1tJkKaGtoKqnraSoQSQVVLNHPTzRt9HjliZkdT/UH37r3UXNZjH7fxVdmcrULTY/HU71NTM3JCIOEReDJLK5Coo5ZyAOT7917quje+8cjvncNVnK/VFEb0+LoCxKY7Go5aGnA/SZ5L65mA9UhNvSFA917pI+/de697917o+3RGX/ivXOKhc3lws9ZhpLm7aKaby0txe4ApKiMD/Ae/de6GL37r3QJN/nX/wCWr/8AQ59+690Nvv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de6//R3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Ve/c1ClB2TuWOKMxxVE1FXLf+29djaOpqZBb8NWSSe/de6FHqqq+42fTw3v/AA+vyFF/iC8q5K3+2yPv3XujLbXlEmIhX6mGWeI/65laYf7ZZR7917pQ+/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3XukRnuu9p7gqBX1ON+xzCXMOdws0mHzcDk31pkaBoZnYH/V6x/h7917os+S7b3NtPdOU2gWp+wtuxZJcEsO4ooYsrUvI8dJNSnIUlOaeqjFU7RlqinmZwt/zb37r3So7C+M2EzHnyWyJo9v5JtUjYioMj4Spc3JWnYCSoxbMT9FEkP0ARBz7917ot2Oz/aHSOZNDKldi1MheXEZFWqcJk41NmmpirtTSg3t5qdwwPBP1Hv3XulPv3uis7MixeN+zOGoaNFqqrHpUGoSvyoDjzmTxx3pqSM/sowvrJY8hbe690HHv3Xuve/de697917o0vxny+mo3VgHJ/cShzUAP6QV1UFXp/qxAhv8A0FvfuvdGz9+690CTf51/+Wr/APQ59+690Nvv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de6//9Lf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdEr+R9C0O8cVXCILDXbfgj8o/3bU0dfXLMD/tUdPNCP9Yj37r3WLpir10GeoPoKatoq0f4mvgmp2I/4KMYt/8AXHv3XujUbOlvTVsFv83PHNf/AJbx+O3+w+29+690sffuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3QWdt76OyNsSSUUqJncszUOHB0O0LAKavIeJ7hloYXFiVZfM8YYFSffuvdEu63xrZ7srZdFJqltmxmalpCzl1w0U2XZpmYkt5ZaUAlr6i3P19+691ZJ7917otPyg3BSY7ZFHgmippq/cGTj+380UUslLSYwpU1lXTM6s0M3leGHUtjolYX9+690RzCQXMtQRwP20P+JsXI/wBYWH+x9+690offuvde9+691737r3QqdLZf+Edj4HWxWHKisw0oHALVkBkptRPFvu6aP/Yke/de6sE9+690CTf51/8Alq//AEOffuvdDb7917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuv/09/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690V75MUMj0G0skoHipqvLUMjW58ldDQzwAn+mnHye/de6CXpypKZ7J0hayVGHae3+qlpa2kSMf4kRVch/wBYH37r3Rudny6a2qg/EtMJf9jDKqj/AHic+/de6EL37r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvddEgAkkAAXJPAAH1JP4A9+691X73BvWDem7JJsezNiMRAMZj5CNP3Rjlkkq64Lc6UqKhysfPqhjRiFJIHuvdKT434v73fmZyrLqiwe3vt0Nv8AN1mXrIhG1/wTSUcwt+b/AOHv3Xujv+/de6rX+QW7P7z9i5Gngk8lBttFwFIFa6NPTO75OWw48hyEjx3F7rEvv3XukNRw/b00UX5C3f8AxdvU3+8n37r3Un37r3Xvfuvde9+691KoK+XFV9BlISRLja6jyEZF7hqOojqOLc3Ij/2Pv3XurR6WpirKWmq4DqhqoIamFuPVFPGssZ4uOUYe/de6Blv86/8Ay1f/AKHPv3Xuht9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1N/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690CXyAx5revJ6kH/AItGXxeQP+IkeXFW/wAecmPfuvdFN62qPtt6YYsbRzmupn/2ozY6rWFf9c1Oi3+Pv3XujmbakMeYpRewlE8bf6xgkdR/sXQe/de6FP37r3Xvfuvde9+6900Z7MU238LlM3V80+LoaitdAwVpTDGzJAhPHknkARf9qYe/de6Jntvv3d2IrJmy6w57G1NXPUvSzkw1dItRJJKYMfWjWUgiZwESVZQqLpGn6j3XujWbP7D2vveEtha+1YkflqMTWBafJ0yBgrO1PrdZ4lLLeSFpIwWALAm3v3Xulv7917r3v3XugY7z3ZJtvZklHRzrFkdxTHFRWYieOgaJ3ydRCByLQ6YS3Ggzgjm3v3XuiHe/de6N/wDGHF+HbG5M466XzG4TSxsfq9JiKSJIWv8AlRU1kw/wIPv3Xuhq37uePZ2z8/uOQr5Mdj5WpFe2mXITlabHQkH6rJWzRhvrZbn8e/de6qpolkrq8zTu0rvI9TUSSEs8sjMXZnY8s0kjXJ/Pv3Xulb7917r3v3Xuve/de697917rx54P0Pv3XurCuncwc11ztud38k9FSviak/lZcXNJRqDfk/sRIf8AY+/de6YG/wA6/wDy1f8A6HPv3Xuht9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X//1d/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690hOzsdHlOvt3U0pIWPCVeQW31MuJUZWEf8AIU1Eo9+691XxgKoUOdwtazaUpMtjqiQ/jxQ1kMkoP+DRqQf9f37r3R38fJ4chRSE6QlXTlz/AEQTIJP+TL+/de6GP37r3Xvfuvde9+690A3yEz0GP2UmF1KavcFfTRJFrswpMdNFX1FRosS6pPFCn4F5Ab8WPuvdEg9+691Loa+uxdVDXY2sqaCsp21Q1VJPJTzxn6HRLEyuAwNiL2INjx7917oyGzvkTkKZqWh3lRJX0+oxy5qgRYa5EIGiapx6BaWqKvfX4vCdH0RmFm917o0GL3PgM1i3zWMy1FV4yGKSaoqo5l0UqRRmWYVatpkpXhjF3WQKyj6j37r3Vf8A2LvSp3xuasyrvIMdC70mFpXsopsbG5ETGMD01FWR5ZbliHbTcqqge690H8z+KGWS9tEbt/sQpI/3n37r3Vh3TOI/gvWOz6Vk0yVGLXKy3FnL5maXKjX+dSx1arzyAAPx7917oCflZuzRBgNl00vqnZs/lFVrERR+WjxcTW+qySmdyp/MaH+nv3Xuip4aDRA0xHqlayn/AGheP95a/v3Xunn37r3Xvfuvde9+691737r3XvfuvdG5+NGY8mN3NgXcXoq+kytPHfnw5CBqedh/QCehH+xb/H37r3Syb/Ov/wAtX/6HPv3Xuht9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/9bf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3WB6mmj/zlRCn/B5UX/e2HPv3Xuoz5XHR/qq4v+QdT/8AQitf37r3UR9wY5f0vJJ/wWJh/vLBffuvdRn3LS/2Iqg/66xgf9bGP+8e/de6bK/NQV9HV0MtI7wVlLPSTB5gLxVMTwyC3jYG6P7917qt+RGUvG4ZHUsjD6MjAlSP8GU+/de6O5QVgyFBQ5BPSK+ipK5PpwtZTx1K/QkXAk9+690O0EonhhmX9M0Ucq/60iBx/vB9+691l9+691737r3RAe6ty/3i35kkik10WCAwdJY+kvSO5r5LAldTZCSVdQ5ZEX+gA917oJffuvde9+691737r3Uulr66hFStFWVNKtbTSUdYlPPJElXSyqySU1SiMFngYMfS4IB5+oB9+691E9+691HnglrDTY+D/P5GspKCEf1kqZ0jQW/NyffuvdWJ01RPQUlPSw1U8VNRU0VPEpncJHBTxLGgPqChUjQf4C3v3Xuq6N+bjn3nvLMZlpZJ0rK37egMjMxFBShaWhFj+nVTxK7D/VMffuvdSYo1ijSNf0ooUfj6C1/9j7917rn7917r3v3Xuve/de66LKv6iBc2FyBcn6Af1J9+690oMZtXcuZ0nGYPJVMbf7vNO1PTKPoWaoqvDFpH5sSbfj37r3Q79YbU3RsrK1mVrJsZFFkcRUY2ajgqXqqhXeWKannDxRrTBoHjP9phZj7917oVYk1yIvNiwvbkhQeTyebD37r3QoruChP1WoT/AINGp/6Fkb37r3Uhczjm4+40n/ao5R/vOjT/ALz7917qStfRP+mrp7n6Ayop/wBsxB9+691JV0cXR1cf1Vgw/wB4J9+691y9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691//X3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691hlqIIOZpoo/+Duqk/wCsCbn37r3TdLnMfH+l3mP9Ioz/AL3J41P+wJ9+6903ybjH0hpSf9qkkA/5NVT/AL37917qDJn6576PDF/TTGWI/wBjIzgn/Ye/de6gyZWue+qrl5+oQiP/AGH7YW3v3XuoL1Esn63d+b3d2b/eyeffuvdYizH8/wC249+691xv/X37r3XEuo/x/wBb/fW9+691wMlv6D/X/wB8PfuvdYWl/qb/AO8D/kfv3XuiU7qg+33Nn4dGhVzGRaNR9BDJVSyQ2/wMTqR7917ozewqr7zZ235r/ooTRgf0GOqJ8co/5JpB7917oxOElE2JoGH0WnSH/Y094D/vMfv3XunX37r3TFufOwbZ2/l89UhWjxlDNUrGzaBPOF0UtMG/stVVLJGP8WHv3XuqyZ5pKiaaolOqWeWSaRvpqklcu5t+Lsx9+691i9+691737r3Xvfuvde9+691737r3Sn2BQfxTsHalKV1R0tXNlpT+F/hsEtVAx/6qYkA/xPv3XujJdv7j/u5sfKNFJorcsBhaKxswauRxVSKR6lMVCkpDD6Pp+lx7917ojuGg8lQZSPTCtx/wd7hf9sL+/de6VBIAuSAP6k2H+8+/de6c8dhsvl3EeLxdfXk86qamkeIC9rmcgQCx+t24/Pv3Xul9jeo91Vmlq9sfhoza/wBzP93UqPyDTURcBh/QyAH+vv3Xul9jendv02lspkMlln4LRwlMZTX/ACFMXlqmQ/UXdT7917oQMVtfb2It/CsFj6eQceYUwqagn8kz1Pnl1H82IF/fuvdKUU9RJbWSBxbyMSbAccXJFh/tvfuvdZ1oV/tuT/got/vJv7917qVHFHF+hbH8n6k/7E+/de6ye/de697917r3v3XuuwSDcEgj6EcH37r3UhKyri/zdTOv+Ale3/JN7e/de6mR5nIx/wC7w4/pJGjf8nBQ3+8+/de6mx7iqB/naeJ/+CF4z/vPkF/9h7917qdHuGla3lhmjP8AtOmRR/sbq3+8e/de6cYsnQTfoqYwf6SExH/W/cCXPv3XupwIIBBBB+hBuD/rEe/de679+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691//9Df49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3USprqWkH78qq1rhB6pD/SyLdrH+v09+690w1G4jyKWD/WeY/wDXNCLf8le/de6Z5snXT311DhT/AGYz41t/QhNJI/17+/de6gE35PJPJJ/Pv3Xuve/de64lgP8AX/p7917rGWJ/wH9PfuvdcffuvdcC4H05/wB69+691jaT/G3+9/8AFffuvdYmlH1/3kn/AH1/fuvdYGqAPz/tuB/t/r7917qM9T9bf7f/AF/8T7917qHJVf1b/ff4/wDIvfuvdFh7HhMe7K6WwC1cNHUR2FrqKWOmY8fUmWna5/r7917oXeoqkz7VmhY80WYrKdF/pE9PRVYP+s0tS/8AsR7917ozm1JTJitH4gqpoh/rMI5z/vMx9+690pffuvdFl+R251p8bidpU8w+4yEoy2RjU+paClZ4qFJAeDHV1odxbkNTc2H1917ooPv3Xuve/de697917r3v3Xuve/de6z09NUVcqQUsE1TM5skUEbyyMT+FRAzH37r3QwdK4Oqh3puWqroDFNhcTS45onKs0FRlJlqbNpLASiGiYEXuuqxsffuvdJT5Abj/AIluekwEEmqmwFKDOAfScjkFjnlvbhvFSLCB+VYsP6+/de6UexeoKKpwePyebyFckmQhWsOPo0ipzHHMNUKzVUyyy+TxaWOlQBe3P19+690MGM2PtPFFWo8FSSTr9KitVsjUf42aq8iLc88KLH6e/de6WSU87IEVPHGLaUAEcY4sCI1AA4/oPfuvdZ1of9W/+wUf8SffuvdSVpoU50XP9WN/94+nv3XuswAHAAA/wFv969+69137917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de6yxTzQm8MskR/2h2W/+vYi/v3XunaDPVsVhJoqF/OtdL2/wdLC/+uD7917p7ps7RzWWXVTuf+Onqjv/AMtB9P8AYge/de6eVZXUMrBlIuGUgqR/UEXBHv3Xuu/fuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/R3+Pfuvde9+691737r3Xvfuvde9+691737r3XvfuvdJTJZty7QUbaUUlWnFizkcHx/hV/x+p/FvfuvdJtmLEsxLMTcsxJJP8AUk8k+/de669+691737r3XvfuvdY2e/A/2/v3Xusfv3XuuBcD6c/71/xv37r3WFn/AKkk/wC9f8U9+691HeYD82/wH/FffuvdRnqLfTj6/wC+/wB9b37r3UR6j68/76/+29+691Dkqbfn/ff7H8e/de6hSVX+P+8/77+vv3XuoMtWB+ef99/tvfuvdAl2QuvI4+rvfyUklNb+n20xlv8A7H7v/ePfuvdK7peqNtw0TNwDjKqFP8T99FVN/sbQj37r3RrdmyErXwk+lWp5FH+LiZXP+2jX37r3S29+691Xn29uFNx7+zVRAyvSY+RcNSMvIePG6op5A97SJLXGV0I9JRha/wBT7r3QZ+/de697917r3v3XulBhNr53cLf7isfLPEr6JKtysFHERbUHqZmSNnS9yilpLfRT7917oXMR03SoiSZ3LSzy/V6bFosMCn/U/eVUbzTqR+fDEfx/j7917oWcNt3GYeEU+Ix0NMtgHkRLzS/m89TJqmlN+fUxt+AB7917rraO0m2wc9VS1gr8huDKS5Sqk8Rp44rqVp6NCXmd46cMfWbFixOkfT37r3QUwdCjJ5arzm7NwyVdVX101fVUeLpxFCZJpjM8P3lWZJHg9WkAQxkKLAj8e690P0NBTQJHGieiJFSNSfSqKoVVCiwsqiwvf37r3UpVVRZVCj/AAf717917rl7917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917qZSV1TRteGQhb3aNvVG3+uv4P+IsffuvdLagro6+HyINLqQJYyblG/BB4ujfg+/de6ne/de697917r3v3Xuve/de697917r3v3Xuv//S3+Pfuvde9+691737r3Xvfuvde9+691737r3WGoV3p50jNneGVUP9HZGCn/bn37r3QbMpUlWBVlJVgRYgg2IIP0IPv3Xuuvfuvde9+6910SALn37r3WIsT/rf09+691jLAf4n+nv3XusLP/U/7D/jXv3Xuo7y2vc2/wAAf979+691Dkn/AAPp/T37r3UN5rfn/ef97Pv3Xuock/1H++/33+v7917qDJUfXn/ffX/ffQe/de6gS1QF/wDfW+vv3Xum2WrP0v8A74f8T7917ptlqvqL/wCw+vv3Xug63vaamo5r3aGoeIf8Fnj1H/eYB7917qZ1FVCDdM0DE2rsRVwRr/WaKejrAT/wWCmk/wBv7917o3+0pdGSljJsJaWQAf1dJImH+2TV7917qZ2Vudto7MzOXgcJXeEUWMNgSMhXMKeCVVYFXNKGaYqeCsZHv3Xuq4iSeSSSeSSSST+SSbkk+/de697917pY4DYu4dwFZKekNLRtYmurtUEBU35hBUy1H0/sKQPyR7917oasB1bgcVpmyIOZqxY/5SgSiRh9dFIGZZAT/wAdC4P9B7917oUYKRtCRwxLFCihUVVEcaKPoqIoACj+gFh7917pxjo415e7n/Hhf9t+f9j7917qUAALAAAfgcD37r3Xfv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917pR7djk808tj4hF4yfwZC6sAP6lVB/1r+/de6Vvv3Xuve/de697917r3v3Xuve/de697917r//09/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3TPkMPFWEyxkQ1B+rWukn9Naj6H/Ec/1v7917pJVNDVUhImiYLfiRfVGf6WccAn+hsffuvdRPfuvdYyhPN/+I/4r7917rgyP/Zsf9j/AL1e3v3XuozpIOAjf64F/wDbWv7917qFK7Je6sv1uWUj/ex7917pveb/AB/1v6/7b/H37r3UKScf1/2H/Ff6+/de6hST/wCP+9f8R7917pvlqQL82/w/p/vPv3Xumyap/wAffuvdNstT9bn37r3TbLU/UX/2P++59+6902zVQ5AP/ED/AG/+v7917pLbgkE2PmvyUaJx+efIqk/8kuffuvdQNgVQpN5YCUm2usejA/BbI0tRj0B/5Dqh/sffuvdHOwU8dNlqOWVxHGGkR2Y6VAlhkjXUTwFDuL39+690HHyGzclecBsjFxS1tdNN/G6yClR5ZVRUmpMdHpjDahN5J3YG2kIjHggj3XugfxHUWerVSXJ1dJh42F/GVavrQPr6oIXiplv/AIz3H5Hv3Xuha2/15t3BsksdK2SrlsRV5AJUMjCx1QU4QU8BBFw2kyL/AKr37r3QiR0btzIdA/p9W/4oPfuvdTUgij/SoJ/q3J/2/v3Xus3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3XuuSqzsFRWZibBVBZif6AC5J9+690+UeCnms9STBH9dHBmYf630j/2PP+Hv3XulbDDFTxrFCgSNfoB/vJJPJY/kn37r3WX37r3Xvfuvde9+691737r3Xvfuvde9+691/9Tf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XRAIIIBB4IIuCP6EH6+/de6a6jDUE9z4vCx/tQHR/yZYx/7x7917pnn27MtzTzxyD/UyAxt/rAjWpP+29+6901S4yvhvrppCB/ajHlW39bxlrD/AF/fuvdQiCCQQQR9QRYj/XB9+69117917rE0ML/rije/+qRW/wB7Hv3XuokmLoJL6qdRf8ozp/0Iyj37r3UCbblDLfS9TF/TRIpA/wBg8bG3+x9+6900T7P13MOQZf8AaZIA1/8AkJZVt/tj7917pkqNl5Ycw1FFKPwC8sTf7Ywlf+TvfuvdJ+q2puOO9qAyr+DDPTyf7ZPKJOf9b37r3SYrMXmqcMZ8VkY1F/UaOcqbf7WE0W/2Pv3Xuk3NI6sVYMpH1UgqQf8AEHlffuvdN1QBNFJCx4kRl4H0uOD/AMgnn37r3SapVqcTkKGvaMkUNdSViunqUmkqI6hTxyOY/wA29+690dIFWAZGV0YBkdTdXRhdXUjgqym4P5Hv3XuuEVHEZ5aiGnjFROI1nnWNRLIsaqkayy21MsaKAoJsB9PfuvdOcdF+ZW/5BX/iW/4p7917qakaRiyKF/1hyf8AXP1Pv3Xuufv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917rNFTzzcQwyyf8ERmH+xIBA9+6905Q4OvlsWRIQfzK4vb/gsetgf9e3v3XuneDb0CWNRM8p/1KARp/rE+pyP9Yj37r3TzBS09MLQQxx/glR6iP9qc3dv9iffuvdSPfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9Xf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdY5IYphaWKOQf0kRX/wChgffuvdQJMPjpOftwh/rG7p/yaG0f7x7917qDJt2mP+bnmT/gwSQD/bCM/wC8+/de6hvtycX8dRE/9NavHf8A23kt7917qG+DyK/SNJP+CSoP+hynv3Xuor42vT9VJMf+CIZP+hNXHv3XuozwzR/rikT/AIOjL/vYHv3Xusfv3Xuve/de6wzU9PUDTUQQzr/qZoklH+2dWHv3XumSo2ntqqv5cJjrn6tDTJTsf8S1OImJ/wAb+/de6YqnrTadRfRSVNKT+aetqD9f6CpapUf7a3v3XulVjcPRYqhpaCnEskNJCkMTVErTSaI1CqCTZAABwqqqqOAALD37r3TmAALAAD+gFh7917rv37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XYBY2UEn+gBJ/2w9+691IWjq3/AEU1Q3+Ihkt/t9Nh7917qSmIyL/SmZR/V3jS3+wZwf8AePfuvdS02/Wt+t4Ix/i7Mf8AbKhH+8+/de6lx7c/MtV/sI4v+imf/iPfuvdTo8DQJ+sSy/8AB5NI/wCsYQ2/2Pv3Xup0ePooraKWEEfQsgdv+Sn1N/vPv3Xupnv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r//W3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdY2hif8AXFG3/BkVv97B9+691HbH0LfWkp/+QYkU/wC3UA+/de6wtiMc31plH/BXlX/oVwPfuvdYWwWPP0SRf+Cyt/0Vq9+691iO3qI/SSpX/WeMj/eYiffuvdYjtyn/ALNRMP8AXCN/vQX37r3WM7bT+zVsP9eEH/epF9+691wO22/FYD/rwEf9dT7917rgduTfipj/ANjGw/4k+/de64/3dqPxUQ/7aQf9En37r3XE7dq/xNTn/XMg/wCuZ9+691x/u7W/iWl/5Ll/68n37r3Xv7vVv/HWl/5Ll/68e/de69/d6t/460v/ACXL/wBePfuvde/u9W/8daX/AJLl/wCvHv3Xuu/7u1n/AB2pv+Spf+vXv3XuuX93an/jvB/1k/6M9+691yG3J/zUxf7BXP8AxT37r3XIbck/NUg/1omP+9uPfuvdcxtv+tZ/tqf/AInze/de6yDbkX5qZD/rRqP97J9+691kG3aT+1NUH/WMQ/3uNvfuvdZVwFAPqZ2/4NIP+iUX37r3WZcJjR9YC3/BpZf+IcD37r3WZcXj1+lLEf8AgwL/APQxN/fuvdZ1pKVP0U1Ov/BYYx/vS+/de6zhQvCgAf0AA/3r37r3Xfv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r/19/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X//0N/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X//0d/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690xZbdG2sBJDDndxYLCy1CNJBFlstQY6SeNW0tJClZUQtIitwSoIB9+690C/TXZeEl2Bin3hvvCjPGpyn3Qz+48dDk/GMjUim80dbVx1AT7fTouLFLW49+690uN3dr7c2ku22FJmdzrutci+GbaFPQ5palMYKNqhkP8RphMrLWKVMXkBCte1ufde6TtL3rg5sphcVVbO7Ew8uey9BhaGqzW3qPH0X3uRqI6aASTSZctoVpNTaFdwgJCm1vfuvdCjuObckGPD7VosTX5P7iNWgzNZU0VGKUrJ5ZBNS09TKZlcKFXTYgnnj37r3Req/cHb6drYHHNS7fhrZtq19THgIdyZr+7VXClVOrV9av2ag5KJgVQ+FvSB6h7917p97GzO/6LaOHqsx9rt7Jvv/blIG2nmMm8c+Jn8qzR1lS0VFMEnnOl4yDGwC3uePfuvdLqol3/AIfflMET+82x9xN4nRI6Okr9m1UEGozPMBTpXYqcRk+stNqOlbuFE3uvdCLVVVPQ0tTW1cqQUtJBNVVM8htHDT08bSzSufwkcaEn/Ae/de6LR1f3PhauHc+W3pvSkojk9x1kmBwdfIofEYRPVTRqYoC37hmKEMzcRAi1z7917rJ1T25timwmaTdu94mrn3ZnJaE5ivq6uoGIdqf7AQPP5mSjADeNAQq82A9+690NGB7C2XuiubG7f3HjsrXLBJVNS0sjtKKeJo0klIaNRoRpVB5/Pv3Xukz2duDdOJrNk4jalbj6Ct3RnZ8VLVZKi++giRKNqhG8QZWFmXm3Pv3Xug23ZuftfbG2dxbki31snNptispcflKHH4NjUQV1RkKKgakmZp2WCeA1yuytzpH+Pv3Xuln3LvR9sybFxlPnP7vtm910kmUyWsKINt42xzGu6SW8hq4gtxZiCP8AEe690ov9MnV//Pa4X/qbL/159+690Jnv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r//0t/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690ldy7W2pm4zkNx7fxGZfG0lQ0MmSpKeoaGBFaeSNJJkbxIxW5/H59+690W7r/Y20J+hajcmV27h6rLHb+88h/E6rHQyVsP2M+ajpZVnZGlYwR0isjC1ha30ufde69gkeOp+K6upUnHbxcA/wColxOOkjb/AFmRwR/r+/de6Enuf/i4dQ/+Ja2p/wBbn9+69049p0OzGfF1+69obx3OUp69Yp9qxbhmixtNTGnmnbJ/wbKY+GnWXzXjeUEsI3sQFPv3Xui5bMx+x8pPns3lOsOxMrhq3Jyrs6bBUG9q9YcHA80LefK0+dRKmWaZfWgL+KRGGo/Qe691N7C27sY7GzuYwGw9+bZrsFUYSqap3Um6qGlqaeqy9LQS09P/ABbMVcEspNQL6U8icEEe/de6EzLbF6vod47Q2hRbRrMlUbnpcnkaqoXee7qf+D4uggWWGvlhOVmM6VsoeJFJj9a/qvwfde6V3ccGSyGAxu08ZndvbdoM5Vw0eercxmYKCujwELRCqXG09UUFcGBAm/dVioEdiJGZfde6y0WD6JoaOkolpur6haSmgplqK1dp1dZOII1iE1XVTK0tTUyhdTuxLOxJP19+690F3TdH1ZUbby8+46PYD1M27c89D/HYNttWLivJAtGka1ytPDSLpbxpwoF9IsffuvdDZi5uosHUmtwsvXGHrDE0Bq8XJtjH1JhcqzwmekMMpidkUlb2JA/p7917ph7M/wCPv6e/8POp/wDdXN7917oGd1/8y3+RP/iTYf8A3e7Y9+690qMXkn3D37XHduBmp8cuHze29lQ5emjNPUVOEqKGpydVDFJrinkqoJppUkF7Quo5sCPde6VFRhcPk+8cfQQ4nGfYbY2HVZCsiShplpzkszkhRwQzxLH43m+yXyKSvA/P09+690Pfv3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r3v3Xuve/de697917r/09/j37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+690gu0c3Ht7r3d+Td9Dpg62kpmvb/LclH/DqG1uTarq0NhzYfj6+/de6Rhxp258eqzHTxuk0HWeSFRHpUNHW5LB1M1QjD0j9qrrGBP1sL8n37r3SBoo3iyHxTVxpJwOekAuD6JdsYSWM8Ej1RuD/AFF+ffuvdLzuf/i4dQ/+Ja2p/wBbn9+690suzdu7k3XtKt2/tjJ0WJq8nJFTV1TXecRviHDivpo5KaKaWOSpXSp9BDIWQ21ah7r3RdN6YbsnAVXU+Lra7YcMOP3LRUW2FxtHloKSiqqeCKOGTKmpfXLSBFBfQdbNck3Pv3XuhK3LFubOdbdj4vdue2Vla2DBT5Cjh2xJPGaZcSsmQk/iEdXO7oz1VHGqHhQwIb37r3TT0n9zkqXIdtbuqKejFVisbtXCSVEyRU1DgsJ4aKtqTLJojhjyWZgLNq0hZEc/pYe/de6Gfc2w9n72aim3LhqfMGhjlWhkkqKuMRR1JieXQaSpgV1lMSm5v9OPfuvdAP2tsvqDYm2qiSn2jQy7lyySY/bONiq8tPVVOSnAhjqUplr2eSCheVXbizNpjHqdQfde6D/AdZ7b2DubAYrs3E02RxG88JQmkytXPUU8GA3XEuquws9RSVFPF4ZWmAEj3BOixsJG9+690Y//AEGdUf8APHUX/nblv/rh7917qfvnb2UzG4Ou8nQxRPRbb3HUZTLyy1EMH21EcfLD5QsrqZbOeQtyBz9PfuvdAXQUJ331z2LisTW43+8XZO9MturbuNra2Gjqanb+O3Nh4xUCFmLmCFcTOokCetlIuSpI917oYu5MPVT7ag3XiZoKXP7BrU3TjKiokWGKWCkU/wAVxs0rsqinr6McpceV40QkAn37r3TP0jK25afdfZVX4Vr97ZxkjpY6hKlsXh8Chx+Mx0zAK0dTGpdnuqeRDG+kBh7917odPfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/9Tf49+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3XvfuvdA/2JtDcO+dw7Rw0iUkewKKrOd3HIKgGsyFbj3AosRJSNGpNJUCT9SsykGQtoaOISe690z9l0fbO54s9s7Cbe2+m3MsKakj3LU5VYqhaKVaaerMmP8ksyMkgeEkRuWUFlXkW917rBvbrDO5et6kocBkavFUGzKDLY2vz2PqKemyONibFYaioZqSF3jeVqk49kYRg6VY3sLe/de6bMt09u4ZnZGRTfOf3dT4TeeCzNfR7irI1gpKGgqknqKykW7mWsVEKKvFwx9+690LO9NhUG+BjVyGZ3Li48Y1Wyw7fy38MjrTVinB/iC/bzmo+3NMDFYqULN9QxHv3XugS3X0Fg48vshsJh8pmKJtxxDdcuQzVTUlcGdDSmTzVcDKhe9/APIffuvdO2Z6eNZnYts7ewOM2l17PBRVe58vj62aTNbmWnnkli2+FlaSelhiqFDuWLIRpfWWURe/de6Ysj1t2Ri8Vnesdu0eNr+v8AceWjqqDOVGSjirtp42fIUtbW0M9JUSiorkHgKp4klLFmckM+lfde6GXetZ2BiqbE4vrrbmIyJniellyWVrxBS4OKmSKOFpaD/JmqUeJvQY5WKsljEw+vuvdJ3ZnUsmPzQ3pvzNyby3qVXwVUyacThbaiExNIUjUNGXbQ+iJUvdIka7H3XuhI3VtXCbzwtVgc/SCroKnS4sfHPTVEd/DV0kwBaCphLHSwuCCVYFWZT7r3QM0GI7p66khx2Gkx3Ze1EkSKkhytYMXuHGUxbSkbVsrFJKenBAv/AJUdI9McYAX37r3S07Bw++t1R0G1sO9BhNu5imdd25+OsefJ01OGRanD4ylaCAv9/CxUTnhk1h1j4EnuvdYt29YwVmB29Ds6SDb+49kGmfaGTfXogSBVjnx+QkSOWWoocjED5tSuXflgwZ1b3XumvObO3n2Bn/4dvGWgxfXuJnppxisNVzPUbyqY445lkyEp0TUOMhn+sBswZbAuQk6+691gyfX25dobil3V1Q2Ojgys0I3JsjIP9nhK86ghyGNkiUJjquNWLEAAA3I1AmFvde6HJCxVS4VXKguqMXVWsNQVykZdQfoSqkj8D37r3XL37r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//V3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//W3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//X3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//Q3+Pfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf//Z'
@@ -0,0 +1,102 @@
1
+ <script setup lang="ts">
2
+ import { ref, reactive, computed, watchEffect } from 'vue';
3
+ import { defauIcon, nomoreIcon } from './index'
4
+
5
+ /*
6
+ * @description: 图片组件
7
+ * @fileName: lx-image.vue
8
+ * @params src : 图片路径
9
+ * @params mode : 图片模式 默认:aspectFill 与uni相同
10
+ * @params width : 宽 默认:200rpx
11
+ * @params height : 高 默认:200rpx
12
+ * @params type : 区分分页和icon类型 默认:list
13
+ * @author: lxx
14
+ * @date: 2023-12-18"
15
+ * @version: V1.0.0
16
+ */
17
+ const props = withDefaults(
18
+ defineProps<{
19
+ src: string
20
+ mode?: string
21
+ width?: number | string
22
+ height?: number | string
23
+ type?: 'list' | 'icon'
24
+ radius?: string
25
+ isNeedPreview?: boolean
26
+ }>(),
27
+ {
28
+ src: '',
29
+ mode: 'aspectFill',
30
+ width: '200rpx',
31
+ height: '200rpx',
32
+ type: 'list',
33
+ isNeedPreview: true
34
+ }
35
+ )
36
+ const url = ref(props.src)
37
+ const isCorrect = ref(true)
38
+ const correctStyle = reactive({
39
+ width: props.width,
40
+ height: props.height,
41
+ borderRadius: props.radius,
42
+ overflow: 'hidden'
43
+ })
44
+
45
+ const errorStyle = reactive({
46
+ width: props.width,
47
+ height: props.height,
48
+ padding: '14rpx',
49
+ backgroundColor: '#dedede',
50
+ borderRadius: '4px'
51
+ })
52
+ const isImgError = ref(false)
53
+
54
+ const defaultPic = computed(() => {
55
+ // return `../../static/${props.type === 'list' ? 'nomore' : 'defauIcon'}.png`
56
+ return props.type === 'list' ? nomoreIcon : defauIcon
57
+ })
58
+ const handleImageError = () => {
59
+ isImgError.value = true
60
+ if (props.type !== 'list') {
61
+ isCorrect.value = false
62
+ }
63
+ url.value = defaultPic.value
64
+ }
65
+
66
+ const previewImage = () => {
67
+ if (!props.isNeedPreview || isImgError.value === true) return
68
+ uni.previewImage({
69
+ urls: [url.value]
70
+ })
71
+ }
72
+
73
+ watchEffect(() => {
74
+ if (!isImgError.value) {
75
+ url.value = props.src
76
+ if (!url.value) {
77
+ handleImageError()
78
+ return
79
+ }
80
+ // 判断图片地址是否有http
81
+ if (url.value.indexOf('http') === -1) {
82
+ url.value = import.meta.env.VITE_APP_BASE_URL + url.value
83
+ }
84
+ }
85
+ })
86
+ </script>
87
+
88
+ <template>
89
+ <view class="images_lxx" :style="isCorrect ? correctStyle : errorStyle" @click="previewImage()">
90
+ <image :src="url" @error="handleImageError" :mode="mode" />
91
+ </view>
92
+ </template>
93
+ <style lang="scss" scoped>
94
+ .images_lxx {
95
+ box-sizing: border-box;
96
+
97
+ image {
98
+ width: 100%;
99
+ height: 100%;
100
+ }
101
+ }
102
+ </style>
@@ -0,0 +1,162 @@
1
+ <script setup lang="ts">
2
+ /*
3
+ * @description: 分页组件
4
+ * @fileName: List.vue
5
+ * @params {Function} api : 数据请求的接口API
6
+ * @params {Function} afterLoadData : 数据请求完毕前置处理方法
7
+ * @params {Boolean} isNeedSearch : 是否需要搜索---(暂不可用,待修改)
8
+ * @params {Boolean} isFixedSearch : 是否需要固定定位搜索框(仅listType:'default'有效)
9
+ * @params {object: any} options : 数据请求的额外参数
10
+ * @params {'default' | 'scrollView'} listType : scrollView为scroll-view包裹的分页
11
+ * @params {number} scrollTopThreshold : 用于指定滚动条距离顶部的阈值->触发输入框固定 (仅listType:'scrollView'有效)
12
+ * @params {string} searchPlaceholder : 搜索框默认提示
13
+ * @ref setListParams {Function} : 使用==>ref.value.setListParams(obj, isClear) obj:请求额外的参数 isClear是否清空请求参数
14
+ * @author: lxx
15
+ * @date: 2023-07-28 11:36:23
16
+ * @update: 2023-10-13 10:34:03
17
+ * @version: V1.0.1
18
+ */
19
+ import { LoadData } from '../../util/useListLoadClass'
20
+ import { debounce } from '../../util'
21
+ import { toRefs, ref } from 'vue';
22
+ import lxListState from '../lx-list-state/lx-list-state.vue'
23
+ interface listPropsInt {
24
+ api: Function
25
+ afterLoadData?: Function
26
+ isNeedSearch?: boolean
27
+ isFixedSearch?: boolean
28
+ options?: any
29
+ scrollTopThreshold?: number
30
+ listType?: 'default' | 'scrollView'
31
+ searchPlaceholder?: string
32
+ }
33
+
34
+ // 接收传值
35
+ // 3.2.x defineProps泛型类型参数仅限于类型文字或对本地接口的引用
36
+ const props = withDefaults(defineProps<listPropsInt>(), {
37
+ api: () => ({}),
38
+ isNeedSearch: true,
39
+ isFixedSearch: true,
40
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
41
+ options: {},
42
+ scrollTopThreshold: 50,
43
+ listType: 'default',
44
+ searchPlaceholder: '请输入搜索内容'
45
+ })
46
+ let { options, api, afterLoadData } = toRefs(props)
47
+ console.log('props', props.options, options.value)
48
+
49
+ // 分页相关
50
+ let { list, isLoading, isEmpty, isNoData, setParams, LoadMore } = LoadData({
51
+ api: api.value,
52
+ afterLoadData: afterLoadData?.value,
53
+ options: options.value
54
+ })
55
+ // 搜索相关
56
+ const inputTxt = ref('')
57
+ const inputChange = debounce(() => {
58
+ console.log('input change')
59
+ setParams({ search: inputTxt.value })
60
+ })
61
+
62
+ // 用于父组件设置额外的参数(选项卡切换的时候使用)--> isClear true 清空列表需测试
63
+ const setListParams = (obj: any, isClear = true) => {
64
+ const param = ref<{
65
+ search?: string
66
+ [key: string]: any
67
+ }>({})
68
+ if (props.isNeedSearch) {
69
+ param.value.search = inputTxt.value
70
+ }
71
+ param.value = { ...obj }
72
+ setParams({ ...param.value }, isClear)
73
+ }
74
+ defineExpose({
75
+ list,
76
+ setListParams
77
+ })
78
+ // 页面滚动相关
79
+ const scrollTop = ref(0)
80
+ const scroll = (e: any) => {
81
+ scrollTop.value = e.detail.scrollTop
82
+ }
83
+
84
+ const emit = defineEmits(['scrollTolower'])
85
+ const scrolltolower = () => {
86
+ console.log('触底啦!')
87
+ LoadMore()
88
+ emit('scrollTolower')
89
+ }
90
+ </script>
91
+ <template>
92
+ <template v-if="listType == 'default'">
93
+ <view class="lxx_list_box">
94
+ <view class="search_box" v-if="isNeedSearch" :style="{ position: isFixedSearch ? 'fixed' : 'unset' }">
95
+ <!-- <u-search :placeholder="searchPlaceholder" v-model="inputTxt" @change="inputChange" :show-action="false"></u-search> -->
96
+ </view>
97
+ <view class="lxx_list_box_content" :style="{ paddingTop: isNeedSearch && isFixedSearch ? '100rpx' : 'unset' }">
98
+ <slot name="list_title"></slot>
99
+ <template v-for="(item, index) in list" :key="index">
100
+ <slot v-bind:item="item" v-bind:index="index"></slot>
101
+ </template>
102
+ <slot name="list_bottom"></slot>
103
+ </view>
104
+ <lxListState :is-empty="isEmpty" :is-loading="isLoading" :is-no-data="isNoData"></lxListState>
105
+ </view>
106
+ </template>
107
+
108
+ <template v-else>
109
+ <scroll-view scroll-y="true" class="scroll-Y" @scroll="scroll" @scrolltolower="scrolltolower">
110
+ <view
111
+ class="search_box"
112
+ v-if="isNeedSearch"
113
+ :class="{ lxx_scroll_fixed: isNeedSearch && scrollTop > scrollTopThreshold }"
114
+ :style="{ top: scrollTop + 'px' }"
115
+ >
116
+ <!-- <u-search :placeholder="searchPlaceholder" v-model="inputTxt" @change="inputChange" :show-action="false"></u-search> -->
117
+ </view>
118
+ <!-- 防止页面上顶 -->
119
+ <view class="search_box" v-if="isNeedSearch && scrollTop > scrollTopThreshold">
120
+ <!-- <u-search :placeholder="searchPlaceholder" v-model="inputTxt" @change="inputChange" :show-action="false"></u-search> -->
121
+ </view>
122
+ <view class="lxx_list_box">
123
+ <slot name="list_title"></slot>
124
+ <view v-for="(item, index) in list" :key="index">
125
+ <slot v-bind:item="item" v-bind:index="index"></slot>
126
+ </view>
127
+ <slot name="list_bottom"></slot>
128
+ </view>
129
+ <lxListState :is-empty="isEmpty" :is-loading="isLoading" :is-no-data="isNoData"></lxListState>
130
+ </scroll-view>
131
+ </template>
132
+ </template>
133
+ <style lang="scss" scoped>
134
+ .lxx_list_box {
135
+ position: relative;
136
+
137
+ .search_box {
138
+ padding: 10rpx 20rpx;
139
+ width: 100%;
140
+ height: 90rpx;
141
+ background-color: #fff;
142
+ box-sizing: border-box;
143
+ }
144
+ }
145
+
146
+ .scroll-Y {
147
+ height: 100%;
148
+ position: relative;
149
+
150
+ .search_box {
151
+ padding: 10rpx 20rpx;
152
+ width: 100%;
153
+ box-sizing: border-box;
154
+ background-color: #ffffff;
155
+ z-index: 2;
156
+ }
157
+
158
+ .lxx_scroll_fixed {
159
+ position: absolute;
160
+ }
161
+ }
162
+ </style>