From 9b45b1f6c5d1d0e871d2b2169d49814dcb049b76 Mon Sep 17 00:00:00 2001
From: "1054425342@qq.com" <1054425342@qq.com>
Date: Tue, 16 Sep 2025 18:00:34 +0800
Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E8=B4=AD=E7=89=A9=E8=BD=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/DynamicIsland.vue | 4 +-
components/ProductSection.vue | 2 +-
pages.json | 3 +-
pages/index/index.vue | 53 +-
pages/index/sensoryStore - 副本.vue | 262 ++++
pages/index/sensoryStore.vue | 84 +-
static/js/CommonFunction.js | 47 +-
subPackages/points/index.vue | 288 ++---
subPackages/techan/detail - 副本.vue | 823 ++++++++++++
subPackages/techan/detail.vue | 87 +-
subPackages/user/gwc.vue | 1603 ++++++++++++------------
11 files changed, 2166 insertions(+), 1090 deletions(-)
create mode 100644 pages/index/sensoryStore - 副本.vue
create mode 100644 subPackages/techan/detail - 副本.vue
diff --git a/components/DynamicIsland.vue b/components/DynamicIsland.vue
index 760bcab..ea474c4 100644
--- a/components/DynamicIsland.vue
+++ b/components/DynamicIsland.vue
@@ -112,8 +112,8 @@
style="display: flex;align-items: center;font-size: 26rpx;font-weight: bold;display: flex;align-items: center;margin-top: 20rpx;">
时长:{{
- userInfo && userInfo.token ? userInfo.hour||0+'h' : "-"
- }}
+ userInfo && userInfo.token ? userInfo.hour: 0
+ }}h
{{ item.title }}
- ¥{{ item.price }}
+ ¥{{ item.price }} 起
{
+ if (res.data) {
+ this.productListFeeling = res.data.map(item =>{
+ return {
+ title:item.goodsName,
+ price:item.salePrice,
+ image:item.posterUrl,
+ id:item.goodsId,
+ ...item
+ }
+ })
+ }
+ });
+
},
gotoVideo(item) {
uni.navigateTo({
diff --git a/pages/index/sensoryStore - 副本.vue b/pages/index/sensoryStore - 副本.vue
new file mode 100644
index 0000000..043cdd8
--- /dev/null
+++ b/pages/index/sensoryStore - 副本.vue
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 关于有感商品
+
+
+ 寻常商品,满足你的日常所需;而「有感商品」,则回应你的精神所向。
+
+
+ 我们坚信“意义大于产品”。这里的每一件商品都诞生于EPIC SOUL「交响」阅读体的史诗,是精神漫游的实体回响。它的存在,是为了让你在消费中完成一次次深刻的情感连接与自我认同。
+
+
+ 在这里,消费的终点不是拥有,而是更深刻的连接与共鸣。欢迎探索,一件件写满故事与想象力的生活信物。
+
+
+
+
+
+ 有感商品上新
+
+
+
+
+
+
+
+ {{item.goods.title}}
+
+ ¥{{item.goods.money/100}}
+
+
+
+
+
+
+
+
+
+
+ 有感商品精选
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/index/sensoryStore.vue b/pages/index/sensoryStore.vue
index 043cdd8..57d00fb 100644
--- a/pages/index/sensoryStore.vue
+++ b/pages/index/sensoryStore.vue
@@ -6,8 +6,8 @@
-
-
+
+
@@ -38,13 +38,13 @@
-
-
+
+
- {{item.goods.title}}
+ {{item.goodsName}}
- ¥{{item.goods.money/100}}
-
+ ¥{{item.salePrice}}
+
@@ -57,8 +57,8 @@
有感商品精选
-
+
@@ -85,9 +85,7 @@
},
onReady() {
- this.getProduct()
- this.getTypes()
- this.getList()
+ this.getInfo()
},
onReachBottom() {
@@ -96,6 +94,23 @@
swiperChange(e) {
this.swiperIndex = e.detail.current
},
+ getInfo(){
+ this.Post({
+ code:'ygsp_top'
+ },'/framework/banner/getImageByBannerCode',"DES").then(res => {
+ this.topBanner = res.data;
+ })
+ this.Post({
+ },'/framework/goods/ygPageList',"DES").then(res => {
+ this.list = res.rows;
+ })
+ this.Post({
+ code:'ygsp_bottom'
+ },'/framework/banner/getImageByBannerCode',"DES").then(res => {
+ this.typeList = res.data;
+ })
+ },
+
viewDetail(item) {
if (item.url) {
@@ -108,45 +123,15 @@
url:'/subPackages/letter/detail?id='+item.id
})
},
-
- getProduct () {
- this.Post({
- tag_id: 40,
- offset: 0,
- },'/api/tag/getGoodsByTagId').then(res => {
- this.list = res.data;
- })
- },
-
-
- getList() {
- // 大轮播
- this.Post({
- type_id: 3,
- position: 18,
- }, '/api/adv/getAdv').then(res => {
- if(res.data) {
- this.topBanner = res.data;
- }
- });
- },
-
- // 获取分类图片
- getTypes () {
- this.Post({
- parent_id: 0,
- }, '/api/goods/type').then(res => {
- if(res.data) {
- this.typeList = res.data;
- }
- });
- },
}
}
\ No newline at end of file
diff --git a/subPackages/techan/detail.vue b/subPackages/techan/detail.vue
index 3b22f28..01ea9a3 100644
--- a/subPackages/techan/detail.vue
+++ b/subPackages/techan/detail.vue
@@ -2,7 +2,7 @@
-
+
+
- {{ info.list_images.split(',').length }}张
+ {{ info.mainUrl.split(',').length }}张
- {{ info.money / 100 }}
- ¥{{info.price / 100}}
+ {{ info.salePrice }}
+
@@ -36,26 +36,26 @@
{{ item }}
- {{ info.title }}
+ {{ info.goodsName }}
-
+
- {{item.title}}
- {{item.money/100}}
+ {{item.specValueOne}}-{{item.specValueTwo}}
+ {{item.salePrice}}
-
+
商品须知
-
+
@@ -112,10 +112,10 @@
-
+
- {{(sku[productIndex].money||0)/100}}
- 已选择:{{sku[productIndex].title}}
+ {{(sku[productIndex].salePrice||0)}}
+ 已选择:{{sku[productIndex].specValueOne}}-{{sku[productIndex].specValueTwo}}
@@ -124,11 +124,11 @@
-
- {{botItem.title}}
+ {{botItem.specValueOne}}-{{botItem.specValueTwo}}
-
+
不可购买
@@ -196,7 +196,6 @@
onLoad(option) {
this.id = option.id;
this.getInfo();
- this.getSpecificationsByGoodsId();
},
methods: {
changPopShow (e) {
@@ -207,9 +206,8 @@
getInfo() {
this.Post({
- goods_id: this.id
},
- '/api/goods/getGoodDetail'
+ `/framework/goods/getGoodsInfo/${this.id}`,'DES'
).then(res => {
if (res.data.flag == 0) {
setTimeout(() => {
@@ -223,34 +221,19 @@
}, 2000)
}
this.info = res.data;
+ this.sku = res.data.specCombinations
// this.isCollect = this.info.is_collect;
if (this.info.title) {
uni.setNavigationBarTitle({
- title: this.info.title
+ title: this.info.goodsName
})
- this.browse_record({type: 'goods',title: this.info.title});
+ this.browse_record({type: 'goods',title: this.info.goodsName});
}
});
},
- getSpecificationsByGoodsId() {
- this.Post({
- goods_id: this.id
- },
- '/api/goods/getSpecificationsByGoodsId'
- ).then(res => {
- if (res) {
- this.sku = res.data || [];
- // todo
- // this.is_post = "2"
- // if (this.sku.length>0 && this.sku.some(v=>v.is_post == 1)) {
- // this.is_post = "1"
-
- // }
- }
- });
- },
+
// 收藏
collect() {
@@ -325,21 +308,23 @@
addToCart () {
let goods = this.sku[this.productIndex]
goods.buyNum = this.buyNum
- let goodsInfo = {goodsInfo:this.info, skuInfo: goods, isSelected: true}
-
- this.Post({good_id: this.info.id, specifications_id: goods.id,num: this.buyNum },
- '/api/shopping/addShopping').then(res => {
- if (res) {
+ this.Post({goodsId: this.info.goodsId, specCombinationId: goods.specCombinationId,quantity: this.buyNum,method:'post' },
+ '/framework/cart/add',"DES").then(res => {
+ if (res.code==200) {
let selectedData = []
try {
selectedData = JSON.parse(uni.getStorageSync('cartDataInfo'));
} catch(e) {
selectedData = []
}
- let currentGoods = selectedData.find(v =>v==goods.id)
+ let currentGoods = selectedData.find(v =>v==goods.goodsId)
if (!currentGoods) {
- selectedData.push(goods.id)
+ selectedData.push(goods.goodsId)
}
+ uni.showToast({
+ title:'加购成功',
+ icon:'none'
+ })
uni.setStorageSync('cartDataInfo', JSON.stringify(selectedData));
uni.$emit("updateDataByConnect", {msgType:'updateCartDataInfo',data:null})
this.closePopup()
@@ -353,7 +338,7 @@
})
},
changeProduct(item,index) {
- if (item.store==0) {
+ if (item.quantity==0) {
uni.showToast({
title:"库存不足!",
icon:'none'
@@ -620,7 +605,7 @@
}
}
.bottom-content {
- width: 331rpx;
+ width: 380rpx;
font-size: 27rpx;
font-family: PingFang SC;
font-weight: 400;
diff --git a/subPackages/user/gwc.vue b/subPackages/user/gwc.vue
index c84aaef..6fc59cf 100644
--- a/subPackages/user/gwc.vue
+++ b/subPackages/user/gwc.vue
@@ -1,841 +1,790 @@
-
- {{
+
+ {{
operate
}}
-
-
- {{ item.merchant_name }}
-
-
-
-
-
-
-
- {{ goodItem.good_name }}
- {{
- goodItem.Specifications_name
- }}
-
- {{
- goodItem.Specifications_money / 100
- }}
-
-
- -
-
- {{ goodItem.num }}
-
- +
-
-
-
-
-
-
-
-
-
- 失效商品清空失效商品
-
-
-
-
- {{ goodItem.good_name }}
- {{
+
+
+
+
+
+
+
+
+
+
+ {{ goodItem.goodsName }}
+ {{
+ goodItem.specValueOne
+ }}-{{
+ goodItem.specValueTwo
+ }}
+
+ {{
+ goodItem.salePrice
+ }}
+
+
+ -
+
+ {{ goodItem.quantity }}
+
+ +
+
+
+
+
+
+
+
+
+
+ 失效商品清空失效商品
+
+
+
+
+ {{ goodItem.good_name }}
+ {{
goodItem.Specifications_name
}}
-
- {{ goodItem.Specifications_money / 100 }}
- 删除
-
-
-
-
-
-
-
-
-
+
+
+
- 在线付:
- ¥{{ getAllPrice() }}
-
- 提交订单
- 删除
-
-
-
-
-
- 购物车空空如也
- 快去挑选心仪的商品吧
- 去逛逛
-
-
+ 在线付:
+ ¥{{ getAllPrice() }}
+
+ 提交订单
+ 删除
+
+
+
+
+
+ 购物车空空如也
+ 快去挑选心仪的商品吧
+ 去逛逛
+
+
+ .bg {
+ width: 100%;
+ min-height: 100vh;
+ padding: 0 27rpx 200rpx;
+ box-sizing: border-box;
+ background-color: #f8f8f8;
+ }
+
+ .guanli {
+ height: 76rpx;
+ text-align: right;
+ font-size: 32rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #6ca5aa;
+ line-height: 76rpx;
+ padding: 0 20rpx;
+ border-radius: 20rpx;
+ transition: all 0.3s ease;
+
+ &:active {
+ background: rgba(108, 165, 170, 0.1);
+ transform: scale(0.95);
+ }
+ }
+
+ .goodBox {
+ width: 697rpx;
+ height: auto;
+ background: #ffffff;
+ border-radius: 20rpx;
+ margin: 0 auto 27rpx;
+ padding: 25rpx 20rpx;
+ box-sizing: border-box;
+
+ .title {
+ font-size: 35rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #000000;
+ }
+
+ .goodItem {
+ width: 100%;
+ height: 173rpx;
+ margin-top: 46rpx;
+ display: flex;
+
+ .noSelect {
+ width: 37rpx;
+ height: 37rpx;
+ border-radius: 50%;
+ border: 2rpx solid #666666;
+ box-sizing: border-box;
+ margin-right: 25rpx;
+ margin-top: 68rpx;
+ }
+
+ .selectBox {
+ width: 37rpx;
+ height: 37rpx;
+ // background: linear-gradient(90deg, #FA2B66, #FF9834);
+ // border-radius: 50%;
+ margin-right: 25rpx;
+ margin-top: 68rpx;
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+
+ image {
+ width: 173rpx;
+ height: 173rpx;
+ border-radius: 13rpx;
+ }
+
+ .contentBox {
+ width: 400rpx;
+ height: 173rpx;
+ margin-left: 23rpx;
+
+ .title {
+ font-size: 31rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #000000;
+ }
+
+ .subTitle {
+ font-size: 27rpx;
+ font-family: PingFang SC;
+ font-weight: 400;
+ color: #7c7c7c;
+ margin-top: 13rpx;
+ }
+
+ .priceBox {
+ margin-top: 35rpx;
+
+ .price {
+ font-size: 40rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #ff2d3b;
+ }
+
+ .price:before {
+ content: "¥";
+ font-size: 27rpx;
+ }
+
+ .quantity-control {
+ display: flex;
+ align-items: center;
+ border: 2rpx solid #e5e5e5;
+ border-radius: 25rpx;
+ overflow: hidden;
+
+ .quantity-btn {
+ width: 60rpx;
+ height: 50rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #f8f9fa;
+ transition: all 0.3s ease;
+
+ &.minus-btn {
+ border-right: 1rpx solid #e5e5e5;
+ }
+
+ &.plus-btn {
+ border-left: 1rpx solid #e5e5e5;
+ }
+
+ &.disabled {
+ background: #f1f1f1;
+ color: #ccc;
+ }
+
+ &:not(.disabled):active {
+ background: #e9ecef;
+ }
+
+ font-size: 50rpx;
+ font-weight: 500;
+ color: #333;
+
+ .btn-text {}
+ }
+
+ .quantity-input {
+ width: 80rpx;
+ height: 50rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #fff;
+ font-size: 28rpx;
+ color: #333;
+ font-weight: 500;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .loseGood {
+ width: 697rpx;
+ height: auto;
+ background: #ffffff;
+ border-radius: 20rpx;
+ margin: 0 auto 27rpx;
+ padding: 25rpx 20rpx;
+ box-sizing: border-box;
+
+ .title {
+ font-size: 35rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #666666;
+
+ span {
+ font-size: 32rpx;
+ font-family: PingFang SC;
+ font-weight: 400;
+ color: #2791f7;
+ }
+ }
+
+ .goodItem {
+ width: 100%;
+ height: 173rpx;
+ margin-top: 46rpx;
+ display: flex;
+ color: #999999;
+
+ .noSelect {
+ width: 37rpx;
+ height: 37rpx;
+ border-radius: 50%;
+ border: 2rpx solid #cccccc;
+ background: #f1f1f1;
+ box-sizing: border-box;
+ margin-right: 25rpx;
+ margin-top: 68rpx;
+ }
+
+ image {
+ width: 173rpx;
+ height: 173rpx;
+ border-radius: 13rpx;
+ margin-right: 23rpx;
+ }
+
+ .contentBox {
+ width: 421rpx;
+ height: 173rpx;
+
+ .title {
+ font-size: 31rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ }
+
+ .subTitle {
+ font-size: 27rpx;
+ font-family: PingFang SC;
+ font-weight: 400;
+ }
+
+ .priceBox {
+ margin-top: 35rpx;
+
+ .price {
+ font-size: 40rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ }
+
+ .price:before {
+ content: "¥";
+ font-size: 27rpx;
+ }
+
+ .btn {
+ width: 125rpx;
+ height: 53rpx;
+ background: #999999;
+ border-radius: 13rpx;
+ text-align: center;
+ line-height: 53rpx;
+ font-size: 29rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #ffffff;
+ }
+ }
+ }
+ }
+ }
+
+ /* 空状态样式 */
+ .empty-state {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 200rpx 0;
+
+ .empty-icon {
+ width: 200rpx;
+ height: 200rpx;
+ margin-bottom: 40rpx;
+ opacity: 0.6;
+ }
+
+ .empty-title {
+ font-size: 36rpx;
+ color: #333;
+ font-weight: 500;
+ margin-bottom: 20rpx;
+ }
+
+ .empty-desc {
+ font-size: 28rpx;
+ color: #999;
+ margin-bottom: 60rpx;
+ }
+
+ .empty-btn {
+ width: 240rpx;
+ height: 80rpx;
+ background: #6ca5aa;
+ border-radius: 40rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #fff;
+ font-size: 30rpx;
+ font-weight: 500;
+ box-shadow: 0 8rpx 20rpx rgba(108, 165, 170, 0.3);
+ transition: all 0.3s ease;
+
+ &:active {
+ transform: scale(0.95);
+ box-shadow: 0 4rpx 10rpx rgba(108, 165, 170, 0.2);
+ }
+ }
+ }
+
+ .orderBox {
+ width: 750rpx;
+ height: 151rpx;
+ background: #ffffff;
+ box-shadow: 0px 0px 16rpx 0px rgba(6, 0, 1, 0.1);
+ padding: 0 27rpx;
+ box-sizing: border-box;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+
+ .priceBox {
+ display: flex;
+ font-size: 27rpx;
+ font-family: PingFang SC;
+ font-weight: 400;
+ color: #666666;
+
+ span {
+ font-size: 27rpx;
+ font-family: PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ margin-left: 20rpx;
+ }
+
+ p {
+ font-size: 36rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #ff2d3b;
+ margin-top: -5rpx;
+ }
+
+ .noSelect {
+ width: 41rpx;
+ height: 41rpx;
+ border-radius: 50%;
+ border: 2rpx solid #666666;
+ box-sizing: border-box;
+ margin-right: 10rpx;
+ }
+
+ .selectBox {
+ width: 41rpx;
+ height: 41rpx;
+ // background: linear-gradient(90deg, #FA2B66, #FF9834);
+ border-radius: 50%;
+ margin-right: 10rpx;
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+
+ .btn {
+ width: 219rpx;
+ height: 77rpx;
+ background: #6ca5aa;
+ border-radius: 39rpx;
+ text-align: center;
+ line-height: 77rpx;
+ font-size: 33rpx;
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #ffffff;
+ }
+ }
+
+ /* 移除旧的样式 */
+ .zhihui {
+ background: #e8e8e8 !important;
+ color: #999999 !important;
+ }
+
+ /* 优化商品卡片样式 */
+ .goodBox {
+ box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.08);
+ transition: all 0.3s ease;
+
+ &:hover {
+ transform: translateY(-2rpx);
+ box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.12);
+ }
+ }
+
+ /* 优化选择框样式 */
+ .noSelect {
+ transition: all 0.3s ease;
+
+ &:active {
+ transform: scale(0.9);
+ }
+ }
+
+ .selectBox {
+ transition: all 0.3s ease;
+
+ &:active {
+ transform: scale(0.9);
+ }
+ }
+
\ No newline at end of file