@yxhl/specter-pui-vtk 1.0.75 → 1.0.76

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yxhl/specter-pui-vtk",
3
- "version": "1.0.75",
3
+ "version": "1.0.76",
4
4
  "description": "雅心互联 Vue 3 + Vuetify3 组件库",
5
5
  "type": "module",
6
6
  "main": "./dist/specter-pui.umd.js",
@@ -1,44 +1,236 @@
1
- <template>
2
- <div class="vtk-date-selector" ref="selectorRef">
3
- <div v-if="!inline" class="date-input" ref="inputRef">
4
- <VTextField
5
- :model-value="displayValue"
6
- :placeholder="placeholder"
7
- :disabled="disabled"
8
- density="compact"
9
- variant="outlined"
10
- hide-details
11
- readonly
12
- :clearable="!!displayValue && !disabled"
13
- clear-icon="mdi-close-circle"
14
- persistent-clear
15
- class="date-input-field"
16
- @click="togglePicker"
17
- @click:clear.stop="clearValue"
18
- >
19
- <template #append-inner>
20
- <span class="date-icon" aria-hidden="true">
21
- <svg viewBox="0 0 24 24" fill="none" class="date-icon-svg">
22
- <path
23
- d="M7 2.75a.75.75 0 0 1 .75.75V5h8.5V3.5a.75.75 0 0 1 1.5 0V5h.75A2.5 2.5 0 0 1 21 7.5v10A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5v-10A2.5 2.5 0 0 1 5.5 5h.75V3.5A.75.75 0 0 1 7 2.75ZM4.5 10v7.5c0 .552.448 1 1 1h13c.552 0 1-.448 1-1V10h-15Zm1-3.5c-.552 0-1 .448-1 1v1h15v-1c0-.552-.448-1-1-1h-.75v1a.75.75 0 0 1-1.5 0v-1h-8.5v1a.75.75 0 0 1-1.5 0v-1H5.5Zm2.25 5.75a.75.75 0 0 1 .75.75v.25a.75.75 0 0 1-1.5 0V13a.75.75 0 0 1 .75-.75Zm4.25 0a.75.75 0 0 1 .75.75v.25a.75.75 0 0 1-1.5 0V13a.75.75 0 0 1 .75-.75Zm4.25 0a.75.75 0 0 1 .75.75v.25a.75.75 0 0 1-1.5 0V13a.75.75 0 0 1 .75-.75Zm-8.5 3.75a.75.75 0 0 1 .75.75V17a.75.75 0 0 1-1.5 0v-.25a.75.75 0 0 1 .75-.75Zm4.25 0a.75.75 0 0 1 .75.75V17a.75.75 0 0 1-1.5 0v-.25a.75.75 0 0 1 .75-.75Z"
24
- fill="currentColor"
25
- />
26
- </svg>
1
+ <template>
2
+ <div class="vtk-date-selector">
3
+ <VMenu
4
+ v-if="!inline"
5
+ v-model="showPicker"
6
+ :attach="menuAttach"
7
+ :location="menuLocation"
8
+ :origin="menuOrigin"
9
+ offset="4"
10
+ :close-on-content-click="false"
11
+ >
12
+ <template #activator="{ props: menuProps }">
13
+ <div class="date-input">
14
+ <VTextField :model-value="displayValue" :placeholder="placeholder" :disabled="disabled" density="compact"
15
+ variant="outlined" hide-details readonly v-bind="menuProps" :clearable="!!displayValue && !disabled"
16
+ clear-icon="mdi-close-circle" persistent-clear class="date-input-field" @click:clear.stop="clearValue">
17
+ <template #append-inner>
18
+ <span class="date-icon" aria-hidden="true">
19
+ <svg viewBox="0 0 24 24" fill="none" class="date-icon-svg">
20
+ <path
21
+ d="M7 2.75a.75.75 0 0 1 .75.75V5h8.5V3.5a.75.75 0 0 1 1.5 0V5h.75A2.5 2.5 0 0 1 21 7.5v10A2.5 2.5 0 0 1 18.5 20h-13A2.5 2.5 0 0 1 3 17.5v-10A2.5 2.5 0 0 1 5.5 5h.75V3.5A.75.75 0 0 1 7 2.75ZM4.5 10v7.5c0 .552.448 1 1 1h13c.552 0 1-.448 1-1V10h-15Zm1-3.5c-.552 0-1 .448-1 1v1h15v-1c0-.552-.448-1-1-1h-.75v1a.75.75 0 0 1-1.5 0v-1h-8.5v1a.75.75 0 0 1-1.5 0v-1H5.5Zm2.25 5.75a.75.75 0 0 1 .75.75v.25a.75.75 0 0 1-1.5 0V13a.75.75 0 0 1 .75-.75Zm4.25 0a.75.75 0 0 1 .75.75v.25a.75.75 0 0 1-1.5 0V13a.75.75 0 0 1 .75-.75Zm4.25 0a.75.75 0 0 1 .75.75v.25a.75.75 0 0 1-1.5 0V13a.75.75 0 0 1 .75-.75Zm-8.5 3.75a.75.75 0 0 1 .75.75V17a.75.75 0 0 1-1.5 0v-.25a.75.75 0 0 1 .75-.75Zm4.25 0a.75.75 0 0 1 .75.75V17a.75.75 0 0 1-1.5 0v-.25a.75.75 0 0 1 .75-.75Z"
22
+ fill="currentColor" />
23
+ </svg>
24
+ </span>
25
+ </template>
26
+ </VTextField>
27
+ </div>
28
+ </template>
29
+ <div class="date-picker-dropdown" @click.stop @mousedown.stop>
30
+ <!-- 头部控制区(非日期/月份范围选择模式时显示) -->
31
+ <div v-if="!(mode === 'range' && (displayMode === 'day' || displayMode === 'month'))" class="picker-header">
32
+ <button class="nav-btn" @click="prevPeriod">‹</button>
33
+ <div class="header-title">
34
+ <span @click="changeViewMode('year')" class="clickable">{{ currentYear }}年</span>
35
+ <span v-if="displayMode !== 'year' && viewMode !== 'month'" @click="changeViewMode('month')"
36
+ class="clickable">{{
37
+ currentMonth + 1
38
+ }}月</span>
39
+ </div>
40
+ <button class="nav-btn" @click="nextPeriod">›</button>
41
+ </div>
42
+
43
+ <!-- 年份选择视图 -->
44
+ <div v-if="viewMode === 'year'" class="picker-body">
45
+ <div class="year-grid">
46
+ <div v-for="year in yearList" :key="year"
47
+ :class="['year-item', { 'selected': isYearSelected(year), 'in-range': isYearInRange(year), 'disabled': isFutureYear(year) }]"
48
+ @click="selectYear(year)">
49
+ {{ year }}
50
+ </div>
51
+ </div>
52
+ </div>
53
+
54
+ <!-- 月份选择视图 -->
55
+ <div v-else-if="viewMode === 'month'" class="picker-body">
56
+ <!-- 范围选择模式:显示两个年份的月份 -->
57
+ <div v-if="mode === 'range'" class="dual-calendar">
58
+ <!-- 左侧年份 -->
59
+ <div class="calendar-panel">
60
+ <div class="calendar-header">
61
+ <button class="nav-btn-small" @click="prevYear">‹</button>
62
+ <span class="month-title">{{ currentYear }}年</span>
63
+ <button class="nav-btn-small" @click="nextYearLeft">›</button>
64
+ </div>
65
+ <div class="month-grid">
66
+ <div v-for="(month, index) in monthList" :key="index"
67
+ :class="['month-item', { 'selected': isMonthSelected(index), 'in-range': isMonthInRange(index), 'disabled': isFutureMonth(index, currentYear) }]"
68
+ @click="selectMonth(index)">
69
+ {{ month }}
70
+ </div>
71
+ </div>
72
+ </div>
73
+
74
+ <template v-if="!singlePanel">
75
+ <!-- 分割线 -->
76
+ <div class="calendar-divider"></div>
77
+
78
+ <!-- 右侧年份 -->
79
+ <div class="calendar-panel">
80
+ <div class="calendar-header">
81
+ <button class="nav-btn-small" @click="prevYearRight">‹</button>
82
+ <span class="month-title">{{ rightYear }}年</span>
83
+ <button class="nav-btn-small" @click="nextYear">›</button>
84
+ </div>
85
+ <div class="month-grid">
86
+ <div v-for="(month, index) in monthList" :key="index"
87
+ :class="['month-item', { 'selected': isMonthSelectedRight(index), 'in-range': isMonthInRangeRight(index), 'disabled': isFutureMonth(index, rightYear) }]"
88
+ @click="selectMonthRight(index)">
89
+ {{ month }}
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </template>
94
+ </div>
95
+
96
+ <!-- 单选模式:显示一个年份的月份 -->
97
+ <div v-else>
98
+ <div class="month-grid">
99
+ <div v-for="(month, index) in monthList" :key="index"
100
+ :class="['month-item', { 'selected': isMonthSelected(index), 'in-range': isMonthInRange(index), 'disabled': isFutureMonth(index, currentYear) }]"
101
+ @click="selectMonth(index)">
102
+ {{ month }}
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </div>
107
+
108
+ <!-- 周选择视图 -->
109
+ <div v-else-if="viewMode === 'week'" class="picker-body">
110
+ <div class="week-header">
111
+ <div v-for="day in weekDays" :key="day" class="week-day">{{ day }}</div>
112
+ </div>
113
+ <div class="week-grid">
114
+ <div v-for="week in weekList" :key="week.weekNumber"
115
+ :class="['week-row', { 'selected': isWeekSelected(week), 'in-range': isWeekInRange(week) }]"
116
+ @click="selectWeek(week)">
117
+ <div class="week-number">W{{ week.weekNumber }}</div>
118
+ <div v-for="day in week.days" :key="day.date"
119
+ :class="['day-cell', { 'other-month': day.otherMonth, 'today': day.isToday }]">
120
+ {{ day.day }}
121
+ </div>
122
+ </div>
123
+ </div>
124
+ </div>
125
+
126
+ <!-- 日期选择视图(默认) -->
127
+ <div v-else class="picker-body">
128
+ <!-- 范围选择模式:显示两个月份 -->
129
+ <div v-if="mode === 'range'" class="dual-calendar">
130
+ <!-- 左侧月份 -->
131
+ <div class="calendar-panel">
132
+ <div class="calendar-header">
133
+ <button class="nav-btn-small" @click="prevMonth">‹</button>
134
+ <span class="month-title">{{ currentYear }}年{{ currentMonth + 1 }}月</span>
135
+ <button class="nav-btn-small" @click="nextMonthLeft">›</button>
136
+ </div>
137
+ <div class="week-header">
138
+ <div v-for="day in weekDays" :key="day" class="week-day">{{ day }}</div>
139
+ </div>
140
+ <div class="day-grid">
141
+ <div v-for="day in dayList" :key="day.date" :class="['day-item', {
142
+ 'other-month': day.otherMonth,
143
+ 'selected': isDaySelected(day),
144
+ 'in-range': isDayInRange(day),
145
+ 'range-start': isDayRangeStart(day),
146
+ 'range-end': isDayRangeEnd(day),
147
+ 'today': day.isToday,
148
+ 'disabled': isFutureDay(day)
149
+ }]" @click="selectDay(day)">
150
+ {{ day.day }}
151
+ </div>
152
+ </div>
153
+ </div>
154
+
155
+ <template v-if="!singlePanel">
156
+ <!-- 分割线 -->
157
+ <div class="calendar-divider"></div>
158
+
159
+ <!-- 右侧月份 -->
160
+ <div class="calendar-panel">
161
+ <div class="calendar-header">
162
+ <button class="nav-btn-small" @click="prevMonthRight">‹</button>
163
+ <span class="month-title">{{ nextMonthYear }}年{{ nextMonthMonth + 1 }}月</span>
164
+ <button class="nav-btn-small" @click="nextMonth">›</button>
165
+ </div>
166
+ <div class="week-header">
167
+ <div v-for="day in weekDays" :key="day" class="week-day">{{ day }}</div>
168
+ </div>
169
+ <div class="day-grid">
170
+ <div v-for="day in nextMonthDayList" :key="day.date" :class="['day-item', {
171
+ 'other-month': day.otherMonth,
172
+ 'selected': isDaySelected(day),
173
+ 'in-range': isDayInRange(day),
174
+ 'range-start': isDayRangeStart(day),
175
+ 'range-end': isDayRangeEnd(day),
176
+ 'today': day.isToday,
177
+ 'disabled': isFutureDay(day)
178
+ }]" @click="selectDay(day)">
179
+ {{ day.day }}
180
+ </div>
181
+ </div>
182
+ </div>
183
+ </template>
184
+ </div>
185
+
186
+ <!-- 单选模式:显示一个月份 -->
187
+ <div v-else>
188
+ <div class="week-header">
189
+ <div v-for="day in weekDays" :key="day" class="week-day">{{ day }}</div>
190
+ </div>
191
+ <div class="day-grid">
192
+ <div v-for="day in dayList" :key="day.date" :class="['day-item', {
193
+ 'other-month': day.otherMonth,
194
+ 'selected': isDaySelected(day),
195
+ 'in-range': isDayInRange(day),
196
+ 'range-start': isDayRangeStart(day),
197
+ 'range-end': isDayRangeEnd(day),
198
+ 'today': day.isToday
199
+ }]" @click="selectDay(day)">
200
+ {{ day.day }}
201
+ </div>
202
+ </div>
203
+ </div>
204
+ </div>
205
+
206
+ <!-- 底部操作区 -->
207
+ <div v-if="mode === 'range' && (displayMode === 'day' || displayMode === 'month')" class="range-display">
208
+ <span class="range-text">
209
+ <template v-if="tempValue && Array.isArray(tempValue) && tempValue.length > 0">
210
+ {{ tempValue[0] || (displayMode === 'month' ? '开始月份' : '开始日期') }}
211
+ <span class="range-separator"> - </span>
212
+ {{ tempValue[1] || (displayMode === 'month' ? '结束月份' : '结束日期') }}
213
+ </template>
214
+ <template v-else>
215
+ <span class="placeholder-text">{{ displayMode === 'month' ? '请选择月份范围' : '请选择日期范围' }}</span>
216
+ </template>
27
217
  </span>
