소스 검색

🐞 fix:解决冲突

yizhiyang 1 년 전
부모
커밋
d778238319

+ 43 - 0
src/api/client/community.js

@@ -0,0 +1,43 @@
+import { request } from '@/utils/request';
+
+/**
+ * 动态信息 - 查询列表
+ * @returns
+ */
+export function clientContentList(data) {
+  return request({
+    url: '/maintain/client/content/page',
+    method: 'get',
+	data:data,
+    header: {
+      'content-type': 'application/x-www-form-urlencoded',
+    },
+  });
+}
+
+
+// // 动态评论 - 新增
+// export function addClientContent(data) {
+//   return request({
+//     url: `/maintain/client/content/add`,
+//     method: 'post',
+// 	data: data,
+//     header: {
+//       'Content-Type': 'application/json',
+//     },
+//   });
+// }
+
+// /**
+//  *@description 动态信息 - 获取动态详情
+//  */
+// export function getClientContentDetail() {
+//   return request({
+//     url: '/maintain/client/content/query',
+//     methods: get,
+//     header: {
+//       'content-type': 'application/x-www-form-urlencoded',
+//     },
+//   });
+// }
+

+ 39 - 0
src/api/client/home.js

@@ -43,3 +43,42 @@ export function getCategoriesApi() {
     },
   });
 }
+
+
+// 热门搜索商家
+export function listHotMerchant(data) {
+  return request({
+    url: `/maintain/listHotMerchant/`,
+    method: 'post',
+	data: data,
+    header: {
+      'Content-Type': 'application/json',
+    },
+  });
+}
+
+// 猜你喜欢的商家
+export function likeMerchant(data) {
+  return request({
+    url: `/maintain/likeMerchant/`,
+    method: 'post',
+	data: data,
+    header: {
+      'Content-Type': 'application/json',
+    },
+  });
+}
+
+/**
+ *@description 热门搜索接口 - 添加用户点击埋点
+ */
+
+export function hotMerchant(id) {
+  return request({
+    url: `/maintain/hotMerchant/${id}`,
+    method: 'get',
+    header: {
+      'content-type': 'application/x-www-form-urlencoded',
+    },
+  });
+}

+ 29 - 0
src/api/client/message.js

@@ -0,0 +1,29 @@
+import { request } from '@/utils/request';
+
+/**
+ *@description 动态评论 - 查询列表
+ */
+export function clientCommentList(data) {
+  return request({
+    url: '/maintain/client/comment/page',
+    methods: 'get',
+	data:data,
+    header: {
+      'content-type': 'application/x-www-form-urlencoded',
+    },
+  });
+}
+
+
+// 动态评论 - 新增
+export function addClientComment(data) {
+  return request({
+    url: `/maintain/client/comment/add`,
+    method: 'post',
+	data: data,
+    header: {
+      'Content-Type': 'application/json',
+    },
+  });
+}
+

+ 228 - 202
src/pages/client/clientPackage/search.vue

@@ -1,209 +1,235 @@
 <template>
