@opendesign-plus-test/components 0.0.1-rc.41 → 0.0.1-rc.42

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.41",
3
+ "version": "0.0.1-rc.42",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -32,8 +32,8 @@
32
32
  "dayjs": "^1.11.13",
33
33
  "video.js": "^8.23.7",
34
34
  "vue-dompurify-html": "^3.1.2",
35
- "@opendesign-plus/styles": "0.0.1-rc.2",
36
- "@opendesign-plus/composables": "0.0.1-rc.6"
35
+ "@opendesign-plus/composables": "0.0.1-rc.6",
36
+ "@opendesign-plus/styles": "0.0.1-rc.2"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@vitejs/plugin-vue": "^5.1.0",
@@ -19,11 +19,11 @@ import { useActivityConfig } from './composables/useActivityConfig';
19
19
  import ThFilter from '../common/ThFilter.vue';
20
20
  import OMeetingDetail from '@/components/meeting/components/OMeetingDetail.vue';
21
21
  import { useI18n } from '@/i18n';
22
+ import { CalendarDataType } from '@/components/meeting';
22
23
 
23
24
  const { t, locale } = useI18n();
24
25
  const isZh = computed(() => locale.value === 'zh');
25
- const { approvalStatusMap, statusMap } = useActivityConfig();
26
-
26
+ const { approvalStatusMap, statusMap, activityTypeMap } = useActivityConfig();
27
27
 
28
28
  const message = useMessage(null);
29
29
  const { isPhone, lePadV } = useScreen();
