diff --git a/front-end/mall4uni/src/pages/prod-classify/prod-classify.scss b/front-end/mall4uni/src/pages/prod-classify/prod-classify.scss index 3932b9b..38698c5 100644 --- a/front-end/mall4uni/src/pages/prod-classify/prod-classify.scss +++ b/front-end/mall4uni/src/pages/prod-classify/prod-classify.scss @@ -1,38 +1,48 @@ +/* 容器样式 */ .container { - background: #f4f4f4; - min-height: 100vh; - padding: 7px; + background: #f4f4f4; /* 设置背景颜色为浅灰色 */ + min-height: 100vh; /* 最小高度为视口高度,确保内容不满屏时也有足够的空间 */ + padding: 7px; /* 内边距,给容器内的元素留出一定的空间 */ } + +/* 固定在顶部的线条 */ .line-fix { - width: 100%; - height: 2rpx; - background: #e1e1e1; - position: fixed; - top: 0; + width: 100%; /* 线条宽度为100%,覆盖整个屏幕宽度 */ + height: 2rpx; /* 线条高度为2rpx(响应式单位),非常细的一条线 */ + background: #e1e1e1; /* 线条颜色为浅灰色 */ + position: fixed; /* 将线条固定在页面顶部,不会随页面滚动而移动 */ + top: 0; /* 线条距离页面顶部0像素 */ } + +/* 标题背景样式 */ .tit-background { - width: 100%; - height: 20rpx; - background: #f4f4f4; + width: 100%; /* 背景宽度为100%,覆盖整个屏幕宽度 */ + height: 20rpx; /* 背景高度为20rpx(响应式单位) */ + background: #f4f4f4; /* 背景颜色为浅灰色 */ } + +/* 商品列表样式 */ .prod-list { - display: flex; - flex-wrap: wrap; - justify-content: space-between; + display: flex; /* 使用弹性布局,使子元素可以灵活排列 */ + flex-wrap: wrap; /* 允许子元素换行显示 */ + justify-content: space-between; /* 子元素之间均匀分布,两端对齐 */ } + +/* 深度选择器,用于修改子组件的样式 */ :deep(.prod-items) { - display: inline-block; - width: 345rpx !important; - &:nth-child(2n) { - margin-left: 30rpx; + display: inline-block; /* 将商品项设置为行内块级元素,允许在同一行中显示多个商品 */ + width: 345rpx !important; /* 设置商品项的宽度为345rpx,并使用!important确保优先级 */ + &:nth-child(2n) { /* 对于每第二个商品项 */ + margin-left: 30rpx; /* 左边距为30rpx,使第二列的商品与第一列保持一定间距 */ } } -/* 空 */ + +/* 空状态提示样式 */ .empty { - display: block; - width: 100%; - font-size: 26rpx; - color: #999; - margin-top: 20vh; - text-align: center; + display: block; /* 将空状态提示设置为块级元素 */ + width: 100%; /* 提示宽度为100%,覆盖整个父容器 */ + font-size: 26rpx; /* 字体大小为26rpx(响应式单位) */ + color: #999; /* 文字颜色为浅灰色 */ + margin-top: 20vh; /* 上边距为视口高度的20%,将提示居中显示 */ + text-align: center; /* 文字水平居中 */ } diff --git a/front-end/mall4uni/src/pages/prod-classify/prod-classify.vue b/front-end/mall4uni/src/pages/prod-classify/prod-classify.vue index c43ae5a..2e85f50 100644 --- a/front-end/mall4uni/src/pages/prod-classify/prod-classify.vue +++ b/front-end/mall4uni/src/pages/prod-classify/prod-classify.vue @@ -1,16 +1,13 @@ diff --git a/front-end/mall4uni/src/pages/prod/prod.scss b/front-end/mall4uni/src/pages/prod/prod.scss index 7478438..578df99 100644 --- a/front-end/mall4uni/src/pages/prod/prod.scss +++ b/front-end/mall4uni/src/pages/prod/prod.scss @@ -1,26 +1,35 @@ -.container { +.c /* 容器样式,设置了背景颜色、高度为100%(相对于父元素),并且在底部留出150rpx的内边距 */ +container { background: #f4f4f4; height: 100%; padding-bottom: 150rpx; } + +/* 轮播图组件,设定了高度、宽度以及下边框。内部图片也设定了相同的高度和宽度以确保适应轮播图容器 */ swiper { height: 750rpx; width: 100%; border-bottom: 2rpx solid #f8f8f8; + image { height: 750rpx; width: 100%; } } + +/* 产品信息区域,设置了上下左右的内边距,相对定位,白色背景 */ .prod-info { padding: 30rpx 30rpx 0 30rpx; position: relative; background: #fff; } + +/* 标题包装器,使用了相对定位来放置子元素,并定义了行高和右边距 */ .tit-wrap { position: relative; line-height: 40rpx; padding-right: 104rpx; + /* 列元素,绝对定位在标题包装器的右上角,作为额外的信息展示,如收藏按钮等 */ .col { position: absolute; top: 0; @@ -30,12 +39,14 @@ swiper { font-size: 20rpx; padding-left: 20rpx; text-align: center; + /* 列内的图标,设置为块级元素并居中显示 */ image { display: block; margin: auto; width: 40rpx; height: 40rpx; } + /* 在列元素左侧添加一条竖线装饰 */ &::after { content: ""; display: block; @@ -49,11 +60,15 @@ swiper { } } } + +/* 产品标题,设定字体大小、颜色和右边距 */ .prod-tit { font-size: 32rpx; color: #333; padding-right: 20rpx; } + +/* 销量段落,设置了背景色、行高、颜色、字体大小、上边距和右边距 */ .sales-p { background: #fff; line-height: 40rpx; @@ -62,29 +77,38 @@ swiper { margin-top: 6rpx; margin-right: 104rpx; } + +/* 产品价格部分,包含新旧价格对比 */ .prod-price { font-size: 30rpx; height: 100rpx; line-height: 100rpx; + /* 新价格的颜色、字体大小、加粗和右边距 */ + .price { + color: #eb2444; + font-size: 24rpx; + font-weight: 600; + margin-right: 30rpx; + } + /* 新价格的数字部分,加大字体 */ + .price-num { + font-size: 46rpx; + font-weight: 400; + } + /* 原价,较小字体,灰色,带删除线 */ + .ori-price { + font-size: 25rpx; + color: #999; + text-decoration: line-through; + } } -.price { - color: #eb2444; - font-size: 24rpx; - font-weight: 600; - margin-right: 30rpx; -} -.price-num { - font-size: 46rpx; - font-weight: 400; -} -.ori-price { - font-size: 25rpx; - color: #999; - text-decoration: line-through; -} + +/* 销量文字的颜色 */ .sales { color: #999; } + +/* 更多选项按钮,绝对定位在右侧,设置了宽度、顶部位置、文本对齐、字体大小和颜色 */ .more { position: absolute; right: 20rpx; @@ -95,243 +119,280 @@ swiper { color: #999; letter-spacing: 1px; } + +/* SKU(库存保有单位)信息,设置了内边距、背景色、外边距、相对定位和行高 */ .sku { padding: 20rpx; background: #fff; margin-top: 20rpx; position: relative; line-height: 48rpx; + /* SKU标题,绝对定位在左上角,作为SKU信息的标签 */ + .sku-tit { + position: absolute; + display: inline-block; + width: 60rpx; + left: 20rpx; + font-size: 22rpx; + top: 20rpx; + color: #999; + } + /* SKU内容,从标题右侧开始,单行显示,超出部分用省略号代替 */ + .sku-con { + margin: 0 80rpx; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + font-size: 28rpx; + font-weight: bold; + } } -.sku-tit { - position: absolute; - display: inline-block; - width: 60rpx; - left: 20rpx; - font-size: 22rpx; - top: 20rpx; - color: #999; -} -.sku-con { - margin: 0 80rpx; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - font-size: 28rpx; - font-weight: bold; -} + +/* 评论区包裹,设置了背景色、外边距、相对定位和行高 */ .cmt-wrap { background: #fff; margin-top: 20rpx; position: relative; line-height: 48rpx; -} -.cmt-tit { - font-size: 32rpx; - position: relative; - border-bottom: 1px solid #ddd; - padding: 20rpx; -} -.cmt-t { - width: 300rpx; -} -.cmt-good { - color: #eb2444; - font-size: 24rpx; -} -.cmt-count { - position: absolute; - right: 20rpx; - top: 20rpx; - font-size: 24rpx; - color: #666; -} -.cmt-more { - width: 20rpx; - height: 20rpx; - border-top: 2rpx solid #999; - border-right: 2rpx solid #999; - transform: rotate(45deg); - margin-left: 10rpx; - display: inline-block; -} -.cmt-cont { - padding: 0 20rpx; -} -.cmt-tag { - position: relative; - padding: 14px 3px 0 0; - margin: 0; - text { - margin: 0 10px 10px 0; - background: #fdf0f0; - display: inline-block; - padding: 0 10px; - height: 25px; - border-radius: 3px; - line-height: 25px; - font-size: 12px; - font-family: -apple-system, Helvetica, sans-serif; - color: #666; + /* 评论区标题,较大字体,带有下边框,内边距 */ + .cmt-tit { + font-size: 32rpx; + position: relative; + border-bottom: 1px solid #ddd; + padding: 20rpx; } - text.selected { - color: #fff; - background: #e93b3d; + /* 评论区的好评率,红色字体,稍小字号 */ + .cmt-good { + color: #eb2444; + font-size: 24rpx; } -} -.cmt-item { - position: relative; - padding: 10px 0; - &::after { - content: ""; - height: 0; - display: block; - border-bottom: 1px solid #ddd; + /* 评论数量,绝对定位在右上角,设置了字体大小和颜色 */ + .cmt-count { position: absolute; - left: 0; - bottom: 0; - right: -10px; - border-bottom-color: #e5e5e5; + right: 20rpx; + top: 20rpx; + font-size: 24rpx; + color: #666; } -} -.cmt-items { - .empty { + /* 展示更多评论的箭头图标,通过旋转创建 */ + .cmt-more { + width: 20rpx; + height: 20rpx; + border-top: 2rpx solid #999; + border-right: 2rpx solid #999; + transform: rotate(45deg); + margin-left: 10rpx; + display: inline-block; + } + /* 评论内容区,设置了左右内边距 */ + .cmt-cont { + padding: 0 20rpx; + } + /* 评论标签,设置了相对定位,允许内部元素浮动或绝对定位 */ + .cmt-tag { + position: relative; + padding: 14px 3px 0 0; + margin: 0; + /* 每个标签,设置了背景色、内边距、圆角、行高、字体大小和颜色 */ + text { + margin: 0 10px 10px 0; + background: #fdf0f0; + display: inline-block; + padding: 0 10px; + height: 25px; + border-radius: 3px; + line-height: 25px; + font-size: 12px; + color: #666; + /* 当标签被选中时,改变背景色和字体颜色 */ + &.selected { + color: #fff; + background: #e93b3d; + } + } + } + /* 单条评论项,设置了相对定位,添加了底部边框 */ + .cmt-item { + position: relative; + padding: 10px 0; + /* 使用伪元素添加底部边框 */ + &::after { + content: ""; + height: 0; + display: block; + border-bottom: 1px solid #ddd; + position: absolute; + left: 0; + bottom: 0; + right: -10px; + border-bottom-color: #e5e5e5; + } + } + /* 评论列表为空时的提示 */ + .cmt-items .empty { display: block; font-size: 24rpx; text-align: center; color: #aaa; margin-top: 5vh; } -} -.cmt-user { - line-height: 25px; - margin-bottom: 8px; - font-size: 12px; - .user-img { - width: 25px; - height: 25px; - border-radius: 50%; - vertical-align: middle; - } - .nickname { - margin-left: 10px; - display: inline-block; - color: #333; - max-width: 8.2em; - height: 25px; - line-height: 27px; - } - .date { - float: right; - color: #999; - margin-left: -60px; - } -} -.cmt-user-info { - display: flex; - align-items: center; - width: 400rpx; -} -.cmt-cnt { - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - position: relative; - line-height: 1.5; - font-size: 14px; - margin: 5px 0; - word-break: break-all; - max-height: 126px; -} -.cmt-attr { - height: 85px; - width: 100%; - white-space: nowrap; - image { - display: inline-block; - width: 80px; - height: 80px; - margin-right: 5px; - margin-bottom: 5px; - border-radius: 2px; - background: #f3f3f3; - } -} -.cmt-more-v { - text-align: center; - background-color: #fff; - font-size: 12px; - text { - height: 25px; + /* 用户信息,设置了行高、底边距、字体大小 */ + .cmt-user { line-height: 25px; + margin-bottom: 8px; font-size: 12px; - text-align: center; - color: #333; - padding: 0px 10px; - margin: 10px 0; - border: 1px solid #ccc; - border-radius: 40px; - display: inline-block; + /* 用户头像,圆形,设置了宽度、高度、圆角和垂直对齐方式 */ + .user-img { + width: 25px; + height: 25px; + border-radius: 50%; + vertical-align: middle; + } + /* 用户昵称,设置了左边距、显示方式、颜色、最大宽度和高度 */ + .nickname { + margin-left: 10px; + display: inline-block; + color: #333; + max-width: 8.2em; + height: 25px; + line-height: 27px; + } + /* 评论日期,设置为右侧浮动,颜色和左边距 */ + .date { + float: right; + color: #999; + margin-left: -60px; + } } -} -.cmt-popup { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 998; - background-color: #fff; - padding-bottom: 98rpx; - .cmt-cont { - height: calc(100% - 80rpx); - overflow: auto; + /* 用户信息容器,使用flex布局,对齐项目中心,设置了宽度 */ + .cmt-user-info { + display: flex; + align-items: center; + width: 400rpx; } + /* 评论内容,设置了溢出隐藏、文本溢出处理、弹性盒子模型属性、相对定位、行高、字体大小、边距、单词断开和最大高度 */ .cmt-cnt { - -webkit-line-clamp: 20; - max-height: 500px; - } - .load-more { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + position: relative; + line-height: 1.5; font-size: 14px; - padding: 20px; + margin: 5px 0; + word-break: break-all; + max-height: 126px; + } + /* 评论中的商品属性展示,设置了高度、宽度和白空间处理 */ + .cmt-attr { + height: 85px; + width: 100%; + white-space: nowrap; + /* 商品图片,设置了宽高、右边距、底边距、圆角和背景色 */ + image { + display: inline-block; + width: 80px; + height: 80px; + margin-right: 5px; + margin-bottom: 5px; + border-radius: 2px; + background: #f3f3f3; + } + } + /* 查看更多评论按钮,居中对齐,设置了背景色、字体大小、内边距、边框、圆角 */ + .cmt-more-v { text-align: center; - margin-bottom: 10px; + background-color: #fff; + font-size: 12px; + /* 按钮文本,设置了高度、行高、字体大小、文本对齐、颜色、内边距、边框、圆角 */ text { - border: 1px solid #ddd; - padding: 5px 10px; - border-radius: 10px; - color: #666; + height: 25px; + line-height: 25px; + font-size: 12px; + text-align: center; + color: #333; + padding: 0px 10px; + margin: 10px 0; + border: 1px solid #ccc; + border-radius: 40px; + display: inline-block; + } + } + /* 弹出层用于查看完整评论,设置了固定定位、z-index、背景色、内边距 */ + .cmt-popup { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 998; + background-color: #fff; + padding-bottom: 98rpx; + /* 弹出层内的评论内容,设置了高度、溢出滚动 */ + .cmt-cont { + height: calc(100% - 80rpx); + overflow: auto; + } + /* 弹出层内的评论内容,增加了行数限制和最大高度 */ + .cmt-cnt { + -webkit-line-clamp: 20; + max-height: 500px; + } + /* 加载更多按钮,设置了字体大小、内边距、文本对齐、边距、边框、圆角 */ + .load-more { + font-size: 14px; + padding: 20px; + text-align: center; + margin-bottom: 10px; + /* 按钮文本,设置了边框、内边距、圆角和颜色 */ + text { + border: 1px solid #ddd; + padding: 5px 10px; + border-radius: 10px; + color: #666; + } } } } +. /* 评论回复部分,设置了字体大小、上边框(虚线)、上下内边距 */ .cmt-reply { font-size: 14px; border-top: 1px dashed #ddd; padding: 5px 0; + /* 回复标题,红色字体强调 */ .reply-tit { color: #eb2444; } } + +/* 产品详情部分,设置了背景色、上外边距、相对定位和行高 */ .prod-detail { background: #fff; margin-top: 20rpx; position: relative; line-height: 48rpx; + /* 详情图片,宽度设为750rpx并确保是块级元素显示 */ image { width: 750rpx !important; display: block; } } + +/* 富文本组件内的图片,确保宽度为100%以适应父容器 */ rich-text { image { width: 100% !important; } } + +/* 深度选择器,用于覆盖第三方组件或库的样式,确保图片宽度为100%并作为块级元素显示 */ :deep(.img) { width: 100% !important; display: block; } + +/* 购物车底部固定栏,设置了固定位置、底部对齐、宽度、弹性布局、高度、z-index和阴影效果 */ .cart-footer { position: fixed; bottom: 0; @@ -342,6 +403,7 @@ rich-text { height: 98rpx; z-index: 999; box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.05); + /* 按钮,设置了相对定位、弹性增长、内容居中、宽度、背景色、字体大小和列式布局 */ .btn { position: relative; display: flex; @@ -352,6 +414,7 @@ rich-text { background-color: #fff; font-size: 28rpx; flex-flow: column; + /* 徽章,绝对定位的小圆圈,用于展示数字,如购物车商品数量 */ .badge { position: absolute; top: 20rpx; @@ -366,30 +429,37 @@ rich-text { font-size: 18rpx; color: #fff; } + /* 稍大一点的徽章 */ .badge-1 { width: 36rpx; } } + /* 图标按钮,不随其他按钮拉伸,设置了固定宽度、字体大小和颜色 */ .btn.icon { flex-grow: 0; flex-shrink: 0; width: 125rpx; font-size: 20rpx; color: #666; + /* 图标按钮内的图片,设置了宽度和高度 */ image { width: 50rpx; height: 50rpx; } } + /* 购物车按钮,设置了背景色和文字颜色 */ .btn.cart { background: #584e61; color: #fff; } + /* 立即购买按钮,设置了背景色和文字颜色 */ .btn.buy { background: #eb2444; color: #fff; } } + +/* 关闭按钮,设置了颜色、圆角、行高、文本对齐、高度、宽度、字体大小、内边距、位置和伪元素内容 */ .close { color: #aaa; border-radius: 12px; @@ -402,15 +472,20 @@ rich-text { top: 10px; right: 10px; position: absolute; + /* 伪元素,设置关闭符号 */ &::before { content: "\2716"; } } + +/* 弹出层内容区,设置了最大高度、溢出滚动和左右内边距 */ .popup-cnt { max-height: 429px; overflow: auto; padding: 0 10px; } + +/* SKU弹出层背景,设置了固定位置、全屏尺寸、z-index和半透明黑色背景 */ .pup-sku { position: fixed; top: 0; @@ -420,6 +495,8 @@ rich-text { z-index: 999; background-color: rgba(0, 0, 0, 0.3); } + +/* SKU弹出层主要内容,绝对定位在屏幕底部,设置了宽度、最小和最大高度、白色背景 */ .pup-sku-main { position: absolute; bottom: 0; @@ -428,6 +505,8 @@ rich-text { max-height: 475px; background-color: #fff; } + +/* SKU弹出层头部,设置了相对定位、行高、字体大小、颜色、高度、内边距和背景色 */ .pup-sku-header { position: relative; line-height: 46px; @@ -437,6 +516,8 @@ rich-text { padding: 0 0 10px 110px; background-color: #fff; } + +/* SKU弹出层中的产品图片,设置了绝对定位、左上偏移、圆角、宽度、高度和垂直对齐 */ .pup-sku-img { position: absolute; left: 10px; @@ -447,6 +528,8 @@ rich-text { border: 0 none; vertical-align: top; } + +/* SKU弹出层价格,设置了行内块显示、高度、行高、颜色和字体大小 */ .pup-sku-price { display: inline-block; height: 40px; @@ -454,9 +537,13 @@ rich-text { color: #e4393c; font-size: 10px; } + +/* SKU弹出层价格整数部分,加大字体 */ .pup-sku-price-int { font-size: 16px; } + +/* SKU弹出层属性描述,允许单词断开,设置了字体大小、颜色、行高、右边距、溢出隐藏、文本溢出处理和弹性盒子模型属性 */ .pup-sku-prop { word-break: break-all; font-size: 12px; @@ -468,17 +555,22 @@ rich-text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; + /* 属性描述中的文本,设置了颜色和右边距 */ text { color: #999; margin-right: 5px; } } + +/* SKU弹出层主体内容,设置了盒模型属性、最大高度、下内边距和溢出滚动 */ .pup-sku-body { box-sizing: border-box; max-height: 379px; padding-bottom: 100px; overflow: auto; } + +/* SKU区域,设置了字体大小、颜色、内外边距和高度 */ .pup-sku-area { .sku-kind { font-size: 12px; @@ -487,11 +579,14 @@ rich-text { height: 40px; line-height: 40px; } + /* SKU选择项容器,设置了溢出隐藏和底边距 */ .sku-choose { overflow: hidden; margin-bottom: 3px; } } + +/* SKU选择项,设置了行内块显示、内边距、最小和最大宽度、高度、文本对齐、左边距、底边距、圆角、颜色、背景色和字体大小 */ .sku-choose-item { display: inline-block; padding: 0 10px; @@ -508,23 +603,31 @@ rich-text { background-color: #f7f7f7; font-size: 14px; } + +/* 当SKU选择项被选中时,改变背景色和字体颜色 */ .sku-choose-item.active { background-color: #eb2444; color: #fff; } + +/* 当SKU选择项不可用时,改变背景色和字体颜色 */ .sku-choose-item.gray { background-color: #f9f9f9; color: #ddd; } + +/* SKU弹出层数量选择部分,设置了内边距和字体大小 */ .pup-sku-count { padding: 0 10px 13px; font-size: 12px; + /* 数量名称标签,设置了颜色、高度、行高和宽度 */ .count-name { color: #999; height: 31px; line-height: 31px; width: 100rpx; } + /* 数量选择器包裹,设置了相对定位、宽度、浮动和垂直对齐 */ .num-wrap { position: relative; z-index: 0; @@ -533,11 +636,13 @@ rich-text { vertical-align: middle; display: flex; } + /* 输入框包裹,设置了相对定位、宽度、z-index和左右内边距 */ .text-wrap { position: relative; width: 45px; z-index: 0; margin: 0 1px; + /* 输入框,设置了高度、宽度、颜色、背景、字体大小、文本对齐、无边框和背景色 */ input { height: 30px; width: 100%; @@ -550,8 +655,11 @@ rich-text { } } } + +/* 数量选择器的减号和加号按钮,设置了相对定位、最大最小宽度、高度、行高、背景色、文本对齐、圆角 */ .num-wrap { - .minus { + .minus, + .plus { position: relative; max-width: 30px; min-width: 30px; @@ -559,20 +667,18 @@ rich-text { line-height: 30px; background: #f7f7f7; text-align: center; + } + /* 减号按钮,设置了左上和左下圆角 */ + .minus { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } + /* 加号按钮,设置了右上和右下圆角 */ .plus { - position: relative; - max-width: 30px; - min-width: 30px; - height: 30px; - line-height: 30px; - background: #f7f7f7; - text-align: center; border-top-right-radius: 3px; border-bottom-right-radius: 3px; } + /* 行元素,创建加号的横线,设置了圆角、绝对定位、顶部和左侧偏移、宽度、高度和背景色 */ .row { border-radius: 20px; position: absolute; @@ -584,6 +690,7 @@ rich-text { height: 2px; background-color: #ccc; } + /* 列元素,创建加号的竖线,设置了圆角、绝对定位、顶部和左侧偏移、宽度、高度和背景色 */ .col { border-radius: 20px; position: absolute; @@ -596,6 +703,8 @@ rich-text { background-color: #999; } } + +/* SKU弹出层底部固定栏,设置了固定位置、底部对齐、宽度、弹性布局、高度、z-index和阴影效果 */ .pup-sku-footer { position: fixed; bottom: 0; @@ -606,6 +715,7 @@ rich-text { height: 98rpx; z-index: 999; box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.05); + /* 按钮,设置了相对定位、弹性增长、内容居中、宽度、背景色、字体大小和列式布局 */ .btn { position: relative; display: flex; @@ -617,10 +727,12 @@ rich-text { font-size: 28rpx; flex-flow: column; } + /* 购物车按钮,设置了背景色和文字颜色 */ .btn.cart { background: #584e61; color: #fff; } + /* 立即购买按钮,设置了背景色和文字颜色 */ .btn.buy { background: #eb2444; color: #fff; diff --git a/front-end/mall4uni/src/pages/prod/prod.vue b/front-end/mall4uni/src/pages/prod/prod.vue index 576998e..9941e85 100644 --- a/front-end/mall4uni/src/pages/prod/prod.vue +++ b/front-end/mall4uni/src/pages/prod/prod.vue @@ -1,260 +1,157 @@ - - - + http.request({ + url: '/p/shopCart/changeItem', + method: 'POST', + data: { + basketId: 0, + count: prodNum.value, + prodId, + shopId, + skuId: defaultSku.value.skuId + } + }) + .then(() => { + totalCartNum.value = totalCartNum.value + prodNum.value + uni.hideLoading() + uni.showToast({ + title: '加入购物车成功', + icon: 'none' + }) + }) + } + + /** + * 立即购买 + */ + const buyNow = () => { + uni.setStorageSync('orderItem', JSON.stringify({ + prodId, + skuId: defaultSku.value.skuId, + prodCount: prodNum.value, + shopId + })) + uni.navigateTo({ + url: '/pages/submit-order/submit-order?orderEntry=1' + }) + } + + /** + * 减数量 + */ + const onCountMinus = () => { + if (prodNum.value > 1) { + prodNum.value = prodNum.value - 1 + } + } + + /** + * 加数量 + */ + const onCountPlus = () => { + if (prodNum.value < 1000) { + prodNum.value = prodNum.value + 1 + } + } + + const skuShow = ref(false) + const showSku = () => { + skuShow.value = true + } + + const commentShow = ref(false) + const showComment = () => { + commentShow.value = true + } + + const closePopup = () => { + skuShow.value = false + commentShow.value = false + } + + + diff --git a/front-end/mall4uni/src/pages/recent-news/recent-news.scss b/front-end/mall4uni/src/pages/recent-news/recent-news.scss index f6dbc96..736da00 100644 --- a/front-end/mall4uni/src/pages/recent-news/recent-news.scss +++ b/front-end/mall4uni/src/pages/recent-news/recent-news.scss @@ -1,34 +1,40 @@ .recent-news { - background: #fff; + background: #fff; /* 设置最近新闻容器的背景颜色为白色 */ + .news-item { - padding: 20rpx 20rpx 0 20rpx; - position: relative; + padding: 20rpx 20rpx 0 20rpx; /* 内边距:上20rpx,左右各20rpx,下0rpx */ + position: relative; /* 使子元素可以相对于此元素进行绝对定位 */ + &::after { - content: " "; - width: 100%; - height: 2rpx; - background-color: #e1e1e1; - left: 20rpx; - display: block; - position: absolute; + content: " "; /* 生成一个伪元素 */ + width: 100%; /* 伪元素宽度为100% */ + height: 2rpx; /* 伪元素高度为2rpx,作为分隔线 */ + background-color: #e1e1e1; /* 分隔线的颜色为浅灰色 */ + left: 20rpx; /* 从左边开始20rpx,与父元素内边距对齐 */ + display: block; /* 伪元素作为块级元素显示 */ + position: absolute; /* 伪元素绝对定位,相对于父元素 */ + bottom: 0; /* 伪元素位于父元素底部 */ } + .news-item-title { - font-size: 28rpx; - text-align: left; + font-size: 28rpx; /* 新闻标题字体大小为28rpx */ + text-align: left; /* 文字左对齐 */ } + .news-item-date { - font-size: 24rpx; - color: #999; - text-align: right; - margin-top: 10rpx; - margin-bottom: 20rpx; + font-size: 24rpx; /* 日期字体大小为24rpx */ + color: #999; /* 日期颜色为浅灰色 */ + text-align: right; /* 文字右对齐 */ + margin-top: 10rpx; /* 上边距为10rpx */ + margin-bottom: 20rpx; /* 下边距为20rpx */ } } + .empty { - display: block; - padding-top: 200rpx; - color: #999; - font-size: 26rpx; - text-align: center; + display: block; /* 空状态提示作为块级元素显示 */ + padding-top: 200rpx; /* 上内边距为200rpx,用于居中显示空状态提示 */ + color: #999; /* 文字颜色为浅灰色 */ + font-size: 26rpx; /* 字体大小为26rpx */ + text-align: center; /* 文字水平居中 */ } } diff --git a/front-end/mall4uni/src/pages/recent-news/recent-news.vue b/front-end/mall4uni/src/pages/recent-news/recent-news.vue index 779d20a..07a39b2 100644 --- a/front-end/mall4uni/src/pages/recent-news/recent-news.vue +++ b/front-end/mall4uni/src/pages/recent-news/recent-news.vue @@ -1,60 +1,62 @@