罗世杰:feat:初始化统计色块,完成店铺列表和找店列表的切换,完成首页导航

This commit is contained in:
LuoShijie
2023-11-06 00:08:37 +08:00
parent 79d26d70cf
commit 237f2451b8
19 changed files with 323 additions and 115 deletions

View File

@@ -1,20 +1,23 @@
{ // launch.json 配置了启动调试时相关设置configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ {
// launchtype项可配置值为local或remote, local代表前端连本地云函数remote代表前端连云端云函数 // launch.json 配置了启动调试时相关设置configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
"version": "0.0", // launchtype项可配置值为local或remote, local代表前端连本地云函数remote代表前端连云端云函数
"configurations": [{ "version" : "0.0",
"app-plus" : "configurations" : [
{ {
"launchtype" : "local" "app-plus" : {
}, "launchtype" : "local"
"default" : },
{ "default" : {
"launchtype" : "local" "launchtype" : "local"
}, },
"mp-weixin" : "mp-weixin" : {
{ "launchtype" : "local"
"launchtype" : "local" },
}, "type" : "uniCloud"
"type" : "uniCloud" },
} {
"playground" : "standard",
"type" : "uni-app:app-android"
}
] ]
} }

View File

@@ -1,63 +0,0 @@
<template>
<view class="nav-card">
<u-grid :col="4">
<u-grid-item>
<u-icon name="photo" :size="30"></u-icon>
<view class="grid-text">图片</view>
</u-grid-item>
<u-grid-item>
<u-icon name="lock" :size="30"></u-icon>
<view class="grid-text">锁头</view>
</u-grid-item>
<u-grid-item>
<u-icon name="hourglass" :size="30"></u-icon>
<view class="grid-text">沙漏</view>
</u-grid-item>
<u-grid-item>
<u-icon name="hourglass" :size="30"></u-icon>
<view class="grid-text">沙漏</view>
</u-grid-item>
<u-grid-item>
<u-icon name="photo" :size="30"></u-icon>
<view class="grid-text">图片</view>
</u-grid-item>
<u-grid-item>
<u-icon name="lock" :size="30"></u-icon>
<view class="grid-text">锁头</view>
</u-grid-item>
<u-grid-item>
<u-icon name="hourglass" :size="30"></u-icon>
<view class="grid-text">沙漏</view>
</u-grid-item>
<u-grid-item>
<u-icon name="hourglass" :size="30"></u-icon>
<view class="grid-text">沙漏</view>
</u-grid-item>
</u-grid>
</view>
</template>
<script>
export default {
name:"HomeNavCard",
data() {
return {
};
}
}
</script>
<style lang="scss">
.nav-card {
margin: 15px 0px;
padding: 10px 0;
background-color: $uni-bg-color;
border-radius: $uni-border-radius-lg;
box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.10);
.grid-text {
font-size: 14px;
}
}
</style>

View File

@@ -0,0 +1,55 @@
<template>
<view>
<SearchShopListItem
v-for="item in shopInfoList"
:shopInfo="item"
></SearchShopListItem>
</view>
</template>
<script>
/**
* @property {Array} shopInfoList 对象数组,(不带图片)需要展示的商铺列表
*/
export default {
name:"SearchShopList",
data() {
return {
};
},
props: {
shopInfoList: {
type: Array,
default() {
return [
{
title: '寻找旺铺,200平米左右寻找旺铺,200平米左右寻找旺铺,200平米左右寻找旺铺,200平米左右',
price: 5000,
date: '2023-11-02',
phoneNum: 13348946108,
pos: '锦江区',
category: '餐饮美食',
uname: 'A先生',
sqr: 500
},
{
title: '寻找旺铺,200平米左右寻找旺铺,200平米左右寻找旺铺,200平米左右寻找旺铺,200平米左右',
price: 7000,
date: '2023-11-02',
phoneNum: 13348946108,
pos: '锦江区',
category: '餐饮美食',
uname: '王先生',
sqr: 200
}
]
}
}
}
}
</script>
<style lang="scss">
</style>

View File

