style: 全局 UI 主题皮肤重构与样式模块化
引入 Element Plus 主题定制和主题皮肤 composable,将全局 样式拆分为组件级独立 CSS 文件(侧边栏、顶栏、工作台等), 统一色彩变量和间距规范,重构所有视图和组件样式以适配新 主题系统,优化图表和知识图谱组件视觉表现,提取审计和差 旅报销相关子组件。
This commit is contained in:
62
web/src/components/travel/TravelRequestApprovalDialog.vue
Normal file
62
web/src/components/travel/TravelRequestApprovalDialog.vue
Normal file
@@ -0,0 +1,62 @@
|
||||
<template>
|
||||
<ConfirmDialog
|
||||
:open="open"
|
||||
:badge="badge"
|
||||
badge-tone="info"
|
||||
:title="title"
|
||||
:description="description"
|
||||
cancel-text="返回核对"
|
||||
:confirm-text="confirmText"
|
||||
:busy-text="busyText"
|
||||
confirm-tone="primary"
|
||||
confirm-icon="mdi mdi-check-circle-outline"
|
||||
:busy="busy"
|
||||
@close="emit('close')"
|
||||
@confirm="emit('confirm')"
|
||||
>
|
||||
<div class="submit-confirm-summary" aria-label="领导审批通过摘要">
|
||||
<div class="submit-confirm-row">
|
||||
<span>单据编号</span>
|
||||
<strong>{{ documentNo }}</strong>
|
||||
</div>
|
||||
<div class="submit-confirm-row">
|
||||
<span>当前节点</span>
|
||||
<strong>{{ node }}</strong>
|
||||
</div>
|
||||
<div class="submit-confirm-row">
|
||||
<span>{{ summaryLabel }}</span>
|
||||
<strong>{{ nextStage }}</strong>
|
||||
</div>
|
||||
<div class="submit-confirm-row">
|
||||
<span>{{ opinionTitle }}</span>
|
||||
<strong>{{ normalizedOpinion }}</strong>
|
||||
</div>
|
||||
</div>
|
||||
</ConfirmDialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { computed } from 'vue'
|
||||
|
||||
import ConfirmDialog from '../shared/ConfirmDialog.vue'
|
||||
|
||||
const props = defineProps({
|
||||
open: { type: Boolean, required: true },
|
||||
badge: { type: String, required: true },
|
||||
title: { type: String, required: true },
|
||||
description: { type: String, required: true },
|
||||
confirmText: { type: String, required: true },
|
||||
busyText: { type: String, required: true },
|
||||
busy: { type: Boolean, required: true },
|
||||
documentNo: { type: [String, Number], required: true },
|
||||
node: { type: String, default: '' },
|
||||
summaryLabel: { type: String, required: true },
|
||||
nextStage: { type: String, required: true },
|
||||
opinionTitle: { type: String, required: true },
|
||||
opinion: { type: String, default: '' }
|
||||
})
|
||||
|
||||
const emit = defineEmits(['close', 'confirm'])
|
||||
|
||||
const normalizedOpinion = computed(() => props.opinion.trim() || '未填写')
|
||||
</script>
|
||||
Reference in New Issue
Block a user