@opendesign-plus-test/components 0.0.1-rc.70 → 0.0.1-rc.72

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": "@opendesign-plus-test/components",
3
- "version": "0.0.1-rc.70",
3
+ "version": "0.0.1-rc.72",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -144,13 +144,13 @@
144
144
 
145
145
  &.start-date {
146
146
  .el-date-table-cell {
147
- border-radius: var(--cell-radius) 0 0 var(--cell-radius);
147
+ border-radius: var(--cell-radius);
148
148
  }
149
149
  }
150
150
 
151
151
  &.end-date {
152
152
  .el-date-table-cell {
153
- border-radius: 0 var(--cell-radius) var(--cell-radius) 0;
153
+ border-radius: var(--cell-radius);
154
154
  }
155
155
  }
156
156
  }
@@ -177,6 +177,36 @@
177
177
  border: 1px solid var(--el-input-border-color);
178
178
  }
179
179
 
180
+ .el-date-editor {
181
+ &.is-focus {
182
+
183
+ .el-input__wrapper {
184
+ box-shadow: none;
185
+ --el-input-border-color: var(--o-color-primary3);
186
+ }
187
+ }
188
+
189
+ &:hover {
190
+
191
+ .el-input__wrapper {
192
+ box-shadow: none;
193
+ --el-input-border-color: var(--o-color-primary2);
194
+ }
195
+ }
196
+
197
+ &.el-input__wrapper {
198
+ &:hover {
199
+ box-shadow: none;
200
+ --el-input-border-color: var(--o-color-primary2);
201
+ }
202
+
203
+ &.is-active {
204
+ --el-input-border-color: var(--o-color-primary3);
205
+ }
206
+ }
207
+ }
208
+
209
+
180
210
  .el-select__wrapper {
181
211
  background: var(--o-color-fill2);
182
212
  }
@@ -1,7 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, nextTick, onMounted, ref, watch } from 'vue';
3
3
  import {
4
- isClient, OFigure,
4
+ isClient,
5
+ OFigure,
5
6
  OIcon,
6
7
  OIconChevronLeft,
7
8
  OIconChevronRight,
@@ -17,7 +18,7 @@ import OMeetingCalendarList from './components/OMeetingCalendarList.vue';
17
18
  import IconEvent from '~icons/meeting/icon-event.svg';
18
19
  import IconSummit from '~icons/meeting/icon-summit.svg';
19
20
  import IconMeeting from '~icons/meeting/icon-meet.svg';
20
- import emptyImg from '@/assets/meeting/empty.png';
21
+ import emptyDefaultImg from '@/assets/meeting/empty.png';
21
22
  import { Locales } from '@/i18n';
22
23
  import { useMeetingConfig } from './composables/useMeetingConfig';
23
24
  import {
@@ -42,13 +43,11 @@ const props = withDefaults(defineProps<MeetingCalendarPropsT>(), {
42
43
  const { t, locale, meetingTabs, getConfig } = useMeetingConfig();
43
44
  const isEn = computed(() => locale.value === Locales.EN);
44
45
 
45
- const latestDay = ref<string>('');
46
46
  const dateList = ref<string[]>([]);
47
47
  const summitData = ref<SummitItemT[]>([]);
48
48
  const summitDates = ref<string[]>([]);
49
49
  const eventsData = ref<MeetingEventsItemT[]>([]);
50
50
  const eventsDates = ref<string[]>([]);
51
- const allDates = ref<string[]>([]);
52
51
  const meetingData = ref<MeetingItemT[]>([]);
53
52
  const limitTime = '2021-01-01';
54
53
  const tabType = ref<CalendarDataType>(CalendarDataType.ALL);
@@ -168,25 +167,28 @@ const getDateData = async (day?: string) => {
168
167
  getActivityData(date);
169
168
  getDateList(date);
170
169
 
171
- allDates.value = [...new Set([...dateList.value, ...summitDates.value, ...eventsDates.value])]
172
- .flat()
173
- .sort((a: string, b: string) => dayjs(a).isAfter(dayjs(b)) ? 1 : -1);
174
- if (!day) {
175
- if (!allDates.value.length) {
176
- latestDay.value = formatDate(new Date());
177
- } else {
178
- let find = [...allDates.value].reverse().find((v) => dayjs().isAfter(dayjs(v)));
179
- if (!find) {
180
- find = allDates.value.find((v) => dayjs(v).isAfter(dayjs()));
181
- }
182
- latestDay.value = formatDate(find);
183
- }
184
- }
185
170
  paramGetDaysData({
186
171
  date: date,
187
172
  type: tabType.value,
188
173
  });
189
174
  };
175
+ const allDates = computed<string[]>(() => {
176
+ return [...new Set([...dateList.value, ...summitDates.value, ...eventsDates.value])]
177
+ .flat()
178
+ .sort((a: string, b: string) => dayjs(a).isAfter(dayjs(b)) ? 1 : -1);
179
+ });
180
+
181
+ const latestDay = computed(() => {
182
+ if (!allDates.value.length) {
183
+ return formatDate(new Date());
184
+ } else {
185
+ let find = allDates.value.find((v) => dayjs(v).isAfter(dayjs()));
186
+ if (!find) {
187
+ find = [...allDates.value].reverse().find((v) => dayjs().isAfter(dayjs(v)));
188
+ }
189
+ return formatDate(find);
190
+ }
191
+ });
190
192
 
191
193
  const changeMeetingDay = useDebounceFn((day: string, event?: Event) => {
192
194
  if (isAutoClick.value) {
@@ -201,6 +203,15 @@ const changeMeetingDay = useDebounceFn((day: string, event?: Event) => {
201
203
  }, 300)
202
204
 
203
205
 
206
+ watch(() => latestDay.value,
207
+ () => {
208
+ changeMeetingDay(latestDay.value);
209
+ },
210
+ {
211
+ immediate: true,
212
+ },
213
+ );
214
+
204
215
  const selectDate = (val: string, date: string) => {
205
216
  if (formatDate(date) === formatDate(limitTime) && val === 'prev-month') {
206
217
  isLimit.value = true;
@@ -247,7 +258,6 @@ const getCalendarHeight = async () => {
247
258
 
248
259
  onMounted(() => {
249
260
  getCalendarHeight();
250
- getDateData();
251
261
  });
252
262
 
253
263
  const stopWatchData = watch(
@@ -403,9 +413,9 @@ defineExpose({
403
413
  <slot name="empty">
404
414
  <OResult class="empty-result">
405
415
  <template #image>
406
- <OFigure class="img" :src="emptyImg" />
416
+ <OFigure class="img" :src="emptyImg ?? emptyDefaultImg" />
407
417
  </template>
408
- <template #description>{{ t('meeting.meetingEmptyText') }}</template>
418
+ <template #description>{{ emptyText ?? t('meeting.meetingEmptyText') }}</template>
409
419
  </OResult>
410
420
  </slot>
411
421
  </template>
@@ -459,7 +469,7 @@ defineExpose({
459
469
  display: flex;
460
470
  align-items: center;
461
471
  justify-content: space-between;
462
- height: 60px;
472
+ height: 58px;
463
473
  padding: 0 var(--o-gap-6);
464
474
  gap: var(--o-gap-6);
465
475
  border-bottom: 1px solid var(--o-color-control4);
@@ -809,24 +819,22 @@ defineExpose({
809
819
  }
810
820
 
811
821
  .title-list {
812
- display: flex;
813
- align-items: center;
814
- justify-content: center;
815
- padding: 14px 24px;
822
+ padding: 16px 0;
816
823
  position: relative;
817
- height: 60px;
824
+ height: 58px;
818
825
 
819
826
  @include respond('<=pad_v') {
820
827
  justify-content: space-between;
821
828
  padding: 0 16px;
822
- gap: 24px;
829
+ gap: var(--o-gap-4);
823
830
  height: auto;
824
831
  align-items: flex-start;
832
+ display: flex;
825
833
  }
826
834
  @include respond('phone') {
827
835
  flex-direction: column;
828
836
  align-items: center;
829
- gap: 8px;
837
+ gap: var(--o-gap-2);
830
838
  }
831
839
 
832
840
  &::after {
@@ -859,38 +867,30 @@ defineExpose({
859
867
  }
860
868
 
861
869
  .o-tab {
862
- display: flex;
863
- justify-content: center;
864
- align-items: flex-end;
865
- height: 60px;
870
+ --tab-nav-padding: 0 0 16px;
871
+ @include respond('laptop') {
872
+ --tab-nav-padding: 0 0 18px;
873
+ }
866
874
  @include respond('pad_h') {
867
875
  --tab-nav-gap: 24px;
868
- }
869
-
870
- @include respond-to('pad_v') {
871
- --tab-nav-justify: flex-end;
876
+ --tab-nav-padding: 0 0 18px;
872
877
  }
873
878
 
874
- @include respond('pad_v-laptop') {
875
- --tab-nav-padding: 0 0 14px;
876
- }
877
879
  @include respond('<=pad_v') {
878
880
  border-bottom: none;
879
881
  height: auto;
880
882
  .o-icon {
881
883
  display: none;
882
884
  }
883
- .o-tab-navs-container {
884
-
885
- .o-tab-nav {
886
- line-height: 32px;
887
- }
888
- }
889
885
  }
886
+ @include respond-to('pad_v') {
887
+ --tab-nav-justify: flex-end;
888
+ width: 50%;
889
+ --tab-nav-padding: 0 0 14px;
890
+ }
891
+
890
892
  @include respond('phone') {
891
- .o-tab-nav {
892
- line-height: 2;
893
- }
893
+ --tab-nav-padding: 0 0 4px;
894
894
  }
895
895
 
896
896
  .o-icon {
@@ -924,9 +924,10 @@ const cancelActions = computed<DialogActionT[]>(() => {
924
924
  display: table;
925
925
 
926
926
  th {
927
- text-align: center;
927
+ text-align: left;
928
928
  border: none;
929
929
  --o-color-control3-light: transparent;
930
+ padding-left: calc(17px - 0.5em);
930
931
  }
931
932
 
932
933
  tr {
@@ -1232,7 +1233,6 @@ const cancelActions = computed<DialogActionT[]>(() => {
1232
1233
  border-top: none;
1233
1234
  border-radius: var(--meeting-card-radius);
1234
1235
  transition: margin var(--o-easing-standard) var(--o-duration-s);
1235
- --copy-display: none;
1236
1236
  --icon-size: 24px;
1237
1237
  @include respond('<=pad_v') {
1238
1238
  padding: var(--o-gap-3) var(--o-gap-4);
@@ -1246,8 +1246,10 @@ const cancelActions = computed<DialogActionT[]>(() => {
1246
1246
  .title-text {
1247
1247
  color: var(--o-color-primary1);
1248
1248
  }
1249
- @include respond('>pad_v') {
1250
- --copy-display: block;
1249
+
1250
+ .copy-icon {
1251
+ visibility: visible;
1252
+ opacity: 1;
1251
1253
  }
1252
1254
  }
1253
1255
 
@@ -1274,11 +1276,26 @@ const cancelActions = computed<DialogActionT[]>(() => {
1274
1276
  background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1275
1277
 
1276
1278
  @include respond('<=pad_v') {
1277
- --copy-display: block;
1279
+ .copy-icon {
1280
+ visibility: visible;
1281
+ opacity: 1;
1282
+
1283
+ }
1278
1284
  }
1279
1285
 
1280
1286
  .o-collapse-item-header {
1281
- border-bottom: 1px solid var(--o-color-control4);
1287
+ padding-bottom: var(--o-gap-2);
1288
+ position: relative;
1289
+
1290
+ &::after {
1291
+ content: '';
1292
+ position: absolute;
1293
+ left: calc(var(--o-gap-3) + var(--icon-size));
1294
+ right: 0;
1295
+ bottom: 0;
1296
+ height: 1px;
1297
+ background-color: var(--o-color-control4);
1298
+ }
1282
1299
  }
1283
1300
  }
1284
1301
  }
@@ -1286,7 +1303,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1286
1303
  .o-collapse-item-header {
1287
1304
  border-bottom: none;
1288
1305
  padding-top: 0;
1289
- padding-bottom: var(--o-gap-4);
1306
+ padding-bottom: 0;
1290
1307
  display: flex;
1291
1308
  align-items: center;
1292
1309
  gap: var(--o-gap-4);
@@ -1389,7 +1406,11 @@ const cancelActions = computed<DialogActionT[]>(() => {
1389
1406
  display: flex;
1390
1407
  align-items: center;
1391
1408
  font-weight: 400;
1392
- @include tip1;
1409
+ font-size: 14px;
1410
+ line-height: 22px;
1411
+ @include respond('<=pad_v') {
1412
+ @include tip1;
1413
+ }
1393
1414
  @include respond('phone') {
1394
1415
  flex-direction: column;
1395
1416
  align-items: flex-start;
@@ -1433,7 +1454,8 @@ const cancelActions = computed<DialogActionT[]>(() => {
1433
1454
  .copy-icon {
1434
1455
  flex-shrink: 0;
1435
1456
  font-size: 24px;
1436
- display: var(--copy-display);
1457
+ visibility: hidden;
1458
+ opacity: 0;
1437
1459
  color: var(--o-color-info1);
1438
1460
  height: 1em;
1439
1461
  @include respond('<=laptop') {
@@ -1457,7 +1479,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1457
1479
 
1458
1480
  .o-collapse-item-body {
1459
1481
  margin-bottom: 0;
1460
- padding: var(--o-gap-4) 0 0;
1482
+ padding: var(--o-gap-2) 0 0;
1461
1483
 
1462
1484
  .meeting-detail {
1463
1485
  padding-left: calc(var(--o-gap-3) + var(--icon-size));
@@ -1468,13 +1490,23 @@ const cancelActions = computed<DialogActionT[]>(() => {
1468
1490
 
1469
1491
  .meeting-btn {
1470
1492
  border-top: 1px solid var(--o-color-control4);
1471
- margin-top: var(--o-gap-5);
1493
+ margin-top: var(--o-gap-4);
1472
1494
  padding-top: var(--o-gap-4);
1473
- padding-bottom: var(--o-gap-4);
1495
+ padding-bottom: calc(var(--o-gap-4) - var(--o-gap-2));
1474
1496
  display: flex;
1475
1497
  align-items: center;
1476
1498
  justify-content: flex-end;
1477
1499
  gap: var(--o-gap-5);
1500
+ @include respond('pad_h') {
1501
+ margin-top: var(--o-gap-3);
1502
+ padding-top: var(--o-gap-3);
1503
+ padding-bottom: calc(var(--o-gap-3) - var(--o-gap-2));
1504
+ }
1505
+ @include respond('<=pad_v') {
1506
+ margin-top: var(--o-gap-2);
1507
+ padding-top: var(--o-gap-2);
1508
+ padding-bottom: 0;
1509
+ }
1478
1510
 
1479
1511
  .o-link {
1480
1512
  --link-color: inherit;
@@ -20,7 +20,7 @@ import { useScreen } from '@opendesign-plus/composables';
20
20
  import { useMeetingConfig } from './composables/useMeetingConfig';
21
21
  import OMeetingCalendarList from '@/components/meeting/components/OMeetingCalendarList.vue';
22
22
  import { formatDate } from '@/components/meeting/utils.ts';
23
- import emptyImg from '@/assets/meeting/empty.png';
23
+ import emptyDefaultImg from '@/assets/meeting/empty.png';
24
24
 
25
25
  const props = defineProps<{
26
26
  sigName: String;
@@ -28,6 +28,8 @@ const props = defineProps<{
28
28
  getDateListRequest: any;
29
29
  getEventsListRequest: any;
30
30
  dates: String[];
31
+ emptyImg?: any;
32
+ emptyText?: string;
31
33
  }>();
32
34
  const { t, meetingTabs } = useMeetingConfig();
33
35
  const { lePadV } = useScreen();
@@ -331,9 +333,9 @@ const list = computed(() => {
331
333
  <slot name="empty">
332
334
  <OResult class="empty-result">
333
335
  <template #image>
334
- <OFigure class="img" :src="emptyImg" />
336
+ <OFigure class="img" :src="emptyImg ?? emptyDefaultImg" />
335
337
  </template>
336
- <template #description>{{ t('meeting.meetingEmptyText') }}</template>
338
+ <template #description>{{ emptyText ?? t('meeting.meetingEmptyText') }}</template>
337
339
  </OResult>
338
340
  </slot>
339
341
  </template>
@@ -372,11 +372,6 @@ const computedList = computed<any[]>(() => {
372
372
  display: none;
373
373
  }
374
374
 
375
- @include hover {
376
- .text {
377
- color: var(--o-color-primary1);
378
- }
379
- }
380
375
  @include respond('<=pad_v') {
381
376
  &::after {
382
377
  width: calc(100% - 2 * 16px);
@@ -409,9 +404,14 @@ const computedList = computed<any[]>(() => {
409
404
 
410
405
  .o-collapse-item-header {
411
406
  align-items: center;
412
- padding: var(--o-gap-4) var(--o-gap-5);
407
+ padding: var(--o-gap-4) var(--o-gap-4) var(--o-gap-3) var(--o-gap-4);
413
408
  position: relative;
414
409
 
410
+ @include hover {
411
+ .text {
412
+ color: var(--o-color-primary1);
413
+ }
414
+ }
415
415
  @include respond('>pad_v') {
416
416
  &:hover {
417
417
  .o-collapse-item-title {
@@ -423,7 +423,7 @@ const computedList = computed<any[]>(() => {
423
423
  }
424
424
  }
425
425
  @include respond('<=pad_v') {
426
- padding: 12px 16px;
426
+ padding: var(--o-gap-4) var(--o-gap-3) var(--o-gap-2) var(--o-gap-3);
427
427
  }
428
428
 
429
429
  .o-collapse-item-title {
@@ -586,8 +586,6 @@ const computedList = computed<any[]>(() => {
586
586
  .text {
587
587
  display: block;
588
588
  font-weight: 600;
589
- min-width: 0;
590
- flex: 1;
591
589
  @include text-truncate(1);
592
590
  }
593
591
  }
@@ -174,42 +174,40 @@ defineExpose({ copyInfo });
174
174
  <style lang="scss">
175
175
  .o-meeting-detail {
176
176
  position: relative;
177
+ display: grid;
178
+ grid-template-columns: auto 1fr;
179
+ row-gap: var(--o-gap-2);
180
+ column-gap: var(--o-gap-4);
181
+
182
+ @include respond('<=pad_v') {
183
+ row-gap: var(--o-gap-1);
184
+ column-gap: var(--o-gap-1);
185
+ }
186
+
177
187
  .label-item {
178
188
  color: var(--o-color-info3);
179
- display: flex;
180
- align-items: flex-start;
189
+ display: grid;
190
+ grid-template-columns: auto 1fr;
191
+ grid-template-columns: subgrid;
192
+ grid-column: 1 / -1;
193
+ align-items: start;
181
194
  font-size: 14px;
182
- gap: var(--o-gap-2);
183
-
195
+ line-height: 22px;
184
196
  @include respond('<=pad_v') {
185
197
  font-size: 12px;
186
- gap: var(--o-gap-1);
187
- }
188
-
189
- &:not(.is-empty) {
190
- margin-bottom: var(--o-gap-2);
191
- }
192
-
193
- &:last-child {
194
- margin-bottom: 0;
198
+ line-height: 18px;
195
199
  }
196
200
 
197
201
  &.record-item {
198
- align-items: flex-start;
202
+ align-items: start;
199
203
 
200
204
  .value {
201
205
  margin-bottom: 0;
202
206
  }
203
207
  }
204
208
 
205
- &.is-en {
206
- .label {
207
- width: 6em;
208
- }
209
- }
210
-
211
209
  .label {
212
- width: 4em;
210
+ white-space: nowrap;
213
211
  flex-shrink: 0;
214
212
  display: flex;
215
213
 
@@ -222,18 +220,21 @@ defineExpose({ copyInfo });
222
220
  }
223
221
 
224
222
  .split-mark {
225
- width: 0;
226
- height: 0;
227
- opacity: 0;
228
- overflow: hidden;
223
+ display: none;
229
224
  }
230
225
 
231
226
  .more-text-wrapper {
232
- position: relative;
233
- top: -2px;
227
+ //position: relative;
228
+ //top: -2px;
234
229
  }
235
230
 
236
231
  .o-link {
232
+ font-size: 14px;
233
+ line-height: 22px;
234
+ @include respond('<=pad_v') {
235
+ font-size: 12px;
236
+ line-height: 18px;
237
+ }
237
238
  .o-link-main {
238
239
  word-wrap: break-word;
239
240
  @include text-truncate(3);
@@ -261,7 +262,7 @@ defineExpose({ copyInfo });
261
262
  }
262
263
 
263
264
  .label-item.is-empty {
264
- margin: 0;
265
+ display: none;
265
266
  }
266
267
 
267
268
  .meeting-action {
@@ -56,6 +56,8 @@ export interface MeetingCalendarPropsT {
56
56
  groupType: MeetingGroupType;
57
57
  groups: string[];
58
58
  disableFormat?: boolean; //是否禁用日期格式化
59
+ emptyImg?: any;
60
+ emptyText?: string;
59
61
  }
60
62
 
61
63
  // 会议新增、修改
package/src/i18n/en.ts CHANGED
@@ -78,7 +78,7 @@ export default {
78
78
  'meeting.meetingGroup': 'Group',
79
79
  'meeting.selectSig': 'Select a SIG.',
80
80
  'meeting.selectGroup': 'Select a Group.',
81
- 'meeting.enterEtherpad': 'Enter Etherpad.',
81
+ 'meeting.enterEtherpad': 'Enter Meeting Minutes.',
82
82
  'meeting.etherpadDesc': 'A meeting assistant for recording meeting minutes and conversations.',
83
83
  'meeting.selectDate': 'Select a date.',
84
84
  'meeting.finishMeetingConfig': 'Complete the meeting settings.',
@@ -144,18 +144,18 @@ export default {
144
144
  'meeting.version2512Banner': 'openUBMC 25.12 LTS 社区发行版正式上线',
145
145
  'meeting.sigs': 'SIG Groups',
146
146
  'meeting.groups': 'Groups',
147
- 'meeting.activityAddress': 'Address',
147
+ 'meeting.activityAddress': 'Location',
148
148
  'meeting.livePlatform': 'Live Platform',
149
149
  'meeting.meetingTopic': 'Topics',
150
150
  'meeting.eventsTitle': 'Name',
151
151
  'meeting.summitTitle': 'Name',
152
152
  'meeting.meetingDetail': 'Details',
153
- 'meeting.meetingEtherpad': 'Etherpad',
153
+ 'meeting.meetingEtherpad': 'Meeting Minutes',
154
154
  'meeting.meetingReplay': 'Playback',
155
155
  'meeting.searchSubtitlePlaceholder': 'Enter',
156
156
  'meeting.detailHalfYearMeetings': '默认显示近半年的会议。',
157
157
  'meeting.tencent': 'Tencent',
158
- 'meeting.etherpad': 'Etherpad',
158
+ 'meeting.etherpad': 'Meeting Minutes',
159
159
  'common.confirm': 'Confirm',
160
160
  'common.cancel': 'Cancel',
161
161
  'common.copySuccess': 'Copied Successfully',