-  <view class="search">
-    <view class="search-item">
-      <u-search v-model="search_text" :clearabled="true" @custom='handlerSearchBtn'/>
-	  <!-- <button class="search-btn" @click="handlerSearchBtn">搜索</button> -->
-    </view>
-    <!-- 搜索历史 -->
-    <view class="history">
-      <view class="history-top">
-        <hotCom>搜索历史</hotCom>
-        <view class="history-right" @click="handlerAllSearchRecord">
-          <u-icon name="trash" />
-          <text>删除记录</text>
-        </view>
-      </view>
-      <view class="label">
-        <u-tag v-for="(item,index) of search_list" :key="index" :text="item.name" plain closable :show="close2" @close="handlerCloseSearchItem(item,index)" />
-      </view>
-    </view>
-
-    <!-- 热门搜索 -->
-    <view class="history">
-      <view class="history-top">
-        <text class="hotCom">热门搜索</text>
-      </view>
-      <view class="label">
-        <u-tag text="标签" class="label-item" v-for="item of 5"/>
-      </view>
-    </view>
-
-    <u-divider text="猜你喜欢"></u-divider>
-
-    <!-- 列表 -->
-    <view class="hot">
-      <Image src="https://cdn.uviewui.com/uview/album/1.jpg"></Image>
-      <view>
-        <view class="item-text">途虎养车洗车机(贵州省贵阳市云岩区)</view>
-        <view class="item-flex">
-          <view class="star">
-            <u-rate :count="count" v-model="value" />
-            <text class="line">|</text>
-          </view>
-          <view>989单</view>
-        </view>
-        <view class="address-flex">
-          <view>宝安中心区美容洗车</view>
-          <view>2.7km</view>
-        </view>
-      </view>
-    </view>
-  </view>
+	<view class="search">
+		<view class="search-item">
+			<u-search v-model="search_text" :clearabled="true" @custom='handlerSearchBtn' />
+			<!-- <button class="search-btn" @click="handlerSearchBtn">搜索</button> -->
+		</view>
+		<!-- 搜索历史 -->
+		<view class="history">
+			<view class="history-top">
+				<hotCom>搜索历史</hotCom>
+				<view class="history-right" @click="handlerAllSearchRecord">
+					<u-icon name="trash" />
+					<text>删除记录</text>
+				</view>
+			</view>
+			<view class="label">
+				<u-tag v-for="(item,index) of search_list" :key="index" :text="item.name" plain closable :show="close2"
+					@close="handlerCloseSearchItem(item,index)" />
+			</view>
+		</view>
+
+		<!-- 热门搜索 -->
+		<view class="history">
+			<view class="history-top">
+				<text class="hotCom">热门搜索</text>
+			</view>
+			<view class="label">
+				<u-tag v-for="(item,index) in favourite_list" :text="item.name" class="label-item" @click="$Router.push(`/pages/client/clientPackage/storeDetail?id=${item.id}`)"/>
+			</view>
+		</view>
+
+		<u-divider text="猜你喜欢"></u-divider>
+
+		<!-- 列表 -->
+		<view class="popular-box">
+			<view class="hot" v-for="(item,index) of popular_search_list" @click="$Router.push(`/pages/client/clientPackage/storeDetail?id=${item.id}`)">
+				<Image src="https://cdn.uviewui.com/uview/album/1.jpg"></Image>
+				<view>
+					<view class="item-text">{{ item.name }}</view>
+					<view class="item-flex">
+						<view class="star">
+							<u-rate :count="count" :value="item.score" readonly/>
+							<text class="line">|</text>
+						</view>
+						<view>{{ item.goodReview }}单</view>
+					</view>
+					<view class="address-flex">
+						<view>{{ item.address }}</view>
+						<view>2.7km</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
 </template>
 
 <script>
-export default {
-  data() {
-    return {
-      count: 5,
-      value: 4,
-      close2: true,
-      radios: [
-        {
-          checked: true,
-        },
-      ],
-      checkboxs: [
-        {
-          checked: true,
-        },
-      ],
-	  search_text:'',// 搜索text
-	  search_list:[],// 搜索列表
-    };
-  },
-  onShow() {
-	  if(uni.getStorageSync('searchItem')){
-		  this.search_list = uni.getStorageSync('searchItem')
-	  }
-  },
-  methods:{
-	  // 点击搜索按钮
-	  handlerSearchBtn(){
-		  if(!this.search_text){
-			  uni.showToast({
-			  	title:'请输入您要搜索的关键字',
-				icon:'none'
-			  })
-			  return 
-		  }else{
-			  let params = {
-			  			  name:this.search_text
-			  }
-			  this.search_list.push(params)
-			  uni.setStorageSync('searchItem',this.search_list)
-			  this.search_text = ''
-		  }
-	  },
-	  // 删除搜索记录按钮
-	  handlerCloseSearchItem(item,index){
-		this.search_list.splice(index,1)
-		uni.setStorageSync('searchItem',this.search_list)
-	  },
-	  // 删除所有搜索记录按钮
-	  handlerAllSearchRecord(){
-		uni.removeStorageSync('searchItem');
-		this.search_list = []
-	  }
-  }
-};
+	import { listHotMerchant,likeMerchant } from "@/api/client/home.js"
+	export default {
+		data() {
+			return {
+				count: 5,
+				value: 4,
+				close2: true,
+				radios: [{
+					checked: true,
+				}, ],
+				checkboxs: [{
+					checked: true,
+				}, ],
+				search_text: '', // 搜索text
+				search_list: [], // 搜索列表
+				
+				popular_search_list:[],//热门搜索列表
+				favourite_list:[] // 猜你喜欢列表
+			};
+		},
+		onShow() {
+			if (uni.getStorageSync('searchItem')) {
+				this.search_list = uni.getStorageSync('searchItem')
+			}
+		},
+		mounted() {
+			this.handlerInitList()
+		},
+		methods: {
+			// 初始化热门搜索 猜你喜欢列表
+			handlerInitList(){
+				listHotMerchant().then(res=>{
+					this.popular_search_list = res.data
+				})
+				
+				// 猜你喜欢列表
+				likeMerchant().then(res=>{
+					this.favourite_list = res.data
+				})
+			},
+			// 点击搜索按钮
+			handlerSearchBtn() {
+				if (!this.search_text) {
+					uni.showToast({
+						title: '请输入您要搜索的关键字',
+						icon: 'none'
+					})
+					return
+				} else {
+					let params = {
+						name: this.search_text
+					}
+					this.search_list.push(params)
+					uni.setStorageSync('searchItem', this.search_list)
+					this.search_text = ''
+				}
+			},
+			// 删除搜索记录按钮
+			handlerCloseSearchItem(item, index) {
+				this.search_list.splice(index, 1)
+				uni.setStorageSync('searchItem', this.search_list)
+			},
+			// 删除所有搜索记录按钮
+			handlerAllSearchRecord() {
+				uni.removeStorageSync('searchItem');
+				this.search_list = []
+			}
+		}
+	};
 </script>
 
 <style lang="scss" scoped>