28
- </template>
29
- </VTextField>
30
- </div>
31
- <!-- 使用 Teleport 将下拉框渲染到 body 下,避免被父容器裁剪 -->
32
- <Teleport to="body" :disabled="inline || noTeleport">
33
- <div v-if="showPicker && !inline" class="date-picker-mask" @click="closePicker"></div>
34
- <div v-if="showPicker || inline" :class="['date-picker-dropdown', { 'inline-mode': inline, 'no-teleport-mode': noTeleport, 'align-right': noTeleport && placement === 'right' }]"
35
- :style="noTeleport ? {} : dropdownStyle" @click.stop @mousedown.stop>
218
+ </div>
219
+ <div class="picker-footer">
220
+ <button class="btn btn-text" @click="handleCancel">取消</button>
221
+ <button class="btn btn-primary" @click="handleConfirm">确定</button>
222
+ </div>
223
+ </div>
224
+ </VMenu>
225
+ <div v-if="inline" class="date-picker-dropdown inline-mode" @click.stop @mousedown.stop>
36
226
  <!-- 头部控制区(非日期/月份范围选择模式时显示) -->
37
227
  <div v-if="!(mode === 'range' && (displayMode === 'day' || displayMode === 'month'))" class="picker-header">
38
228
  <button class="nav-btn" @click="prevPeriod">‹</button>
