chuangte_bike_newxcx/page_shanghu/guanli/admin_worke.vue

1119 lines
30 KiB
Vue
Raw Normal View History

2025-04-01 21:35:30 +08:00
<template>
<view class="page">
<view class="bj"></view>
2026-04-02 01:48:12 +08:00
<view class="toptit" hover-class="is-hover" hover-stay-time="100" @click="btnqh"><!-- @click="topage(4)" -->
<image class="toptit-avatar" @click.stop="topage(4)" src="https://api.ccttiot.com/smartmeter/img/static/uEQLkI1vDF4PTy44DTXH" mode=""></image> {{areaname}} <u-icon style="margin-left: 10rpx;" name="arrow-down" color="#fff" size="28"></u-icon>
2025-12-20 17:34:11 +08:00
</view>
2026-04-02 01:48:12 +08:00
<view class="op-card">
<view class="op-head">
<view class="op-head-title">
2025-12-20 14:29:10 +08:00
运营状况
</view>
2026-04-02 01:48:12 +08:00
<view class="op-more" hover-class="is-hover" hover-stay-time="100" @click="btnchakan">
2025-12-20 14:29:10 +08:00
查看更多 <u-icon style="margin-left: 6rpx;" name="arrow-right" color="#4297F3" size="28"></u-icon>
</view>
</view>
<view class="leiji">
<view class="li">
<view class="top">
{{yunyingobj.orderCount == null ? 0 : yunyingobj.orderCount}} <text style="font-size: 26rpx;"></text>
</view>
<view class="bot">
今日订单
</view>
</view>
<view class="li">
<view class="top">
{{yunyingobj.orderActualAmount == null ? 0 : yunyingobj.orderActualAmount}} <text style="font-size: 26rpx;"></text>
</view>
<view class="bot">
今日营收
</view>
</view>
<view class="li">
<view class="top">
{{yunyingobj.finishedOrderCount == null ? 0 : yunyingobj.finishedOrderCount}} <text style="font-size: 26rpx;"></text>
</view>
<view class="bot">
已完成订单
</view>
</view>
<view class="li">
<view class="top">
{{yunyingobj.orderStatusMap.PROCESSING == null ? 0 : yunyingobj.orderStatusMap.PROCESSING}} <text style="font-size: 26rpx;"></text>
</view>
<view class="bot">
进行中订单
</view>
</view>
</view>
</view>
<view class="newtop">
2026-04-02 01:48:12 +08:00
<view class="menu-item" hover-class="is-hover" hover-stay-time="100" @click="topage(11)">
2025-12-20 14:29:10 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/uReMugbnooJ4SSlLyF13" mode=""></image>
<text>运营配置</text>
</view>
2026-04-02 01:48:12 +08:00
<view class="menu-item" hover-class="is-hover" hover-stay-time="100" @click="toMap">
2025-12-20 14:29:10 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/utuqX8JbqxLHn3nymdWo" mode=""></image>
<text>电子围栏</text>
</view>
2026-04-02 01:48:12 +08:00
<view class="menu-item" hover-class="is-hover" hover-stay-time="100" @click="topage(12)">
2025-12-20 14:29:10 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/ux863IEYVBkbjwqa9jf2" mode=""></image>
<text>运营区域</text>
</view>
2026-04-02 01:48:12 +08:00
<view class="menu-item" hover-class="is-hover" hover-stay-time="100" @click="btnts">
2025-12-20 14:29:10 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/urvqyh17Uuoql0lXDdq0" mode=""></image>
<text>用户投诉</text>
</view>
2026-04-28 14:01:46 +08:00
<view class="menu-item" hover-class="is-hover" hover-stay-time="100" @click="btnreturnbike" style="position: relative;">
2025-12-20 14:29:10 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/uJ4x8uTOMd7pmTeBiX8p" mode=""></image>
2026-01-28 18:00:39 +08:00
<text>订单审核</text>
2026-04-28 14:01:46 +08:00
<view v-if="waitVerifyCount > 0" class="badge">{{waitVerifyCount > 99 ? '99+' : waitVerifyCount}}</view>
2025-12-20 14:29:10 +08:00
</view>
2025-04-01 21:35:30 +08:00
</view>
2026-04-02 01:48:12 +08:00
<view class="gonggao" hover-class="is-hover" hover-stay-time="100" @click="btntopgg">
2025-12-20 14:29:10 +08:00
<image style="width: 28rpx;height: 28rpx;" src="https://api.ccttiot.com/smartmeter/img/static/urVdfzier4Q54s6u8Upl" mode=""></image>
2025-04-01 21:35:30 +08:00
<view class="container">
<view class="scroll-text">
<view class="scroll-item">
2025-09-22 17:08:55 +08:00
{{announcements.title == null ? '暂无最新公告!!!' : announcements.title}}
2025-04-01 21:35:30 +08:00
</view>
</view>
</view>
2025-12-20 14:29:10 +08:00
<u-icon name="arrow-right" color="#373737" style="position: absolute;right: 10rpx;" size="32"></u-icon>
</view>
<!-- 常用工具 -->
<view class="newtit">
常用工具
</view>
2026-04-02 01:48:12 +08:00
<view class="common-tools">
<image class="tool-banner" hover-class="is-hover" hover-stay-time="100" @click="btnjs" src="https://api.ccttiot.com/smartmeter/img/static/uehKZhQD3xZFCecZSJf2" mode=""></image> <!-- //门店管理 -->
<image class="tool-banner" hover-class="is-hover" hover-stay-time="100" @click="topage(10)" src="https://api.ccttiot.com/smartmeter/img/static/uRkGGK4bIWnMsosA5Zu1" mode=""></image> <!-- 收费模版 -->
<image class="tool-banner" hover-class="is-hover" hover-stay-time="100" @click="topage(9)" src="https://api.ccttiot.com/smartmeter/img/static/uBsnPWXwpmwhuaDB6BMF" mode=""></image> <!-- 车辆型号 -->
<image class="tool-banner" hover-class="is-hover" hover-stay-time="100" @click="topage(2)" src="https://api.ccttiot.com/smartmeter/img/static/uPXA0S6p7NZ3FEoklU95" mode=""></image> <!-- 车辆管理 -->
2025-12-20 14:29:10 +08:00
</view>
<!-- 其他工具 -->
<view class="newtit" style="margin-top: 32rpx;">
其他工具
</view>
2026-04-02 01:48:12 +08:00
<view class="other-tools">
<view class="other-row">
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnjm" src="https://api.ccttiot.com/smartmeter/img/static/uffolC81XnKNgE9Uc7uB" mode=""></image> <!-- 加盟伙伴 -->
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnywry" src="https://api.ccttiot.com/smartmeter/img/static/u1ZIXf7JVPNtZVtArR4E" mode=""></image> <!-- 运维人员 -->
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnkefu" src="https://api.ccttiot.com/smartmeter/img/static/uxy4PyvtlQ1qA3VgOVIm" mode=""></image> <!-- 客服设置 -->
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnhy" src="https://api.ccttiot.com/smartmeter/img/static/umIo5c86JDdswIhamRAD" mode=""></image> <!-- 会员中心 -->
2025-12-20 14:29:10 +08:00
</view>
2026-04-02 01:48:12 +08:00
<view class="other-row">
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnyunwei" src="https://api.ccttiot.com/smartmeter/img/static/uc8BWB6V2AG1u6Rv7RJr" mode=""></image>
2025-12-20 14:29:10 +08:00
<!-- 换电工单 -->
<!-- 换电记录 -->
<!-- 批量调度 -->
2026-04-02 01:48:12 +08:00
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btndiaodujl" src="https://api.ccttiot.com/smartmeter/img/static/u8pqPmRzOO7xfH0zFKJE" mode=""></image>
2025-12-20 14:29:10 +08:00
<!-- 调度记录 -->
2026-04-02 01:48:12 +08:00
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="topage(7)" src="https://api.ccttiot.com/smartmeter/img/static/uvLQbL993lGQMU5T1WGc" mode=""></image> <!-- 故障审核 -->
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnggsz" src="https://api.ccttiot.com/smartmeter/img/static/u5ASdG202aRlfiKJqxbG" mode=""></image> <!-- 公告协议 -->
2025-12-20 14:29:10 +08:00
</view>
2026-04-02 01:48:12 +08:00
<view class="other-row row-with-gap">
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnsp" src="https://api.ccttiot.com/smartmeter/img/static/u9Ia1oZv3dvWOuIvxNZd" mode=""></image> <!-- 视频教程 -->
<image class="tool-icon-sm" hover-class="is-hover" hover-stay-time="100" @click="btnewm" src="https://api.ccttiot.com/smartmeter/img/static/uAlHiuCxL9vVQsc1m0pz" mode=""></image> <!-- 二维码 -->
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnInvoice" src="https://api.ccttiot.com/smartmeter/img/static/u7FWEOjQE6vSYjLYryQt" mode=""></image> <!-- 电子发票 -->
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btntuiguang" src="https://api.ccttiot.com/smartmeter/img/static/uB6MeUkD1cSFiBujgYt6" mode=""></image> <!-- 推广 -->
2026-01-28 18:00:39 +08:00
</view>
2026-04-02 01:48:12 +08:00
<view class="other-row row-start">
2026-04-28 14:01:46 +08:00
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnDeviceInsurance" src="https://api.ccttiot.com/smartmeter/img/static/u3jUn8Sy2K9sAwfIeG6l" mode=""></image> <!-- 车辆保险 -->
2026-04-02 01:48:12 +08:00
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnkjpw" src="https://api.ccttiot.com/smartmeter/img/static/ukU5dVsJRl0LjuGvV0m8" mode=""></image> <!-- 卡劵配额 -->
<image class="tool-icon" hover-class="is-hover" hover-stay-time="100" @click="btnyy" src="https://api.ccttiot.com/smartmeter/img/static/uJ7TUS8111sj8b2M6jcv" mode=""></image> <!-- 语音同步 -->
2025-12-20 14:29:10 +08:00
</view>
2025-04-01 21:35:30 +08:00
</view>
<!-- 公告弹窗 -->
2025-12-20 14:29:10 +08:00
<view class="noticetc" style="width: 100%;" v-if="gonggaoflag">
2025-06-06 11:32:12 +08:00
<view class="name">
2025-04-01 21:35:30 +08:00
公告
</view>
<view class="biaoti">
2025-09-22 17:08:55 +08:00
{{announcements.title}}
2025-04-01 21:35:30 +08:00
</view>
2025-06-06 11:32:12 +08:00
<!-- <view class="cont" v-html="gonggaoxq.noticeContent"></view> -->
2025-12-20 14:29:10 +08:00
<u-parse :html="announcements.content" style="width: 100%;height: 60vh;padding: 10rpx;box-sizing: border-box;margin-top: 20rpx;"></u-parse>
2026-04-02 01:48:12 +08:00
<view class="btn" hover-class="is-hover" hover-stay-time="100" @click="btnggtc">
2025-04-01 21:35:30 +08:00
我知道了
</view>
</view>
<view class="mask" v-if="gonggaoflag"></view>
<u-select v-model="show" :list="list" title='选择运营区' @confirm="confirm" v-if="list.length <= 5"></u-select>
<!-- 自定义选择器 -->
<view class="custom-select" v-if="show && list.length > 5">
<view class="mask" @click="show = false"></view>
<view class="select-content">
<view class="select-header">
<text>选择运营区</text>
2026-04-02 01:48:12 +08:00
<text class="close" @click="show = false" hover-class="is-hover" hover-stay-time="100">×</text>
2025-04-01 21:35:30 +08:00
</view>
<view class="search-box">
<input type="text" v-model="searchKey" placeholder="搜索运营区" @input="handleSearch" />
</view>
<scroll-view scroll-y class="select-list">
2026-04-02 01:48:12 +08:00
<view class="select-item" hover-class="is-hover" hover-stay-time="100" v-for="item in displayList" :key="item.value" @click="selectItem(item)"
2025-04-01 21:35:30 +08:00
:class="{ 'highlight': searchKey && item.label.includes(searchKey) }">
{{ item.label }}
<view style="font-size: 24rpx;color: #999;margin-left: auto;"> {{ item.deptName }}</view>
</view>
</scroll-view>
</view>
</view>
2025-08-19 17:02:14 +08:00
<view class="fuwuewm" v-if="fuwuewm">
<image src="https://api.ccttiot.com/qrcode_for_gh_25c71c637dbc_344%20(2)-1753329225290.jpg" show-menu-by-longpress @longpress="handleLongPress" mode=""></image>
<text class="" style="width: 100%;text-align: center;margin-top: 20rpx;display: block;color: #fff;">
长按关注公众号租车信息不错过
</text>
2026-04-02 01:48:12 +08:00
<view class="" hover-class="is-hover" hover-stay-time="100" @click="fuwuewm = false">
2025-08-19 17:02:14 +08:00
关闭
</view>
</view>
<view class="mask" style="background-color: rgba(0, 0, 0, 0.5);" v-if="fuwuewm"></view>
2025-12-20 14:29:10 +08:00
2025-04-01 21:35:30 +08:00
<TabBar :indexs='0' style=""></TabBar>
</view>
</template>
<script>
import TabBar from '@/page_shanghu/components/tab-bar/tab-bar.vue'
2025-04-10 08:57:21 +08:00
var xBlufi = require("@/components/blufi/xBlufi.js")
2025-04-01 21:35:30 +08:00
export default {
components: { TabBar },
data() {
return {
bgc: {
backgroundColor: "#FFFFFF",
},
sn: '',
2025-04-27 17:37:23 +08:00
areaId: '',
2025-04-01 21:35:30 +08:00
areaInfo: {},
list: [],
show: false,
info: {},
userinfo: {},
deptId: null,
menuList: [],
searchKey: '',
displayList: [], // 用于显示的列表
gonggaoxq:{},
gonggaoflag:false,
announcements: {},
2025-04-28 15:40:26 +08:00
yyqid:'',
2025-08-19 17:02:14 +08:00
userId:'',
2025-09-09 11:24:11 +08:00
fuwuewm:false,
2025-12-20 14:29:10 +08:00
weinum:0,
2026-04-28 14:01:46 +08:00
waitVerifyCount: 0,
2025-12-20 14:29:10 +08:00
areaname:'',
yunyingobj:{},
kstime:'',
jstime:'',
2025-04-01 21:35:30 +08:00
}
},
2025-04-16 09:14:52 +08:00
onLoad(option) {
this.yyqid = option.id
2025-04-10 08:57:21 +08:00
wx.openBluetoothAdapter({
success: function (res) {
console.log('蓝牙适配器初始化成功')
xBlufi.initXBlufi(1)
},
fail: function (err) {
console.error('蓝牙适配器初始化失败,可能是因为没有权限', err)
}
})
},
2025-04-01 21:35:30 +08:00
onShow() {
2026-01-28 18:00:39 +08:00
this.$store.dispatch('jiance');
2025-12-20 14:29:10 +08:00
this.getCurrentDate(0)
2025-04-01 21:35:30 +08:00
this.getgonggao()
2025-12-20 14:29:10 +08:00
this.getareaList()
2025-04-01 21:35:30 +08:00
this.deptId = uni.getStorageSync('deptId')
if (uni.getStorageSync('adminAreaid')) {
this.areaId = uni.getStorageSync('adminAreaid')
2025-04-27 17:37:23 +08:00
console.log(this.areaId);
2025-04-01 21:35:30 +08:00
// this.getArea()
this.getinfo()
2025-09-09 11:24:11 +08:00
this.getweicl()
2026-04-28 14:01:46 +08:00
this.getWaitVerifyCount()
2025-04-01 21:35:30 +08:00
}
2025-12-20 14:29:10 +08:00
if (uni.getStorageSync('adminname')) {
this.areaname = uni.getStorageSync('adminname')
}
2025-04-01 21:35:30 +08:00
},
computed: {
// 添加过滤后的列表计算属性
filteredList() {
if (!this.searchKey) return this.list
return this.list.filter(item =>
item.label.toLowerCase().includes(this.searchKey.toLowerCase())
)
}
},
methods: {
2026-02-06 15:28:01 +08:00
// 点击配置语音
btnyy(){
uni.navigateTo({
url:'/page_shanghu/gongzuotai/yuyin/index?areaId=' + this.areaId
})
},
2025-12-20 14:29:10 +08:00
// 点击查看运营状况
btnchakan(){
uni.navigateTo({
url:'/page_shanghu/guanli/yunying'
})
},
// 请求全部运营统计数据
gettongji() {
let StatKeys = 'order_actual_amount,order_count,order_end_status_count,order_status_count,bonus_actual_amount,order_ridding_fee,order_deduction_fee,order_dispatch_fee,order_manage_fee,order_refund_amount'
this.$u.get(`/dashboard/revenueStat?keys=${StatKeys}&dateRange=${this.kstime + ',' + this.jstime}&userId=${this.userinfo.userId}&areaId=${this.areaId}`).then(res => {
if (res.code == 200) {
this.yunyingobj = res.data
}
})
},
// 一开始就获取当前年月日
getCurrentDate(num) {
const currentDate = new Date()
const year = currentDate.getFullYear()
const month = currentDate.getMonth() + 1
const day = currentDate.getDate()
const formatDate = (year, month, day) => {
const formattedMonth = month < 10 ? `0${month}` : month
const formattedDay = day < 10 ? `0${day}` : day
return `${year}-${formattedMonth}-${formattedDay}`
}
const getFirstDayOfMonth = (year, month) => {
return new Date(year, month - 1, 1)
}
const getLastDayOfMonth = (year, month) => {
return new Date(year, month, 0)
}
switch (num) {
case 0:
this.kstime = formatDate(year, month, day)
this.jstime = formatDate(year, month, day)
break
}
},
// 点击切换运营区
btnqh(){
this.show = true
},
2025-12-20 17:34:11 +08:00
// 点击菜单图标
handleMenuClick(){
// 可以在这里添加菜单功能,比如显示更多选项
uni.showToast({
title: '功能开发中',
icon: 'none',
duration: 2000
})
},
2025-12-20 14:29:10 +08:00
getareaList() {
this.$u.get('/bst/area/list?pageNunm=1&pageSize=9999').then((res) => {
if (res.code == 200) {
this.list = res.rows.map(item => ({
value: item.id,
label: item.name,
deptName: item.userName
}))
this.displayList = this.list; // 重置显示列表
}
})
},
2025-11-08 09:37:13 +08:00
// 点击跳转到调度记录
btndiaodujl(){
uni.navigateTo({
url:'/page_shanghu/gongzuotai/diaodujl?areaId=' + this.areaId
})
},
// 点击跳转到换电工单
btnyunwei(){
uni.navigateTo({
url:'/page_shanghu/yunwei/index?areaId=' + this.areaId
})
},
2025-09-22 17:08:55 +08:00
// 点击生成二维码
btnewm(){
uni.navigateTo({
2025-11-08 09:37:13 +08:00
url:'/page_shanghu/guanli/Qrcode?areaId=' + this.areaId + '&type=1'
2025-09-22 17:08:55 +08:00
})
},
2025-09-09 11:24:11 +08:00
// 查询商户未处理订单
getweicl(){
this.$u.get(`/dashboard/complaint/statusMap?areaId=${this.areaId}`).then(res => {
if (res.code== 200) {
const key = "1";
this.weinum = res.data[key]
}
})
},
2026-04-28 14:01:46 +08:00
// 查询待审核订单数量
getWaitVerifyCount() {
this.$u.get('/bst/order/list?', {
status: 'WAIT_VERIFY',
areaId: this.areaId,
pageSize: 1,
pageNum: 1
}).then((res) => {
if (res.code === 200) {
this.waitVerifyCount = res.total || 0;
}
})
},
2025-08-19 17:02:14 +08:00
// 点击绑定服务号
btnfuwuewm(){
let that = this
wx.login({
success(res) {
if (res.code) {
that.$u.put(`/app/user/bindUnionId?jsCode=${res.code}`).then((res) => {
if (res.code == 200) {
that.fuwuewm = true
}else{
uni.showModal({
title: '提示',
content: res.msg,
showCancel:false,
})
}
})
}
},
})
},
2025-08-30 17:38:15 +08:00
// 点击跳转到投诉列表
btnts(){
uni.navigateTo({
2025-09-09 11:24:11 +08:00
url:'/page_fenbao/tousu/shlist?areaId='+this.areaId
2025-08-30 17:38:15 +08:00
})
},
2025-06-06 11:32:12 +08:00
// 点击跳转到会员列表
btnhy(){
uni.navigateTo({
2025-06-06 16:53:36 +08:00
url:'/page_fenbao/huiyuan/huiyuanlist?areaId='+this.areaId
2025-06-06 11:32:12 +08:00
})
},
2025-05-16 17:52:35 +08:00
// 点击进入视频教程
btnsp(){
uni.navigateTo({
url:'/page_user/shiping/index'
})
},
2025-04-17 17:12:42 +08:00
// 点击跳转到运维人员
btnywry(){
uni.navigateTo({
2025-04-28 15:40:26 +08:00
url:'/page_fenbao/yunwei/index?areaId=' + this.areaId
2025-04-17 17:12:42 +08:00
})
},
2025-04-16 09:14:52 +08:00
// 点击跳转到电子围栏
toMap(){
2025-04-10 08:57:21 +08:00
uni.navigateTo({
2025-04-27 17:37:23 +08:00
url:'/page_shanghu/guanli/msp_set?areaId='+this.areaId
2025-04-10 08:57:21 +08:00
})
},
2026-04-28 14:01:46 +08:00
// 设备保险说明页(带当前运营区)
btnDeviceInsurance(){
if (!this.areaId) {
uni.showToast({ title: '请先选择运营区', icon: 'none' })
return
}
uni.navigateTo({
url: '/page_fenbao/storedlist/trueorder/device_insurance?areaId=' + this.areaId
})
},
2025-04-16 09:14:52 +08:00
// 点击跳转客服
btnkefu(){
2025-04-10 08:57:21 +08:00
uni.navigateTo({
2025-04-27 17:37:23 +08:00
url:'/page_user/shanghugl/ggsz?id=' + this.areaId
2025-04-10 08:57:21 +08:00
})
},
2025-08-30 17:38:15 +08:00
// 点击跳转公告协议
btnggsz(){
uni.navigateTo({
url:'/page_shanghu/gonggaolist?areaId=' + this.areaId
})
},
2025-12-20 14:29:10 +08:00
// 点击跳转到电子发票列表
btnInvoice(){
uni.navigateTo({
url:'/page_shanghu/guanli/invoice_list?userId=' + this.userinfo.userId
})
},
2026-01-28 18:00:39 +08:00
// 点击跳转到推广列表
btntuiguang(){
uni.navigateTo({
url:'/page_shanghu/guanli/tuiguang_list?areaId=' + this.areaId
})
},
2025-04-16 09:14:52 +08:00
// // 点击跳转免责协议
// btnmz(){
// uni.navigateTo({
// url:'/page_user/shanghugl/mianze'
// })
// },
// // 点击跳转公告管理
// btngggl(){
// uni.navigateTo({
// url:'/page_user/shanghugl/index'
// })
// },
2025-04-10 08:57:21 +08:00
// 点击跳转到收款账户
btnskzh(){
2025-04-30 18:03:27 +08:00
if(this.userinfo.isReal == true){
uni.navigateTo({
url:'/page_user/shoukuan/index'
})
}else{
uni.showModal({
title: '提示',
content: '您还未通过实名认证,是否前往?',
showCancel: true,
success: function (res) {
if (res.confirm) {
uni.navigateTo({
url:'/page_user/shiming'
})
} else if (res.cancel) {
console.log('取消'); // 用户点击取消
}
}
})
}
2025-04-10 08:57:21 +08:00
},
// 点击跳转到还车审核
btnreturnbike(){
uni.navigateTo({
2025-04-28 15:40:26 +08:00
url:'/page_user/returnbike?areaId=' + this.areaId
2025-04-10 08:57:21 +08:00
})
},
2025-04-01 21:35:30 +08:00
// 点击头部滚动通知
btntopgg(){
2025-12-20 14:29:10 +08:00
uni.navigateTo({
url:'/page_user/guzhang/gonggaolist'
})
// if(this.announcements.content){
// this.gonggaoflag = true
// }
2025-04-01 21:35:30 +08:00
},
// 点击公告我知道了
btnggtc(){
this.gonggaoflag = false
2025-09-22 17:08:55 +08:00
uni.setStorageSync('noticeIds', this.announcements.id)
2025-04-01 21:35:30 +08:00
},
// 获取最新公告
getgonggao(){
2025-09-22 17:08:55 +08:00
this.$u.get(`/app/article/first?code=MCH_NOTICE&appId=${this.$store.state.appid}`).then(res =>{
2025-04-01 21:35:30 +08:00
if(res.code == 200){
this.announcements = res.data
2025-09-22 17:08:55 +08:00
if(res.data.id != uni.getStorageSync('noticeIds')){
this.gonggaoflag = true
}
2025-04-01 21:35:30 +08:00
}
})
},
// 点击提示功能完善中
btnjs(){
uni.showToast({
title: '功能完善中',
icon: 'none',
duration: 2000
})
},
// 点击跳转到加盟伙伴
btnjm(){
uni.navigateTo({
2025-04-28 15:40:26 +08:00
url:'/page_fenbao/jiameng/index?areaId=' + this.areaId
2025-04-01 21:35:30 +08:00
})
},
handleSearch(e) {
const value = e.detail.value
if (!value) {
// 搜索框为空时显示全部数据
this.displayList = this.list
} else {
// 有搜索内容时过滤数据
2025-12-20 14:29:10 +08:00
this.displayList = this.list.filter(item => {
const label = String(item.label || '').toLowerCase();
const deptName = String(item.deptName || '').toLowerCase();
const searchValue = String(value || '').toLowerCase();
return label.includes(searchValue) || deptName.includes(searchValue);
});
2025-04-01 21:35:30 +08:00
}
},
selectItem(item) {
this.confirm([item])
this.show = false
this.searchKey = '' // 选择后清空搜索框
2025-04-10 08:57:21 +08:00
this.displayList = this.list // 重置显示列表
2025-12-20 14:29:10 +08:00
this.gettongji()
2025-04-01 21:35:30 +08:00
},
getinfo() {
this.$u.get("/getInfo").then((res) => {
if (res.code == 200) {
this.userinfo = res.user
2025-12-20 14:29:10 +08:00
this.gettongji()
2025-04-01 21:35:30 +08:00
}
})
},
shows() {
if (this.list.length < 2) {
} else {
this.show = true
}
},
confirm(e) {
2025-12-20 14:29:10 +08:00
console.log(e);
2025-04-01 21:35:30 +08:00
uni.setStorageSync('adminAreaid', e[0].value)
2025-12-20 14:29:10 +08:00
uni.setStorageSync('adminname', e[0].label)
this.areaname = e[0].label
2025-04-01 21:35:30 +08:00
this.areaId = e[0].value
this.getArea()
2026-04-28 14:01:46 +08:00
this.getWaitVerifyCount()
2025-04-01 21:35:30 +08:00
},
getArea() {
let id = this.areaId
this.$u.get(`/bst/area/${id}`).then((res) => {
if (res.code == 200) {
this.areaInfo = res.data
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
},
topage(num) {
if (num == 0) {
uni.navigateTo({
url: '/page_shanghu/gongzuotai/worke_Operation'
})
} else if (num == 1) {
uni.navigateTo({
url: '/pages_admin/worke/worke_income'
})
} else if (num == 2) { //设备管理
2025-12-20 14:29:10 +08:00
uni.reLaunch({
url:'/page_shanghu/qbcheliang'
})
// uni.navigateTo({
// url: '/page_shanghu/gongzuotai/woke_deviceMgmt'
// })
2025-04-01 21:35:30 +08:00
} else if (num == 3) {
uni.navigateTo({
url: '/pages_admin/worke/worke_user'
})
} else if (num == 4) { //用户页面
uni.switchTab({
2025-04-12 18:01:40 +08:00
url: '/pages/my'
2025-04-01 21:35:30 +08:00
})
} else if (num == 5) {
uni.navigateTo({
url: '/pages_admin/worke/bind_sn'
})
} else if (num == 6) {
uni.navigateTo({
url: '/page_shanghu/gongzuotai/AccountDetails'
})
} else if (num == 7) { //故障审核
uni.navigateTo({
2025-04-28 15:40:26 +08:00
url: '/page_shanghu/gongzuotai/shgl?areaId=' + this.areaId
2025-04-01 21:35:30 +08:00
})
} else if (num == 8) {
uni.navigateTo({
url: '/pages_adminSet/financialStatement'
})
} else if (num == 9) {
uni.navigateTo({
2025-04-28 15:40:26 +08:00
url: '/page_shanghu/gongzuotai/CarModel?userId=' + this.userinfo.userId
2025-04-01 21:35:30 +08:00
})
} else if (num == 10) {
uni.navigateTo({
url: '/page_shanghu/gongzuotai/ChargingTemplate'
})
} else if (num == 11) {
uni.navigateTo({
url: '/page_shanghu/gongzuotai/sysSet'
})
} else if (num == 12) { //区域设置
uni.navigateTo({
url: '/page_shanghu/gongzuotai/ParkIngList'
})
}
2026-01-28 18:00:39 +08:00
},
// 点击跳转到卡券配额
btnkjpw(){
uni.navigateTo({
url:'/page_shanghu/guanli/kajuan_peie_list?areaId=' + this.areaId
})
2025-04-01 21:35:30 +08:00
}
}
}
</script>
<style lang="scss">
2026-04-02 01:48:12 +08:00
.is-hover{
opacity: 0.85;
transform: scale(0.98);
}
2025-12-20 14:29:10 +08:00
.newtit{
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
margin-top: 28rpx;
padding-left: 22rpx;
}
2026-04-02 01:48:12 +08:00
.op-card{
width: 718rpx;
height: 258rpx;
background: #FFFFFF;
border-radius: 24rpx;
box-sizing: border-box;
margin: auto;
margin-top: 30rpx;
box-shadow: 0rpx 8rpx 24rpx rgba(44, 138, 240, 0.08);
}
.op-head{
display: flex;
justify-content: space-between;
width: 100%;
padding: 24rpx 32rpx 0;
box-sizing: border-box;
}
.op-head-title{
font-weight: 600;
font-size: 32rpx;
color: #2d3b4f;
}
.op-more{
font-size: 24rpx;
color: #4297F3;
display: flex;
align-items: center;
transition: all 0.2s ease;
}
2025-12-20 14:29:10 +08:00
.newtop{
width: 718rpx;
height: 214rpx;
background: #FFFFFF;
2026-04-02 01:48:12 +08:00
border-radius: 24rpx;
2025-12-20 14:29:10 +08:00
margin: auto;
2026-04-02 01:48:12 +08:00
margin-top: 24rpx;
2025-12-20 14:29:10 +08:00
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 38rpx;
2026-04-02 01:48:12 +08:00
box-shadow: 0rpx 8rpx 24rpx rgba(44, 138, 240, 0.08);
2025-12-20 14:29:10 +08:00
view{
width: 120rpx;
text-align: center;
2026-04-02 01:48:12 +08:00
transition: all 0.2s ease;
2025-12-20 14:29:10 +08:00
image{
width: 94rpx;
height: 92rpx;
}
text{
display: block;
font-size: 26rpx;
color: #3D3D3D;
margin-top: 14rpx;
}
2026-04-28 14:01:46 +08:00
.badge {
position: absolute;
top: -10rpx;
right: 0rpx;
background: #FF4D4F;
color: #FFFFFF;
font-size: 20rpx;
width: 34rpx;
height: 34rpx;
line-height: 34rpx;
text-align: center;
border-radius: 50%;
border: 2rpx solid #FFFFFF;
box-sizing: border-box;
}
2025-12-20 14:29:10 +08:00
}
}
.leiji{
width: 718rpx;
height: 178rpx;
background: #FFFFFF;
2026-04-02 01:48:12 +08:00
border-radius: 24rpx;
2025-12-20 14:29:10 +08:00
display: flex;
justify-content: space-between;
padding: 38rpx 44rpx;
box-sizing: border-box;
margin: auto;
2026-04-02 01:48:12 +08:00
box-shadow: 0rpx 8rpx 24rpx rgba(44, 138, 240, 0.08);
2025-12-20 14:29:10 +08:00
.li{
text-align: center;
.top{
font-weight: 600;
font-size: 40rpx;
2026-04-02 01:48:12 +08:00
color: #2C8AF0;
2025-12-20 14:29:10 +08:00
margin-top: 12rpx;
}
.bot{
margin-top: 12rpx;
font-weight: 400;
font-size: 28rpx;
2026-04-02 01:48:12 +08:00
color: #8e9db3;
2025-12-20 14:29:10 +08:00
}
}
}
2025-08-19 17:02:14 +08:00
.fuwuewm{
position: fixed;
top: 30%;
left: 50%;
transform: translateX(-50%);
z-index: 10;
image{
width: 600rpx;
height: 600rpx;
}
view{
width: 200rpx;
height: 70rpx;
background-color: #4297F3;
color: #fff;
font-size: 32rpx;
text-align: center;
line-height: 70rpx;
margin: auto;
margin-top: 50rpx;
border-radius: 10rpx;
}
}
.fuwuhao{
width: 100%;
text-align: center;
2026-04-02 01:48:12 +08:00
text-underline-offset: 4rpx;
2025-08-19 17:02:14 +08:00
margin-top: 30rpx;
color: #4297F3;
padding-left: 50rpx;
box-sizing: border-box;
height: 60rpx;
line-height: 60rpx;
font-size: 32rpx;
text-decoration: underline;
text-decoration-color: #4297F3;
2026-04-02 01:48:12 +08:00
text-decoration-thickness: 1rpx;
2025-08-19 17:02:14 +08:00
}
2025-04-01 21:35:30 +08:00
.mask{
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
background-color: rgba(0,0,0,0.3);
z-index: 9;
}
.gonggao{
2025-12-20 14:29:10 +08:00
width: 718rpx;
height: 66rpx;
background: #FFFFFF;
2026-04-02 01:48:12 +08:00
border-radius: 20rpx;
2025-04-01 21:35:30 +08:00
position: relative;
display: flex;
align-items: center;
margin-bottom: 10rpx;
margin: auto;
2026-04-02 01:48:12 +08:00
margin-top: 24rpx;
2025-12-20 14:29:10 +08:00
padding: 0 32rpx;
2026-04-02 01:48:12 +08:00
box-shadow: 0rpx 6rpx 20rpx rgba(44, 138, 240, 0.07);
}
.common-tools{
display: flex;
justify-content: space-between;
padding: 0 22rpx;
margin-top: 12rpx;
}
.tool-banner{
width: 164rpx;
height: 200rpx;
border-radius: 20rpx;
}
.other-tools{
width: 718rpx;
min-height: 680rpx;
background: #FFFFFF;
border-radius: 24rpx;
margin: auto;
margin-top: 12rpx;
padding: 40rpx 42rpx;
box-sizing: border-box;
box-shadow: 0rpx 8rpx 24rpx rgba(44, 138, 240, 0.08);
}
.other-row{
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 40rpx;
&:first-child{
margin-top: 0;
}
}
.row-with-gap{
column-gap: 36rpx;
}
.row-start{
justify-content: flex-start;
column-gap: 56rpx;
}
.tool-icon{
width: 112rpx;
height: 122rpx;
}
.tool-icon-sm{
width: 84rpx;
height: 122rpx;
2025-04-01 21:35:30 +08:00
}
2026-04-28 14:01:46 +08:00
/* 设备保险:与项目主色 #4297F3 一致的圆角卡片图标(同尺寸 112×122rpx */
.tool-icon-insurance{
display: flex;
align-items: center;
justify-content: center;
padding: 0;
box-sizing: border-box;
}
.tool-icon-insurance-card{
width: 112rpx;
height: 122rpx;
border-radius: 20rpx;
background: linear-gradient(165deg, #93C5FD 0%, #4297F3 42%, #2563EB 100%);
box-shadow: 0 8rpx 22rpx rgba(66, 151, 243, 0.32);
display: flex;
align-items: center;
justify-content: center;
}
2025-04-01 21:35:30 +08:00
.container {
width: 560rpx;
height: 60rpx; /* 根据需要调整高度 */
display: flex;
align-items: center;
margin: auto;
overflow: hidden;
position: relative;
2025-12-20 14:29:10 +08:00
color: #373737;
2025-04-01 21:35:30 +08:00
box-sizing: border-box;
}
.scroll-text {
width: 100%;
overflow: hidden;
box-sizing: border-box;
display: inline-block;
white-space: nowrap;
animation: scroll 8s linear infinite;
}
.scroll-item {
display: inline-block;
2026-04-02 01:48:12 +08:00
padding: 0 10rpx;
font-size: 24rpx;
2025-04-01 21:35:30 +08:00
}
@keyframes scroll {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(-100%);
}
}
.noticetc{
width: 680rpx;
2025-12-20 14:29:10 +08:00
height: 80vh;
2025-04-01 21:35:30 +08:00
background-color: #fff;
border-radius: 20rpx;
padding: 0 20rpx;
box-sizing: border-box;
position: fixed;
2025-12-20 14:29:10 +08:00
// top: 340rpx;
2025-04-01 21:35:30 +08:00
left: 50%;
2025-12-20 14:29:10 +08:00
bottom: 0;
2025-04-01 21:35:30 +08:00
transform: translateX(-50%);
z-index: 10;
.btn{
width: 600rpx;
height: 100rpx;
line-height: 100rpx;
text-align: center;
border-radius: 50rpx;
background-color: #4297F3;
color: #fff;
font-size: 32rpx;
font-weight: 600;
margin: auto;
margin-top: 30rpx;
2026-04-02 01:48:12 +08:00
transition: all 0.2s ease;
2025-04-01 21:35:30 +08:00
}
.name{
width: 100%;
text-align: center;
font-size: 36rpx;
font-weight: 600;
margin-top: 30rpx;
}
.biaoti{
font-size: 32rpx;
margin-top: 20rpx;
}
.cont{
width: 100%;
height: 620rpx;
overflow: scroll;
background-color: #ececec;
margin-top: 20rpx;
padding: 20rpx;
box-sizing: border-box;
}
}
.custom-select {
.mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 999;
}
.select-content {
position: fixed;
left: 0;
right: 0;
bottom: 0;
background: #fff;
border-radius: 20rpx 20rpx 0 0;
z-index: 1000;
height: 50vh; // 最大高度
display: flex;
flex-direction: column;
padding-bottom: 20rpx;
.select-header {
padding: 20rpx 30rpx;
display: flex;
justify-content: space-between;
align-items: center;
2026-04-02 01:48:12 +08:00
border-bottom: 1rpx solid #eee;
2025-04-01 21:35:30 +08:00
.close {
font-size: 40rpx;
color: #999;
}
}
.search-box {
padding: 15rpx 20rpx;
2026-04-02 01:48:12 +08:00
border-bottom: 1rpx solid #eee;
2025-04-01 21:35:30 +08:00
input {
width: 100%;
height: 60rpx;
background: #f5f5f5;
border-radius: 30rpx;
padding: 0 30rpx;
font-size: 28rpx;
}
}
.select-list {
flex: 1;
max-height: calc(50vh - 140rpx);
min-height: 260rpx; // 为列表添加最小高度
.select-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20rpx 30rpx;
2026-04-02 01:48:12 +08:00
border-bottom: 1rpx solid #eee;
2025-04-01 21:35:30 +08:00
font-size: 28rpx;
&.highlight {
background-color: #f0f9ff;
color: #2d8cf0;
}
&:active {
background: #f5f5f5;
}
}
}
}
}
.page {
width: 750rpx;
2026-04-02 01:48:12 +08:00
min-height: 100vh;
background: linear-gradient(180deg, #3f8df3 0%, #f2f7ff 38%);
2025-12-20 14:29:10 +08:00
overflow: scroll;
2026-04-02 01:48:12 +08:00
padding-bottom: 160rpx;
box-sizing: border-box;
2025-04-01 21:35:30 +08:00
.toptit {
2025-12-20 14:29:10 +08:00
display: flex;
align-items: center;
margin-top: 114rpx;
margin-left: 22rpx;
font-size: 32rpx;
color: #FFFFFF;
2026-04-02 01:48:12 +08:00
transition: all 0.2s ease;
}
.toptit-avatar{
width: 36rpx;
height: 36rpx;
margin-right: 10rpx;
2025-04-01 21:35:30 +08:00
}
.cont_box {
padding: 46rpx 50rpx;
2025-12-20 14:29:10 +08:00
margin: 30rpx auto;
2025-04-01 21:35:30 +08:00
width: 680rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07);
border-radius: 24rpx 24rpx 24rpx 24rpx;
2025-08-30 17:38:15 +08:00
height: 72vh;
overflow: scroll;
2025-12-20 14:29:10 +08:00
padding-bottom: 200rpx;
2025-04-01 21:35:30 +08:00
.top {
width: 100%;
display: flex;
flex-wrap: nowrap;
align-items: center;
margin-top: 40rpx;
font-weight: 600;
image {
margin-right: 16rpx;
width: 32rpx;
height: 32rpx;
}
font-size: 32rpx;
color: #3D3D3D;
}
.app_box {
display: flex;
flex-wrap: wrap;
margin-top: 20rpx;
.cont:nth-child(4n) {
margin-right: 0;
}
.cont {
margin-right: 60rpx;
margin-top: 20rpx;
width: 96rpx;
display: flex;
flex-wrap: wrap;
justify-content: center;
image {
width: 80rpx;
height: 80rpx;
}
.text {
margin-top: 8rpx;
font-weight: 400;
font-size: 24rpx;
color: #3D3D3D;
}
}
}
}
}
</style>