From b3de430f8b9a595e2da2e16f1fea4336ec46fd31 Mon Sep 17 00:00:00 2001 From: fanfan <franceesfan@163.com> Date: Sat, 24 Feb 2024 15:54:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9D=80=E7=BB=86=E8=8A=82=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E5=B7=A6=E6=BB=91=E5=88=A0=E9=99=A4=20=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E5=8F=B7=E6=A0=A1=E9=AA=8C=20=E6=96=B0=E5=B9=B4?= =?UTF-8?q?=E6=8D=A2=E6=96=B0=E6=8E=A5=E5=8F=A3=E8=B0=83=E8=AF=95=20?= =?UTF-8?q?=E5=95=86=E5=93=81=E9=92=B1=E5=8C=85=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/activity.js | 8 + pages/activity/newsshop.vue | 521 +++++------------------------- pages/news/goods/batchdel.vue | 348 +++++++++++--------- pages/news/goods/del.vue | 454 ++++++++++++++------------ pages/news/goods/list.vue | 9 +- pages/news/goods/oneGrounding.vue | 2 +- pages/news/park/addressEdit.vue | 30 +- pages/news/park/addressList.vue | 85 ++++- pages/news1/wallet.vue | 60 ++-- pages/order/index.vue | 85 +++-- 10 files changed, 712 insertions(+), 890 deletions(-) diff --git a/api/activity.js b/api/activity.js index a114752..523c518 100644 --- a/api/activity.js +++ b/api/activity.js @@ -61,4 +61,12 @@ export const presaleCateList = (data) => { // 预售列表 export const presaleGoodsList = (data) => { return request.get('goods/presaleGoodsList', data) +} +// 元旦列表 +export const detail = (data) => { + return request.get('active/detail', data) +} +// 元旦详情 +export const info = (data) => { + return request.get('active/info', data) } \ No newline at end of file diff --git a/pages/activity/newsshop.vue b/pages/activity/newsshop.vue index b51d9ed..e2976bf 100644 --- a/pages/activity/newsshop.vue +++ b/pages/activity/newsshop.vue @@ -1,165 +1,33 @@ <template> - <view class="newsshop"> + <view class="newsshop" v-if="shopItem" :style="{backgroundImage:'url('+shopItem.index_icon+')'}"> <view class="newsshop-navbar"> - <u-navbar title="元旦主会场" back-icon-color="#fff" :border-bottom="false" title-color="#fff" + <u-navbar :title="shopItem.title" back-icon-color="#fff" :border-bottom="false" title-color="#fff" :background="background"></u-navbar> </view> - <view class="newsshop-hd"></view> - <view class="newsshop-bd"> + <view class="newsshop-hd"> + </view> + <view class="newsshop-bd" v-if="shopList.length>0" v-for="(item,index) in shopList" :key="i"> <view class="newsshop-sale"> <view class="a"> - <image src="https://www.royaum.com.cn/static/news/newshop-03.png"></image> - </view> - <view class="info"> - <scroll-view scroll-x class="b"> - <view class="li"> - <view class="item" v-for="i in 12" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - <image class="icon" src="https://www.royaum.com.cn/static/news/newshop-05.png"></image> - <view class="p">¥<text>23999</text></view> - </view> - </view> - </view> - <view class="li"> - <view class="item" v-for="i in 12" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - <image class="icon" src="https://www.royaum.com.cn/static/news/newshop-05.png"></image> - <view class="p">¥<text>23999</text></view> - </view> - </view> - </view> - </scroll-view> - <view class="c" @click="toggleList()">点击查看更多<u-icon style="margin-left: 20rpx;" name="arrow-down"> - </u-icon> - </view> - </view> - </view> - <view class="newsshop-hot"> - <view class="a"> - <image src="https://www.royaum.com.cn/static/news/newshop-04.png"></image> + <image :src="item.col_pic"></image> </view> <view class="info"> - <view class="d"> - <u-tabs font-size="28rpx" active-color="#F34A40" :list="list" :is-scroll="true" - v-model="current"></u-tabs> - </view> - <scroll-view scroll-x class="b"> - <view class="li"> - <view class="item" v-for="i in 24" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - <image class="icon" src="https://www.royaum.com.cn/static/news/newshop-06.png"></image> - <view class="p">¥<text>23999</text></view> - <view class="o">160</view> - </view> - </view> - </view> - <view class="li"> - <view class="item" v-for="i in 24" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - <image class="icon" src="https://www.royaum.com.cn/static/news/newshop-06.png"></image> - <view class="p">¥<text>23999</text></view> - <view class="o">160</view> - </view> - </view> - </view> - </scroll-view> - <view class="c">点击查看更多<u-icon style="margin-left: 20rpx;" name="arrow-down"></u-icon> - </view> - </view> - </view> - <view class="newsshop-new"> - <view class="a"></view> - <scroll-view scroll-x class="b"> - <view class="li"> - <view class="item" v-for="i in 16" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - ¥<text>23999</text> - </view> - </view> - </view> - <view class="li"> - <view class="item" v-for="i in 16" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - ¥<text>23999</text> - </view> - </view> - </view> - <view class="li"> - <view class="item" v-for="i in 16" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> + <view class="li b"> + <view class="item" v-for="(i,index) in item.goods_list.slice(0, item.sliceIndex)" :key="index" + @click="goDetails(i.goods_id)"> + <image class="pic" :src="i.goods_image"></image> + <view class="title">{{i.goods_name}}</view> <view class="price"> - ¥<text>23999</text> + <image class="icon" src="https://www.royaum.com.cn/static/news/newshop-05.png"> + </image> + <view class="p">¥<text>{{i.goods_price_min}}</text></view> </view> </view> </view> - <view class="li"> - <view class="item" v-for="i in 16" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - ¥<text>23999</text> - </view> - </view> - </view> - </scroll-view> - <view class="c">点击查看更多<u-icon style="margin-left: 20rpx;" name="arrow-down"></u-icon> - </view> - </view> - <view class="newsshop-new1"> - <view class="a"> - </view> - <scroll-view scroll-x class="b"> - <view class="li"> - <view class="item" v-for="i in 16" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - ¥<text>23999</text> - </view> - </view> - </view> - <view class="li"> - <view class="item" v-for="i in 16" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - ¥<text>23999</text> - </view> - </view> - </view> - <view class="li"> - <view class="item" v-for="i in 16" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - ¥<text>23999</text> - </view> - </view> - </view> - <view class="li"> - <view class="item" v-for="i in 16" :key="i"> - <image class="pic" src="https://www.royaum.com.cn/static/home/phone.jpg"></image> - <view class="title">iphone 15pro</view> - <view class="price"> - ¥<text>23999</text> - </view> - </view> + <view class="c" @click="toggleList(index)" v-if="item.goods_list.length>5">点击查看更多<u-icon + style="margin-left: 20rpx;" name="arrow-down"> + </u-icon> </view> - </scroll-view> - <view class="c">点击查看更多<u-icon style="margin-left: 20rpx;" name="arrow-down"></u-icon> </view> </view> </view> @@ -172,48 +40,75 @@ data() { return { current: 0, - list: [{ - name: "精选爆款" - }, { - name: "家电家电" - }, { - name: "手机数码" - }, { - name: "食品饮料" - }, { - name: "电子信息" - }, { - name: "汽车配件" - }, { - name: "电脑用品" - }, { - name: "健康保健" - }], - - background: { - background: 'url(https://www.royaum.com.cn/static/news/newshop-bg.png) center top no-repeat', - backgroundSize: '100% auto', - }, + shopItem: '', + shopList: [] } }, + onLoad() { + this.getInfo() + }, methods: { + goDetails(goodsId) { + uni.navigateTo({ + url: '/pages/goods/detail?goodsId=' + goodsId + }) + }, + toggleList(index) { + let len = this.shopList[index].goods_list.length + if (this.shopList[index].sliceIndex >= len) { + this.$toast('已展示全部数据') + } else { + this.shopList[index].sliceIndex += 6; + } + }, + // 获取新牌商品详情 + getInfo() { + const app = this; + Api.info() + .then(result => { + this.shopItem = result.data; + this.getShopList(result.data.id) + }) + .finally() + }, + // 获取新牌商品 + getShopList(active_id) { + const app = this; + let pamars = { + active_id: active_id, + } + Api.detail(pamars) + .then(result => { + result.data.col.forEach(item => { + item.sliceIndex = 6 + }); + this.shopList = result.data.col; + console.log(this.shopList) + }) + .finally() + }, } } </script> <style lang="scss" scoped> + ::v-deep .u-navbar-fixed { + background: none !important; + } + .newsshop { width: 100%; overflow: hidden; min-height: 100vh; - background: url(https://www.royaum.com.cn/static/news/newshop-bg.png) center top no-repeat; background-size: 100% auto; &-hd { height: 380rpx; } + + &-bd { background-color: #f34a40; padding-bottom: 30rpx; @@ -252,13 +147,16 @@ .info { width: 100%; - padding: 30rpx 20rpx; + padding: 30rpx 10rpx; box-sizing: border-box; background-color: #fff; border-radius: 0 0 10rpx 10rpx; .li { margin-top: 20rpx; + display: flex; + align-items: center; + flex-wrap: wrap; &:first-child { margin-top: 0; @@ -272,7 +170,7 @@ .item { display: inline-block; overflow: hidden; - margin-left: 20rpx; + margin: 20rpx 7rpx 0 7rpx; &:first-child { margin-left: 0; @@ -291,7 +189,9 @@ line-height: 50rpx; white-space: nowrap; text-overflow: ellipsis; - overflow: hidden; + white-space: nowrap; + -webkit-line-clamp: 1; + max-width: 200rpx; } .price { @@ -317,7 +217,7 @@ padding-left: 5rpx; text { - font-size: 34rpx; + font-size: 30rpx; font-weight: 600; } } @@ -326,272 +226,5 @@ } } } - - &-hot { - width: 710rpx; - margin: 0 auto; - margin-top: 30rpx; - - .a { - width: 100%; - height: 93rpx; - - image { - width: 100%; - height: 100%; - } - } - - .info { - width: 100%; - padding: 0 20rpx 30rpx; - box-sizing: border-box; - background-color: #fff; - border-radius: 0 0 10rpx 10rpx; - - .d { - padding: 0 10rpx; - overflow: hidden; - } - - .b { - width: 100%; - white-space: nowrap; - margin-top: 20rpx; - - .li { - margin-top: 20rpx; - overflow: hidden; - - &:first-child { - margin-top: 0; - } - } - - .item { - display: inline-block; - overflow: hidden; - margin-left: 20rpx; - - &:first-child { - margin-left: 0; - } - - .pic { - width: 218rpx; - height: 218rpx; - } - - .title { - text-align: center; - font-size: 28rpx; - font-weight: 400; - color: #3F3F3F; - line-height: 50rpx; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - } - - .price { - width: 220rpx; - height: 80rpx; - position: relative; - - .icon { - width: 100%; - height: 100%; - } - - .o { - width: 80rpx; - height: 50rpx; - position: absolute; - right: 10rpx; - line-height: 50rpx; - top: 25rpx; - z-index: 2; - font-size: 24rpx; - text-align: center; - color: #fff; - } - - .p { - width: 100%; - height: 100%; - position: absolute; - left: 0; - line-height: 80rpx; - top: 0; - z-index: 2; - font-size: 28rpx; - color: #DE041C; - padding-left: 5rpx; - - text { - font-size: 32rpx; - font-weight: 600; - } - } - } - } - } - } - } - - &-new { - width: 710rpx; - position: relative; - margin: 0 auto; - margin-top: 30rpx; - overflow: hidden; - border-radius: 10rpx; - padding-bottom: 30rpx; - background: #fff url(https://www.royaum.com.cn/static/news/newshop-01.png) center top no-repeat; - background-size: 100% auto; - - .a { - height: 190rpx; - } - - .b { - width: 100%; - padding: 0 20rpx; - box-sizing: border-box; - left: 0; - z-index: 2; - white-space: nowrap; - - .li { - margin-top: 20rpx; - - &:first-child { - margin-top: 0; - } - } - - .item { - display: inline-block; - margin-left: 20rpx; - background: linear-gradient(180deg, #FFFFFF 50%, #FEE5E1 100%); - box-shadow: -2rpx -2rpx 8rpx 0px rgba(0, 0, 0, 0.07); - border-radius: 10rpx; - padding: 15rpx; - box-sizing: border-box; - - &:first-child { - margin-left: 0; - } - - .pic { - width: 218rpx; - height: 218rpx; - } - - .title { - text-align: center; - font-size: 28rpx; - font-weight: 400; - color: #3F3F3F; - line-height: 50rpx; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - } - - .price { - width: 220rpx; - height: 50rpx; - line-height: 50rpx; - font-size: 28rpx; - color: #DE041C; - padding-left: 15rpx; - - text { - font-size: 32rpx; - font-weight: 600; - } - } - } - } - } - - &-new1 { - width: 710rpx; - position: relative; - margin: 0 auto; - margin-top: 30rpx; - overflow: hidden; - border-radius: 10rpx; - padding-bottom: 30rpx; - background: #fff url(https://www.royaum.com.cn/static/news/newshop-02.png) center top no-repeat; - background-size: 100% auto; - - .a { - height: 190rpx; - } - - .b { - width: 100%; - padding: 0 20rpx; - box-sizing: border-box; - left: 0; - z-index: 2; - white-space: nowrap; - - .li { - margin-top: 20rpx; - - &:first-child { - margin-top: 0; - } - } - - .item { - display: inline-block; - margin-left: 20rpx; - background: linear-gradient(180deg, #FFFFFF 50%, #FEE5E1 100%); - box-shadow: -2rpx -2rpx 8rpx 0px rgba(0, 0, 0, 0.07); - border-radius: 10rpx; - padding: 15rpx; - box-sizing: border-box; - - &:first-child { - margin-left: 0; - } - - .pic { - width: 218rpx; - height: 218rpx; - } - - .title { - text-align: center; - font-size: 28rpx; - font-weight: 400; - color: #3F3F3F; - line-height: 50rpx; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - } - - .price { - width: 220rpx; - height: 50rpx; - line-height: 50rpx; - font-size: 28rpx; - color: #DE041C; - padding-left: 15rpx; - - text { - font-size: 32rpx; - font-weight: 600; - } - } - } - } - } - } -</style> +</style> diff --git a/pages/news/goods/batchdel.vue b/pages/news/goods/batchdel.vue index e75eae0..93dce69 100644 --- a/pages/news/goods/batchdel.vue +++ b/pages/news/goods/batchdel.vue @@ -1,18 +1,19 @@ -<template> +<template> <view class="goods"> <view class="search"> - <view class="box"> - <!-- <image src="/static/news/icon-search.png"></image> + <view class="box"> + <!-- <image src="/static/news/icon-search.png"></image> <input type="search" placeholder="搜索订单" /> --> - <u-search height="50" @search="getListAfter" @custom="getListAfter" placeholder="商品名称/编码" v-model="keyword"></u-search> - </view> + <u-search height="50" @search="getListAfter" @custom="getListAfter" placeholder="商品名称" + v-model="keyword"></u-search> + </view> </view> <view class="goods-bd"> - <view class="li" v-for="(i,index) in list" :key="index"> + <view class="li" v-for="(i,index) in list" :key="index" v-if="list.length>0"> <view class="b"> <view class="item"> <view class="pic"> - <image mode="aspectFill" :src="i.goods_image"/> + <image mode="aspectFill" :src="i.goods_image" /> </view> <!-- 此层wrap在此为必写的,否则可能会出现标题定位错误 --> <view class="info"> @@ -32,74 +33,81 @@ <view class="btn" @click.prevent="delHandle(i)">删除</view> </view> </view> + <u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty> </view> <view class="goods-fd"> <view class="c" @click="toPage()">批量删除</view> </view> <u-toast ref="uToast" /> - <u-modal v-model="show" content="确定删除此商品吗" :show-cancel-button="true" @cancel="show=false" @confirm="delConfirm"></u-modal> - </view> -</template> - + <u-modal v-model="show" content="确定删除此商品吗" :show-cancel-button="true" @cancel="show=false" + @confirm="delConfirm"></u-modal> + </view> +</template> + <script> - import * as newFunApi from '@/api/newFun' - export default { - data() { + import * as newFunApi from '@/api/newFun' + export default { + data() { return { - show:false, + show: false, list: [], keyword: "", total: 1, pageNum: 1, - selected:{}, - }; + selected: {}, + }; }, methods: { - toPage(){ + toPage() { uni.navigateTo({ url: "/pages/news/goods/del" }) }, - getListAfter(){ + getListAfter() { this.list = []; this.getList() }, async getList() { uni.showLoading({ - title:"加载中" + title: "加载中" }) - let {status, message, data} = await newFunApi.storeKeeperList({ - goodsNo: "", + let { + status, + message, + data + } = await newFunApi.storeKeeperList({ + goodsNo: "", page: this.pageNum, - listType: "all", + listType: "all", goodsName: this.keyword }); - if(status == 200){ + if (status == 200) { uni.hideLoading(); this.list = this.list.concat(data.list.data) this.total = data.list.total } }, - async delConfirm(){ + async delConfirm() { console.log(this.selected) let goodsIds = [] goodsIds.push(this.selected.goods_id) console.log(goodsIds) - let {status, message, data} = await newFunApi.delGoods({ - goodsIds:goodsIds + let { + status, + message, + data + } = await newFunApi.delGoods({ + goodsIds: goodsIds }); - - if(status == 200){ + + if (status == 200) { uni.hideLoading(); - this.$refs.uToast.show({ - title: message, - type: 'success' - }) + this.$toast('删除成功') this.getListAfter() } }, - delHandle(item){ - this.selected=item; + delHandle(item) { + this.selected = item; this.show = true }, }, @@ -107,161 +115,187 @@ this.getList(); }, onReachBottom() { - if(this.list.length <= this.total){ - this.pageNum ++; + if (this.list.length <= this.total) { + this.pageNum++; this.getList(); } }, - - } -</script> - + + } +</script> + <style lang="scss" scoped> ::v-deep .u-input, ::v-deep .u-content { background-color: #fff !important; } - + ::v-deep .u-search { width: 640rpx !important; - } -.goods{ - padding: 0 0 130rpx; - overflow: hidden; - &-fd{ - width: 100%; - padding: 20rpx; - overflow: hidden; - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; - position: fixed; - left: 0; - bottom: 0; - z-index: 999; - background-color: #fff; - .c{ - width: 630rpx; - line-height: 80rpx; - background: #FF564A; - border-radius: 80rpx; - text-align: center; - font-size: 28rpx; - font-weight: 500; - color: #FFFFFF; - } } - .search{ - width: 750rpx; - padding: 35rpx; - box-sizing: border-box; - .box{ - padding: 15rpx 25rpx; - box-sizing: border-box; - display: flex; - align-items: center; - background: #fff; - border-radius: 60rpx; - image{ - width: 28rpx; - height: 28rpx; - margin-right: 22rpx; - } - input{ - flex: 1; - font-size: 28rpx; - line-height: 30rpx; - } - } + + ::v-deep .u-empty { + padding: 100rpx 0; } - &-bd{ - padding: 0 30rpx; + + .goods { + padding: 0 0 130rpx; overflow: hidden; - .a{ - padding: 15rpx 0; + + &-fd { + width: 100%; + padding: 20rpx; + overflow: hidden; display: flex; align-items: center; - justify-content: space-between; - .status{ + justify-content: center; + box-sizing: border-box; + position: fixed; + left: 0; + bottom: 0; + z-index: 999; + background-color: #fff; + + .c { + width: 630rpx; + line-height: 80rpx; + background: #FF564A; + border-radius: 80rpx; + text-align: center; font-size: 28rpx; - font-weight: 400; - color: #B6B6B6; + font-weight: 500; + color: #FFFFFF; } - .btn{ - width: 148rpx; - line-height: 64rpx; - background: #FFFFFF; - border-radius: 64rpx; - text-align: center; - border: 1px solid #F55349; - font-size: 28rpx; - font-weight: 400; - color: #F55349; + } + + .search { + width: 750rpx; + padding: 35rpx; + box-sizing: border-box; + + .box { + padding: 15rpx 25rpx; + box-sizing: border-box; + display: flex; + align-items: center; + background: #fff; + border-radius: 60rpx; + + image { + width: 28rpx; + height: 28rpx; + margin-right: 22rpx; + } + + input { + flex: 1; + font-size: 28rpx; + line-height: 30rpx; + } } } - .li{ - overflow: hidden; - background-color: #fff; + + &-bd { padding: 0 30rpx; - margin-top: 15rpx; - &:first-child{ - margin-top: 0; - } - .item{ - padding: 20rpx 0; - overflow: hidden; + overflow: hidden; + + .a { + padding: 15rpx 0; display: flex; align-items: center; justify-content: space-between; - border-bottom: 1px solid #EFEFEF; - .pic{ - width: 160rpx; - height: 160rpx; - margin-right: 20rpx; - image{ - width: 100%; - height: 100%; - } + + .status { + font-size: 28rpx; + font-weight: 400; + color: #B6B6B6; } - .info{ - flex: 1; - max-width: 400rpx; - margin-right: 20rpx; - .title{ - font-size: 28rpx; - font-weight: 400; - color: #000000; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - .sku{ - line-height: 48rpx; - margin-top: 10rpx; - font-size: 28rpx; - font-weight: 400; - color: #7C7C7C; + + .btn { + width: 148rpx; + line-height: 64rpx; + background: #FFFFFF; + border-radius: 64rpx; + text-align: center; + border: 1px solid #F55349; + font-size: 28rpx; + font-weight: 400; + color: #F55349; + } + } + + .li { + overflow: hidden; + background-color: #fff; + padding: 0 30rpx; + margin-top: 15rpx; + + &:first-child { + margin-top: 0; + } + + .item { + padding: 20rpx 0; + overflow: hidden; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid #EFEFEF; + + .pic { + width: 160rpx; + height: 160rpx; + margin-right: 20rpx; + + image { + width: 100%; + height: 100%; + } } - .fd{ - display: flex; - align-items: center; - justify-content: space-between; - margin-top: 20rpx; - .price{ - font-size: 32rpx; + + .info { + flex: 1; + max-width: 400rpx; + margin-right: 20rpx; + + .title { + font-size: 28rpx; font-weight: 400; - color: #ED2B00; + color: #000000; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } - .kc{ + + .sku { + line-height: 48rpx; + margin-top: 10rpx; font-size: 28rpx; font-weight: 400; - color: #B6B6B6; + color: #7C7C7C; + } + + .fd { + display: flex; + align-items: center; + justify-content: space-between; + margin-top: 20rpx; + + .price { + font-size: 32rpx; + font-weight: 400; + color: #ED2B00; + } + + .kc { + font-size: 28rpx; + font-weight: 400; + color: #B6B6B6; + } } } } } } } -} </style> diff --git a/pages/news/goods/del.vue b/pages/news/goods/del.vue index 5ff093c..0f5b18a 100644 --- a/pages/news/goods/del.vue +++ b/pages/news/goods/del.vue @@ -1,14 +1,15 @@ -<template> +<template> <view class="goods"> <view class="search"> - <view class="box"> - <!-- <image src="/static/news/icon-search.png"></image> + <view class="box"> + <!-- <image src="/static/news/icon-search.png"></image> <input type="search" placeholder="搜索订单" /> --> - <u-search height="50" @search="getListAfter" @custom="getListAfter" placeholder="商品名称/编码" v-model="keyword"></u-search> - </view> + <u-search height="50" @search="getListAfter" @custom="getListAfter" placeholder="商品名称" + v-model="keyword"></u-search> + </view> </view> <view class="goods-bd"> - <view class="li" v-for="(i,index) in list" :key="index"> + <view class="li" v-for="(i,index) in list" :key="index" v-if="list.length>0"> <view class="b"> <view class="item"> <view class="select" @click="selectItem(i,index)"> @@ -35,6 +36,7 @@ <view class="status">商品状态:{{i.status==10?'上架':i.status==20?'下架':'未知'}}</view> </view> </view> + <u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty> </view> <view class="goods-fd"> <view class="a" @click="checkedAllHandle"> @@ -45,42 +47,35 @@ <view class="c" @click="show=true">删除</view> </view> <u-toast ref="uToast" /> - <u-modal v-model="show" content="确定删除选中商品吗" :show-cancel-button="true" @cancel="show=false" @confirm="delConfirm"></u-modal> - </view> -</template> - + <u-modal v-model="show" content="确定删除选中商品吗" :show-cancel-button="true" @cancel="show=false" + @confirm="delConfirm"></u-modal> + </view> +</template> + <script> - import * as newFunApi from '@/api/newFun' - export default { - data() { + import * as newFunApi from '@/api/newFun' + export default { + data() { return { list: [], keyword: "", total: 0, pageNum: 1, - checkedAll:false, - checkedList:[], - show:false, - }; + checkedAll: false, + checkedList: [], + show: false, + }; }, - // watch:{ - // list:{ - // deep:true, - // handler:function(){ - - // } - // } - // }, methods: { - selectItem(item,index){ - if(this.list[index].checked){//取消选中 - if(this.checkedList.indexOf(item.goods_id)!=-1){ + selectItem(item, index) { + if (this.list[index].checked) { //取消选中 + if (this.checkedList.indexOf(item.goods_id) != -1) { this.checkedList.splice(this.checkedList.indexOf(item.goods_id), 1); - + } this.list[index].checked = false - }else{//选中 - if(this.checkedList.indexOf(item.goods_id)==-1){ + } else { //选中 + if (this.checkedList.indexOf(item.goods_id) == -1) { this.checkedList.push(item.goods_id) } this.list[index].checked = true @@ -91,61 +86,66 @@ this.checkedAll = false; } }, - checkedAllHandle(){ - this.checkedList=[] - if(this.checkedAll){ + checkedAllHandle() { + this.checkedList = [] + if (this.checkedAll) { this.checkedAll = false - this.list.forEach(item=>{ + this.list.forEach(item => { item.checked = false; - + }) - }else{ + } else { this.checkedAll = true; - this.list.forEach(item=>{ + this.list.forEach(item => { this.checkedList.push(item.goods_id) item.checked = true }) } - + }, - getListAfter(){ - this.checkedList=[]; + getListAfter() { + this.checkedList = []; this.list = []; this.getList() }, async getList() { uni.showLoading({ - title:"加载中" + title: "加载中" }) - let {status, message, data} = await newFunApi.storeKeeperList({ - goodsNo: "", + let { + status, + message, + data + } = await newFunApi.storeKeeperList({ + goodsNo: "", page: this.pageNum, - listType: "all", + listType: "all", goodsName: this.keyword }); - if(status == 200){ + if (status == 200) { uni.hideLoading(); this.list = this.list.concat(data.list.data) this.total = data.list.total } }, - async delConfirm(){ - - let {status, message, data} = await newFunApi.delGoods({ - goodsIds:this.checkedList + async delConfirm() { + + let { + status, + message, + data + } = await newFunApi.delGoods({ + goodsIds: this.checkedList }); - - if(status == 200){ + + if (status == 200) { uni.hideLoading(); - this.$refs.uToast.show({ - title: message, - type: 'success' - }) + this.$toast('删除成功') this.getListAfter() } }, - delHandle(item){ - this.selected=item; + delHandle(item) { + this.selected = item; this.show = true }, }, @@ -153,184 +153,224 @@ this.getListAfter(); }, onReachBottom() { - if(this.list.length <= this.total){ - this.pageNum ++; + if (this.list.length <= this.total) { + this.pageNum++; this.getList(); } - }, - } -</script> - -<style lang="scss" scoped> -.goods{ - padding: 0 0 130rpx; - overflow: hidden; - &-fd{ - width: 100%; - padding: 20rpx; - overflow: hidden; - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; - position: fixed; - left: 0; - bottom: 0; - z-index: 999; - background-color: #fff; - .a{ - margin-right: 20rpx; - font-size: 28rpx; - font-weight: 400; - color: #313131; - display: flex; - align-items: center; - image{ - width: 40rpx; - height: 40rpx; - margin-right: 10rpx; - } - } - .b{ - text{ - color: #ED2B00; - padding: 0 10rpx; - } - font-size: 26rpx; - font-weight: 400; - color: #A2A2A2; - margin-right: 16rpx; - } - .c{ - width: 408rpx; - line-height: 80rpx; - background: #FF564A; - border-radius: 80rpx; - text-align: center; - font-size: 28rpx; - font-weight: 500; - color: #FFFFFF; - } + }, } - .search{ - width: 750rpx; - padding: 35rpx; - box-sizing: border-box; - .box{ - padding: 15rpx 25rpx; - box-sizing: border-box; - display: flex; - align-items: center; - background: #F3F3F3; - border-radius: 60rpx; - image{ - width: 28rpx; - height: 28rpx; - margin-right: 22rpx; - } - input{ - flex: 1; - font-size: 28rpx; - line-height: 30rpx; - } - } +</script> + +<style lang="scss" scoped> + ::v-deep .u-input, + ::v-deep .u-content { + background-color: #fff !important; } - &-bd{ - padding: 0 30rpx; + + ::v-deep .u-search { + width: 640rpx !important; + } + + ::v-deep .u-empty { + padding: 100rpx 0; + } + + .goods { + padding: 0 0 130rpx; overflow: hidden; - .a{ - padding: 15rpx 0; + + &-fd { + width: 100%; + padding: 20rpx; + overflow: hidden; display: flex; align-items: center; - justify-content: space-between; - .status{ + justify-content: center; + box-sizing: border-box; + position: fixed; + left: 0; + bottom: 0; + z-index: 999; + background-color: #fff; + + .a { + margin-right: 20rpx; font-size: 28rpx; font-weight: 400; - color: #B6B6B6; + color: #313131; + display: flex; + align-items: center; + + image { + width: 40rpx; + height: 40rpx; + margin-right: 10rpx; + } + } + + .b { + text { + color: #ED2B00; + padding: 0 10rpx; + } + + font-size: 26rpx; + font-weight: 400; + color: #A2A2A2; + margin-right: 16rpx; } - .btn{ - width: 148rpx; - line-height: 64rpx; - background: #FFFFFF; - border-radius: 64rpx; + + .c { + width: 408rpx; + line-height: 80rpx; + background: #FF564A; + border-radius: 80rpx; text-align: center; - border: 1px solid #F55349; - font-size: 28rpx; - font-weight: 400; - color: #F55349; + font-size: 28rpx; + font-weight: 500; + color: #FFFFFF; } } - .li{ - overflow: hidden; - background-color: #fff; - padding: 0 30rpx; - margin-top: 15rpx; - &:first-child{ - margin-top: 0; + + .search { + width: 750rpx; + padding: 35rpx; + box-sizing: border-box; + + .box { + padding: 15rpx 25rpx; + box-sizing: border-box; + display: flex; + align-items: center; + background: #fff; + border-radius: 60rpx; + + image { + width: 28rpx; + height: 28rpx; + margin-right: 22rpx; + } + + input { + flex: 1; + font-size: 28rpx; + line-height: 30rpx; + } } - .item{ - padding: 20rpx 0; - overflow: hidden; + } + + &-bd { + padding: 0 30rpx; + overflow: hidden; + + .a { + padding: 15rpx 0; display: flex; align-items: center; justify-content: space-between; - border-bottom: 1px solid #EFEFEF; - .select{ - width: 40rpx; - height: 40rpx; - margin-right: 20rpx; - image{ - width: 100%; - height: 100%; - } + + .status { + font-size: 28rpx; + font-weight: 400; + color: #B6B6B6; } - .pic{ - width: 160rpx; - height: 160rpx; - margin-right: 20rpx; - image{ - width: 100%; - height: 100%; - } + + .btn { + width: 148rpx; + line-height: 64rpx; + background: #FFFFFF; + border-radius: 64rpx; + text-align: center; + border: 1px solid #F55349; + font-size: 28rpx; + font-weight: 400; + color: #F55349; } - .info{ - flex: 1; - max-width: 370rpx; - margin-right: 20rpx; - .title{ - font-size: 28rpx; - font-weight: 400; - color: #000000; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + } + + .li { + overflow: hidden; + background-color: #fff; + padding: 0 30rpx; + margin-top: 15rpx; + + &:first-child { + margin-top: 0; + } + + .item { + padding: 20rpx 0; + overflow: hidden; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid #EFEFEF; + + .select { + width: 40rpx; + height: 40rpx; + margin-right: 20rpx; + + image { + width: 100%; + height: 100%; + } } - .sku{ - line-height: 48rpx; - margin-top: 10rpx; - font-size: 28rpx; - font-weight: 400; - color: #7C7C7C; + + .pic { + width: 160rpx; + height: 160rpx; + margin-right: 20rpx; + + image { + width: 100%; + height: 100%; + } } - .fd{ - display: flex; - align-items: center; - justify-content: space-between; - margin-top: 10rpx; - .price{ - font-size: 32rpx; + + .info { + flex: 1; + max-width: 370rpx; + margin-right: 20rpx; + + .title { + font-size: 28rpx; font-weight: 400; - color: #ED2B00; + color: #000000; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } - .kc{ + + .sku { + line-height: 48rpx; + margin-top: 10rpx; font-size: 28rpx; font-weight: 400; - color: #B6B6B6; + color: #7C7C7C; + } + + .fd { + display: flex; + align-items: center; + justify-content: space-between; + margin-top: 10rpx; + + .price { + font-size: 32rpx; + font-weight: 400; + color: #ED2B00; + } + + .kc { + font-size: 28rpx; + font-weight: 400; + color: #B6B6B6; + } } } } } } } -} </style> diff --git a/pages/news/goods/list.vue b/pages/news/goods/list.vue index 6dfb14c..8d8bc91 100644 --- a/pages/news/goods/list.vue +++ b/pages/news/goods/list.vue @@ -2,12 +2,12 @@ <view class="goods"> <view class="search"> <view class="box"> - <u-search height="50" @search="getListAfter" @custom="getListAfter" placeholder="商品名称/编码" + <u-search height="50" @search="getListAfter" @custom="getListAfter" placeholder="商品名称" v-model="keyword"></u-search> </view> </view> <view class="goods-bd"> - <view class="li" v-for="(i,index) in list" :key="index"> + <view class="li" v-for="(i,index) in list" :key="index" v-if="list.length>0"> <view class="b"> <view class="item"> <view class="pic"> @@ -30,6 +30,7 @@ <view class="status">商品状态:{{i.status==10?'上架':i.status==20?'下架':'未知'}}</view> </view> </view> + <u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty> </view> </view> </template> @@ -96,6 +97,10 @@ width: 640rpx !important; } + ::v-deep .u-empty { + padding: 100rpx 0; + } + .goods { padding: 0 0 130rpx; overflow: hidden; diff --git a/pages/news/goods/oneGrounding.vue b/pages/news/goods/oneGrounding.vue index f6616e9..9146211 100644 --- a/pages/news/goods/oneGrounding.vue +++ b/pages/news/goods/oneGrounding.vue @@ -129,7 +129,7 @@ <view class="item"> <view class="a">销售状态<text>*</text></view> <view class="b"> - <u-switch v-model="salesChecked" active-color="#F34A40"></u-switch> + <u-switch v-model="salesChecked" active-color="#55BD6A"></u-switch> </view> </view> </view> diff --git a/pages/news/park/addressEdit.vue b/pages/news/park/addressEdit.vue index f92869c..42816c6 100644 --- a/pages/news/park/addressEdit.vue +++ b/pages/news/park/addressEdit.vue @@ -19,7 +19,7 @@ <view class="item"> <view class="a">手机号</view> <view class="b"> - <input v-model="form.phone" type="number" placeholder="请输入收货人手机号" /> + <input v-model="form.phone" @blur="onPhone" maxlength="13" type="number" placeholder="请输入收货人手机号" /> </view> </view> <view class="item"> @@ -104,8 +104,8 @@ label: this.addressDetail.region.region }]; this.form.detail = this.addressDetail.detail; - }else{ - this.cityInfo.province='' + } else { + this.cityInfo.province = '' } this.getProvinceAll() }, @@ -126,6 +126,23 @@ ] } }, + onPhone(e) { + if (this.validatePhoneNumber(Number(e.detail.value))) { + this.form.phone = Number(e.detail.value) + } else { + this.form.phone = '' + return this.$toast('手机号格式不正确') + } + }, + validatePhoneNumber(phone) { + // 定义手机号的正则表达式规则 + var regExp = /^1[3456789]\d{9}$/; + if (regExp.test(phone)) { + return true; // 符合手机号格式要求 + } else { + return false; // 不符合手机号格式要求 + } + }, // 智能识别 onIntelligence() { if (!this.content) { @@ -216,6 +233,9 @@ if (that.form.region == []) { return that.$toast('请选择所属地市') } + if (!that.form.detail) { + return that.$toast('请输入详细地址') + } let parame = { } @@ -243,6 +263,9 @@ if (that.form.region == []) { return that.$toast('请选择所属地市') } + if (!that.form.detail) { + return that.$toast('请输入详细地址') + } AddressApi.edit(that.addressId, that.form) .then(result => { that.$toast(result.message) @@ -269,7 +292,6 @@ }) } - }, } } diff --git a/pages/news/park/addressList.vue b/pages/news/park/addressList.vue index dfd9325..7fc47d4 100644 --- a/pages/news/park/addressList.vue +++ b/pages/news/park/addressList.vue @@ -1,19 +1,31 @@ <template> <view class="addressList"> - <view class="item" v-for="(item,index) in addressList" :key="index" :style="{'border-top':index==0?'none':'1px solid #EEEEEE'}"> - <view class="a">{{item.name}} {{item.phone}}<text v-if="item.address_id==defaultId">默认</text></view> - <view class="b"> - <view class="d"> - {{item.detail}} + <view style="overflow: hidden;" v-if="addressList.length>0"> + <u-swipe-action :show="item.show" :index="index" v-for="(item, index) in addressList" :key="item.id" + @click="clickDel(item)" @open="open" :options="options"> + <view class="title-wrap"> + <view class="item" :style="{'border-top':index==0?'none':'1px solid #EEEEEE'}"> + <view class="a">{{item.name}} {{item.phone}}<text v-if="item.address_id==defaultId">默认</text> + </view> + <view class="b"> + <view class="d"> + {{item.detail}} + </view> + <image src="/static/order/edit.png" @click="editAddress(item)"></image> + </view> + </view> </view> - <image src="/static/order/edit.png" @click="editAddress(item)"></image> - </view> + </u-swipe-action> </view> + <u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty> <view class="footer"> <view class="operaBtn" @click="addAddress"> 新增收货地址 </view> </view> + <u-toast ref="uToast" /> + <u-modal v-model="delShow" content="确定删除选中商品吗" :show-cancel-button="true" @cancel="show=false" + @confirm="delConfirm"></u-modal> </view> </template> @@ -23,7 +35,18 @@ data() { return { addressList: [], - defaultId:'', + defaultId: '', + disabled: false, + btnWidth: 180, + show: false, + delShow: false, + options: [{ + text: '删除', + style: { + backgroundColor: '#dd524d' + } + }], + addressId: '' }; }, onShow() { @@ -31,7 +54,7 @@ this.getDefault() }, methods: { - getDefault(){ + getDefault() { // 获取默认地址接口 const that = this return new Promise((resolve, reject) => { @@ -42,25 +65,48 @@ .catch(reject) }) }, + open(index) { + this.addressList[index].show = true; + this.addressList.map((val, idx) => { + if (index != idx) this.addressList[idx].show = false; + }) + }, + clickDel(item) { + this.addressId = item.address_id + this.delShow = true; + }, + async delConfirm() { + // 设置默认地址 + const that = this + AddressApi.remove(that.addressId) + .then(result => { + that.$toast(result.message); + this.delShow = false; + that.getAddressList() + }) + }, getAddressList() { const that = this return new Promise((resolve, reject) => { AddressApi.list() .then(result => { + result.data.list.forEach(item => { + item.show = false + }); that.addressList = result.data.list }) .catch(reject) }) }, - editAddress(item){ + editAddress(item) { // 编辑收货地址 uni.navigateTo({ - url:'/pages/news/park/addressEdit?addressDetail=' + JSON.stringify(item) + url: '/pages/news/park/addressEdit?addressDetail=' + JSON.stringify(item) }) }, - addAddress(){ + addAddress() { uni.navigateTo({ - url:'/pages/news/park/addressEdit' + url: '/pages/news/park/addressEdit' }) }, } @@ -68,6 +114,10 @@ </script> <style lang="scss" scoped> + ::v-deep .u-empty { + padding: 100rpx 0; + } + .addressList { padding: 0 45rpx; background-color: #FFFFFF; @@ -117,11 +167,13 @@ image { width: 36rpx; height: 36rpx; + margin-right: 10rpx; } } } } - .footer{ + + .footer { display: flex; width: 100%; height: 120rpx; @@ -129,7 +181,8 @@ position: fixed; bottom: 0; left: 0; - .operaBtn{ + + .operaBtn { width: 686rpx; height: 92rpx; background: #F34A40; @@ -143,4 +196,4 @@ text-align: center; } } -</style> \ No newline at end of file +</style> diff --git a/pages/news1/wallet.vue b/pages/news1/wallet.vue index ea32ef8..556a6cf 100644 --- a/pages/news1/wallet.vue +++ b/pages/news1/wallet.vue @@ -74,22 +74,21 @@ <text class="line"></text> </view> </view> - <u-picker mode="time" v-model="timeShow" :params="timeParams" @confirm="getTime"></u-picker> - <!-- menu-icon='/static/shai.png' menu-icon-size='30' active-color="#464646" --> + <u-calendar v-model="timeShow" mode="range" @change="getTime" range-color='#F34A40' range-bg-color='#FFBDBA' + active-bg-color='#F34A40'></u-calendar> <u-dropdown class="dropdownStyle" ref="dropdown1" height="100" title-size='28' active-color="#464646" @open="dropOpen" @close="dropClose"> - <u-dropdown-item title="属性" @update:modelValue="open()"> + <u-dropdown-item title="筛选" @update:modelValue="open()"> <view class="slot-content"> <view class="slotItem"> <view class="title">时间</view> <view class="timecontainer"> - <u-input border v-model="start_at" placeholder="开始日期" type="select" - @click="onTime(1)" /> + <u-input disabled border v-model="start_at" placeholder="开始日期" @click="onTime(1)" /> <text style="margin:0 20rpx;">-</text> - <u-input border v-model="end_at" type="select" placeholder="结束日期" @click="onTime(2)" /> - + <u-input border disabled v-model="end_at" placeholder="结束日期" @click="onTime(2)" /> </view> </view> + <view class="slotItem"> <view class="title">分类</view> <view class="itemBtn"> @@ -106,8 +105,8 @@ </u-dropdown-item> </u-dropdown> </view> - <view class="dataList" style="margin: 0 36rpx;"> - <view class="item" v-for="item in list" :key="i" v-if="list.length>0"> + <view class="dataList" style="margin: 0 36rpx;" v-if="list.length>0"> + <view class="item" v-for="item in list" :key="i"> <view class="l"> <view class="a">{{item.describe}}</view> <view class="b">{{item.create_time}}</view> @@ -116,8 +115,8 @@ <view class="a">{{item.money}}</view> </view> </view> - <u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty> </view> + <u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty> <u-popup v-model="introShow" mode="center" border-radius="12"> <view class="introContent"> <view class="introTitle">余额说明</view> @@ -167,7 +166,6 @@ list: [], start_at: '', end_at: '', - paramsIndex: 0, isDropShow: true } @@ -224,7 +222,6 @@ this.timeShow = false }, resetting() { - this.paramsIndex = 0; this.start_at = ''; this.end_at = ''; this.getBalance(''); @@ -236,15 +233,11 @@ this.getBalance(type) }, getTime(e) { - if (this.paramsIndex == 1) { - this.start_at = e.year + '-' + e.month + '-' + e.day; - } - if (this.paramsIndex == 2) { - this.end_at = e.year + '-' + e.month + '-' + e.day; - } + this.start_at = e.startDate; + this.end_at = e.endDate; + console.log(this.start_at) }, onTime(index) { - this.paramsIndex = index; this.timeShow = true }, cashOut() { @@ -259,17 +252,27 @@ url: '/pages/news/user/rechargeList' }) }, - // openDrawer(){ - // this.$refs.dropdown1.open(); - // } } } </script> <style lang="scss" scoped> + ::v-deep .u-btn--primary { + background-color: #FC3E27 !important; + border-color: #FC3E27; + } + + ::v-deep .u-dropdown__content__mask { + background: #fff !important; + } + + ::v-deep .u-empty { + padding: 100rpx 0; + } + page { // min-height: calc(100vh); min-height: 100%; - background-color: #fff; + background: #fff !important; .wallet { height: 100%; @@ -553,15 +556,10 @@ ::v-deep .u-dropdown__menu__item { justify-content: flex-end; - padding-right: 20rpx; + padding-right: 30rpx; align-items: stretch; } - // ::v-deep .u-dropdown__menu__item__text, - // ::v-deep .u-flex .u-icon__icon { - // color: #FE422B !important; - // } - ::v-deep .u-input__right-icon { display: none !important; } @@ -570,8 +568,12 @@ text-align: center !important; background-color: #F3F4F6 !important; border-color: #F3F4F6 !important; + width:40rpx !important; + padding: 0 70rpx !important; } + + .order-tab { display: flex; align-items: center; diff --git a/pages/order/index.vue b/pages/order/index.vue index 462f85a..a5a3c10 100644 --- a/pages/order/index.vue +++ b/pages/order/index.vue @@ -4,7 +4,7 @@ @down="downCallback" :up="upOption" @up="upCallback"> <view class="search"> <view class="box"> - <image src="/static/news/icon-search.png"></image> + <u-icon name="search" size="30" color="#8D8D8D"></u-icon> <input type="search" @confirm="confirm" v-model='keyWords' placeholder="搜索订单" /> </view> </view> @@ -13,13 +13,16 @@ bar-width="0" active-color="#111111" :duration="0.2" @change="onChangeTab" /> <!-- 订单列表 --> <view class="order-list"> - <view class="item" v-for="(item,index) in list"> + <view class="item" v-for="(item,index) in list" v-if="list.length>0"> <view class="hd"> <view class="a"> <image class="icon" :src="item.storeInfo.image_url"></image> {{item.storeInfo.store_name}} </view> - <view class="b">{{item.state_text}}</view> + <view class="b" + :style="{'color': (item.order_status == OrderStatusEnum.COMPLETED.value)?'#3E801D':'#F21A1C'}"> + {{item.state_text}} + </view> </view> <view class="bd" @click="goOrderDetail(item.order_id)" v-for="(goods, idx) in item.goods" :key="idx"> @@ -39,6 +42,14 @@ <view class="fd"> 共{{ item.total_num }}件商品,实付款¥<text>{{ item.pay_price }}</text> </view> + <!-- <view class="receive"> + <view class=""> + 收件人姓名 188989988900 + </view> + <view style="color: #939393;margin-top: 12rpx;"> + 这里是备注 + </view> + </view> --> <view v-if="item.menushow" class="menuarea"> <view class="mask" @click="changeMenu(index)"> </view> @@ -47,16 +58,6 @@ @click="onInvoicing(item.order_id,item)"> 申请开票 </view> - <!-- <view class="" - v-if="item.pay_status == PayStatusEnum.SUCCESS.value && item.delivery_status == ReceiptStatusEnum.NOT_RECEIVED.value" - @click="onRefund(item.order_id)"> - 申请退款 - </view> - <view class="" - v-if="item.pay_status == PayStatusEnum.SUCCESS.value && item.delivery_status == ReceiptStatusEnum.RECEIVED.value" - @click="onSales(item.order_id)"> - 申请售后 - </view> --> <view class="" @click="onDelete(item.order_id)" v-if="item.order_status == OrderStatusEnum.COMPLETED.value"> 删除订单 @@ -88,10 +89,11 @@ <view class="n" v-if="item.pay_status == PayStatusEnum.SUCCESS.value && item.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value" @click="onCdDia(item.goods_id)">催发货</view> - <view class="n" v-if="item.order_status == OrderStatusEnum.NORMAL.value && item.pay_status == PayStatusEnum.SUCCESS.value && item.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value" - @click="onCancel(item.order_id)"> - 取消订单 - </view> + <view class="n" + v-if="item.pay_status == PayStatusEnum.SUCCESS.value && item.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value" + @click="onCancel(item.order_id)"> + 取消订单 + </view> <!-- <view class="n" v-if="item.pay_status == PayStatusEnum.SUCCESS.value && item.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value" @click="onAdress(order.goods_id)">修改地址</view> --> @@ -101,6 +103,7 @@ </view> </view> </view> + <u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty> </view> </mescroll-body> <u-modal v-model="deleteShow" :show-cancel-button="true" :closable='false' @on-cancel="handleCancel" @@ -161,16 +164,16 @@ // tab栏数据 const tabs = [{ name: `待付款`, - value: 'payment' + value: 'pay' }, { name: `待发货`, value: 'delivery' }, { name: `待收货`, - value: 'received' + value: 'receipt' }, { name: `已完成`, - value: 'received' + value: 'complete' }, ] export default { @@ -229,17 +232,16 @@ onLoad(options) { // 初始化当前选中的标签 this.initCurTab(options) - // 注册全局事件订阅: 是否刷新订单列表 - uni.$on('syncRefresh', canReset => { - this.canReset = canReset - }) }, /** * 生命周期函数--监听页面显示 */ onShow() { - this.canReset && this.onRefreshList() + // 注册全局事件订阅: 是否刷新订单列表 + uni.$on('syncRefresh', canReset => { + this.onRefreshList() + }) this.canReset = false }, @@ -426,9 +428,10 @@ }) }, // 点击去开票 - onInvoicing(orderId,order) { + onInvoicing(orderId, order) { uni.navigateTo({ - url: '/pages/invoice/edit?orderId=' + orderId + '&source=' + 0 + "&order=" + JSON.stringify(order) + url: '/pages/invoice/edit?orderId=' + orderId + '&source=' + 0 + "&order=" + JSON.stringify( + order) }) }, // 点击去退款 @@ -485,21 +488,42 @@ </script> <style lang="scss" scoped> + ::v-deep .u-empty { + padding: 100rpx 0; + } + .order { + .receive { + width: 100%; + background: #F8F8F8; + margin-top: 20rpx; + font-family: PingFang SC, PingFang SC; + font-weight: 500; + font-size: 28rpx; + color: #3B3B3B; + line-height: 33rpx; + text-align: left; + font-style: normal; + text-transform: none; + padding: 20rpx 22rpx; + } + .search { width: 750rpx; - height: 98rpx; - background: #FFFFFF; + height: 118rpx; + background: #FFF; padding: 20rpx 26rpx 20rpx 48rpx; box-sizing: border-box; .box { - padding: 15rpx 25rpx; + padding: 0 25rpx; box-sizing: border-box; display: flex; align-items: center; background: #F3F3F3; border-radius: 60rpx; + height: 78rpx; + line-height: 78rpx; image { width: 28rpx; @@ -511,6 +535,7 @@ flex: 1; font-size: 28rpx; line-height: 30rpx; + margin-left: 15rpx; } } }