@opendesign-plus-test/components 0.0.1-rc.40 → 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/dist/components/activity/OMyActivityCalendar.vue.d.ts +2 -2
- package/dist/components/activity/index.d.ts +1 -1
- package/dist/components/meeting/OMeetingCalendar.vue.d.ts +2 -2
- package/dist/components/meeting/OMyMeetingCalendar.vue.d.ts +2 -2
- package/dist/components/meeting/components/OMeetingDetail.vue.d.ts +2 -1
- package/dist/components/meeting/types.d.ts +1 -1
- package/dist/components.cjs.js +36 -36
- package/dist/components.css +1 -1
- package/dist/components.es.js +10216 -10234
- package/package.json +3 -3
- package/src/components/activity/OActivityApproval.vue +10 -16
- package/src/components/activity/OActivityForm.vue +2 -9
- package/src/components/activity/OMyActivityCalendar.vue +6 -20
- package/src/components/events/OEventsList.vue +8 -0
- package/src/components/meeting/OMeetingCalendar.vue +5 -23
- package/src/components/meeting/OMeetingForm.vue +21 -2
- package/src/components/meeting/OMyMeetingCalendar.vue +2 -7
- package/src/components/meeting/components/OMeetingCalendarList.vue +88 -74
- package/src/components/meeting/components/OMeetingDetail.vue +3 -1
- package/src/components/meeting/config.ts +1 -12
- package/src/components/meeting/types.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendesign-plus-test/components",
|
|
3
|
-
"version": "0.0.1-rc.
|
|
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/
|
|
36
|
-
"@opendesign-plus/
|
|
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:
|
|
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
|
})
|
|
@@ -140,7 +141,6 @@ const confirm = async () => {
|
|
|
140
141
|
if (!props.approveActivityRequest || !props.rejectActivityRequest) {
|
|
141
142
|
return;
|
|
142
143
|
}
|
|
143
|
-
const msg = reviewStatus.value === 1 ? t('meeting.approveReview') : t('meeting.rejectReview');
|
|
144
144
|
try {
|
|
145
145
|
loading.value = true;
|
|
146
146
|
const valid = await formRef.value?.validate();
|
|
@@ -158,12 +158,9 @@ const confirm = async () => {
|
|
|
158
158
|
message.success({
|
|
159
159
|
content: t('meeting.reviewSuccess', [currentRow.value?.title]),
|
|
160
160
|
});
|
|
161
|
-
}
|
|
161
|
+
} finally {
|
|
162
162
|
reviewVisible.value = false;
|
|
163
163
|
loading.value = false;
|
|
164
|
-
message.danger({
|
|
165
|
-
content: t('meeting.reviewFail', [currentRow.value?.title]),
|
|
166
|
-
});
|
|
167
164
|
}
|
|
168
165
|
};
|
|
169
166
|
const cancel = () => {
|
|
@@ -187,12 +184,9 @@ const confirmCancel = async () => {
|
|
|
187
184
|
message.success({
|
|
188
185
|
content: t('meeting.activityActionSuccess', [currentRow.value?.title, cancelText.value]),
|
|
189
186
|
});
|
|
190
|
-
}
|
|
187
|
+
} finally {
|
|
191
188
|
loading.value = false;
|
|
192
189
|
cancelVisible.value = false;
|
|
193
|
-
message.danger({
|
|
194
|
-
content: t('meeting.activityActionFail', [currentRow.value?.title, cancelText.value]),
|
|
195
|
-
});
|
|
196
190
|
}
|
|
197
191
|
}
|
|
198
192
|
};
|
|
@@ -510,7 +504,7 @@ const reviewActions = computed<DialogActionT[]>(() => {
|
|
|
510
504
|
:show="expanded.includes(act.id)"
|
|
511
505
|
:data="act"
|
|
512
506
|
:ref="(insRef) => getDetailRefs(insRef, act.id)"
|
|
513
|
-
page="
|
|
507
|
+
:page="CalendarDataType.APPROVAL"
|
|
514
508
|
/>
|
|
515
509
|
</div>
|
|
516
510
|
</OCollapseItem>
|
|
@@ -723,8 +717,8 @@ const reviewActions = computed<DialogActionT[]>(() => {
|
|
|
723
717
|
}
|
|
724
718
|
}
|
|
725
719
|
|
|
726
|
-
.pagination {
|
|
727
|
-
margin-top:
|
|
720
|
+
.pagination, .pagination-wrapper {
|
|
721
|
+
margin-top: var(--o-gap-6);
|
|
728
722
|
display: flex;
|
|
729
723
|
align-items: center;
|
|
730
724
|
justify-content: flex-end;
|
|
@@ -310,13 +310,6 @@ const confirm = async (val: boolean) => {
|
|
|
310
310
|
});
|
|
311
311
|
close();
|
|
312
312
|
emits('confirm');
|
|
313
|
-
} catch {
|
|
314
|
-
loading.value = false;
|
|
315
|
-
form.value.start_date = `${ form.value.start_date } ${ form.value.start }`;
|
|
316
|
-
form.value.end_date = `${ form.value.end_date } ${ form.value.end }`;
|
|
317
|
-
message.danger({
|
|
318
|
-
content: t('meeting.activityActionFail', [form.value.title, type.toLowerCase()]),
|
|
319
|
-
});
|
|
320
313
|
} finally {
|
|
321
314
|
loading.value = false;
|
|
322
315
|
}
|
|
@@ -501,7 +494,7 @@ defineExpose({
|
|
|
501
494
|
|
|
502
495
|
.time-config {
|
|
503
496
|
width: 100%;
|
|
504
|
-
background-color: color-mix(in srgb, var(--o-color-control2-light)
|
|
497
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
|
|
505
498
|
padding: var(--o-gap-5);
|
|
506
499
|
padding-right: calc(var(--o-gap-4) + var(--o-gap-5));
|
|
507
500
|
border-radius: var(--o-radius-xs);
|
|
@@ -514,7 +507,7 @@ defineExpose({
|
|
|
514
507
|
}
|
|
515
508
|
|
|
516
509
|
.o-form-item-label {
|
|
517
|
-
flex: 0 0
|
|
510
|
+
flex: 0 0 88px;
|
|
518
511
|
}
|
|
519
512
|
}
|
|
520
513
|
}
|
|
@@ -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:
|
|
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)),
|
|
@@ -320,11 +321,6 @@ const confirm = () => {
|
|
|
320
321
|
reloadAll.value = true;
|
|
321
322
|
getList();
|
|
322
323
|
})
|
|
323
|
-
.catch(() => {
|
|
324
|
-
message.danger({
|
|
325
|
-
content: t('meeting.revokeActivityFail', [currentRow.value.title]),
|
|
326
|
-
});
|
|
327
|
-
})
|
|
328
324
|
.finally(() => {
|
|
329
325
|
revokeVisible.value = false;
|
|
330
326
|
dialogLoading.value = false;
|
|
@@ -380,11 +376,6 @@ const handleSubmitReviewItem = (val: ActivityItemT) => {
|
|
|
380
376
|
reloadAll.value = true;
|
|
381
377
|
getList();
|
|
382
378
|
})
|
|
383
|
-
.catch(() => {
|
|
384
|
-
message.danger({
|
|
385
|
-
content: t('meeting.submitReviewFail', [val.title]),
|
|
386
|
-
});
|
|
387
|
-
});
|
|
388
379
|
};
|
|
389
380
|
// 删除活动
|
|
390
381
|
const deleteVisible = ref(false);
|
|
@@ -405,11 +396,6 @@ const confirmDelete = () => {
|
|
|
405
396
|
reloadAll.value = true;
|
|
406
397
|
getList();
|
|
407
398
|
})
|
|
408
|
-
.catch(() => {
|
|
409
|
-
message.danger({
|
|
410
|
-
content: t('meeting.deleteActivityFail', [currentRow.value.title]),
|
|
411
|
-
});
|
|
412
|
-
})
|
|
413
399
|
.finally(() => {
|
|
414
400
|
deleteVisible.value = false;
|
|
415
401
|
dialogLoading.value = false;
|
|
@@ -853,7 +839,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
853
839
|
.el-calendar {
|
|
854
840
|
min-height: 460px;
|
|
855
841
|
height: calc(100% - 54px);
|
|
856
|
-
background-color: color-mix(in srgb, var(--o-color-control2-light)
|
|
842
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
|
|
857
843
|
border-radius: var(--o-radius-xs);
|
|
858
844
|
|
|
859
845
|
.el-calendar__header {
|
|
@@ -1230,7 +1216,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1230
1216
|
|
|
1231
1217
|
|
|
1232
1218
|
&.o-collapse-item-expanded {
|
|
1233
|
-
background-color: color-mix(in srgb, var(--o-color-control2-light)
|
|
1219
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
|
|
1234
1220
|
}
|
|
1235
1221
|
}
|
|
1236
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;
|
|
@@ -100,7 +100,7 @@ const getActivityData = async (date) => {
|
|
|
100
100
|
|
|
101
101
|
const getDateList = async (date) => {
|
|
102
102
|
if (props.getDateListRequest) {
|
|
103
|
-
props.getDateListRequest(date, group.value).then(res => {
|
|
103
|
+
props.getDateListRequest(date, group.value || '').then(res => {
|
|
104
104
|
dateList.value = res;
|
|
105
105
|
});
|
|
106
106
|
}
|
|
@@ -124,7 +124,7 @@ const paramGetDaysData = async (params: { date: string; type: string }) => {
|
|
|
124
124
|
return;
|
|
125
125
|
}
|
|
126
126
|
try {
|
|
127
|
-
const res = await props.getMeetingListRequest(params.date, group.value);
|
|
127
|
+
const res = await props.getMeetingListRequest(params.date, group.value, '');
|
|
128
128
|
meetingData.value = res.map((v) => {
|
|
129
129
|
return {
|
|
130
130
|
...v,
|
|
@@ -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)
|
|
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)
|
|
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)
|
|
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"
|
|
165
|
-
<
|
|
166
|
-
|
|
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
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
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
|
-
.
|
|
299
|
-
|
|
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
|
-
.
|
|
316
|
-
|
|
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)
|
|
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-
|
|
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
|
-
&.
|
|
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:
|
|
10
|
+
meeting: 'rgba(var(--o-deep-blue-6))',
|
|
22
11
|
};
|
|
23
12
|
|
|
24
13
|
export const INTERVAL_DAY = 0;
|