|
@@ -23,15 +23,7 @@
|
|
|
<template #header>
|
|
<template #header>
|
|
|
<div class="header-bar"></div>
|
|
<div class="header-bar"></div>
|
|
|
<div class="select-group">
|
|
<div class="select-group">
|
|
|
- <el-select class="select-item" v-model="dateValue" placeholder="Select">
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="item in dateOptions"
|
|
|
|
|
- :key="item.value"
|
|
|
|
|
- :label="item.label"
|
|
|
|
|
- :value="item.value"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- <el-select class="select-item" v-model="areaValue" placeholder="Select">
|
|
|
|
|
|
|
+ <el-select class="select-item" v-model="areaValue" placeholder="距离">
|
|
|
<el-option
|
|
<el-option
|
|
|
v-for="item in areaOptions"
|
|
v-for="item in areaOptions"
|
|
|
:key="item.value"
|
|
:key="item.value"
|
|
@@ -39,15 +31,7 @@
|
|
|
:value="item.value"
|
|
:value="item.value"
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
- <el-select class="select-item" v-model="areaValue1" placeholder="Select">
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="item in areaOptions1"
|
|
|
|
|
- :key="item.value"
|
|
|
|
|
- :label="item.label"
|
|
|
|
|
- :value="item.value"
|
|
|
|
|
- />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- <el-select class="select-item" v-model="areaValue2" placeholder="Select">
|
|
|
|
|
|
|
+ <el-select class="select-item" v-model="areaValue2" placeholder="服务类型">
|
|
|
<el-option
|
|
<el-option
|
|
|
v-for="item in areaOptions2"
|
|
v-for="item in areaOptions2"
|
|
|
:key="item.value"
|
|
:key="item.value"
|
|
@@ -59,12 +43,12 @@
|
|
|
</template>
|
|
</template>
|
|
|
<div class="hall-content">
|
|
<div class="hall-content">
|
|
|
<div class="farm-list" ref="cardContentRef" :style="{ height: `${cardContentHeight}px` }">
|
|
<div class="farm-list" ref="cardContentRef" :style="{ height: `${cardContentHeight}px` }">
|
|
|
- <div class="task-item" v-for="item in 10" :key="item">
|
|
|
|
|
|
|
+ <div class="task-item" v-for="item in agriculturalStoreList" :key="item.id">
|
|
|
<div class="task-content">
|
|
<div class="task-content">
|
|
|
<div class="content-t">
|
|
<div class="content-t">
|
|
|
- <img class="content-img" src="" alt="">
|
|
|
|
|
|
|
+ <img class="content-img" src="" alt="" />
|
|
|
<div class="content-info">
|
|
<div class="content-info">
|
|
|
- <div class="content-name">河南农资农服组织 <span>5.0分</span></div>
|
|
|
|
|
|
|
+ <div class="content-name">{{ item.storeName }} <span>{{ item.score }}分</span></div>
|
|
|
<div class="content-text">
|
|
<div class="content-text">
|
|
|
<div class="text-item van-ellipsis">
|
|
<div class="text-item van-ellipsis">
|
|
|
<span>服务类型:</span>
|
|
<span>服务类型:</span>
|
|
@@ -72,20 +56,23 @@
|
|
|
</div>
|
|
</div>
|
|
|
<div class="text-item van-ellipsis">
|
|
<div class="text-item van-ellipsis">
|
|
|
<span>服务品种:</span>
|
|
<span>服务品种:</span>
|
|
|
- <span class="text-value">荔枝、龙眼</span>
|
|
|
|
|
|
|
+ <span class="text-value" v-for="ele in item.speciesList" :key="ele"
|
|
|
|
|
+ >{{ ele }}{{ index !== item.speciesList.length - 1 ? "、" : "" }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="text-item van-ellipsis">
|
|
<div class="text-item van-ellipsis">
|
|
|
<span>服务区域:</span>
|
|
<span>服务区域:</span>
|
|
|
- <span class="text-value">广东省广州市从化区市从化区南省</span>
|
|
|
|
|
|
|
+ <span class="text-value">{{ item.address }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="text-item van-ellipsis">
|
|
<div class="text-item van-ellipsis">
|
|
|
<span>服务设备:</span>
|
|
<span>服务设备:</span>
|
|
|
- <span class="text-value">无人机、水肥一体机、水肥一体机</span>
|
|
|
|
|
|
|
+ <span class="text-value" v-for="ele in item.equipmentList" :key="ele"
|
|
|
|
|
+ >{{ ele
|
|
|
|
|
+ }}{{ index !== item.equipmentList.length - 1 ? "、" : "" }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="content-b">
|
|
|
|
|
|
|
+ <!-- <div class="content-b">
|
|
|
<div class="hot-evaluate">
|
|
<div class="hot-evaluate">
|
|
|
<span>热门评价</span>
|
|
<span>热门评价</span>
|
|
|
<el-icon><CaretRight /></el-icon>
|
|
<el-icon><CaretRight /></el-icon>
|
|
@@ -94,15 +81,15 @@
|
|
|
<span class="van-ellipsis evaluate-text">“ 很用心,服务的很到位,下次还... ”</span>
|
|
<span class="van-ellipsis evaluate-text">“ 很用心,服务的很到位,下次还... ”</span>
|
|
|
<span class="more">查看更多</span>
|
|
<span class="more">查看更多</span>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div> -->
|
|
|
</div>
|
|
</div>
|
|
|
<div class="btn-group">
|
|
<div class="btn-group">
|
|
|
<div class="btn-group-l">查看详情</div>
|
|
<div class="btn-group-l">查看详情</div>
|
|
|
<div class="btn-group-r">
|
|
<div class="btn-group-r">
|
|
|
- <div class="r-item">
|
|
|
|
|
|
|
+ <!-- <div class="r-item">
|
|
|
<Icon name="phone-o" />
|
|
<Icon name="phone-o" />
|
|
|
<span>电话联系</span>
|
|
<span>电话联系</span>
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div> -->
|
|
|
<div class="r-item">
|
|
<div class="r-item">
|
|
|
<Icon name="chat-o" />
|
|
<Icon name="chat-o" />
|
|
|
<span>线上沟通</span>
|
|
<span>线上沟通</span>
|
|
@@ -117,7 +104,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { FloatingPanel,Icon } from "vant";
|
|
|
|
|
|
|
+import { FloatingPanel, Icon } from "vant";
|
|
|
import { computed, nextTick, onMounted, ref } from "vue";
|
|
import { computed, nextTick, onMounted, ref } from "vue";
|
|
|
import { useStore } from "vuex";
|
|
import { useStore } from "vuex";
|
|
|
import IndexMap from "../map/index";
|
|
import IndexMap from "../map/index";
|
|
@@ -133,8 +120,6 @@ const props = defineProps({
|
|
|
const store = useStore();
|
|
const store = useStore();
|
|
|
const tabBarHeight = computed(() => store.state.home.tabBarHeight);
|
|
const tabBarHeight = computed(() => store.state.home.tabBarHeight);
|
|
|
|
|
|
|
|
-// const tabBarHeight = ref(localStorage.getItem("tabBarHeight") * 1 || 50);
|
|
|
|
|
-
|
|
|
|
|
const anchors = ref([310 + tabBarHeight.value, Math.round(1 * window.innerHeight) - 44]);
|
|
const anchors = ref([310 + tabBarHeight.value, Math.round(1 * window.innerHeight) - 44]);
|
|
|
const height = ref(anchors.value[0]);
|
|
const height = ref(anchors.value[0]);
|
|
|
|
|
|
|
@@ -146,34 +131,40 @@ onMounted(() => {
|
|
|
nextTick(() => {
|
|
nextTick(() => {
|
|
|
indexMap.initMap(point, mapContainer.value, props.isCapital);
|
|
indexMap.initMap(point, mapContainer.value, props.isCapital);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ getStoreList();
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+const agriculturalStoreList = ref([]);
|
|
|
|
|
+const getStoreList = () => {
|
|
|
|
|
+ VE_API.farm.getStoreList({ type: 1 }).then((res) => {
|
|
|
|
|
+ if (res.data.length) {
|
|
|
|
|
+ agriculturalStoreList.value = res.data.map((item) => {
|
|
|
|
|
+ return {
|
|
|
|
|
+ ...item,
|
|
|
|
|
+ speciesList: JSON.parse(item.serviceSpecies || "[]"),
|
|
|
|
|
+ equipmentList: JSON.parse(item.serviceEquipment || "[]"),
|
|
|
|
|
+ };
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(agriculturalStoreList.value);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
const cardContentHeight = ref(245);
|
|
const cardContentHeight = ref(245);
|
|
|
const searchValue = ref("");
|
|
const searchValue = ref("");
|
|
|
const search = () => {
|
|
const search = () => {
|
|
|
console.log(searchValue.value);
|
|
console.log(searchValue.value);
|
|
|
};
|
|
};
|
|
|
-const dateValue = ref("1");
|
|
|
|
|
-const dateOptions = [
|
|
|
|
|
- { value: "1", label: "广东省" },
|
|
|
|
|
- { value: "2", label: "2" },
|
|
|
|
|
- { value: "3", label: "3" },
|
|
|
|
|
-];
|
|
|
|
|
-const areaValue = ref("1");
|
|
|
|
|
|
|
+const areaValue = ref("");
|
|
|
const areaOptions = [
|
|
const areaOptions = [
|
|
|
- { value: "1", label: "距离" },
|
|
|
|
|
- { value: "2", label: "2" },
|
|
|
|
|
- { value: "3", label: "3" },
|
|
|
|
|
|
|
+ { value: "1", label: "5km" },
|
|
|
|
|
+ { value: "2", label: "3km" },
|
|
|
|
|
+ { value: "3", label: "1km" },
|
|
|
];
|
|
];
|
|
|
-const areaValue1 = ref("1");
|
|
|
|
|
-const areaOptions1 = [
|
|
|
|
|
- { value: "1", label: "评分" },
|
|
|
|
|
- { value: "2", label: "2" },
|
|
|
|
|
- { value: "3", label: "3" },
|
|
|
|
|
-];
|
|
|
|
|
-const areaValue2 = ref("1");
|
|
|
|
|
|
|
+const areaValue2 = ref("");
|
|
|
const areaOptions2 = [
|
|
const areaOptions2 = [
|
|
|
- { value: "1", label: "筛选" },
|
|
|
|
|
|
|
+ { value: "1", label: "服务类型" },
|
|
|
{ value: "2", label: "2" },
|
|
{ value: "2", label: "2" },
|
|
|
{ value: "3", label: "3" },
|
|
{ value: "3", label: "3" },
|
|
|
];
|
|
];
|
|
@@ -248,44 +239,44 @@ function toPage() {
|
|
|
overflow: auto;
|
|
overflow: auto;
|
|
|
height: calc(100% - 60px);
|
|
height: calc(100% - 60px);
|
|
|
padding: 0 12px;
|
|
padding: 0 12px;
|
|
|
- .task-item{
|
|
|
|
|
|
|
+ .task-item {
|
|
|
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
|
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
padding-top: 10px;
|
|
padding-top: 10px;
|
|
|
- .task-content{
|
|
|
|
|
- .content-t{
|
|
|
|
|
|
|
+ .task-content {
|
|
|
|
|
+ .content-t {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
gap: 8px;
|
|
gap: 8px;
|
|
|
- .content-img{
|
|
|
|
|
|
|
+ .content-img {
|
|
|
width: 90px;
|
|
width: 90px;
|
|
|
height: 90px;
|
|
height: 90px;
|
|
|
border-radius: 8px;
|
|
border-radius: 8px;
|
|
|
}
|
|
}
|
|
|
- .content-info{
|
|
|
|
|
- .content-name{
|
|
|
|
|
|
|
+ .content-info {
|
|
|
|
|
+ .content-name {
|
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
|
- span{
|
|
|
|
|
- color: #FF953D;
|
|
|
|
|
|
|
+ span {
|
|
|
|
|
+ color: #ff953d;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- .content-text{
|
|
|
|
|
|
|
+ .content-text {
|
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
|
- color: #BBBBBB;
|
|
|
|
|
- .text-item{
|
|
|
|
|
|
|
+ color: #bbbbbb;
|
|
|
|
|
+ .text-item {
|
|
|
width: calc(100% - 10px);
|
|
width: calc(100% - 10px);
|
|
|
- .text-value{
|
|
|
|
|
|
|
+ .text-value {
|
|
|
color: #666666;
|
|
color: #666666;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- .content-b{
|
|
|
|
|
|
|
+ .content-b {
|
|
|
margin: 10px 0;
|
|
margin: 10px 0;
|
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
|
- .hot-evaluate{
|
|
|
|
|
|
|
+ .hot-evaluate {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
color: #574300;
|
|
color: #574300;
|
|
@@ -294,36 +285,37 @@ function toPage() {
|
|
|
background: rgba(243, 193, 29, 0.1);
|
|
background: rgba(243, 193, 29, 0.1);
|
|
|
margin-right: 8px;
|
|
margin-right: 8px;
|
|
|
}
|
|
}
|
|
|
- .evaluate-content{
|
|
|
|
|
|
|
+ .evaluate-content {
|
|
|
width: calc(100% - 89px);
|
|
width: calc(100% - 89px);
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- .evaluate-text{
|
|
|
|
|
|
|
+ .evaluate-text {
|
|
|
width: calc(100% - 62px);
|
|
width: calc(100% - 62px);
|
|
|
}
|
|
}
|
|
|
- .more{
|
|
|
|
|
- color: #B6B6B6;
|
|
|
|
|
|
|
+ .more {
|
|
|
|
|
+ color: #b6b6b6;
|
|
|
font-weight: 400;
|
|
font-weight: 400;
|
|
|
margin-left: 10px;
|
|
margin-left: 10px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- .btn-group{
|
|
|
|
|
|
|
+ .btn-group {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
|
- .btn-group-r{
|
|
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+ .btn-group-r {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
gap: 10px;
|
|
gap: 10px;
|
|
|
- .r-item{
|
|
|
|
|
|
|
+ .r-item {
|
|
|
border-radius: 25px;
|
|
border-radius: 25px;
|
|
|
padding: 7px 12px;
|
|
padding: 7px 12px;
|
|
|
- border: 1px solid #8B8B8B;
|
|
|
|
|
- color: #8B8B8B;
|
|
|
|
|
-
|
|
|
|
|
|
|
+ border: 1px solid #8b8b8b;
|
|
|
|
|
+ color: #8b8b8b;
|
|
|
|
|
+
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
gap: 4px;
|
|
gap: 4px;
|