39
229
  <div class="header-title">
40
230
  <span @click="changeViewMode('year')" class="clickable">{{ currentYear }}年</span>
41
- <span v-if="displayMode !== 'year' && viewMode !== 'month'" @click="changeViewMode('month')" class="clickable">{{ currentMonth + 1
231
+ <span v-if="displayMode !== 'year' && viewMode !== 'month'" @click="changeViewMode('month')"
232
+ class="clickable">{{
233
+ currentMonth + 1
42
234
  }}月</span>
43
235
  </div>
44
236
  <button class="nav-btn" @click="nextPeriod">›</button>
@@ -225,12 +417,12 @@
225
417
  <button class="btn btn-primary" @click="handleConfirm">确定</button>
226
418
  </div>
227
419
  </div>
228
- </Teleport>
420
+
229
421
  </div>
230
422
  </template>
231
423
 
232
424
  <script setup>
233
- import { ref, computed, watch, nextTick } from 'vue';
425
+ import { ref, computed, watch } from 'vue';
234
426
 
235
427
  // 定义组件名称
236
428
  defineOptions({
@@ -301,11 +493,11 @@ const props = defineProps({
301
493
  type: Function,
302
494
  default: null
303
495
  },
304
- // 禁用 Teleport,日历直接渲染在当前 DOM 树内(用于嵌套在 VMenu 等弹窗组件中时)
305
- noTeleport: {
306
- type: Boolean,
307
- default: false
308
- },
496
+ // 禁用 Teleport 时,弹层保留在当前 DOM 树内
497
+ noTeleport: {
498
+ type: Boolean,
499
+ default: false
500
+ },
309
501
  // 下拉框对齐方式: 'left' | 'right'
310
502
  placement: {
311
503
  type: String,
@@ -318,17 +510,14 @@ const props = defineProps({
318
510
  const emit = defineEmits(['update:modelValue', 'change', 'cancel', 'confirm']);
319
511
 
320
512
  // 响应式数据
321
- const showPicker = ref(false);
322
- const viewMode = ref(props.displayMode);
323
- const currentYear = ref(new Date().getFullYear());
324
- const currentMonth = ref(new Date().getMonth());
325
- const rightYear = ref(new Date().getFullYear());
326
- const rightMonth = ref(new Date().getMonth() + 1);
327
- const selectedValue = ref(null);
328
- const tempValue = ref(null);
329
- const selectorRef = ref(null);
330
- const inputRef = ref(null);
331
- const dropdownStyle = ref({});
513
+ const showPicker = ref(false);
514
+ const viewMode = ref(props.displayMode);
515
+ const currentYear = ref(new Date().getFullYear());
516
+ const currentMonth = ref(new Date().getMonth());
517
+ const rightYear = ref(new Date().getFullYear());
518
+ const rightMonth = ref(new Date().getMonth() + 1);
519
+ const selectedValue = ref(null);
520
+ const tempValue = ref(null);
332
521
 
333
522
  // 当前日期(用于判断未来日期)
334
523
  const today = new Date();
@@ -344,7 +533,13 @@ const YEAR_PANEL_CENTER_OFFSET = 4;
344
533
  const weekDays = ['日', '一', '二', '三', '四', '五', '六'];
345
534
  const monthList = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];
346
535
 
347
- // 显示值
536
+ // 显示值
537
+ const menuAttach = computed(() => (props.noTeleport ? true : false));
538
+
539
+ const menuLocation = computed(() => props.placement === 'right' ? 'bottom end' : 'bottom start');
540
+
541
+ const menuOrigin = computed(() => props.placement === 'right' ? 'top end' : 'top start');
542
+
348
543
  const displayValue = computed(() => {
349
544
  if (!selectedValue.value) return '';
350
545
 
@@ -874,64 +1069,34 @@ const changeViewMode = (mode) => {
874
1069
  };
875
1070
 
876
1071
  // 面板操作
877
- const togglePicker = () => {
878
- if (props.disabled) return;
879
- showPicker.value = !showPicker.value;
880
- if (showPicker.value) {
881
- // 年份单选打开面板时,优先围绕当前自然年展示年份列表
882
- if (props.displayMode === 'year' && props.mode === 'single') {
883
- currentYear.value = todayYear;
884
- }
1072
+ const initializePicker = () => {
1073
+ if (props.displayMode === 'year' && props.mode === 'single') {
1074
+ currentYear.value = todayYear;
1075
+ }
885
1076
 
886
- tempValue.value = selectedValue.value ?
887
- (Array.isArray(selectedValue.value) ? [...selectedValue.value] : selectedValue.value) :
888
- (props.mode === 'range' ? [] : null);
889
- viewMode.value = props.displayMode;
1077
+ tempValue.value = selectedValue.value ?
1078
+ (Array.isArray(selectedValue.value) ? [...selectedValue.value] : selectedValue.value) :
1079
+ (props.mode === 'range' ? [] : null);
1080
+ viewMode.value = props.displayMode;
890
1081
 
891
- // 初始化右侧日历/年份
892
- if (props.displayMode === 'month') {
893
- // 月份范围选择:右侧年份为左侧年份+1
1082
+ if (props.displayMode === 'month') {
1083
+ rightYear.value = currentYear.value + 1;
1084
+ } else {
1085
+ if (currentMonth.value === 11) {
894
1086
  rightYear.value = currentYear.value + 1;
1087
+ rightMonth.value = 0;
895
1088
  } else {
896
- // 日期范围选择:右侧日历为左侧日历的下一个月
897
- if (currentMonth.value === 11) {
898
- rightYear.value = currentYear.value + 1;
899
- rightMonth.value = 0;
900
- } else {
901
- rightYear.value = currentYear.value;
902
- rightMonth.value = currentMonth.value + 1;
903
- }
1089
+ rightYear.value = currentYear.value;
1090
+ rightMonth.value = currentMonth.value + 1;
904
1091
  }
905
-
906
- // 计算下拉框位置
907
- nextTick(() => {
908
- if (inputRef.value) {
909
- const rect = inputRef.value.getBoundingClientRect();
910
- // 根据模式和面板数量确定宽度
911
- let dropdownWidth = 360; // 默认单面板宽度
912
- if (props.mode === 'range' && !props.singlePanel) {
913
- // 双面板模式
914
- dropdownWidth = 465;
915
- } else if (props.displayMode === 'week') {
916
- // 周选择模式需要更宽的空间
917
- dropdownWidth = 465;
918
- }
919
- const alignStyle = props.placement === 'right'
920
- ? { right: `${window.innerWidth - rect.right}px` }
921
- : { left: `${rect.left}px` };
922
- dropdownStyle.value = {
923
- position: 'fixed',
924
- top: `${rect.bottom + 4}px`,
925
- ...alignStyle,
926
- width: `${dropdownWidth}px`,
927
- zIndex: 99999
928
- };
929
- }
930
- });
931
1092
  }
932
1093
  };
933
1094
 
934
- // 内联模式初始化
1095
+ watch(showPicker, (isOpen) => {
1096
+ if (isOpen) {
1097
+ initializePicker();
1098
+ }
1099
+ });
935
1100
  if (props.inline) {
936
1101
  // 内联模式下直接初始化
937
1102
  tempValue.value = selectedValue.value ?
@@ -1028,44 +1193,31 @@ watch(() => props.modelValue, (newValue) => {
1028
1193
  display: block;
1029
1194
  }
1030
1195
 
1031
- .date-picker-mask {
1032
- position: fixed;
1033
- top: 0;
1034
- left: 0;
1035
- right: 0;
1036
- bottom: 0;
1037
- z-index: 99998;
1038
- }
1039
-
1040
- .date-picker-dropdown {
1041
- position: fixed;
1042
- background: rgb(var(--v-theme-surface));
1043
- border-radius: 8px;
1044
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
1045
- z-index: 99999;
1046
- border: 1px solid rgb(var(--v-theme-on-surface), 0.12);
1196
+ .clear-icon {
1197
+ margin-left: 4px;
1198
+ color: rgb(var(--v-theme-on-surface), 0.6);
1199
+ font-size: 18px;
1200
+ line-height: 1;
1201
+ cursor: pointer;
1202
+ padding: 2px;
1047
1203
  }
1048
1204
 
1049
- .date-picker-dropdown.inline-mode {
1050
- position: relative;
1051
- top: 0;
1052
- left: 0;
1053
- box-shadow: none;
1054
- width: fit-content;
1055
- border: none;
1205
+ .clear-icon:hover {
1206
+ color: rgb(var(--v-theme-on-surface), 0.87);
1056
1207
  }
1057
1208
 
1058
- .date-picker-dropdown.no-teleport-mode {
1059
- position: absolute;
1060
- top: calc(100% + 4px);
1061
- left: 0;
1062
- z-index: 99999;
1063
- }
1209
+ .date-picker-dropdown {
1210
+ background: rgb(var(--v-theme-surface));
1211
+ border-radius: 8px;
1212
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
1213
+ border: 1px solid rgb(var(--v-theme-on-surface), 0.12);
1214
+ }
1064
1215
 
1065
- .date-picker-dropdown.no-teleport-mode.align-right {
1066
- left: auto;
1067
- right: 0;
1068
- }
1216
+ .date-picker-dropdown.inline-mode {
1217
+ box-shadow: none;
1218
+ width: fit-content;
1219
+ border: none;
1220
+ }
1069
1221
 
1070
1222
  .picker-header {
1071
1223
  display: flex;
@@ -1381,4 +1533,4 @@ watch(() => props.modelValue, (newValue) => {
1381
1533
  .btn-primary:hover {
1382
1534
  opacity: 0.9;
1383
1535
  }
1384
- </style>
1536
+ </style>
@@ -46,7 +46,6 @@ watch(areaSelectedData, (newVal, oldVal) => {
46
46
 
47
47
  // 获取地区列表
48
48
  const getAreaList = () => {
49
- console.log('user.areacode=', user.areacode);
50
49
  if (user && user.areacode) {
51
50
  proxy.$vtk.request.getForm(`/dict/area/show/${user.areacode}`).then((res) => {
52
51
  console.log('res=', res);