@@ -4,24 +4,47 @@
<view class="text-area"> <view class="text-area">
<text>{{shopInfo.title}}</text> <text>{{shopInfo.title}}</text>
<view class="pos-and-sqr"> <view class="pos-and-sqr">
<view>
<view> <view>
<text>{{shopInfo.sqr}}m2</text> <u-image src="/static/shoplist/sy_icon_lbpm.png" width="12px" height="15px"></u-image>
</view>
<view>
<text>{{shopInfo.uname}}</text>
</view>
<view>
<text>{{shopInfo.phoneNum}}</text>
</view> </view>
<text>{{shopInfo.sqr}}m2</text>
</view>
<view>
<view>
<u-image src="/static/shoplist/sy_icon_lbxm.png" width="12px" height="15px"></u-image>
</view>
<text>{{shopInfo.uname}}</text>
</view>
<view style="flex:2">
<view>
<u-image src="/static/shoplist/sy_icon_lblxr.png" width="12px" height="15px"></u-image>
</view>
<text>{{shopInfo.phoneNum}}</text>
</view>
</view>
<view class="cart-and-date">
<view>
<view>
<u-image src="/static/shoplist/sy_icon_lbhy.png" width="12px" height="15px"></u-image>
</view>
<text>{{shopInfo.category}}</text>
</view>
<view>
<view>
<u-image src="/static/shoplist/sy_icon_lbhdw.png" width="12px" height="15px"></u-image>
</view>
<text>{{shopInfo.pos}}</text>
</view>
<view style="flex:2">
<view>
<u-image src="/static/shoplist/sy_icon_lbrq.png" width="12px" height="15px"></u-image>
</view>
<text>发布日期{{shopInfo.date}}</text>
</view> </view>
<view class="rent-and-date">
<text>{{shopInfo.category}}</text>
<text>发布日期{{shopInfo.pos}}</text>
<text>发布日期{{shopInfo.date}}</text>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
@@ -58,7 +81,7 @@
} }
</script> </script>
<style lang="scss"> <style lang="scss" scoped>
.list-border { .list-border {
margin: 10px 0; margin: 10px 0;
padding: 10px; padding: 10px;
@@ -67,37 +90,51 @@
box-shadow: 0 1px 2px 0 rgba(224, 224, 224, 0.50); box-shadow: 0 1px 2px 0 rgba(224, 224, 224, 0.50);
.list-container { .list-container {
display: flex; display: flex;
height: 80px; height: 90px;
margin-bottom: 5px;
font-size: 12px; font-size: 12px;
} }
.text-area { .text-area {
margin-left: 10px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
> text { > text {
font-size: 14px; font-size: 14px;
} }
.pos-and-sqr { >view {
display: flex; display: flex;
>view {
flex:1;
display: flex;
>view {
margin-right: 4px;
}
}
}
.pos-and-sqr {
justify-content: space-between;
margin-top: 5px;
padding-bottom: 6px;
text { text {
margin-right: 24px;
color: #359867; color: #359867;
line-height: 12px;
}
>view {
display: flex;
>view {
margin-right: 4px;
}
} }
} }
.rent-and-date { .cart-and-date {
border-top: 1px solid #f7f7f7;
padding-top: 5px;
justify-content: space-between;
font-weight: 500;
text { text {
margin-right: 6px;
color: #CC3333; color: #CC3333;
line-height: 12px;
} }
} }
} }
.list-ads {
border-top: 1px solid #f7f7f7;
padding-top: 5px;
display: flex;
justify-content: space-between;
}
} }
</style> </style>

View File

@@ -0,0 +1,77 @@
<template>
<view class="nav-card">
<u-grid :col="4" customStyle="height: 334rpx;align-content: normal" >
<u-grid-item v-for="(item, index) in navItems" :key="item.icon" @click="handleItemClick(index)">
<u-icon :name="item.icon" :size="46"></u-icon>
<view class="grid-text">{{ item.text }}</view>
</u-grid-item>
</u-grid>
</view>
</template>
<script>
export default {
data() {
return {
navItems: [{
icon: "/static/navbar/sy_icon_zrxx.png",
text: "转让信息"
},
{
icon: "/static/navbar/sy_icon_zdxx.png",
text: "找店信息"
},
{
icon: "/static/navbar/sy_icon_czxx.png",
text: "出租信息"
},
{
icon: "/static/navbar/sy_icon_xmzs.png",
text: "项目招商"
},
{
icon: "/static/navbar/sy_icon_cjal.png",
text: "成交案例"
},
{
icon: "/static/navbar/sy_icon_spdt.png",
text: "速配地图"
},
{
icon: "/static/navbar/sy_icon_zmhb.png",
text: "招募合伙"
},
{
icon: "/static/navbar/sy_icon_lxwm.png",
text: "联系我们"
}
// 可以继续添加更多的项目
]
};
},
methods: {
handleItemClick(index) {
// 在这里处理点击事件,并使用下标值
console.log(`项目 ${index} 被点击了`);
// 或者执行其他需要的操作
}
}
};
</script>
<style lang="scss">
.nav-card {
margin: 15px 0px;
padding: 10px 0;
background-color: $uni-bg-color;
border-radius: $uni-border-radius-lg;
box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.10);
.grid-text {
font-size: 12px;
}
}
</style>