-.search {
-  min-height: 100vh;
-  background-color: #fff;
-}
-
-/* 搜索样式 */
-.search-item {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 0 20rpx;
-  height: 80rpx;
-  line-height: 80rpx;
-  background-color: #fff;
-  margin-bottom: 10rpx;
-  .search-btn{
-	  width: 160rpx;
-	  height: 70rpx;
-	  font-size: 28rpx;
-	  line-height: 70rpx;
-  }
-}
-
-/* 搜索历史样式 */
-.history {
-  padding: 30rpx;
-  margin-bottom: 10rpx;
-
-  .history-top {
-    display: flex;
-    justify-content: space-between;
-    margin-bottom: 20rpx;
-
-    .history-right {
-      margin-top: 15rpx;
-      display: flex;
-      font-size: 12px;
-    }
-
-    hotCom {
-      font-size: 15px;
-      font-weight: bold;
-      color: #404045;
-    }
-  }
-}
-
-.label {
-  display: flex;
-  flex-wrap: wrap;
-}
-
-// 列表
-.hot {
-  height: 220rpx;
-  background-color: #fff;
-  padding: 0 20rpx;
-  margin-bottom: 20rpx;
-  display: flex;
-  Image {
-    width: 120px;
-    height: calc(100% - 20rpx);
-    margin: 10rpx 20rpx 10rpx 0;
-  }
-  .item-text {
-    font-weight: bold;
-    margin: 10rpx 0 10rpx;
-    color: #333;
-  }
-  .item-flex {
-    display: flex;
-    justify-content: space-between;
-    font-size: 14px;
-    margin: 0 20rpx 30rpx 0;
-    color: #0d0d0d66;
-    .star {
-      display: flex;
-      .line {
-        margin-left: 18rpx;
-        margin-top: 5rpx;
-        font-size: 24rpx;
-      }
-    }
-  }
-  .address-flex {
-    display: flex;
-    justify-content: space-between;
-    font-size: 12px;
-    color: #999;
-    margin-right: 20rpx;
-  }
-}
-
- ::v-deep view.data-v-1481d46d, scroll-view.data-v-1481d46d, swiper-item.data-v-1481d46d{
-	 margin: 0 4rpx;
- }
-</style>
+	.search {
+		min-height: 100vh;
+		background-color: #fff;
+	}
+
+	/* 搜索样式 */
+	.search-item {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 0 20rpx;
+		height: 80rpx;
+		line-height: 80rpx;
+		background-color: #fff;
+		margin-bottom: 10rpx;
+
+		.search-btn {
+			width: 160rpx;
+			height: 70rpx;
+			font-size: 28rpx;
+			line-height: 70rpx;
+		}
+	}
+
+	/* 搜索历史样式 */
+	.history {
+		padding: 30rpx;
+		margin-bottom: 10rpx;
+
+		.history-top {
+			display: flex;
+			justify-content: space-between;
+			margin-bottom: 20rpx;
+
+			.history-right {
+				margin-top: 15rpx;
+				display: flex;
+				font-size: 12px;
+			}
+
+			hotCom {
+				font-size: 15px;
+				font-weight: bold;
+				color: #404045;
+			}
+		}
+	}
+
+	.label {
+		display: flex;
+		flex-wrap: wrap;
+	}
+
+	// 列表
+	.hot {
+		height: 220rpx;
+		background-color: #fff;
+		padding: 0 20rpx;
+		margin-bottom: 20rpx;
+		display: flex;
+
+		Image {
+			width: 120px;
+			height: calc(100% - 20rpx);
+			margin: 10rpx 20rpx 10rpx 0;
+		}
+
+		.item-text {
+			font-weight: bold;
+			margin: 10rpx 0 10rpx;
+			color: #333;
+		}
+
+		.item-flex {
+			display: flex;
+			justify-content: space-between;
+			font-size: 14px;
+			margin: 0 20rpx 30rpx 0;
+			color: #0d0d0d66;
+
+			.star {
+				display: flex;
+
+				.line {
+					margin-left: 18rpx;
+					margin-top: 5rpx;
+					font-size: 24rpx;
+				}
+			}
+		}
+
+		.address-flex {
+			display: flex;
+			justify-content: space-between;
+			font-size: 12px;
+			color: #999;
+			margin-right: 20rpx;
+		}
+	}
+
+	::v-deep view.data-v-1481d46d,
+	scroll-view.data-v-1481d46d,
+	swiper-item.data-v-1481d46d {
+		margin: 0 4rpx;
+	}
+</style>

