1453 lines
40 KiB
Vue
1453 lines
40 KiB
Vue
<template>
|
|
<view class="main">
|
|
<div class="top" :style="{
|
|
height: `${loginType === 'min' ? menu.bottom + 8 : ''}px`,
|
|
paddingTop: `${menu.top}px`,
|
|
}" v-if="false">
|
|
<div class="topContent">
|
|
<image class="backIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/backArrow.svg" @click="handleBack" />
|
|
|
|
<div class="first" @click="goSelectServer">
|
|
<image class="addressIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/blackFixed.png" />
|
|
<div class="text">{{ nowServiceObj.SERVERPART_NAME || "" }}</div>
|
|
<image class="moreIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/rightArrow.png" />
|
|
</div>
|
|
|
|
<div :class="inSearchAll ? 'inSearchAll' : 'searchAll'" @click="handleSearchAll">
|
|
查看全部
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="tabBox" v-if="false">
|
|
<div :class="fintType === 1000 ? 'tabItem active' : 'tabItem'" @click="handleChangeType(1000)">
|
|
失物信息
|
|
</div>
|
|
<div :class="fintType === 2000 ? 'tabItem active' : 'tabItem'" @click="handleChangeType(2000)">
|
|
招领信息
|
|
</div>
|
|
</div>
|
|
|
|
<div class="headerBox">
|
|
<div class="searchBox" :style="{
|
|
width: showSearchBtn ? 'calc(100% - 80rpx) ' : '100%',
|
|
}">
|
|
<image class="searchIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/searchIcon.png" />
|
|
<input class="inputBox" placeholder="请输入物品信息" style="font-size: 28rpx" v-model="searchText" confirm-type="send"
|
|
@focus="clickSearch" @blur="noClickSearch" @confirm="handleEntrySearch" />
|
|
<image class="closeIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/examine/close.svg"
|
|
@click="handleClearSearch" />
|
|
<!-- <image class="searchIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/searchIcon.png" />
|
|
<span class="searchText">请输入服务区</span> -->
|
|
</div>
|
|
<div class="searchBtn" v-if="showSearchBtn" @click="handleClickSearch">
|
|
搜索
|
|
</div>
|
|
<!-- <div class="filterBox" @click="showFilter" style="margin-left: 8px">
|
|
<image class="filterIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/filterIcon.svg" />
|
|
</div>
|
|
<div class="filterBox" @click="handleGoAdd" style="margin-left: 8px">
|
|
<image class="filterIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/addIcon.svg" />
|
|
</div> -->
|
|
</div>
|
|
<div class="newSelectBox">
|
|
<div class="leftBox">
|
|
<div class="first" @click="goSelectServer">
|
|
<image class="addressIcon" src="/static/home/newGreenFixed.svg" />
|
|
<div class="text">{{ nowServiceObj.SERVERPART_NAME || "" }}</div>
|
|
<image class="moreIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/rightArrow.png" />
|
|
</div>
|
|
</div>
|
|
|
|
<div :class="inSearchAll ? 'searchAll' : 'inSearchAll'" @click="handleSearchAll">
|
|
查看当前服务区
|
|
</div>
|
|
|
|
<!-- <div class="tabBoxNew">
|
|
<div :class="fintType === 1000 ? 'tabItemNew activeNew' : 'tabItemNew'" @click="handleChangeType(1000)">
|
|
失物
|
|
</div>
|
|
<div :class="fintType === 2000 ? 'tabItemNew activeNew' : 'tabItemNew'" @click="handleChangeType(2000)">
|
|
招领
|
|
</div>
|
|
</div> -->
|
|
</div>
|
|
|
|
<div class="newTabBox">
|
|
<div :class="fintType === 1000 ? 'tabItemNew activeNew' : 'tabItemNew'" @click="handleChangeType(1000)">
|
|
失物
|
|
</div>
|
|
<div :class="fintType === 2000 ? 'tabItemNew activeNew' : 'tabItemNew'" @click="handleChangeType(2000)">
|
|
招领
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pageList" :style="{
|
|
height: `calc(100vh - 76rpx - 92rpx - 50rpx - 76rpx - 72rpx - ${safeHeight + (loginType === 'android' ? 10 : 0)}px )`,
|
|
}">
|
|
<!-- - ${loginType === 'min' ? menu.bottom : menu.top * 2}px -->
|
|
<div v-if="dataList && dataList.length > 0" style="width: 100%; height: 100%">
|
|
<!-- <div class="pageTitle">物品 ({{ dataList.length || "" }})</div> -->
|
|
<scroll-view scroll-y class="listBox" :style="{
|
|
height: '100%'
|
|
}" refresher-enabled :refresher-triggered="triggered" @scrolltolower="handleScrollBottom"
|
|
@refresherrefresh="handleRefresh">
|
|
<div class="shopItem" v-for="(item, index) in dataList" :key="index" @click="handleGoDetail(item)">
|
|
<div class="leftImgNew">
|
|
<image @click.stop="handlePriviewImgList(item.ImageList[0].ImageUrl, item.ImageList)" class="img"
|
|
mode="aspectFit" :src="item.ImageList[0].ImageUrl" v-if="item.ImageList && item.ImageList.length > 0" />
|
|
<image class="img" mode="aspectFit" src="https://eshangtech.com/wanmeiyizhanImg/discovery/defaultIcon.png"
|
|
v-else />
|
|
</div>
|
|
|
|
<div class="rightItem">
|
|
<view class="titleBox">
|
|
<div class="title">
|
|
<!-- <span class="type">{{
|
|
fintType === 1000 ? "失物" : "招领"
|
|
}}</span> -->
|
|
<span class="normal">{{ item.beforeOtherName }}</span>
|
|
<span class="light">{{ item.lightName }}</span>
|
|
<span class="normal">{{ item.afterOtherName }}</span>
|
|
</div>
|
|
|
|
<div class="typeBox" :style="{
|
|
color: fintType === 1000 ? '#FF3A3A' : '',
|
|
background: fintType === 1000 ? '#FFD8D8' : '',
|
|
}">{{
|
|
fintType === 1000 ? "失物" : "招领"
|
|
}}</div>
|
|
</view>
|
|
|
|
<view class="contentView">
|
|
<view class="firstRow">
|
|
<view class="rowLeft">
|
|
<view class="label">服务区热线</view>
|
|
<view class="value">{{ item.SUGGESTION_REASON || "-" }}</view>
|
|
</view>
|
|
<view class="rowRight">
|
|
<!-- <image class="fixedIcon" src="" /> -->
|
|
<span class="value">{{ item.SERVERPART_NAME || "-" }}</span>
|
|
</view>
|
|
</view>
|
|
<view class="firstRow" style="margin-top: 8rpx;">
|
|
<view class="rowLeft">
|
|
<view class="label">联系人电话</view>
|
|
<view class="value"> {{ item.PHONE_NUMBER || "-" }}</view>
|
|
</view>
|
|
<view class="rowRight">
|
|
<!-- <image class="fixedIcon" src="" /> -->
|
|
<span class="value">{{ item.SUGGESTION_CREATEDATE || "-" }}</span>
|
|
</view>
|
|
</view>
|
|
|
|
|
|
<!-- <div class="timeBox">
|
|
{{ item.SUGGESTION_CREATEDATE || "-" }}
|
|
</div>
|
|
|
|
<div class="placeBox">
|
|
{{ item.SERVERPART_NAME || "-" }}
|
|
</div>
|
|
<div class="phone">
|
|
{{ item.PHONE_NUMBER || "-" }}
|
|
</div>
|
|
<div class="phone" v-if="item.SUGGESTION_REASON">
|
|
<span class="label">服务区热线</span>
|
|
{{ item.SUGGESTION_REASON || "-" }}
|
|
</div> -->
|
|
</view>
|
|
</div>
|
|
|
|
<div v-if="false">
|
|
<div class="title">
|
|
<span class="normal">{{ item.beforeOtherName }}</span>
|
|
<span class="light">{{ item.lightName }}</span>
|
|
<span class="normal">{{ item.afterOtherName }}</span>
|
|
</div>
|
|
<div class="timeBox">
|
|
<image class="timeIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/timeIcon.png" />
|
|
<span class="timeText">{{ item.SUGGESTION_CREATEDATE }}</span>
|
|
</div>
|
|
<div class="phoneBox">
|
|
<!-- <image
|
|
class="phoneIcon"
|
|
src="https://eshangtech.com/wanmeiyizhanImg/home/phoneIcon.svg"
|
|
/>
|
|
<span class="phoneText">{{ item.PHONE_NUMBER }}</span> -->
|
|
<image class="phoneIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/communityInteraction.svg" />
|
|
|
|
<span class="phoneText">{{ item.SERVERPART_NAME }}</span>
|
|
</div>
|
|
<div class="callPhoneBox" @click="handleCallPhone(item)">
|
|
<image class="callPhoneIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/phone.png" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div v-if="dataList && dataList.length > 0">
|
|
<view class="inBottom">
|
|
<text class="bottomText">{{
|
|
pageObj.isOver ? "我是有底线的" : "下拉加载更多"
|
|
}}</text>
|
|
</view>
|
|
</div>
|
|
</scroll-view>
|
|
</div>
|
|
<div v-if="!(dataList && dataList.length > 0)" style="width: 100%; padding-top: 160px">
|
|
<no-data text="暂无物品信息" :isShow="true" :type="1"></no-data>
|
|
</div>
|
|
</div>
|
|
|
|
<view class="addNewPost" @click="handleGoAdd">
|
|
<view class="newPostBox">
|
|
<!-- <image class="addIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/addPost.svg" /> -->
|
|
<text class="addText">{{
|
|
fintType === 1000 ? "新增失物" : fintType === 2000 ? "新增招领" : ""
|
|
}}</text>
|
|
</view>
|
|
</view>
|
|
|
|
<uni-popup ref="popup" :show="isShow" :safe-area="false" @close="handleClosePopup">
|
|
<div class="popupBox">
|
|
<div class="popupTitle">
|
|
<image class="closeIcon" src="https://eshangtech.com/wanmeiyizhanImg/home/closeIcon.svg"
|
|
@click="handleClosePopup" />
|
|
<span class="titleText">更多筛选</span>
|
|
<div class="closeIcon"></div>
|
|
</div>
|
|
<div class="popupList">
|
|
<div class="popupLeftBox">
|
|
<div :class="leftSelectIndex === index ? 'itemType selectType' : 'itemType'
|
|
" v-for="(item, index) in leftTypeList" :key="index" @click="handleSelectType(index, item.value)">
|
|
{{ item.label }}
|
|
</div>
|
|
</div>
|
|
<scroll-view :scroll-y="true" :scroll-into-view="scrollTop" show-scrollbar="false"
|
|
:scroll-with-animation="true" class="popupRightBox">
|
|
<div class="rightItem" :id="'shop' + item.value" v-for="(item, index) in leftTypeList" :key="index">
|
|
<template v-if="index !== 0">
|
|
<div class="itemTitle">{{ item.label }}</div>
|
|
<div class="rightTypeList" v-if="item.children && item.children.length > 0">
|
|
<div :class="subItem.value === rightSelectValue
|
|
? 'rightType selectRightType'
|
|
: 'rightType'
|
|
" v-for="(subItem, subIndex) in item.children" :key="subIndex"
|
|
@click="handleChangeRightSelect(index, subItem.value)">
|
|
{{ subItem.label }}
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</div>
|
|
</scroll-view>
|
|
</div>
|
|
<div class="btnBox" @click="handleClickConfirm">
|
|
<div class="btn">确定</div>
|
|
</div>
|
|
</div>
|
|
</uni-popup>
|
|
<CustomLoading :visible="isLoading" v-if="isLoading" @update:visible="(val) => (isLoading = val)" />
|
|
</view>
|
|
</template>
|
|
<script>
|
|
import UniPopup from "@/uni_modules/uni-popup/components/uni-popup/uni-popup.vue";
|
|
import NoData from "../../components/noData.vue";
|
|
import CustomLoading from "../../components/customLoading.vue";
|
|
export default {
|
|
data() {
|
|
return {
|
|
nowServiceObj: {}, // 当前的服务区信息
|
|
isShow: false, // 悬浮框的是否显示
|
|
dataList: [
|
|
// {
|
|
// beforeOtherName: "罗马仕",
|
|
// lightName: "充电宝",
|
|
// afterOtherName: "",
|
|
// time: "2024-12-12 10:34:34",
|
|
// phone: "123456789",
|
|
// },
|
|
], // 数据列表
|
|
leftTypeList: [], // 悬浮框左侧的列表
|
|
leftSelectIndex: 0, // 左侧的默认选择
|
|
rightSelectValue: 0, // 右侧的改变
|
|
scrollTop: "", // 滚动的锚点
|
|
searchText: "", // 查询的内容
|
|
showSearchBtn: false, // 点击输入框时 出现搜索按钮
|
|
menu: {}, // 手机样式
|
|
goAdd: false, // 判断是否已经跳转了新增页面
|
|
inSearchAll: true, // 判断是否查看全部服务区
|
|
pageObj: {
|
|
pageSize: 10,
|
|
pageIndex: 1,
|
|
isOver: false,
|
|
},
|
|
triggered: false, // 下拉状态
|
|
fintType: 1000, // 1000 失物 2000 招领
|
|
loginType: "",
|
|
isLoading: false,
|
|
safeHeight: 0
|
|
};
|
|
},
|
|
components: {
|
|
UniPopup,
|
|
NoData,
|
|
CustomLoading,
|
|
},
|
|
onLoad() {
|
|
let systemInfo = uni.getSystemInfoSync();
|
|
let type = uni.getStorageSync("loginType");
|
|
this.loginType = type;
|
|
|
|
if (type === "min") {
|
|
this.menu = uni.getMenuButtonBoundingClientRect();
|
|
} else {
|
|
this.menu = systemInfo.safeArea;
|
|
}
|
|
this.safeHeight = systemInfo.safeArea.bottom - systemInfo.safeArea.height
|
|
console.log('systemInfo', systemInfo);
|
|
// console.log('this.menu', this.menu);
|
|
|
|
let currentService = uni.getStorageSync("currentService");
|
|
this.nowServiceObj = currentService;
|
|
this.handleGetTypeList();
|
|
this.handleGetListData();
|
|
this.$utils.addUserBehaviorNew();
|
|
},
|
|
onShow() {
|
|
let currentService = uni.getStorageSync("currentService");
|
|
if (currentService.SERVERPART_ID !== this.nowServiceObj.SERVERPART_ID) {
|
|
this.nowServiceObj = currentService;
|
|
this.dataList = [];
|
|
this.handleGetListData();
|
|
// this.goAdd = false;
|
|
}
|
|
|
|
let contactReload = uni.getStorageSync("contactReload");
|
|
if (contactReload) {
|
|
this.dataList = [];
|
|
this.pageObj = {
|
|
pageSize: 10,
|
|
pageIndex: 1,
|
|
isOver: false,
|
|
};
|
|
|
|
this.handleGetListData();
|
|
uni.setStorageSync("contactReload", null);
|
|
}
|
|
},
|
|
methods: {
|
|
// 清除输入框中的内容
|
|
handleClearSearch() {
|
|
this.searchText = ""
|
|
this.dataList = [];
|
|
this.pageObj = {
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
isOver: false,
|
|
};
|
|
this.handleGetListData();
|
|
},
|
|
// 查看预览图片
|
|
handlePriviewImgList(url, list) {
|
|
let urlList = []
|
|
if (list && list.length > 0) {
|
|
list.forEach((item) => {
|
|
urlList.push(item.ImageUrl)
|
|
})
|
|
}
|
|
uni.previewImage({
|
|
current: url, // 当前显示图片的http链接
|
|
urls: urlList, // 需要预览的图片http链接列表
|
|
});
|
|
},
|
|
// 查看详情
|
|
handleGoDetail(obj) {
|
|
uni.navigateTo({
|
|
url: `/pages/contact/addContact?id=${obj.SUGGESTION_ID}&addType=${obj.WECHAT_OPENID}&serviceID=${obj.SERVERPART_ID}`,
|
|
});
|
|
},
|
|
// 回车查询调用的方法
|
|
handleEntrySearch() {
|
|
this.dataList = [];
|
|
this.pageObj = {
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
isOver: false,
|
|
};
|
|
this.handleGetListData();
|
|
},
|
|
// 改变查询的类型
|
|
handleChangeType(value) {
|
|
this.fintType = value;
|
|
this.$forceUpdate();
|
|
this.dataList = [];
|
|
this.pageObj = {
|
|
pageSize: 10,
|
|
pageIndex: 1,
|
|
isOver: false,
|
|
};
|
|
this.handleGetListData();
|
|
},
|
|
// 下拉刷新
|
|
async handleRefresh(e) {
|
|
this.triggered = true;
|
|
this.dataList = [];
|
|
this.pageObj = {
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
isOver: false,
|
|
};
|
|
await this.handleGetListData();
|
|
this.triggered = false;
|
|
},
|
|
// 滚动到底部
|
|
handleScrollBottom() {
|
|
this.pageObj.pageIndex += 1;
|
|
if (!this.pageObj.isOver) {
|
|
this.handleGetListData();
|
|
}
|
|
},
|
|
// 查看全部
|
|
handleSearchAll() {
|
|
this.inSearchAll = !this.inSearchAll;
|
|
this.dataList = [];
|
|
this.pageObj = {
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
isOver: false,
|
|
};
|
|
this.handleGetListData();
|
|
},
|
|
// 返回上一级
|
|
handleBack() {
|
|
uni.navigateBack({
|
|
delta: 1,
|
|
});
|
|
},
|
|
// 跳转去添加失物的页面
|
|
handleGoAdd() {
|
|
// this.goAdd = true;
|
|
uni.navigateTo({
|
|
url: `/pages/contact/addContact?addType=${this.fintType}`,
|
|
});
|
|
},
|
|
// 跳转到地图选择服务区
|
|
goSelectServer() {
|
|
uni.navigateTo({ url: "/pages/newMap/index/index" });
|
|
},
|
|
showFilter() {
|
|
this.isShow = true;
|
|
this.$refs.popup.open("bottom");
|
|
},
|
|
handleClosePopup() {
|
|
this.$refs.popup.close();
|
|
this.isShow = false;
|
|
},
|
|
// 拿到类型枚举
|
|
async handleGetTypeList() {
|
|
this.isLoading = true;
|
|
const data = await this.$api.$get(
|
|
"/EShangApiMain/FrameWork/GetFieldEnumTree",
|
|
{ FieldExplainField: "business_target" }
|
|
);
|
|
let list = this.$utils.wrapTreeNode(data.Result_Data.List);
|
|
let res = [];
|
|
if (list && list.length > 0) {
|
|
list.forEach((item) => {
|
|
if (item.value === 6000) {
|
|
res = item.children;
|
|
}
|
|
});
|
|
}
|
|
|
|
res.unshift({ label: "全部", value: 6000 });
|
|
this.leftTypeList = res;
|
|
this.isLoading = false;
|
|
},
|
|
// 左侧类型的选择
|
|
handleSelectType(index, itemValue) {
|
|
this.leftSelectIndex = index;
|
|
this.scrollTop = "shop" + itemValue;
|
|
},
|
|
// 右侧的选择事件 会改变左侧的选中效果
|
|
handleChangeRightSelect(leftIndex, rightValue) {
|
|
if (this.rightSelectValue === rightValue) {
|
|
this.leftSelectIndex = 0;
|
|
this.rightSelectValue = 0;
|
|
} else {
|
|
this.leftSelectIndex = leftIndex;
|
|
this.rightSelectValue = rightValue;
|
|
}
|
|
},
|
|
// 点击悬浮框里面的确定
|
|
handleClickConfirm() {
|
|
this.handleClosePopup();
|
|
this.handleGetListData();
|
|
},
|
|
handleClickSearch() {
|
|
this.dataList = [];
|
|
this.pageObj = {
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
isOver: false,
|
|
};
|
|
this.handleGetListData()
|
|
},
|
|
// 拿到失物招领的数据 只要最近三个月的数据
|
|
async handleGetListData() {
|
|
this.isLoading = true;
|
|
const req = {
|
|
SearchParameter: {
|
|
SUGGESTION_TYPES: 4000,
|
|
SERVERPART_IDS: this.inSearchAll
|
|
? ""
|
|
: this.nowServiceObj.SERVERPART_ID || "",
|
|
SUGGESTION_STATES: 1,
|
|
ENUM_LABEL: this.rightSelectValue || "",
|
|
WECHAT_OPENID: this.fintType,
|
|
SUGGESTION_CREATEDATE_Start: this.$moment
|
|
.now()
|
|
.set("month", -3)
|
|
.format("YYYY-MM-DD"),
|
|
SUGGESTION_CREATEDATE_End: this.$moment.now().format("YYYY-MM-DD"),
|
|
},
|
|
SortStr: "SUGGESTION_CREATEDATE desc",
|
|
PageSize: this.pageObj.pageSize,
|
|
PageIndex: this.pageObj.pageIndex,
|
|
keyWord: {
|
|
Key: "SUGGESTION_TITLE",
|
|
value: this.searchText,
|
|
},
|
|
// PageIndex: 1,
|
|
// PageSize: 999999,
|
|
};
|
|
const data = await this.$api.$post(
|
|
"/EShangApiMain/SiteManage/GetSUGGESTIONList",
|
|
req
|
|
);
|
|
let oldList = [];
|
|
if (this.dataList && this.dataList.length > 0) {
|
|
oldList = JSON.parse(JSON.stringify(this.dataList));
|
|
}
|
|
|
|
console.log('oldListoldListoldListoldList', JSON.parse(JSON.stringify(oldList)));
|
|
|
|
|
|
let list = data.Result_Data.List;
|
|
if (list && list.length > 0) {
|
|
if (list.length < this.pageObj.pageSize) {
|
|
this.pageObj.isOver = true;
|
|
}
|
|
|
|
list.forEach((item) => {
|
|
if (this.searchText) {
|
|
let obj = this.extractParts(item.SUGGESTION_TITLE, this.searchText);
|
|
item.beforeOtherName = obj.beforeKeyword || "";
|
|
item.lightName = obj.keyword || "";
|
|
item.afterOtherName = obj.afterKeyword || "";
|
|
} else {
|
|
item.beforeOtherName = item.SUGGESTION_TITLE;
|
|
}
|
|
});
|
|
} else {
|
|
this.pageObj.isOver = true;
|
|
}
|
|
console.log('listlistlistlistlistlistlistlist', JSON.parse(JSON.stringify(list)));
|
|
this.dataList = oldList.concat(list);
|
|
this.isLoading = false;
|
|
},
|
|
// 截取关键字前后 关键字的方法
|
|
extractParts(str, keyword) {
|
|
const keywordIndex = str.indexOf(keyword);
|
|
if (keywordIndex === -1) {
|
|
return null; // 如果找不到关键字,则返回 null
|
|
}
|
|
// 截取关键字前的内容
|
|
const beforeKeyword = str.substring(0, keywordIndex);
|
|
// 截取关键字后的内容
|
|
const afterKeyword = str.substring(keywordIndex + keyword.length);
|
|
// 返回结果对象
|
|
return {
|
|
keyword: keyword,
|
|
beforeKeyword: beforeKeyword,
|
|
afterKeyword: afterKeyword,
|
|
};
|
|
},
|
|
// 出现搜索按钮
|
|
clickSearch() {
|
|
this.showSearchBtn = true;
|
|
},
|
|
// 关闭搜索按钮
|
|
noClickSearch() {
|
|
this.showSearchBtn = false;
|
|
// this.handleGetListData()
|
|
},
|
|
// 调起打电话
|
|
handleCallPhone(obj) {
|
|
uni.makePhoneCall({
|
|
phoneNumber: obj.PHONE_NUMBER, //仅为示例
|
|
});
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style scoped lang="less">
|
|
.main {
|
|
width: 100%;
|
|
height: 100vh;
|
|
background: #fff;
|
|
box-sizing: border-box;
|
|
padding: 38rpx 28rpx;
|
|
padding-bottom: constant(safe-area-inset-bottom);
|
|
padding-bottom: env(safe-area-inset-bottom);
|
|
|
|
.top {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
background: #fff;
|
|
|
|
.topContent {
|
|
display: flex;
|
|
align-items: center;
|
|
box-sizing: border-box;
|
|
padding: 0 16px;
|
|
|
|
.backIcon {
|
|
width: 48rpx;
|
|
height: 48rpx;
|
|
margin-right: 8px;
|
|
}
|
|
|
|
.first {
|
|
display: flex;
|
|
align-items: center;
|
|
box-sizing: border-box;
|
|
border: 1rpx solid #e7e7e6;
|
|
border-radius: 48rpx;
|
|
padding: 12rpx 24rpx;
|
|
|
|
.addressIcon {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
margin-right: 8rpx;
|
|
}
|
|
|
|
.text {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
color: #090c1a;
|
|
line-height: 40rpx;
|
|
text-align: justify;
|
|
font-style: normal;
|
|
}
|
|
|
|
.moreIcon {
|
|
margin-left: 8rpx;
|
|
width: 24rpx;
|
|
height: 24rpx;
|
|
}
|
|
}
|
|
|
|
.searchAll {
|
|
width: 120rpx;
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 24rpx;
|
|
color: #090c1a;
|
|
line-height: 40rpx;
|
|
text-align: justify;
|
|
font-style: normal;
|
|
margin-left: 8rpx;
|
|
text-align: center;
|
|
}
|
|
|
|
.inSearchAll {
|
|
width: 120rpx;
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 24rpx;
|
|
color: #fff;
|
|
line-height: 40rpx;
|
|
text-align: justify;
|
|
font-style: normal;
|
|
margin-left: 8rpx;
|
|
background: #ba922f;
|
|
text-align: center;
|
|
border-radius: 8rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.tabBox {
|
|
width: 100%;
|
|
height: 60rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
margin-top: 16rpx;
|
|
border-bottom: 1px solid #f6f6f6;
|
|
|
|
.tabItem {
|
|
width: 50%;
|
|
height: 100%;
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
color: #716f69;
|
|
line-height: 40rpx;
|
|
text-align: center;
|
|
font-style: normal;
|
|
}
|
|
|
|
.active {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
color: #130f05;
|
|
line-height: 40rpx;
|
|
text-align: center;
|
|
font-style: normal;
|
|
position: relative;
|
|
}
|
|
|
|
.active:after {
|
|
content: "";
|
|
width: 2rem;
|
|
height: 6rpx;
|
|
background: #ba922f;
|
|
position: absolute;
|
|
left: 50%;
|
|
bottom: 6rpx;
|
|
transform: translateX(-50%);
|
|
}
|
|
}
|
|
|
|
.headerBox {
|
|
height: 60rpx;
|
|
box-sizing: border-box;
|
|
background: #fff;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 32rpx;
|
|
|
|
.searchBox {
|
|
width: 100%;
|
|
// width: calc(100% - 104rpx);
|
|
height: 60rpx;
|
|
background: #f5f6f7;
|
|
border-radius: 8rpx;
|
|
box-sizing: border-box;
|
|
padding: 16rpx 20rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.searchIcon {
|
|
width: 36rpx;
|
|
height: 36rpx;
|
|
margin-right: 10rpx;
|
|
}
|
|
|
|
.inputBox {
|
|
width: 100%;
|
|
// width: calc(100% - 160rpx);
|
|
}
|
|
|
|
.closeIcon {
|
|
width: 36rpx;
|
|
height: 36rpx;
|
|
margin-left: 10rpx;
|
|
}
|
|
|
|
.searchText {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
color: rgba(0, 0, 0, 0.5);
|
|
line-height: 40rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
margin-left: 8rpx;
|
|
}
|
|
}
|
|
|
|
.searchBtn {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
color: #130f05;
|
|
line-height: 44rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
|
|
.filterBox {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
background: #f5f6f7;
|
|
border-radius: 8rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
.filterIcon {
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.newSelectBox {
|
|
width: 100%;
|
|
height: 50rpx;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
.leftBox {
|
|
max-width: 70%;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.first {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.addressIcon {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
margin-right: 10rpx;
|
|
}
|
|
|
|
.text {
|
|
font-family: "PingFangSC";
|
|
font-weight: 400;
|
|
font-size: 30rpx;
|
|
color: #090c1a;
|
|
line-height: 36rpx;
|
|
text-align: justify;
|
|
font-style: normal;
|
|
}
|
|
|
|
.moreIcon {
|
|
margin-left: 8rpx;
|
|
width: 24rpx;
|
|
height: 24rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.searchAll {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 30rpx;
|
|
color: #fff;
|
|
line-height: 36rpx;
|
|
text-align: justify;
|
|
font-style: normal;
|
|
margin-left: 8rpx;
|
|
text-align: center;
|
|
padding: 4rpx 16rpx;
|
|
background-color: #D0D0D0;
|
|
border-radius: 32rpx;
|
|
}
|
|
|
|
.inSearchAll {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 30rpx;
|
|
color: #fff;
|
|
line-height: 36rpx;
|
|
text-align: justify;
|
|
font-style: normal;
|
|
margin-left: 8rpx;
|
|
background: #00C920;
|
|
text-align: center;
|
|
border-radius: 32rpx;
|
|
padding: 4rpx 16rpx;
|
|
}
|
|
|
|
.tabBoxNew {
|
|
border: 2rpx solid #ba922f;
|
|
border-radius: 8rpx;
|
|
box-sizing: border-box;
|
|
|
|
.tabItemNew {
|
|
display: inline-block;
|
|
padding: 4rpx 16rpx;
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 30rpx;
|
|
color: #ba922f;
|
|
line-height: 36rpx;
|
|
text-align: center;
|
|
font-style: normal;
|
|
}
|
|
|
|
.activeNew {
|
|
background: #ba922f;
|
|
color: #fff;
|
|
}
|
|
}
|
|
}
|
|
|
|
.newTabBox {
|
|
width: 100%;
|
|
height: 60rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
margin-top: 16rpx;
|
|
|
|
.tabItemNew {
|
|
font-family: "Microsoft YaHei";
|
|
font-weight: 400;
|
|
font-size: 30rpx;
|
|
color: #B7B7B7;
|
|
text-align: left;
|
|
font-style: normal;
|
|
padding: 0 26rpx;
|
|
}
|
|
|
|
.activeNew {
|
|
color: #000;
|
|
position: relative;
|
|
}
|
|
|
|
.activeNew::after {
|
|
content: '';
|
|
width: 2rem;
|
|
height: 4rpx;
|
|
background-color: #009DFF;
|
|
position: absolute;
|
|
bottom: -10rpx;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
}
|
|
}
|
|
|
|
.pageList {
|
|
width: 100%;
|
|
// height: calc(100vh - 200rpx);
|
|
box-sizing: border-box;
|
|
margin-top: 36rpx;
|
|
margin-bottom: 16rpx;
|
|
|
|
.pageTitle {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 32rpx;
|
|
color: #130f05;
|
|
line-height: 44rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.listBox {
|
|
width: 100%;
|
|
// height: calc(100% - 80rpx);
|
|
overflow-y: auto;
|
|
|
|
.shopItem {
|
|
width: 100%;
|
|
margin-bottom: 24rpx;
|
|
background: #ffffff;
|
|
border-radius: 6rpx;
|
|
// border: 2rpx solid #f5f6f7;
|
|
box-sizing: border-box;
|
|
// padding: 24rpx;
|
|
position: relative;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
|
|
.leftImgNew {
|
|
width: 192rpx;
|
|
height: 192rpx;
|
|
border-radius: 16rpx;
|
|
overflow: hidden;
|
|
margin-right: 24rpx;
|
|
|
|
.img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
.rightItem {
|
|
width: calc(100% - 216rpx);
|
|
height: 192rpx;
|
|
// height: 200rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
// padding: 20rpx 0 28rpx 0;
|
|
|
|
.titleBox {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
|
|
.title {
|
|
width: calc(100% - 110rpx);
|
|
font-family: "PingFangSC";
|
|
font-weight: 400;
|
|
font-size: 30rpx;
|
|
color: #130f05;
|
|
line-height: 36rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
/* 设置显示的行数 */
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
|
|
.type {
|
|
font-size: 30rpx;
|
|
color: #d57a35;
|
|
margin-right: 12rpx;
|
|
}
|
|
|
|
.normal {
|
|
font-family: "PingFangSC";
|
|
font-weight: 400;
|
|
font-size: 26rpx;
|
|
color: #130f05;
|
|
line-height: 44rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
|
|
.light {
|
|
font-family: "PingFangSC";
|
|
font-weight: 400;
|
|
font-size: 26rpx;
|
|
color: #ba922f;
|
|
line-height: 44rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
|
|
.typeBox {
|
|
width: 90rpx;
|
|
font-family: "Microsoft YaHei";
|
|
font-weight: 400;
|
|
font-size: 22rpx;
|
|
color: #00C920;
|
|
text-align: center;
|
|
font-style: normal;
|
|
padding: 4rpx 0;
|
|
background-color: #CCF4D2;
|
|
border-radius: 8rpx;
|
|
margin-top: 8rpx;
|
|
}
|
|
}
|
|
|
|
.contentView {
|
|
.firstRow {
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
.rowLeft {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.label {
|
|
font-family: "Microsoft YaHei";
|
|
font-weight: 400;
|
|
font-size: 22rpx;
|
|
color: rgba(0, 0, 0, 0.5);
|
|
text-align: left;
|
|
font-style: normal;
|
|
display: inline-block;
|
|
width: 110rpx;
|
|
margin-right: 10rpx;
|
|
}
|
|
|
|
.value {
|
|
font-family: "Microsoft YaHei";
|
|
font-weight: 400;
|
|
font-size: 22rpx;
|
|
color: #000000;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
|
|
.rowRight {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.value {
|
|
font-family: "Microsoft YaHei";
|
|
font-weight: 400;
|
|
font-size: 22rpx;
|
|
color: rgba(0, 0, 0, 0.5);
|
|
text-align: left;
|
|
font-style: normal;
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// .timeBox,
|
|
// .placeBox,
|
|
// .phone {
|
|
// width: 100%;
|
|
// font-family: "PingFangSC";
|
|
// font-weight: 400;
|
|
// font-size: 26rpx;
|
|
// color: #716f69;
|
|
// line-height: 38rpx;
|
|
// text-align: left;
|
|
// font-style: normal;
|
|
|
|
// .label {
|
|
// font-family: "PingFangSC";
|
|
// font-weight: 400;
|
|
// font-size: 26rpx;
|
|
// color: #716f69;
|
|
// line-height: 38rpx;
|
|
// text-align: left;
|
|
// font-style: normal;
|
|
// margin-right: 12rpx;
|
|
// width: 150rpx;
|
|
// display: inline-block;
|
|
// }
|
|
// }
|
|
}
|
|
|
|
.title {
|
|
width: calc(100% - 72rpx);
|
|
// text-overflow: ellipsis;
|
|
// overflow: hidden;
|
|
// white-space: nowrap;
|
|
display: -webkit-box;
|
|
/* 使用弹性盒模型 */
|
|
-webkit-box-orient: vertical;
|
|
/* 垂直排列 */
|
|
overflow: hidden;
|
|
/* 超出部分隐藏 */
|
|
-webkit-line-clamp: 6;
|
|
/* 限制最多显示多少行文本 */
|
|
text-overflow: ellipsis;
|
|
|
|
/* 超出部分用省略号显示 */
|
|
.normal {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 32rpx;
|
|
color: #130f05;
|
|
line-height: 44rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
|
|
.light {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 32rpx;
|
|
color: #ba922f;
|
|
line-height: 44rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
|
|
.timeBox {
|
|
margin-top: 8rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.timeIcon {
|
|
width: 24rpx;
|
|
height: 24rpx;
|
|
margin-right: 8rpx;
|
|
}
|
|
|
|
.timeText {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 24rpx;
|
|
color: #716f69;
|
|
line-height: 36rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
|
|
.phoneBox {
|
|
margin-top: 4rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.phoneIcon {
|
|
width: 24rpx;
|
|
height: 24rpx;
|
|
margin-right: 8rpx;
|
|
}
|
|
|
|
.phoneText {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 24rpx;
|
|
color: #716f69;
|
|
line-height: 36rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
|
|
.callPhoneBox {
|
|
position: absolute;
|
|
right: 24rpx;
|
|
top: 24rpx;
|
|
width: 64rpx;
|
|
height: 64rpx;
|
|
background: #f5f6f7;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
.callPhoneIcon {
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.inBottom {
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
.bottomText {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 26rpx;
|
|
color: #d0d0d0;
|
|
line-height: 40rpx;
|
|
text-align: justify;
|
|
font-style: normal;
|
|
position: relative;
|
|
padding: 6rpx 0;
|
|
}
|
|
|
|
.bottomText::after {
|
|
content: "";
|
|
width: 30vw;
|
|
height: 2rpx;
|
|
background: #e0e0e0;
|
|
position: absolute;
|
|
left: -32vw;
|
|
top: 50%;
|
|
}
|
|
|
|
.bottomText::before {
|
|
content: "";
|
|
width: 30vw;
|
|
height: 2rpx;
|
|
background: #e0e0e0;
|
|
position: absolute;
|
|
right: -32vw;
|
|
top: 50%;
|
|
}
|
|
}
|
|
}
|
|
|
|
.listBox ::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.addNewPost {
|
|
width: calc(100% - 80rpx);
|
|
height: 72rpx;
|
|
margin-left: 40rpx;
|
|
background: #07C160;
|
|
border-radius: 6rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
box-sizing: border-box;
|
|
justify-content: center;
|
|
|
|
.newPostBox {
|
|
display: inline-block;
|
|
padding: 14rpx 24rpx;
|
|
border-radius: 36rpx;
|
|
background: #07C160;
|
|
|
|
.addIcon {
|
|
width: 28rpx;
|
|
height: 28rpx;
|
|
margin-right: 8rpx;
|
|
}
|
|
|
|
.addText {
|
|
font-family: "PingFangSC";
|
|
font-weight: 400;
|
|
font-size: 30rpx;
|
|
color: #ffffff;
|
|
line-height: 44rpx;
|
|
text-align: center;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
}
|
|
|
|
.popupBox {
|
|
width: 100vw;
|
|
height: 80vh;
|
|
background: #fff;
|
|
|
|
.popupTitle {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
padding: 32rpx;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
|
|
.closeIcon {
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
}
|
|
|
|
.titleText {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 32rpx;
|
|
color: #130f05;
|
|
line-height: 44rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
|
|
.popupList {
|
|
width: 100%;
|
|
height: calc(100% - 250rpx);
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.popupLeftBox {
|
|
width: 200rpx;
|
|
height: 100%;
|
|
background: #f5f6f7;
|
|
overflow-y: auto;
|
|
|
|
.itemType {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
padding: 24rpx 0;
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
color: #130f05;
|
|
line-height: 40rpx;
|
|
text-align: center;
|
|
font-style: normal;
|
|
}
|
|
|
|
.selectType {
|
|
color: #ba922f;
|
|
background: #fff;
|
|
}
|
|
}
|
|
|
|
.popupRightBox {
|
|
width: calc(100% - 200rpx);
|
|
height: 100%;
|
|
background: #fff;
|
|
box-sizing: border-box;
|
|
padding: 0 50rpx 0 32rpx;
|
|
overflow-y: auto;
|
|
|
|
.rightItem {
|
|
width: 100%;
|
|
margin-bottom: 24rpx;
|
|
|
|
.itemTitle {
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
color: #130f05;
|
|
line-height: 40rpx;
|
|
text-align: left;
|
|
font-style: normal;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.rightTypeList {
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
|
|
.rightType {
|
|
display: block;
|
|
width: calc((100% - 48rpx) / 3);
|
|
height: 64rpx;
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
color: #716f69;
|
|
line-height: 40rpx;
|
|
font-style: normal;
|
|
background: #f5f6f7;
|
|
border-radius: 4rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-bottom: 16rpx;
|
|
margin-right: 16rpx;
|
|
}
|
|
|
|
.selectRightType {
|
|
color: #ffffff;
|
|
background: #ba922f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.popupLeftBox::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
.popupRightBox::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.btnBox {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
padding: 16rpx 40rpx;
|
|
|
|
.btn {
|
|
width: 100%;
|
|
background: #ba922f;
|
|
border-radius: 6rpx;
|
|
text-align: center;
|
|
font-family: PingFangSC, PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 32rpx;
|
|
color: #ffffff;
|
|
line-height: 44rpx;
|
|
text-align: center;
|
|
font-style: normal;
|
|
padding: 22rpx 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style> |