af-mobile-client-vue3 1.5.82 → 1.5.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.development CHANGED
@@ -1 +1,2 @@
1
1
  NODE_ENV=development
2
+ VITE_RSA_PRIVATE_KEY=MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIRrmftLDHCQqREEJ132Onu+W3vmFbdF7QD751SrcDDGDTfzuz1zBuElvkHhuDBb7KZkXrCIe+MhvX2IvxcLObl3faX+evYlnfj2HRbF0hIpQLuIq22tL06ZcV5w7wqLxUZRpFElIFm8gZTkUvfKXVuHw89e4daDVhU5hK3GHNGTAgMBAAECgYABiINrFaE1E8pkBYx1JJA5yuhL73aUktfd2TeCU00vFg6kyrWCI85Sa2RKu/6CJNZWeOFgdubEUv7a22tRrNIZb3yUMaqtTwSso78mspIOJqjWXTkTH9WPElfTcdpdIse/lgZtPz6egxkuhadSvwrM9Y6NgusiW/5+x95Ct08iOQJBAN5aK+7uISURvGQj2EaRtgGEd8+d4oHl+BYvvTeG3qSgUikHQW3j0sp4gXPw2kxw6sjVgLFOc4FB6LGqwzOTzokCQQCYdYG8ty3Uo/ebUlNzeJFxHXjy/KvBSytAUzAXkRu3nZrkEaPQsi3dgOkZgk+F1fMDzfQ4EbDIU6xvqOoZXHg7AkATCW9XfoXR8anKfRMoP5Nwn9HOMbtR2cmaxK2TknV/bMZ8AsYETYwfj5+tuIJIJybC2RyykX/sIiN1CqS5xr7ZAkArj19rMRdaKyMi8MnBM1Cy9g3Jt2HHj5ejAGG8SgyWUOShh1y70z0BjcSMMkxQXAncK2s83ekZw7aADM4eQupjAkARRgTwwMOnn3IoKmQusKhZk0uxilZ4Zc2LH6Z4GiWnvteM0W8Zw4Z1lJUcjgQq3dGqL2RdmzeQZ+HgPIOXrZVK
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "af-mobile-client-vue3",
3
3
  "type": "module",
4
- "version": "1.5.82",
4
+ "version": "1.5.84",
5
5
  "packageManager": "pnpm@10.13.1",
6
6
  "description": "Vue + Vite component lib",
7
7
  "engines": {
@@ -0,0 +1,107 @@
1
+ <script setup lang="ts">
2
+ import MessageNotification from '@af-mobile-client-vue3/components/core/MessageNotification/MessageNotification.vue'
3
+ import { useSettingStore } from '@af-mobile-client-vue3/stores/modules/setting'
4
+ import { Icon } from '@iconify/vue'
5
+ import { computed, ref } from 'vue'
6
+
7
+ interface NavigationStyle {
8
+ bgColor?: string
9
+ titleColor?: string
10
+ iconColor?: string
11
+ }
12
+
13
+ interface Props {
14
+ title?: string
15
+ showBack?: boolean
16
+ showMessage?: boolean
17
+ }
18
+
19
+ const props = withDefaults(defineProps<Props>(), {
20
+ title: '',
21
+ showBack: true,
22
+ showMessage: true,
23
+ })
24
+
25
+ const emit = defineEmits<{
26
+ back: []
27
+ }>()
28
+
29
+ // 从 settingStore 获取导航样式配置
30
+ const settingStore = useSettingStore()
31
+ const navigationStyle = computed<NavigationStyle>(() => {
32
+ const config = (settingStore.getSetting() as any)?.navigationStyle
33
+ return {
34
+ bgColor: config?.bgColor || '#fff',
35
+ titleColor: config?.titleColor || '#000',
36
+ iconColor: config?.iconColor || '#666',
37
+ }
38
+ })
39
+
40
+ const headerRef = ref<HTMLElement>()
41
+
42
+ function onBack() {
43
+ emit('back')
44
+ }
45
+
46
+ defineExpose({
47
+ getHeaderHeight: () => {
48
+ if (headerRef.value) {
49
+ const rect = headerRef.value.getBoundingClientRect()
50
+ const height = rect.height
51
+ if (height > 0) {
52
+ document.documentElement.style.setProperty('--system-header-height', `${height}px`)
53
+ }
54
+ return height
55
+ }
56
+ return 0
57
+ },
58
+ })
59
+ </script>
60
+
61
+ <template>
62
+ <div ref="headerRef" class="app-header" :style="{ backgroundColor: navigationStyle.bgColor }">
63
+ <Icon
64
+ v-if="props.showBack"
65
+ icon="mdi:arrow-left"
66
+ :width="24"
67
+ :height="24"
68
+ size="1.15em"
69
+ :style="{ color: navigationStyle.iconColor }"
70
+ @click="onBack"
71
+ />
72
+ <span class="app-header-title" :style="{ color: navigationStyle.titleColor }">{{ props.title }}</span>
73
+ <div v-if="props.showMessage" class="app-header-action">
74
+ <MessageNotification :icon-color="navigationStyle.iconColor" />
75
+ </div>
76
+ <div v-else class="app-header-action-placeholder" />
77
+ </div>
78
+ </template>
79
+
80
+ <style lang="less" scoped>
81
+ .app-header {
82
+ position: sticky;
83
+ top: 0;
84
+ z-index: 10001;
85
+ display: flex;
86
+ align-items: center;
87
+ height: 56px;
88
+ padding-left: 16px;
89
+ padding-right: 16px;
90
+ border-bottom: 1px solid #ebedf0;
91
+ }
92
+
93
+ .app-header-title {
94
+ padding-left: 10px;
95
+ font-size: 1.15rem;
96
+ font-weight: 600;
97
+ }
98
+
99
+ .app-header-action {
100
+ margin-left: auto;
101
+ }
102
+
103
+ .app-header-action-placeholder {
104
+ margin-left: auto;
105
+ width: 36px;
106
+ }
107
+ </style>