Merge pull request '购物车页面制作' (#34) from Brunch_DBK into main

pull/39/head
pikvyz67s 2 months ago
commit c1b42bfad4

File diff suppressed because it is too large Load Diff

@ -63,7 +63,7 @@
"@dcloudio/vite-plugin-uni": "3.0.0-4070520250711001", "@dcloudio/vite-plugin-uni": "3.0.0-4070520250711001",
"@vue/runtime-core": "^3.4.21", "@vue/runtime-core": "^3.4.21",
"sass": "^1.90.0", "sass": "^1.90.0",
"sass-loader": "^10.1.1", "sass-loader": "^16.0.5",
"vite": "5.2.8" "vite": "5.2.8"
} }
} }

@ -1,13 +1,13 @@
import { import {
createSSRApp createSSRApp
} from "vue"; } from "vue";
//引入 uView UI // 引入 uView UI
import uView from './uni_modules/vk-uview-ui' import uView from './uni_modules/vk-uview-ui';
import App from "./App.vue"; import App from "./App.vue";
export function createApp() { export function createApp() {
const app = createSSRApp(App); const app = createSSRApp(App);
//使用 uView UI // 使用 uView UI
app.use(uView) app.use(uView);
return { return {
app, app,
}; };

@ -5,27 +5,27 @@
"style": { "style": {
"navigationBarTitleText": "首页" "navigationBarTitleText": "首页"
} }
}, }, {
{ "path": "pages/category/category",
"path" : "pages/category/category", "style": {
"style" : "navigationBarTitleText": "分类",
{ "enablePullDownRefresh": false
"navigationBarTitleText" : "分类"
} }
},
{ }, {
"path" : "pages/car/car", "path": "pages/car/car",
"style" : "style": {
{ "navigationBarTitleText": "购物车",
"navigationBarTitleText" : "购物车" "enablePullDownRefresh": false
} }
},
{ }, {
"path" : "pages/mine/mine", "path": "pages/mine/mine",
"style" : "style": {
{ "navigationBarTitleText": "我的",
"navigationBarTitleText" : "我的" "enablePullDownRefresh": false
} }
}, },
{ {
"path" : "pages/detail/detail", "path" : "pages/detail/detail",
@ -36,9 +36,9 @@
} }
], ],
"globalStyle": { "globalStyle": {
// // black/white
"navigationBarTextStyle": "white", "navigationBarTextStyle": "white",
// //
"navigationBarTitleText": "微信点餐小程序", "navigationBarTitleText": "微信点餐小程序",
// //
"navigationBarBackgroundColor": "#F3AF28", "navigationBarBackgroundColor": "#F3AF28",
@ -46,8 +46,8 @@
"backgroundColor": "#F8F8F8" "backgroundColor": "#F8F8F8"
}, },
"tabBar": { "tabBar": {
"color": "#7A7E83", "color": "#333333",
"selectedColor": "#3cc51f", "selectedColor": "#F3AF28",
"borderStyle": "black", "borderStyle": "black",
"backgroundColor": "#ffffff", "backgroundColor": "#ffffff",
"list": [{ "list": [{
@ -72,5 +72,4 @@
"text": "我的" "text": "我的"
}] }]
} }
} }

