Переглянути джерело

feat:提交代码,完成商贸专区UI开发

longzhicheng 1 рік тому
батько
коміт
b90fad916e

+ 16 - 0
src/apis/quickLink.ts

@@ -0,0 +1,16 @@
1
+import { defHttp } from '~/utils/http'
2
+import type {PageModel} from "~/apis/model/pageModel";
3
+import type {HomeProduct} from "~/apis/model/product.model";
4
+
5
+enum API {
6
+    GET_CATEGORY = 'api/store/merchant/category/lst/',
7
+}
8
+/**
9
+ * 店铺分类
10
+ */
11
+export function getCategoryList(id) {
12
+    return defHttp.get({
13
+        url: API.GET_CATEGORY
14
+    })
15
+}
16
+

Різницю між файлами не показано, бо вона завелика
+ 792 - 1
src/pages.json


+ 1 - 1
src/pages/home/constants.js

@@ -1,4 +1,4 @@
1
-import { KINGKONGKEY } from '~/apis/model/common.model'
1
+import { KINGKONGKEY } from '../../apis/model/common.model.ts'
2 2
 export const TOP_LAB_ARR = [{
3 3
 		title: "精品",
4 4
 		checked: true,

+ 376 - 3
src/pages/quick-fuc/business.vue

@@ -1,13 +1,386 @@
1 1
 <template>
2
-	<view class="">111</view>
2
+	<view class="business-container">
3
+		<view class="lab-content">
4
+			<scroll-view scroll-x="true" class="lab-item">
5
+				<view class="lab-item-x" v-for="(item,index) in tabList" :key="'lab-item-x-'+index">
6
+					<view class="lab-item-small" @click="onTabClick(index)">
7
+						<text :class="currentIndex==index?'lab-title':'lab-default-title'">111</text>
8
+						<view :class="currentIndex==index?'lab-line':'lab-default-line'"></view>
9
+					</view>
10
+				</view>
11
+			</scroll-view>
12
+		</view>
13
+		<view class="banner-content">
14
+			<image class="top-banner" src="/static/img/img_banner_dslm.png" mode="aspectFill"></image>
15
+		</view>
16
+
17
+		<view class="fuc-content">
18
+			<view class="fuc-item" v-for="(item,index) in MU_TABLE_LIST">
19
+				<text class="item-title">{{item.title}}</text>
20
+				<text class="item-des">{{item.des}}</text>
21
+				<image class="item-img" :src="item.icon" mode=""></image>
22
+			</view>
23
+		</view>
24
+
25
+		<view v-for="(item,index) in goodsList">
26
+			<view class="vip-content">
27
+				<image class="vip-bg" src="/static/img/item_smq_bg.png" mode="aspectFill"></image>
28
+				<view class="left-lab-content">
29
+					<image class="lab-icon" src="" mode=""></image>
30
+					<text class="lab-title">会员专区</text>
31
+					<view class="small-lab">补充养老</view>
32
+				</view>
33
+
34
+				<view class="right-lab-content">
35
+					<text class="right-tx">进入店铺</text>
36
+					<image class="right-icon" src="/static/icon/img_jt_right.png" mode="widthFix"></image>
37
+				</view>
38
+			</view>
39
+
40
+			<view class="goods-scoll-content">
41
+				<scroll-view scroll-x="true" class="goods-scoll-item">
42
+					<view class="goods-scoll-item-x" v-for="(item,index) in goodsList"
43
+						:key="'goods-scoll-item-x-'+index">
44
+						<view class="goods-item">
45
+							<image class="goods-img" src="" mode="aspectFill"></image>
46
+							<text class="goods-title">11</text>
47
+							<view class="price-content">
48
+								<text class="goods-des">20</text>
49
+								<text class="goods-des">pv:0</text>
50
+							</view>
51
+						</view>
52
+					</view>
53
+				</scroll-view>
54
+			</view>
55
+		</view>
56
+
57
+
58
+
59
+
60
+	</view>
3 61
 </template>
4 62
 
5 63
 <script setup>
6
-	
64
+	import {
65
+		MU_TABLE_LIST
66
+	} from "./constants.js"
67
+	import {  getCategoryList } from '~/apis/quickLink'
68
+	const currentIndex = ref(0)
69
+	const tabList = ref([1, 1, 1, 1])
70
+	const goodsList = ref([1, 1, 1, 1, 1, 1])
71
+
72
+
7 73
 	onLoad((option) => {
8 74
 		console.log("===onLoad");
9 75
 	})
76
+
77
+	onReachBottom(() => {
78
+		console.log('到底了。。。')
79
+	})
80
+
81
+	onPullDownRefresh(() => {
82
+		uni.stopPullDownRefresh()
83
+	})
84
+
85
+
86
+	function onTabClick(position) {
87
+		currentIndex.value = position
88
+	}
89
+	function getategoryCList(){
90
+		getCategoryList().then((res)=>{
91
+			console.log("===res",res);
92
+		})
93
+	}
10 94
 </script>
11 95
 
12
-<style lang="scss">
96
+<style lang="scss" scoped>
97
+	.business-container {
98
+		display: flex;
99
+		flex-direction: column;
100
+		min-height: 100VH;
101
+		background-color: #f8f8f8;
102
+		box-sizing: border-box;
103
+
104
+		.goods-content {
105
+			display: flex;
106
+			flex-direction: row;
107
+			margin-left: 10rpx;
108
+			margin-right: 10rpx;
109
+
110
+
111
+		}
112
+
113
+		.goods-item {
114
+			display: flex;
115
+			margin-left: 10rpx;
116
+			margin-right: 10rpx;
117
+			width: 230rpx;
118
+			align-items: center;
119
+			justify-content: center;
120
+			flex-direction: column;
121
+			background-color: #fff;
122
+			border-radius: 20rpx;
123
+
124
+			.goods-img {
125
+				width: 230rpx;
126
+				height: 230rpx;
127
+				border-top-right-radius: 20rpx;
128
+				border-top-left-radius: 20rpx;
129
+				background-color: #333;
130
+			}
131
+
132
+			.goods-title {
133
+				width: 230rpx;
134
+				font-size: 28rpx;
135
+				color: #333;
136
+				margin-top: 10rpx;
137
+				text-overflow: ellipsis;
138
+				overflow: hidden;
139
+				margin-left: 10rpx;
140
+				margin-right: 10rpx;
141
+				word-break: break-all;
142
+				white-space: nowrap;
143
+			}
144
+
145
+			.price-content {
146
+				margin-top: 10rpx;
147
+				display: flex;
148
+				margin-bottom: 20rpx;
149
+				flex-direction: row;
150
+				align-items: center;
151
+				justify-content: space-between;
152
+				padding-left: 16rpx;
153
+				padding-right: 16rpx;
154
+				box-sizing: border-box;
155
+				width: 100%;
156
+
157
+				.price-left {
158
+					font-size: 28rpx;
159
+					color: #333;
160
+				}
161
+
162
+				.price-rifht {
163
+					font-size: 28rpx;
164
+					color: #333;
165
+				}
166
+			}
167
+
168
+
169
+		}
170
+
171
+		.vip-content {
172
+			margin: 20rpx;
173
+			position: relative;
174
+			height: 100rpx;
175
+			display: flex;
176
+			flex-direction: row;
177
+			align-items: center;
178
+			box-sizing: border-box;
179
+
180
+			.vip-bg {
181
+				position: absolute;
182
+				height: 100rpx;
183
+				width: 710rpx;
184
+				border-top-right-radius: 20rpx;
185
+				border-top-left-radius: 20rpx;
186
+			}
187
+
188
+			.right-lab-content {
189
+				display: flex;
190
+				flex-direction: row;
191
+				align-items: center;
192
+				flex: 1;
193
+				z-index: 22;
194
+				justify-content: flex-end;
195
+
196
+				.right-tx {
197
+					color: #fff;
198
+					font-size: 26rpx;
199
+					margin-right: 10rpx;
200
+				}
201
+
202
+				.right-icon {
203
+					width: 14rpx;
204
+					height: 10rpx;
205
+					margin-right: 20rpx;
206
+				}
207
+			}
208
+
209
+			.left-lab-content {
210
+				height: 50rpx;
211
+				background-color: #fff;
212
+				border-radius: 20rpx;
213
+				z-index: 222;
214
+				display: flex;
215
+				flex-direction: row;
216
+				align-items: center;
217
+				margin-left: 20rpx;
218
+
219
+				.lab-icon {
220
+					width: 30rpx;
221
+					height: 30rpx;
222
+					background-color: #333;
223
+					margin-left: 10rpx;
224
+				}
225
+
226
+				.lab-title {
227
+					font-size: 26rpx;
228
+					color: #333;
229
+					margin-left: 10rpx;
230
+				}
231
+
232
+				.small-lab {
233
+					border-radius: 20rpx;
234
+					background-color: #000;
235
+					margin-right: 10rpx;
236
+					color: #fff;
237
+					font-size: 24rpx;
238
+					padding-left: 6rpx;
239
+					padding-right: 6rpx;
240
+					margin-left: 20rpx;
241
+				}
242
+
243
+			}
244
+
245
+		}
246
+
247
+		.fuc-content {
248
+			display: flex;
249
+			padding-left: 14rpx;
250
+			padding-right: 14rpx;
251
+			margin-top: 20rpx;
252
+			flex-direction: row;
253
+
254
+			.fuc-item {
255
+				flex: 1;
256
+				display: flex;
257
+				flex-direction: column;
258
+				background-color: #fff;
259
+				border-radius: 10rpx;
260
+				margin-left: 6rpx;
261
+				margin-right: 6rpx;
262
+				padding-top: 30rpx;
263
+				padding-bottom: 30rpx;
264
+				align-items: center;
265
+				justify-content: center;
266
+
267
+				.item-img {
268
+					width: 80rpx;
269
+					height: 80rpx;
270
+				}
271
+
272
+				.item-title {
273
+					font-size: 30rpx;
274
+					font-weight: bolder;
275
+					color: #333;
276
+					margin-bottom: 10rpx;
277
+				}
278
+
279
+				.item-des {
280
+					font-size: 24rpx;
281
+					color: #999;
282
+					margin-bottom: 40rpx;
283
+				}
284
+
285
+			}
286
+		}
287
+
288
+		.banner-content {
289
+			background-color: #fff;
290
+			padding: 20rpx;
291
+			height: 360rpx;
292
+			display: flex;
293
+			flex-direction: column;
294
+			margin-top: 90rpx;
295
+			box-sizing: border-box;
296
+
297
+			.top-banner {
298
+				border-radius: 20rpx;
299
+				background: #999;
300
+				height: 360rpx;
301
+				width: 100%;
302
+			}
303
+		}
304
+
305
+		.goods-scoll-content {
306
+			width: 100%;
307
+			display: flex;
308
+			flex-direction: row;
309
+			align-items: center;
310
+
311
+			.goods-scoll-item {
312
+				display: flex;
313
+				flex-direction: row;
314
+				white-space: nowrap;
315
+				width: 100%;
316
+				margin-left: 10rpx;
317
+				margin-right: 10rpx;
318
+			}
319
+
320
+			.goods-scoll-item-x {
321
+				display: inline-block;
322
+				text-align: center;
323
+				width: 230rpx;
324
+				margin-right: 16rpx;
325
+			}
326
+		}
327
+
328
+		.lab-content {
329
+			width: 100%;
330
+			height: 90rpx;
331
+			display: flex;
332
+			flex-direction: row;
333
+			align-items: center;
334
+			position: fixed;
335
+			top: 0;
336
+			left: 0;
337
+			background-color: #fff;
338
+			z-index: 99999;
339
+
340
+			.lab-item {
341
+				display: flex;
342
+				flex-direction: row;
343
+				white-space: nowrap;
344
+				width: 100%;
345
+			}
346
+
347
+			.lab-item-x {
348
+				display: inline-block;
349
+				margin-right: 10px;
350
+				text-align: center;
351
+			}
352
+
353
+			.lab-item-small {
354
+				display: flex;
355
+				flex-direction: column;
356
+				align-items: center;
357
+				width: 124rpx;
358
+
359
+				.lab-default-title {
360
+					font-size: 28rpx;
361
+					margin-bottom: 10rpx;
362
+				}
363
+
364
+				.lab-title {
365
+					font-size: 32rpx;
366
+					margin-bottom: 10rpx;
367
+					color: #FE0032;
368
+				}
369
+
370
+				.lab-line {
371
+					width: 50rpx;
372
+					height: 6rpx;
373
+					background-color: #FE0032;
374
+					border-radius: 4rpx;
375
+				}
376
+
377
+				.lab-default-line {
378
+					width: 50rpx;
379
+					height: 6rpx;
380
+					border-radius: 4rpx;
381
+				}
382
+
383
+			}
384
+		}
385
+	}
13 386
 </style>

BIN
src/static/icon/icon_sm_gfkf.png


BIN
src/static/icon/img_jt_right.png


BIN
src/static/img/img_banner_dslm.png


BIN
src/static/img/item_smq_bg.png