detection-user/pages/detection/VehicleInspection.vue

676 lines
14 KiB
Vue
Raw Normal View History

2024-09-01 18:16:43 +08:00
<template>
<view class="content">
<view class="c-top">
<view class="" @click="getback()">
<uni-icons type="left" size="18"></uni-icons>
</view>
<view class="c-t-input">
<uni-icons type="search" size="22" color="#BCBCBC"></uni-icons>
<input type="text" placeholder="输入关键词搜索" v-model="searchValue">
</view>
<view class="" @click="sousuo()">搜索</view>
</view>
2025-07-11 10:20:49 +08:00
<!-- <view class="top-list">-->
<!-- <view class="list-box" @click="getqbfl()">-->
<!-- <view class="">全部分类-->
<!-- <uni-icons type="bottom" size="14"></uni-icons>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view :class="{'lan':threeoptions == 2}" class="list-box" @click="getfwjl()">-->
<!-- <view class="">距离优先-->
<!-- <uni-icons type="bottom" size="14"></uni-icons>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view class="list-box" @click="getzhsx()">-->
<!-- <view class="">综合筛选-->
<!-- <uni-icons type="bottom" size="14"></uni-icons>-->
<!-- </view>-->
<!-- </view>-->
<!-- </view>-->
2024-09-01 18:16:43 +08:00
<!-- 遮罩 -->
<u-overlay class="nbian" :show="show" @click="show = false">
<view class="c-top">
<view class="" @click="getback()">
<uni-icons type="left" size="18"></uni-icons>
</view>
<view class="c-t-input">
<uni-icons type="search" size="22" color="#BCBCBC"></uni-icons>
<input type="text" placeholder="输入关键词搜索">
</view>
<view class=""></view>
</view>
<view class="top-list">
<view :class="{'lan':threeoptions == 1}" class="list-box" @tap.stop="getqbfl()">
2025-07-11 10:20:49 +08:00
<view class="">全部分类
<uni-icons type="bottom" size="14"></uni-icons>
</view>
2024-09-01 18:16:43 +08:00
</view>
<view class="list-box">
2025-07-11 10:20:49 +08:00
<view class="">距离优先
<uni-icons type="bottom" size="14"></uni-icons>
</view>
2024-09-01 18:16:43 +08:00
</view>
<view :class="{'lan':threeoptions == 3}" class="list-box" @tap.stop="getzhsx()">
2025-07-11 10:20:49 +08:00
<view class="">综合筛选
<uni-icons type="bottom" size="14"></uni-icons>
</view>
2024-09-01 18:16:43 +08:00
</view>
</view>
<!-- 全部分类 -->
<scroll-view class="x-xiang" scroll-y :scroll-with-animation="true" :style="scrollStyle"
v-if="threeoptions == 1">
<view :class="{'ax':pding == index}" class="ann" v-for="(item,index) in Alloptions" :key="index"
@tap.stop="qhzz(index ,item.id)">
2025-07-11 10:20:49 +08:00
<view class="">{{ item.categoryName }}</view>
2024-09-01 18:16:43 +08:00
</view>
</scroll-view>
<!-- 综合筛选 -->
<view class="x-ing" v-if="threeoptions == 3">
<view class="">检测分类</view>
<!-- 要处理的地方 -->
<scroll-view class="x-xiang" scroll-y :scroll-with-animation="true" :style="scrollStyle">
<view :class="{'ax':pding == index}" class="ann" v-for="(item,index) in Alloptions" :key="index"
@tap.stop="qhzz(index ,item.id)">
2025-07-11 10:20:49 +08:00
<view class="">{{ item.categoryName }}</view>
2024-09-01 18:16:43 +08:00
</view>
</scroll-view>
2025-07-11 10:20:49 +08:00
<view class="">距离范围
<text class="lan">{{ distance ? distance : 100 }} km</text>
</view>
2024-09-01 18:16:43 +08:00
<u-slider v-model="distance" inactiveColor="#0D2E8D" activeColor="#0D2E8D" min="1" max="80"></u-slider>
<view class="">评价筛选</view>
<view class="x-xiang">
<view :class="{'ax':orderType == 'hp'}" class="ann" @tap.stop="gethp">
<view class="">好评优先</view>
</view>
<view :class="{'ax':orderType == 'xl'}" class="ann" @tap.stop="getxl">
<view class="">销量优先</view>
</view>
</view>
</view>
<view class="xsanniu" @tap.stop="show = false">
<view class="fanhu">
<view class="">返回</view>
</view>
<view class="wc" @tap.stop="getwc">
<view class="">完成</view>
</view>
</view>
</u-overlay>
<!-- 遮罩结束 -->
<view class="dil">
<view class="bjimg" v-if="listarr == ''">
<image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image>
</view>
<view class="d-box" v-for="(item,index) in listarr" :key="index">
<view class="box-top">
<view style="display: flex;">
<view class="touxiang">
2025-07-11 10:20:49 +08:00
<image :src="baseUrl+item.photo" mode="aspectFit"></image>
2024-09-01 18:16:43 +08:00
</view>
<view class="top-tile">
<view class="dix">
2025-07-11 10:20:49 +08:00
<view class="da">{{ item.corpName }}</view>
<!-- <view class="huang">{{ item.averageScore }}-->
<!-- <uni-icons type="star-filled" color="#FF9600"-->
<!-- size="14"></uni-icons>-->
<!-- </view>-->
2024-09-01 18:16:43 +08:00
</view>
<view class="dix">
<view class="sanyuan">
<view class="xhui">距离:</view>
2025-07-11 10:20:49 +08:00
<view class="dda">{{ jlFunction(item.distance) }}
2024-09-01 18:16:43 +08:00
</view>
2025-07-11 10:20:49 +08:00
<!-- <view v-else class="dda">{{ item.distance }}-->
<!-- <text class="xhei">m</text>-->
<!-- </view>-->
2024-09-01 18:16:43 +08:00
</view>
<!-- <view class="sanyuan">
2025-07-11 10:20:49 +08:00
<view class="xhui">月销量:</view>
<view class="dda">{{item.salesNum?item.salesNum:0}}</view>
</view> -->
2024-09-01 18:16:43 +08:00
</view>
</view>
</view>
2025-07-11 10:20:49 +08:00
<view class="top-anniu" @click="gomerchant(item.tenantId)">
2024-09-01 18:16:43 +08:00
<view class="">预约进店</view>
</view>
</view>
<scroll-view scroll-x="true" class="box-bottom">
<view class="santu" v-for="(items,index) in item.goodsList" :key="index">
<view class="simg">
2024-09-18 18:50:21 +08:00
<image :src="baseUrl+items.goodsImage" mode=""></image>
2024-09-01 18:16:43 +08:00
</view>
2025-07-11 10:20:49 +08:00
<view class="ming">{{ items.goodsTitle }}</view>
<view class="jus">{{ items.price / 100 }}</view>
2024-09-01 18:16:43 +08:00
</view>
</scroll-view>
</view>
</view>
</view>
</template>
<script>
import request from '../../utils/request'
import config from '@/config'
2025-07-11 10:20:49 +08:00
import newRequest from "@/utils/newRequest";
import {
getToken,
setToken,
setTenantId,
getTenantId,
getInviteId,
removeTenantId,
removeInviteId
} from '@/utils/auth'
2024-09-01 18:16:43 +08:00
export default {
data() {
return {
searchValue: "",
categoryId: "",
distance: null, //距离
threeoptions: 1, //三选
Alloptions: [], //全部分类
show: false,
listarr: [],
pding: 0, //综合筛选
pjing: false, //评价筛选
hzc: false,
longitude: "105.442024",
latitude: "28.871325",
orderType: "",
pageNum: 1, //第几页
pageSize: 20, //一页多少张
totalPages: 0, //总数
2025-07-11 10:20:49 +08:00
baseUrl: this.$baseImageUrl + '/'
2024-09-01 18:16:43 +08:00
}
},
onReachBottom() {
console.log("分页")
if (this.pageNum >= this.totalPages) {
uni.showToast({
title: '没有下一页数据',
icon: 'none'
})
} else {
this.pageNum++
console.log(222)
this.getlistindex()
}
},
onShow() {
2025-07-11 10:20:49 +08:00
2024-09-01 18:16:43 +08:00
this.getlist()
},
methods: {
async getlist() {
// 列表获取
let that = this
2025-07-11 10:20:49 +08:00
let data = {
orderType: that.orderType,
categoryId: that.categoryId,
searchValue: that.searchValue,
distance: that.distance,
pageSize: that.pageSize,
pageNo: that.pageNum,
serviceCodes: 'jiance',
}
if (getInviteId()) {
data.tenantId = getTenantId();
}
2024-09-01 18:16:43 +08:00
uni.getLocation({
type: 'wgs84',
success: function(res) {
2025-07-11 10:20:49 +08:00
that.orderType.lgt = res.longitude
that.orderType.lat = res.latitude
// request({
// url: '/appInspection/partner/list',
// method: 'get',
// params: data
// }).then(res => {
// if (that.pageNum != 1) {
// that.listarr = that.listarr.concat(res.rows)
// } else {
// that.listarr = res.rows
// }
// let total = res.total
// that.totalPages = Math.ceil(total / that.pageSize);
// })
2024-09-01 18:16:43 +08:00
},
fail() {
2025-07-11 10:20:49 +08:00
// let data = {
// longitude: that.longitude,
// latitude: that.latitude,
// orderType: that.orderType,
// categoryId: that.categoryId,
// searchValue: that.searchValue,
// distance: that.distance,
// pageSize: that.pageSize,
// pageNum: that.pageNum
// }
// request({
// url: '/appInspection/partner/list',
// method: 'get',
// params: data
// }).then(res => {
// if (that.pageNum != 1) {
// that.listarr = that.listarr.concat(res.rows)
// } else {
// that.listarr = res.rows
// }
// let total = res.total
// that.totalPages = Math.ceil(total / that.pageSize);
// })
2024-09-01 18:16:43 +08:00
}
});
2025-07-11 10:20:49 +08:00
// 列表获取
newRequest({
// url: '/appInspection/appHome/homePartner',
url: '/userClient/base/companySmallProgram/pageNoTenantId',
2024-09-01 18:16:43 +08:00
method: 'get',
2025-07-11 10:20:49 +08:00
params: data
}).then(res => {
this.totalPages = res.data.pages
this.listarr = res.data.records
2024-09-01 18:16:43 +08:00
})
2025-07-11 10:20:49 +08:00
// let rex = await request({
// url: '/appInspection/goods/categoryList',
// method: 'get',
// })
// console.log(rex);
// this.Alloptions = rex.data
// this.Alloptions.unshift({
// categoryName: '全部'
// })
},
jlFunction(num) {
let snum = num / 1000
if (snum >= 1) {
return snum.toFixed(2) + 'Km'
} else {
return snum.toFixed(2) + 'm'
}
2024-09-01 18:16:43 +08:00
},
gomerchant(id) {
uni.navigateTo({
url: '/pages/detection/MerchantDetails?id=' + id
})
},
sousuo() {
this.listarr = []
this.getlist()
},
getqbfl() {
//全部分类
this.show = true
this.threeoptions = 1
},
getfwjl() {
//距离
this.threeoptions = 2
if (this.orderType == "jl") {
this.orderType = ""
} else {
this.orderType = "jl"
}
this.getlist()
},
getzhsx() {
//综合筛选
this.show = true
this.threeoptions = 3
},
qhzz(index, id) {
this.pding = index
this.categoryId = id
},
getback() {
uni.navigateBack()
},
gethp() {
this.orderType = "hp"
},
getxl() {
this.orderType = "xl"
},
getwc() {
this.show = false
this.getlist()
}
}
}
</script>
<style scoped lang="scss">
.content {
width: 100%;
height: calc(100vh);
background-color: #F6F6F6;
box-sizing: border-box;
// padding-top: 45px;
}
.dil {
box-sizing: border-box;
background-color: #F6F6F6;
padding: 0px 12px;
}
.lan {
color: #0D2E8D;
}
.dix {
width: 100%;
display: flex;
flex-wrap: wrap;
}
.d-box {
background: #FFFFFF;
border-radius: 8px;
padding: 10px;
margin-top: 10px;
}
.box-top {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.touxiang {
width: 70px;
height: 70px;
border-radius: 8px;
box-sizing: border-box;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.bjimg {
width: 255px;
height: 236px;
margin: 0px auto;
margin-top: 100px;
image {
width: 100%;
height: 100%;
}
}
.top-tile {
margin-left: 15px;
}
.da {
font-size: 18px;
font-weight: bold;
color: #333333;
}
.huang {
margin-left: 20px;
color: #FF9600;
font-size: 14px;
}
.top-anniu {
width: 70px;
height: 24px;
background: #0D2E8D;
border-radius: 50px;
display: flex;
font-size: 14px;
justify-content: center;
align-items: center;
color: white;
}
.box-cont {
width: 100%;
display: flex;
justify-content: space-around;
align-items: center;
margin-top: 15px;
}
.sanyuan {
margin-top: 22px;
text-align: center;
display: flex;
align-items: center;
}
.dda {
font-size: 14px;
font-weight: 500;
color: #333333;
margin-right: 10px;
}
.xhui {
font-size: 14px;
font-weight: 400;
color: #999999;
margin-right: 5px;
}
.xbox {
width: 100%;
display: flex;
}
.xhei {
font-size: 14px;
font-weight: 400;
color: #333333;
margin-left: 5px;
}
.box-bottom {
width: 100%;
box-sizing: border-box;
white-space: nowrap;
// display: flex;
// justify-content: space-between;
// align-items: center;
}
.santu {
width: 32%;
display: inline-block;
// width: 100px;
margin-top: 15px;
margin-right: 10px;
}
.simg {
width: 100%;
height: 80px;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.ming {
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 15px;
font-weight: 400;
color: #333333;
margin: 0px auto;
}
.jus {
font-size: 15px;
font-weight: bold;
color: #FF571A;
}
.c-top {
width: 100%;
box-sizing: border-box;
padding: 15px;
padding-top: 22%;
display: flex;
justify-content: space-between;
align-items: center;
background-color: white;
}
.c-t-input {
width: 80%;
background-color: #F0F0F0;
color: #BCBCBC;
height: 40px;
border-radius: 50px;
display: flex;
align-items: center;
padding: 0px 10px;
box-sizing: border-box;
}
.c-title {
font-size: 18px;
font-weight: bold
}
.top-list {
width: 100%;
height: 88rpx;
background: #FFFFFF;
display: flex;
align-items: center;
justify-content: space-between;
}
.list-box {
height: 100%;
width: 33%;
display: flex;
align-items: center;
justify-content: center;
}
/* 遮罩 */
.xuanx {
position: fixed;
top: 260rpx;
width: 100%;
height: calc(100vh);
background: rgba(0, 0, 0, 0.2)
}
.nbian {
padding-top: 45px;
}
.x-xiang {
width: 100%;
2025-07-11 10:20:49 +08:00
height: 250rpx;
2024-09-01 18:16:43 +08:00
background: white;
box-sizing: border-box;
padding: 30rpx;
display: flex;
flex-wrap: wrap;
overflow-y: hidden;
/* 隐藏横向滚动条 */
}
.x-ing {
width: 100%;
background: white;
box-sizing: border-box;
padding: 30rpx;
}
.ann {
height: 28px;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
background: #F2F6FF;
border-radius: 24rpx;
padding: 10rpx 30rpx;
color: #666666;
font-size: 28rpx;
margin-right: 20rpx;
margin-bottom: 30rpx;
}
.ax {
font-size: 28rpx;
background: #0D2E8D;
color: white !important;
}
.xsanniu {
border-top: 1px solid #EEEEEE;
background: white;
box-sizing: border-box;
padding: 30rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.wc {
width: 436rpx;
height: 80rpx;
background: #0D2E8D;
border-radius: 40rpx;
display: flex;
align-items: center;
color: white;
font-size: 32rpx;
justify-content: center;
}
.fanhu {
width: 224rpx;
height: 80rpx;
background: #FFFFFF;
border-radius: 40rpx 40rpx 40rpx 40rpx;
opacity: 1;
border: 2rpx solid #0D2E8D;
display: flex;
align-items: center;
color: #0D2E8D;
justify-content: center;
}
</style>