@ -1,22 +1,252 @@
<template> <template>
<view> <view style='padding-bottom: 60px;' v-if="goods.length > 0">
<view class="goods-detail" v-for="(item,index) in goods" :key="index">
<view class="detail-left">
<view class="goods-left">
<checkbox-group @change="selected($event,item)">
<label>
<checkbox class="selected" :data-goodsId="item.goodsId" :data-price="item.price"
:data-num="item.num" color="#555555" :checked="item.flag" />
</label>
</checkbox-group>
<image :src="item.goodsImage" style="width: 150rpx;height: 140rpx;margin-left: 10px;"></image>
</view>
<view class="size">
<text style="font-size: 25rpx;">名称{{item.goodsName}}</text>
<text style="font-size: 25rpx;">规格{{item.specsName}}</text>
<text class="goods-price">{{item.price}}{{item.goodsUnit}}</text>
</view>
</view>
<view class="detail-right">
<text class="subtract" @click="reduce(item)">-</text>
<text class="num">{{item.num}}</text>
<text @click="add(item)" class="add">+</text>
</view>
</view>
</view>
<view class="end">
<view class="end-left">
<checkbox-group @change="selectAlls()">
<label>
<checkbox :checked="allchecked" />全选
</label>
</checkbox-group>
<view>
总计<text style="color: #f00;font-weight: bold;"> {{totalPrice}}</text>
</view>
</view>
<view class="end-right">
结算({{totalNum}})
</view>
</view> </view>
</template> </template>
<script> <script setup>
export default { import {
data() { ref,
return { reactive,
computed
} } from 'vue'
const show = ref(true);
const allchecked = ref(true);
const checked = ref(true);
const goods = reactive([{
flag: true,
goodsName: "女款-M",
goodsUnit: '/份',
goodsId: 1,
num: 1,
specsName: '中',
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
},
{
flag: true,
goodsName: "女款-M",
goodsUnit: '/份',
goodsId: 1,
specsName: '中',
num: 1,
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
}, },
methods: { {
flag: true,
goodsName: "女款-M",
goodsUnit: '/份',
goodsId: 1,
num: 1,
specsName: '中',
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
},
{
flag: true,
goodsName: "女款-M",
goodsId: 1,
num: 1,
goodsUnit: '/份',
specsName: '中',
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
},
{
flag: true,
goodsName: "女款-M",
goodsId: 1,
num: 1,
goodsUnit: '/份',
specsName: '中',
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
}
])
const selected = (e, item) => {
console.log(e)
console.log(item)
if (item.flag == true) {
item.flag = false;
} else {
item.flag = true;
}
// checkedtrueList
let newArr = goods.filter(item => (item.flag == true))
if (newArr.length === goods.length) {
allchecked.value = true;
} else {
allchecked.value = false;
}
// console.log(goods)
}
const selectAlls = () => {
if (allchecked.value == true) {
allchecked.value = false;
// RecordList
goods.forEach(item => {
// this.$set(item, 'flag', false)
item.flag = false
})
} else {
allchecked.value = true;
// RecordList
goods.forEach(item => {
// this.$set(item, 'flag', true)
item.flag = true
})
} }
} }
const reduce = (item) => {
let num = item.num
if (num > 1) {
num -= 1
} else if (num = 1) {
uni.showToast({
title: "该宝贝不能减少了哟~"
})
}
item.num = num
}
const add = (item) => {
let num = item.num
item.num = num + 1
}
const totalNum = computed(() => {
let totalNum = 0;
goods.map(item => {
item.flag ? totalNum += item.num : totalNum += 0
})
return totalNum
})
const totalPrice = computed(() => {
let totalPrice = 0;
goods.map(item => {
item.flag ? totalPrice += item.num * item.price : totalPrice += 0
})
return totalPrice
})
</script> </script>
<style> <style lang="scss">
.goods-detail {
display: flex;
padding: 30rpx 15rpx 30rpx 30rpx;
background-color: #fff;
justify-content: space-between;
border-bottom: 5rpx solid #F1F1F1;
align-items: center;
.detail-left {
display: flex;
.goods-left {
display: flex;
align-items: center;
}
}
.size {
display: flex;
justify-content: space-around;
flex-direction: column;
margin-left: 30rpx;
.goods-price {
font-size: 25rpx;
color: #F44545;
}
}
.detail-right {
text {
width: 50rpx;
line-height: 50rpx;
text-align: center;
display: inline-block;
background-color: #F7F7F7;
margin-right: 10rpx;
}
.add {
color: #FA4305;
border-radius: 10rpx 30rpx 30rpx 10rpx;
margin-right: 20rpx;
}
.subtract {
border-radius: 30rpx 10rpx 10rpx 30rpx;
}
}
}
.end {
width: 100%;
height: 90rpx;
background-color: #fff;
position: fixed;
bottom: 0;
left: 0;
display: flex;
align-items: center;
.end-left {
width: 70%;
display: flex;
justify-content: space-between;
padding: 0 30rpx;
}
.end-right {
width: 30%;
line-height: 90rpx;
background-color: #F44545;
text-align: center;
color: #fff;
}
}
</style> </style>

