From da1f751bea60280504d7fa04e6a547c68ef4381a Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期五, 12 七月 2024 17:49:30 +0800 Subject: [PATCH] add 商铺信息数据和商铺详情,还todo订单相关的 --- sub_pages/customer/trade/list.vue | 100 ---- common/self.scss | 35 + static/icon-gz-1.png | 0 sub_pages/supplier/flower-manage/flower-add.vue | 31 common/global.scss | 157 ++++++++ pages.json | 7 static/icon-gz-0.png | 0 sub_pages/customer/shop/shop.vue | 287 +++++++++++++++ sub_pages/customer/trade/trade.vue | 55 ++ sub_pages/customer/trade/detail.vue | 422 ++++++++++++++++++---- 10 files changed, 899 insertions(+), 195 deletions(-) diff --git a/common/global.scss b/common/global.scss index 9ea6dc9..ca95a4d 100644 --- a/common/global.scss +++ b/common/global.scss @@ -73,6 +73,69 @@ height: 100%; z-index: -1; } +.component-popup_input_all{ + margin: 0 auto; + margin-top: 160rpx; + height: calc(100vh - 300rpx); + background-color: #fff; + border-radius: 40rpx 40rpx 0rpx 0rpx; + padding: 26rpx; + position: relative; + .button-space{ + // border: 2rpx solid #EEEEEE; + min-height: 124rpx; + } + .value-items{ + + + .value-item{ + min-width: 152rpx; + width: fit-content; + text-align: center; + height: 58rpx; + background: #F1F5F2; + border-radius: 36rpx; + margin-bottom: 18rpx; + font-weight: 400; + font-size: 28rpx; + line-height: 58rpx; + padding: 8rpx 30rpx; + color: #33a868; + margin-left: 13rpx; + margin-right: 13rpx; + border: 2rpx solid #F1F5F2; + } + .value-item.cur{ + background: #E1F0E7; + border-radius: 36rpx; + border: 2rpx solid #20613D; + color: #20613D; + + } + } + + .button-green{ + border-top: 2rpx solid #EEEEEE; + position: absolute; + bottom: 26rpx; + left: 26rpx; + right: 26rpx; + height: 78rpx; + background: #20613D; + border-radius: 40rpx; + font-weight: 600; + font-size: 32rpx; + color: #FFFFFF; + line-height: 78rpx; + } + .button-green.button-white{ + background: #F1F5F2; + font-weight: 400; + font-size: 32rpx; + color: #20613D; + line-height: 78rpx; + } +} .component-popup_input{ margin: 0 auto; margin-top: 160rpx; @@ -122,4 +185,96 @@ color: #000000; line-height: 34rpx; } -} \ No newline at end of file +} + +.component-shop-item { + margin-top: 20rpx; + background: #FFFFFF; + border-radius: 8rpx; + padding: 10rpx; + + .info-container { + position: relative; + + .other-info { + margin-top: 6rpx; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + text-align: left; + } + + .shop-name { + margin-top: 14rpx; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } + + .bottom-buttons { + // width: 400rpx; + position: absolute; + bottom: 0rpx; + + left: 0; + right: 0; + + .icons { + margin-left: auto; + margin-right: 0rpx; + margin-top: -10rpx; + + .curnums { + line-height: 60rpx; + margin-left: 12rpx; + margin-right: 12rpx; + } + } + } + + .title { + font-weight: 600; + font-size: 32rpx; + color: #000000; + line-height: 44rpx; + margin-top: 8rpx; + position: relative; + + .price { + position: absolute; + font-weight: 400; + font-size: 28rpx; + color: #CF0000; + line-height: 40rpx; + top: 0; + right: 0; + } + } + + } + + .img { + width: 206rpx; + height: 206rpx; + border-radius: 8rpx; + position: relative; + + .level { + position: absolute; + width: 66rpx; + height: 44rpx; + background: #20613D; + left: 0; + top: 0; + border-top-left-radius: 8rpx; + border-bottom-right-radius: 8rpx; + color: #FFFFFF; + line-height: 44rpx; + font-size: 24rpx; + text-align: center; + } + + } + + +} diff --git a/common/self.scss b/common/self.scss index 8cf4eea..31c6db8 100644 --- a/common/self.scss +++ b/common/self.scss @@ -893,10 +893,41 @@ } .store-name { + font-weight: 600; + font-size: 28rpx; + color: #000000; + line-height: 40rpx; + } + .store-address{ + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } + .store-to{ + width: 172rpx; + height: 52rpx; + background: #E1F0E7; + border-radius: 4rpx; + font-weight: 400; + font-size: 24rpx; + color: #5B8C71; + line-height: 52rpx; + text-align: center; + } + .store-sc{ + width: 176rpx; + height: 64rpx; + background: #39AF6E; + border-radius: 32rpx; font-weight: 400; font-size: 32rpx; - color: #000000; - line-height: 96rpx; + color: #FFFFFF; + line-height: 64rpx; + .icon{ + width: 36rpx; + height: 36rpx; + } } } .text-left{ diff --git a/pages.json b/pages.json index 84c27fd..8d339b4 100644 --- a/pages.json +++ b/pages.json @@ -186,6 +186,13 @@ "enablePullDownRefresh": false } + }, + { + "path" : "shop/shop", + "style" : + { + "navigationBarTitleText" : "商家主页" + } } ] diff --git a/static/icon-gz-0.png b/static/icon-gz-0.png new file mode 100644 index 0000000..6dfc03f --- /dev/null +++ b/static/icon-gz-0.png Binary files differ diff --git a/static/icon-gz-1.png b/static/icon-gz-1.png new file mode 100644 index 0000000..ca0b247 --- /dev/null +++ b/static/icon-gz-1.png Binary files differ diff --git a/sub_pages/customer/shop/shop.vue b/sub_pages/customer/shop/shop.vue new file mode 100644 index 0000000..5a7cf7a --- /dev/null +++ b/sub_pages/customer/shop/shop.vue @@ -0,0 +1,287 @@ +<template> + <view class="brand-detail"> + + <view class="brand-top-info"> + <view class="search-container m-t-12 flex"> + <view class="flex1 input"> + <u-input placeholder="请输入花名" v-model="search_flow"> + <template slot="suffix"> + <uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons> + </template> + </u-input> + </view> + </view> + <view class="info-brand m-t-12" v-if="shopid"> + <view class="flex"> + <image class="store-logo"></image> + <view> + <view class="store-name">花仙子</view> + <view class="store-address">云南省-昆明市-官渡区</view> + </view> + <view class="store-sc m-l-a m-r-0"> + <image src="../../../static/icon-gz-1.png" class="icon" v-if="dto.gz"></image> + <image src="../../../static/icon-gz-0.png" class="icon" v-if="!dto.gz"></image> + 关注 + </view> + </view> + </view> + <view class="tj-info m-t-12"> + <view class="form-item"> + <view class="value">0</view> + <view class="label">发布</view> + </view> + <view class="form-item"> + <view class="value">0</view> + <view class="label">获赞</view> + </view> + <view class="form-item"> + <view class="value">0</view> + <view class="label">粉丝</view> + </view> + <view class="form-item"> + <view class="value">0</view> + <view class="label">关注</view> + </view> + </view> + <top-tabs :tabs="tabs" :flg="flg" @change="changeTab"> + + </top-tabs> + </view> + <view class="brand-info"> + <view v-if="flg=='0'" class="brand-info-0"> + <view class="component-filter-container" style="padding-top: 12rpx;"> + <view class="flex1"> + 排序<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + <view class="flex1"> + 等级<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + <view class="flex1"> + 参数<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + </view> + <view class="top-title"> + 报价已包含打包费、材料费、交易佣金 + </view> + <view class="component-shop-item flex" v-for="(item,index) of list" :key="index" + @click="toDetail(item)"> + <view class="img"> + <image class="img img100" + src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/ff/fff3027bd0a146478fd1f0aae816a028%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20240710224139.png"> + </image> + <view class="level"> + A级 + </view> + </view> + + <view class="m-l-12 info-container flex1"> + <view class="title"> + 橙色芭比 + <view class="price"> + ¥6.60/扎 + </view> + </view> + <view class="shop-name"> + 牛油果泡泡·白色 + </view> + <view class="other-info flex"> + <view class="m-r-15"> + 已售:7 + </view> + <view class="m-r-15"> + 剩余:13 + </view> + <view class="m-r-15"> + 1支/扎 + </view> + </view> + <view class="bottom-buttons flex"> + + <view class="icons flex"> + <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32" + @click.stop="mulnum(item)"></uni-icons> + <view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{item.shopnum}}</view> + <uni-icons v-if="!item.shopnum||item.shopnum<=99" type="plus-filled" size="32" + @click.stop="addnum(item)"></uni-icons> + </view> + </view> + </view> + </view> + + </view> + + <view v-if="flg=='1'" class="brand-info-1"> + <trade :hidefooter="true"></trade> + </view> + <view v-if="flg=='3'" class="brand-info-3"> + <view class="title"> + 基础信息 + </view> + <view class="form-input"> + <view class="label">经营模式</view> + <view class="value">供应商</view> + </view> + <view class="form-input"> + <view class="label">身份认证</view> + <view class="value">个人身份认证</view> + </view> + </view> + </view> + + + </view> +</template> + +<script> + import trade from '@/sub_pages/customer/trade/trade.vue' + export default { + components: { + trade, + }, + data() { + return { + shopid: 'test', + search_flow: '', + flg: '0', + tabs: [{ + name: '全部商品' + }, + { + name: '分类' + }, + { + name: '评价' + }, + { + name: '商家' + }, + ], + dto: {}, + list: [{}, {}] + } + }, + methods: { + changeTab(flg) { + this.flg = flg + //如果没有加载数据,需要加载一下 + + }, + buttonSearchFlow() { + + }, + mulnum(item) { + if (item.shopnum > 0) { + item.shopnum -= 1 + } + this.shoptotal -= 1 + this.$forceUpdate() + + }, + addnum(item) { + if (item.shopnum) { + item.shopnum += 1 + } else { + item.shopnum = 1 + } + this.shoptotal += 1 + this.$forceUpdate() + }, + } + } +</script> + +<style lang="scss" scoped> + .brand-detail { + .brand-info { + background: #FFFFFF; + border-radius: 40rpx 40rpx 0rpx 0rpx; + padding: 40rpx 32rpx; + + .brand-info-0 { + .top-title { + height: 54rpx; + background: #E4ECE8; + border-radius: 4rpx; + font-weight: 400; + font-size: 24rpx; + color: #779787; + line-height: 80rpx; + } + } + + .brand-info-3 { + .title { + font-weight: 600; + font-size: 32rpx; + color: #000000; + line-height: 44rpx; + margin-bottom: 20rpx; + } + + .form-item { + display: flex; + border-bottom: 2rpx solid #EEEEEE; + + .label { + font-weight: 400; + font-size: 28rpx; + color: #000000; + line-height: 40rpx; + } + + .value { + font-weight: 400; + font-size: 28rpx; + color: #666666; + line-height: 40rpx; + margin-left: auto; + text-align: right; + + .check { + background: #20613D; + border-radius: 4rpx; + } + } + } + } + } + + .brand-top-info { + background-image: url('https://hmy-flower.oss-cn-shanghai.aliyuncs.com/37/37dc02b58bd44af79e45031af2bb6c0b%E4%BD%8D%E5%9B%BE@2x.png'); + + .tj-info{ + display: flex; + .form-item{ + flex: 1; + text-align: center; + .label{ + font-weight: 400; + font-size: 32rpx; + color: #FFFFFF; + line-height: 44rpx; + } + .value{ + font-weight: 600; + font-size: 48rpx; + color: #FFFFFF; + line-height: 66rpx; + } + } + } + .search-container { + display: flex; + margin: 12rpx 0rpx 20rpx 0rpx; + position: relative; + z-index: 1; + + .input { + + background-color: #fff !important; + + border-radius: 8rpx; + } + + } + } + } +</style> \ No newline at end of file diff --git a/sub_pages/customer/trade/detail.vue b/sub_pages/customer/trade/detail.vue index 84406cf..f1330a8 100644 --- a/sub_pages/customer/trade/detail.vue +++ b/sub_pages/customer/trade/detail.vue @@ -1,77 +1,345 @@ -<template> - <view class="trade-detail"> - <view class="top-img-container"> - <image src="" class="top-img"></image> - <view class="icon-container"> - <image src="../../../static/common/icon-sc.png" class="icon-sc"></image> - <view class="num">12</view> - </view> - <view class="icon-container"> - <image src="../../../static/common/icon-shop.png" class="icon-shop"></image> - - </view> - </view> - </view> -</template> - -<script> - export default { - data() { - return { - - } - }, - methods: { - - } - } -</script> - -<style lang="scss" scoped> - -.trade-detail{ - .top-img-container{ - position: relative; - .top-img{ - width: 750rpx; - height: 764rpx; - } - .icon-container{ - position: absolute; - top: 20rpx; - width: 80rpx; - height: 80rpx; - background: rgba(0,0,0,0.42); - - .icon-sc{ - width: 54rpx; - height: 54rpx; - margin: 0 auto; - margin-top: 12rpx; - } - .icon-shop{ - width: 54rpx; - height: 54rpx; - margin: 0 auto; - margin-top: 12rpx; - } - .num{ - font-weight: 400; - font-size: 20rpx; - color: #FFFFFF; - line-height: 28rpx; - position: absolute; - top: 6prx; - right: 16rpx; - } - } - .icon-container:last-child{ - left: 120rpx; - } - .icon-container:first-child{ - left: 20rpx; - } - - } -} -</style> +<template> + <view class="trade-detail"> + <view class="top-img-container"> + <image src="" class="top-img"></image> + <view class="icon-container"> + <image src="../../../static/common/icon-sc.png" class="icon-sc"></image> + <view class="num">12</view> + </view> + <view class="icon-container"> + <image src="../../../static/common/icon-shop.png" class="icon-shop"></image> + + </view> + </view> + <view class="info-container"> + <view class="title"> + <view class="level m-r-15">B级</view> + <view class=""> + {{dto.name || '-'}} + </view> + </view> + <view class="desc m-t-12"> + <view class="m-r-15">已售:7</view> + <view class="m-r-15">剩余:13</view> + <view class=" ">10支/扎</view> + </view> + <view class="flex m-t-12"> + <view class="price m-r-a"> + <span class="num">28.01</span> + 元/扎 + </view> + <view class="m-l-a m-r-15"> + <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> + + </view> + <view class="m-r-0 gwc"> + + 购物车 + </view> + </view> + </view> + <view class="line"> + + </view> + <view class="info-detail"> + <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">详情</view> + <view class="flex m-t-8"> + <view class="label">枝长:</view> + <view class="value">70-75cm</view> + </view> + <view class="flex m-t-8"> + <view class="label">枝粗:</view> + <view class="value">中等粗细</view> + </view> + <view class="flex m-t-8"> + <view class="label">均匀度:</view> + <view class="value">1-2支不均匀</view> + </view> + </view> + <view class="line"> + + </view> + + <view class="info-brand m-t-12" @click.stop="openbrand"> + <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">店铺</view> + <view class="flex"> + <image class="store-logo"></image> + <view> + <view class="store-name">花仙子</view> + <view class="store-address">云南省-昆明市-官渡区</view> + </view> + <view class="store-to m-l-a m-r-0">进入店铺</view> + </view> + </view> + <view class="m-t-20 shop-recommend-container"> + <view class="shop-recommend-title">店铺推荐</view> + <view class="flex"> + <view v-for="i in 3" :key="i" class="shop-recommend"> + <image src="" class="shop-recommend-image"></image> + <view class="shop-recommend-title m-t-8"> + <view class="level m-r-15">B级</view> + <view class=""> + {{dto.name || '-'}} + </view> + </view> + <view class="shop-recommend-price m-t-8"> + ¥23.01/扎 + </view> + </view> + </view> + </view> + <view class="line"> + + </view> + <view class="comment-container m-t-12"> + <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;"> + <view>评价</view> + <view class="desc"> + 7条评论 + <uni-icons type="right" size="18" color="#B3B3B3"></uni-icons> + + </view> + </view> + <view v-for="i in 3" :key="i" class="m-t-20 flex user-item"> + <image class="user-icon m-r-10"></image> + <view> + <view class="name">用户名3370</view> + <view class="comment">非常棒,会回购</view> + </view> + <view class="stars"> + + </view> + <view class="date"> + 04-07 08:00 + </view> + </view> + </view> + + </view> +</template> + +<script> + export default { + data() { + return { + dto: { + + } + } + }, + methods: { + openbrand() { + uni.navigateTo({ + url: '/sub_pages/customer/shop/shop?id=' + (this.dto.id || '') + }) + } + } + } +</script> + +<style lang="scss" scoped> + .trade-detail { + background-color: #FFFFFF; + + .info-container { + padding: 46rpx 30rpx; + border-radius: 40rpx 40rpx 0rpx 0rpx; + + .title { + font-weight: 600; + font-size: 36rpx; + color: #000000; + line-height: 50rpx; + + .level { + color: #20613D; + } + } + + .desc { + font-weight: 400; + font-size: 28rpx; + color: #666666; + line-height: 40rpx; + } + + .price { + font-weight: 600; + font-size: 28rpx; + color: #CF0000; + line-height: 40rpx; + + .num { + font-size: 48rpx; + line-height: 66rpx; + } + } + + .icon-kf { + width: 44rpx; + height: 44rpx; + } + + .gwc { + width: 168rpx; + height: 48rpx; + border-radius: 30rpx; + border: 2rpx solid #20613D; + font-size: 24rpx; + color: #20613D; + line-height: 48rpx; + text-align: center; + } + + } + + .line { + min-height: 20rpx; + background: #F7F7F7; + } + + .info-detail { + padding: 18rpx 30rpx; + + .label { + font-weight: 400; + font-size: 28rpx; + color: #666666; + line-height: 40rpx; + min-width: 160rpx; + margin-right: 20rpx; + } + + .value { + font-weight: 400; + font-size: 28rpx; + color: #666666; + line-height: 40rpx; + } + } + + .shop-recommend-title { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } + + + .shop-recommend-container { + padding: 24rpx 30rpx; + + .shop-recommend { + .shop-recommend-image { + width: 214rpx; + height: 214rpx; + background-size: 100% 100%; + border-radius: 8rpx; + } + + .shop-recommend-title { + font-weight: 600; + font-size: 28rpx; + color: #000000; + line-height: 40rpx; + + .level { + color: #20613D; + ; + } + } + } + } + + .comment-container { + padding: 18rpx 30rpx; + + .desc { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } + + .user-item { + .user-icon { + width: 72rpx; + height: 72rpx; + background-size: 100% 100%; + border-radius: 50%; + } + + .name { + font-weight: 600; + font-size: 24rpx; + color: #000000; + line-height: 34rpx; + } + + .comment { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } + + .date { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 72rpx; + } + } + } + + + .top-img-container { + position: relative; + + .top-img { + width: 750rpx; + height: 764rpx; + } + + .icon-container { + position: absolute; + top: 20rpx; + width: 80rpx; + height: 80rpx; + background: rgba(0, 0, 0, 0.42); + + .icon-sc { + width: 54rpx; + height: 54rpx; + margin: 0 auto; + margin-top: 12rpx; + } + + .icon-shop { + width: 54rpx; + height: 54rpx; + margin: 0 auto; + margin-top: 12rpx; + } + + .num { + font-weight: 400; + font-size: 20rpx; + color: #FFFFFF; + line-height: 28rpx; + position: absolute; + top: 6prx; + right: 16rpx; + } + } + + .icon-container:last-child { + left: 120rpx; + } + + .icon-container:first-child { + left: 20rpx; + } + + } + } +</style> \ No newline at end of file diff --git a/sub_pages/customer/trade/list.vue b/sub_pages/customer/trade/list.vue index 66d74ea..edc0e59 100644 --- a/sub_pages/customer/trade/list.vue +++ b/sub_pages/customer/trade/list.vue @@ -51,7 +51,7 @@ </view> </view> </view> - <view class="item flex" v-for="(item,index) of list" :key="index" + <view class="component-shop-item flex" v-for="(item,index) of list" :key="index" @click="toDetail(item)"> <view class="img"> <image class="img img100" @@ -107,7 +107,10 @@ </view> <!-- 判断是否到底了,自动吧 --> - <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> + <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> + + + </view> </template> @@ -229,98 +232,7 @@ } } - .item { - margin-top: 20rpx; - background: #FFFFFF; - border-radius: 8rpx; - padding: 10rpx; - - .info-container { - position: relative; - - .other-info { - margin-top: 6rpx; - font-size: 24rpx; - color: #666666; - line-height: 34rpx; - text-align: left; - } - - .shop-name { - margin-top: 14rpx; - font-size: 24rpx; - color: #666666; - line-height: 34rpx; - } - - .bottom-buttons { - // width: 400rpx; - position: absolute; - bottom: 0rpx; - - left: 0; - right: 0; - - .icons { - margin-left: auto; - margin-right: 0rpx; - margin-top: -10rpx; - - .curnums { - line-height: 60rpx; - margin-left: 12rpx; - margin-right: 12rpx; - } - } - } - - .title { - font-weight: 600; - font-size: 32rpx; - color: #000000; - line-height: 44rpx; - margin-top: 8rpx; - position: relative; - - .price { - position: absolute; - font-weight: 400; - font-size: 28rpx; - color: #CF0000; - line-height: 40rpx; - top: 0; - right: 0; - } - } - - } - - .img { - width: 206rpx; - height: 206rpx; - border-radius: 8rpx; - position: relative; - - .level { - position: absolute; - width: 66rpx; - height: 44rpx; - background: #20613D; - left: 0; - top: 0; - border-top-left-radius: 8rpx; - border-bottom-right-radius: 8rpx; - color: #FFFFFF; - line-height: 44rpx; - font-size: 24rpx; - text-align: center; - } - - } - - - } - + .icon-shop { position: absolute; position: fixed; diff --git a/sub_pages/customer/trade/trade.vue b/sub_pages/customer/trade/trade.vue index 4539785..1964099 100644 --- a/sub_pages/customer/trade/trade.vue +++ b/sub_pages/customer/trade/trade.vue @@ -1,6 +1,6 @@ <template> <view class="container-trade" style="min-height: calc(100vh - 20rpx );"> - <view class="search-container m-t-12 flex" v-if="!(!list||list.length==0)&&true"> + <view class="search-container m-t-12 flex" v-if="!(!list||list.length==0)&&true&&!hidefooter"> <view class="flex1 input"> <u-input placeholder="请输入分类名称" v-model="query.name"> <template slot="suffix"> @@ -23,8 +23,8 @@ </view> <view class="canteen-item-container"> <view class="component-filter-container" style="padding-top: 12rpx;"> - <view class="flex1"> - 销量 + <view class="flex1" @click="openParamPop"> + 筛选 </view> <view class="flex1"> 颜色<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> @@ -69,10 +69,30 @@ - <view style="min-height:200rpx"> + <view style="min-height:200rpx" v-if="!hidefooter"> </view> - <common-footer flg="1"></common-footer> + <common-footer flg="1" v-if="!hidefooter">></common-footer> + <uni-popup ref="popup_param" type="bottom"> + <view class="component-popup_input_all" v-if="currentCategory&¤tCategory.params"> + <view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">商品参数设置</view> + <!-- 输入框--> + <view v-for="(item,i) in currentCategory.params" :key="i" class="m-t-20"> + <view class="title topic-font" style="font-size: 40rpx;font-weight: 600;">{{item.name}}</view> + <view class="m-t-12 flex value-items"> + <view class="value-item" @click="updateValue(item,each)" :class="[item.value===each?'cur':'']" + v-for="(each, j) in item.values" :key="j"> + {{each || '-'}} + </view> + </view> + </view> + <view class="button-space"></view> + <view> + <view class="button-green button-white" @click="closeParamPop">关闭</view> + <view class="button-green" @click="updateParamsAndSearch">查询</view> + </view> + </view> + </uni-popup> </view> </template> @@ -81,6 +101,9 @@ mapState } from 'vuex' export default { + props: { + hidefooter: false, + }, data() { return { list: [], @@ -89,6 +112,7 @@ name: '', categoryId: '', }, + currentCategory: {} } }, @@ -98,6 +122,7 @@ this.list = data || [] if (this.list.length > 0) { this.query.categoryId = this.list[0].id || '' + this.currentCategory = this.list[0] || {} } }).finally(() => { uni.stopPullDownRefresh() @@ -111,10 +136,23 @@ this.list = data || [] if (this.list.length > 0) { this.query.categoryId = this.list[0].id || '' + this.currentCategory = this.list[0] || {} } }) }, - methods: { + methods: { + async updateParamsAndSearch(){ + //todo 设置参数并查询 + await this.refreshList() + this.$refs.popup_param.close() + }, + openParamPop() { + //todo 同时设置查询参数为空吧 + this.$refs.popup_param.open() + }, + closeParamPop() { + this.$refs.popup_param.close() + }, buttonSearchFlow() { //根据名称查询 this.$message.showLoading() @@ -127,8 +165,10 @@ this.list = data || [] if (this.list.length > 0) { this.query.categoryId = this.list[0].id || '' + this.currentCategory = this.list[0] || {} } else { this.query.categoryId = '' + this.currentCategory = {} } }).finally(() => { this.$message.hideLoading() @@ -142,6 +182,7 @@ }, changeType(item) { this.query.categoryId = item.id || '' + this.currentCategory = item }, @@ -193,7 +234,7 @@ margin: 0rpx 30rpx 20rpx 30rpx; } - + .type-list { max-width: 178rpx; diff --git a/sub_pages/supplier/flower-manage/flower-add.vue b/sub_pages/supplier/flower-manage/flower-add.vue index 6b653e7..a0d59fa 100644 --- a/sub_pages/supplier/flower-manage/flower-add.vue +++ b/sub_pages/supplier/flower-manage/flower-add.vue @@ -179,27 +179,24 @@ :columns="columns_levels"></u-picker> - <uni-popup ref="popup_param" type="top"> - <view class="component-popup_input" v-if="dto.params"> + <uni-popup ref="popup_param" type="bottom"> + <view class="component-popup_input_all" v-if="dto.params"> <view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">商品参数设置</view> <!-- 输入框--> - <view v-for="(item,i) in dto.params" :key="i" class="m-b-20"> - <view class="title topic-font" style="font-size: 36rpx;font-weight: 600;">{{item.name}}</view> - <view class="m-t-12"> - <u-radio-group v-model="item.value" placement="row"> - <u-radio - :customStyle="{'margin-bottom': '16rpx','margin-right': '24rpx','font-size':'28rpx'}" - v-for="(each, j) in item.values" :key="j" :label="each" :name="each"> - </u-radio> - </u-radio-group> + <view v-for="(item,i) in dto.params" :key="i" class="m-t-20"> + <view class="title topic-font" style="font-size: 40rpx;font-weight: 600;">{{item.name}}</view> + <view class="m-t-12 flex value-items"> + <view class="value-item" @click="updateValue(item,each)" :class="[item.value===each?'cur':'']" + v-for="(each, j) in item.values" :key="j"> + {{each || '-'}} + </view> </view> </view> - <!-- 提交按钮 --> + <view class="button-space"></view> <view class="button-green" @click="closeParamPop">确定</view> </view> </uni-popup> - <!-- <dying318picker :picker-list="columns_categorys" ref="picker_category" @confirm="confirmPickerCategory"> - </dying318picker> --> + </view> </template> @@ -312,6 +309,12 @@ }, methods: { + updateValue(item, value) { + item.value = value + this.$set(item, 'value', value) + this.$forceUpdate() + console.log('updateValue') + }, async updateSearch(search) { this.columns_categorys_search = search || '' this.columns_categorys_picker = [] -- Gitblit v1.9.3