diff --git a/pages/booking/CostumeDisplay/CostumeDisplay.vue b/pages/booking/CostumeDisplay/CostumeDisplay.vue index 7a13b58..b510667 100644 --- a/pages/booking/CostumeDisplay/CostumeDisplay.vue +++ b/pages/booking/CostumeDisplay/CostumeDisplay.vue @@ -1,223 +1,442 @@ -<template> - <!-- <view v-for="(item,index) in label" > - <view>{{item.name}}</view> - <image :src="item.image"></image> - <view>{{item.intro}}</view> - <view>{{item.price}}</view> - </view> --> +<!-- <template> + <view class="flex-col page"> - <view class="flex-col section"> - <text class="self-start text">服装展示</text> - <view class="flex-col self-stretch mt-21"> - <view class="flex-row items-center mt-10 list-item" v-for="(item, index) in label" :key="index" @click="goToText(index)"> - <image - class="shrink-0 image_2" - :src="item.image" - /> - <view class="flex-col flex-1 ml-11"> - <view class="flex-col self-stretch"> - <view class="flex-row justify-end self-stretch group"> - <text class="font">详细信息</text> - <image - class="image" - :src="item.image" - /> - </view> - <text class="self-start font_2 text_2 mt-3">{{item.name}}</text> - </view> - <view class="self-stretch group_2 mt-5"> - <text class="font_4">服装简介:</text> - <text class="font_3"> - {{item.intro}} - </text> - </view> - <text class="self-end font_5 mt-5">¥{{item.price}}</text> - </view> - </view> - </view> - </view> - <view class="mt-48 flex-row items-center section_2"> - <view class="flex-col items-center shrink-0 section_3"> - <image - class="image_3" - src="https://ide.code.fun/api/image?token=674eb236797f850011f0c44a&name=4b56fed14a39630ca2312edf6e34c024.png" - /> - <text class="mt-2 text_4">客服</text> - </view> - <view class="ml-34 flex-col justify-start items-center flex-1 text-wrapper"> - <text class="text_3">现在去预约</text> - </view> - </view> + <view class="flex-col section"> + <text class="self-start text">服装展示</text> + <view class="flex-col self-stretch mt-21"> + <view class="flex-row items-center mt-10 list-item" v-for="(item, index) in label" :key="index" + @click="goToText(index)"> + <image class="shrink-0 image_2" :src="item.image" /> + <view class="flex-col flex-1 ml-11"> + <view class="flex-col self-stretch"> + <view class="flex-row justify-end self-stretch group"> + <text class="font">详细信息</text> + <image class="image" :src="item.image" /> + </view> + <text class="self-start font_2 text_2 mt-3">{{item.name}}</text> + </view> + <view class="self-stretch group_2 mt-5"> + <text class="font_4">服装简介:</text> + <text class="font_3"> + {{item.intro}} + </text> + </view> + <text class="self-end font_5 mt-5">¥{{item.price}}</text> + </view> + </view> + </view> + </view> + <view class="mt-48 flex-row items-center section_2"> + <view class="flex-col items-center shrink-0 section_3"> + <image class="image_3" + src="https://ide.code.fun/api/image?token=674eb236797f850011f0c44a&name=4b56fed14a39630ca2312edf6e34c024.png" /> + <text class="mt-2 text_4">客服</text> + </view> + <view class="ml-34 flex-col justify-start items-center flex-1 text-wrapper"> + <text class="text_3">现在去预约</text> + </view> + </view> </view> </template> <script setup> -import { ref,onMounted } from 'vue' -import { onLoad } from '@dcloudio/uni-app' -import { baseUrl } from '../../../api/request'; -const list = ref([{}]) -const label = ref([{}]) -onMounted(()=>{ - getLabel() -}) -onLoad((options)=>{ - list.value = JSON.parse(options.info) - console.log(list.value,'id') -}) -const getLabel = async ()=>{ - const res = await uni.request({ - url:baseUrl + '/clothesInfo/list/label', - method:'POST', - header:{ - cookie:wx.getAccountInfoSync('cookie') - }, - data:{ - id:list.value - } + import { + ref, + onMounted + } from 'vue' + import { + onLoad + } from '@dcloudio/uni-app' + import { + baseUrl + } from '../../../api/request'; + const list = ref([{}]) + const label = ref([{}]) + onMounted(() => { + getLabel() }) - console.log(res) - if(res.data.code === 1){ - label.value = res.data.data - }else{ - uin.showtoast({ - icon:'error', - title:'获取失败' + onLoad((options) => { + list.value = JSON.parse(options.info) + console.log(list.value, 'id') + }) + const getLabel = async () => { + const res = await uni.request({ + url: baseUrl + '/clothesInfo/list/label', + method: 'POST', + header: { + cookie: wx.getAccountInfoSync('cookie') + }, + data: { + id: list.value + } }) + console.log(res) + if (res.data.code === 1) { + label.value = res.data.data + } else { + uin.showtoast({ + icon: 'error', + title: '获取失败' + }) + } } -} - -const goToText = (index)=>{ - uni.navigateTo({ - url:"/pages/booking/CostumeDetails/CostumeDetails?info=" + JSON.stringify(label.value[index].id) - }) - console.log(label.value[index].id) -} + const goToText = (index) => { + uni.navigateTo({ + url: "/pages/booking/CostumeDetails/CostumeDetails?info=" + JSON.stringify(label.value[index].id) + }) + console.log(label.value[index].id) + } </script> <style lang="scss" scoped> .mt-21 { - margin-top: 39.38rpx; + margin-top: 39.38rpx; } + .ml-11 { - margin-left: 20.63rpx; + margin-left: 20.63rpx; } + .mt-3 { - margin-top: 5.63rpx; + margin-top: 5.63rpx; } + .mt-5 { - margin-top: 9.38rpx; + margin-top: 9.38rpx; } + .page { - padding-top: 69.38rpx; - background-color: #f5f5dc; - width: 100%; - overflow-y: auto; - overflow-x: hidden; - height: 100%; + padding-top: 69.38rpx; + background-color: #f5f5dc; + width: 100%; + overflow-y: auto; + overflow-x: hidden; + height: 100%; } + .section { - margin: 0 18.75rpx; - padding: 37.5rpx 30rpx 129.38rpx; - background-color: #fffef8; - border-radius: 18.75rpx; + margin: 0 18.75rpx; + padding: 37.5rpx 30rpx 129.38rpx; + background-color: #fffef8; + border-radius: 18.75rpx; } + .text { - color: #000000; - font-size: 30rpx; - font-family: Open Sans; - line-height: 27.71rpx; + color: #000000; + font-size: 30rpx; + font-family: Open Sans; + line-height: 27.71rpx; } + .list-item { - padding: 22.5rpx 22.5rpx 22.5rpx 30rpx; - background-color: #fff3c3; - border-radius: 9.38rpx; + padding: 22.5rpx 22.5rpx 22.5rpx 30rpx; + background-color: #fff3c3; + border-radius: 9.38rpx; } + .list-item:first-child { - margin-top: 0; + margin-top: 0; } + .image_2 { - border-radius: 9.38rpx; - width: 148.13rpx; - height: 165rpx; + border-radius: 9.38rpx; + width: 148.13rpx; + height: 165rpx; } + .group { - padding: 0 3.75rpx; + padding: 0 3.75rpx; } + .font { - font-size: 18.75rpx; - font-family: Open Sans; - line-height: 17.44rpx; - color: #323232; + font-size: 18.75rpx; + font-family: Open Sans; + line-height: 17.44rpx; + color: #323232; } + .image { - width: 15rpx; - height: 15rpx; + width: 15rpx; + height: 15rpx; } + .font_2 { - font-size: 26.25rpx; - font-family: Open Sans; - line-height: 22.5rpx; - color: #323232; + font-size: 26.25rpx; + font-family: Open Sans; + line-height: 22.5rpx; + color: #323232; } + .text_2 { - line-height: 24.26rpx; + line-height: 24.26rpx; } + .group_2 { - line-height: 22.5rpx; + line-height: 22.5rpx; } + .font_4 { - font-size: 18.75rpx; - font-family: Open Sans; - line-height: 22.5rpx; - color: #323232; + font-size: 18.75rpx; + font-family: Open Sans; + line-height: 22.5rpx; + color: #323232; } + .font_3 { - font-size: 18.75rpx; - font-family: Open Sans; - line-height: 22.5rpx; - color: #828282; + font-size: 18.75rpx; + font-family: Open Sans; + line-height: 22.5rpx; + color: #828282; } + .font_5 { - font-size: 33.75rpx; - font-family: Times New Roman; - line-height: 24.73rpx; - color: #ff3c3c; + font-size: 33.75rpx; + font-family: Times New Roman; + line-height: 24.73rpx; + color: #ff3c3c; } + .section_2 { - background-color: #fffef8; - position: fixed; - bottom: 0; - width: 100%; + background-color: #fffef8; + position: fixed; + bottom: 0; + width: 100%; } + .section_3 { - padding: 15rpx 0; - background-color: #ffc470; - width: 118.13rpx; - height: 114.38rpx; + padding: 15rpx 0; + background-color: #ffc470; + width: 118.13rpx; + height: 114.38rpx; } + .image_3 { - width: 52.5rpx; - height: 52.5rpx; + width: 52.5rpx; + height: 52.5rpx; } + .text_4 { - color: #fffef8; - font-size: 26.25rpx; - font-family: Inter; - line-height: 24.17rpx; + color: #fffef8; + font-size: 26.25rpx; + font-family: Inter; + line-height: 24.17rpx; } + .text-wrapper { - margin-right: 26.25rpx; - padding: 26.25rpx 0; - background-color: #fbb612; - border-radius: 75rpx; - height: 82.5rpx; + margin-right: 26.25rpx; + padding: 26.25rpx 0; + background-color: #fbb612; + border-radius: 75rpx; + height: 82.5rpx; } + .text_3 { - color: #ffffff; - font-size: 30rpx; - font-family: Inter; - line-height: 27.86rpx; + color: #ffffff; + font-size: 30rpx; + font-family: Inter; + line-height: 27.86rpx; } + @import url("../../../common/css/global.css"); -</style> \ No newline at end of file +</style> --> + + +<template> + <view class="flex-col justify-start relative page"> + <view class="shrink-0 section"></view> + <view class="flex-col justify-start items-center text-wrapper pos"><text class="text">服装详情</text></view> + <view class="flex-col pos_2"> + <view class="flex-row items-center list-item" v-for="(item, index) in label" :key="index" @click="goToText(index)"> + <image class="shrink-0 image" + :src="item.image" /> + <view class="flex-col flex-1 ml-5"> + <text class="self-start font">{{item.name}}</text> + <text class="self-start font_2 text_2"> + {{item.intro}} + </text> + <text class="self-end font_3 text_3">¥{{item.price}}</text> + </view> + </view> + </view> + <view class="flex-row justify-between items-center section_4 pos_3"> + <view class="flex-col items-center"> + <image class="image_2" + src="https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=a18599a262f28b8e3d504092795de649.png" /> + <text class="text_5 mt-3">客服</text> + </view> + <view class="flex-col justify-start items-center text-wrapper_2"><text class="font text_4">现在去预约</text> + </view> + </view> + </view> +</template> + +<script setup> + import { + ref, + onMounted + } from 'vue' + import { + onLoad + } from '@dcloudio/uni-app' + import { + baseUrl + } from '../../../api/request'; + const list = ref([{}]) + const label = ref([{}]) + onMounted(() => { + getLabel() + }) + onLoad((options) => { + list.value = JSON.parse(options.info) + console.log(list.value, 'id') + }) + const getLabel = async () => { + const res = await uni.request({ + url: baseUrl + '/clothesInfo/list/label', + method: 'POST', + header: { + cookie: wx.getAccountInfoSync('cookie') + }, + data: { + id: list.value + } + }) + console.log(res) + if (res.data.code === 1) { + label.value = res.data.data + } else { + uin.showtoast({ + icon: 'error', + title: '获取失败' + }) + } + } + + const goToText = (index) => { + uni.navigateTo({ + url: "/pages/booking/CostumeDetails/CostumeDetails?info=" + JSON.stringify(label.value[index].id) + }) + console.log(label.value[index].id) + } +</script> + +<style lang="scss" scoped> + .ml-5 { + margin-left: 9.38rpx; +} +.mt-3 { + margin-top: 5.63rpx; +} +.page { + background-color: #ffffff; + overflow: hidden; + background-image: url('https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=7f5f6eb3a306f1097a8541736adfb354.png'); + background-size: 100% 100%; + background-repeat: no-repeat; + width: 100%; + overflow-y: auto; + overflow-x: hidden; + height: 100%; +} +.section { + background-image: url('https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=7f5f6eb3a306f1097a8541736adfb354.png'); + background-size: 100% 100%; + background-repeat: no-repeat; + width: 750rpx; + height: 1659.38rpx; +} +.text-wrapper { + padding: 26.25rpx 0 22.5rpx; + background-color: #ebe7e480; +} +.pos { + position: absolute; + left: 0; + right: 0; + top: 0; +} +.text { + color: #000000; + font-size: 37.5rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 36.34rpx; +} +.pos_2 { + position: absolute; + left: 45rpx; + right: 37.5rpx; + top: 150rpx; +} +.list-item { + padding: 0 7.5rpx; + background-color: #ffffff; + border-radius: 18.75rpx; +} +.image { + width: 161.25rpx; + height: 219.38rpx; +} +.font { + font-size: 28.13rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 27.69rpx; + color: #000000; +} +.font_2 { + font-size: 22.5rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 27.69rpx; + color: #00000099; +} +.text_2 { + margin-top: 18.75rpx; + line-height: 26.25rpx; + width: 427.5rpx; +} +.font_3 { + font-size: 28.13rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 18.79rpx; + color: #ff0707; +} +.text_3 { + margin-right: 18.75rpx; +} +.section_4 { + padding: 15rpx 45rpx; + background-color: #ffffff; +} +.pos_3 { + position: absolute; + left: 0; + right: 0; + position: fixed; + bottom: 0; +} +.image_2 { + width: 46.88rpx; + height: 46.88rpx; +} +.text_5 { + color: #9d2624; + font-size: 22.5rpx; + font-family: Open Sans; + line-height: 20.72rpx; +} +.text-wrapper_2 { + margin-right: 22.5rpx; + padding: 30rpx 0 26.25rpx; + background-color: #e79ea1; + border-radius: 75rpx; + width: 466.14rpx; + height: 82.5rpx; +} +.text_4 { + color: #ffffff; + font-size: 30rpx; + line-height: 27.43rpx; +} + + @import url("../../../common/css/global.css"); +// </style> \ No newline at end of file diff --git a/pages/mine/mineorders/mineorders.vue b/pages/mine/mineorders/mineorders.vue index 0ee67f6..f24a88c 100644 --- a/pages/mine/mineorders/mineorders.vue +++ b/pages/mine/mineorders/mineorders.vue @@ -1,106 +1,85 @@ <template> - <view class="flex-col page"> - <view class="flex-col section"> - <view class="flex-col justify-start section_2"> - <view class="flex-row justify-center items-center section_3"> - <image class="image" - src="https://ide.code.fun/api/image?token=672dbef4c471750012de4bf6&name=49977e5fbfb65cc3b62ce79b9d6705a2.png" /> - <text class="ml-4 font text">搜索订单</text> - </view> - </view> - <view class="flex-col section_4"> - <view class="flex-row justify-between self-stretch group"> - <view class="font_2" :class="{ active: orderStatus === '全部', selected: isSelected('全部') }" - @click="changeTab('全部')"> - 全部 - </view> - <view class="font_2" :class="{ active: orderStatus === '待支付', selected: isSelected('待支付') }" - @click="changeTab('待支付')"> - 待支付 - </view> - <view class="font_2" :class="{ active: orderStatus === '待发货', selected: isSelected('待发货') }" - @click="changeTab('待发货')"> - 待发货 - </view> - <view class="font_2" :class="{ active: orderStatus === '已发货', selected: isSelected('已发货') }" - @click="changeTab('已发货')"> - 已发货 - </view> - <view class="font_2" :class="{ active: orderStatus === '售后', selected: isSelected('售后') }" - @click="changeTab('售后')"> - 售后 - </view> - </view> - - </view> + <view class="flex-row relative page"> + <view class="flex-row justify-center items-center section_2 pos"> + <image class="image" + src="https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=49977e5fbfb65cc3b62ce79b9d6705a2.png" /> + <text class="font text ml-4">搜索订单</text> </view> - <view class=" mt-11"> - <view v-for="(order, index) in Status.displayedOrders" :key="order.id" class="text_7" - @click="goToText(index)"> - <text class="self-end font_66">等待卖家发货</text> - <view class="flex-row items-baseline self-stretch group_2"> - <text class="font_4 text_5">订单编号:</text> - <text class="font_4 text_6 ml-5">E20241005095840091406189</text> + <view class="flex-col section_44"> + <view class="flex-row justify-between self-stretch groupp"> + <view class="font_22" :class="{ active: orderStatus === '全部', selected: isSelected('全部') }" + @click="changeTab('全部')"> + 全部 </view> - <view class="flex-row self-stretch group_3"> - <!-- <image class="image_2" - src="https://ide.code.fun/api/image?token=672dbef4c471750012de4bf6&name=5875e21da70a62be74e9dcc2c322ece9.png" /> --> - <view v-for="item in order.orderItemList" :key="item.id"> - <image :src="item.goodSnapshot.goodImg" class="image_2"></image> - </view> - <view class="flex-col self-start"> - <view class="name"> - <!-- <text class="font text_7">非遗绒花</text> --> - <view view v-for="item in order.orderItemList" :key="item.id" class="font text_7"> - {{ item.goodSnapshot.name }} - </view> - <!-- <text class="ml-4 font text_8">【材料包】</text> --> - <view view v-for="item in order.orderItemList" :key="item.id" class=" font text_8"> - 【{{ item.goodSnapshot.type }}】 - </view> + <view class="font_22" :class="{ active: orderStatus === '待支付', selected: isSelected('待支付') }" + @click="changeTab('待支付')"> + 待支付 + </view> + <view class="font_22" :class="{ active: orderStatus === '待发货', selected: isSelected('待发货') }" + @click="changeTab('待发货')"> + 待发货 + </view> + <view class="font_22" :class="{ active: orderStatus === '已发货', selected: isSelected('已发货') }" + @click="changeTab('已发货')"> + 已发货 + </view> + <view class="font_22" :class="{ active: orderStatus === '已退款', selected: isSelected('已退款') }" + @click="changeTab('已退款')"> + 售后/退款 + </view> + </view> + + + <view class="flex-col pos_8"> + <view class="flex-col section_4 list-item_1 mt-14" v-for="(order, index) in Status.displayedOrders" + :key="order.id" @click="goToText(index)"> + <view class="flex-col"> + <!-- <text class="self-end font_3 text_5">交易关闭</text> --> + <view class="flex-row items-center self-stretch mt-2"> + <text class="font_4">订单编号:</text> + <text class="font_5 ml-5">{{order.orderNumber}}</text> </view> - <text class="self-start font_4 text_11 mt-11">已选种类:紫色</text> </view> - <view style="margin-left: 130px;"> - <view> - <view view v-for="item in order.orderItemList" :key="item.id"> + <view class="flex-col group"> + <view class="flex-row justify-between list-item group_3" v-for="item in order.orderItemList" + :key="item.id"> + <view class="flex-row"> + <image class="image_2" :src="item.goodSnapshot.goodImg" /> + <view class="flex-col self-start group_1 ml-18"> + <view class="flex-row self-stretch"> + <text class="font">{{ item.goodSnapshot.name }}</text> + <text class="font text_10">【{{ item.goodSnapshot.type }}】</text> + </view> + <text class="self-start font_7 text_12 mt-36">×1</text> + </view> + </view> + <view class="flex-row items-center self-start group_2"> {{ item.goodSnapshot.price }} </view> </view> - <text class="mt-22 self-end font text_12">×1</text> </view> - </view> - <view class="flex-row justify-end items-center self-stretch group_5 view"> - <text class="font_6 text_13">已优惠:</text> - <image class="image_3" - src="https://ide.code.fun/api/image?token=672dbef4c471750012de4bf6&name=fdc5706a15c3ea209832fbbc3f8f8100.png" /> - <view class="group_6"> - <text class="font_7 text_14">50</text> - <text class="font_5">.00</text> - </view> - </view> - <view class="flex-row justify-end items-center self-stretch group_5 view_2"> - <text class="font_6 text_15">需付款:</text> - <image class="image_3" - src="https://ide.code.fun/api/image?token=672dbef4c471750012de4bf6&name=ea05ec17023763edb8cfe919508e0459.png" /> - <view class="group_7"> - <text class="font_7 text_16">88</text> - <text class="font_5 text_17">.00</text> - </view> - </view> - <view class="flex-row justify-end self-stretch group_5 view_3"> - <view class="flex-col justify-start items-center text-wrapper"> - <!-- <text class="font text_18">取消订单</text> --> + <view class="divider view_1"></view> + <view class="flex-row justify-end group_5"> <view v-if="order.orderStatus==='待支付'" class="font text_18">去支付</view> <view v-if="order.orderStatus==='待发货'" class="font text_18">取消订单</view> <view v-if="order.orderStatus==='已发货'" class="font text_18">确认收货</view> - <view v-if="order.orderStatus==='售后'" class="font text_18">售后详情</view> + <view v-if="order.orderStatus==='已退款'" class="font text_18">售后详情</view> </view> - <view class="flex-col justify-start items-center text-wrapper_2 ml-21"> - <text class="font_3 text_19">联系客服</text> + <view class="flex-row justify-end items-center view"> + <text class="font_9 text_16">总 金额:</text> + <image class="image_4 image_5" + src="https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=f10bd62afae3562e9d76103ff6fb0f84.png" /> + <text class="font_8 text_17">{{order.totalAmount}}</text> + </view> + <view class="flex-row justify-end group_7"> + <view class="flex-col justify-start items-center text-wrapper"><text + class="font text_18">删除记录</text></view> + <view class="flex-col justify-start items-center text-wrapper_2 ml-14"> + <text class="font_3">联系客服</text> + </view> </view> </view> - </view> + </view> </view> </view> </template> @@ -134,7 +113,7 @@ url: baseUrl + '/order/list', method: 'POST', header: { - cookie : wx.getStorageSync('cookie') + cookie: wx.getStorageSync('cookie') }, data: { // id:userInfo.value.userInfo.id, @@ -142,7 +121,7 @@ }, }); if (res.data.code === 1) { - console.log('res.data.data--->',res.data.data); + console.log('res.data.data--->', res.data.data); Status.value.orders = res.data.data; } else { console.log('没拿到用户数据'); @@ -161,8 +140,8 @@ return order.orderStatus === '待发货'; case '已发货': return order.orderStatus === '已发货'; - case '售后': - return order.orderStatus === '售后'; + case '已退款': + return order.orderStatus === '已退款'; default: return false; } @@ -175,316 +154,352 @@ const goToText = (index) => { console.log('下标-->', index); uni.navigateTo({ - url: '../../../pages/mine/OrderDetails/OrderDetails?info=' + JSON.stringify(Status.value.displayedOrders[index]), + url: '../../../pages/mine/OrderDetails/OrderDetails?info=' + JSON.stringify(Status.value + .displayedOrders[index]), }) } </script> <style lang="scss" scoped> + .groupp { + padding: 22.5rpx 0 18.75rpx; + } + + .section_44 { + padding-left: 33.75rpx; + padding-right: 30rpx; + width: 100%; + height: 120rpx; + margin-top: 80rpx; + } + .ml-5 { margin-left: 9.38rpx; } - .mt-11 { - margin: 10px 10px 0 10px; + .font_22.selected { + position: relative; } - .ml-21 { - margin-left: 39.38rpx; + .font_22.selected::after { + content: ''; + position: absolute; + bottom: -5px; // 调整线条距离底部的距离 + left: 0; + right: 0; + height: 2px; // 调整线条的粗细 + background-color: #f6aaa4; // 调整线条颜色 + transition: all 0.3s ease; // 添加过渡效果 } -.name{ - -} + .page { - padding-bottom: 1003.13rpx; - background-color: #f8e8c1; + padding: 46.88rpx 22.5rpx 401.25rpx; + background-color: #ffffff; + background-image: url('https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=4ba8389730acda4f67d46a7370efec60.png'); + background-size: 100% 100%; + background-repeat: no-repeat; + height: 2073.75rpx; width: 100%; overflow-y: auto; overflow-x: hidden; - height: 100%; - } - - .section { - background-color: #fffef8; } .section_2 { - padding: 15rpx 0; - background-color: #f5f5dc; - } - - .section_3 { - margin: 0 35.63rpx; padding: 9.38rpx 0; background-color: #ffffff; border-radius: 75rpx; } + .pos { + position: absolute; + left: 35.63rpx; + right: 35.63rpx; + top: 46.88rpx; + } + .image { width: 37.5rpx; height: 37.5rpx; } - .section_4 { - padding-left: 33.75rpx; - padding-right: 30rpx; - background-color: #fffef8; - } - - - .group { - padding: 22.5rpx 0 18.75rpx; - } - - .font_2 { - font-size: 30rpx; - font-family: Open Sans; - line-height: 27.81rpx; - color: #323232; - } - - - // .font_2.selected { - // background-color: brown; - // color: white; - // } -.font_2.selected { - position: relative; -} - -.font_2.selected::after { - content: ''; - position: absolute; - bottom: -5px; // 调整线条距离底部的距离 - left: 0; - right: 0; - height: 2px; // 调整线条的粗细 - background-color: #f08b00; // 调整线条颜色 - transition: all 0.3s ease; // 添加过渡效果 -} - .text_2 { - line-height: 27.66rpx; - } - - .text_3 { - line-height: 27.69rpx; - } - - .text_4 { - line-height: 27.71rpx; - } - - .section_6 { - margin: 15rpx 15rpx; - padding: 30rpx 18.75rpx 20.63rpx 24.38rpx; - background-color: #fffef8; - border-radius: 18.75rpx; - } - - .font_3 { - font-size: 26.25rpx; - font-family: Open Sans; - line-height: 24.34rpx; - color: #fb8b05; - } - .font_66 { - font-size: 26.25rpx; - font-family: Open Sans; - line-height: 24.34rpx; - color: #fb8b05; - float: right; - } - - .group_2 { - margin-top: 18.75rpx; - } - - .font_4 { - font-size: 22.5rpx; - font-family: Open Sans; - line-height: 21.99rpx; - color: #818181; - } - - .text_5 { - line-height: 20.85rpx; - } - - .text_6 { - line-height: 16.54rpx; - } - - .group_3 { - margin-top: 30rpx; - } - - .image_2 { - border-radius: 9.38rpx; - width: 160rpx; - height: 160rpx; - } - - .text_11 { - line-height: 20.79rpx; - } - - .group_4 { - margin-right: 15rpx; - } - - .text_9 { - margin-left: 26.25rpx; - color: #323232; - font-size: 33.75rpx; - font-family: Open Sans; - font-weight: 600; - line-height: 24.88rpx; - } - - .image_3 { - width: 30rpx; - height: 26.25rpx; - } - - .image_4 { - margin-left: -90rpx; - } - - .font_5 { - font-size: 26.25rpx; - font-family: Open Sans; - line-height: 19.39rpx; - font-weight: 600; - color: #323232; - } - - .text_10 { - margin-left: 60rpx; - line-height: 19.29rpx; - } - .font { font-size: 26.25rpx; - font-family: Open Sans; - line-height: 24.34rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 25.54rpx; color: #323232; } - .text_8 { - line-height: 24.43rpx; - background-color: #fffef8; - } - - .text_7 { - // line-height: 24.43rpx; - padding: 10px; - margin-bottom: 10px; - background-color: #fffef8; - border-radius: 20px; - } - .text { color: #c0c0c0; + line-height: 25.84rpx; } - .text_12 { - line-height: 18.73rpx; + .font_2 { + font-size: 30rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 28.84rpx; + color: #323232; } - .group_5 { - padding: 0 11.25rpx; + .font_22 { + font-size: 30rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 27.81rpx; + color: #323232; } - .view { - margin-top: 7.5rpx; + .text_2 { + line-height: 28.48rpx; } - .font_6 { + .pos_2 { + position: absolute; + left: 33.99rpx; + top: 146.36rpx; + } + + .text_3 { + line-height: 28.24rpx; + } + + .pos_3 { + position: absolute; + left: 147.66rpx; + top: 146.14rpx; + } + + .pos_4 { + position: absolute; + left: 295.78rpx; + top: 145.78rpx; + } + + .pos_5 { + position: absolute; + right: 214.22rpx; + top: 145.78rpx; + } + + .text_4 { + line-height: 29.53rpx; + } + + .pos_6 { + position: absolute; + right: 34.22rpx; + top: 147.07rpx; + } + + .section_3 { + background-color: #ffaaa5; + width: 73.13rpx; + height: 5.63rpx; + } + + .pos_7 { + position: absolute; + left: 30rpx; + top: 182.81rpx; + } + + .pos_8 { + position: absolute; + left: 22.5rpx; + right: 30rpx; + top: 217.5rpx; + } + + .section_4 { + padding: 34.61rpx 15rpx 31.88rpx; + background-color: #ffffff; + border-radius: 31.88rpx; + } + + .list-item_1:first-child { + margin-top: 0; + } + + .font_3 { font-size: 26.25rpx; - font-family: Open Sans; - line-height: 24.34rpx; - color: #000000; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 25.54rpx; + color: #ffaaa5; } - .text_13 { - margin-right: -7.5rpx; - line-height: 24.09rpx; + .text_5 { + margin-right: 8.08rpx; + line-height: 24.62rpx; } - .group_6 { - line-height: 22.05rpx; - height: 22.11rpx; + .font_4 { + font-size: 22.5rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 22.14rpx; + color: #818181; + } + + .font_5 { + font-size: 22.5rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 15.04rpx; + color: #818181; + } + + .group { + margin-top: 29.21rpx; + } + + .list-item:first-child { + margin-top: 0; + } + + .image_2 { + border-radius: 9.38rpx; + width: 146.25rpx; + height: 144.38rpx; + } + + .group_1 { + margin-top: 2.33rpx; + } + + .text_10 { + line-height: 25.01rpx; } .font_7 { - font-size: 30rpx; + font-size: 26.25rpx; font-family: Open Sans; - line-height: 21.99rpx; + line-height: 19.29rpx; + color: #323232; + } + + .text_12 { + margin-left: 5.34rpx; + line-height: 18.73rpx; + } + + .group_2 { + margin-right: 8.23rpx; + margin-top: 89.19rpx; + } + + .font_6 { + font-size: 33.75rpx; + font-family: Open Sans; + line-height: 25.54rpx; font-weight: 600; + color: #323232; + } + + .text_11 { + margin-left: 25.03rpx; + line-height: 24.88rpx; + } + + .image_3 { + margin-left: -90.66rpx; + width: 30rpx; + height: 26.25rpx; + } + + .font_8 { + font-size: 26.25rpx; + font-family: Open Sans; + line-height: 19.29rpx; + font-weight: 600; + color: #323232; + } + + .text_13 { + margin-left: 61.14rpx; + } + + .divider { + background-color: #dad2d2; + height: 0.81rpx; + } + + .view_1 { + margin: 30.43rpx 28.13rpx 0 39.38rpx; + } + + .group_5 { + margin-top: 49.41rpx; + padding: 0 21.21rpx; + color: #ffaaa5; + } + + .font_9 { + font-size: 26.25rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 25.54rpx; + color: #000000; } .text_14 { - color: #323232; - line-height: 22.05rpx; - } - - .view_2 { - margin-top: 18.75rpx; + line-height: 24.62rpx; } .text_15 { - margin-right: -7.5rpx; - line-height: 24.23rpx; + margin-top: 2.17rpx; + line-height: 24rpx; } - .group_7 { - line-height: 21.99rpx; - height: 22.05rpx; + .view { + margin-top: 19.93rpx; + padding: 0 19.54rpx; } .text_16 { - color: #fb8b05; + margin-right: 6.99rpx; + line-height: 24.3rpx; + } + + .image_4 { + width: 31.88rpx; + height: 30rpx; + } + + .image_5 { + margin-right: -8.29rpx; } .text_17 { - color: #fb8b05; + color: #ffaaa5; + line-height: 19.39rpx; } - .view_3 { - margin-top: 45rpx; + .group_7 { + margin-top: 52.5rpx; + padding: 0 9.38rpx; } .text-wrapper { - padding: 15rpx 0; + padding: 13.86rpx 0 13.52rpx; background-color: #fffef8; border-radius: 75rpx; width: 155.63rpx; height: 56.25rpx; - border-left: solid 1.88rpx #cbcbcb; - border-right: solid 1.88rpx #cbcbcb; - border-top: solid 1.88rpx #cbcbcb; - border-bottom: solid 1.88rpx #cbcbcb; + border: solid 1.88rpx #cbcbcb; } .text_18 { - line-height: 24.15rpx; + line-height: 25.13rpx; } .text-wrapper_2 { - padding: 15rpx 0; + padding: 13.46rpx 0 13.5rpx; background-color: #fffef8; border-radius: 75rpx; width: 155.63rpx; height: 56.25rpx; - border-left: solid 1.88rpx #fb8b05; - border-right: solid 1.88rpx #fb8b05; - border-top: solid 1.88rpx #fb8b05; - border-bottom: solid 1.88rpx #fb8b05; + border: solid 1.88rpx #ffaaa5; } - .text_19 { - line-height: 24.36rpx; + .group_3 { + margin-top: 15rpx; } - @import url(/common/css/global.css); + @import url("../../../common/css/global.css"); </style> \ No newline at end of file diff --git a/pages/syy.vue b/pages/syy.vue index c8d9105..3bd976b 100644 --- a/pages/syy.vue +++ b/pages/syy.vue @@ -1,632 +1,505 @@ <template> - <!-- 弹窗 --> - <uni-popup ref="popup1" v-if="showPopup1" :mask-click="false" background-color="white"> - <view style="text-align: center;margin: 10px;font-size: 18px;">预约须知</view> - <view style="margin: 0 20px;">1.成功预约的顾客需按照预定时间前往店内挑选相应级别的服装。 - 为确保衣物在体验过程中的完好无损,顾客需根据所选服装的级别补缴尾款以及相应的押金。 - 拍摄结束后,店铺将依据衣物的实际状况评估是否扣除押金。</view> - <view style="margin: 0 20px;"> - 2.其中部分物品商家可提供,属于增值服务(如一次性隐形眼镜、 - 一次性粉扑等属于服务费以外的赠送服务,买家可选择自带用品,不影响服务价格), - 需要买家自己准备的,客服需要提前告诉买家(如胸贴等贴身物品) + <view class="flex-row relative page"> + <view class="flex-row justify-center items-center section_2 pos"> + <image class="image" + src="https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=49977e5fbfb65cc3b62ce79b9d6705a2.png" /> + <text class="font text ml-4">搜索订单</text> </view> - <button @click="close1" style="width: 50%;background-color:#f2b600;border-radius: 30px;margin-top: 20px; - margin-bottom: 20px;">我知道了</button> - </uni-popup> - <uni-popup ref="popup2" v-if="showPopup2" :mask-click="false" background-color="white"> - <scroll-view style="height: 400px;width: 100%;" scroll-y="true"> - <view style="text-align: center;margin: 10px;font-size: 18px;">费用说明</view> - <view style="margin: 10px;"> 一、费用支付流程</view> - <view style="margin: 0 20px;"> - <view>1.确定等级:您将根据个人需求选择合适的服装价位区间,并完成预约操作。</view> - <view>2.预约成功:预约成功后,您需前往店铺挑选对应等级的服装。</view> - <view>3.补缴尾款及押金:在挑选服装时,您需要补缴尾款(扣除已支付定金后的剩余服务或商品费用)以及押金(用于保障服装归还时的完好)。</view> + <view class="flex-col section_44"> + <view class="flex-row justify-between self-stretch groupp"> + <view class="font_22" :class="{ active: orderStatus === '全部', selected: isSelected('全部') }" + @click="changeTab('全部')"> + 全部 + </view> + <view class="font_22" :class="{ active: orderStatus === '待支付', selected: isSelected('待支付') }" + @click="changeTab('待支付')"> + 待支付 + </view> + <view class="font_22" :class="{ active: orderStatus === '待发货', selected: isSelected('待发货') }" + @click="changeTab('待发货')"> + 待发货 + </view> + <view class="font_22" :class="{ active: orderStatus === '已发货', selected: isSelected('已发货') }" + @click="changeTab('已发货')"> + 已发货 + </view> + <view class="font_22" :class="{ active: orderStatus === '已退款', selected: isSelected('已退款') }" + @click="changeTab('已退款')"> + 售后/退款 + </view> </view> - <view style="margin: 10px;"> 二、尾款具体事项</view> - <view style="margin: 0 20px;"> - <view>1.租赁服装:若您选择租赁我们店铺没有的服装,租赁费用将在您支付尾款时一并结算。无论拍摄是否进行,租赁费用均不予退还。</view> - <view>2.购买服装:如您希望购买我们店铺的服装,且我们同意购买,将按照服装的稀有程度分等级定价。您需按照所选等级支付尾款。</view> - <view>3.定制服务:若您自带衣服,我们提供妆发及摄影服务。若需我们额外购买服装,将按照上述等级定价,您需支付相应的尾款。</view> - </view> - <view style="margin: 10px;"> 三、定金与押金说明</view> - <view style="margin: 0 20px;"> - <view>1.定金:预约时支付的定金用于确认您的预约意向,定金不予退还。</view> - <view>2.押金:拍摄完成后,我们将根据服装的归还情况决定是否扣除押金。若服装无损坏,押金将全额退还。</view> - </view> - <view style="margin: 10px;"> 四、特殊情况处理</view> - <view style="margin: 0 20px;"> - <view> 若因特殊情况您需要取消预约,请及时与我们联系。未拍摄情况下,定金不予退还,已支付的租赁费用亦不退还。</view> - </view> - </scroll-view> - <button @click="close2" style="width: 50%;background-color:#f2b600;border-radius: 30px;margin-top: 20px; - margin-bottom: 20px;">我知道了</button> - </uni-popup> - <view class="flex-col justify-start relative page"> - <view class="section"></view> - <text class="font text pos">选择预约类别</text> - <view class="flex-row equal-division group"> - <view class="flex-col equal-division-item section_2" @click="showWhole('0')"> - <image class="self-start image" - src="https://ide.code.fun/api/image?token=675fbf94797f850011f2bedf&name=e29908fd7c3623fbb6854b38b828c5b8.png" /> - <text class="self-center font mt-7">整套约拍</text> - </view> - <view class="ml-48 flex-col equal-division-item section_3" @click="showWhole('1')"> - <image class="self-start image" - src="https://ide.code.fun/api/image?token=675fbf94797f850011f2bedf&name=ca4da1e3507e3276bd2cf0946c8322bd.png" /> - <text class="mt-8 self-center font text_2">自带服装</text> - </view> - </view> - <template v-if="zhi === '0'"> - <text class="font text_3 pos_2">选择服装类别</text> - <view class="flex-col section_4 pos_3"> - <view class="flex-col list"> - <view class="flex-row justify-between section_5" v-for="(item,index) in Whole" :key="item" - @click="goToText(index)"> - <view class="flex-row items-end self-center"> - <image class="image_2" :src="item.image" /> - <view class="ml-20 flex-col group_2"> - <text class="self-start font_2 text_4">{{item.clothesType}}</text> - <view class="flex-row items-center self-stretch group_3"> - <view class="group_4"> - <text class="font_2">价位</text> - <text class="font_4">:</text> + + <view class="flex-col pos_8"> + <view class="flex-col section_4 list-item_1 mt-14" v-for="(order, index) in Status.displayedOrders" + :key="order.id" @click="goToText(index)"> + <view class="flex-col"> + <!-- <text class="self-end font_3 text_5">交易关闭</text> --> + <view class="flex-row items-center self-stretch mt-2"> + <text class="font_4">订单编号:</text> + <text class="font_5 ml-5">{{order.orderNumber}}</text> + </view> + </view> + <view class="flex-col group"> + <view class="flex-row justify-between list-item group_3" v-for="item in order.orderItemList" + :key="item.id"> + <view class="flex-row"> + <image class="image_2" :src="item.goodSnapshot.goodImg" /> + <view class="flex-col self-start group_1 ml-18"> + <view class="flex-row self-stretch"> + <text class="font">{{ item.goodSnapshot.name }}</text> + <text class="font text_10">【{{ item.goodSnapshot.type }}】</text> </view> - <text class="ml-6 font_3 text_5">¥{{item.minPrice}}-{{item.maxPrice}}</text> + <text class="self-start font_7 text_12 mt-36">×1</text> </view> - <text class="self-stretch font_5 text_6">{{item.brief}}</text> + </view> + <view class="flex-row items-center self-start group_2"> + {{ item.goodSnapshot.price }} </view> </view> - <image class="self-start image_3 image_4" - src="https://ide.code.fun/api/image?token=675fbf94797f850011f2bedf&name=eee721f36de3196113485ea7e5c6b5ad.png" /> </view> - </view> - </view> - </template> - <template v-if="zhi === '1'"> - <text class="font text_3 pos_2">选择服务</text> - <view class="flex-col section_4 pos_3"> - <view class="flex-col list"> - <view class="flex-row justify-between section_5"v-for="(item,index) in Own" :key="item"> - <view class="flex-row items-end self-center"> - <image class="image_2" :src="item.img" /> - <view class="ml-20 flex-col group_2"> - <text class="self-start font_2 text_4">{{item.name}}</text> - <text class="font_33 text_55">{{item.title}}</text> - </view> + <view class="divider view_1"></view> + <view class="flex-row justify-end group_5"> + <view v-if="order.orderStatus==='待支付'" class="font text_18">去支付</view> + <view v-if="order.orderStatus==='待发货'" class="font text_18">取消订单</view> + <view v-if="order.orderStatus==='已发货'" class="font text_18">确认收货</view> + <view v-if="order.orderStatus==='已退款'" class="font text_18">售后详情</view> + </view> + <view class="flex-row justify-end items-center view"> + <text class="font_9 text_16">总 金额:</text> + <image class="image_4 image_5" + src="https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=f10bd62afae3562e9d76103ff6fb0f84.png" /> + <text class="font_8 text_17">{{order.totalAmount}}</text> + </view> + <view class="flex-row justify-end group_7"> + <view class="flex-col justify-start items-center text-wrapper"><text + class="font text_18">删除记录</text></view> + <view class="flex-col justify-start items-center text-wrapper_2 ml-14"> + <text class="font_3">联系客服</text> </view> - <!-- <view style="background-color: #f2b600;width: 200rpx;"> --> - <view class="flex-row self-stretch mt-104" style="width: 150rpx;"> - <view class="flex-col justify-start items-center image-wrapper_2" @click="add(index)"> - - - </view> - <view class="ml-2 flex-col justify-start items-center text-wrapper-6" style="margin-left: 8px;margin-right: 8px;"> - {{ item.num }}</view> - <view class="ml-2 flex-col justify-start items-center image-wrapper_3" @click="jian(index)"> - + - </view> - </view> - <!-- </view> --> </view> </view> </view> - </template> - <view class="mt-22 flex-row justify-between items-center section_9"> - <view class="flex-row"> - <image class="shrink-0 self-center image_9" - src="https://ide.code.fun/api/image?token=675fbf94797f850011f2bedf&name=0ed6323496056f793bd3c25b3dcd9eb6.png" /> - <text class="self-start text_15">88.</text> - <text class="self-center font_2 text_14">定金:</text> - <text class="self-center text_17">00</text> - <view class="flex-row shrink-0 section_10" @click="openPopup2"> - <text class="text_18">费用说明</text> - <image class="shrink-0 image_10 ml-3" - src="https://ide.code.fun/api/image?token=675fbf94797f850011f2bedf&name=0455b173571a47fdc438588e788f26c5.png" /> - </view> - </view> - <view class="flex-col justify-start items-center text-wrapper"><text class="font text_16">确定预约</text> - </view> - </view> </view> + </view> </template> <script setup> import { ref, - onMounted - } from 'vue' + onMounted, + toRaw + } from 'vue'; import { - baseUrl - } from '@/api/request' - const items = ref([null, null, null, null]); - onMounted(() => { - getWhole() - }) - const displayItem = ref([]) - const Whole = ref([{}]) - const getWhole = async () => { + baseUrl, + testUrl, + suiUrl + } from '@/api/request'; + const Status = ref({ + orderStatus: '全部', + orders: [], + displayedOrders: [], + }); + const orderStatus = '' + const currentColor = ref(0); + const isSelected = (tab) => Status.value.orderStatus === tab; + onMounted(async () => { + await Getorder(); + Status.value.displayedOrders = Status.value.orders; + }); + const userInfo = wx.getStorageSync('userInfo') + const Getorder = async () => { const res = await uni.request({ - url: baseUrl + '/clothesGrade/list', + url: baseUrl + '/order/list', method: 'POST', header: { - cookie: wx.getAccountInfoSync('cookie') + cookie: wx.getStorageSync('cookie') }, data: { - - } - }) - if (res.data.code === 1) { - Whole.value = res.data.data - } else { - uin.showtoast({ - icon: 'error', - title: '获取失败' - }) - } - } - const Own = ref([{ - img: 'https://carbon2.obs.cn-north-4.myhuaweicloud.com:443/feiyi%2Ftest%2F0%2FObQGBPnJ-zhuangfa.png', - name: '妆发预约', - num:0, - title: '包括底妆,眉毛,眼妆,腮红和唇妆,根据您的肤色和服装风格进行个性化设计' - }, - { - img: 'https://carbon2.obs.cn-north-4.myhuaweicloud.com:443/feiyi%2Ftest%2F0%2FDFNymmCN-sheying.png', - name: '摄影服务', - num:0, - title: '提供专业的摄影棚和灯光设备,为客户打造舒适的拍摄环境' - } - ]) - const zhi = ref('0') - - const showWhole = (zhiValue) => { - zhi.value = zhiValue - // console.log(zhi.value) - } - - const showOwn = (zhiValue) => { - zhi.value = zhiValue - // console.log(zhi.value) - } - - const close1 = () => { - popup1.value.close() - } - const close2 = () => { - popup2.value.close() - } - - const popup1 = ref(null) - const popup2 = ref(null) - const showPopup1 = ref(false) - const showPopup2 = ref(false) - - const openPopup1 = () => { - showPopup1.value = true; - popup1.value.open('center'); - } - - const openPopup2 = () => { - showPopup2.value = true; - popup2.value.open('center'); - } - - const closePopup1 = () => { - showPopup1.value = false; - } - - const closePopup2 = () => { - showPopup2.value = false; - } - const selectedLocation = ref(null) - const handleFormSubmit = () => { - selectedLocation.value = null - } - //室内室外 - const handleLocationChange = (e) => { - selectedLocation.value = e.detail.value - console.log(selectedLocation.value) - } - const goToText = (index) => { - console.log(index) - uni.navigateTo({ - url: "/pages/booking/CostumeDisplay/CostumeDisplay?info=" + JSON.stringify(Whole.value[index].id) + // id:userInfo.value.userInfo.id, + id: userInfo.id, + }, }); - console.log(Whole.value[index].id) - } - const goToContact = () => { + if (res.data.code === 1) { + console.log('res.data.data--->', res.data.data); + Status.value.orders = res.data.data; + } else { + console.log('没拿到用户数据'); + } + }; + const changeTab = (tab) => { + if (tab === '全部') { + Status.value.displayedOrders = Status.value.orders; + Status.value.orderStatus = '全部'; + } else { + Status.value.displayedOrders = Status.value.orders.filter((order) => { + switch (tab) { + case '待支付': + return order.orderStatus === '待支付'; + case '待发货': + return order.orderStatus === '待发货'; + case '已发货': + return order.orderStatus === '已发货'; + case '已退款': + return order.orderStatus === '已退款'; + default: + return false; + } + }); + Status.value.orderStatus = tab; + } + }; + + + const goToText = (index) => { + console.log('下标-->', index); uni.navigateTo({ - url: '/pages/mine/Contact/Contact' + url: '../../../pages/mine/OrderDetails/OrderDetails?info=' + JSON.stringify(Status.value + .displayedOrders[index]), }) } - //计步器 - const add = (index) => { - if(Own.value[index].num >0){ - Own.value[index].num -= 1 - } - } - const jian = (index) => { - Own.value[index].num += 1 - } </script> <style lang="scss" scoped> - .mt-104 { - margin-top: 60rpx; - margin-right: 10rpx; - } - .image-wrapper_2 { - padding: 11.25rpx 0; - background-color: #f8dedf; - border-radius: 5.63rpx 0rpx 0rpx 5.63rpx; - width: 52.5rpx; - height: 52.5rpx; - } - .text-wrapper_6 { - padding: 15rpx 0 11.25rpx; - background-color: #f5f5dc; - width: 52.5rpx; - height: 52.5rpx; - } - .image-wrapper_3 { - padding: 11.25rpx 0; - background-color: #f8dedf; - border-radius: 0rpx 5.63rpx 5.63rpx 0rpx; - width: 52.5rpx; - height: 52.5rpx; - } - .image_33 { - width: 33.75rpx; - height: 33.75rpx; - } - .mt-7 { - margin-top: 13.13rpx; + .groupp { + padding: 22.5rpx 0 18.75rpx; } - .ml-3 { - margin-left: 5.63rpx; + .section_44 { + padding-left: 33.75rpx; + padding-right: 30rpx; + width: 100%; + height: 120rpx; + margin-top: 80rpx; } - .font_33 { - font-size: 22.5rpx; - font-family: FZSongKeBenXiuKaiS-R-GB; - line-height: 25.13rpx; - color: #8a8a8a; + + .ml-5 { + margin-left: 9.38rpx; } - .text_55 { - margin-top: 26.25rpx; - line-height: 26.25rpx; - width: 280rpx; + + .font_22.selected { + position: relative; } - .font_7 { - font-size: 22.5rpx; - font-family: Open Sans; - line-height: 20.72rpx; - color: #8a8a8a; - } - .text_9 { - line-height: 21.36rpx; - } - .mt-11 { - margin-top: 20.63rpx; + + .font_22.selected::after { + content: ''; + position: absolute; + bottom: -5px; // 调整线条距离底部的距离 + left: 0; + right: 0; + height: 2px; // 调整线条的粗细 + background-color: #f6aaa4; // 调整线条颜色 + transition: all 0.3s ease; // 添加过渡效果 } + .page { + padding: 46.88rpx 22.5rpx 401.25rpx; background-color: #ffffff; - background-image: url('https://ide.code.fun/api/image?token=675fbf94797f850011f2bedf&name=17e1ca160ffb13e8723517aa1cebf07e.png'); + background-image: url('https://ide.code.fun/api/image?token=67610a10797f850011f30392&name=4ba8389730acda4f67d46a7370efec60.png'); background-size: 100% 100%; background-repeat: no-repeat; + height: 2073.75rpx; width: 100%; overflow-y: auto; overflow-x: hidden; - height: 100%; - } - - .section { - background-image: url('https://ide.code.fun/api/image?token=675fbf94797f850011f2bedf&name=17e1ca160ffb13e8723517aa1cebf07e.png'); - background-size: 100% 100%; - background-repeat: no-repeat; - width: 750rpx; - height: 1728.75rpx; - } - - .equal-division { - position: absolute; - left: 50%; - top: 136.88rpx; - transform: translateX(-50%); - } - - .group { - width: 650.63rpx; - } - - .image { - width: 192rpx; - height: 192rpx; - } - - .equal-division-item { - flex: 1 1 279.38rpx; } .section_2 { - padding: 7.5rpx 26.25rpx 41.25rpx; - opacity: 0.85; + padding: 9.38rpx 0; background-color: #ffffff; - border-radius: 18.75rpx; - height: 281.25rpx; - } - - .section_3 { - padding: 7.5rpx 22.5rpx 41.25rpx; - background-color: #ffffffcc; - border-radius: 18.75rpx; - height: 281.25rpx; - } - - .font { - font-size: 30rpx; - font-family: FZSongKeBenXiuKaiS-R-GB; - line-height: 28.59rpx; - color: #323232; - } - - .text { - line-height: 27.69rpx; + border-radius: 75rpx; } .pos { position: absolute; - left: 31.35rpx; - top: 49.84rpx; + left: 35.63rpx; + right: 35.63rpx; + top: 46.88rpx; + } + + .image { + width: 37.5rpx; + height: 37.5rpx; + } + + .font { + font-size: 26.25rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 25.54rpx; + color: #323232; + } + + .text { + color: #c0c0c0; + line-height: 25.84rpx; + } + + .font_2 { + font-size: 30rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 28.84rpx; + color: #323232; + } + + .font_22 { + font-size: 30rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 27.81rpx; + color: #323232; } .text_2 { - line-height: 29.42rpx; - } - - .text_3 { - line-height: 28.84rpx; + line-height: 28.48rpx; } .pos_2 { position: absolute; - left: 48.06rpx; - top: 537.66rpx; + left: 33.99rpx; + top: 146.36rpx; } - .section_4 { - background-color: #ffffff6c; - border-radius: 37.5rpx 37.5rpx 0 0; + .text_3 { + line-height: 28.24rpx; } .pos_3 { position: absolute; - left: 0; - right: 0; - top: 581.25rpx; + left: 147.66rpx; + top: 146.14rpx; } - .list { - padding: 50.63rpx 45rpx; + .pos_4 { + position: absolute; + left: 295.78rpx; + top: 145.78rpx; } - .section_5 { - margin-right: 15rpx; - padding: 13.13rpx 3.75rpx 37.5rpx 43.13rpx; - background-color: #ffffff; - border-radius: 18.75rpx; - margin: 5px; - } - - .image_2 { - border-radius: 9.38rpx; - width: 118.13rpx; - height: 151.88rpx; - } - - .group_2 { - margin-bottom: 3.75rpx; - } - - .font_2 { - font-size: 26.25rpx; - font-family: FZSongKeBenXiuKaiS-R-GB; - line-height: 24.3rpx; - color: #323232; + .pos_5 { + position: absolute; + right: 214.22rpx; + top: 145.78rpx; } .text_4 { - line-height: 25.43rpx; + line-height: 29.53rpx; } - .group_3 { - margin-top: 26.25rpx; + .pos_6 { + position: absolute; + right: 34.22rpx; + top: 147.07rpx; } - .group_4 { - line-height: 24.3rpx; - height: 24.3rpx; + .section_3 { + background-color: #ffaaa5; + width: 73.13rpx; + height: 5.63rpx; } - .font_4 { - font-size: 26.25rpx; - font-family: Open Sans; - line-height: 16.8rpx; - color: #323232; + .pos_7 { + position: absolute; + left: 30rpx; + top: 182.81rpx; + } + + .pos_8 { + position: absolute; + left: 22.5rpx; + right: 30rpx; + top: 217.5rpx; + } + + .section_4 { + padding: 34.61rpx 15rpx 31.88rpx; + background-color: #ffffff; + border-radius: 31.88rpx; + } + + .list-item_1:first-child { + margin-top: 0; } .font_3 { - font-size: 33.75rpx; + font-size: 26.25rpx; font-family: FZSongKeBenXiuKaiS-R-GB; - line-height: 24.3rpx; - color: #ff3c3c; + line-height: 25.54rpx; + color: #ffaaa5; } .text_5 { - line-height: 22.54rpx; + margin-right: 8.08rpx; + line-height: 24.62rpx; } - .image_3 { - width: 35.63rpx; - height: 37.5rpx; - } - - .image_4 { - margin-top: 67.5rpx; + .font_4 { + font-size: 22.5rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 22.14rpx; + color: #818181; } .font_5 { font-size: 22.5rpx; font-family: FZSongKeBenXiuKaiS-R-GB; - line-height: 21.98rpx; - color: #898989; + line-height: 15.04rpx; + color: #818181; } - .text_6 { - margin-top: 7.5rpx; - line-height: 22.24rpx; + .group { + margin-top: 29.21rpx; } - .section_9 { - padding: 39.38rpx 30rpx 13.13rpx; - background-color: #ffffff; - position: fixed; - bottom: 0; - width: 100%; + .list-item:first-child { + margin-top: 0; } - .image_9 { - margin-left: 67.5rpx; - width: 33.75rpx; - height: 33.75rpx; + .image_2 { + border-radius: 9.38rpx; + width: 146.25rpx; + height: 144.38rpx; } - .text_15 { - color: #fb1212; + .group_1 { + margin-top: 2.33rpx; + } + + .text_10 { + line-height: 25.01rpx; + } + + .font_7 { + font-size: 26.25rpx; + font-family: Open Sans; + line-height: 19.29rpx; + color: #323232; + } + + .text_12 { + margin-left: 5.34rpx; + line-height: 18.73rpx; + } + + .group_2 { + margin-right: 8.23rpx; + margin-top: 89.19rpx; + } + + .font_6 { font-size: 33.75rpx; font-family: Open Sans; - font-weight: 700; - line-height: 24.84rpx; + line-height: 25.54rpx; + font-weight: 600; + color: #323232; + } + + .text_11 { + margin-left: 25.03rpx; + line-height: 24.88rpx; + } + + .image_3 { + margin-left: -90.66rpx; + width: 30rpx; + height: 26.25rpx; + } + + .font_8 { + font-size: 26.25rpx; + font-family: Open Sans; + line-height: 19.29rpx; + font-weight: 600; + color: #323232; + } + + .text_13 { + margin-left: 61.14rpx; + } + + .divider { + background-color: #dad2d2; + height: 0.81rpx; + } + + .view_1 { + margin: 30.43rpx 28.13rpx 0 39.38rpx; + } + + .group_5 { + margin-top: 49.41rpx; + padding: 0 21.21rpx; + color: #ffaaa5; + } + + .font_9 { + font-size: 26.25rpx; + font-family: FZSongKeBenXiuKaiS-R-GB; + line-height: 25.54rpx; + color: #000000; } .text_14 { - margin-left: -146.25rpx; - color: #000000; - line-height: 24.09rpx; + line-height: 24.62rpx; } - .text_17 { - margin-left: 75rpx; - color: #fb1212; - font-size: 26.25rpx; - font-family: Open Sans; - font-weight: 700; - line-height: 19.29rpx; + .text_15 { + margin-top: 2.17rpx; + line-height: 24rpx; } - .section_10 { - margin-left: 26.25rpx; - padding: 7.5rpx 11.25rpx; - background-color: #d9d9d9; - border-radius: 9.38rpx; - height: 37.5rpx; - } - - .text_18 { - color: #323232; - font-size: 18.75rpx; - font-family: FZSongKeBenXiuKaiS-R-GB; - line-height: 18.32rpx; - } - - .image_10 { - width: 18.75rpx; - height: 18.75rpx; - } - - .text-wrapper { - padding: 26.25rpx 0; - background-color: #e79ea1; - border-radius: 75rpx; - width: 238.13rpx; - height: 82.5rpx; + .view { + margin-top: 19.93rpx; + padding: 0 19.54rpx; } .text_16 { - color: #ffffff; - line-height: 28.01rpx; + margin-right: 6.99rpx; + line-height: 24.3rpx; } - // .section_3 { - // padding: 99.38rpx 0; - // background-color: #ffffff6c; - // border-radius: 37.5rpx; - // } - // .list { - // margin-left: 33.75rpx; - // margin-right: 15rpx; - // } - // .section_4 { - // padding: 47.44rpx 29.27rpx 53.14rpx 133.95rpx; - // background-color: #ffffff; - // border-radius: 18.75rpx; - // } - // .list-item:first-child { - // margin-top: 0; - // } - // .font_2 { - // font-size: 26.25rpx; - // font-family: FZSongKeBenXiuKaiS-R-GB; - // line-height: 25.13rpx; - // color: #323232; - // } - // .group_4 { - // margin-top: 21.19rpx; - // } - // .font_3 { - // font-size: 22.5rpx; - // font-family: FZSongKeBenXiuKaiS-R-GB; - // line-height: 25.13rpx; - // color: #8a8a8a; - // } - // .text_5 { - // margin-top: 4.39rpx; - // line-height: 26.25rpx; - // } - // .image_4 { - // border-radius: 9.38rpx 0rpx 0rpx 9.38rpx; - // width: 45.21rpx; - // height: 48.13rpx; - // } - // .image_5 { - // margin-left: 19.86rpx; - // } - // .text-wrapper_2 { - // margin-left: 3.77rpx; - // padding: 14.74rpx 0 14.66rpx; - // background-color: #fbdedf; - // width: 58.41rpx; - // height: 48.13rpx; - // } - // .font_4 { - // font-size: 26.25rpx; - // font-family: Open Sans; - // line-height: 18.73rpx; - // color: #323232; - // } - // .image_6 { - // margin-left: 3.77rpx; - // border-radius: 0rpx 9.38rpx 9.38rpx 0rpx; - // width: 45.21rpx; - // height: 48.13rpx; - // } - // .image_3 { - // width: 187.5rpx; - // height: 176.25rpx; - // } - // .pos_3 { - // position: absolute; - // left: -20.63rpx; - // top: 15rpx; - // } - @import url(/common/css/global.css); + + .image_4 { + width: 31.88rpx; + height: 30rpx; + } + + .image_5 { + margin-right: -8.29rpx; + } + + .text_17 { + color: #ffaaa5; + line-height: 19.39rpx; + } + + .group_7 { + margin-top: 52.5rpx; + padding: 0 9.38rpx; + } + + .text-wrapper { + padding: 13.86rpx 0 13.52rpx; + background-color: #fffef8; + border-radius: 75rpx; + width: 155.63rpx; + height: 56.25rpx; + border: solid 1.88rpx #cbcbcb; + } + + .text_18 { + line-height: 25.13rpx; + } + + .text-wrapper_2 { + padding: 13.46rpx 0 13.5rpx; + background-color: #fffef8; + border-radius: 75rpx; + width: 155.63rpx; + height: 56.25rpx; + border: solid 1.88rpx #ffaaa5; + } + + .group_3 { + margin-top: 15rpx; + } + + @import url("../common/css/global.css"); </style> \ No newline at end of file