@ -1,11 +1,5 @@
<template> <template>
<view class="u-wrap"> <view class="u-wrap">
<!-- <view class="u-search-box">
<view class="u-search-inner">
<u-icon name="search" color="#909399" :size="28"></u-icon>
<text class="u-search-text">搜索uView</text>
</view>
</view> -->
<view class="u-menu-wrap"> <view class="u-menu-wrap">
<scroll-view scroll-y scroll-with-animation class="u-tab-view menu-scroll-view" :scroll-top="scrollTop"> <scroll-view scroll-y scroll-with-animation class="u-tab-view menu-scroll-view" :scroll-top="scrollTop">
<view v-for="(item,index) in tabbar" :key="index" class="u-tab-item" <view v-for="(item,index) in tabbar" :key="index" class="u-tab-item"
@ -39,77 +33,76 @@
import { import {
ref, ref,
getCurrentInstance getCurrentInstance
} from 'vue'; } from "vue"
//
const instance = getCurrentInstance(); const instance = getCurrentInstance();
const tabbar = ref([{ const tabbar = ref([{
"name": "早点", "name": "早点",
"foods": [{ "foods": [{
"name": "豆浆", "name": "豆浆",
"key": "豆浆", "key": "豆浆",
"icon": "/static/swiper_1.png", "icon": "/static/test-5.png",
"cat": 6 "cat": 6
}, },
{ {
"name": "油条", "name": "油条",
"key": "糕点饼干", "key": "糕点饼干",
"icon": "/static/swiper_1.png", "icon": "/static/test-8.png",
"cat": 6 "cat": 6
}, },
{ {
"name": "油条", "name": "油条",
"key": "糕点饼干", "key": "糕点饼干",
"icon": "/static/swiper_1.png", "icon": "/static/test-8.png",
"cat": 6 "cat": 6
} }
] ]
}, },
{ {
"name": "米线", "name": "米线",
"foods": [{ "foods": [{
"name": "小锅米线", "name": "小锅米线",
"key": "豆浆", "key": "豆浆",
"icon": "/static/swiper_1.png", "icon": "/static/test-5.png",
"cat": 6 "cat": 6
}, },
{ {
"name": "豆花米线", "name": "豆花米线",
"key": "糕点饼干", "key": "糕点饼干",
"icon": "/static/swiper_1.png", "icon": "/static/test-5.png",
"cat": 6 "cat": 6
} }
] ]
} }
]) ])
const scrollTop = ref(0) const scrollTop = ref(0)
const current = ref(0) const current = ref(0)
const menuHeight = ref(0) const menuHeight = ref(0)
const menuItemHeight = ref(0) const menuItemHeight = ref(0)
const getImg = () => { const getImg = ()=>{
return Math.floor(Math.random() * 35) return Math.floor(Math.random() * 35)
} }
const swichMenu = async (index) => { const swichMenu = async(index)=>{
if (index == current.value) return; if(index == current.value) return ;
current.value = index; current.value = index;
// 0 // 0
if (menuHeight.value == 0 || menuItemHeight.value == 0) { if(menuHeight.value == 0 || menuItemHeight.value == 0) {
await getElRect('menu-scroll-view', 'menuHeight'); await getElRect('menu-scroll-view', 'menuHeight');
await getElRect('u-tab-item', 'menuItemHeight'); await getElRect('u-tab-item', 'menuItemHeight');
} }
// item // item
scrollTop.value = index * menuItemHeight.value + menuItemHeight.value / 2 - menuHeight.value / 2; scrollTop.value = index * menuItemHeight.value + menuItemHeight.value / 2 - menuHeight.value / 2;
} }
const getElRect = (elClass, dataVal) => { const getElRect = (elClass, dataVal)=>{
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
const query = uni.createSelectorQuery().in(instance); const query = uni.createSelectorQuery().in(instance);
query.select('.' + elClass).fields({ query.select('.' + elClass).fields({size: true},res => {
size: true
}, res => {
// resnull // resnull
if (!res) { if(!res) {
setTimeout(() => { setTimeout(() => {
getElRect(elClass); getElRect(elClass);
}, 10); }, 10);
return; return ;
} }
instance[dataVal] = res.height; instance[dataVal] = res.height;
}).exec(); }).exec();
@ -117,6 +110,7 @@
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.u-wrap { .u-wrap {
height: calc(100vh); height: calc(100vh);
@ -180,7 +174,7 @@
.u-tab-item-active::before { .u-tab-item-active::before {
content: ""; content: "";
position: absolute; position: absolute;
border-left: 4px solid $u-type-primary; border-left: 4px solid #F3AF28;
height: 32rpx; height: 32rpx;
left: 0; left: 0;
top: 39rpx; top: 39rpx;
@ -236,3 +230,4 @@
height: 120rpx; height: 120rpx;
} }
</style> </style>

@ -1,7 +1,7 @@
<template> <template>
<u-swiper name='images' border-radius='1' :duration='duration' :interval='interval' :height="height" <view>
:list="swipperList"> <u-swiper name='images' border-radius='1' :duration='duration' :interval='interval' :height="height"
</u-swiper> :list="swipperList"></u-swiper>
</view> </view>
<view class="info"> <view class="info">
<view class="title"> <view class="title">
@ -10,97 +10,99 @@
<view class="price"> <view class="price">
{{price}}<span class='goodsUnit'>{{goodsUnit}}</span> {{price}}<span class='goodsUnit'>{{goodsUnit}}</span>
</view> </view>
<view class="spec-driver"> </view>
规格 <view class="spec-driver">
规格
</view>
<view class="spces">
<view @click="change(index,item)" :class="{ active: current === index }" v-for="(item,index) in specs"
class="item">
{{item.specsName}}
</view> </view>
<view class="spces"> </view>
<view @click="change(index,item)" :class="{ active: current === index }" v-for="(item,index) in specs" <view class="detalis">
class="item"> <view @click="tabClick(0)" class="left" :class="[tabIndex == 0 ? 'item-active':'item']">
{{item.specsName}} 详情
</view>
</view> </view>
<view class="detalis"> <view @click="tabClick(1)" class="right" :class="[tabIndex == 1 ? 'item-active':'item']">
<view @click="tabClick(0)" class="left" :class="{'tabIndex === 0 ? 'item-active':'item'}]"> 评论
详情
</view>
<view @click="tabClick(1)" class="right" :class="{'tabIndex === 1 ? 'item-active':'item'}]">
评论
</view>
</view> </view>
<swiper class="swiper-box" :current="swiperCurrent" @animationfinish="animationfinish"> </view>
<swiper-item class="swiper-item"> <swiper class="swiper-box" :current="swiperCurrent" @animationfinish="animationfinish">
<scroll-view scroll-y style="height: 100%;width: 100%;"> <swiper-item class="swiper-item">
<view class="page-box"> <scroll-view scroll-y style="height: 100%;width: 100%;">
我是内容一 <view class="page-box">
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
我是内容一 我是内容一
</view>
</scroll-view>
</swiper-item>
<swiper-item class="swiper-item">
<scroll-view scroll-y style="height: 100%;width: 100%">
<view class="page-box">
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
</view>
</scroll-view>
</swiper-item>
</swiper>
<view class="navigation">
<view class="left">
<view class="item">
<u-icon name="home" :size="40" :color="$u.color['contentColor']"></u-icon>
<view class="text u-line-1">店铺</view>
</view> </view>
<view class="item car"> </scroll-view>
<u-badge class="car-num" :count="9" type="error" :offset="[-3, -6]"></u-badge> </swiper-item>
<u-icon name="shopping-cart" :size="40" :color="$u.color['contentColor']"></u-icon> <swiper-item class="swiper-item">
<view class="text u-line-1">购物车</view> <scroll-view scroll-y style="height: 100%;width: 100%;">
<view class="page-box">
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
</view> </view>
</scroll-view>
</swiper-item>
</swiper>
<view class="navigation">
<view class="left">
<view class="item">
<u-icon name="home" :size="40" :color="$u.color['contentColor']"></u-icon>
<view class="text u-line-1">首页</view>
</view> </view>
<view class="right"> <view class="item car">
<view class="cart btn u-line-1">加入购物车</view> <u-badge class="car-num" :count="9" type="error" :offset="[-3, -6]"></u-badge>
<view class="buy btn u-line-1">立即购买</view> <u-icon name="shopping-cart" :size="40" :color="$u.color['contentColor']"></u-icon>
<view class="text u-line-1">购物车</view>
</view> </view>
</view> </view>
<view class="right">
<view class="cart btn u-line-1">加入购物车</view>
<view class="buy btn u-line-1">立即购买</view>
</view>
</view>
</template> </template>
<script setup> <script setup>
import {
ref
} from 'vue';
import { import {
onLoad onLoad
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
import {
ref
} from 'vue';
const current = ref(0) const current = ref(0)
// //
const height = ref('400') const height = ref('400')
@ -112,7 +114,7 @@
const interval = ref(2000) const interval = ref(2000)
// //
const duration = ref(500) const duration = ref(500)
// //
const swiperList = ref([]) const swiperList = ref([])
// //
const swipperList = ref([]) const swipperList = ref([])
@ -148,10 +150,9 @@
swiperCurrent.value = current; swiperCurrent.value = current;
tabIndex.value = current; tabIndex.value = current;
} }
onLoad((options) => { onLoad((options) => {
const goods = JSON.parse(options.goods) const goods = JSON.parse(options.goods)
swiperList.value = goods.goodsImage.split(',') swipperList.value = goods.goodsImage.split(',')
console.log(goods) console.log(goods)
goodsUnit.value = goods.goodsUnit goodsUnit.value = goods.goodsUnit
title.value = goods.goodsName title.value = goods.goodsName
@ -160,7 +161,7 @@
}) })
</script> </script>
<style lang="scss" scoped> <style lang="scss">
page { page {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

@ -1,12 +1,13 @@
<template> <template>
<u-swiper name='images' border-radius='1' :duration='duration' :interval='interval' :height="height" <u-swiper border-radius='1' :duration='duration' :interval='interval' :height="height" :list="swiperList">
:list="swiperList"></u-swiper> </u-swiper>
<u-divider margin-top='20' margin-bottom='20' color="#F3AF28">热门推荐</u-divider> <u-divider margin-top='20' margin-bottom='20' color="#F3AF28">店长推荐</u-divider>
<view class="wrap"> <view class="wrap">
<u-waterfall v-model="flowList" ref="uWaterfall1"> <u-waterfall v-model="flowList" ref="uWaterfall">
<template v-slot:left="{leftList}"> <template v-slot:left="{leftList}">
<view class="demo-warter" v-for="(item, index) in leftList" :key="index"> <view class="demo-warter" v-for="(item, index) in leftList" :key="index">
<u-lazy-load @click="toDetails(item)" threshold="-450" border-radius="10" :image="item.image" :index="index"></u-lazy-load> <!-- 警告微信小程序中需要hx2.8.11版本才支持在template中结合其他组件比如下方的lazy-load组件 -->
<u-lazy-load threshold="-450" border-radius="10" :image="item.image" :index="index"></u-lazy-load>
<view class="demo-title"> <view class="demo-title">
{{item.title}} {{item.title}}
</view> </view>
@ -17,13 +18,13 @@
<view class="demo-title"> <view class="demo-title">
/ /
</view> </view>
<image @click="toDetails(item)" class="carimg" :src="carimg"></image> <image class="carimg" :src="carimg"></image>
</view> </view>
</view> </view>
</template> </template>
<template v-slot:right="{rightList}"> <template v-slot:right="{rightList}">
<view class="demo-warter" v-for="(item, index) in rightList" :key="index"> <view class="demo-warter" v-for="(item, index) in rightList" :key="index">
<u-lazy-load @click="toDetails(item)" threshold="-450" border-radius="10" :image="item.image" :index="index"></u-lazy-load> <u-lazy-load threshold="-450" border-radius="10" :image="item.image" :index="index"></u-lazy-load>
<view class="demo-title"> <view class="demo-title">
{{item.title}} {{item.title}}
</view> </view>
@ -34,7 +35,7 @@
<view class="demo-title"> <view class="demo-title">
/ /
</view> </view>
<image @click="toDetails(item)" class="carimg" :src="carimg"></image> <image class="carimg" :src="carimg"></image>
</view> </view>
</view> </view>
</template> </template>
@ -46,7 +47,6 @@
import { import {
ref ref
} from 'vue'; } from 'vue';
//
const carimg = ref('/static/goodscar.png') const carimg = ref('/static/goodscar.png')
// //
const height = ref('400') const height = ref('400')
@ -58,56 +58,66 @@
const interval = ref(2000) const interval = ref(2000)
// //
const duration = ref(500) const duration = ref(500)
// //
const swiperList = ref([{ const swiperList = ref([{
image: '/static/swiper_1.png' image: '/static/swipper1.png'
}, { }, {
image: '/static/swiper_1.png' image: '/static/swipper2.png'
}, { }, {
image: '/static/swiper_1.png' image: '/static/swipper3.png'
}]) }])
// //
const flowList = ref([{ const flowList = ref([{
price: 75, price: 20,
title: '小炒肉盖饭', title: '小炒肉盖饭',
image: '/static/swiper_1.png' image: '/static/test-5.png',
}, },
{ {
price: 385, price: 12,
title: '手拉面', title: '手拉面',
image: '/static/swiper_1.png' image: '/static/test-8.png',
}, },
{ {
price: 784, price: 10,
title: '小笼包', title: '小笼包',
image: '/static/swiper_1.png' image: '/static/test-5.png',
}, },
{ {
price: 7891, price: 15,
title: '馄饨', title: '馄饨',
image: '/static/swiper_1.png' image: '/static/test-8.png',
}, },
{ {
price: 2341, price: 18,
title: '香菇肉片盖饭', title: '香菇肉片盖饭',
image: '/static/swiper_1.png' image: '/static/test-8.png',
}, },
{ {
price: 2342, price: 15,
title: '番茄鸡蛋盖饭', title: '番茄鸡蛋盖饭',
image: '/static/swiper_1.png' image: '/static/test-8.png',
},
{
price: 18,
title: '香菇肉片盖饭',
image: '/static/test-8.png',
},
{
price: 15,
title: '番茄鸡蛋盖饭',
image: '/static/test-8.png',
} }
]) ])
// //
const toDetails = (item)=>{ const toDetails = (item) => {
//details.vue //details.vue
uni.navigateTo({ uni.navigateTo({
url:'../detail/detail?goods='+JSON.stringify(item) url: '../detail/detail?goods=' + JSON.stringify(item)
}); });
} }
</script> </script>
<style> <style lang="scss">
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -140,7 +150,7 @@
.demo-warter { .demo-warter {
border-radius: 8px; border-radius: 8px;
margin: 5px; /* margin: 5px; */
background-color: #ffffff; background-color: #ffffff;
padding: 5px; padding: 5px;
position: relative; position: relative;
@ -194,7 +204,7 @@
.demo-price { .demo-price {
font-size: 30rpx; font-size: 30rpx;
color: #FF7670; color: $u-type-error;
margin-top: 5px; margin-top: 5px;
} }
@ -212,7 +222,7 @@
.carimg { .carimg {
height: 50rpx; height: 50rpx;
width: 50rpx; width: 50rpx;
margin-top: 5rpx; margin-top: 5px;
margin-left: 8px; margin-left: 8px;
} }
</style> </style>

@ -1,6 +1,6 @@
<template> <template>
<view> <view>
我的
</view> </view>
</template> </template>

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Loading…
Cancel
Save