@opendesign-plus-test/components 0.0.1-rc.27 → 0.0.1-rc.28

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.
@@ -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 === 'activity') {
56
- if (props.page === 'approval') {
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
- <i v-if="info.extra" class="extra">{{ data[info.extra] }}</i>
103
- {{ data[info.key] || '-' }}
104
- </span>
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
- <p v-for="re in data[info.key]" :key="re.create_time" class="value">
109
- {{ re.reason }}&nbsp;&nbsp;
110
- {{ formatDate(re.create_time, 'YYYY/MM/DD HH:mm:ss') }}
111
- 审核{{ re.action === 1 ? '通过' : '驳回' }}
112
- </p>
115
+ <div>
116
+ <p v-for="re in data[info.key]" :key="re.create_time" class="value">
117
+ {{ re.reason }}&nbsp;&nbsp;
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 {
@@ -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
- const find: meetingTabT = MEETING_TABS.find(v => v.value === val)!;
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
@@ -79,7 +79,7 @@ export default {
79
79
  'meeting.meetingAgenda': 'Content',
80
80
  'meeting.enterMeetingAgenda': 'Enter the meeting content.',
81
81
  'meeting.emailTooLong': 'Enter a maximum of 1020 characters for the email addresses.',
82
- 'meeting.enterEmail': 'Enter email addresses, separated by commas (;).',
82
+ 'meeting.enterEmail': 'Enter email addresses, separated by commas (,) or semicolons (;).',
83
83
  'meeting.meetingEmail': 'Email',
84
84
  'meeting.meetingEmailDesc': 'The system automatically sends notifications to subscribed SIG members. You can include additional SIG or individual email addresses.',
85
85
  'meeting.sigGroupEmail': 'SIG Mailing List',
@@ -134,6 +134,8 @@ export default {
134
134
  'meeting.meetingReplay': 'Playback',
135
135
  'meeting.searchSubtitlePlaceholder': 'Enter',
136
136
  'meeting.detailHalfYearMeetings': '默认显示近半年的会议。',
137
+ 'meeting.tencent': 'Tencent',
138
+ 'meeting.etherpad': 'Etherpad',
137
139
  'common.confirm': 'Confirm',
138
140
  'common.cancel': 'Cancel',
139
141
  'common.copySuccess': 'Copied Successfully',
package/src/i18n/zh.ts CHANGED
@@ -65,7 +65,7 @@ export default {
65
65
  'meeting.meetingAgendaTooLong': '会议内容不能超过4096个字符',
66
66
  'meeting.meetingSig': '所属SIG',
67
67
  'meeting.selectSig': '请选择所属SIG',
68
- 'meeting.enterEtherpad': '请输入Etherpad',
68
+ 'meeting.enterEtherpad': '请输入会议纪要',
69
69
  'meeting.etherpadDesc': '会议辅助工具,可以在线记录会议纪要和讨论。',
70
70
  'meeting.selectDate': '请选择日期',
71
71
  'meeting.finishMeetingConfig': '请完善会议配置',
@@ -79,7 +79,7 @@ export default {
79
79
  'meeting.meetingAgenda': '会议内容',
80
80
  'meeting.enterMeetingAgenda': '请输入会议内容',
81
81
  'meeting.emailTooLong': '邮箱地址不能超过1020个字符',
82
- 'meeting.enterEmail': '请输入邮件地址,多个邮件地址以“;”间隔',
82
+ 'meeting.enterEmail': '请输入电子邮件地址,多个邮件地址以“,”或“;”间隔',
83
83
  'meeting.meetingEmail': '邮件地址',
84
84
  'meeting.meetingEmailDesc': '默认会向已订阅SIG组成员发送会议通知也可添加其他SIG组邮件地址或个人邮件地址。',
85
85
  'meeting.sigGroupEmail': 'SIG组邮件列表',
@@ -134,6 +134,8 @@ export default {
134
134
  'meeting.meetingReplay': '智能回放',
135
135
  'meeting.searchSubtitlePlaceholder': '请输入搜索内容',
136
136
  'meeting.detailHalfYearMeetings': '默认显示近半年的会议。',
137
+ 'meeting.tencent': '腾讯会议',
138
+ 'meeting.etherpad': '会议纪要',
137
139
  'common.confirm': '确认',
138
140
  'common.cancel': '取消',
139
141
  'common.copySuccess': '复制成功',