@opendesign-plus-test/components 0.0.1-rc.27 → 0.0.1-rc.29
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 +72 -60
- package/dist/components/meeting/OMeetingCalendar.vue.d.ts +3 -14
- package/dist/components/meeting/OMeetingForm.vue.d.ts +2 -1
- package/dist/components/meeting/OMyMeetingCalendar.vue.d.ts +5 -1
- package/dist/components/meeting/components/OMeetingCalendarList.vue.d.ts +2 -1
- package/dist/components/meeting/types.d.ts +19 -1
- package/dist/components/meeting/utils.d.ts +1 -0
- package/dist/components.cjs.js +36 -36
- package/dist/components.css +1 -1
- package/dist/components.es.js +6336 -6318
- package/package.json +1 -1
- package/src/components/activity/OActivityApproval.vue +62 -27
- package/src/components/activity/OActivityForm.vue +2 -5
- package/src/components/activity/OMyActivityCalendar.vue +66 -64
- package/src/components/common/ThFilter.vue +7 -3
- package/src/components/meeting/OMeetingCalendar.vue +45 -32
- package/src/components/meeting/OMeetingForm.vue +145 -136
- package/src/components/meeting/OMyMeetingCalendar.vue +44 -42
- package/src/components/meeting/components/OMeetingCalendarList.vue +26 -18
- package/src/components/meeting/components/OMeetingDetail.vue +38 -17
- package/src/components/meeting/types.ts +20 -1
- package/src/components/meeting/utils.ts +18 -1
- package/src/i18n/en.ts +7 -1
- package/src/i18n/zh.ts +8 -2
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { OLink } from '@opensig/opendesign';
|
|
3
3
|
import { computed, ref } from 'vue';
|
|
4
|
-
import { MeetingItemT } from '@/components/meeting/types.ts';
|
|
4
|
+
import { CalendarDataType, MeetingItemT } from '@/components/meeting/types.ts';
|
|
5
5
|
import MoreText from '@/components/common/MoreText.vue';
|
|
6
6
|
import { Locales, useI18n } from '@/i18n';
|
|
7
|
-
import { formatDate } from '@/components/meeting/utils.ts';
|
|
7
|
+
import { formatDate, getPlatformLabel } from '@/components/meeting/utils.ts';
|
|
8
8
|
|
|
9
9
|
const props = defineProps<{
|
|
10
10
|
data: MeetingItemT;
|
|
@@ -52,8 +52,8 @@ const activityInfoApprovalList = computed(() => [
|
|
|
52
52
|
]);
|
|
53
53
|
|
|
54
54
|
const columns = computed(() => {
|
|
55
|
-
if (props.data.type ===
|
|
56
|
-
if (props.page ===
|
|
55
|
+
if (props.data.type === CalendarDataType.ACTIVITY || props.data.type === CalendarDataType.EVENTS) {
|
|
56
|
+
if (props.page === CalendarDataType.APPROVAL) {
|
|
57
57
|
return activityInfoApprovalList.value;
|
|
58
58
|
}
|
|
59
59
|
return activityInfoList.value;
|
|
@@ -81,9 +81,15 @@ defineExpose({ copyInfo });
|
|
|
81
81
|
<div
|
|
82
82
|
ref="domRef"
|
|
83
83
|
class="label-item"
|
|
84
|
-
:class="`label-item_${data.id} type_${data.type} ${!data[info.key]?.length ? 'is-empty' : ''}`"
|
|
85
84
|
v-for="(info, infoIdx) in columns"
|
|
86
85
|
:key="infoIdx"
|
|
86
|
+
:class="{
|
|
87
|
+
'record-item': info.isRecord && data[info.key]?.length,
|
|
88
|
+
'link-item': info.isLink,
|
|
89
|
+
'is-empty':!data[info.key]?.length,
|
|
90
|
+
[`label-item_${data.id}`]: true,
|
|
91
|
+
[`type_${data.type}`]: true,
|
|
92
|
+
}"
|
|
87
93
|
>
|
|
88
94
|
<template v-if="data[info.key] && !info.isRecord">
|
|
89
95
|
<span class="label">{{ info.label }}<i>{{ isZh ? ':' : ':' }}</i></span>
|
|
@@ -98,18 +104,21 @@ defineExpose({ copyInfo });
|
|
|
98
104
|
>
|
|
99
105
|
{{ data[info.key] }}
|
|
100
106
|
</OLink>
|
|
107
|
+
<span v-else-if="info.key === 'platform'">{{ getPlatformLabel(data[info.key]) }}</span>
|
|
101
108
|
<span v-else class="value">
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
109
|
+
<i v-if="info.extra" class="extra">{{ data[info.extra] }}</i>
|
|
110
|
+
{{ data[info.key] || '-' }}
|
|
111
|
+
</span>
|
|
105
112
|
</template>
|
|
106
113
|
<template v-if="info.isRecord && data[info.key]?.length">
|
|
107
114
|
<span class="label">{{ info.label }}{{ isZh ? ':' : ':' }}</span>
|
|
108
|
-
<
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
115
|
+
<div>
|
|
116
|
+
<p v-for="re in data[info.key]" :key="re.create_time" class="value">
|
|
117
|
+
{{ re.reason }}
|
|
118
|
+
{{ formatDate(re.create_time, 'YYYY/MM/DD HH:mm:ss') }}
|
|
119
|
+
审核{{ re.action === 1 ? '通过' : '驳回' }}
|
|
120
|
+
</p>
|
|
121
|
+
</div>
|
|
113
122
|
</template>
|
|
114
123
|
</div>
|
|
115
124
|
</div>
|
|
@@ -131,6 +140,22 @@ defineExpose({ copyInfo });
|
|
|
131
140
|
gap: var(--o-gap-1);
|
|
132
141
|
}
|
|
133
142
|
|
|
143
|
+
&:not(.is-empty) {
|
|
144
|
+
margin-bottom: var(--o-gap-2);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
&:last-child {
|
|
148
|
+
margin-bottom: 0;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
&.record-item {
|
|
152
|
+
align-items: flex-start;
|
|
153
|
+
|
|
154
|
+
.value {
|
|
155
|
+
margin-bottom: 0;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
134
159
|
.label {
|
|
135
160
|
width: 4em;
|
|
136
161
|
flex-shrink: 0;
|
|
@@ -177,10 +202,6 @@ defineExpose({ copyInfo });
|
|
|
177
202
|
}
|
|
178
203
|
}
|
|
179
204
|
|
|
180
|
-
.label-item + .label-item {
|
|
181
|
-
margin-top: var(--o-gap-2);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
205
|
.label-item.is-empty {
|
|
185
206
|
margin: 0;
|
|
186
207
|
}
|
|
@@ -13,6 +13,8 @@ export enum CalendarDataType {
|
|
|
13
13
|
MEETING = 'meeting',
|
|
14
14
|
EVENTS = 'events',
|
|
15
15
|
SUMMIT = 'summit',
|
|
16
|
+
ACTIVITY = 'activity',
|
|
17
|
+
APPROVAL = 'approval'
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export interface CalendarOtherDataT {
|
|
@@ -36,6 +38,22 @@ export interface OptionItemT {
|
|
|
36
38
|
|
|
37
39
|
export type PlatformT = 'welink' | 'tencent';
|
|
38
40
|
|
|
41
|
+
export enum MeetingGroupType {
|
|
42
|
+
SIG = 'sig',
|
|
43
|
+
GROUP = 'group',
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface MeetingCalendarPropsT {
|
|
47
|
+
getDateListRequest: any;
|
|
48
|
+
getMeetingListRequest: any;
|
|
49
|
+
getSummitListRequest: any;
|
|
50
|
+
getSummitDatesRequest: any;
|
|
51
|
+
getEventsListRequest: any;
|
|
52
|
+
getEventsDatesRequest: any;
|
|
53
|
+
hiddenEvents?: boolean;
|
|
54
|
+
hiddenSummit?: boolean;
|
|
55
|
+
groupType: MeetingGroupType;
|
|
56
|
+
}
|
|
39
57
|
// 会议新增、修改
|
|
40
58
|
export interface MeetingPostT {
|
|
41
59
|
id?: number; // 会议id
|
|
@@ -73,7 +91,8 @@ export interface MeetingFormPropsT {
|
|
|
73
91
|
editSubMeetingRequest: any;
|
|
74
92
|
getPlatformsRequest: any;
|
|
75
93
|
getGroupsRequest: any;
|
|
76
|
-
showBtns?: boolean
|
|
94
|
+
showBtns?: boolean;
|
|
95
|
+
groupType: MeetingGroupType;
|
|
77
96
|
}
|
|
78
97
|
|
|
79
98
|
// 会议详情
|
|
@@ -101,6 +101,23 @@ export const transformSeconds = (seconds: number) => {
|
|
|
101
101
|
};
|
|
102
102
|
|
|
103
103
|
export const getConfig = (val: CalendarDataType, key: keyof meetingTabT): string => {
|
|
104
|
-
|
|
104
|
+
let value = val;
|
|
105
|
+
if (val === CalendarDataType.ACTIVITY) {
|
|
106
|
+
value = CalendarDataType.EVENTS;
|
|
107
|
+
}
|
|
108
|
+
const find: meetingTabT = MEETING_TABS.find(v => v.value === value)!;
|
|
105
109
|
return find?.[key] || '';
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export const getPlatformLabel = (platform: string) => {
|
|
113
|
+
switch (platform) {
|
|
114
|
+
case 'WELINK':
|
|
115
|
+
return 'WeLink';
|
|
116
|
+
case 'ZOOM':
|
|
117
|
+
return 'Zoom';
|
|
118
|
+
case 'TENCENT':
|
|
119
|
+
return '腾讯会议';
|
|
120
|
+
default:
|
|
121
|
+
return platform;
|
|
122
|
+
}
|
|
106
123
|
};
|
package/src/i18n/en.ts
CHANGED
|
@@ -64,7 +64,9 @@ export default {
|
|
|
64
64
|
'meeting.meetingNameTooLong': 'Enter a maximum of 128 characters.',
|
|
65
65
|
'meeting.meetingAgendaTooLong': 'Enter a maximum of 4096 characters.',
|
|
66
66
|
'meeting.meetingSig': 'SIG',
|
|
67
|
+
'meeting.meetingGroup': 'Group',
|
|
67
68
|
'meeting.selectSig': 'Select a SIG.',
|
|
69
|
+
'meeting.selectGroup': 'Select a Group.',
|
|
68
70
|
'meeting.enterEtherpad': 'Enter Etherpad.',
|
|
69
71
|
'meeting.etherpadDesc': 'A meeting assistant for recording meeting minutes and conversations.',
|
|
70
72
|
'meeting.selectDate': 'Select a date.',
|
|
@@ -79,7 +81,7 @@ export default {
|
|
|
79
81
|
'meeting.meetingAgenda': 'Content',
|
|
80
82
|
'meeting.enterMeetingAgenda': 'Enter the meeting content.',
|
|
81
83
|
'meeting.emailTooLong': 'Enter a maximum of 1020 characters for the email addresses.',
|
|
82
|
-
'meeting.enterEmail': 'Enter email addresses, separated by commas (;).',
|
|
84
|
+
'meeting.enterEmail': 'Enter email addresses, separated by commas (,) or semicolons (;).',
|
|
83
85
|
'meeting.meetingEmail': 'Email',
|
|
84
86
|
'meeting.meetingEmailDesc': 'The system automatically sends notifications to subscribed SIG members. You can include additional SIG or individual email addresses.',
|
|
85
87
|
'meeting.sigGroupEmail': 'SIG Mailing List',
|
|
@@ -118,6 +120,7 @@ export default {
|
|
|
118
120
|
'meeting.meetingTypeEvents': 'Activities',
|
|
119
121
|
'meeting.meetingTypeSummit': 'Summit',
|
|
120
122
|
'meeting.allSigs': 'All SIGs',
|
|
123
|
+
'meeting.allGroups': 'All Groups',
|
|
121
124
|
'meeting.meetingCreator': 'Organizer',
|
|
122
125
|
'meeting.meetingDate2': 'Time',
|
|
123
126
|
'meeting.meetingId': 'Meeting ID',
|
|
@@ -127,6 +130,7 @@ export default {
|
|
|
127
130
|
'meeting.version2509Banner': 'openUBMC 25.09 Available Now',
|
|
128
131
|
'meeting.version2512Banner': 'openUBMC 25.12 LTS 社区发行版正式上线',
|
|
129
132
|
'meeting.sigs': 'SIG Groups',
|
|
133
|
+
'meeting.groups': 'Groups',
|
|
130
134
|
'meeting.activityAddress': 'Address',
|
|
131
135
|
'meeting.meetingTopic': 'Topics: ',
|
|
132
136
|
'meeting.meetingDetail': 'Details',
|
|
@@ -134,6 +138,8 @@ export default {
|
|
|
134
138
|
'meeting.meetingReplay': 'Playback',
|
|
135
139
|
'meeting.searchSubtitlePlaceholder': 'Enter',
|
|
136
140
|
'meeting.detailHalfYearMeetings': '默认显示近半年的会议。',
|
|
141
|
+
'meeting.tencent': 'Tencent',
|
|
142
|
+
'meeting.etherpad': 'Etherpad',
|
|
137
143
|
'common.confirm': 'Confirm',
|
|
138
144
|
'common.cancel': 'Cancel',
|
|
139
145
|
'common.copySuccess': 'Copied Successfully',
|
package/src/i18n/zh.ts
CHANGED
|
@@ -64,8 +64,10 @@ export default {
|
|
|
64
64
|
'meeting.meetingNameTooLong': '会议名称不能超过128个字符',
|
|
65
65
|
'meeting.meetingAgendaTooLong': '会议内容不能超过4096个字符',
|
|
66
66
|
'meeting.meetingSig': '所属SIG',
|
|
67
|
+
'meeting.meetingGroup': '工作组',
|
|
67
68
|
'meeting.selectSig': '请选择所属SIG',
|
|
68
|
-
'meeting.
|
|
69
|
+
'meeting.selectGroup': '请选择工作组',
|
|
70
|
+
'meeting.enterEtherpad': '请输入会议纪要',
|
|
69
71
|
'meeting.etherpadDesc': '会议辅助工具,可以在线记录会议纪要和讨论。',
|
|
70
72
|
'meeting.selectDate': '请选择日期',
|
|
71
73
|
'meeting.finishMeetingConfig': '请完善会议配置',
|
|
@@ -79,7 +81,7 @@ export default {
|
|
|
79
81
|
'meeting.meetingAgenda': '会议内容',
|
|
80
82
|
'meeting.enterMeetingAgenda': '请输入会议内容',
|
|
81
83
|
'meeting.emailTooLong': '邮箱地址不能超过1020个字符',
|
|
82
|
-
'meeting.enterEmail': '
|
|
84
|
+
'meeting.enterEmail': '请输入电子邮件地址,多个邮件地址以“,”或“;”间隔',
|
|
83
85
|
'meeting.meetingEmail': '邮件地址',
|
|
84
86
|
'meeting.meetingEmailDesc': '默认会向已订阅SIG组成员发送会议通知也可添加其他SIG组邮件地址或个人邮件地址。',
|
|
85
87
|
'meeting.sigGroupEmail': 'SIG组邮件列表',
|
|
@@ -118,6 +120,7 @@ export default {
|
|
|
118
120
|
'meeting.meetingTypeEvents': '活动',
|
|
119
121
|
'meeting.meetingTypeSummit': '峰会',
|
|
120
122
|
'meeting.allSigs': '全部SIG组',
|
|
123
|
+
'meeting.allGroups': '全部工作组',
|
|
121
124
|
'meeting.meetingCreator': '发起人',
|
|
122
125
|
'meeting.meetingDate2': '会议时间',
|
|
123
126
|
'meeting.meetingId': '会议ID',
|
|
@@ -127,6 +130,7 @@ export default {
|
|
|
127
130
|
'meeting.version2509Banner': 'openUBMC 25.09社区发行版正式上线',
|
|
128
131
|
'meeting.version2512Banner': 'openUBMC 25.12 LTS 社区发行版正式上线',
|
|
129
132
|
'meeting.sigs': 'SIG 组',
|
|
133
|
+
'meeting.groups': '工作组',
|
|
130
134
|
'meeting.activityAddress': '活动地点',
|
|
131
135
|
'meeting.meetingTopic': '会议主题:',
|
|
132
136
|
'meeting.meetingDetail': '会议详情',
|
|
@@ -134,6 +138,8 @@ export default {
|
|
|
134
138
|
'meeting.meetingReplay': '智能回放',
|
|
135
139
|
'meeting.searchSubtitlePlaceholder': '请输入搜索内容',
|
|
136
140
|
'meeting.detailHalfYearMeetings': '默认显示近半年的会议。',
|
|
141
|
+
'meeting.tencent': '腾讯会议',
|
|
142
|
+
'meeting.etherpad': '会议纪要',
|
|
137
143
|
'common.confirm': '确认',
|
|
138
144
|
'common.cancel': '取消',
|
|
139
145
|
'common.copySuccess': '复制成功',
|