View File

@@ -18,14 +18,14 @@
<script> <script>
/** /**
* @property @property {String} 需要显示的消息 * @property {String} text 需要显示的消息
*/ */
export default { export default {
props: { props: {
text: { text: {
type: String, type: String,
default() { default() {
return '寒雨连江夜入吴 平明送客楚山孤 洛阳亲友如相问 一片冰心在玉壶' return ' '
} }
} }
} }

View File

@@ -0,0 +1,56 @@
<template>
<view class="root u-flex">
<view class="left">
<view>
<u-image src="/static/statistics/sy_icon_ljyh.png"
width="356rpx"
height="320rpx"
/>
</view>
</view>
<view class="right">
<view>
<u-image src="/static/statistics/sy_icon_ljzd1.png"
width="340rpx"
height="150rpx"
/>
</view>
<view>
<u-image src="/static/statistics/sy_icon_ljzd0.png"
width="340rpx"
height="150rpx"
/>
</view>
</view>
</view>
</template>
<script>
</script>
<style scoped lang="scss">
.root {
position: relative;
margin: 10px 0;
display: flex;
justify-content: space-between;
text {
font-size: 13px;
font-weight: 800;
}
.left {
color: #06562E;
.text1 {
}
}
.right{
display: flex;
flex-direction: column;
justify-content: space-between;
}
}
</style>

View File

@@ -3,10 +3,17 @@
<InputAndSwiper></InputAndSwiper> <InputAndSwiper></InputAndSwiper>
<view class="home-content"> <view class="home-content">
<HomeNavCard></HomeNavCard> <HomeNavCard></HomeNavCard>
<HomeNoticeBar></HomeNoticeBar> <HomeNoticeBar :text="notice"/>
<ShowShopList/> <Statistics :data="statisticsNum"/>
<SearchShopListItem></SearchShopListItem> <view class="show-and-search">
<SearchShopListItem></SearchShopListItem> <view class="show-tab list-tab" :class="{ 'tab-activate': chooseIndex === 0 }" @click="this.chooseIndex=0">
<text>店铺列表</text>
</view>
<view class="search-tab list-tab" :class="{ 'tab-activate': chooseIndex === 1 }" @click="this.chooseIndex=1">
<text>找店列表</text>
</view>
</view>
<SearchShopList v-if="chooseIndex"/><ShowShopList v-else/>
</view> </view>
<TabBar :current-page="0"></TabBar> <TabBar :current-page="0"></TabBar>
</view> </view>
@@ -14,13 +21,19 @@
<script> <script>
import HomeNoticeBar from "./HomeNoticeBar.vue" import HomeNoticeBar from "./HomeNoticeBar.vue"
import HomeNavCard from "./HomeNavCard.vue"
import Statistics from "./Statistics.vue"
export default { export default {
components: { components: {
HomeNoticeBar HomeNavCard,
HomeNoticeBar,
Statistics
}, },
data() { data() {
return { return {
notice: '寒雨连江夜入吴 平明送客楚山孤 洛阳亲友如相问 一片冰心在玉壶',
chooseIndex: 0,
statisticsNum: [231753, 1345]
} }
}, },
onLoad() { onLoad() {
@@ -28,6 +41,11 @@
}, },
methods: { methods: {
},
computed: {
isActive(currentIndex) {
// 怎么完善此处的代码
}
} }
} }
</script> </script>
@@ -39,6 +57,31 @@
.home-content { .home-content {
margin: 0 10px; margin: 0 10px;
} }
.show-and-search{
display: flex;
.list-tab {
z-index: 2;
width: 259rpx;
height: 70rpx;
background: #B7EBD2;
border-radius: 11px 100px 0px 0px;
color: #fff;
font-size: 15px;
line-height: 21px;
font-weight: 500;
display: flex;
align-items: center;
justify-content: center;
}
.search-tab {
z-index: 1;
transform: translateX(-61rpx);
}
.tab-activate {
background: linear-gradient(#E86262,#CC3333);
z-index: 3;
}
}
} }
</style> </style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB