更新
This commit is contained in:
@ -1,34 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="ltemBox" v-for="(item, index) in list" :key="index + 'list'">
|
||||
<slot :item="item"></slot>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted, watch, defineProps } from "vue";
|
||||
const props = defineProps({
|
||||
labelData: {
|
||||
type: Array,
|
||||
default: [],
|
||||
},
|
||||
});
|
||||
const list = ref([]);
|
||||
watch(
|
||||
() => props.labelData,
|
||||
() => {
|
||||
list.value = props.labelData;
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
onMounted(() => {
|
||||
list.value = props.labelData;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.ltemBox{
|
||||
margin-bottom: 1vw;
|
||||
}
|
||||
</style>
|
||||
@ -193,8 +193,6 @@ onMounted(() => {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: rgba(183, 288, 231, 0.1);
|
||||
|
||||
.btn {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<span class="fh" @click="onCLickFh" v-if="showLeft">
|
||||
<van-icon name="arrow-left" color="#fff" size="18px" />
|
||||
</span>
|
||||
<span>{{ navTitle }}</span>
|
||||
<span>{{ title }}</span>
|
||||
<van-icon :name="rightIcon" color="#fff" size="25px" @click.stop="onClickRight" v-if="showRight" />
|
||||
<span class="rightTitle" @click="onClickRight" v-if="rightTitle">{{
|
||||
rightTitle
|
||||
@ -17,7 +17,7 @@
|
||||
import { ref, onMounted, defineEmits } from "vue";
|
||||
import router from "../router";
|
||||
const props = defineProps({
|
||||
navTitle: String, //标题
|
||||
title: String, //标题
|
||||
showRight: Boolean, //是否显示右侧菜单图标
|
||||
rightTitle: String, //右侧内容
|
||||
showLeft: {
|
||||
@ -34,36 +34,15 @@ const themeVars = {
|
||||
paddingMd: "11px",
|
||||
};
|
||||
const showThemeSetting = ref(false); //下拉菜单
|
||||
const defaultThemeQp = ref("light"); //默认的右侧气泡框主题
|
||||
const isbody = ref("body");
|
||||
const emit = defineEmits(["clickRight"]);
|
||||
//是否显示右侧下拉菜单
|
||||
const actions = [
|
||||
{
|
||||
text: "退出",
|
||||
},
|
||||
];
|
||||
onMounted(() => {
|
||||
isbody.value = ".headBlue";
|
||||
defaultThemeQp.value = getStorage("themeSetting")
|
||||
? getStorage("themeSetting")
|
||||
: "dark";
|
||||
});
|
||||
|
||||
//回退
|
||||
function onCLickFh() {
|
||||
router.back();
|
||||
}
|
||||
|
||||
|
||||
// 清除所有cookie
|
||||
function clearnAllCookie() {
|
||||
var keys = document.cookie.match(/[^=;]+(?=\=)/g)
|
||||
if (keys) {
|
||||
for (let i = keys.length; i--;) {
|
||||
document.cookie = keys[i] + '0;expires=' + new Date(0).toUTCString()
|
||||
}
|
||||
}
|
||||
}
|
||||
//点击右侧按钮
|
||||
function onClickRight() {
|
||||
if (props.rightIcon == "weapp-nav" && !props.rightTitle) showThemeSetting.value = true;
|
||||
|
||||
@ -1,95 +1,98 @@
|
||||
<template>
|
||||
<div class="profile-page">
|
||||
<!-- 顶部用户信息区域 -->
|
||||
<div class="header-section">
|
||||
<div class="user-info">
|
||||
<div class="avatar">
|
||||
<span>{{ userInfo.nickName?userInfo.nickName?.charAt(0):"" }}</span>
|
||||
</div>
|
||||
<div class="info-content">
|
||||
<h2 class="user-name">{{ userInfo.nickName || '未登录' }}</h2>
|
||||
<p class="dept-name">{{ userInfo.departName || '' }}</p>
|
||||
<div class="user-tags">
|
||||
<span class="tag">民警</span>
|
||||
<span class="work-id">工号: {{ userInfo.workNo || '-' }}</span>
|
||||
<div class="profile-contant">
|
||||
<!-- 顶部用户信息区域 -->
|
||||
<div class="header-section">
|
||||
<div class="user-info">
|
||||
<div class="avatar">
|
||||
<span>{{ userInfo.nickName?userInfo.nickName?.charAt(0):"" }}</span>
|
||||
</div>
|
||||
<div class="info-content">
|
||||
<h2 class="user-name">{{ userInfo.nickName || '未登录' }}</h2>
|
||||
<p class="dept-name">{{ userInfo.departName || '' }}</p>
|
||||
<div class="user-tags">
|
||||
<span class="tag">民警</span>
|
||||
<span class="work-id">工号: {{ userInfo.workNo || '-' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 今日统计卡片 -->
|
||||
<div class="stats-card">
|
||||
<h3 class="stats-title">今日统计</h3>
|
||||
<div class="stats-grid">
|
||||
<div class="stat-item">
|
||||
<div class="stat-value violation">{{ stats.violationCount }}</div>
|
||||
<div class="stat-label">违规任务</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value traffic">{{ stats.trafficCount }}</div>
|
||||
<div class="stat-label">路况任务</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value completed">{{ stats.completedCount }}</div>
|
||||
<div class="stat-label">已处理</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value rate">{{ stats.completionRate }}</div>
|
||||
<div class="stat-label">处理率</div>
|
||||
<!-- 今日统计卡片 -->
|
||||
<div class="stats-card">
|
||||
<h3 class="stats-title">今日统计</h3>
|
||||
<div class="stats-grid">
|
||||
<div class="stat-item">
|
||||
<div class="stat-value violation">{{ stats.violationCount }}</div>
|
||||
<div class="stat-label">违规任务</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value traffic">{{ stats.trafficCount }}</div>
|
||||
<div class="stat-label">路况任务</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value completed">{{ stats.completedCount }}</div>
|
||||
<div class="stat-label">已处理</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value rate">{{ stats.completionRate }}</div>
|
||||
<div class="stat-label">处理率</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 功能菜单列表 -->
|
||||
<div class="menu-list">
|
||||
<!-- 预警语音提醒 -->
|
||||
<div class="menu-item">
|
||||
<div class="menu-left">
|
||||
<div class="menu-icon" style="background: #eff6ff">
|
||||
<van-icon name="volume-o" color="#2563eb" />
|
||||
<!-- 功能菜单列表 -->
|
||||
<div class="menu-list">
|
||||
<!-- 预警语音提醒 -->
|
||||
<div class="menu-item">
|
||||
<div class="menu-left">
|
||||
<div class="menu-icon" style="background: #eff6ff">
|
||||
<van-icon name="volume-o" color="#2563eb" />
|
||||
</div>
|
||||
<span class="menu-label">预警语音提醒</span>
|
||||
</div>
|
||||
<span class="menu-label">预警语音提醒</span>
|
||||
<van-switch v-model="alarmVoiceEnabled" size="20" />
|
||||
</div>
|
||||
<van-switch v-model="alarmVoiceEnabled" size="20" />
|
||||
</div>
|
||||
|
||||
<!-- 执法点位 -->
|
||||
<div class="menu-item" @click="handleLocationClick">
|
||||
<div class="menu-left">
|
||||
<div class="menu-icon" style="background: #f3f4f6">
|
||||
<van-icon name="location-o" color="#6b7280" />
|
||||
<!-- 执法点位 -->
|
||||
<div class="menu-item" @click="handleLocationClick">
|
||||
<div class="menu-left">
|
||||
<div class="menu-icon" style="background: #f3f4f6">
|
||||
<van-icon name="location-o" color="#6b7280" />
|
||||
</div>
|
||||
<span class="menu-label">执法点位</span>
|
||||
</div>
|
||||
<div class="menu-right">
|
||||
<span class="location-name">{{ dataForm.sitPosition }}</span>
|
||||
<van-icon name="arrow" class="arrow-icon" />
|
||||
</div>
|
||||
<span class="menu-label">执法点位</span>
|
||||
</div>
|
||||
<div class="menu-right">
|
||||
<span class="location-name">{{ dataForm.sitPosition }}</span>
|
||||
|
||||
<!-- 切换账号 -->
|
||||
<div class="menu-item" @click="handleSwitchAccount">
|
||||
<div class="menu-left">
|
||||
<div class="menu-icon" style="background: #f3f4f6">
|
||||
<van-icon name="setting-o" color="#6b7280" />
|
||||
</div>
|
||||
<span class="menu-label">切换账号</span>
|
||||
</div>
|
||||
<van-icon name="arrow" class="arrow-icon" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 切换账号 -->
|
||||
<div class="menu-item" @click="handleSwitchAccount">
|
||||
<div class="menu-left">
|
||||
<div class="menu-icon" style="background: #f3f4f6">
|
||||
<van-icon name="setting-o" color="#6b7280" />
|
||||
</div>
|
||||
<span class="menu-label">切换账号</span>
|
||||
</div>
|
||||
<van-icon name="arrow" class="arrow-icon" />
|
||||
<!-- 版本信息 -->
|
||||
<div class="version-info">
|
||||
<span>当前版本v1.0.0</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 版本信息 -->
|
||||
<div class="version-info">
|
||||
<span>当前版本v1.0.0</span>
|
||||
</div>
|
||||
|
||||
<!-- 退出登录按钮 -->
|
||||
<div class="logout-section">
|
||||
<van-button block round class="logout-btn" @click="handleLogout">
|
||||
<van-icon name="cross" class="logout-icon" />
|
||||
退出登录
|
||||
</van-button>
|
||||
<!-- 退出登录按钮 -->
|
||||
<div class="logout-section">
|
||||
<van-button block round class="logout-btn" @click="handleLogout">
|
||||
<van-icon name="cross" class="logout-icon" />
|
||||
退出登录
|
||||
</van-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 底部导航 -->
|
||||
@ -197,11 +200,15 @@ onMounted(() => {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.profile-page {
|
||||
min-height: 100vh;
|
||||
background: #f3f4f6;
|
||||
padding-bottom: 70px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.profile-contant{
|
||||
height: calc(100vh - 77px);
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.header-section {
|
||||
|
||||
@ -112,6 +112,7 @@ const routes = [
|
||||
name: "clockInPage",
|
||||
component: () => import("../pages/clockInPage/index"),
|
||||
},
|
||||
|
||||
];
|
||||
const router = createRouter({
|
||||
history: createWebHashHistory(),
|
||||
|
||||
Reference in New Issue
Block a user