yn_img_tools_app/src/pages/comprehensiveQuery/index.vue

804 lines
27 KiB
Vue
Raw Normal View History

<template>
2025-04-03 14:23:20 +08:00
<!-- 照片统计一级页面 -->
<view class="comprehensive-query" :style="{ paddingTop: safeAreaInsets?.top + 44 + 'px' }">
<NavBarModal :navBarTitle="`照片统计`" />
<!-- 筛选框 -->
<view class="filter-box">
2025-04-08 17:24:43 +08:00
<up-input placeholder="输入标题" v-model="outerKeyWord" clearable>
2025-04-03 14:23:20 +08:00
<template #prefix>
<up-icon name="search" size="24" @tap="onSearchPhoto" />
</template>
<template #suffix>
<text class="search-text" @tap="onHandleSeniorSearch">高级筛选</text>
</template>
</up-input>
</view>
<view class="photo-container">
2025-04-14 11:37:37 +08:00
<PhotoTotal :totalCount="imgCount?.totalNum" @HandleViewImgTotal="HandleViewImgTotal" />
2025-04-08 17:24:43 +08:00
<PhotoClass
:imgCount="imgCount"
@handleGetImgListByImgType="handleGetImgListByImgType"
/>
<PhotoRecent
:imgList="imgList"
@handleMyCollect="handleMyCollect"
@handleLastUpload="handleLastUpload"
@handleGetImgList="handleGetImgList"
/>
2025-04-03 14:23:20 +08:00
</view>
<view class="loading-text">
{{ finish ? '没有更多数据了~' : '正在加载...' }}
</view>
</view>
<up-back-top :scroll-top="scrollTop"></up-back-top>
<!-- 高级筛选框 -->
<up-popup
mode="right"
safeAreaInsetTop
:show="rightPopupShow"
@close="rightPopupShow = !rightPopupShow"
>
<view class="senior-popup">
<up-list>
<view class="senior-title">
<up-icon name="pushpin-fill" color="#333" size="24" />
<text>高级筛选</text>
</view>
<up-form
labelWidth="100"
labelAlign="center"
labelPosition="left"
2025-04-08 17:24:43 +08:00
ref="searchFormRef"
2025-04-03 14:23:20 +08:00
style="padding-right: 20rpx"
:style="{ paddingBottom: safeAreaInsets?.top + 50 + 'px' }"
>
<TitleTipModal :TitleTip="`通用信息查询`" />
2025-04-08 17:24:43 +08:00
<up-form-item label="搜索查询">
<up-input placeholder="请输入" v-model="innerKeyWord" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="startTime" label="开始日期">
<up-input placeholder="请选择" v-model="queryParams.startTime" readonly>
2025-04-03 14:23:20 +08:00
<template #prefix>
2025-04-08 17:24:43 +08:00
<up-icon name="calendar" size="16" @tap="onSelectDate(1)" />
2025-04-03 14:23:20 +08:00
</template>
2025-04-14 15:31:14 +08:00
<template #suffix v-if="queryParams.startTime">
<up-icon
name="close-circle-fill"
style="margin-right: 12rpx"
color="#c6c7cb"
@tap="
() => {
queryParams.startTime = ''
}
"
/>
</template>
2025-04-03 14:23:20 +08:00
</up-input>
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="endTime" label="结束日期">
<up-input placeholder="请选择" v-model="queryParams.endTime" readonly>
2025-04-03 14:23:20 +08:00
<template #prefix>
2025-04-08 17:24:43 +08:00
<up-icon size="16" name="calendar" @tap="onSelectDate(2)" />
2025-04-03 14:23:20 +08:00
</template>
2025-04-14 15:31:14 +08:00
<template #suffix v-if="queryParams.endTime">
<up-icon
name="close-circle-fill"
style="margin-right: 12rpx"
color="#c6c7cb"
@tap="
() => {
queryParams.endTime = ''
}
"
/>
</template>
2025-04-03 14:23:20 +08:00
</up-input>
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="proName" label="工程">
<up-input
readonly
clearable
placeholder="请选择工程名称"
v-model="queryParams.proName"
>
2025-04-03 14:23:20 +08:00
<template #suffix>
2025-04-14 15:31:14 +08:00
<view style="display: flex">
<up-icon
name="close-circle-fill"
style="margin-right: 12rpx"
v-if="queryParams.proName"
color="#c6c7cb"
@tap="
() => {
queryParams.proName = ''
queryParams.proId = ''
}
"
/>
<up-icon name="arrow-down" size="16" @tap="onSelectProject" />
</view>
2025-04-03 14:23:20 +08:00
</template>
</up-input>
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="majorName" label="专业">
<up-input
readonly
clearable
placeholder="请选择专业"
v-model="queryParams.majorName"
>
2025-04-03 14:23:20 +08:00
<template #suffix>
2025-04-14 15:31:14 +08:00
<view style="display: flex">
<up-icon
name="close-circle-fill"
style="margin-right: 12rpx"
v-if="queryParams.majorName"
color="#c6c7cb"
@tap="
() => {
queryParams.majorName = ''
queryParams.majorId = ''
}
"
/>
<up-icon name="arrow-down" size="16" @tap="onSelectMajor" />
</view>
2025-04-03 14:23:20 +08:00
</template>
</up-input>
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="gxName" label="工序">
<up-input
readonly
clearable
placeholder="请选择工序"
v-model="queryParams.gxName"
>
2025-04-03 14:23:20 +08:00
<template #suffix>
2025-04-14 15:31:14 +08:00
<view style="display: flex">
<up-icon
name="close-circle-fill"
style="margin-right: 12rpx"
v-if="queryParams.gxName"
color="#c6c7cb"
@tap="
() => {
queryParams.gxName = ''
queryParams.gxId = ''
}
"
/>
<up-icon name="arrow-down" size="16" @tap="onSelectProcedure" />
</view>
2025-04-03 14:23:20 +08:00
</template>
</up-input>
</up-form-item>
<TitleTipModal :TitleTip="`安全违章照片`" />
<up-form-item prop="projectName" label="类型">
2025-04-08 17:24:43 +08:00
<up-checkbox-group placement="row" v-model="queryParams.photoType_1">
<up-checkbox label="违章照片" name="1" />
<up-checkbox label="整改照片" name="2" />
2025-04-03 14:23:20 +08:00
</up-checkbox-group>
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="vioPlace" label="违章地点">
2025-04-14 15:31:14 +08:00
<up-input placeholder="请输入" v-model="queryParams.vioPlace" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="vioDesc" label="违章描述">
2025-04-14 15:31:14 +08:00
<up-input placeholder="请输入" v-model="queryParams.vioDesc" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="rectDesc" label="整改说明">
2025-04-14 15:31:14 +08:00
<up-input placeholder="请输入" v-model="queryParams.rectDesc" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
<TitleTipModal :TitleTip="`质量检查照片`" />
<up-form-item prop="projectName" label="类型">
2025-04-08 17:24:43 +08:00
<up-checkbox-group placement="row" v-model="queryParams.photoType_2">
<up-checkbox label="缺陷照片" name="3" />
<up-checkbox label="整改照片" name="4" />
2025-04-03 14:23:20 +08:00
</up-checkbox-group>
</up-form-item>
<up-form-item prop="projectName" label="检查地点">
2025-04-14 15:31:14 +08:00
<up-input
placeholder="请输入"
v-model="queryParams.checkPlace2"
clearable
/>
2025-04-03 14:23:20 +08:00
</up-form-item>
<up-form-item prop="projectName" label="检查描述">
2025-04-14 15:31:14 +08:00
<up-input placeholder="请输入" v-model="queryParams.checkDesc2" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
<up-form-item prop="projectName" label="整改说明">
2025-04-14 15:31:14 +08:00
<up-input placeholder="请输入" v-model="queryParams.rectDesc2" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
<TitleTipModal :TitleTip="`安全措施落实照片`" />
<up-form-item prop="projectName" label="检查地点">
2025-04-14 15:31:14 +08:00
<up-input placeholder="请输入" v-model="queryParams.checkDesc3" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
<up-form-item prop="projectName" label="检查描述">
2025-04-14 15:31:14 +08:00
<up-input placeholder="请输入" v-model="queryParams.rectDesc3" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
<TitleTipModal :TitleTip="`协调照片`" />
<up-form-item prop="projectName" label="类型">
2025-04-08 17:24:43 +08:00
<up-checkbox-group placement="row" v-model="queryParams.photoType_3">
<up-checkbox label="建设前" name="6" />
<up-checkbox label="建设中" name="7" />
<up-checkbox label="恢复后" name="8" />
2025-04-03 14:23:20 +08:00
</up-checkbox-group>
</up-form-item>
2025-04-08 17:24:43 +08:00
<up-form-item prop="buildPlace" label="建设地点">
2025-04-14 15:31:14 +08:00
<up-input placeholder="请输入" v-model="queryParams.buildPlace" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
<TitleTipModal :TitleTip="`重要事项及宣传照片`" />
2025-04-08 17:24:43 +08:00
<up-form-item prop="title" label="标题">
2025-04-14 15:31:14 +08:00
<up-input v-model="queryParams.title" placeholder="请输入" clearable />
2025-04-03 14:23:20 +08:00
</up-form-item>
</up-form>
</up-list>
<!-- 按钮组 -->
<view class="btns">
<view>
<view>
<up-button
size="small"
type="primary"
icon="search"
text="查询"
@tap="onHandleSearch"
/>
</view>
<view style="margin-left: 18rpx">
<up-button size="small" icon="reload" text="重置" @tap="onHandleReset" />
</view>
</view>
</view>
</view>
</up-popup>
2025-04-08 17:24:43 +08:00
<!-- 年月日选择器 -->
<up-datetime-picker
mode="date"
:show="dateShow"
v-model="dateValue"
:formatter="formatter"
@confirm="onConfirmDate"
@cancel="dateShow = !dateShow"
/>
<!-- 工程选择器 -->
<up-picker
keyName="name"
:show="projectShow"
:columns="projectList"
@confirm="onConfirmProject"
@cancel="projectShow = !projectShow"
/>
<!-- 专业选择器 -->
<up-picker
keyName="name"
:show="majorShow"
:columns="majorList"
@confirm="onConfirmMajor"
@cancel="majorShow = !majorShow"
/>
<!-- 工序选择器 -->
<up-picker
keyName="name"
:show="procedureShow"
:columns="procedureList"
@confirm="onConfirmProcedure"
@cancel="procedureShow = !procedureShow"
/>
</template>
<script setup>
2025-04-03 14:23:20 +08:00
import NavBarModal from '@/components/NavBarModal/index'
import TitleTipModal from '@/components/TitleTipModal/index'
import PhotoTotal from './components/photo-total.vue'
import PhotoClass from './components/photo-class'
import PhotoRecent from './components/photo-recent'
2025-04-08 17:24:43 +08:00
import { useMemberStore } from '@/stores'
import { reactive, ref, computed, onMounted } from 'vue'
import { getProcedureApi } from '@/services/common.js'
import { useCommon } from '@/hooks/useCommon.js'
import { debounce } from 'lodash-es' // 引入防抖函数
import { getClassCountApi, getImgListApi } from '@/services/comprehensiveQuery.js'
2025-04-03 14:23:20 +08:00
import { onLoad, onReachBottom, onPageScroll } from '@dcloudio/uni-app'
2025-04-08 17:24:43 +08:00
const { getProjectList, getMajorList } = useCommon()
const { safeAreaInsets } = uni.getSystemInfoSync()
const memberStore = useMemberStore()
const token = memberStore?.token
const baseURL = import.meta.env.VITE_API_BASE_URL // 获取当前的url地址
2025-04-03 14:23:20 +08:00
const scrollTop = ref(0)
2025-04-08 17:24:43 +08:00
const searchFormRef = ref(null)
const outerKeyWord = ref('')
const innerKeyWord = ref('')
2025-04-03 14:23:20 +08:00
const rightPopupShow = ref(false)
2025-04-08 17:24:43 +08:00
const total = ref(0)
const dateShow = ref(false)
const dateValue = ref(Date.now())
const dateType = ref(1)
const projectShow = ref(false)
const majorShow = ref(false)
const procedureShow = ref(false)
const projectList = reactive([])
const majorList = reactive([])
const procedureList = reactive([])
// 数量数据源
const imgCount = reactive({
totalNum: 0, //总照片数
safetyVioNum: 0, // 安全违章
safetyMeasNum: 0, // 安全措施落实
qualityInsNum: 0, // 质量检查
coordinatedPhotoNum: 0, // 协调照片
importIssuesAndPublicityNum: 0, // 重要事项及宣传类
})
// 图片列表数据源
const imgList = ref([])
// 定义查询条件
const queryParams = ref({
pageNum: 1,
pageSize: 10,
queryType: '2', // 类型 1. 我的收藏 2. 最近上传
searchType: '', // 1.标题查询 2.照片分类查询 3.高级筛选查询
uploadType: '', // 图片类型
keyWord: '', // 标题
proId: '', // 工程
proName: '', // 工程名称
majorId: '', // 专业id
majorName: '', // 专业名称
gxId: '', // 工序id
gxName: '', // 工序名称
startTime: '', // 开始日期
endTime: '', // 结束日期
vioPlace: '', // 违章地点
vioDesc: '', // 违章描述
rectDesc: '', // 整改说明
checkPlace2: '', // 检查地点
checkDesc2: '', // 检查描述
rectDesc2: '', // 整改说明
checkDesc3: '', // 检查地点
rectDesc3: '', // 检查描述
buildPlace: '', // 建设地点
title: '',
photoType: [],
photoType_1: [],
photoType_2: [],
photoType_3: [],
})
2025-04-03 14:23:20 +08:00
// 输入框左侧搜索图标点击
const onSearchPhoto = () => {
2025-04-08 17:24:43 +08:00
// console.log('onSearchPhoto')
queryParams.value.uploadType = ''
queryParams.value.searchType = 1
queryParams.value.keyWord = outerKeyWord.value
getImgListData(true)
2025-04-03 14:23:20 +08:00
}
// 高级搜索
const onHandleSeniorSearch = () => {
rightPopupShow.value = true
}
// 查询
const onHandleSearch = () => {
2025-04-08 17:24:43 +08:00
queryParams.value.searchType = 3
queryParams.value.keyWord = innerKeyWord.value
getImgListData(true)
2025-04-03 14:23:20 +08:00
rightPopupShow.value = false
2025-04-08 17:24:43 +08:00
resetForm()
2025-04-03 14:23:20 +08:00
}
// 重置
const onHandleReset = () => {
2025-04-08 17:24:43 +08:00
// rightPopupShow.value = false
resetForm()
2025-04-03 14:23:20 +08:00
}
2025-04-08 17:24:43 +08:00
// 滚动触底事件
onReachBottom(
debounce(() => {
if (imgList.value.length < total.value) {
queryParams.value.pageNum++
getImgListData(false)
}
}, 1000),
)
2025-04-03 14:23:20 +08:00
// 监听滚动事件 显示返回顶部小图标
onPageScroll((e) => {
scrollTop.value = e.scrollTop
})
2025-04-08 17:24:43 +08:00
// 获取照片分类
const getClassCountData = async () => {
const res = await getClassCountApi({})
console.log(
'%c🔍 获取照片分类出参 %c',
'background: linear-gradient(90deg, #FF6B6B, #4ECDC4); color: white; padding: 5px 10px; border-radius: 5px; font-weight: bold;',
'',
res,
)
if (res.code === 200) {
Object.assign(imgCount, res.data)
} else {
uni.$u.toast(res.msg)
}
}
getClassCountData()
// 获取照片列表
const getImgListData = async (isTap = false) => {
try {
queryParams.value.photoType = [
...queryParams.value.photoType_1,
...queryParams.value.photoType_2,
...queryParams.value.photoType_3,
]
const {
pageNum,
pageSize,
queryType, // 类型 1. 我的收藏 2. 最近上传
searchType, // 1.标题查询 2.照片分类查询 3.高级筛选查询
uploadType, // 图片类型
keyWord, // 标题
proId, // 工程
majorId, // 专业id
gxId, // 工序id
startTime, // 开始日期
endTime, // 结束日期
vioPlace, // 违章地点
vioDesc, // 违章描述
rectDesc, // 整改说明
checkPlace2, // 检查地点
checkDesc2, // 检查描述
rectDesc2, // 整改说明
checkDesc3, // 检查地点
rectDesc3, // 检查描述
buildPlace, // 建设地点
title,
photoType,
} = queryParams.value
const queryParamsNew = {
pageNum,
pageSize,
queryType, // 类型 1. 我的收藏 2. 最近上传
searchType, // 1.标题查询 2.照片分类查询 3.高级筛选查询
uploadType, // 图片类型
keyWord, // 标题
proId, // 工程
majorId, // 专业id
gxId, // 工序id
startTime, // 开始日期
endTime, // 结束日期
vioPlace, // 违章地点
vioDesc, // 违章描述
rectDesc, // 整改说明
checkPlace2, // 检查地点
checkDesc2, // 检查描述
rectDesc2, // 整改说明
checkDesc3, // 检查地点
rectDesc3, // 检查描述
buildPlace, // 建设地点
title,
photoType,
}
console.log(
'%c🔍 获取照片列表入参 %c',
'background: linear-gradient(90deg, #FF6B6B, #4ECDC4); color: white; padding: 5px 10px; border-radius: 5px; font-weight: bold;',
'',
queryParamsNew,
)
const res = await getImgListApi(queryParamsNew)
// 更新总数
total.value = res.data.total
console.log(
'%c🔍 获取照片列表出参 %c',
'background: linear-gradient(90deg, #FF6B6B, #4ECDC4); color: white; padding: 5px 10px; border-radius: 5px; font-weight: bold;',
'',
res,
)
if (res.code === 200) {
if (isTap) {
// 点击搜索时,直接替换数据
imgList.value = res?.data?.list || []
// 重置页码
queryParams.value.pageNum = 1
} else {
// 下拉加载时,追加数据
if (res?.data && res?.data?.list?.length > 0) {
imgList.value = [...imgList.value, ...res.data.list]
}
}
2025-04-16 14:28:17 +08:00
imgList.value?.forEach((e) => {
e.imgUrl = `${baseURL}/imgTool/files${e?.compressFilePath}?token=${token}`
2025-04-08 17:24:43 +08:00
})
} else {
uni.$u.toast(res.msg)
}
} catch (error) {
// 发生错误时重置数据
if (isTap) {
imgList.value = []
}
}
}
getImgListData()
// 判断数据是否加载完毕
const finish = computed(() => {
if (total.value === imgList.value.length) return true
})
// 点击我的收藏
const handleMyCollect = () => {
queryParams.value.queryType = 1
2025-04-16 14:28:17 +08:00
queryParams.value.pageNum = 1
2025-04-08 17:24:43 +08:00
getImgListData(true)
}
// 点击最近上传
const handleLastUpload = () => {
queryParams.value.queryType = 2
2025-04-16 14:28:17 +08:00
queryParams.value.pageNum = 1
2025-04-08 17:24:43 +08:00
getImgListData(true)
}
// 更新列表
const handleGetImgList = () => {
getImgListData(true)
}
// 根据照片分类进行查询
const handleGetImgListByImgType = (type) => {
queryParams.value.uploadType = type
queryParams.value.searchType = 2
2025-04-16 14:28:17 +08:00
queryParams.value.pageNum = 1
2025-04-08 17:24:43 +08:00
getImgListData(true)
}
2025-04-14 11:37:37 +08:00
// 查看照片总数
const HandleViewImgTotal = () => {
queryParams.value.uploadType = ''
queryParams.value.searchType = 2
2025-04-16 14:28:17 +08:00
queryParams.value.pageNum = 1
2025-04-14 11:37:37 +08:00
getImgListData(true)
}
2025-04-08 17:24:43 +08:00
// 日期格式化
const formatter = (type, value) => {
if (type === 'year') {
return `${value}`
}
if (type === 'month') {
return `${value}`
}
if (type === 'day') {
return `${value}`
}
return value
}
const onConfirmDate = () => {
const formatDateValue = formatDate(dateValue.value)
if (dateType.value === 1) {
queryParams.value.startTime = formatDateValue
}
if (dateType.value === 2) {
queryParams.value.endTime = formatDateValue
}
// 校验时间有效性
if (queryParams.value.startTime && queryParams.value.endTime) {
const start = new Date(queryParams.value.startTime)
const end = new Date(queryParams.value.endTime)
if (start > end) {
uni.showToast({
title: '结束时间不能早于开始时间',
icon: 'none',
})
if (dateType.value === 1) {
queryParams.value.endTime = formatDateValue
} else {
queryParams.value.startTime = formatDateValue
}
return // 阻止关闭弹窗
}
}
dateShow.value = false
}
const formatDate = (timestamp) => {
const date = new Date(timestamp)
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
return `${year}-${month}-${day}`
}
// 打开日期选择器
const onSelectDate = (type) => {
// type 为类型 1. 开始日期 2. 结束日期
dateType.value = type
dateShow.value = true
}
// 选择工程
const onSelectProject = () => {
projectShow.value = true
}
// 工程选择
const onConfirmProject = (item) => {
queryParams.value.proName = item.value[0].name
queryParams.value.proId = item.value[0].id
projectShow.value = false
}
// 选择专业
const onSelectMajor = () => {
majorShow.value = true
}
// 专业确定
const onConfirmMajor = (item) => {
queryParams.value.majorName = item.value[0].name
queryParams.value.majorId = item.value[0].id
getProcedureData(item.value[0].id)
majorShow.value = false
}
// 选择工序
const onSelectProcedure = () => {
procedureShow.value = true
}
// 工序确定
const onConfirmProcedure = (item) => {
queryParams.value.gxName = item.value[0].name
queryParams.value.gxId = item.value[0].id
procedureShow.value = false
}
// 获取工序
const getProcedureData = async (pid) => {
console.log(
'%c🔍 获取工序请求入参 %c',
'background: linear-gradient(90deg, #FF6B6B, #4ECDC4); color: white; padding: 5px 10px; border-radius: 5px; font-weight: bold;',
'',
'pid=' + pid,
)
const { data: res } = await getProcedureApi({ pid })
console.log(
'%c🔍 获取工序请求出参 %c',
'background: linear-gradient(90deg, #FF6B6B, #4ECDC4); color: white; padding: 5px 10px; border-radius: 5px; font-weight: bold;',
'',
res,
)
2025-04-14 15:53:06 +08:00
procedureList = []
2025-04-08 17:24:43 +08:00
procedureList.push(res)
}
const resetForm = () => {
innerKeyWord.value = ''
Object.assign(queryParams.value, {
proId: '', // 工程
proName: '', // 工程名称
majorId: '', // 专业id
majorName: '', // 专业名称
gxId: '', // 工序id
gxName: '', // 工序名称
startTime: '', // 开始日期
endTime: '', // 结束日期
vioPlace: '', // 违章地点
vioDesc: '', // 违章描述
rectDesc: '', // 整改说明
checkPlace2: '', // 检查地点
checkDesc2: '', // 检查描述
rectDesc2: '', // 整改说明
checkDesc3: '', // 检查地点
rectDesc3: '', // 检查描述
buildPlace: '', // 建设地点
title: '',
photoType: [],
photoType_1: [],
photoType_2: [],
photoType_3: [],
})
}
onMounted(async () => {
projectList.push(await getProjectList())
majorList.push(await getMajorList())
})
</script>
<style lang="scss" scoped>
2025-04-03 14:23:20 +08:00
.comprehensive-query {
height: 100%;
2025-04-03 14:23:20 +08:00
box-sizing: border-box;
.filter-box {
padding: 16rpx 0;
.search-text {
font-size: 14px;
letter-spacing: 1rpx;
color: #4a6fff;
}
::v-deep .u-input {
width: 85%;
margin: 0 auto;
background-color: #f3f4f6;
}
}
.photo-container {
padding: 0 30rpx;
}
}
// 高级搜索弹框样式
.senior-popup {
width: 90vw;
height: 100vh;
overflow: hidden;
2025-04-03 14:23:20 +08:00
.senior-title {
padding: 24rpx 30rpx;
display: flex;
align-items: center;
background-color: #f5f5f5;
& text {
margin-left: 4rpx;
letter-spacing: 2rpx;
}
}
.btns {
width: 100%;
height: 50px;
padding: 18rpx 0;
position: absolute;
bottom: 0;
right: 0;
border-top: 1px solid #cac6c6;
background-color: #fff;
box-sizing: border-box;
& view {
margin-right: 18rpx;
display: flex;
justify-content: flex-end;
}
}
}
::v-deep .u-checkbox {
margin-right: 5px;
}
// 加载提示文字
.loading-text {
text-align: center;
font-size: 26rpx;
color: #8c8c8c;
padding: 32rpx 0;
letter-spacing: 1rpx;
}
</style>