| | |
| | | page {
|
| | | background-color: #f5f5f5;
|
| | | }
|
| | |
|
| | | @import '@/common/selfvar.scss';
|
| | | // @import '@/common/self.scss';
|
| | |
|
| | |
| | | .icon-arrow-down {
|
| | | width: 24rpx;
|
| | | height: 24rpx;
|
| | | vertical-align: middle;
|
| | | display: inline-block;
|
| | | }
|
| | |
|
| | | .app-tips {
|
| | | }
|
| | | .app-tips {}
|
| | |
|
| | | .app-tips .app-tip {
|
| | | background-color: #F3F3F3;
|
| | |
| | | }
|
| | |
|
| | | .common-select-items {
|
| | | .common-select-item {
|
| | | |
| | | }
|
| | | .common-select-item {}
|
| | | }
|
| | |
|
| | | .uni-noticebar {
|
| | |
| | | .radio.select {
|
| | | background: #04BA97;
|
| | | border: 1rpx solid #04BA97
|
| | | |
| | | }
|
| | |
|
| | |
|
| | |
| | | .info-brand {
|
| | | padding: 20rpx 30rpx;
|
| | | //padding: 10rpx;
|
| | | background: #fff;
|
| | | // background: #fff;
|
| | |
|
| | | .name {
|
| | | margin-bottom: 22rpx;
|
| | |
| | | }
|
| | |
|
| | | .store-logo {
|
| | | width: 96rpx;
|
| | | height: 96rpx;
|
| | | width: 114rpx;
|
| | | height: 114rpx;
|
| | | border-radius: 50%;
|
| | | margin-right: 20rpx;
|
| | | border: 2rpx solid #FFFFFF;
|
| | | background-size: 100% 100%;
|
| | | background-color: #fff;
|
| | | }
|
| | |
|
| | | .store-name {
|
| | | font-weight: 600;
|
| | | font-size: 28rpx;
|
| | | color: #000000;
|
| | | font-size: 36rpx;
|
| | | color: #FFFFFF;
|
| | | line-height: 40rpx;
|
| | | margin-top: 20rpx;
|
| | | }
|
| | | .store-name.t1 {
|
| | | color: #666;
|
| | | }
|
| | |
|
| | | .store-address {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | font-size: 28rpx;
|
| | | color: #FFFFFF;
|
| | | line-height: 34rpx;
|
| | | margin-top: 8rpx;
|
| | | }
|
| | | .store-address.t1 {
|
| | | color: #666;
|
| | | }
|
| | |
|
| | | .store-to {
|
| | |
| | | color: #FFFFFF;
|
| | | line-height: 64rpx;
|
| | | display: flex;
|
| | |
|
| | | .icon-view {
|
| | | margin-top: 4rpx;
|
| | | // margin-top: 8rpx;
|
| | | margin-left: 30rpx;
|
| | | margin-right: 10rpx;
|
| | | }
|
| | |
| | | height: 36rpx;
|
| | |
|
| | | display: inline-block;
|
| | | vertical-align: middle;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | bottom: 8rpx; |
| | | // width: 110rpx; |
| | | height: 8rpx; |
| | | background: #04BA97; |
| | | // background: #04BA97; |
| | | background: #ffffff; |
| | | |
| | | border-radius: 4rpx; |
| | | } |
| | | } |
| | |
| | | <view class="item flex1"> |
| | | <view class="title">{{list1[0]&&list1[0].name||''}}</view> |
| | | <view class="price"> |
| | | {{list1[0]&&list1[0].avePrice||'-'}} |
| | | {{list1[0]&&list1[0].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc" v-if="list1[0]"> |
| | | <view class="m-l-a m-r-a">{{list1[0]&&list1[0].avePriceDifference<0?'-':'+'}}{{list1[0]&&list1[0].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[0]&&list1[0].avePriceDifferenceRate<0?'-':'+'}}{{list1[0]&&list1[0].avePriceDifferenceRate*100||''}}%</view> |
| | | <view class="m-l-a m-r-a">{{list1[0]&&list1[0].avePriceDifference<0?'':'+'}}{{list1[0]&&list1[0].avePriceDifference||'0'}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[0]&&list1[0].avePriceDifferenceRate<0?'':'+'}}{{list1[0]&&list1[0].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | <view class="item flex1"> |
| | | <view class="title">{{list1[1]&&list1[1].name||''}}</view> |
| | | <view class="price"> |
| | | {{list1[1]&&list1[1].avePrice||'-'}} |
| | | {{list1[1]&&list1[1].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc" v-if="list1[1]"> |
| | | <view class="m-l-a m-r-a">{{list1[1]&&list1[1].avePriceDifference<0?'-':'+'}}{{list1[1]&&list1[1].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[1]&&list1[1].avePriceDifferenceRate<0?'-':'+'}}{{list1[1]&&list1[1].avePriceDifferenceRate*100||''}}%</view> |
| | | <view class="m-l-a m-r-a">{{list1[1]&&list1[1].avePriceDifference<0?'':'+'}}{{list1[1]&&list1[1].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[1]&&list1[1].avePriceDifferenceRate<0?'':'+'}}{{list1[1]&&list1[1].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | <view class="item flex1"> |
| | | <view class="title">{{list1[2]&&list1[2].name||''}}</view> |
| | | <view class="price"> |
| | | {{list1[2]&&list1[2].avePrice||'-'}} |
| | | {{list1[2]&&list1[2].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc" v-if="list1[2]"> |
| | | <view class="m-l-a m-r-a">{{list1[2]&&list1[2].avePriceDifference<0?'-':'+'}}{{list1[2]&&list1[2].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[2]&&list1[2].avePriceDifferenceRate<0?'-':'+'}}{{list1[2]&&list1[2].avePriceDifferenceRate*100||''}}%</view> |
| | | <view class="m-l-a m-r-a">{{list1[2]&&list1[2].avePriceDifference<0?'':'+'}}{{list1[2]&&list1[2].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[2]&&list1[2].avePriceDifferenceRate<0?'':'+'}}{{list1[2]&&list1[2].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <view class="item flex1"> |
| | | <view class="title">{{list2[0]&&list2[0].name||''}}</view> |
| | | <view class="price"> |
| | | {{list2[0]&&list2[0].avePrice||'-'}} |
| | | {{list2[0]&&list2[0].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc" v-if="list2[0]"> |
| | | <view class="m-l-a m-r-a">{{list2[0]&&list2[0].avePriceDifference<0?'-':'+'}}{{list2[0]&&list2[0].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[0]&&list2[0].avePriceDifferenceRate<0?'-':'+'}}{{list2[0]&&list2[0].avePriceDifferenceRate*100||''}}%</view> |
| | | <view class="m-l-a m-r-a">{{list2[0]&&list2[0].avePriceDifference<0?'':'+'}}{{list2[0]&&list2[0].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[0]&&list2[0].avePriceDifferenceRate<0?'':'+'}}{{list2[0]&&list2[0].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | <view class="item flex1"> |
| | | <view class="title">{{list2[1]&&list2[1].name||''}}</view> |
| | | <view class="price"> |
| | | {{list2[1]&&list2[1].avePrice||'-'}} |
| | | {{list2[1]&&list2[1].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc" v-if="list2[1]"> |
| | | <view class="m-l-a m-r-a">{{list2[1]&&list2[1].avePriceDifference<0?'-':'+'}}{{list2[1]&&list2[1].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[1]&&list2[1].avePriceDifferenceRate<0?'-':'+'}}{{list2[1]&&list2[1].avePriceDifferenceRate*100||''}}%</view> |
| | | <view class="m-l-a m-r-a">{{list2[1]&&list2[1].avePriceDifference<0?'':'+'}}{{list2[1]&&list2[1].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[1]&&list2[1].avePriceDifferenceRate<0?'':'+'}}{{list2[1]&&list2[1].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | <view class="item flex1"> |
| | | <view class="title">{{list2[2]&&list2[2].name||''}}</view> |
| | | <view class="price"> |
| | | {{list2[2]&&list2[2].avePrice||'-'}} |
| | | {{list2[2]&&list2[2].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc" v-if="list2[2]"> |
| | | <view class="m-l-a m-r-a">{{list2[2]&&list2[2].avePriceDifference<0?'-':'+'}}{{list2[2]&&list2[2].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[2]&&list2[2].avePriceDifferenceRate<0?'-':'+'}}{{list2[2]&&list2[2].avePriceDifferenceRate*100||''}}%</view> |
| | | <view class="m-l-a m-r-a">{{list2[2]&&list2[2].avePriceDifference<0?'':'+'}}{{list2[2]&&list2[2].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[2]&&list2[2].avePriceDifferenceRate<0?'':'+'}}{{list2[2]&&list2[2].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | :src="item.cover"> |
| | | </image> |
| | | <view class="level"> |
| | | {{ ite.levelStr}} |
| | | {{ item.levelStr}} |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | },
|
| | | toHome(){
|
| | | uni.redirectTo({
|
| | | url: '/pages//pages/home/home'
|
| | | url: '/pages/home/home'
|
| | | })
|
| | | },
|
| | | toReg() {
|
| | |
| | | .order-item { |
| | | margin-bottom: 20rpx; |
| | | padding: 28rpx; |
| | | background-color: #fff; |
| | | border-radius: 8rpx; |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | |
| | | <!-- v-if="currentInfo&&(currentInfo.id)" -->
|
| | | <view class="flex user-info">
|
| | | <!-- 头像 -->
|
| | | <image class="user-icon" v-if="!currentInfo.picture"
|
| | |
|
| | | <image class="user-icon" v-if="currentInfo.picture
|
| | | ||currentInfo.customerDTO&¤tInfo.customerDTO.cover
|
| | | ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover
|
| | | " :src="currentInfo.picture
|
| | | ||currentInfo.customerDTO&¤tInfo.customerDTO.cover
|
| | | ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover" mode="aspectFit"></image>
|
| | | <image class="user-icon" v-else
|
| | | src='https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png'
|
| | | mode="aspectFit"></image>
|
| | | <image class="user-icon" v-if="currentInfo.picture" :src="currentInfo.picture" mode="aspectFit"></image>
|
| | |
|
| | |
|
| | | <view class="name" v-if="currentInfo.id">
|
| | | <view class="t1">
|
| | | {{
|
| | | (!!currentInfo.supplierDTO ? (currentInfo.supplierDTO.name) : "") || currentInfo.nickName || currentInfo.loginName || '-'
|
| | | }}<span
|
| | | v-if="currentInfo.supplierDTO&¤tInfo.supplierDTO.status!=='P'">
|
| | | (!!currentInfo.supplierDTO ? (currentInfo.supplierDTO.name) : "") || (!!currentInfo.customerDTO ? (currentInfo.customerDTO.name) : "") || currentInfo.nickName || currentInfo.loginName || '-'
|
| | | }}<span v-if="currentInfo.supplierDTO&¤tInfo.supplierDTO.status!=='P'">
|
| | | ({{ currentInfo.supplierDTO ? currentInfo.supplierDTO.statusStr : '' }})</span>
|
| | | </view>
|
| | | <view class="t2">{{ currentInfo.tel || '暂无电话' }}</view>
|
| | |
| | | <view class="title flex">
|
| | | <view class="flex1">我的订单</view>
|
| | | <view class="m-r-a m-r-0 more" @click="goto('/pages/order/order',true)">全部订单
|
| | | <uni-icons class="" type="right"
|
| | | size="12"></uni-icons>
|
| | | <uni-icons class="" type="right" size="12"></uni-icons>
|
| | | </view>
|
| | | </view>
|
| | | <view class="flex order-icons-container">
|
| | |
| | | <uni-icons type="right"></uni-icons>
|
| | | </view>
|
| | | </view>
|
| | | <view class="user-util m-t-12 "
|
| | | v-if="selftype==='supplier'||selftype==='customer' || !selftype">
|
| | | <view class="user-util m-t-12 " v-if="selftype==='supplier'||selftype==='customer' || !selftype">
|
| | | <view class="title">我的客服</view>
|
| | | <view class="flex">
|
| | | <image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image>
|
| | |
| | | </view>
|
| | | <view class="userName">
|
| | | <text style="padding-bottom: 20rpx;">修改昵称:</text>
|
| | | <input :clearable="false" type="nickname" class="weui-input" :value="regUserName" @blur="onBindblur"
|
| | | placeholder="请输入昵称" @input="onBindinput"/>
|
| | | <input :clearable="false" type="nickname" class="weui-input" :value="regUserName"
|
| | | @blur="onBindblur" placeholder="请输入昵称" @input="onBindinput" />
|
| | | </view>
|
| | |
|
| | | <view style="width: 100%;height: 1px; background: #EEE;">
|
| | |
| | | }).then(res => { |
| | | var data = res.data |
| | | this.level_columns = [data || []] |
| | | this.columns_levels[0].unshift({ |
| | | this.level_columns[0].unshift({ |
| | | label: '全部', |
| | | value: '' |
| | | }) |
| | |
| | | <view class="follow-page"> |
| | | <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> |
| | | |
| | | <view class="follow-item m-b-40" v-for="(item,index) of list" :key="index"> |
| | | <image class="avatar img100" :src="item.avatar" mode="aspectFill"></image> |
| | | <view class="follow-item m-b-40 flex" v-for="(item,index) of list" :key="index"> |
| | | <image class="avatar img100" :src="item.cover" mode="aspectFill"></image> |
| | | <view class="info"> |
| | | <view class="name">{{ item.supplierName }}</view> |
| | | <view class="time">{{ item.createTime }}</view> |
| | |
| | | }, |
| | | async clearFollow(item) { |
| | | this.$message.showLoading() |
| | | const {code} = await this.$http.request('get', `/api/follow/delete`, { |
| | | const { |
| | | code |
| | | } = await this.$http.request('get', `/api/follow/delete`, { |
| | | params: { |
| | | supplierId: item.id |
| | | } |
| | |
| | | <style lang="scss" scoped> |
| | | .follow-page { |
| | | .follow-item { |
| | | padding: 30rpx; |
| | | background-color: #FFFFFF; |
| | | margin-bottom: 20rpx; |
| | | |
| | | .avatar { |
| | | width: 114rpx; |
| | | height: 114rpx; |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | border: 2rpx solid #FFFFFF; |
| | | border-radius: 50%; |
| | | margin-right: 10rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .info { |
| | | .name { |
| | | font-weight: 600; |
| | | font-size: 36rpx; |
| | | font-size: 32rpx; |
| | | color: #000000; |
| | | line-height: 50rpx; |
| | | line-height: 40rpx; |
| | | margin-top: 6rpx; |
| | | } |
| | | |
| | | .time { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | line-height: 40rpx; |
| | | } |
| | |
| | | margin-left: 10rpx; |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | line-height: 60rpx; |
| | | line-height: 30rpx; |
| | | border-radius: 34rpx; |
| | | margin-top: 10rpx; |
| | | |
| | | |
| | | // min-width: 128rpx; |
| | | height: 30rpx; |
| | | |
| | | |
| | | } |
| | | |
| | | .button-1 { |
| | | color: #999999; |
| | | border-radius: 34rpx; |
| | | border: 2rpx solid #999999; |
| | | |
| | | } |
| | | |
| | | .button-2 { |
| | | border-radius: 34rpx; |
| | | border: 2rpx solid #20613D; |
| | | color: #20613D; |
| | | } |
| | |
| | | <template>
|
| | | <view class="brand-detail">
|
| | | <view class="brand-detail" style="background: #20613D;">
|
| | |
|
| | | <view class="brand-top-info">
|
| | | <view class="search-container m-t-12 flex">
|
| | | <view class="search-container flex" style="padding-left: 20rpx;padding-right: 20rpx;padding-top: 20rpx">
|
| | | <view class="flex1 input">
|
| | | <u-input placeholder="请输入花名" v-model="search_flow">
|
| | | <template slot="suffix">
|
| | |
| | | </view>
|
| | | <view class="info-brand m-t-12" v-if="id">
|
| | | <view class="flex">
|
| | | <image class="store-logo"></image>
|
| | | <image class="store-logo" :src="dto.cover"></image>
|
| | | <view>
|
| | | <view class="store-name">花仙子</view>
|
| | | <view class="store-address">云南省-昆明市-官渡区</view>
|
| | | <view class="store-name">{{dto.name}}</view>
|
| | | <view class="store-address">
|
| | | {{ ((dto.province||'')+ (dto.city&&'-'||'') + (dto.city||'')+ (dto.region&&'-'||'')+(dto.region||'')) ||dto.address || '暂无详细地址'}}
|
| | | </view>
|
| | | </view>
|
| | | <view class="store-sc m-l-a m-r-0" @click="updateGz(!dto.followed)">
|
| | | <view class="icon-view">
|
| | | <image src="../../../static/icon-gz-1.png" class="icon" v-if="dto.followed"></image>
|
| | | <image src="../../../static/icon-gz-0.png" class="icon" v-if="!dto.followed"></image>
|
| | | </view>
|
| | | <view>{{dto.followed?'取消':'关注'}}</view>
|
| | | </view>
|
| | | <!-- <view class="store-sc m-l-a m-r-0" @click="updateGz(!dto.followed)">
|
| | | <image src="../../../static/icon-gz-1.png" class="icon" v-if="dto.followed"
|
| | | ></image>
|
| | | <image src="../../../static/icon-gz-0.png" class="icon" v-if="!dto.followed"
|
| | | ></image>
|
| | | </view>
|
| | | <view>关注</view>
|
| | | </view>
|
| | | 关注
|
| | | </view> -->
|
| | | </view>
|
| | | </view>
|
| | | <view class="tj-info m-t-12">
|
| | |
| | | <view class="label">关注</view>
|
| | | </view>
|
| | | </view>
|
| | | <top-tabs class="m-t-12" :tabs="tabs" :flg="flg" @change="changeTab">
|
| | | <view class="p10" style="padding-left: 20rpx;padding-right: 20rpx;">
|
| | | <top-tabs :tabs="tabs" :flg="flg" @change="changeTab">
|
| | |
|
| | | </top-tabs>
|
| | | </view>
|
| | | </view>
|
| | | <view class="brand-info">
|
| | | <view v-if="flg==='0'" class="brand-info-0">
|
| | |
| | | <view class="title">
|
| | | 基础信息
|
| | | </view>
|
| | | <view class="form-input">
|
| | | <view class="form-input flex">
|
| | | <view class="label">经营模式</view>
|
| | | <view class="value">供应商</view>
|
| | | </view>
|
| | | <view class="form-input">
|
| | | <view class="form-input flex">
|
| | | <view class="label ">商家详细</view>
|
| | | <view class="value">{{dto.address || '暂无'}}</view>
|
| | | </view>
|
| | | <view class="form-input flex">
|
| | | <view class="label ">商家介绍</view>
|
| | | <view class="value">{{dto.description || '-'}}</view>
|
| | | </view>
|
| | | <view class="form-input flex">
|
| | | <view class="label">身份认证</view>
|
| | | <view class="value">个人身份认证</view>
|
| | | </view>
|
| | |
| | | //update 关注
|
| | | async updateGz(type) {
|
| | | this.$message.showLoading()
|
| | | const {code} = await this.$http.request(type ? 'post' : 'get', `/api/follow/${type ? 'add' : 'delete'}`, {
|
| | | const {
|
| | | code
|
| | | } = await this.$http.request(type ? 'post' : 'get', `/api/follow/${type ? 'add' : 'delete'}`, {
|
| | | data: {
|
| | | supplierId: this.dto.supplierId || this.dto.id
|
| | | },
|
| | |
| | | supplierId: this.dto.supplierId || this.dto.id
|
| | | }
|
| | | })
|
| | | this.$message.hideLoading()
|
| | | if (code === 0) {
|
| | | this.dto.followed = !this.dto.followed
|
| | | await this.$store.dispatch('sign_add', 'follow')
|
| | | this.$forceUpdate()
|
| | | }
|
| | | this.$message.hideLoading()
|
| | |
|
| | |
|
| | | },
|
| | | changeTab(flg) {
|
| | | this.flg = flg
|
| | | console.log('changeTab', flg)
|
| | | this.flg = ''+flg
|
| | | //如果没有加载数据,需要加载一下
|
| | |
|
| | | },
|
| | |
| | | return
|
| | | }
|
| | | this.$message.showLoading()
|
| | | const {code} = await http.request('post', '/api/customer/flower/cart/change-num', {
|
| | | const {
|
| | | code
|
| | | } = await http.request('post', '/api/customer/flower/cart/change-num', {
|
| | | data: {
|
| | | id: item.id,
|
| | | num: addnum
|
| | | }
|
| | | }
|
| | | )
|
| | | })
|
| | | this.$message.hideLoading()
|
| | | if (code === 0) {
|
| | | item.shopnum += addnum
|
| | |
| | | .brand-detail {
|
| | | .brand-info {
|
| | | background: #FFFFFF;
|
| | | border-radius: 40rpx 40rpx 0rpx 0rpx;
|
| | | // border-radius: 40rpx 40rpx 0rpx 0rpx;
|
| | | border-top-left-radius: 40rpx;
|
| | | border-top-right-radius: 40rpx;
|
| | | overflow: hidden;
|
| | | overflow-y: scroll;
|
| | | padding: 40rpx 32rpx;
|
| | | height: calc(100vh - 650rpx);
|
| | | padding-top: 0rpx;
|
| | |
|
| | | .brand-info-0 {
|
| | | .top-title {
|
| | | height: 80rpx;
|
| | | height: 60rpx;
|
| | | background: #E4ECE8;
|
| | | border-radius: 4rpx;
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #779787;
|
| | | margin-top: 10rpx;
|
| | | line-height: 80rpx;
|
| | | line-height: 60rpx;
|
| | | padding-left: 20rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .brand-info-3 {
|
| | | padding: 40rpx 30rpx;
|
| | | .title {
|
| | | font-weight: 600;
|
| | | font-size: 32rpx;
|
| | |
| | | margin-bottom: 20rpx;
|
| | | }
|
| | |
|
| | | .form-item {
|
| | | .form-input {
|
| | | display: flex;
|
| | | border-bottom: 2rpx solid #EEEEEE;
|
| | |
|
| | | .label {
|
| | | font-weight: 400;
|
| | | font-weight: 600;
|
| | | font-size: 28rpx;
|
| | | color: #000000;
|
| | | line-height: 40rpx;
|
| | |
| | | color: #666666;
|
| | | line-height: 40rpx;
|
| | | margin-left: auto;
|
| | | margin-right: 0;
|
| | | |
| | | text-align: right;
|
| | |
|
| | | .check {
|
| | |
| | |
|
| | | .brand-top-info {
|
| | | background-image: url('https://hmy-flower.oss-cn-shanghai.aliyuncs.com/37/37dc02b58bd44af79e45031af2bb6c0b%E4%BD%8D%E5%9B%BE@2x.png');
|
| | | background-size: 100% 100%;
|
| | |
|
| | | .tj-info {
|
| | | display: flex;
|
| | |
| | | font-size: 48rpx;
|
| | | color: #FFFFFF;
|
| | | line-height: 66rpx;
|
| | |
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | }, |
| | | methods: { |
| | | async loadTransportList() { |
| | | let that = this |
| | | { |
| | | let that = this; |
| | | console.log('address', that.address, that.cacheAddressId) |
| | | if (that.address && that.address.id && that.cacheAddressId !== that.address.id) { |
| | | that.$message.showLoading() |
| | | const {code, data} = await that.$http.request('post', '/api/customer/flower/order/confirm/transports', { |
| | | const { |
| | | code, |
| | | data |
| | | } = await that.$http.request('post', '/api/customer/flower/order/confirm/transports', { |
| | | data: { |
| | | addressId: that.address.id, |
| | | weight: that.dto.totalWeight || 0 |
| | |
| | | that.transportList = data || [] |
| | | } |
| | | } |
| | | } |
| | | |
| | | }, |
| | | async submitOrder() { |
| | | console.log('submitOrder', this.dto) |
| | |
| | | console.log(res) |
| | | if (res.code) { |
| | | tmp.$message.showLoading() |
| | | const {code, data} = await tmp.$http.request('post', '/api/customer/flower/order/commit', { |
| | | const { |
| | | code, |
| | | data |
| | | } = await tmp.$http.request('post', '/api/customer/flower/order/commit', { |
| | | data: { |
| | | ...tmp.dto, |
| | | wxcode: res.code |
| | |
| | | if (data && data['_testOrderId']) { |
| | | //回调 |
| | | tmp.$message.showLoading() |
| | | const res2 = await tmp.$http.request('get', '/api/customer/flower/order/callback/tmp', { |
| | | const res2 = await tmp.$http.request('get', |
| | | '/api/customer/flower/order/callback/tmp', { |
| | | params: { |
| | | id: res2.data['_testOrderId'] |
| | | } |
| | |
| | | <view class="item-each m-t-12 flex"> |
| | | <image class="img img100 m-r-6" :src="item.url||item.cover"></image> |
| | | <view> |
| | | <view class="title"><span class="m-r-5" style="display: inline-block;">{{item.categoryStr||''}}</span><span v-if="item.levelStr" class="m-r-5" style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ item.name || '-' }}</view> |
| | | <view class="title"><span class="m-r-5" |
| | | style="display: inline-block;">{{item.categoryStr||''}}</span><span |
| | | v-if="item.levelStr" class="m-r-5" |
| | | style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ item.name || '-' }} |
| | | </view> |
| | | <view class="price"> |
| | | {{ item.price || 0 }}*{{ item.num }}扎 |
| | | </view> |
| | |
| | | <view class="br-4 transform-container m-t-12 p10"> |
| | | <view class="title"> |
| | | <view>运输方式:</view> |
| | | <view class="flex transform-list"> |
| | | <view v-for="(transform,index) of transportList" :class="[transform.id===dto.transportId?'cur':'']" |
| | | :key="index" class="transform-item" @click="()=>{ |
| | | <view class="flex transform-list flex-wrap-normal"> |
| | | <view v-for="(transform,index) of transportList" |
| | | :class="[transform.id===dto.transportId?'cur':'']" :key="index" class="transform-item" |
| | | @click="()=>{ |
| | | dto.transportId = transform.id; |
| | | current_transport = transform |
| | | }"> |
| | |
| | | <view class="desc flex"> |
| | | <view>商品金额:</view> |
| | | <view class="m-l-a m-r-0 text-right"> |
| | | {{ (dto.totalAmount || 0) - (dto.packing) || 0 }} |
| | | {{ (dto.totalAmount || 0) || 0 }} |
| | | </view> |
| | | </view> |
| | | <view class="desc flex"> |
| | |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view style="min-height:200rpx"> |
| | | </view> |
| | | <view class="bottom-price flex"> |
| | | <view class="m-t-12 m-l-0 m-r-a"> |
| | | 合计 <span class="t-red">¥ {{ (dto.totalAmount || 0) + (current_transport.fee || 0) || 0 }} </span>元 |
| | | 合计 <span class="t-red">¥ |
| | | {{ (dto.totalAmount || 0) + (dto.packing || 0) + (current_transport.fee || 0) || 0 }} </span>元 |
| | | </view> |
| | | <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx" @click="submitOrder"> |
| | | 提交订单 |
| | |
| | | border-radius: 8rpx; |
| | | //min-height: 112rpx; |
| | | border: 2rpx solid rgba(225, 240, 231, 0.38); |
| | | padding: 14rpx; |
| | | padding: 10rpx; |
| | | text-align: center; |
| | | //margin: 0 auto; |
| | | margin-left: 20rpx; |
| | | margin-left: 10rpx; |
| | | margin-top: 10rpx; |
| | | margin-right: auto; |
| | | max-width: 32%; |
| | | min-width: 120rpx; |
| | | width: 130rpx; |
| | | |
| | | .title { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | font-size: 24rpx; |
| | | color: #000000; |
| | | line-height: 40rpx; |
| | | word-break: break-word; |
| | | } |
| | | |
| | | .price { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | font-size: 30rpx; |
| | | color: #20613D; |
| | | //line-height: 44rpx; |
| | | } |
| | |
| | | <view v-for="(dto,j) of item.flowerList" :key="j"> |
| | | <u-divider v-if="j>0"></u-divider> |
| | | <u-swipe-action> |
| | | <u-swipe-action-item |
| | | :options="options1" |
| | | @click="(e)=>{clickSwipeButton(dto)}" |
| | | > |
| | | <u-swipe-action-item :options="options1" @click="(e)=>{clickSwipeButton(dto)}"> |
| | | <view class="item-each flex"> |
| | | <radio :checked="ids.indexOf(dto.id)>=0" @click="changeItem(dto,'flower')"></radio> |
| | | <image class="img img100 m-r-6" :src="dto.url||dto.cover"></image> |
| | | <view class="flex1"> |
| | | <view class="title"><span class="m-r-5" style="display: inline-block;">{{item.categoryStr||''}}</span><span v-if="item.levelStr" class="m-r-5" style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ dto.name || '-' }}</view> |
| | | <view class="title"><span class="m-r-5" |
| | | style="display: inline-block;">{{item.categoryStr||''}}</span><span |
| | | v-if="item.levelStr" class="m-r-5" |
| | | style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ dto.name || '-' }} |
| | | </view> |
| | | <view class="price"> |
| | | {{ dto.price || '-' }}元/扎 |
| | | </view> |
| | |
| | | return |
| | | } |
| | | this.$message.showLoading() |
| | | const {code, data} = await http.request('post', '/api/customer/flower/order/confirm/info', { |
| | | const { |
| | | code, |
| | | data |
| | | } = await http.request('post', '/api/customer/flower/order/confirm/info', { |
| | | data: { |
| | | flowers: arr, |
| | | } |
| | | } |
| | | ) |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | this.$storage.setItem('_cache_shopping_dto',JSON.stringify(data)) |
| | |
| | | //删除商品,重新加载数据? |
| | | |
| | | this.$message.showLoading() |
| | | const {code} = await http.request('get', '/api/customer/flower/cart/delete', { |
| | | const { |
| | | code |
| | | } = await http.request('get', '/api/customer/flower/cart/delete', { |
| | | params: { |
| | | id: item.id, |
| | | } |
| | | } |
| | | ) |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | if (this.ids.indexOf(item.id) >= 0) { |
| | |
| | | return |
| | | } |
| | | this.$message.showLoading() |
| | | const {code} = await http.request('post', '/api/customer/flower/cart/change-num', { |
| | | const { |
| | | code |
| | | } = await http.request('post', '/api/customer/flower/cart/change-num', { |
| | | data: { |
| | | id: dto.id, |
| | | num: addnum |
| | | } |
| | | } |
| | | ) |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | dto.num += addnum |
| | | } |
| | | }, |
| | | async init() { |
| | | if (!this.currentInfo.id) { |
| | | this.$message.showToast('请先登录') |
| | | return |
| | | } |
| | | if (!this.currentInfo.customerDTO) { |
| | | this.$message.showToast('请先前往个人中心补充个人信息') |
| | | return |
| | | } |
| | | this.$message.showLoading() |
| | | await this.$store.dispatch('sign_clear', 'shopping'); |
| | | const {code, data} = await this.$http.request('get', '/api/customer/flower/cart/list', {}) |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('get', '/api/customer/flower/cart/list', {}) |
| | | this.$message.hideLoading() |
| | | this.list = [] |
| | | if (code === 0) { |
| | |
| | | padding-left: 26rpx; |
| | | |
| | | .icon-clock { |
| | | margin-top: 9rpx; |
| | | margin-top: 12rpx; |
| | | } |
| | | } |
| | | } |
| | |
| | | <view class="top-img-container">
|
| | | <image :src="dto.cover" class="top-img" mode="aspectFill"></image>
|
| | | <view class="icon-container">
|
| | | <image src="../../../static/common/icon-sc.png" class="icon-sc"></image>
|
| | | <image src="../../../static/common/icon-sc.png" @click="collectItem(dto)" class="icon-sc"></image>
|
| | | <!-- <view class="num">12</view>-->
|
| | | </view>
|
| | | <view class="icon-container">
|
| | |
| | | <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 m-t-12">
|
| | | <image class="store-logo"></image>
|
| | | <image class="store-logo" :src="dto.supplierCover"></image>
|
| | | <view>
|
| | | <view class="store-name">{{dto.supplierName||'-'}}</view>
|
| | | <view class="store-address">{{dto.supplierStation||'-'}}</view>
|
| | | <view class="store-name t1">{{dto.supplierName||'-'}}</view>
|
| | | <view class="store-address t1">{{dto.supplierStation||'-'}}</view>
|
| | | </view>
|
| | | <view class="store-to m-l-a m-r-0">进入店铺</view>
|
| | | </view>
|
| | |
| | | }
|
| | | },
|
| | | methods: {
|
| | | async collectItem(dto){
|
| | | await this.$message.confirm('是否添加到收藏')
|
| | | this.$message.showLoading()
|
| | | const {
|
| | | code,
|
| | | data
|
| | | } = await this.$http.request('post', '/api/collect/add', {
|
| | | data: {
|
| | | flowerId: dto.id
|
| | | }
|
| | | })
|
| | | if (code === 0) {
|
| | | this.$message.showToast('收藏成功')
|
| | | }
|
| | | |
| | | this.$message.hideLoading()
|
| | | },
|
| | | async submitShopping(dto) {
|
| | | //提交到购物车中
|
| | | this.$message.showLoading()
|
| | |
| | | font-size: 28rpx;
|
| | | color: #CF0000;
|
| | | line-height: 40rpx;
|
| | | margin-top: -10rpx;
|
| | |
|
| | | .num {
|
| | | font-size: 48rpx;
|
| | |
| | | position: absolute;
|
| | | top: 20rpx;
|
| | | width: 80rpx;
|
| | | left: 40rpx;
|
| | | height: 80rpx;
|
| | | background: rgba(0, 0, 0, 0);
|
| | |
|
| | |
| | | }
|
| | |
|
| | | .icon-container:last-child {
|
| | | left: 140rpx;
|
| | | left: 100rpx;
|
| | | }
|
| | |
|
| | | .icon-container:first-child {
|
| | | left: 40rpx;
|
| | | }
|
| | | // .icon-container:first-child {
|
| | | // left: 40rpx;
|
| | | // }
|
| | |
|
| | | }
|
| | | }
|
| | |
| | | <view class="category-detail flex" v-if="query.category">
|
| | | <view class="flex1 info">
|
| | | <view class="title flex">
|
| | | <view>{{categoryInfo.name||'-'}}</view>
|
| | | <view>
|
| | | {{categoryInfo.name||'-'}}
|
| | | <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image>
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | <view class="desc">
|
| | | 规格:{{categoryInfo.unit}}
|
| | | 规格:{{categoryInfo.unit || '暂无'}}
|
| | | </view>
|
| | | <view class="desc">
|
| | | 颜色:{{categoryInfo.color}}
|
| | | 颜色:{{categoryInfo.color || '暂无'}}
|
| | | </view>
|
| | | <!-- <view class="desc">
|
| | | 包袋:棉袋
|
| | |
| | | </view>
|
| | | <view class="info-price">
|
| | | <view class="title">当日均价</view>
|
| | | <view class="price">19.66</view>
|
| | | <view class="price">{{categoryInfo.avePrice||'暂无'}}</view>
|
| | | <view class="flex desc">
|
| | | <view class="m-l-a m-r-5">+0.76</view>
|
| | | <view class="m-r-a m-l-5">+4.02%</view>
|
| | | <view class="m-l-a m-r-5">{{categoryInfo.avePriceDifference&&categoryInfo.avePriceDifference>=0?'+':''}}{{categoryInfo.avePriceDifference||0}}</view>
|
| | | <view class="m-r-a m-l-5">{{categoryInfo.avePriceDifferenceRate&&categoryInfo.avePriceDifferenceRate>=0?'+':''}}{{categoryInfo.avePriceDifferenceRate||0}}%</view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="" style="min-height: calc(100vh - 260rpx);">
|
| | | <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data>
|
| | | <view v-else>
|
| | | <view>
|
| | | <!-- 查询条件 -->
|
| | | <view class="component-filter-container">
|
| | | <view class="flex1" @click.stop="order_show=true">
|
| | | {{ this.query.columnStr || '排序' }}
|
| | | {{ query.columnStr || '排序' }}
|
| | | <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
|
| | | </view>
|
| | | <view class="flex1" @click.stop="level_show=true">
|
| | | {{ this.query.levelStr || '级别' }}
|
| | | {{ query.levelStr || '级别' }}
|
| | | <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
|
| | | </view>
|
| | |
|
| | |
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data>
|
| | |
|
| | | <view class="component-shop-item flex" v-for="(item,index) of list" :key="index">
|
| | | <view class="img" @click.stop="toDetail(item)">
|
| | | <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">
|
| | | :src="item.cover">
|
| | | </image>
|
| | | <view class="level">
|
| | | {{levelStr||''}}
|
| | | {{item.levelStr||''}}
|
| | | </view>
|
| | | </view>
|
| | |
|
| | |
| | | </view>
|
| | | <view class="other-info flex">
|
| | | <view class="m-r-15">
|
| | | 已售:{{item.sales}}
|
| | | 已售:{{item.sales||0}}
|
| | | </view>
|
| | | <view class="m-r-15">
|
| | | 剩余:{{item.stock}}
|
| | | 剩余:{{item.stock||0}}
|
| | | </view>
|
| | | <view class="m-r-15">
|
| | | {{item.unit}}
|
| | |
| | | }).then(res => {
|
| | | var data = res.data
|
| | | this.level_columns = [data || []]
|
| | | this.columns_levels[0].unshift({
|
| | | this.level_columns[0].unshift({
|
| | | label: '全部',
|
| | | value: ''
|
| | | })
|
| | |
| | | },
|
| | | select_level(e) {
|
| | | this.level_show = false
|
| | | console.log('select_level',e)
|
| | | this.query.levelStr = e.value[0].label
|
| | | this.query.level = e.value[0].value
|
| | | this.refreshList('post')
|
| | |
| | | font-weight: 600;
|
| | | font-size: 36rpx;
|
| | | color: #000000;
|
| | | line-height: 50rpx;
|
| | | line-height: 44rpx;
|
| | | }
|
| | |
|
| | | .icon-kf {
|
| | |
| | | <view v-for="(item,index) of listFilter" :key="item.id" class="canteen-item list"
|
| | | @click.stop="toDetailList(item)">
|
| | | <view class="m-r-10">
|
| | | <image :src="item.imageUrl" mode="scaleToFill" class="cover"
|
| | | <image :src="item.imageUrl" mode="scaleToFill" class="cover" :lazy-load="true"
|
| | | @click.stop="previewImg(item.imageUrl)">
|
| | | </image>
|
| | | </view>
|