+ 4 - 8
src/pages/client/clientPackage/storeDetail.vue

@@ -113,13 +113,8 @@
 </template>
 
 <script>
-	import {
-		getSellsDetail,
-		addReservation
-	} from '@/api/client/business.js';
-	import {
-		getCurrentLocation
-	} from '@/api/client/home';
+	import { getSellsDetail, addReservation } from '@/api/client/business.js';
+	import { getCurrentLocation,hotMerchant } from '@/api/client/home';
 	export default {
 		data() {
 			return {
@@ -217,8 +212,9 @@
 					this.goods = res.data.goods;
 					this.swiperList = res.data.merchant.banners.map(h => h.url);
 				});
+				// 获取锚点
+				hotMerchant(this.queryParams.id).then()
 			},
-
 			// 点击拨打电话
 			handlerMakeCall() {
 				uni.makePhoneCall({

+ 35 - 3
src/pages/client/tabBar/community.vue

@@ -43,13 +43,28 @@
 </template>
 <script>
 import CommentList from '@/components/comment/CommentList.vue';
+import { clientContentList } from '@/api/client/community.js';
 export default {
   components: {
     CommentList,
   },
   data() {
     return {
-      list: [{ name: '关注' }, { name: '推荐' }],
+      list: [
+        {
+          name: '关注',
+          type: 'ATTENTION',
+        },
+        {
+          name: '最新',
+          type: 'LATEST',
+        },
+        {
+          name: '最热',
+          type: 'HOTTEST',
+        },
+      ],
+      keyWord: '',
       duration: 700,
       scrollTop: 0,
       old: {
@@ -67,11 +82,28 @@ export default {
 
   //点击tab时触发
   onTabItemTap() {},
-
   //页面加载触发
   onLoad() {},
-
+  mounted() {
+    // let params = {
+    // 	keyWord:this.keyWord,
+    // 	type:'ATTENTION'
+    // }
+  },
+  onShow() {
+    this.handlerInitList();
+  },
   methods: {
+    // 初始化社区列表
+    handlerInitList() {
+      let params = {
+        keyWord: '',
+        type: 'ATTENTION',
+      };
+      clientContentList(params).then(res => {
+        console.log('@@@res', res);
+      });
+    },
     upper(e) {},
 
     lower(e) {},

+ 2 - 6
src/pages/client/tabBar/message.vue

@@ -8,12 +8,8 @@
 
     <view :style="{ marginTop: totalHeight + 'px' }">
       <view v-if="current == 0">
-        <view
-          class="orderList"
-          v-for="item in orderList"
-          :key="item.id"
-          @tap="$Router.push(item.url)"
-        >
+        <!-- <view class="orderList" v-for="item in orderList" :key="item.id" @tap="$Router.push(item.url)"> -->
+        <view class="orderList" v-for="item in orderList" :key="item.id">
           <image :src="item.img" style="width: 40px; height: 40px" />
           <view class="orderItem">
             <view class="order1">{{ item.name }}</view>