@@ -94,15 +94,16 @@ const getData = async () => {
94
94
  const res = await props.getTableDataRequest(paramsData);
95
95
  tableData.value = (res.data || [])
96
96
  .map((item) => {
97
- const { start_date, end_date, start, end } = item;
97
+ const { start_date, end_date, start, end, activity_type } = item;
98
98
  return [
99
99
  {
100
100
  ...item,
101
101
  time: `${ start_date }-${ end }`,
102
102
  start_date_time: `${ start_date } ${ start }`,
103
103
  end_date_time: `${ end_date } ${ end }`,
104
- type: 'activity',
104
+ type: CalendarDataType.EVENTS,
105
105
  dateRange: `${ start_date } ${ start }-${ end_date } ${ end }`,
106
+ activity_type: activityTypeMap.value.get(activity_type)?.label,
106
107
  },
107
108
  ];
108
109
  })
@@ -503,7 +504,7 @@ const reviewActions = computed<DialogActionT[]>(() => {
503
504
  :show="expanded.includes(act.id)"
504
505
  :data="act"
505
506
  :ref="(insRef) => getDetailRefs(insRef, act.id)"
506
- page="approval"
507
+ :page="CalendarDataType.APPROVAL"
507
508
  />
508
509
  </div>
509
510
  </OCollapseItem>
@@ -716,8 +717,8 @@ const reviewActions = computed<DialogActionT[]>(() => {
716
717
  }
717
718
  }
718
719
 
719
- .pagination {
720
- margin-top: 32px;
720
+ .pagination, .pagination-wrapper {
721
+ margin-top: var(--o-gap-6);
721
722
  display: flex;
722
723
  align-items: center;
723
724
  justify-content: flex-end;
@@ -494,7 +494,7 @@ defineExpose({
494
494
 
495
495
  .time-config {
496
496
  width: 100%;
497
- background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
497
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
498
498
  padding: var(--o-gap-5);
499
499
  padding-right: calc(var(--o-gap-4) + var(--o-gap-5));
500
500
  border-radius: var(--o-radius-xs);
@@ -27,7 +27,7 @@ import type { ActivityItemT, MyActivityCalendarPropsT, ParamsItemT } from './typ
27
27
  import { useScreen } from '@opendesign-plus/composables';
28
28
  import { formatDate, getDateNumber } from '../meeting/utils';
29
29
  import { useActivityConfig } from './composables/useActivityConfig';
30
- import { PageParamsT } from '../meeting/types';
30
+ import { CalendarDataType, PageParamsT } from '../meeting/types';
31
31
  import OMeetingDetail from '@/components/meeting/components/OMeetingDetail.vue';
32
32
  import { useI18n, Locales } from '@/i18n';
33
33
 
@@ -81,6 +81,7 @@ const getList = async () => {
81
81
  const res = await props.getListRequest({
82
82
  page: currentPage.value,
83
83
  size: pageSize.value,
84
+ start_date: selectedDate.value,
84
85
  } as unknown as PageParamsT);
85
86
  const tempList = (res.data || [])
86
87
  .map((item: ActivityItemT) => {
@@ -91,7 +92,7 @@ const getList = async () => {
91
92
  time: `${ start_date }-${ end }`,
92
93
  start_date_time: `${ start_date } ${ start }`,
93
94
  end_date_time: `${ end_date } ${ end }`,
94
- type: 'activity',
95
+ type: CalendarDataType.EVENTS,
95
96
  dateRange: `${ start_date } ${ start }-${ end_date } ${ end }`,
96
97
  isExpired: dayjs(`${ start_date } ${ start }`).isBefore(dayjs()),
97
98
  },
@@ -182,7 +183,7 @@ const updateScroller = () => {
182
183
 
183
184
  // -------------------- 日历 --------------------
184
185
  const calendarRef = ref();
185
- const selectedDate = ref();
186
+ const selectedDate = ref(dayjs().format('YYYY-MM-DD'));
186
187
  const allDateList = computed<string[]>(() => [...new Set(list.value.map((v) => v.start_date))].sort((a, b) => (dayjs(a).isBefore(dayjs(b)) ? -1 : 1)));
187
188
  const dateList = computed<string[]>(() =>
188
189
  [...new Set(list.value.filter((v) => !v.isExpired && !v.is_delete).map((v) => v.start_date))].sort((a, b) => (dayjs(a).isBefore(dayjs(b)) ? -1 : 1)),
@@ -838,7 +839,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
838
839
  .el-calendar {
839
840
  min-height: 460px;
840
841
  height: calc(100% - 54px);
841
- background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
842
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
842
843
  border-radius: var(--o-radius-xs);
843
844
 
844
845
  .el-calendar__header {
@@ -1215,7 +1216,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
1215
1216
 
1216
1217
 
1217
1218
  &.o-collapse-item-expanded {
1218
- background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
1219
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
1219
1220
  }
1220
1221
  }
1221
1222
 
@@ -177,6 +177,9 @@ const list = computed(() => {
177
177
  padding: var(--o-gap-5) var(--o-gap-6);
178
178
  gap: var(--o-gap-3) var(--o-gap-2);
179
179
  @include text1;
180
+ @include respond-to('<=pad_v') {
181
+ padding: var(--o-gap-3) var(--o-gap-4);
182
+ }
180
183
 
181
184
  .filter-left {
182
185
  display: flex;
@@ -227,6 +230,7 @@ const list = computed(() => {
227
230
  margin-top: var(--o-gap-6);
228
231
  @include respond-to('<=pad_v') {
229
232
  grid-template-columns: repeat(1, 1fr);
233
+ container-type: inline-size;
230
234
  }
231
235
  @include respond-to('pad_v') {
232
236
  margin-top: var(--o-gap-4);
@@ -243,6 +247,10 @@ const list = computed(() => {
243
247
  @include respond-to('<=pad_v') {
244
248
  aspect-ratio: 1 / 0.4;
245
249
  }
250
+ @container (max-width: 300px) {
251
+ height: 140px;
252
+ aspect-ratio: unset;
253
+ }
246
254
 
247
255
  .o-card-cover {
248
256
  padding: 0;
@@ -401,20 +401,6 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
401
401
  width: 100%;
402
402
  }
403
403
 
404
- .calendar-header {
405
- display: flex;
406
- align-items: center;
407
- justify-content: flex-end;
408
- gap: var(--o-gap-5);
409
- margin-bottom: var(--o-gap-5);
410
- @include respond-to('<=pad_v') {
411
- flex-direction: column-reverse;
412
- justify-content: center;
413
- gap: var(--o-gap-2);
414
- margin-bottom: var(--o-gap-3);
415
- }
416
- }
417
-
418
404
  .calendar-body {
419
405
  display: flex;
420
406
  border-radius: var(--o-radius-xs);
@@ -751,12 +737,6 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
751
737
  }
752
738
  }
753
739
  }
754
-
755
- .prev, .next {
756
- .el-calendar-day {
757
- color: var(--o-color-info3);
758
- }
759
- }
760
740
  }
761
741
 
762
742
  .detail-list {
@@ -842,7 +822,6 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
842
822
  justify-content: center;
843
823
  align-items: flex-end;
844
824
  height: 60px;
845
- border-bottom: 1px solid var(--o-color-control4);
846
825
  }
847
826
 
848
827
  .o-tab {
@@ -878,6 +857,9 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
878
857
  .o-tab-nav-anchor {
879
858
  .o-tab-nav-anchor-line {
880
859
  width: 100%;
860
+ @include respond-to('<=pad_v') {
861
+ width: 16px;
862
+ }
881
863
  }
882
864
  }
883
865
  }
@@ -606,7 +606,7 @@ defineExpose({
606
606
  </div>
607
607
  </div>
608
608
  </OFormItem>
609
- <OFormItem :label="t('meeting.meetingPlatform')" field="platform" :rules="rules.platform">
609
+ <OFormItem :label="t('meeting.meetingPlatform')" field="platform" :rules="rules.platform" class="platform-item">
610
610
  <ORadioGroup v-model="form.platform" v-if="!data" :disabled="form.is_cycle">
611
611
  <ORadio v-for="item in typeOptions" :key="item.value" :value="item.value">{{ getPlatformLabel(item.label) }}
612
612
  </ORadio>
@@ -740,8 +740,10 @@ defineExpose({
740
740
  display: flex;
741
741
  align-items: center;
742
742
  --form-label-gap-top: 0;
743
+ color: var(--o-color-info2);
743
744
  @include respond-to('<=pad_v') {
744
745
  height: fit-content;
746
+ @include text2;
745
747
  }
746
748
  }
747
749
 
@@ -749,6 +751,15 @@ defineExpose({
749
751
  margin-left: var(--o-gap-3);
750
752
  }
751
753
 
754
+ .platform-item {
755
+ align-items: center;
756
+
757
+ .o-form-item-main-wrap {
758
+ @include respond-to('<=pad_v') {
759
+ @include text2;
760
+ }
761
+ }
762
+ }
752
763
  .record-item {
753
764
  @include respond-to('<=pad_v') {
754
765
  display: flex;
@@ -792,6 +803,10 @@ defineExpose({
792
803
  font-size: 16px;
793
804
  position: relative;
794
805
  top: 2px;
806
+
807
+ svg path {
808
+ fill: currentColor;
809
+ }
795
810
  }
796
811
  }
797
812
  }
@@ -807,6 +822,10 @@ defineExpose({
807
822
  .o-svg-icon {
808
823
  font-size: 1.5em;
809
824
  }
825
+
826
+ svg path {
827
+ fill: currentColor;
828
+ }
810
829
  }
811
830
  }
812
831
 
@@ -915,7 +934,7 @@ defineExpose({
915
934
  }
916
935
 
917
936
  .repeat-config {
918
- background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
937
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
919
938
  padding: var(--o-gap-5);
920
939
  border-radius: var(--o-radius-xs);
921
940
  @include respond-to('<=pad_v') {
@@ -837,7 +837,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
837
837
  .list-calendar {
838
838
  flex-shrink: 0;
839
839
  width: 334px;
840
- background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
840
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
841
841
 
842
842
  @include respond-to('pad_h') {
843
843
  .el-calendar {
@@ -1244,7 +1244,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1244
1244
  }
1245
1245
 
1246
1246
  &.o-collapse-item-expanded {
1247
- background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%) !important;
1247
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1248
1248
  }
1249
1249
  }
1250
1250
 
@@ -1494,9 +1494,4 @@ const cancelActions = computed<DialogActionT[]>(() => {
1494
1494
  }
1495
1495
  }
1496
1496
 
1497
- [data-o-theme='dark'] .meeting-list {
1498
- .o-collapse-item-body {
1499
- background-color: rgb(43, 43, 47) !important;
1500
- }
1501
- }
1502
1497
  </style>
@@ -161,63 +161,65 @@ const computedList = computed(() => {
161
161
  <OCollapse v-else v-model="collapseNames" :style="{ '--collapse-padding': '0' }">
162
162
  <OCollapseItem v-for="(item, index) in computedList" :key="item.id" :value="item.id">
163
163
  <template #title>
164
- <div class="meet-title" :title="item.topic || item.name">
165
- <OIcon
166
- :style="{
164
+ <div class="meet-title-left">
165
+ <div class="meet-title" :title="item.topic || item.name">
166
+ <OIcon
167
+ :style="{
167
168
  backgroundColor: `${getConfig(item.type, 'color')}`
168
169
  }"
169
- >
170
- <component :is="getConfig(item.type, 'icon')" />
171
- </OIcon>
172
- <div class="text">
173
- {{ item.topic || item.name || item.title }}
174
- </div>
175
- <div class="tag-wrapper" v-if="item.is_cycle">
176
- <OTag color="primary" variant="outline">{{ t('meeting.cycle') }}</OTag>
170
+ >
171
+ <component :is="getConfig(item.type, 'icon')" />
172
+ </OIcon>
173
+ <div class="text">
174
+ {{ item.topic || item.name || item.title }}
175
+ </div>
176
+ <div class="tag-wrapper" v-if="item.is_cycle">
177
+ <OTag color="primary" variant="outline">{{ t('meeting.cycle') }}</OTag>
178
+ </div>
177
179
  </div>
178
- </div>
179
- <div class="meet-info" ref="meetInfoRef">
180
+ <div class="meet-info" ref="meetInfoRef">
180
181
  <span class="start-time">
181
182
  <span>{{ item.dateRange }}</span>
182
183
  </span>
183
- <ODivider direction="v" />
184
- <div>
185
- <template v-if="item.group_name">{{ i18n.SIG_GROUP }} {{ item.group_name }}</template>
186
- <template v-if="item.activity_type">{{ item.activity_type }}</template>
184
+ <ODivider direction="v" />
185
+ <div>
186
+ <template v-if="item.group_name">{{ i18n.SIG_GROUP }} {{ item.group_name }}</template>
187
+ <template v-if="item.activity_type">{{ item.activity_type }}</template>
188
+ </div>
187
189
  </div>
190
+ <OLink v-if="item.url" :href="item.url" target="_blank" class="jump-detail-link">
191
+ <span>{{ i18n.LEARN_MORE }}</span>
192
+ <template #suffix>
193
+ <OIcon>
194
+ <IconChevronRight />
195
+ </OIcon>
196
+ </template>
197
+ </OLink>
198
+ <OLink v-if="item.join_url" :href="item.join_url" target="_blank" class="jump-detail-link">
199
+ <span>{{ i18n.JOIN_MEETING }}</span>
200
+ <template #suffix>
201
+ <OIcon>
202
+ <IconChevronRight />
203
+ </OIcon>
204
+ </template>
205
+ </OLink>
206
+ <OLink v-if="item.content_url" :href="item.content_url" target="_blank" class="jump-detail-link">
207
+ <span>{{ i18n.DETAILS }}</span>
208
+ <template #suffix>
209
+ <OIcon>
210
+ <IconChevronRight />
211
+ </OIcon>
212
+ </template>
213
+ </OLink>
214
+ <OLink v-if="item.register_url" :href="item.register_url" target="_blank" class="jump-detail-link">
215
+ <span>{{ i18n.SIGN }}</span>
216
+ <template #suffix>
217
+ <OIcon>
218
+ <IconChevronRight />
219
+ </OIcon>
220
+ </template>
221
+ </OLink>
188
222
  </div>
189
- <OLink v-if="item.url" :href="item.url" target="_blank" class="jump-detail-link">
190
- <span>{{ i18n.LEARN_MORE }}</span>
191
- <template #suffix>
192
- <OIcon>
193
- <IconChevronRight />
194
- </OIcon>
195
- </template>
196
- </OLink>
197
- <OLink v-if="item.join_url" :href="item.join_url" target="_blank" class="jump-detail-link">
198
- <span>{{ i18n.JOIN_MEETING }}</span>
199
- <template #suffix>
200
- <OIcon>
201
- <IconChevronRight />
202
- </OIcon>
203
- </template>
204
- </OLink>
205
- <OLink v-if="item.content_url" :href="item.content_url" target="_blank" class="jump-detail-link">
206
- <span>{{ i18n.DETAILS }}</span>
207
- <template #suffix>
208
- <OIcon>
209
- <IconChevronRight />
210
- </OIcon>
211
- </template>
212
- </OLink>
213
- <OLink v-if="item.register_url" :href="item.register_url" target="_blank" class="jump-detail-link">
214
- <span>{{ i18n.SIGN }}</span>
215
- <template #suffix>
216
- <OIcon>
217
- <IconChevronRight />
218
- </OIcon>
219
- </template>
220
- </OLink>
221
223
  <OIcon @click.stop="() => copyInfo(index)" class="copy-icon">
222
224
  <IconCopy />
223
225
  </OIcon>
@@ -295,9 +297,16 @@ const computedList = computed(() => {
295
297
  }
296
298
 
297
299
  &.o-collapse-item-expanded {
298
- .copy-icon {
299
- display: inline-flex;
300
+ .o-collapse-item-header {
301
+ padding-bottom: var(--o-gap-2);
302
+
303
+ .o-collapse-item-title {
304
+ .copy-icon {
305
+ display: inline-flex;
306
+ }
307
+ }
300
308
  }
309
+
301
310
  }
302
311
  }
303
312
 
@@ -312,8 +321,10 @@ const computedList = computed(() => {
312
321
 
313
322
  @include respond-to('>pad_v') {
314
323
  &:hover {
315
- .copy-icon {
316
- display: inline-flex;
324
+ .o-collapse-item-title {
325
+ .copy-icon {
326
+ display: inline-flex;
327
+ }
317
328
  }
318
329
  }
319
330
  }
@@ -324,6 +335,28 @@ const computedList = computed(() => {
324
335
  .o-collapse-item-title {
325
336
  flex-grow: 1;
326
337
  margin-bottom: 0;
338
+ display: flex;
339
+ align-items: center;
340
+ justify-content: center;
341
+ gap: var(--o-gap-4);
342
+ padding-right: var(--o-gap-4);
343
+
344
+ .meet-title-left {
345
+ flex-grow: 1;
346
+ }
347
+
348
+ .copy-icon {
349
+ flex-shrink: 0;
350
+ display: none;
351
+
352
+ &:hover {
353
+ color: var(--o-color-primary1);
354
+ }
355
+
356
+ svg path {
357
+ fill: currentColor;
358
+ }
359
+ }
327
360
  }
328
361
 
329
362
 
@@ -349,7 +382,7 @@ const computedList = computed(() => {
349
382
  display: flex;
350
383
  color: var(--o-color-info3);
351
384
  flex-direction: column;
352
- background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
385
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
353
386
  padding: 16px 16px 16px calc(var(--icon-right) + var(--icon-size2) + var(--o-gap-5) - 12px);
354
387
  border-radius: var(--o-radius-xs);
355
388
  @include tip1;
@@ -405,7 +438,7 @@ const computedList = computed(() => {
405
438
  display: flex;
406
439
  align-items: center;
407
440
  width: calc(100% - 48px);
408
- color: var(--o-color-info1);
441
+ color: var(--o-color-info2);
409
442
  @include text2;
410
443
 
411
444
  @include respond-to('<=pad_v') {
@@ -469,26 +502,7 @@ const computedList = computed(() => {
469
502
  }
470
503
  }
471
504
 
472
- .copy-icon {
473
- position: absolute;
474
- top: 50%;
475
- transform: translateY(-50%);
476
- right: 56px;
477
- font-size: 18px;
478
- display: none;
479
505
 
480
- @include respond-to('phone') {
481
- right: 48px;
482
- }
483
-
484
- &:hover {
485
- color: var(--o-color-primary1);
486
- }
487
-
488
- svg path {
489
- fill: currentColor;
490
- }
491
- }
492
506
 
493
507
  }
494
508
  }
@@ -10,6 +10,7 @@ const props = defineProps<{
10
10
  data: MeetingItemT;
11
11
  from?: string;
12
12
  show: boolean;
13
+ page?: CalendarDataType
13
14
  }>();
14
15
  const { t, getPlatformLabel } = useMeetingConfig();
15
16
 
@@ -57,6 +58,7 @@ const activityInfoApprovalList = computed(() => {
57
58
  });
58
59
 
59
60
  const columns = computed(() => {
61
+ console.log(props.page);
60
62
  if (props.data.type === CalendarDataType.EVENTS) {
61
63
  if (props.page === CalendarDataType.APPROVAL) {
62
64
  return activityInfoApprovalList.value;
@@ -174,7 +176,7 @@ defineExpose({ copyInfo });
174
176
  }
175
177
  }
176
178
 
177
- &.type_activity {
179
+ &.type_events {
178
180
  .label {
179
181
  width: 6em;
180
182
  }
@@ -4,21 +4,10 @@ import IconEvent from '~icons/meeting/icon-event.svg';
4
4
  import IconMeeting from '~icons/meeting/icon-meet.svg';
5
5
  import IconSummit from '~icons/meeting/icon-summit.svg';
6
6
 
7
- const getMeetingColor = () => {
8
- if (typeof document !== 'undefined') {
9
- const deepBlue = getComputedStyle(document.documentElement)
10
- .getPropertyValue('--o-deep-blue-6')?.trim();
11
- if (deepBlue) {
12
- return 'rgba(var(--o-deep-blue-6))';
13
- }
14
- }
15
- return 'var(--o-color-primary1)';
16
- };
17
-
18
7
  export const TYPE_COLOR_MAP = {
19
8
  summit: 'rgba(var(--o-orange-6))',
20
9
  events: 'rgba(var(--o-cyan-6))',
21
- meeting: getMeetingColor(),
10
+ meeting: 'rgba(var(--o-deep-blue-6))',
22
11
  };
23
12
 
24
13
  export const INTERVAL_DAY = 0;
@@ -13,7 +13,6 @@ export enum CalendarDataType {
13
13
  MEETING = 'meeting',
14
14
  EVENTS = 'events',
15
15
  SUMMIT = 'summit',
16
- ACTIVITY = 'activity',
17
16
  APPROVAL = 'approval'
18
17
  }
19
18
 
@@ -111,6 +110,7 @@ export interface MeetingItemT extends MeetingPostT {
111
110
  time: string; // 处理一下时间范围
112
111
  cycle_sub: any[];
113
112
  live_url?: string;
113
+ type: CalendarDataType;
114
114
  }
115
115
 
116
116
  export interface PageParamsT {