From c58aff5b2a349c6b1fc8a4a3f474f7f8cc529e09 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期五, 12 七月 2024 14:05:58 +0800
Subject: [PATCH] update 花农端首次上架
---
sub_pages/customer/trade/trade.vue | 351 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 329 insertions(+), 22 deletions(-)
diff --git a/sub_pages/customer/trade/trade.vue b/sub_pages/customer/trade/trade.vue
index 8183fd0..4539785 100644
--- a/sub_pages/customer/trade/trade.vue
+++ b/sub_pages/customer/trade/trade.vue
@@ -1,22 +1,329 @@
-<template>
- <view>
-
- </view>
-</template>
-
-<script>
- export default {
- data() {
- return {
-
- }
- },
- methods: {
-
- }
- }
-</script>
-
-<style>
-
-</style>
+<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="flex1 input">
+ <u-input placeholder="请输入分类名称" v-model="query.name">
+ <template slot="suffix">
+ <uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons>
+ </template>
+ </u-input>
+ </view>
+ </view>
+ <view class="canteen-items" style="min-height: calc(100vh - 160rpx);">
+ <view v-if="(!list||list.length==0)&&true" style="width: 100%;min-height: 200rpx;">
+
+ </view>
+ <no-data v-if="(!list||list.length==0)&&true" style="width: 100%;margin-top: 220rpx;"></no-data>
+ <view class="" style="display: flex;flex-wrap: inherit;" v-else>
+ <view class="type-list">
+ <view v-for="(item,index) of list" @click="changeType(item)"
+ :class="[query.categoryId==item.id?'current':'']" :key="index" class="p10 flex type-item">
+ {{item.name || '-'}}
+ </view>
+ </view>
+ <view class="canteen-item-container">
+ <view class="component-filter-container" style="padding-top: 12rpx;">
+ <view class="flex1">
+ 销量
+ </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>
+ <u-divider></u-divider>
+ <view class="flex">
+ <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"
+ @click.stop="previewImg(item.imageUrl)">
+ </image>
+ </view>
+ <view class="cateen_infos list">
+ <view class="title">{{item.name}}</view>
+ <view class="price">¥29.01-30.01</view>
+
+ <view class="desc">在售14410扎</view>
+ <!-- <view class="icons flex">
+ <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32"
+ @click="mulnum(item)"></uni-icons>
+ <view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{item.shopnum}}</view>
+ <uni-icons type="plus-filled" size="32" @click="addnum(item)"></uni-icons>
+ </view> -->
+ </view>
+ <view style="padding-bottom:100rpx">
+ </view>
+ </view>
+
+ </view>
+ <footer-msg v-if="query.block&&query.schoolArea"
+ :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
+
+ </view>
+ </view>
+
+ </view>
+
+
+
+ <view style="min-height:200rpx">
+ </view>
+ <common-footer flg="1"></common-footer>
+
+ </view>
+</template>
+
+<script>
+ import {
+ mapState
+ } from 'vuex'
+ export default {
+ data() {
+ return {
+ list: [],
+ showpop: false,
+ query: {
+ name: '',
+ categoryId: '',
+ },
+
+ }
+ },
+ onPullDownRefresh() {
+ this.$http.request('get', '/api/customer/flower/category/tree', {}).then(res => {
+ var data = res.data
+ this.list = data || []
+ if (this.list.length > 0) {
+ this.query.categoryId = this.list[0].id || ''
+ }
+ }).finally(() => {
+ uni.stopPullDownRefresh()
+ })
+ },
+ async onLoad() {
+
+ //加载分类
+ this.$http.request('get', '/api/customer/flower/category/tree', {}).then(res => {
+ var data = res.data
+ this.list = data || []
+ if (this.list.length > 0) {
+ this.query.categoryId = this.list[0].id || ''
+ }
+ })
+ },
+ methods: {
+ buttonSearchFlow() {
+ //根据名称查询
+ this.$message.showLoading()
+ this.$http.request('get', '/api/customer/flower/category/tree', {
+ params: {
+ name: this.query.name || ''
+ }
+ }).then(res => {
+ var data = res.data
+ this.list = data || []
+ if (this.list.length > 0) {
+ this.query.categoryId = this.list[0].id || ''
+ } else {
+ this.query.categoryId = ''
+ }
+ }).finally(() => {
+ this.$message.hideLoading()
+ })
+ },
+ toDetailList(item) {
+ //去商品列表页面
+ uni.navigateTo({
+ url: `/sub_pages/customer/trade/list?categoryId=${item.id}`
+ })
+ },
+ changeType(item) {
+ this.query.categoryId = item.id || ''
+ },
+
+
+ async submitGood() {
+ var values = []
+ for (var item of this.list) {
+ if (item.shopnum > 0) {
+ values.push({
+ id: item.id,
+ num: item.shopnum
+ })
+ }
+ }
+ }
+ },
+ computed: {
+ ...mapState({
+ address: state => {
+ return state.defaultaddress || {}
+ },
+ }),
+ listFilter() {
+ if (this.query.categoryId) {
+ var arr = []
+ if (this.list && this.list.length > 0) {
+ for (var item of this.list) {
+ if (item.id === this.query.categoryId || item.id === this.query.categoryId) {
+ // arr.push(item)
+ return item.children || []
+ }
+ }
+ }
+ return arr
+ } else {
+ return []
+ }
+
+ },
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .container-trade {
+ background-color: #FFFFFF;
+ padding-top: 20rpx;
+
+ .search-container {
+ margin: 0rpx 30rpx 20rpx 30rpx;
+ }
+
+
+
+ .type-list {
+ max-width: 178rpx;
+ width: 178rpx;
+ min-width: 178rpx;
+ background: #EEF7F5;
+ border-radius: 8rpx;
+ min-height: calc(100vh - 300rpx);
+ max-height: calc(100vh - 300rpx);
+ overflow-y: scroll;
+ margin-right: 16rpx;
+
+ .type-item {
+ text-align: center;
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #000000;
+ line-height: 88rpx;
+ // padding-left: 30rpx;
+ // padding-right: 30rpx;
+ }
+
+ .type-item.current {
+ font-weight: 600;
+ font-size: 28rpx;
+ color: #04BA97;
+ }
+ }
+
+ .title-before-blue.green {
+ padding-left: 30rpx;
+ padding-bottom: 0rpx;
+ }
+
+ .title-before-blue:before {
+ color: #04BA97;
+ font-weight: 600;
+ min-width: 14rpx;
+ background: #04BA97;
+ border-radius: 8rpx;
+ display: inline-block;
+ }
+
+
+ .canteen-items {
+ // margin-left: 30rpx;
+
+ .canteen-item {
+ margin: 0 auto;
+ width: 164rpx;
+ // width: 690rpx;
+ // max-width: 690rpx;
+ height: 266rpx;
+ background: #FFFFFF;
+ margin-bottom: 44rpx;
+ max-width: 164rpx;
+
+ .cover {
+ width: 164rpx;
+ height: 164rpx;
+ background-size: 100% 100%;
+ border-radius: 8rpx;
+ border: 2rpx solid #f8f8f8;
+ }
+
+ .title {
+ font-weight: 500;
+ font-size: 28rpx;
+ color: #000000;
+ line-height: 40rpx;
+ }
+
+ .desc {
+ margin-top: 8rpx;
+ font-weight: 400;
+ font-size: 24rpx;
+ color: #6E9F66;
+ line-height: 34rpx;
+ height: 34rpx;
+ background-color: rgba(202, 229, 214, 0.57);
+ border-radius: 4rpx;
+ text-align: center;
+
+ }
+
+ .price {
+ font-weight: 400;
+ font-size: 24rpx;
+ color: #CF0000;
+ line-height: 34rpx;
+ text-align: center;
+ }
+
+
+
+
+
+ }
+
+ .canteen-item-container {
+ width: 100%;
+ min-height: 300rpx;
+ max-height: calc(100vh - 200rpx);
+ overflow-y: scroll;
+ }
+
+ .canteen-item:nth-child(3n+1) {
+ margin-left: 0rpx;
+ margin-right: 15rpx;
+ }
+
+ .canteen-item:nth-child(3n+2) {
+ margin-left: 15rpx;
+ margin-right: 15rpx;
+ }
+
+ .canteen-item:nth-child(3n+3) {
+ margin-left: 15rpx;
+ margin-right: 0rpx;
+ }
+ }
+
+ .canteen-footer-shop {
+ position: absolute;
+ position: fixed;
+ left: 30rpx;
+ bottom: 30rpx;
+ }
+
+
+
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3