@opendesign-plus-test/components 0.0.1-rc.29 → 0.0.1-rc.30
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/chunk-OElCookieNotice.cjs.js +1 -1
- package/dist/chunk-OElCookieNotice.es.js +11 -9
- package/dist/components.cjs.js +38 -38
- package/dist/components.css +1 -1
- package/dist/components.es.js +4345 -4306
- package/package.json +1 -1
- package/src/components/activity/OActivityForm.vue +1 -1
- package/src/components/activity/OMyActivityCalendar.vue +7 -6
- package/src/components/activity/config.ts +2 -2
- package/src/components/meeting/OMeetingCalendar.vue +4 -3
- package/src/components/meeting/OMeetingForm.vue +1 -1
- package/src/components/meeting/components/OMeetingCalendarList.vue +60 -31
- package/src/components/meeting/components/OMeetingDetail.vue +3 -3
- package/src/i18n/en.ts +1 -0
- package/src/i18n/zh.ts +1 -0
package/package.json
CHANGED
|
@@ -183,7 +183,7 @@ const rules = ref<Record<string, RulesT[]>>({
|
|
|
183
183
|
}],
|
|
184
184
|
email_list: [{
|
|
185
185
|
validator: (value: string) => {
|
|
186
|
-
const str = value.replaceAll(' ', '') || '';
|
|
186
|
+
const str = value.replaceAll(' ', '').replaceAll(',', ';') || '';
|
|
187
187
|
if (str.length) {
|
|
188
188
|
if (str.length > 1020) {
|
|
189
189
|
return {
|
|
@@ -866,22 +866,23 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
866
866
|
.el-calendar__body {
|
|
867
867
|
.el-calendar-table {
|
|
868
868
|
width: 100%;
|
|
869
|
-
tr {
|
|
870
|
-
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%) !important;
|
|
871
|
-
}
|
|
872
869
|
|
|
873
870
|
th {
|
|
874
871
|
text-align: center;
|
|
875
|
-
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%) !important;
|
|
876
872
|
border: none;
|
|
873
|
+
--o-color-control3-light: transparent;
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
tr {
|
|
877
|
+
--o-color-fill2: transparent;
|
|
877
878
|
}
|
|
878
879
|
|
|
879
880
|
td {
|
|
880
|
-
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%) !important;
|
|
881
881
|
border: none;
|
|
882
882
|
text-align: center;
|
|
883
883
|
transition: none;
|
|
884
884
|
padding: 0;
|
|
885
|
+
background-color: transparent !important;
|
|
885
886
|
|
|
886
887
|
.el-calendar-day {
|
|
887
888
|
padding: 0;
|
|
@@ -1251,7 +1252,6 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1251
1252
|
align-items: flex-start;
|
|
1252
1253
|
gap: var(--o-gap-3);
|
|
1253
1254
|
width: 100%;
|
|
1254
|
-
margin-bottom: var(--o-gap-2);
|
|
1255
1255
|
@include respond-to('phone') {
|
|
1256
1256
|
flex-grow: 1;
|
|
1257
1257
|
width: 100%;
|
|
@@ -1359,6 +1359,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1359
1359
|
align-items: center;
|
|
1360
1360
|
padding-left: calc(var(--o-gap-3) + var(--icon-size));
|
|
1361
1361
|
gap: var(--o-gap-4);
|
|
1362
|
+
margin-top: var(--o-gap-2);
|
|
1362
1363
|
width: 100%;
|
|
1363
1364
|
|
|
1364
1365
|
.o-link {
|
|
@@ -102,14 +102,14 @@ export const approvalStatusMap = new Map([
|
|
|
102
102
|
[
|
|
103
103
|
'rejected',
|
|
104
104
|
{
|
|
105
|
-
label: '
|
|
105
|
+
label: '已驳回',
|
|
106
106
|
value: 'rejected',
|
|
107
107
|
},
|
|
108
108
|
],
|
|
109
109
|
[
|
|
110
110
|
'approved',
|
|
111
111
|
{
|
|
112
|
-
label: '
|
|
112
|
+
label: '已通过',
|
|
113
113
|
value: 'approved',
|
|
114
114
|
},
|
|
115
115
|
],
|
|
@@ -90,6 +90,8 @@ const getActivityData = async (date) => {
|
|
|
90
90
|
return {
|
|
91
91
|
...v,
|
|
92
92
|
type: 'activity',
|
|
93
|
+
start_date_time: `${ formatDate(v.start_date) } ${ v.start }`,
|
|
94
|
+
end_date_time: `${ formatDate(v.end_date) } ${ v.end }`,
|
|
93
95
|
};
|
|
94
96
|
});
|
|
95
97
|
} else {
|
|
@@ -144,12 +146,11 @@ const paramGetDaysData = async (params: { date: string; type: string }) => {
|
|
|
144
146
|
}
|
|
145
147
|
};
|
|
146
148
|
|
|
147
|
-
|
|
148
149
|
const renderData = computed(() => {
|
|
149
150
|
return [
|
|
150
151
|
...meetingData.value.filter((v) => !sig.value || v.group_name === sig.value),
|
|
151
|
-
...eventsData.value.filter(v => v.dates
|
|
152
|
-
...summitData.value.filter(v => v.dates
|
|
152
|
+
...eventsData.value.filter(v => (!dayjs(v.start_date).isAfter(dayjs(currentDay.value)) && !dayjs(currentDay.value).isAfter(dayjs(v.end_date))) || v.dates?.includes(currentDay.value)),
|
|
153
|
+
...summitData.value.filter(v => v.dates?.includes(currentDay.value)),
|
|
153
154
|
].filter((v) => {
|
|
154
155
|
if (tabType.value === 'all') {
|
|
155
156
|
return true;
|
|
@@ -200,7 +200,7 @@ const rules = computed(() => {
|
|
|
200
200
|
if (props.isEdit) {
|
|
201
201
|
return {};
|
|
202
202
|
}
|
|
203
|
-
const str = value.replaceAll(' ', '') || '';
|
|
203
|
+
const str = value.replaceAll(' ', '').replaceAll(',', ';') || '';
|
|
204
204
|
if (str.length) {
|
|
205
205
|
if (str.length > 1020) {
|
|
206
206
|
return {
|
|
@@ -15,6 +15,7 @@ import { CYCLE_TYPE_OPTIONS, INTERVAL_DAY, INTERVAL_MONTH, INTERVAL_WEEK } from
|
|
|
15
15
|
|
|
16
16
|
import { formatDate, getConfig, getPointStr } from '../utils.ts';
|
|
17
17
|
import { useI18n } from '@/i18n';
|
|
18
|
+
import { acticityTypeMap } from '@/components/activity/config.ts';
|
|
18
19
|
|
|
19
20
|
const props = withDefaults(defineProps<{
|
|
20
21
|
list: MeetingItemT[];
|
|
@@ -42,6 +43,7 @@ const i18n = computed(() => {
|
|
|
42
43
|
LEARN_MORE: t('common.seeMore'),
|
|
43
44
|
JOIN_MEETING: t('meeting.joinMeeting'),
|
|
44
45
|
SIGN: t('meeting.sign'),
|
|
46
|
+
DETAILS: t('meeting.detail'),
|
|
45
47
|
};
|
|
46
48
|
});
|
|
47
49
|
|
|
@@ -83,6 +85,21 @@ const computedList = computed(() => {
|
|
|
83
85
|
return props.list.map((v) => {
|
|
84
86
|
const type = v.type;
|
|
85
87
|
let dateRange = '';
|
|
88
|
+
if (['activity'].includes(type)) {
|
|
89
|
+
let activity_type = acticityTypeMap.get(v.activity_type)?.label;
|
|
90
|
+
if (v.end_date === v.start_date) {
|
|
91
|
+
return {
|
|
92
|
+
...v,
|
|
93
|
+
activity_type,
|
|
94
|
+
dateRange: `${ formatDate(v.start_date) } ${ v.start }-${ v.end }`,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
...v,
|
|
99
|
+
activity_type,
|
|
100
|
+
dateRange: `${ formatDate(v.start_date) } ${ v.start }-${ formatDate(v.end_date) } ${ v.end }`,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
86
103
|
if (['events', 'summit'].includes(type)) {
|
|
87
104
|
dateRange = `${ formatDate(v.start_date, 'YYYY/MM/DD HH:mm') } ${ formatDate(v.end_date, 'YYYY/MM/DD HH:mm') }`;
|
|
88
105
|
return {
|
|
@@ -168,7 +185,7 @@ const computedList = computed(() => {
|
|
|
168
185
|
<component :is="getConfig(item.type, 'icon')" />
|
|
169
186
|
</OIcon>
|
|
170
187
|
<div class="text">
|
|
171
|
-
{{ item.topic || item.name }}
|
|
188
|
+
{{ item.topic || item.name || item.title }}
|
|
172
189
|
</div>
|
|
173
190
|
<div class="tag-wrapper" v-if="item.is_cycle">
|
|
174
191
|
<OTag color="primary" variant="outline">{{ t('meeting.cycle') }}</OTag>
|
|
@@ -200,7 +217,15 @@ const computedList = computed(() => {
|
|
|
200
217
|
</OIcon>
|
|
201
218
|
</template>
|
|
202
219
|
</OLink>
|
|
203
|
-
<OLink v-if="item.
|
|
220
|
+
<OLink v-if="item.content_url" :href="item.content_url" target="_blank" class="jump-detail-link">
|
|
221
|
+
<span>{{ i18n.DETAILS }}</span>
|
|
222
|
+
<template #suffix>
|
|
223
|
+
<OIcon>
|
|
224
|
+
<IconChevronRight />
|
|
225
|
+
</OIcon>
|
|
226
|
+
</template>
|
|
227
|
+
</OLink>
|
|
228
|
+
<OLink v-if="item.register_url" :href="item.register_url" target="_blank" class="jump-detail-link">
|
|
204
229
|
<span>{{ i18n.SIGN }}</span>
|
|
205
230
|
<template #suffix>
|
|
206
231
|
<OIcon>
|
|
@@ -324,12 +349,44 @@ const computedList = computed(() => {
|
|
|
324
349
|
}
|
|
325
350
|
|
|
326
351
|
.o-collapse-item-body {
|
|
327
|
-
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
|
|
328
352
|
margin-bottom: 0;
|
|
353
|
+
padding: 0 12px 16px 12px;
|
|
329
354
|
|
|
330
355
|
a {
|
|
331
356
|
word-break: break-all;
|
|
332
357
|
}
|
|
358
|
+
|
|
359
|
+
.calendar-info {
|
|
360
|
+
display: flex;
|
|
361
|
+
color: var(--o-color-info3);
|
|
362
|
+
flex-direction: column;
|
|
363
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
|
|
364
|
+
padding: 16px 16px 16px calc(var(--icon-right) + var(--icon-size2) + var(--o-gap-5) - 12px);
|
|
365
|
+
border-radius: var(--o-radius-xs);
|
|
366
|
+
@include tip1;
|
|
367
|
+
|
|
368
|
+
@include respond-to('<=pad_v') {
|
|
369
|
+
padding: 16px 16px 16px calc(var(--icon-right) + var(--icon-size2) + 16px - 12px);
|
|
370
|
+
|
|
371
|
+
}
|
|
372
|
+
@include respond-to('phone') {
|
|
373
|
+
padding: 12px 16px;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
.info-item {
|
|
377
|
+
display: flex;
|
|
378
|
+
margin-top: 8px;
|
|
379
|
+
|
|
380
|
+
.item-title {
|
|
381
|
+
min-width: 110px;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.info-item:first-child {
|
|
386
|
+
margin-top: 0;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
333
390
|
}
|
|
334
391
|
|
|
335
392
|
.jump-detail-link {
|
|
@@ -436,34 +493,6 @@ const computedList = computed(() => {
|
|
|
436
493
|
}
|
|
437
494
|
}
|
|
438
495
|
|
|
439
|
-
.calendar-info {
|
|
440
|
-
display: flex;
|
|
441
|
-
color: var(--o-color-info3);
|
|
442
|
-
flex-direction: column;
|
|
443
|
-
padding: 16px 16px 16px calc(var(--icon-right) + var(--icon-size2) + var(--o-gap-5));
|
|
444
|
-
@include tip1;
|
|
445
|
-
|
|
446
|
-
@include respond-to('<=pad_v') {
|
|
447
|
-
padding: 16px 16px 16px calc(var(--icon-right) + var(--icon-size2) + 16px);
|
|
448
|
-
|
|
449
|
-
}
|
|
450
|
-
@include respond-to('phone') {
|
|
451
|
-
padding: 12px 16px;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
.info-item {
|
|
455
|
-
display: flex;
|
|
456
|
-
margin-top: 8px;
|
|
457
|
-
|
|
458
|
-
.item-title {
|
|
459
|
-
min-width: 110px;
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
.info-item:first-child {
|
|
464
|
-
margin-top: 0;
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
496
|
}
|
|
468
497
|
}
|
|
469
498
|
|
|
@@ -33,8 +33,8 @@ const activityInfoList = computed(() =>
|
|
|
33
33
|
{ label: '起始日期', key: 'start_date_time' },
|
|
34
34
|
{ label: '结束日期', key: 'end_date_time' },
|
|
35
35
|
{ label: '报名截止时间', key: 'register_end_date' },
|
|
36
|
-
{ label: '活动详情地址', key: 'content_url', isLink: true },
|
|
37
36
|
{ label: '活动地点', key: 'address' },
|
|
37
|
+
{ label: '活动详情地址', key: 'content_url', isLink: true },
|
|
38
38
|
{ label: '活动审批人', key: 'approver' },
|
|
39
39
|
{ label: '审核备注', key: 'approve_record', isRecord: true },
|
|
40
40
|
].slice(0, props.from === 'home' ? 4 : 7),
|
|
@@ -92,7 +92,7 @@ defineExpose({ copyInfo });
|
|
|
92
92
|
}"
|
|
93
93
|
>
|
|
94
94
|
<template v-if="data[info.key] && !info.isRecord">
|
|
95
|
-
<span class="label">{{ info.label }}
|
|
95
|
+
<span class="label">{{ info.label }}</span>
|
|
96
96
|
<MoreText :show="show" v-if="info.ellipsis" :text="data[info.key] || '-'" />
|
|
97
97
|
<OLink
|
|
98
98
|
v-else-if="info.isLink"
|
|
@@ -111,7 +111,7 @@ defineExpose({ copyInfo });
|
|
|
111
111
|
</span>
|
|
112
112
|
</template>
|
|
113
113
|
<template v-if="info.isRecord && data[info.key]?.length">
|
|
114
|
-
<span class="label">{{ info.label }}
|
|
114
|
+
<span class="label">{{ info.label }}</span>
|
|
115
115
|
<div>
|
|
116
116
|
<p v-for="re in data[info.key]" :key="re.create_time" class="value">
|
|
117
117
|
{{ re.reason }}
|
package/src/i18n/en.ts
CHANGED
|
@@ -49,6 +49,7 @@ export default {
|
|
|
49
49
|
'meeting.cycle': 'Recurrence',
|
|
50
50
|
'meeting.joinMeeting': 'Join',
|
|
51
51
|
'meeting.sign': 'Sign Up',
|
|
52
|
+
'meeting.detail': 'View Details',
|
|
52
53
|
'meeting.meetingSummary': 'Minutes',
|
|
53
54
|
'meeting.viewRecord': 'Playback',
|
|
54
55
|
'meeting.editMeeting': 'Modify',
|
package/src/i18n/zh.ts
CHANGED