2024-08-20 20:02:05 +08:00
|
|
|
|
<!-- 道路救援 首页-->
|
|
|
|
|
|
<template>
|
|
|
|
|
|
<view class="content">
|
2024-08-22 19:34:47 +08:00
|
|
|
|
<!-- 顶部 -->
|
2024-08-23 18:41:57 +08:00
|
|
|
|
<view class="content-top" :style="{ paddingTop: homeHeaderPaddingTop + 'px' }">
|
2025-08-29 17:13:05 +08:00
|
|
|
|
<view style="display: flex; justify-content: start;">
|
|
|
|
|
|
<image class="logo-icon" src="@/static/leftLogo.png" mode="scaleToFill">
|
|
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</image>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="top-two">
|
|
|
|
|
|
<view class="user-info">
|
|
|
|
|
|
<view class="user-name">{{ userinfo.nickname || '用户昵称'}}</view>
|
|
|
|
|
|
<view class="user-position" v-if="highestWeightRoleName">{{ highestWeightRoleName }}</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<!-- #ifdef APP-PLUS || H5 -->
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="real-time">
|
|
|
|
|
|
<text class="date-part">{{currentDate}}</text>
|
|
|
|
|
|
<text class="time-part">{{currentTime}}</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<!-- #endif -->
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
</view>
|
2024-08-22 19:34:47 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="top-menu">
|
|
|
|
|
|
<view class="top-menu-item" :key="index" v-for="(item, index) in topMenuList"
|
|
|
|
|
|
@click="goToMenuPage(item)" v-if="checkPermi(['rescue_home_page'])">
|
|
|
|
|
|
<image class="top-menu-item-icon" :src="item.icon" mode="aspectFit"></image>
|
|
|
|
|
|
<text>{{ item.title }}</text>
|
|
|
|
|
|
</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2024-08-22 19:34:47 +08:00
|
|
|
|
</view>
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="dil" v-if="checkPermi(['rescue_home_page'])">
|
|
|
|
|
|
<!-- 四个选项 -->
|
|
|
|
|
|
<!-- #ifdef APP-PLUS || H5 -->
|
|
|
|
|
|
<!-- <view style="display: flex; flex-direction: row; align-items: center; justify-content: space-between;"> -->
|
|
|
|
|
|
<view class="four-box-header">
|
|
|
|
|
|
<view class="blue-line"></view>
|
|
|
|
|
|
<text class="four-box-header-title">业务管理</text>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<!-- <view class="four-box-header-extra">
|
2024-08-22 19:34:47 +08:00
|
|
|
|
<text style="color: #929292;">待评价</text>
|
|
|
|
|
|
<uni-icons type="right" color="#929292"></uni-icons>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view> -->
|
|
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
<!-- <view class="four-box-header-extra" @click="gohistory()">
|
2025-08-29 17:13:05 +08:00
|
|
|
|
<text style="color: #929292;">历史订单</text>
|
|
|
|
|
|
<uni-icons type="right" color="#929292"></uni-icons>
|
2024-08-22 19:34:47 +08:00
|
|
|
|
</view>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view> -->
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="tab-choose-class">
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="tab-content" @click="tabChoose(item, index)"
|
|
|
|
|
|
v-for='(item, index) in ["当日", "当月", "全部", "自定义"]' :key='index'>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<!-- tab 名称信息 -->
|
|
|
|
|
|
<view class='tab-name-class'
|
|
|
|
|
|
:style='{ color: index + 1 == tabValue ? "#101A3E" : "#8D90A6", fontWeight: index + 1 == tabValue ? "bold" : "normal" }'>
|
|
|
|
|
|
{{ item }}
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="icon-tab" v-if='index == 3'>
|
|
|
|
|
|
<image src="@/static/icons/homeOrderCard/xialajiantou.svg" mode="scaleToFill"></image>
|
|
|
|
|
|
</view>
|
2024-08-22 19:34:47 +08:00
|
|
|
|
</view>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<!-- 名称下 icon -->
|
|
|
|
|
|
<view class="tab-icon"
|
|
|
|
|
|
:style='{ background: index + 1 == tabValue ? "linear-gradient( 180deg, #054DF3 0%, #55A3FF 100%)" : "" }'>
|
|
|
|
|
|
</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="example-body" v-show="tabValue==4" style="margin-bottom: 16rpx;">
|
|
|
|
|
|
<uni-datetime-picker v-model="range" type="daterange" @maskClick="maskClick" />
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="four-box">
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<view class="boxf" @click="goToOrder('null')">
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="zi1">
|
|
|
|
|
|
<image class="zi1-icon" src="@/static/icons/homeOrderCard/receivedOrder_new.png"
|
|
|
|
|
|
mode="aspectFit">
|
|
|
|
|
|
</image>
|
|
|
|
|
|
<text>已接单</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="zi2" style="margin-top: 10rpx;">{{yjdNum ? yjdNum : '0'}}</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<view class="boxf" @click="goToOrder(1)">
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="zi1">
|
|
|
|
|
|
<image class="zi1-icon" src="@/static/icons/homeOrderCard/jyz_new.png" mode="aspectFit"></image>
|
|
|
|
|
|
<text>救援中</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="zi2" style="margin-top: 10rpx;">{{jyzNum}}</view>
|
|
|
|
|
|
</view>
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<view class="boxf" @click="goToOrder(5)">
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="zi1">
|
|
|
|
|
|
<image class="zi1-icon" src="@/static/icons/homeOrderCard/ywc_new.png" mode="aspectFit"></image>
|
|
|
|
|
|
<text>已完成</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="zi2" style="margin-top: 10rpx;">{{ywcNum}}</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="two-box-container">
|
|
|
|
|
|
<view class="two-box">
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<view class="boxf2" style="background: linear-gradient(135deg, #E0F0FF 40%, #BBD9FF 100%);">
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view style="display: flex; justify-content: space-between; align-items: center;">
|
|
|
|
|
|
<view class="zi1_1">
|
|
|
|
|
|
<image class="zi1_1-icon" src="@/static/icons/homeOrderCard/ysk_solid.png"
|
|
|
|
|
|
mode="aspectFit">
|
|
|
|
|
|
</image>
|
|
|
|
|
|
<text style="color: #3d6ba0; font-weight: bold; font-size: 30rpx;">应收款</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<uni-icons class="eye-icon" :type="yskShowAmount ? 'eye' : 'eye-slash'"
|
|
|
|
|
|
@click.native.stop.prevent="yskShowAmount = !yskShowAmount"></uni-icons>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="zi2_2" style="margin-top: 10rpx;">{{ yskShowAmount ? yingskNum : '*****' }}</view>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="boxf2" style="background: linear-gradient(135deg, #FFF7E0 40%, #FFE7B8 100%);"
|
2025-09-24 10:20:09 +08:00
|
|
|
|
@click="goToOrder(3)">
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view style="display: flex; justify-content: space-between; align-items: center;">
|
|
|
|
|
|
<view class="zi1_1">
|
|
|
|
|
|
<image class="zi1_1-icon" src="@/static/icons/homeOrderCard/qucar.png" mode="aspectFit">
|
|
|
|
|
|
</image>
|
|
|
|
|
|
<text style="color: #a97747; font-size: 30rpx; font-weight: bold;">待取车</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<uni-icons class="eye-icon" :type="dqcShowAmount ? 'eye' : 'eye-slash'"
|
|
|
|
|
|
@click.native.stop="dqcShowAmount = !dqcShowAmount"></uni-icons>
|
2024-08-22 20:13:57 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="zi2_2" style="margin-top: 10rpx;">{{ dqcShowAmount ? dqcNum : '*****' }}</view>
|
2024-08-22 20:13:57 +08:00
|
|
|
|
</view>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="two-box">
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<view class="boxf2" style="background: linear-gradient(135deg, #E6F8ED 40%, #C8F0D8 100%);">
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view style="display: flex; justify-content: space-between; align-items: center;">
|
|
|
|
|
|
<view class="zi1_1">
|
|
|
|
|
|
<image class="zi1_1-icon" src="@/static/icons/homeOrderCard/yisk_solid.png"
|
|
|
|
|
|
mode="aspectFit">
|
|
|
|
|
|
</image>
|
|
|
|
|
|
<text style="color: #169948; font-size: 30rpx; font-weight: bold;">已收款</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<uni-icons class="eye-icon" :type="yiskShowAmount ? 'eye' : 'eye-slash'"
|
|
|
|
|
|
@click.native.stop="yiskShowAmount = !yiskShowAmount"></uni-icons>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="zi2_2" style="margin-top: 10rpx;">{{ yiskShowAmount ? yiskNum : '*****' }}</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<view class="boxf2" style="background: linear-gradient(135deg, #F0E9FF 40%, #D9CEFF 100%);">
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view style="display: flex; justify-content: space-between; align-items: center;">
|
|
|
|
|
|
<view class="zi1_1">
|
|
|
|
|
|
<image class="zi1_1-icon" src="@/static/icons/homeOrderCard/dsk_solid.png"
|
|
|
|
|
|
mode="aspectFit">
|
|
|
|
|
|
</image>
|
|
|
|
|
|
<text style="color: #6657da; font-weight: bold; font-size: 30rpx;">待收款</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<uni-icons class="eye-icon" :type="dskShowAmount ? 'eye' : 'eye-slash'"
|
|
|
|
|
|
@click.native.stop="dskShowAmount = !dskShowAmount"></uni-icons>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="zi2_2" style="margin-top: 10rpx;">{{ dskShowAmount ? dskNum : '*****' }}</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="yijian">
|
|
|
|
|
|
<view class="y-left" @click="getyi()">
|
|
|
|
|
|
<view class="">立即救援</view>
|
|
|
|
|
|
</view>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<!-- #endif -->
|
|
|
|
|
|
<!-- #ifdef MP-WEIXIN -->
|
|
|
|
|
|
<view class="box">
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<template v-for="(item, index) in busiTypeList">
|
|
|
|
|
|
<view :key="index" class="xz-box" :class="{ checked: busiType === index + 1 }"
|
|
|
|
|
|
@click="getsxwhat(index + 1)">
|
|
|
|
|
|
<image class="xz-box-icon" :src="item.icon" mode="aspectFit"></image>
|
|
|
|
|
|
<view class="box-wenzi">{{item.label}}</view>
|
|
|
|
|
|
<view class="checkedFlag">
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<uni-icons class="checkedFlagIcon" type="checkmarkempty" size="22" color="#fff"></uni-icons>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
</template>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
<!-- #endif -->
|
|
|
|
|
|
<view class="four-box-header_2">
|
|
|
|
|
|
<view class="four-box-header">
|
|
|
|
|
|
<view class="blue-line"></view>
|
|
|
|
|
|
<text class="four-box-header-title">救援列表</text>
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<!-- <view class="four-box-header-extra" @click="gohistory()">
|
2024-08-22 19:34:47 +08:00
|
|
|
|
<text style="color: #929292;">历史订单</text>
|
|
|
|
|
|
<uni-icons type="right" color="#929292"></uni-icons>
|
|
|
|
|
|
</view> -->
|
2025-09-05 16:49:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
<view class="four-box-header_2_right">
|
|
|
|
|
|
<text :class="['tab-item', { active: activeTab === 0 }]" @click="switchTab(0)">司机端</text>
|
|
|
|
|
|
<text :class="['tab-item', { active: activeTab === 1 }]" @click="switchTab(1)">业务端</text>
|
|
|
|
|
|
<text :class="['tab-item', { active: activeTab === 2 }]" @click="switchTab(2)">客户端</text>
|
|
|
|
|
|
</view>
|
2025-08-29 17:13:05 +08:00
|
|
|
|
</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view class="tap-box">
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<view class="ques" v-if="loading && orderList.length == 0">
|
|
|
|
|
|
<!-- <image src="../../static/quesheng.png" mode="aspectFit"></image> -->
|
|
|
|
|
|
<view class="loading-container">
|
|
|
|
|
|
<view class="loading-spinner"></view>
|
|
|
|
|
|
<text class="loading-text">加载中,请稍候...</text>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="ques" v-else-if="!loading && orderList.length == 0">
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<image src="../../static/quesheng.png" mode="aspectFit"></image>
|
2025-09-24 10:20:09 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
</view>
|
2025-09-24 10:20:09 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<view style="display: flex;flex-direction: column;row-gap: 10px;" v-else>
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<order-card-new :status="1" @deleteOk="deleteOrderHandle" @revokeOk="revokeOrderHandle"
|
|
|
|
|
|
@refresh="getlist" v-for="(item, index) in orderList" :key="index" :orderData="item"
|
2025-09-05 16:49:23 +08:00
|
|
|
|
:activeTab="activeTab"></order-card-new>
|
|
|
|
|
|
</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
2025-09-05 16:49:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
<!-- 一键救援 -->
|
|
|
|
|
|
<view style="width: 100%; height: 80px; "></view>
|
|
|
|
|
|
<!-- dibu -->
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<u-modal :show="showDelete" :title="title" :showCancelButton="true"></u-modal>
|
|
|
|
|
|
<u-popup :show="showp" mode="center" :round="10">
|
|
|
|
|
|
<scroll-view scroll-y style="height: 200px;">
|
|
|
|
|
|
<view class="box_">
|
|
|
|
|
|
<view class="title_">车辆提醒</view>
|
|
|
|
|
|
<view class="size_" v-for="(item,index) in warnList" :key="index">{{item}}</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
<view class="annaiu" @click="showp=false">
|
|
|
|
|
|
<view class="">确定</view>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
</u-popup>
|
2025-09-24 10:20:09 +08:00
|
|
|
|
<!-- 悬浮刷新按钮 -->
|
|
|
|
|
|
<view v-if="checkPermi(['rescue_home_page'])" class="floating-refresh-btn" :class="{ rotating: isRefreshing }"
|
|
|
|
|
|
@click="handleRefresh">
|
|
|
|
|
|
<uni-icons type="refreshempty" size="40" color="#fff"></uni-icons>
|
|
|
|
|
|
</view>
|
2025-09-05 16:49:23 +08:00
|
|
|
|
<tabBar :msg="msg"></tabBar>
|
2024-08-20 20:02:05 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import request from '../../utils/request';
|
2024-09-06 09:18:25 +08:00
|
|
|
|
import tabBar from '@/components/tabBar/tabBar.vue'
|
2024-08-20 20:02:05 +08:00
|
|
|
|
import {
|
|
|
|
|
|
getToken
|
|
|
|
|
|
} from '@/utils/auth'
|
2024-09-06 09:18:25 +08:00
|
|
|
|
// #ifdef APP
|
2024-08-20 20:02:05 +08:00
|
|
|
|
const keepAlivePlugin = uni.requireNativePlugin('Ba-KeepAlive')
|
|
|
|
|
|
const jyJPush = uni.requireNativePlugin('JY-JPush');
|
2024-09-06 09:18:25 +08:00
|
|
|
|
// #endif
|
2025-08-29 17:13:05 +08:00
|
|
|
|
import OrderCardNew from '@/components/orderCard/OrderCardNew.vue'
|
2025-08-06 18:00:28 +08:00
|
|
|
|
import {
|
|
|
|
|
|
getWXStatusHeight
|
2025-09-05 16:41:58 +08:00
|
|
|
|
} from '@/utils/utils.js';
|
|
|
|
|
|
import {
|
|
|
|
|
|
checkPermi,
|
|
|
|
|
|
checkRole
|
|
|
|
|
|
} from "@/utils/permission"; // 权限判断函数
|
2024-08-20 20:02:05 +08:00
|
|
|
|
// import { getWeather } from'../../utils/Weather'
|
|
|
|
|
|
export default {
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
2024-08-23 18:41:57 +08:00
|
|
|
|
// #ifdef MP
|
|
|
|
|
|
homeHeaderPaddingTop: 0,
|
|
|
|
|
|
homeHeaderMenuHeight: 0,
|
|
|
|
|
|
homeHeaderMenuLeft: 0,
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef APP || H5
|
|
|
|
|
|
homeHeaderPaddingTop: uni.upx2px(90),
|
|
|
|
|
|
homeHeaderMenuHeight: 50,
|
|
|
|
|
|
homeHeaderMenuLeft: 0,
|
|
|
|
|
|
// #endif
|
2025-08-29 17:13:05 +08:00
|
|
|
|
activeTab: 1, // 新增:当前选中的选项卡索引
|
2024-08-22 20:13:57 +08:00
|
|
|
|
busiTypeList: [{
|
|
|
|
|
|
label: '拖车',
|
|
|
|
|
|
icon: require('@/static/icons/order/tuoche.png')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: '送油',
|
|
|
|
|
|
icon: require('@/static/icons/order/songyou.png')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: '搭电',
|
|
|
|
|
|
icon: require('@/static/icons/order/dadian.png')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: '换胎',
|
|
|
|
|
|
icon: require('@/static/icons/order/huantai.png')
|
|
|
|
|
|
},
|
|
|
|
|
|
// {
|
|
|
|
|
|
// label: '扣车',
|
|
|
|
|
|
// icon: require('@/static/icons/order/tuoche.png')
|
|
|
|
|
|
// },
|
|
|
|
|
|
],
|
2025-08-06 18:00:28 +08:00
|
|
|
|
topMenuList: [{
|
2025-08-29 17:13:05 +08:00
|
|
|
|
title: '业务管理',
|
|
|
|
|
|
/* path: '/pages/rescue/historylist?id=1', */
|
|
|
|
|
|
icon: require('@/static/icons/homeTopMenu/icon_business.png')
|
2024-08-22 19:34:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '车辆管理',
|
|
|
|
|
|
path: '/pages/my/carManage',
|
|
|
|
|
|
icon: require('@/static/icons/homeTopMenu/icon_clean.png')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '数据统计',
|
|
|
|
|
|
path: '/pages/my/StatisticsInfo',
|
|
|
|
|
|
icon: require('@/static/icons/homeTopMenu/icon_maintain.png')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '消息通知',
|
|
|
|
|
|
path: '/pages/message/message',
|
|
|
|
|
|
icon: require('@/static/icons/homeTopMenu/icon_fitment.png')
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
2024-08-20 20:02:05 +08:00
|
|
|
|
msgSocket: this.$msgSocket,
|
|
|
|
|
|
showp: false,
|
|
|
|
|
|
title: '是否确认删除',
|
|
|
|
|
|
content: '是否确认删除',
|
|
|
|
|
|
dqcNum: 0,
|
|
|
|
|
|
dzfNum: 0,
|
|
|
|
|
|
jyzNum: 0,
|
|
|
|
|
|
ywcNum: 0,
|
2025-08-06 18:00:28 +08:00
|
|
|
|
zwxNum: 0,
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// 已接单
|
|
|
|
|
|
yjdNum: 0,
|
|
|
|
|
|
// 应收款
|
|
|
|
|
|
yingskNum: 0,
|
|
|
|
|
|
// 已收款
|
|
|
|
|
|
yiskNum: 0,
|
|
|
|
|
|
// 待收款
|
|
|
|
|
|
dskNum: 0,
|
2024-08-20 20:02:05 +08:00
|
|
|
|
currentTime: '',
|
|
|
|
|
|
cityName: '济南',
|
|
|
|
|
|
positionInfo: '泸州',
|
|
|
|
|
|
msg: '1',
|
|
|
|
|
|
total: 0,
|
|
|
|
|
|
pageNum: 1, //第几页
|
|
|
|
|
|
pageSize: 10, //一页多少张
|
|
|
|
|
|
totalPages: 0, //总数
|
2024-08-22 19:34:47 +08:00
|
|
|
|
orderList: [
|
|
|
|
|
|
// {
|
|
|
|
|
|
// rescueTypeStr: '扣车',
|
|
|
|
|
|
// rescuePosition: '四川省泸州市江阳区酒谷大道四段18号泸州',
|
|
|
|
|
|
// rescueStatus: 2,
|
|
|
|
|
|
// rescueStatusStr: '待救援',
|
|
|
|
|
|
// driverName: '先伟',
|
|
|
|
|
|
// driverCarNum: '川E69752',
|
|
|
|
|
|
// distance: 12800,
|
|
|
|
|
|
// needTime: 26,
|
|
|
|
|
|
// rescueTime: '2024-08-12 08:42'
|
|
|
|
|
|
// }
|
|
|
|
|
|
],
|
2024-08-20 20:02:05 +08:00
|
|
|
|
sjlist: [],
|
|
|
|
|
|
showDelete: false,
|
|
|
|
|
|
arrbox: [
|
|
|
|
|
|
// {text:'待支付',id:1},
|
|
|
|
|
|
// {text:'待评价',id:2},
|
|
|
|
|
|
],
|
|
|
|
|
|
keepLive: {
|
|
|
|
|
|
channelId: 'Ba-KeepAlive',
|
|
|
|
|
|
channelName: "Ba-KeepAlive",
|
|
|
|
|
|
title: "蓝安救援正在运行",
|
|
|
|
|
|
content: "蓝安救援正在运行",
|
|
|
|
|
|
dataResult: "",
|
|
|
|
|
|
type: undefined
|
|
|
|
|
|
},
|
|
|
|
|
|
one: true,
|
2025-08-29 17:13:05 +08:00
|
|
|
|
warnList: [],
|
|
|
|
|
|
userinfo: {},
|
|
|
|
|
|
currentDateTime: '', // 实时时间变量
|
|
|
|
|
|
timer: null, // 定时器
|
|
|
|
|
|
tabValue: 1,
|
|
|
|
|
|
timeType: "day",
|
|
|
|
|
|
range: [],
|
|
|
|
|
|
yskShowAmount: false,
|
|
|
|
|
|
yiskShowAmount: false,
|
|
|
|
|
|
dskShowAmount: false,
|
|
|
|
|
|
dqcShowAmount: false,
|
|
|
|
|
|
startTimeStr: null,
|
|
|
|
|
|
endTimeStr: null,
|
|
|
|
|
|
|
|
|
|
|
|
currentDate: '',
|
2025-09-05 16:51:02 +08:00
|
|
|
|
// currentTime: '',
|
2025-08-29 17:13:05 +08:00
|
|
|
|
roleList: [],
|
|
|
|
|
|
positionName: '', // 岗位名称
|
|
|
|
|
|
highestWeightRoleName: '',
|
2025-09-24 10:20:09 +08:00
|
|
|
|
isRefreshing: false, // 新增:刷新状态
|
|
|
|
|
|
loading: true, // 加载状态控制
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
onLoad() {
|
2024-08-23 18:41:57 +08:00
|
|
|
|
// #ifdef MP
|
2025-08-06 18:00:28 +08:00
|
|
|
|
const {
|
|
|
|
|
|
barHeight,
|
|
|
|
|
|
barTop,
|
|
|
|
|
|
menuButtonLeft
|
|
|
|
|
|
} = getWXStatusHeight()
|
|
|
|
|
|
console.log('barHeight, barTop, menuButtonLeft: ', barHeight, barTop, menuButtonLeft);
|
2024-08-23 18:41:57 +08:00
|
|
|
|
this.homeHeaderPaddingTop = barTop || 0
|
|
|
|
|
|
this.homeHeaderMenuHeight = barHeight
|
|
|
|
|
|
this.homeHeaderMenuLeft = menuButtonLeft - 6
|
|
|
|
|
|
// #endif
|
2024-09-06 09:18:25 +08:00
|
|
|
|
this.$startMsgSocket(uni.getStorageSync('userId'))
|
2025-08-29 17:13:05 +08:00
|
|
|
|
this.updateDateTime();
|
|
|
|
|
|
this.timer = setInterval(this.updateDateTime, 1000);
|
2024-09-06 09:18:25 +08:00
|
|
|
|
// #ifdef APP || H5
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// this.register()
|
2024-09-06 09:18:25 +08:00
|
|
|
|
this.jyPushStart()
|
2025-08-29 17:13:05 +08:00
|
|
|
|
this.updateDateTime();
|
|
|
|
|
|
this.timer = setInterval(this.updateDateTime, 1000);
|
2024-09-06 09:18:25 +08:00
|
|
|
|
// #endif
|
2025-09-24 10:20:09 +08:00
|
|
|
|
/* // 监听编辑完成事件
|
|
|
|
|
|
uni.$on('refreshHomePage', this.handleRefreshHomePage); */
|
2024-08-20 20:02:05 +08:00
|
|
|
|
},
|
2025-08-29 17:13:05 +08:00
|
|
|
|
onUnload() {
|
|
|
|
|
|
// 清除定时器
|
|
|
|
|
|
if (this.timer) clearInterval(this.timer);
|
2025-09-24 10:20:09 +08:00
|
|
|
|
/* // 移除事件监听,避免内存泄漏
|
|
|
|
|
|
uni.$off('refreshHomePage', this.handleRefreshHomePage); */
|
2025-08-29 17:13:05 +08:00
|
|
|
|
},
|
2024-08-20 20:02:05 +08:00
|
|
|
|
onShow() {
|
|
|
|
|
|
this.timeWeekFormat()
|
2024-08-24 11:00:51 +08:00
|
|
|
|
//this.getWarnList()
|
2024-08-20 20:02:05 +08:00
|
|
|
|
if (getToken()) {
|
|
|
|
|
|
this.Fourhammers()
|
|
|
|
|
|
this.getlist()
|
2025-08-29 17:13:05 +08:00
|
|
|
|
this.userinfo = uni.getStorageSync('userInfo')
|
|
|
|
|
|
this.roleList = uni.getStorageSync('role')
|
|
|
|
|
|
this.highestWeightRoleName = uni.getStorageSync('highestWeightRoleName')
|
|
|
|
|
|
console.log('highestWeightRoleName', this.highestWeightRoleName)
|
2024-08-20 20:02:05 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
onReachBottom() {
|
|
|
|
|
|
if (this.pageNum >= this.totalPages) {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: '没有下一页数据',
|
|
|
|
|
|
icon: 'none'
|
|
|
|
|
|
})
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.pageNum++
|
|
|
|
|
|
this.getlist()
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2025-08-29 17:13:05 +08:00
|
|
|
|
watch: {
|
|
|
|
|
|
range(newval) {
|
|
|
|
|
|
if (newval && newval.length === 2) {
|
|
|
|
|
|
this.startTimeStr = newval[0];
|
|
|
|
|
|
this.endTimeStr = newval[1];
|
|
|
|
|
|
this.Fourhammers();
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
roleList: {
|
|
|
|
|
|
handler(newVal) {
|
|
|
|
|
|
if (newVal && newVal.length > 0) {
|
|
|
|
|
|
this.filterPosition();
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.positionName = ''; // 设置为空,不显示
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
immediate: true // 立即执行一次
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-08-20 20:02:05 +08:00
|
|
|
|
components: {
|
|
|
|
|
|
tabBar,
|
2025-08-29 17:13:05 +08:00
|
|
|
|
OrderCardNew
|
2024-08-20 20:02:05 +08:00
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2025-09-05 16:41:58 +08:00
|
|
|
|
checkPermi,
|
|
|
|
|
|
checkRole,
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// 切换选项卡
|
|
|
|
|
|
switchTab(index) {
|
|
|
|
|
|
this.activeTab = index;
|
|
|
|
|
|
console.log('切换到选项卡:', index);
|
|
|
|
|
|
},
|
2025-09-24 10:20:09 +08:00
|
|
|
|
/* // 处理首页刷新
|
|
|
|
|
|
handleRefreshHomePage() {
|
|
|
|
|
|
console.log('收到编辑完成事件,刷新首页数据');
|
|
|
|
|
|
this.pageNum = 1;
|
|
|
|
|
|
this.orderList = [];
|
|
|
|
|
|
this.getlist();
|
|
|
|
|
|
this.Fourhammers();
|
|
|
|
|
|
}, */
|
|
|
|
|
|
|
|
|
|
|
|
// 处理刷新
|
|
|
|
|
|
handleRefresh() {
|
|
|
|
|
|
if (this.isRefreshing) return;
|
|
|
|
|
|
|
|
|
|
|
|
this.isRefreshing = true;
|
|
|
|
|
|
|
|
|
|
|
|
// 刷新数据
|
|
|
|
|
|
this.pageNum = 1;
|
|
|
|
|
|
this.orderList = [];
|
|
|
|
|
|
|
|
|
|
|
|
// 同时调用多个接口刷新数据
|
|
|
|
|
|
Promise.all([
|
|
|
|
|
|
this.getlist(),
|
|
|
|
|
|
this.Fourhammers()
|
|
|
|
|
|
]).then(() => {
|
|
|
|
|
|
this.isRefreshing = false;
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: '刷新成功',
|
|
|
|
|
|
icon: 'success',
|
|
|
|
|
|
duration: 1000
|
|
|
|
|
|
});
|
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
|
this.isRefreshing = false;
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: '刷新失败',
|
|
|
|
|
|
icon: 'none',
|
|
|
|
|
|
duration: 1000
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
2024-08-20 20:02:05 +08:00
|
|
|
|
jyPushStart() {
|
|
|
|
|
|
console.log("jyPushStart", jyJPush);
|
|
|
|
|
|
// 暂时只有安卓支持
|
|
|
|
|
|
jyJPush.registerSDKCallBack(sdkCallBack => {
|
|
|
|
|
|
// 这里会返回regid,
|
|
|
|
|
|
console.log("sdk Callback 结果 " + JSON.stringify(sdkCallBack));
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
// 此处只是演示 授权,实际应该弹出自己的隐私授权页面,或者用uniapp提供的隐私协议
|
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
|
jyJPush.setAuth({
|
|
|
|
|
|
auth: "1"
|
|
|
|
|
|
}, res => {
|
|
|
|
|
|
console.log("auth 结果 " + JSON.stringify(res));
|
|
|
|
|
|
if (res.errorCode == 0) {
|
|
|
|
|
|
// 安卓需要单独调用
|
|
|
|
|
|
if (uni.getSystemInfoSync().platform == 'android') {
|
|
|
|
|
|
jyJPush.android_init(initRes => {
|
|
|
|
|
|
console.log("init 结果 " + JSON.stringify(initRes));
|
|
|
|
|
|
jyJPush.deleteJYJPushAlias({
|
|
|
|
|
|
// 可以不用传值进去,但是需要配置这项数据
|
|
|
|
|
|
}, result => {
|
|
|
|
|
|
|
|
|
|
|
|
jyJPush.setJYJPushAlias({
|
|
|
|
|
|
userAlias: uni.getStorageSync('userId')
|
|
|
|
|
|
}, result => {
|
|
|
|
|
|
// 设置成功或者失败,都会通过这个result回调返回数据;数据格式保持极光返回的安卓/iOS数据一致
|
|
|
|
|
|
// 注:若没有返回任何数据,考虑是否初始化完成
|
|
|
|
|
|
console.log('setJYJPushAlias', result);
|
|
|
|
|
|
jyJPush.getJYJPushAlias({
|
|
|
|
|
|
// 可以不用传值进去,但是需要配置这项数据
|
|
|
|
|
|
}, result => {
|
|
|
|
|
|
console.log(
|
|
|
|
|
|
'getJYJPushAlias',
|
|
|
|
|
|
result);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}, 5000);
|
|
|
|
|
|
},
|
|
|
|
|
|
msgInfo() {
|
|
|
|
|
|
if (this.msgSocket) {
|
|
|
|
|
|
|
|
|
|
|
|
this.msgSocket.onMessage(res => {
|
|
|
|
|
|
console.log('触发首页的消息回调');
|
|
|
|
|
|
this.singleList = []
|
|
|
|
|
|
this.getthreelist()
|
|
|
|
|
|
this.driverRescuePage()
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-08-22 19:34:47 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 导航菜单跳转
|
|
|
|
|
|
*/
|
|
|
|
|
|
goToMenuPage(item) {
|
2025-08-29 17:13:05 +08:00
|
|
|
|
if (!item.path) {
|
|
|
|
|
|
return; // 如果没有path,则不进行跳转
|
|
|
|
|
|
}
|
2024-08-22 19:34:47 +08:00
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: item.path
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
2024-08-20 20:02:05 +08:00
|
|
|
|
isRunning() { //是否正在运行
|
|
|
|
|
|
keepAlive.isRunning((res) => {
|
|
|
|
|
|
console.log('保活服务验证', res);
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
restart() { //重启
|
|
|
|
|
|
keepAlive.restart((res) => {
|
|
|
|
|
|
console.log('重启保活服务', res);
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
register() { //注册
|
2024-08-22 20:13:57 +08:00
|
|
|
|
// #ifdef APP
|
2024-08-20 20:02:05 +08:00
|
|
|
|
console.log('keepAlive', keepAlivePlugin);
|
|
|
|
|
|
keepAlivePlugin.register({
|
|
|
|
|
|
channelId: this.keepLive.channelId,
|
|
|
|
|
|
channelName: this.keepLive.channelName,
|
|
|
|
|
|
title: this.keepLive.title,
|
|
|
|
|
|
content: this.keepLive.content,
|
|
|
|
|
|
},
|
|
|
|
|
|
(res) => {
|
|
|
|
|
|
console.log('保活注册', res);
|
|
|
|
|
|
});
|
2024-08-22 20:13:57 +08:00
|
|
|
|
// #endif
|
2024-08-20 20:02:05 +08:00
|
|
|
|
},
|
2024-08-22 19:34:47 +08:00
|
|
|
|
deleteOrderHandle() {
|
|
|
|
|
|
this.pageNum = 1
|
|
|
|
|
|
this.orderList = []
|
|
|
|
|
|
this.getlist()
|
|
|
|
|
|
},
|
2025-09-24 10:20:09 +08:00
|
|
|
|
revokeOrderHandle() {
|
|
|
|
|
|
this.pageNum = 1
|
|
|
|
|
|
this.orderList = []
|
|
|
|
|
|
this.getlist()
|
|
|
|
|
|
},
|
2024-08-20 20:02:05 +08:00
|
|
|
|
getWarnList() {
|
|
|
|
|
|
this.warnList = []
|
|
|
|
|
|
request({
|
|
|
|
|
|
url: "/system/rescueCar/warnList",
|
|
|
|
|
|
method: 'get',
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
this.warnList = res.data
|
|
|
|
|
|
if (this.warnList.length > 0) {
|
|
|
|
|
|
this.showp = true
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
goToOrder(type) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/rescue/historylist?id=' + type
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
gettel(num) {
|
|
|
|
|
|
uni.makePhoneCall({
|
|
|
|
|
|
phoneNumber: num //仅为示例
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
getsxwhat(id) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/rescue/initiate?id=' + id + '&isAppointment=' + this.isAppointment
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
Fourhammers() {
|
|
|
|
|
|
request({
|
|
|
|
|
|
url: '/app/rescueInfo/getRescueStatistics',
|
|
|
|
|
|
method: 'get',
|
2025-08-29 17:13:05 +08:00
|
|
|
|
params: {
|
|
|
|
|
|
timeType: this.timeType,
|
|
|
|
|
|
startTimeStr: this.startTimeStr,
|
|
|
|
|
|
endTimeStr: this.endTimeStr,
|
|
|
|
|
|
}
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
console.log('四个', res);
|
|
|
|
|
|
this.dqcNum = res.data.dqcNum
|
|
|
|
|
|
this.dzfNum = res.data.dzfNum
|
|
|
|
|
|
this.jyzNum = res.data.jyzNum
|
|
|
|
|
|
this.ywcNum = res.data.ywcNum
|
2025-08-29 17:13:05 +08:00
|
|
|
|
this.yjdNum = res.data.yjdNum
|
|
|
|
|
|
this.yingskNum = res.data.yingskNum ? res.data.yingskNum / 100 : 0
|
|
|
|
|
|
this.yiskNum = res.data.yiskNum ? res.data.yiskNum / 100 : 0
|
|
|
|
|
|
this.dskNum = res.data.dskNum ? res.data.dskNum / 100 : 0
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
timeWeekFormat() {
|
|
|
|
|
|
//定义一个日期对象;
|
|
|
|
|
|
var dateTime = new Date();
|
|
|
|
|
|
//获得系统年份;
|
|
|
|
|
|
var year = dateTime.getFullYear();
|
|
|
|
|
|
//获得系统月份;
|
|
|
|
|
|
var month = dateTime.getMonth() + 1;
|
|
|
|
|
|
//获得系统当月分天数;
|
|
|
|
|
|
var day = dateTime.getDate();
|
|
|
|
|
|
//获得系统小时;
|
|
|
|
|
|
var hours = dateTime.getHours();
|
|
|
|
|
|
//获得系统分钟;
|
|
|
|
|
|
var minutes = dateTime.getMinutes();
|
|
|
|
|
|
//获得系统秒数;
|
|
|
|
|
|
var second = dateTime.getSeconds();
|
|
|
|
|
|
//获得系统星期几;
|
|
|
|
|
|
var dayCycle = dateTime.getDay();
|
|
|
|
|
|
//使用数组更改日期样式;
|
|
|
|
|
|
var dayCycleArray = ["日", "一", "二", "三", "四", "五", "六"];
|
|
|
|
|
|
for (var i = 0; i < 7; i++) {
|
|
|
|
|
|
if (dayCycle == i) {
|
|
|
|
|
|
//将dayCycleArray的数赋值到系统星期几里面中去;
|
|
|
|
|
|
dayCycle = dayCycleArray[i];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
month < 10 ? month = '0' + month : month;
|
|
|
|
|
|
day < 10 ? day = '0' + day : day;
|
|
|
|
|
|
hours < 10 ? hours = '0' + hours : hours;
|
|
|
|
|
|
minutes < 10 ? minutes = '0' + minutes : minutes;
|
|
|
|
|
|
second < 10 ? second = '0' + second : second;
|
|
|
|
|
|
//打印完整的系统日期;
|
|
|
|
|
|
// this.dateStr = year + '-' + month + '-' + day + ' ';
|
|
|
|
|
|
this.currentTime = '星期' + dayCycle
|
|
|
|
|
|
// this.time = hours + ':' + minutes + ':' + second
|
|
|
|
|
|
|
|
|
|
|
|
},
|
2025-09-24 10:20:09 +08:00
|
|
|
|
/* getlist() {
|
2024-08-20 20:02:05 +08:00
|
|
|
|
let data = {
|
|
|
|
|
|
rescueStatus: 1,
|
|
|
|
|
|
pageSize: this.pageSize,
|
|
|
|
|
|
pageNum: this.pageNum,
|
|
|
|
|
|
}
|
|
|
|
|
|
request({
|
|
|
|
|
|
url: '/app/rescueInfo/getRescueList',
|
|
|
|
|
|
method: 'get',
|
|
|
|
|
|
params: data
|
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
console.log('首页', res);
|
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
if (this.pageNum != 1) {
|
|
|
|
|
|
this.orderList = this.orderList.concat(res.rows)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.orderList = res.rows
|
|
|
|
|
|
}
|
|
|
|
|
|
let total = res.total
|
|
|
|
|
|
this.totalPages = Math.ceil(total / this.pageSize);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
})
|
2025-09-24 10:20:09 +08:00
|
|
|
|
}, */
|
|
|
|
|
|
getlist() {
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
|
this.loading = true;
|
|
|
|
|
|
let data = {
|
|
|
|
|
|
rescueStatus: 1,
|
|
|
|
|
|
pageSize: this.pageSize,
|
|
|
|
|
|
pageNum: this.pageNum,
|
|
|
|
|
|
}
|
|
|
|
|
|
request({
|
|
|
|
|
|
url: '/app/rescueInfo/getRescueList',
|
|
|
|
|
|
method: 'get',
|
|
|
|
|
|
params: data
|
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
console.log('首页', res);
|
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
if (this.pageNum != 1) {
|
|
|
|
|
|
this.orderList = this.orderList.concat(res.rows)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.orderList = res.rows
|
|
|
|
|
|
}
|
|
|
|
|
|
let total = res.total
|
|
|
|
|
|
this.totalPages = Math.ceil(total / this.pageSize);
|
|
|
|
|
|
}
|
|
|
|
|
|
resolve(); // 请求完成
|
|
|
|
|
|
}).catch(error => {
|
|
|
|
|
|
console.error('获取列表失败', error);
|
|
|
|
|
|
reject(error);
|
|
|
|
|
|
}).finally(() => {
|
|
|
|
|
|
this.loading = false;
|
|
|
|
|
|
})
|
|
|
|
|
|
});
|
2024-08-20 20:02:05 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// 更新时间
|
|
|
|
|
|
/* updateDateTime() {
|
|
|
|
|
|
const now = new Date();
|
|
|
|
|
|
const year = now.getFullYear();
|
|
|
|
|
|
const month = String(now.getMonth() + 1).padStart(2, '0');
|
|
|
|
|
|
const day = String(now.getDate()).padStart(2, '0');
|
|
|
|
|
|
const hours = String(now.getHours()).padStart(2, '0');
|
|
|
|
|
|
const minutes = String(now.getMinutes()).padStart(2, '0');
|
|
|
|
|
|
const seconds = String(now.getSeconds()).padStart(2, '0');
|
|
|
|
|
|
|
|
|
|
|
|
this.currentDateTime = `${year}年${month}月${day}日 ${hours}:${minutes}:${seconds}`;
|
|
|
|
|
|
}, */
|
|
|
|
|
|
updateDateTime() {
|
|
|
|
|
|
const now = new Date();
|
|
|
|
|
|
const year = now.getFullYear();
|
|
|
|
|
|
const month = String(now.getMonth() + 1).padStart(2, '0');
|
|
|
|
|
|
const day = String(now.getDate()).padStart(2, '0');
|
|
|
|
|
|
const hours = String(now.getHours()).padStart(2, '0');
|
|
|
|
|
|
const minutes = String(now.getMinutes()).padStart(2, '0');
|
|
|
|
|
|
const seconds = String(now.getSeconds()).padStart(2, '0');
|
|
|
|
|
|
|
|
|
|
|
|
this.currentDate = `${year}年${month}月${day}日`;
|
|
|
|
|
|
this.currentTime = `${hours}:${minutes}:${seconds}`;
|
|
|
|
|
|
this.currentDateTime = `${this.currentDate} ${this.currentTime}`;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
maskClick(e) {
|
|
|
|
|
|
console.log('maskClick事件:', e);
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
tabChoose(item, index) {
|
|
|
|
|
|
this.tabValue = index + 1
|
|
|
|
|
|
if (1 == this.tabValue) {
|
|
|
|
|
|
this.timeType = "day"
|
|
|
|
|
|
} else if (2 == this.tabValue) {
|
|
|
|
|
|
this.timeType = "month"
|
|
|
|
|
|
} else if (3 == this.tabValue) {
|
|
|
|
|
|
this.timeType = "all"
|
|
|
|
|
|
} else if (4 == this.tabValue) {
|
|
|
|
|
|
this.timeType = "more"
|
|
|
|
|
|
this.range = []
|
|
|
|
|
|
}
|
|
|
|
|
|
if (4 == this.tabValue) {
|
|
|
|
|
|
if (this.range.length > 0) {
|
|
|
|
|
|
this.startTimeStr = this.range[0]
|
|
|
|
|
|
this.endTimeStr = this.range[1]
|
|
|
|
|
|
this.Fourhammers()
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.Fourhammers()
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
filterPosition() {
|
|
|
|
|
|
if (this.roleList && this.roleList.length > 0) {
|
|
|
|
|
|
console.log('roleList', this.roleList)
|
|
|
|
|
|
// 筛选servicePackageId为"jiuyuan"的角色
|
|
|
|
|
|
const filteredRoles = this.roleList.filter(role =>
|
|
|
|
|
|
role.servicePackageId === 'jiuyuan'
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// 按id正序排序
|
|
|
|
|
|
filteredRoles.sort((a, b) => a.id - b.id);
|
|
|
|
|
|
|
|
|
|
|
|
// 取第一个
|
|
|
|
|
|
if (filteredRoles.length > 0) {
|
|
|
|
|
|
this.positionName = filteredRoles[0].name;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.positionName = ''; // 设置为空,不显示
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.positionName = ''; // 设置为空,不显示
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
|
|
|
|
|
getone() {
|
|
|
|
|
|
this.one = !this.one
|
|
|
|
|
|
},
|
|
|
|
|
|
//一键救援
|
|
|
|
|
|
getyi() {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/rescue/order'
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
goisAppointment() {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/rescue/order?isAppointment=1'
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
getsx() {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/Detain/Detain'
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
//预约
|
|
|
|
|
|
getyue() {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/rescue/order'
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
godetail(id) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/details/details?id=' + id
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
gohistory() {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: '/pages/rescue/historylist?id=1'
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
.content {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: calc(100vh);
|
2024-08-22 19:34:47 +08:00
|
|
|
|
background-color: #F7F8FC;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dil {
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// background-color: #F7F8FC;
|
|
|
|
|
|
background-color: #f3f5fc;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
box-sizing: border-box;
|
2025-09-24 10:20:09 +08:00
|
|
|
|
padding: 0 30rpx;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
}
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.content-top {
|
|
|
|
|
|
padding: 90rpx 40rpx 0;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// background-color: #327DFB;
|
|
|
|
|
|
background: linear-gradient(to bottom, #2a3eff 40%, #1863fd 100%);
|
|
|
|
|
|
border-bottom-left-radius: 6px;
|
|
|
|
|
|
border-bottom-right-radius: 6px;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.top-two {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
padding: 20rpx 0;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.top-left {
|
2024-08-23 18:41:57 +08:00
|
|
|
|
height: 58rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
box-sizing: border-box;
|
2024-08-23 18:41:57 +08:00
|
|
|
|
// border-radius: 50px;
|
|
|
|
|
|
// background-color: #D1EDFF;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.left1 {
|
2025-08-06 18:00:28 +08:00
|
|
|
|
width: 112rpx;
|
|
|
|
|
|
height: 58rpx;
|
2024-08-23 18:41:57 +08:00
|
|
|
|
background: rgba(255, 255, 255, 0.2);
|
|
|
|
|
|
border-radius: 200rpx 0rpx 0rpx 200rpx;
|
|
|
|
|
|
font-size: 26rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
color: white;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.left2 {
|
2024-08-23 18:41:57 +08:00
|
|
|
|
width: 146rpx;
|
|
|
|
|
|
height: 58rpx;
|
|
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
|
border-radius: 0rpx 29rpx 29rpx 0rpx;
|
|
|
|
|
|
font-size: 26rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
color: #207EFE;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.top-right {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2024-08-23 18:41:57 +08:00
|
|
|
|
font-size: 34rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
font-weight: 400;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
color: #fff;
|
2024-08-23 18:41:57 +08:00
|
|
|
|
line-height: 1;
|
2025-08-06 18:00:28 +08:00
|
|
|
|
|
2024-08-23 18:41:57 +08:00
|
|
|
|
.top-right-icon {
|
|
|
|
|
|
width: 44rpx;
|
|
|
|
|
|
height: 44rpx;
|
|
|
|
|
|
}
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.top-menu {
|
2024-08-20 20:02:05 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
padding: 30rpx 0rpx 36rpx;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
}
|
2025-08-06 18:00:28 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.top-menu-item {
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
row-gap: 12rpx;
|
2024-08-23 18:41:57 +08:00
|
|
|
|
font-size: 28rpx;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
}
|
2025-08-06 18:00:28 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.top-menu-item-icon {
|
|
|
|
|
|
width: 60rpx;
|
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
|
}
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.four-box-header {
|
2025-08-29 17:13:05 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: start;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 20rpx 0 10rpx 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.four-box-header_2 {
|
|
|
|
|
|
width: 100%;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
padding: 20rpx 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.four-box-header_2_right {
|
|
|
|
|
|
width: 60%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 20rpx 0;
|
|
|
|
|
|
|
|
|
|
|
|
.tab-item {
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
|
color: #a1a6aa;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
padding: 0rpx 20rpx;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
|
|
|
|
|
|
|
&.active {
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #000000;
|
|
|
|
|
|
|
|
|
|
|
|
&::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: -10rpx;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
width: 33.33%;
|
|
|
|
|
|
height: 6rpx;
|
|
|
|
|
|
background: linear-gradient(90deg, #054DF3 0%, #55A3FF 100%);
|
|
|
|
|
|
border-radius: 3rpx 3rpx 0 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-08-22 19:34:47 +08:00
|
|
|
|
}
|
2025-08-06 18:00:28 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.four-box-header-title {
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
}
|
2025-08-06 18:00:28 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.four-box-header-extra {
|
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
}
|
2025-08-06 18:00:28 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.four-box {
|
2025-08-29 17:13:05 +08:00
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1fr 1fr;
|
|
|
|
|
|
gap: 24rpx;
|
|
|
|
|
|
// margin-top: 15px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* .two-box {
|
2024-08-22 19:34:47 +08:00
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1fr;
|
|
|
|
|
|
gap: 24rpx;
|
|
|
|
|
|
// margin-top: 15px;
|
|
|
|
|
|
width: 100%;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
} */
|
|
|
|
|
|
.two-box-container {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 20rpx;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.two-box {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1fr;
|
|
|
|
|
|
gap: 18rpx;
|
|
|
|
|
|
width: 100%;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-08-20 20:02:05 +08:00
|
|
|
|
.ques {
|
2025-09-24 10:20:09 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin: 60rpx auto;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
|
|
|
|
|
image {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.boxf {
|
2025-08-29 17:13:05 +08:00
|
|
|
|
height: 130rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
|
padding: 12px;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// background-image: url('~@/static/images/homeOrderCard/dzf.png');
|
|
|
|
|
|
// background: rgba(218, 218, 218, 0.2);
|
|
|
|
|
|
background-color: #fdfeff;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
background-size: cover;
|
|
|
|
|
|
background-position: center;
|
2025-08-06 18:00:28 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// 边框
|
|
|
|
|
|
border: 1px solid #badeff;
|
|
|
|
|
|
// 阴影
|
|
|
|
|
|
box-shadow: inset 0 2px 8px rgba(186, 222, 255, 0.3);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* border: 1px solid rgba(186, 222, 255, 0.6);
|
|
|
|
|
|
box-shadow:
|
|
|
|
|
|
// 内阴影(顶部微亮)
|
|
|
|
|
|
inset 0 2px 4px rgba(255, 255, 255, 0.4),
|
|
|
|
|
|
// 内阴影(底部微暗)
|
|
|
|
|
|
inset 0 -2px 4px rgba(186, 222, 255, 0.4),
|
|
|
|
|
|
// 外阴影:更轻,更小
|
|
|
|
|
|
0 2px 6px rgba(186, 222, 255, 0.3);
|
|
|
|
|
|
|
|
|
|
|
|
backdrop-filter: blur(10px); */
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.boxf1 {
|
2024-08-31 01:20:44 +08:00
|
|
|
|
height: 140rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
|
padding: 12px;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// background-image: url('~@/static/images/homeOrderCard/dqc.png');
|
|
|
|
|
|
background: rgba(218, 218, 218, 0.2);
|
2024-08-20 20:02:05 +08:00
|
|
|
|
background-size: cover;
|
|
|
|
|
|
background-position: center;
|
2025-08-06 18:00:28 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.boxf2 {
|
2025-08-29 17:13:05 +08:00
|
|
|
|
height: 120rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
border-radius: 6px;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
padding: 2px 12px 2px 12px;
|
|
|
|
|
|
// padding: 8px;
|
|
|
|
|
|
// background-image: url('~@/static/images/homeOrderCard/jyz.png');
|
|
|
|
|
|
background: rgba(218, 218, 218, 0.2);
|
2024-08-20 20:02:05 +08:00
|
|
|
|
background-size: cover;
|
|
|
|
|
|
background-position: center;
|
2025-08-06 18:00:28 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.boxf3 {
|
2024-08-31 01:20:44 +08:00
|
|
|
|
height: 140rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
|
padding: 12px;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
// background-image: url('~@/static/images/homeOrderCard/ywc.png');
|
|
|
|
|
|
background: rgba(218, 218, 218, 0.2);
|
2024-08-20 20:02:05 +08:00
|
|
|
|
background-size: cover;
|
|
|
|
|
|
background-position: center;
|
2025-08-06 18:00:28 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.zi1 {
|
2024-08-22 19:34:47 +08:00
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
color: #333;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
column-gap: 10rpx;
|
2025-08-06 18:00:28 +08:00
|
|
|
|
|
2024-08-22 19:34:47 +08:00
|
|
|
|
.zi1-icon {
|
|
|
|
|
|
width: 38rpx;
|
|
|
|
|
|
height: 38rpx;
|
|
|
|
|
|
}
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-08-29 17:13:05 +08:00
|
|
|
|
.zi1_1 {
|
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
color: #333;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
column-gap: 10rpx;
|
|
|
|
|
|
|
|
|
|
|
|
.zi1_1-icon {
|
|
|
|
|
|
width: 38rpx;
|
|
|
|
|
|
height: 38rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-20 20:02:05 +08:00
|
|
|
|
.zi2 {
|
|
|
|
|
|
width: 100%;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
font-size: 40rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
font-weight: bold;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
color: #000;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-08-29 17:13:05 +08:00
|
|
|
|
.zi2_2 {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #000;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-20 20:02:05 +08:00
|
|
|
|
.box-tap {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
margin-top: 25px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tap-left {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tap-right {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.zi3 {
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
color: #666666;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.left-img1 {
|
|
|
|
|
|
width: 65px;
|
|
|
|
|
|
height: 15px;
|
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
|
|
|
|
|
|
|
// smargin-bottom: 10px;
|
|
|
|
|
|
image {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.gang {
|
|
|
|
|
|
width: 60px;
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
border-radius: 50px;
|
|
|
|
|
|
margin-top: 6px;
|
|
|
|
|
|
background: linear-gradient(87deg, #B6E1FF 0%, #339DFF 100%);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-08-06 18:00:28 +08:00
|
|
|
|
.tap-box {}
|
2024-08-20 20:02:05 +08:00
|
|
|
|
|
|
|
|
|
|
.boxt {
|
|
|
|
|
|
// height: 110px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
background-color: white;
|
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
|
margin-top: 14px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding-bottom: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.boxt-left {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.left-lan {
|
|
|
|
|
|
width: 50px;
|
|
|
|
|
|
height: 25px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
background-color: #207EFE;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
color: white;
|
|
|
|
|
|
border-radius: 0px 0px 6px 0px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.text1 {
|
|
|
|
|
|
margin-left: 24px;
|
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.lanzi {
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #4C98FF;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.text2 {
|
|
|
|
|
|
margin-left: 24px;
|
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.boxt-right {
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.zhtai {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 10px;
|
|
|
|
|
|
right: 10px;
|
|
|
|
|
|
width: 60px;
|
|
|
|
|
|
height: 25px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
background: #FFD7D7;
|
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
color: #FF4C4C;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.zhtait {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 50px;
|
|
|
|
|
|
right: 10px;
|
|
|
|
|
|
width: 60px;
|
|
|
|
|
|
height: 25px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
background: #d5e8ff;
|
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
color: #53b5ff;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dianhua {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: -120px;
|
|
|
|
|
|
right: 10px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
color: #3289FF;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dianhuad {
|
|
|
|
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
color: #ff1d3b;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.ticon {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 13px;
|
|
|
|
|
|
margin-right: 5px;
|
|
|
|
|
|
|
|
|
|
|
|
image {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.yijian {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
|
height: 40px;
|
|
|
|
|
|
font-size: 16px;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
background: #327DFB;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
margin-top: 30rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.y-left {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
border-radius: 10px;
|
2024-08-22 19:34:47 +08:00
|
|
|
|
background: #327DFB;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.y-right {
|
|
|
|
|
|
width: 30%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.kou {
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
right: 5px;
|
|
|
|
|
|
bottom: 80px;
|
|
|
|
|
|
width: 60px;
|
|
|
|
|
|
height: 60px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
z-index: 99;
|
|
|
|
|
|
|
|
|
|
|
|
image {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.box {
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-22 20:13:57 +08:00
|
|
|
|
// .xz-box {
|
|
|
|
|
|
// height: 80px;
|
|
|
|
|
|
// width: 48%;
|
|
|
|
|
|
// display: flex;
|
|
|
|
|
|
// justify-content: center;
|
|
|
|
|
|
// align-items: center;
|
|
|
|
|
|
// font-size: 16px;
|
|
|
|
|
|
// font-weight: 400;
|
|
|
|
|
|
// color: #FFFFFF;
|
|
|
|
|
|
// background-size: cover;
|
|
|
|
|
|
// background-position: center;
|
|
|
|
|
|
// margin-top: 20px;
|
|
|
|
|
|
|
|
|
|
|
|
// }
|
2024-08-20 20:02:05 +08:00
|
|
|
|
.xz-box {
|
2024-08-22 20:13:57 +08:00
|
|
|
|
width: 330rpx;
|
|
|
|
|
|
height: 396rpx;
|
|
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
|
box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0, 0, 0, 0.06);
|
|
|
|
|
|
border-radius: 16rpx;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
display: flex;
|
2024-08-22 20:13:57 +08:00
|
|
|
|
flex-direction: column;
|
2024-08-20 20:02:05 +08:00
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
color: #FFFFFF;
|
2024-08-22 20:13:57 +08:00
|
|
|
|
margin-top: 36rpx;
|
|
|
|
|
|
transition: all ease 400ms;
|
|
|
|
|
|
overflow: hidden;
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2024-08-22 20:13:57 +08:00
|
|
|
|
.checkedFlagIcon {
|
|
|
|
|
|
display: none;
|
|
|
|
|
|
}
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2024-08-22 20:13:57 +08:00
|
|
|
|
&.checked {
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
border: 2rpx solid #478AFA;
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2024-08-22 20:13:57 +08:00
|
|
|
|
.checkedFlag {
|
|
|
|
|
|
background-color: #478AFA;
|
|
|
|
|
|
width: 120rpx;
|
|
|
|
|
|
height: 120rpx;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: -60rpx;
|
|
|
|
|
|
bottom: -60rpx;
|
|
|
|
|
|
transform: rotate(45deg);
|
|
|
|
|
|
z-index: 1;
|
|
|
|
|
|
}
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2024-08-22 20:13:57 +08:00
|
|
|
|
.checkedFlagIcon {
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
bottom: 0;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2024-08-22 20:13:57 +08:00
|
|
|
|
.xz-box-icon {
|
|
|
|
|
|
width: 130rpx;
|
|
|
|
|
|
height: 130rpx;
|
|
|
|
|
|
margin-bottom: 26rpx;
|
|
|
|
|
|
}
|
2024-09-06 09:18:25 +08:00
|
|
|
|
|
2024-08-22 20:13:57 +08:00
|
|
|
|
.box-wenzi {
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
color: #000000;
|
|
|
|
|
|
}
|
2024-08-20 20:02:05 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#y1 {
|
|
|
|
|
|
background-image: url('../../static/tc.png');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#y2 {
|
|
|
|
|
|
background-image: url('../../static/sy.png');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#y3 {
|
|
|
|
|
|
background-image: url('../../static/dd.png');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#y4 {
|
|
|
|
|
|
background-image: url('../../static/ht.png');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#y5 {
|
|
|
|
|
|
background-image: url('../../static/kc.png');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.box_ {
|
|
|
|
|
|
width: 320px;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding: 15px;
|
|
|
|
|
|
background: white;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.title_ {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
font-size: 17px;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.size_ {
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
color: #666;
|
|
|
|
|
|
margin: 5px 0px;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.annaiu {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 60px;
|
|
|
|
|
|
border-top: 1px solid #f3f3f3;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding-top: 10px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
color: #244ec6;
|
|
|
|
|
|
}
|
2025-08-29 17:13:05 +08:00
|
|
|
|
|
|
|
|
|
|
.user-info {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
|
|
|
|
|
|
.user-name {
|
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
line-height: 1.2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.user-position {
|
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
color: rgba(255, 255, 255, 0.8);
|
|
|
|
|
|
line-height: 1.2;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* .real-time {
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
background: rgba(255, 255, 255, 0.2);
|
|
|
|
|
|
padding: 8rpx 16rpx;
|
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
|
} */
|
|
|
|
|
|
.real-time {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
background: rgba(255, 255, 255, 0.2);
|
|
|
|
|
|
// background-color: #7d91ff;
|
|
|
|
|
|
// padding: 8rpx 0;
|
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.date-part {
|
|
|
|
|
|
padding: 14rpx 16rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.time-part {
|
|
|
|
|
|
padding: 14rpx 20rpx 14rpx 12rpx;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
color: #327DFB;
|
|
|
|
|
|
border-radius: 0 40rpx 40rpx 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.tab-choose-class {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
padding: 4rpx 20rpx 16rpx 20rpx;
|
|
|
|
|
|
border-top: 1rpx solid #F5F5F5;
|
|
|
|
|
|
|
|
|
|
|
|
.tab-content {
|
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
.tab-name-class {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
.icon-tab {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
width: 32rpx;
|
|
|
|
|
|
height: 32rpx;
|
|
|
|
|
|
|
|
|
|
|
|
image {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tab-icon {
|
|
|
|
|
|
width: 66rpx;
|
|
|
|
|
|
height: 8rpx;
|
|
|
|
|
|
margin-top: 8rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.eye-icon {
|
2025-09-24 10:20:09 +08:00
|
|
|
|
transform: scale(1.5);
|
|
|
|
|
|
padding: 10rpx;
|
2025-08-29 17:13:05 +08:00
|
|
|
|
color: #929292;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.blue-line {
|
|
|
|
|
|
width: 8rpx;
|
|
|
|
|
|
height: 32rpx;
|
|
|
|
|
|
background: #054DF3;
|
|
|
|
|
|
border-radius: 4rpx;
|
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.bqing_ {
|
|
|
|
|
|
border-radius: 16rpx;
|
|
|
|
|
|
border: 3rpx solid #FFFFFF;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
|
|
|
|
|
|
padding: 3px 5px;
|
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 添加logo样式
|
|
|
|
|
|
.user-name-container {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 12rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.logo-icon {
|
|
|
|
|
|
width: 120rpx;
|
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
|
border-radius: 20%;
|
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
|
}
|
2025-09-24 10:20:09 +08:00
|
|
|
|
|
|
|
|
|
|
// 悬浮刷新按钮
|
|
|
|
|
|
.floating-refresh-btn {
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
right: 30rpx;
|
|
|
|
|
|
bottom: 180rpx; // 位于底部导航栏上方
|
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
|
background-color: rgba(50, 125, 251, 0.7); // 半透明蓝色
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
// box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.2);
|
|
|
|
|
|
z-index: 999;
|
|
|
|
|
|
transition: transform 0.3s, background-color 0.3s;
|
|
|
|
|
|
|
|
|
|
|
|
// 点击效果
|
|
|
|
|
|
&:active {
|
|
|
|
|
|
background-color: rgba(50, 125, 251, 0.9);
|
|
|
|
|
|
transform: scale(0.95);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 旋转动画
|
|
|
|
|
|
&.rotating {
|
|
|
|
|
|
animation: rotate 1s linear infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 旋转动画关键帧
|
|
|
|
|
|
@keyframes rotate {
|
|
|
|
|
|
from {
|
|
|
|
|
|
transform: rotate(0deg);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
to {
|
|
|
|
|
|
transform: rotate(360deg);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.loading-container {
|
|
|
|
|
|
/* position: fixed;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
bottom: 0;
|
|
|
|
|
|
background-color: rgba(255, 255, 255, 0.9); */
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
z-index: 9999;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.loading-spinner {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 60px;
|
|
|
|
|
|
height: 60px;
|
|
|
|
|
|
border: 4px solid #f3f3f3;
|
|
|
|
|
|
border-top: 4px solid #327DFB;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
animation: spin 1s linear infinite;
|
|
|
|
|
|
margin-bottom: 15px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.loading-text {
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
color: #666;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.loading-icon {
|
|
|
|
|
|
width: 35px;
|
|
|
|
|
|
height: 35px;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes spin {
|
|
|
|
|
|
0% {
|
|
|
|
|
|
transform: rotate(0deg);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
100% {
|
|
|
|
|
|
transform: rotate(360deg);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|