《微信小程序》
实验三报告
1. 实验名称: 仿京东购物商城
2. 实验目的: 熟悉使用微信小程序开发工具,开发微信小程序项目。仿京东购物商城。首页按分块显示商品。点击“分类”tab,跳转到商品的分类页面。
3. 实验要求: 手工编写的项目。
具体要求:根据列表式布局、多面板布局、标签式布局的实现技术,参照“京东购物”小程序,实现“首页,分类,详细内容”3个页面。
实现这3个页面的布局结构,图片及其位置要保持“京东购物”小程序展示的原样。
(1)粘贴“首页、分类、详细内容”3个页面的显示效果。提供截图。
(2)源代码,包括:每个页面的wxml、wxss、js三个代码文件。还有app.json代码文件。共10个代码文件。
特别要求:不能破坏实验报告的文档格式,否则一律0分处理。
4. 实验结果: 将正确的答案(操作结果的屏幕截图,中文描述的用例描述的步骤)写在本报告上。
首页界面
商品分类界面
搜索界面
* 代码:
* 首页wxml: <!--顶部搜素框--> <view class="search"> <view class="searchlong">
<image class="searchico" src="/images/index/16.png"></image>
<input class="searchkuang" type="text" placeholder="窗帘遮光"/>
<image class="photoico" src="/images/index/17.png"></image>
<button class="searchbutton">搜索</button> </view>
<image class="doudou" src="/images/index/15.jpg"></image>
<view class="daohanglan"> <block wx:for="{{daohang}}">
<text class="daohangstyle">{{item}}</text> </block>
<image class="xiala" src="/images/index/18.png"></image> </view> </view>
<!--顶部轮播图--> <view class="luobotu"> <swiper autoplay="{
{autoplay}}" interval="{{interval}}"> <block wx:for="{{imgUrls}}">
<swiper-item> <image class = "lunboimg" src="{{item}}"></image>
</swiper-item> </block> </swiper> </view> <!--10个京东图标-->
<view class="content"> <block wx:for="{{elements}}">
<view class="content-item"> <view> <image src="{
{item.image}}" style="width:86rpx;height:78rpx;"></image> </view>
<view> {{item.name}} </view> </view> </block> </view>
<view class="shenquan">
<image class="shenquanimg" src="/images/index/11.jpg"></image> </view>
<!--商品展示--> <view class="hr"></view> <view class="footer">
<text class="jd">京东秒杀</text>
<image class="footerimg" src="/images/index/12.png"></image>
<text class="wenzi">9.9元抢翻天</text> <text class="jiantou">></text>
<view class="content1"> <block wx:for="{{elements2}}">
<view class="botton"> <view> <image src="{
{item.image}}" style="width:170rpx;height:200rpx;"></image>
<text class="money"> {{item.name}} </text> </view>
</view> </block> </view> </view> 首页wxss: /*顶部图片大小*/ swiper image {
width: 100%; height: 300rpx; } .search{ position: absolute;
width: 750rpx; height: 300rpx; background-color: #FF0000; } .kongge{
width: 20px; height: 20px; } .searchbutton{
background-color: rgb(201,52,35); width: 50px; height: 55rpx;
margin-top: 2rpx; border-radius: 10px 10px 10px 10px; font-size: 9px;
color: #f4f5f6; } .doudou{ width: 60rpx; height:60rpx;
position: absolute; right: 20rpx; top: 5rpx; } .searchico{
margin-top: 5px; margin-left: 10px; margin-right: 7px; width: 20px;
height: 20px; border-radius: 10px 10px 10px 10px; } .daohanglan{
position: relative; top: 5px; } .luobotu{ position: relative;
top: 70px; } .shenquan{ margin-top: 23px; width: auto; height: 130rpx;
} .shenquanimg{ margin-left: 20rpx; margin-right: 20rpx; height: 130rpx;
width: 700rpx; } .lunboimg{ height: 100px; width: 700rpx;
margin-left: 25rpx; margin-right: 25rpx;
border-radius: 10px 10px 10px 10px; } .xiala{ position: relative;
top: 5px; right: 0px; width: 20px; height: 20px; } .daohangstyle{
font-size: 13px; color: #f4f5f6; margin: 17rpx; } .photoico{
margin-top: 5px; margin-left: 10px; margin-right: 2px; width: 20px;
height: 20px; border-radius: 10px 10px 10px 10px; } .searchkuang{
font-size: 12px; width: 335rpx; height: 30px; } .searchlong{
position: relative; display: flex; flex-direction: row;
flex-wrap: wrap; width: 640rpx; height: 25px;
border-radius: 20px 20px 20px 20px; font-weight: 100;
background-color: #f4f5f6; left: 20rpx; } /*10个京东图标外部容器布局*/ .content {
display: flex; flex-direction: row; flex-wrap: wrap;
position: relative; top: 20px; } /*10个京东图标内部容器样式*/ .content-item {
width: 20%; text-align: center; font-size: 24rpx; margin: 8rpx 0; }
/*分割线样式*/ .hr { width: 100%; height: 30rpx; background-color: #f4f5f6; }
.content1{ display: flex; flex-direction: row; flex-wrap: wrap;
height: 400rpx; } /*页面底部外部容器布局 .footer { display: flex;
flex-direction: row; justify-content: space-between;
padding: 20rpx 40rpx; }*/ /*"京东拼购"字体样式*/ .jd { margin: 20rpx; } .footerimg{
margin-top: 20rpx; width: 200rpx; height: 50rpx; } .wenzi {
margin-left: 130rpx; font-size: 12px; color: darkgrey; } .jiantou{
font-size: 20px; margin-top: 20rpx; position: absolute; right: 0rpx;
font-weight: bolder; } .botton{ margin-top: 10rpx; width: 150rpx;
margin-left: 10rpx; margin-right: 10rpx; height: 230rpx; } .money{
color: #FF0000; font-size: 14px; font-weight: bolder; } 首页js: Page({
data: { autoplay: true, interval: 5000, imgUrls: [
"/images/haibao/haibao-1.png", "/images/haibao/haibao-3.jpg",
"/images/haibao/haibao-2.png" ], daohang: [ "首页",
"补贴爆品", "女鞋", "宠物", "爱车", "箱包皮具" ],
elements: [{ image: "/images/index/1.png", name: "京东超市",
}, { image: "/images/index/2.png", name: "京东家电", },
{ image: "/images/index/3.png", name: " 京东服饰", },
{ image: "/images/index/4.png", name: "京东手机", },
{ image: "/images/index/5.png", name: "京喜", },
{ image: "/images/index/6.jpg", name: "一元疯抢", }, {
image: "/images/index/7.jpg", name: "领京豆", }, {
image: "/images/index/8.jpg", name: " 领优惠券", }, {
image: "/images/index/9.jpg", name: "免费水果", }, {
image: "/images/index/10.jpg", name: "充值中心", }, ],
elements2: [{ image: "/images/index/19.jpg", name: "京东超市",
}, { image: "/images/index/20.jpg", name: "京东家电", }, {
image: "/images/index/21.jpg", name: " 京东服饰", }, {
image: "/images/index/22.jpg", name: " 京东服饰", }, ], } })
搜索wxml: <view class="total"> <view class="search">
<image class="searchicon" src="/images/index/45.png"></image>
<view class="searchtext">手机x</view> </view> <view class="tiaojian">
<view class="zonghe">综合<image class="xiala" src="/images/index/46.png"></image></view>
<view class="xiaoliang">销量</view>
<view class="price">价格<image class="priceimg" src="/images/index/47.png" ></image></view>
<view class="hour"><image class="houtimg" src="/images/index/48.png" ></image>小时达</view>
</view> <view class="biaoji"> <view class="bggray">京东物流</view>
<view class="bggray">新品</view>
<view class="bggray">品牌<image class="pinpai" src="/images/index/46.png"></image></view>
<view class="bggray">拍拍二手</view>
<view class="choose">筛选<image class="shalou" src="/images/index/49.png"></image></view>
</view> <block wx:for="{{elements}}"> <view class="goodsbox1">
<image class="iponeimg" src="{{item.image}}"></image>
<view class="goodstext"> <view class="goodstitle">{
{item.goodstitle}}</view> <view class="canshu">
<view class="goodscanshu1"> {{item.chicun}}英寸</view>
<view class="goodscanshu1">{{item.neicun}}GB内存</view> </view>
<view class="goodsprice">¥{{item.price}}</view> <view class="goodsbox">
<view class="pingjia">{{item.pingjia}}条评价</view>
<view class="pingjia">{{item.haoping}}好评</view> </view>
<view class="goodsbox"> <view class="pingjia">{{item.dianpu}}</view>
<view class="jindian">进店<image style="width: 16rpx;height: 16rpx;" src="/images/index/50.png"></image></view>
</view> </view> </view> </block> </view> 搜索wxss:
/* page/jd-goods/jd-goods.wxss */ .search{ display: flex;
flex-direction: row; flex-wrap: wrap; margin: 20rpx; width: 720rpx;
height: 80rpx; background-color: lightgray;
border-radius: 40rpx 40rpx 40rpx 40rpx; } .searchtext{ text-align: center;
background-color: gray; font-size: 12px; height: 30rpx;
border-radius: 30rpx 30rpx 30rpx 30rpx; padding: 20rpx 20rpx;
padding-top: 10rpx; margin-top: 10rpx; color: aliceblue; } .searchicon{
width: 50rpx; height: 50rpx; margin-top: 15rpx; margin-left: 20rpx; }
.tiaojian{ display: flex; flex-direction: row; flex-wrap: wrap; }
.zonghe{ height: 80rpx; font-size: 14px; margin-left: 50rpx;
margin-right: 50rpx; margin-top: 10rpx; } .xiala{ position: relative;
top: 15rpx; width: 50rpx; height: 50rpx; } .xiaoliang{
font-weight: bolder; height: 80rpx; font-size: 14px;
margin-left: 50rpx; margin-right: 50rpx; margin-top: 25rpx; } .price{
font-weight: bolder; height: 80rpx; font-size: 14px;
margin-left: 50rpx; margin-right: 50rpx; margin-top: 25rpx;
color: darkgrey; } .priceimg{ width: 20rpx; height: 20rpx; } .hour{
font-weight: bolder; height: 80rpx; font-size: 14px;
font-style: oblique; margin-left: 30rpx; margin-top: 25rpx; } .houtimg{
position: relative; top: 10rpx; width: 40rpx; height: 40rpx; } .biaoji{
display: flex; flex-direction: row; flex-wrap: wrap; } .bggray{
text-align: center; background-color: lightgray; font-size: 12px;
height: 30rpx; border-radius: 30rpx 30rpx 30rpx 30rpx;
padding: 20rpx 20rpx; padding-top: 10rpx; margin-left: 30rpx; } .pinpai{
width: 30rpx; height: 30rpx; } .shalou{ width: 30rpx; height: 30rpx; }
.choose{ position: relative; top: 6rpx; text-align: center;
height: 60rpx; font-size: 14px; box-shadow:-0.5px 0px 0px 0px gray ;
padding-left: 10rpx; } .iponeimg{ height: 300rpx; width: 300rpx;
border-radius: 20rpx 20rpx 20rpx 20rpx; } .goodsbox1{ display: flex;
flex-direction: row; flex-wrap: wrap; margin-top: 20rpx; } .goodsbox{
display: flex; flex-direction: row; flex-wrap: wrap; } .goodstext{
margin-left: 10rpx; width: 430rpx; height: 300rpx; display: flex;
flex-direction: row; flex-wrap: wrap; } .goodstitle{ font-weight: bolder;
font-size: 12px; } .goodsprice{ color: red; font-weight: 600;
font-size: 14px; width: 400rpx; } .canshu{ display: flex;
flex-direction: row; flex-wrap: wrap; width: 400rpx; } .goodscanshu1{
font-weight: bolder; text-align: center; height: 25rpx;
border-radius: 15rpx 15rpx 15rpx 15rpx; font-size: 8px; color: gray;
background-color: lightgrey; padding: 5rpx; margin-top: 20rpx;
margin-bottom: 20rpx; margin-left: 0rpx; margin-right: 10rpx; } .pingjia{
font-size: 8px; color: gray; margin-right: 20rpx; } .jindian{
font-size: 8px; font-weight: bolder; } 搜索js: Page({ data: {
elements: [{ image:"/images/index/51.jpg",
goodstitle:"华为HMS超薄便宜智能手机学生价游戏长续航大屏百元机", neicun:"8",
chicun:"6.6", price:"599.00", pingjia:"5000+",
haoping:"97%", dianpu:"百事乐手机官方旗舰店", }, {
image:"/images/index/52.jpg",
goodstitle:"荣耀Play5T Pro 6400万双摄6.6英寸全视屏22.5W超级快充4000mAh大电池",
neicun:"8", chicun:"6.6", price:"1099.00",
pingjia:"20万+", haoping:"96%", dianpu:"荣耀京东自营旗舰店", },
{ image:"/images/index/53.jpg",
goodstitle:"荣耀Play5 活力版 66W超级快充 120Hz全速屏 6400万超清摄像 全网通版8GB+128GB",
neicun:"8", chicun:"6.67", price:"599.00",
pingjia:"5万+", haoping:"97%", dianpu:"百事乐手机官方旗舰店", },
], } }) 商品分类wxml <!--分割线--> <view class="hr"></view> <!--输入框-->
<input placeholder="请输入商品名称"></input> <view class="hr"></view>
<view class="content"> <view class="left"> <!--左侧部分-->
<scroll-view scroll-y="true"> <block wx:for="{{list}}">
<view class="cedaohang">{{item}}</view> </block>
</scroll-view> </view> <view class="right"> <!--右侧部分-->
<view class="order"> <!--分类部分--> <view>热门搜索</view> </view>
<view class="content1"> <block wx:for="{{elements}}">
<view class="botton"> <view>
<image class="img" bindtap="clickchoose" src="{{item.image}}"></image>
<view class="texts"> <text class="money"> {
{item.name}} </text> </view> </view> </view>
</block> </view> </view> </view> 商品分类wxss: /*分割线样式*/ .hr {
border: 1px solid #EEE9E9; width: 100%; opacity: 0.6; } /*输入框样式*/ input {
margin: 15rpx 30rpx; border: 1px solid #ccc; border-radius: 50rpx;
text-align: center; font-size: 32rpx; } /*布局样式*/ .content {
display: flex; flex-direction: row; } /*左边样式*/ .left { width: 25%;
font-size: 30rpx; } scroll-view { height: 90%; } /*左边元素样式*/ .left view {
text-align: center; height: 100rpx; line-height: 100rpx; } /*右边样式*/
.right { width: 75%; } /*分类样式*/ .order { display: flex;
flex-direction: row; text-align: center; padding: 20 rpx; } .order view {
width: 33%; font-size: 32rpx; } .content1{ display: flex;
flex-direction: row; flex-wrap: wrap; height: 400rpx; } .cedaohang{
color: gray } .botton{ text-align: center; margin-left: 10px;
width: 150rpx; } .texts{ width: 150rpx; text-align: center; } .img{
height: 140rpx; width: 100rpx; } .money{ width: 150rpx;
text-align: center; font-size: 12px; margin-left: 40px; } 商品分类js: Page({
data: {
list: ["热搜推荐", "食品酒水", "生鲜果蔬", "美妆护肤", "个护清洁", "精品男装", "精品女装", "内衣配饰", "鞋靴箱包", "手机数码", "家用电器", "电脑办公", "运动户外"],
elements: [{ image: "/images/index/31.png", name: "手机",
}, { image: "/images/index/32.png", name: "冰箱", }, {
image: "/images/index/33.png", name: " 华为", }, {
image: "/images/index/34.jpg", name: "白酒", }, {
image: "/images/index/35.jpg", name: "电饭煲", }, {
image: "/images/index/36.jpg", name: "电风扇", }, {
image: "/images/index/37.jpg", name: "方便面", }, {
image: "/images/index/38.png", name: " 空调", }, {
image: "/images/index/39.png", name: "口红", }, {
image: "/images/index/40.jpg", name: "蓝牙耳机", },{
image: "/images/index/41.png", name: " 跑步鞋", }, {
image: "/images/index/42.jpg", name: "平板电视", }, {
image: "/images/index/43.jpg", name: "洗衣机", },{
image: "/images/index/44.jpg", name: "香水", }, ], },
clickchoose:function(){ wx.navigateTo({
url: '../jd-goods/jd-goods', }) } }) App.json: { "pages": [
"pages/jd-index/jd-index", "page/jd-fenlei/jd-fenlei",
"page/jd-goods/jd-goods" ], "window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#FF0000",
"navigationBarTitleText": "京东购物", "navigationBarTextStyle": "white"
}, "tabBar": { "color": "#4D4D4D", "selectedColor": "#FF0000",
"borderStyle": "black", "list": [ {
"selectedIconPath": "icon/index0.png",
"iconPath": "icon/index.png",
"pagePath": "pages/jd-index/jd-index", "text": "首页" },
{ "selectedIconPath": "icon/sort0.png",
"iconPath": "icon/sort.png",
"pagePath": "page/jd-fenlei/jd-fenlei", "text": "分类" },
{ "selectedIconPath": "icon/shop0.png",
"iconPath": "icon/shop.png",
"pagePath": "pages/jd-index/jd-index", "text": "购物圈" },
{ "selectedIconPath": "icon/cart0.png",
"iconPath": "icon/cart.png",
"pagePath": "pages/jd-index/jd-index", "text": "购物车" },
{ "selectedIconPath": "icon/me0.png",
"iconPath": "icon/me.png",
"pagePath": "pages/jd-index/jd-index", "text": "我的" }
] }, "sitemapLocation": "sitemap.json" }