From 1f99af550ca02ebaf2cecc6c7bb0e2ac31c90b5e Mon Sep 17 00:00:00 2001 From: weipengfei <2187978347@qq.com> Date: Mon, 13 Nov 2023 18:42:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/shortPopup.vue | 412 +++++++++++++++++++---- pages/columnGoods/goods_search/index.vue | 19 +- pages/nongKe/cloud_entrepot/indexb.vue | 322 ++++++++++++------ pages/nongKe/supply_chain/supplierB.vue | 225 ++++++++----- static/images/icon/all.png | Bin 0 -> 391 bytes static/images/icon/close.png | Bin 0 -> 2309 bytes static/images/icon/short.png | Bin 0 -> 1077 bytes static/images/location.png | Bin 0 -> 682 bytes 8 files changed, 711 insertions(+), 267 deletions(-) create mode 100644 static/images/icon/all.png create mode 100644 static/images/icon/close.png create mode 100644 static/images/icon/short.png create mode 100644 static/images/location.png diff --git a/components/shortPopup.vue b/components/shortPopup.vue index 3ce2623..1bdc649 100644 --- a/components/shortPopup.vue +++ b/components/shortPopup.vue @@ -1,38 +1,57 @@ diff --git a/pages/nongKe/cloud_entrepot/indexb.vue b/pages/nongKe/cloud_entrepot/indexb.vue index 46f403c..84d297a 100644 --- a/pages/nongKe/cloud_entrepot/indexb.vue +++ b/pages/nongKe/cloud_entrepot/indexb.vue @@ -4,23 +4,23 @@ - - - + - - - 供销综合云市场 + + + + 供销综合云市场 + + + 供销综合云商品 + - - 供销综合云商品 - - {{street||'定位中'}} - - + + - @@ -62,6 +62,11 @@ + + + + + @@ -69,15 +74,20 @@ - {{item.cate_name}} + {{item.cate_name}} - 综合 + 综合 - 销量 - 价格 + 销量 + + 价格 + + + + @@ -97,7 +107,7 @@ {{item.product.store_info}} - + {{ item.product.price.split('.')[0] }}.{{item.product.price.split('.')[1]}} @@ -148,7 +158,22 @@ @cancel="showPicker = false" @change="changeHandler" keyName="name"> - + + + 请选择商品分类 + + + + {{item.cate_name}} + + + + + + + @@ -201,6 +226,7 @@ import Cache from '@/utils/cache'; import shortPopup from "@/components/shortPopup.vue" + import { Toast } from '../../../libs/uniApi'; const app = getApp(); export default { components: { @@ -238,6 +264,7 @@ street: "", showPicker: false, status: "loadmore", + price_order: 'price_asc', //价格排序方式(升降), price_asc, price_desc // 下拉菜单 downMenu: [{ title: '默认', @@ -260,15 +287,13 @@ order: 'location' } ], - // 是否第一个 - firstKey: 0, // 商铺列表 storeList: [], storeParam: { keyword: '', page: 1, limit: 10, - order: 'location', + order: '', category_id: '', type_id: '', street_id: '', @@ -276,8 +301,8 @@ }, storeKey: 0, storeScroll: true, - changeCategory: '', // 当前选中一级分类 - category_tow_id: '', //当前选中二级分类id + merchant: '', // 当前选中一级分类 + merchantTow: '', //当前选中二级分类 mer_id: '', sortId: '', price_on: '', @@ -299,8 +324,8 @@ goodsNum: 0, totalMoney: 0, goodsList: [], //商品列表 - changeItem: null, //选择的商品 showLoading: false, //是否显示加载 + allShow: false, //是否显示全部类型弹窗 }; }, async onLoad(options) { @@ -320,6 +345,7 @@ this.storeParam.type_id = options.type_id && options.type_id.split(',').toString() || '' this.storeParam.category_id = options.cate_id && options.cate_id.split(',').toString() || '' this.storeList = []; + this.showLoading = true; await this.getCloundShop(); this.cartFn(); if (this.mer_location == 1) { @@ -371,21 +397,9 @@ type: 2 }) this.cloudList = data; - this.changeCategory = this.cloudList[0]; - await townCloud({ - street_code: this.street_id, - category_id: this.category_id, - location: this.latitude + ',' + this.longitude - }).then(res => { - this.trnList = [] - this.goodsList = res.data.list; - this.goodsList.forEach(item => { - this.trnList.push({ - left: 0, - bottom: 0 - }) - }) - }) + this.merchant = this.cloudList[0]; + this.merchantTow = this.merchant?.children[0]; + this.storeParam.category_id = this.merchantTow.store_category_id; return null; }, selectLocation() { @@ -439,10 +453,8 @@ }, onInputConfirm() { - this.showSerch = false this.searchSubmit() - }, // 对象转数组 objToArr(data) { @@ -575,7 +587,10 @@ }, selfLocation() { let self = this - if (uni.getStorageSync('RejectTarget')) return; + if (uni.getStorageSync('RejectTarget')){ + this.getStoreList(); + return; + } if (this.$store?.state?.storage?.location?.lat) { this.latitude = this.$store?.state?.storage?.location?.lat; this.longitude = this.$store?.state?.storage?.location?.long; @@ -589,11 +604,13 @@ this.recommend_address = res.data.address.length > 4 ? res.data.address .slice(0, 4) + '...' : res.data.address; + this.getStoreList(); }).catch(err => { uni.showToast({ title: err, icon: 'none' }) + this.getStoreList(); }) } else uni.getLocation({ type: 'gcj02', @@ -618,11 +635,13 @@ this.recommend_address = res.data.address.length > 4 ? res.data.address .slice(0, 4) + '...' : res.data.address + this.getStoreList(); }).catch(err => { uni.showToast({ title: err, icon: 'none' }) + this.getStoreList(); }) }, fail: (res) => { @@ -651,20 +670,23 @@ }, // 搜索 searchSubmit: function() { + console.log('搜索', this.storeParam.keyword); let that = this; that.$set(that.storeParam, 'keyword', this.storeParam.keyword); - this.set_where(this.firstKey) + this.set_where('') this.showSerch = false }, //点击事件处理 set_where: function(e) { if (this.loading) return this.storeList = [] - this.firstKey = e this.storeParam.page = 1 // this.storeParam.order = this.downMenu[e].order - this.storeParam.order = 'location' //使用距离进行排序 + // this.storeParam.order = 'location' //使用距离进行排序 + this.storeParam.order = e //选择排序方式 this.getStoreList(); + if(e=='price_asc') return this.price_order = 'price_desc'; + if(e=='price_desc') return this.price_order = 'price_asc'; }, backjJump() { uni.navigateBack({ @@ -672,34 +694,39 @@ }) }, // 点击商品一级分类 - changeMerchant(item) { - this.changeMerchant = item; - this.storeParam.category_id = this.category_id; + changeMerchant(item, type=false) { + this.merchant = item; + this.merchantTow = item.children[0]; + this.storeParam.category_id = this.merchant.store_category_id; this.storeParam.page = 1; this.goodsList = []; + if(type) this.$refs.allRef.close(); this.getStoreList() }, // 点击商品二级分类 - changeMerchantTow(){ - this.storeParam.category_id = this.category_id; + changeMerchantTow(item){ + this.merchantTow = item; + this.storeParam.category_id = this.merchantTow.store_category_id; this.storeParam.page = 1; this.getStoreList() }, // 商品列表 - getStoreList() { - console.log('加载商品'); + getStoreList(load=false) { this.showLoading = true this.status = "loading" - this.storeParam.page = 1; + if(!load) { + this.storeParam.page = 1; + this.goodsList = []; + } townCloud({ street_code: this.street_id, - category_id: this.category_id || "22", - // order: this.storeParam.order, - keyword: this.keyword, + category_id: this.storeParam.category_id, + order: this.storeParam.order, + keyword: this.storeParam.keyword, page: this.storeParam.page, location: this.latitude+','+this.longitude, }).then(res => { - this.goodsList = res.data.list + this.goodsList = [...this.goodsList, ...res.data.list] this.showLoading = false this.goodsList.forEach(item => { this.trnList.push({ @@ -708,7 +735,7 @@ }) }) }).catch(e=>{ - console.log(e); + Toast(e.msg||e.message||e) this.showLoading = false; }) }, @@ -717,11 +744,14 @@ }, loadMoreRight() { // 加载更多右侧内容的逻辑 - console.log('右侧'); + this.storeParam.page++; + this.getStoreList(true); }, // 购物车信息 cartFn() { - getCartList().then(res => { + getCartList({ + source: 103 + }).then(res => { this.totalMoney = 0 this.cartList = res.data.list this.cartList.forEach(e => { @@ -731,14 +761,35 @@ }) this.totalMoney = this.totalMoney.toFixed(2) }) - getCartCounts().then(res => { + getCartCounts({ + source: 103 + }).then(res => { this.goodsNum = res.data[0].count }) }, // 点击商品 clickProduct(data){ - this.changeItem = data; + this.$refs.shortPopupRef.setDatas(data, this.goodsNum); this.$refs.shortPopupRef.open(); + }, + // 点击全部 + showAllRef(){ + this.$refs.allRef.open(); + }, + changeAllRef(e){ + this.allShow = e.show; + }, + // 搜索 + navToSearch(){ + uni.navigateTo({ + url: `/pages/columnGoods/goods_search/index?back=${true}&searchVal=${this.storeParam.keyword}`, + success:()=> { + uni.$once('searchValue', (e)=>{ + this.storeParam.keyword = e; + this.searchSubmit(); + }) + } + }) } }, //刷新 @@ -748,32 +799,16 @@ onShow() { this.showSelect = false }, - //上划加载更多 - onReachBottom() { - this.storeParam.page += 1 - - let rqData = { - keyword: this.storeParam.keyword, - page: this.storeParam.page, - limit: 10, - order: this.storeParam.order, - category_id: this.storeParam.category_id, - type_id: this.storeParam.type_id, - street_id: this.storeParam.street_id, - credit_buy: this.credit_buy + // 页面返回 + onBackPress() { + if(this.$refs.shortPopupRef.isShow){ + this.$refs.shortPopupRef.close(); + return true; + } else if(this.allShow){ + this.$refs.allRef.close(); + return true; } - if (this.latitude) { - rqData.location = this.latitude + ',' + this.longitude - } - // console.log(rqData) - getStoreList(rqData).then(res => { - console.log(res.data.list.length); - if (res.data.list.length < rqData.limit) { - this.status = "nomore" - } - this.count = res.data.count - this.storeList.push(...res.data.list) - }) + else return false; } } @@ -788,6 +823,64 @@ page { background-color: #f5f5f5; } + + .all_ref{ + height: 100vh; + width: 510rpx; + background-color: #fff; + padding: 30rpx; + .header{ + height: 100rpx; + font-size: 33rpx; + font-weight: bold; + display: flex; + align-items: center; + } + .all_list{ + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-items: flex-start; + } + .menu_li { + display: flex; + flex-direction: column; + align-items: center; + width: 150rpx; + height: 150rpx; + overflow: hidden; + + // width: 120rpx; + // display: inline-block; + .image { + border-radius: 50%; + border: 5rpx solid #fff; + } + + .li_text { + width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-align: center; + padding: 4rpx 10rpx; + } + } + + .menu_li_on { + .image { + border: 5rpx solid #ff6d20; + border-radius: 50%; + } + + .li_text { + background-color: #ff6d20; + border-radius: 2em; + color: #fff; + padding: 4rpx 10rpx; + } + } + } .com_name { font-size: 33.29rpx; @@ -833,17 +926,34 @@ .content { flex: 1; - padding: 20rpx; - padding-top: 0; + padding: 0 20rpx 10rpx 20rpx; } .menu_cls { - background-color: white; + // background-color: white; // height: 199.77rpx; border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx; - padding: 20rpx 20rpx 0 20rpx; + padding: 10rpx 70rpx 0 0; font-size: 26.29rpx; - height: 220rpx; + height: 155rpx; + overflow: hidden; + position: relative; + + .all{ + position: absolute; + top: 0; + right: 0; + padding: 0 15rpx; + height: 100%; + display: flex; + justify-content: center; + flex-direction: column; + background-color: #f5f5f5; + image{ + width: 30rpx; + height: 30rpx; + } + } .menu_li { margin-right: 20rpx; @@ -858,6 +968,7 @@ // width: 120rpx; // display: inline-block; .image { + border-radius: 50%; border: 5rpx solid #fff; } @@ -889,7 +1000,7 @@ .container { display: flex; - height: calc(100vh - 400rpx - var(--status-bar-height)); + height: calc(100vh - 320rpx - var(--status-bar-height)); .left-panel { width: 180rpx; @@ -936,7 +1047,7 @@ background-color: #fff; .right-panel-head { - height: 100rpx; + height: 70rpx; box-sizing: border-box; display: flex; justify-content: space-between; @@ -946,11 +1057,18 @@ view { display: flex; + align-items: center; margin-left: 40rpx; } .active { color: #333; + font-weight: bold; + } + + .icon{ + height: 22rpx; + width: 18rpx; } } @@ -962,8 +1080,8 @@ display: flex; .image { - height: 175.23rpx; - width: 175.23rpx; + height: 145.23rpx; + width: 145.23rpx; border-radius: 21.03rpx 21.03rpx 21.03rpx 21.03rpx; margin-right: 20rpx; flex-shrink: 0; @@ -1128,7 +1246,7 @@ } .hot_serch { - height: 20rpx; + height: 0rpx; } .productList .search .input { @@ -1624,7 +1742,7 @@ } .sswz { - margin-top: 30rpx; + margin-top: 10rpx; display: flex; justify-content: space-between; box-sizing: border-box; diff --git a/pages/nongKe/supply_chain/supplierB.vue b/pages/nongKe/supply_chain/supplierB.vue index cff2b73..5175013 100644 --- a/pages/nongKe/supply_chain/supplierB.vue +++ b/pages/nongKe/supply_chain/supplierB.vue @@ -7,21 +7,23 @@ - + - - - 供销综合云市场 - - - 供销综合云商品 - - + + + + 供销综合云市场 + + + 供销综合云商品 + + + {{street||'定位中'}} @@ -46,8 +48,8 @@ --> - - + + @@ -111,47 +113,53 @@ - - - - - - {{item.mer_name}} - {{item.type_name}} - - - - - - - - - {{item.service_score}} - 月销{{item.sales}} - {{item.distance}} - - - - {{item.service_phone}} - - {{item.street_name}} - - - - {{item.mer_take_time[0]}}-{{item.mer_take_time[1]}} - - - - {{item.mer_address}} - - + + + + {{item.mer_name}} + {{item.type_name}} + + 月销{{item.sales}} + + + + + + + + + {{item.street_name}} + + + + + + + + + + + {{item.service_score}} + {{item.distance}} + + + + {{item.service_phone}} + + {{item.mer_take_time[0]}}-{{item.mer_take_time[1]}} + + + + {{item.mer_address}} + + + @@ -843,6 +851,17 @@ this.storeParam.category_id = this.merchant_category_id; this.storeParam.page = 1; this.storeMerchantList() + }, + navToSearch(){ + uni.navigateTo({ + url: `/pages/columnGoods/goods_search/index?back=${true}&searchVal=${this.storeParam.keyword}`, + success:()=> { + uni.$once('searchValue', (e)=>{ + this.storeParam.keyword = e; + this.searchSubmit(); + }) + } + }) } }, //刷新 @@ -896,12 +915,11 @@ font-size: 33.29rpx; // background-color: red; // max-width: 45vw; - max-width: 40vw; - white-space: nowrap; - /* 防止文字换行 */ - overflow: hidden; - /* 超出部分隐藏 */ - text-overflow: ellipsis; + // white-space: nowrap; + // /* 防止文字换行 */ + // overflow: hidden; + // /* 超出部分隐藏 */ + // text-overflow: ellipsis; /* 使用省略号表示溢出的内容 */ // width: 200px; /* 可根据实际情况调整容器宽度 */ @@ -1011,40 +1029,73 @@ background-color: white; padding: 20rpx; // border-radius: 20rpx; - display: flex; + // display: flex; border-radius: 21rpx 21rpx 21rpx 21rpx; // align-items: center; - - .left { - margin-right: 20rpx; - width: 158rpx; - height: 158rpx; - border-radius: 20rpx; - overflow: hidden; - } - - .right { - flex: 1; - color: #737373; + .head{ + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; .head { font-weight: bold; // color: red; color: #333; - } + } - .li { + .left { + margin-right: 20rpx; + width: 140.19rpx; + height: 140.19rpx; + border-radius: 20rpx; + overflow: hidden; + position: relative; + .left_text{ + position: absolute; + bottom: 0; + left: 0; + background-color: rgba(#000, 0.5); width: 100%; - display: flex; - font-size: 28.04rpx; - margin-bottom: 10rpx; - align-items: center; - - text { - margin: 0 20rpx 0 5rpx; - } - } + font-size: 21rpx; + font-weight: 400; + color: #FFFFFF; + display: flex; + justify-content: center; + align-items: center; + image{ + width: 21.03rpx; + height: 21.03rpx; + flex-shrink: 0; + } + view{ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + } } + + .right { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-evenly; + color: #737373; + } + + + .li { + width: 100%; + display: flex; + font-size: 28.04rpx; + margin-bottom: 10rpx; + align-items: center; + + text { + margin: 0 20rpx 0 5rpx; + } + } } } @@ -1596,7 +1647,7 @@ } .sswz { - margin-top: 30rpx; + margin-top: 10rpx; display: flex; justify-content: space-between; box-sizing: border-box; diff --git a/static/images/icon/all.png b/static/images/icon/all.png new file mode 100644 index 0000000000000000000000000000000000000000..fa4b98ffcb114ed15df5856d9c7588b3b084fcae GIT binary patch literal 391 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 literal 0 HcmV?d00001 diff --git a/static/images/icon/short.png b/static/images/icon/short.png new file mode 100644 index 0000000000000000000000000000000000000000..9821ac0b8adaf84c8ad37b2c10f3c49564e45825 GIT binary patch literal 1077 zcmV-51j_q~P)Px&?@2^KR9HvtS6^rxMHv6Sxjnf+A~mrPF@-BsB&Xc%&g8*BOWOyj4;3G@AXu@b z5egP8*cZW4MFj;#d=L>Vjab2A9+WD!C>Su%g3fmv2uHy}PWs@fB_1|#OLDuPjO@vB z*}L7#-9v=T+s^*xH^2G*&LC{Dfm=)uYzs>ANTP)t$JvjFhXLT;B(kLc%zR^geSLOm zY3cV)*sg*c$2lQ{_&8~!9{<-GjfPXHRBCbSx(TwBQnvtLyvGgGz~9hXpY2JI<2X+W zA?C~?WxH{-pA{nWMPFjV#X;a7*>`8>Apn>G zfM%o7xTjL7tVX#vxJ*iU2obM@pfmF$e_YL?bqx@P`x3>ly3Wn%{eSPwBjV*Sj*b%1 zXGwxSMZ}{fm;qpy*82AHfqZVf&-AYW)OOETy?j2O8yy|}6A_1*`63ZLn@0DA$T=KKC+tNxTq zrH3rba!o0S5G*wsjp>#JipAoC*=*KeaxDxq*FDdhY_*C)p)fu)G-L|oI5S@-qUj_H z9Ye$mVbE0(@gg&ufHw0x!ucy<(KJ>31|rV2V}c+!FN8P|Zf5${EHitEXfkXfo`(;RCIgay^5aLu6!_04&%jJK2pc%Gp&tx*07fm9xtPTM05Yb1b z7Nr&RAI`Sz9rb$Mt5&O~48#tDSzB9cwr5imY%u0KsV8>2ei#d#W9B9iz1B&{X6D1T zWc76YD3wZkEz2_5W`cH_h^}vD^Y%4T%103Knwf7loBI|Q7Z*~w%(m?VnM~#f1NMFY zpzFHxgAkO4H`Zlo7H&ph8s2R|Nulunvk)^sO+=SA6EiVc_Kayo-I68NLg5wSH*;qh zgphWQu;K2CE2JIYWlE{%0KhyFquqTF`b@i+(OQ2JN7nV_YTLFggm?k~@`F$U0M#G} vzH(jHTv1|2;@f^eLQ>Og3raH8mb1`5h_C-NJk&Yc00000NkvXXu0mjfBm?@J literal 0 HcmV?d00001 diff --git a/static/images/location.png b/static/images/location.png new file mode 100644 index 0000000000000000000000000000000000000000..08448eef66e390715901b7a724657357517bfca4 GIT binary patch literal 682 zcmV;b0#*HqP)Px%WJyFpR7gv;mNBT0VHC!HPZ#@qZ882Bsu^?~Bn3V0#TP1FY-_5};j@UUh+V0@zN_XTXvHS$+aGN($It z)(7w)uNzdt@_k0q=+FSRQ|mX43)g`Q`e=F{m~5k7%h^RqC)#}b z0P@OEb*}{m!81&bczZ>A@Eu+z(p< z)@DzO&tqTK84g$^+I{8f1F|u&+#b6nI?H zec4W}-<32++iGch8}O(`%WuFANpsD#Y_9;KV|my}0LFnENww`l6~K1(LCO^ylXS1E z`L?S$8Vf)!-pxWuN_~te5>A&i*B+BnWg+biKsAQsw9dhKCW>&)( z->~qCq}=UP)3t@y*~!T+%t#3{OtENBIG^dwkYy()