Files
dypid/web/src/App.vue
T
ygxbnet cd061668f9
部署开发环境 / deploy-dev (push) Successful in 2m54s
style(code): 统一代码格式化和导入顺序调整
- 调整了多个组件中的导入语句顺序以保持一致
- 格式化了 App.vue 中的 CSS 样式规则使其更易读
- 规范化了 vite.config.ts 中的配置对象缩进
- 移除了未使用的 computed 导入以减少代码冗余
- 整理了图标组件的导入顺序使其按字母排序
- 统一了代码中的空行和缩进格式
2026-05-01 14:04:26 +08:00

218 lines
3.0 KiB
Vue

<script setup lang="ts">
import {ref} from 'vue'
const themeMode = ref('light')
</script>
<template>
<div :class="themeMode" class="app-container">
<router-view></router-view>
</div>
</template>
<style>
:root {
--primary-color: #409eff;
--primary-light: #79bbff;
--success-color: #67c23a;
--warning-color: #e6a23c;
--danger-color: #f56c6c;
--info-color: #909399;
--text-primary: #303133;
--text-regular: #606266;
--text-secondary: #909399;
--border-color: #dcdfe6;
--bg-page: #f5f7fa;
--bg-card: #ffffff;
--bg-header: #ffffff;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body, #app {
height: 100%;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}
.app-container {
min-height: 100vh;
background: var(--bg-page);
max-width: 100%;
}
/* 卡片通用样式 */
.content-card {
background: var(--bg-card);
border-radius: 8px;
padding: 24px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
/* 页面标题样式 */
.page-title {
font-size: 20px;
font-weight: 600;
color: var(--text-primary);
margin-bottom: 20px;
padding-bottom: 12px;
border-bottom: 1px solid var(--border-color);
}
/* Section 标题 */
.section-title {
font-size: 16px;
font-weight: 600;
color: var(--text-primary);
margin: 20px 0 16px;
}
/* 按钮组样式 */
.btn-group {
display: flex;
gap: 12px;
flex-wrap: wrap;
}
/* 表格工具栏 */
.table-toolbar {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
flex-wrap: wrap;
gap: 12px;
}
/* Flex 布局工具类 */
.flex-row {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 12px;
}
.flex-between {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 12px;
}
/* Gap 间距 */
.gap-sm {
gap: 8px;
}
.gap-md {
gap: 12px;
}
.gap-lg {
gap: 16px;
}
/* 间距工具类 */
.mt-sm {
margin-top: 8px;
}
.mt-md {
margin-top: 16px;
}
.mt-lg {
margin-top: 24px;
}
.mb-sm {
margin-bottom: 8px;
}
.mb-md {
margin-bottom: 16px;
}
.mb-lg {
margin-bottom: 24px;
}
.ml-sm {
margin-left: 8px;
}
.ml-md {
margin-left: 12px;
}
.ml-lg {
margin-left: 16px;
}
.mr-sm {
margin-right: 8px;
}
.mr-md {
margin-right: 12px;
}
.mr-lg {
margin-right: 16px;
}
/* 文本工具类 */
.text-primary {
color: var(--text-primary);
}
.text-success {
color: var(--success-color);
}
.text-warning {
color: var(--warning-color);
}
.text-danger {
color: var(--danger-color);
}
.text-info {
color: var(--info-color);
}
/* 加载动画 */
.loading-container {
display: flex;
justify-content: center;
align-items: center;
min-height: 200px;
}
/* 空状态 */
.empty-container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 48px;
color: var(--text-secondary);
}
/* 响应式 */
@media (max-width: 768px) {
.content-card {
padding: 16px;
border-radius: 0;
}
.hide-on-mobile {
display: none;
}
}
</style>