@opendesign-plus-test/components 0.0.1-rc.34 → 0.0.1-rc.36
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 +60 -54
- package/dist/components/OHeaderUser.vue.d.ts +2 -0
- package/dist/components/activity/composables/useActivityConfig.d.ts +17 -0
- package/dist/components/activity/config.d.ts +0 -14
- package/dist/components/header/OHeader.vue.d.ts +8 -2
- package/dist/components/header/OHeaderMobile.vue.d.ts +171 -0
- package/dist/components/header/components/HeaderContent.vue.d.ts +8 -1
- package/dist/components/header/components/HeaderNav.vue.d.ts +13 -1
- package/dist/components/header/components/HeaderNavMobile.vue.d.ts +33 -0
- package/dist/components/header/index.d.ts +128 -5
- package/dist/components/header/types.d.ts +80 -0
- package/dist/components/meeting/OMeetingCalendar.vue.d.ts +1 -0
- package/dist/components/meeting/composables/useMeetingConfig.d.ts +14 -0
- package/dist/components/meeting/config.d.ts +1 -16
- package/dist/components/meeting/types.d.ts +2 -0
- package/dist/components/meeting/utils.d.ts +1 -15
- package/dist/components.cjs.js +39 -39
- package/dist/components.css +1 -1
- package/dist/components.es.js +10107 -10368
- package/package.json +2 -2
- package/src/components/OHeaderUser.vue +4 -4
- package/src/components/OSourceCode.vue +1 -1
- package/src/components/activity/OActivityApproval.vue +3 -4
- package/src/components/activity/OActivityForm.vue +7 -6
- package/src/components/activity/OMyActivityCalendar.vue +11 -12
- package/src/components/activity/composables/useActivityConfig.ts +143 -0
- package/src/components/activity/config.ts +1 -141
- package/src/components/header/OHeader.vue +6 -24
- package/src/components/header/OHeaderMobile.vue +177 -0
- package/src/components/header/components/HeaderContent.vue +190 -11
- package/src/components/header/components/HeaderNav.vue +3 -5
- package/src/components/header/components/HeaderNavMobile.vue +377 -0
- package/src/components/header/index.ts +5 -5
- package/src/components/header/types.ts +91 -0
- package/src/components/meeting/OMeetingCalendar.vue +41 -45
- package/src/components/meeting/OMeetingForm.vue +11 -18
- package/src/components/meeting/OMyMeetingCalendar.vue +9 -9
- package/src/components/meeting/OSigMeetingCalendar.vue +5 -6
- package/src/components/meeting/components/OMeetingCalendarList.vue +28 -37
- package/src/components/meeting/components/OMeetingDetail.vue +13 -12
- package/src/components/meeting/components/OSigMeetingAside.vue +4 -1
- package/src/components/meeting/composables/useMeetingConfig.ts +108 -0
- package/src/components/meeting/config.ts +13 -75
- package/src/components/meeting/index.ts +1 -1
- package/src/components/meeting/types.ts +2 -0
- package/src/components/meeting/utils.ts +3 -56
- package/src/i18n/en.ts +20 -17
- package/src/i18n/zh.ts +5 -2
- package/dist/components/header/OHeaderMoblie.vue.d.ts +0 -33
- package/dist/components/header/components/HeaderNavMoblie.vue.d.ts +0 -17
- package/dist/components/header/components/HeaderUbmcNav.vue.d.ts +0 -2
- package/src/components/header/OHeaderMoblie.vue +0 -152
- package/src/components/header/components/HeaderNavMoblie.vue +0 -346
- package/src/components/header/components/HeaderUbmcNav.vue +0 -540
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.36",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"video.js": "^8.23.7",
|
|
34
34
|
"vue-dompurify-html": "^3.1.2",
|
|
35
35
|
"@opendesign-plus/styles": "0.0.1-rc.2",
|
|
36
|
-
"@opendesign-plus/composables": "0.0.1-rc.
|
|
36
|
+
"@opendesign-plus/composables": "npm:@opendesign-plus-test/composables@0.0.1-rc.5"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@vitejs/plugin-vue": "^5.1.0",
|
|
@@ -31,6 +31,7 @@ interface UserPropsT {
|
|
|
31
31
|
noticeTotal?: number;
|
|
32
32
|
userInfo?: UserInfoT;
|
|
33
33
|
options?: OptionsItemT[];
|
|
34
|
+
customSize?: number;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
withDefaults(defineProps<UserPropsT>(), {
|
|
@@ -39,6 +40,7 @@ withDefaults(defineProps<UserPropsT>(), {
|
|
|
39
40
|
noticeTotal: undefined,
|
|
40
41
|
userInfo: undefined,
|
|
41
42
|
options: undefined,
|
|
43
|
+
customSize: undefined,
|
|
42
44
|
});
|
|
43
45
|
|
|
44
46
|
export interface OHeaderUserEmitsT {
|
|
@@ -79,7 +81,7 @@ const jumpToPage = (val: any) => {
|
|
|
79
81
|
>
|
|
80
82
|
<div class="info-wrap hover-icon-rotate">
|
|
81
83
|
<OBadge :value="noticeTotal" :dot="true" color="danger" class="header-message user-avatar" :class="{ 'notice-not': !noticeTotal }">
|
|
82
|
-
<AppAvatar :avatar="userInfo.photo" :name="userInfo.username" :custom-size="
|
|
84
|
+
<AppAvatar :avatar="userInfo.photo" :name="userInfo.username" :custom-size="customSize" />
|
|
83
85
|
</OBadge>
|
|
84
86
|
<p class="user-account">{{ userInfo.username }}</p>
|
|
85
87
|
<OIcon class="icon">
|
|
@@ -194,7 +196,7 @@ const jumpToPage = (val: any) => {
|
|
|
194
196
|
|
|
195
197
|
<style lang="scss">
|
|
196
198
|
.user-dropdown {
|
|
197
|
-
--dropdown-list-radius: var(--o-radius-
|
|
199
|
+
--dropdown-list-radius: var(--o-radius-xs);
|
|
198
200
|
}
|
|
199
201
|
.avatar-icon {
|
|
200
202
|
font-size: 24px;
|
|
@@ -207,8 +209,6 @@ const jumpToPage = (val: any) => {
|
|
|
207
209
|
}
|
|
208
210
|
@include respond-to('<=pad_v') {
|
|
209
211
|
.user-dropdown {
|
|
210
|
-
--dropdown-list-radius: 8px;
|
|
211
|
-
|
|
212
212
|
.o-divider {
|
|
213
213
|
display: none;
|
|
214
214
|
}
|
|
@@ -38,7 +38,7 @@ const visibleChange = (val: boolean) => {
|
|
|
38
38
|
|
|
39
39
|
<template>
|
|
40
40
|
<div class="source-code">
|
|
41
|
-
<div v-if="url" class="info-wrap">
|
|
41
|
+
<div v-if="url" class="info-wrap" @click="itemChange({ url: url })">
|
|
42
42
|
<span class="title">{{ title }}</span>
|
|
43
43
|
<OIcon v-if="icon">
|
|
44
44
|
<component :is="icon" class="icon" />
|
|
@@ -15,15 +15,14 @@ import {
|
|
|
15
15
|
import { useScreen } from '@opendesign-plus/composables';
|
|
16
16
|
import { onMounted, watch, ref, reactive, computed } from 'vue';
|
|
17
17
|
import { ActivityItemT, ActivityTablePropsT, ReviewParamsT, TypeOptionT } from './types';
|
|
18
|
-
import {
|
|
18
|
+
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
22
|
|
|
23
23
|
const { t, locale } = useI18n();
|
|
24
24
|
const isZh = computed(() => locale.value === 'zh');
|
|
25
|
-
const approvalStatusMap =
|
|
26
|
-
const statusMap = getStatusMap();
|
|
25
|
+
const { approvalStatusMap, statusMap } = useActivityConfig();
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
const message = useMessage(null);
|
|
@@ -58,7 +57,7 @@ const sortTime = () => {
|
|
|
58
57
|
const statusValue = ref();
|
|
59
58
|
const statusOptions = computed<TypeOptionT[]>(() => {
|
|
60
59
|
let list: TypeOptionT[] | { label: string; value: string; }[] = [];
|
|
61
|
-
approvalStatusMap.forEach((item) => {
|
|
60
|
+
approvalStatusMap.value.forEach((item) => {
|
|
62
61
|
list.push(item);
|
|
63
62
|
});
|
|
64
63
|
return list.slice(1);
|
|
@@ -15,9 +15,10 @@ import { computed, ref, watch } from 'vue';
|
|
|
15
15
|
import { ActivityFormPropsT, ParamsItemT } from './types';
|
|
16
16
|
import { useScreen } from '@opendesign-plus/composables';
|
|
17
17
|
import { dayjs, ElDatePicker } from 'element-plus';
|
|
18
|
-
import {
|
|
18
|
+
import { WEBSITE_REGEXP } from './config';
|
|
19
19
|
import { EMAIL_REGEX } from '@/components/meeting/config.ts';
|
|
20
20
|
import { useI18n } from '@/i18n';
|
|
21
|
+
import { useActivityConfig } from './composables/useActivityConfig';
|
|
21
22
|
|
|
22
23
|
const emits = defineEmits(['confirm', 'close']);
|
|
23
24
|
|
|
@@ -25,7 +26,7 @@ const message = useMessage(null);
|
|
|
25
26
|
const { lePadV } = useScreen();
|
|
26
27
|
const { t } = useI18n();
|
|
27
28
|
const $t = t;
|
|
28
|
-
const
|
|
29
|
+
const { activityTypeMap } = useActivityConfig();
|
|
29
30
|
|
|
30
31
|
interface TypeOptionT {
|
|
31
32
|
label: string;
|
|
@@ -226,7 +227,7 @@ const approverList = computed(() => {
|
|
|
226
227
|
|
|
227
228
|
const typeValue = ref<string>('');
|
|
228
229
|
const typeOptions = ref<TypeOptionT[]>([]); // 活动类型
|
|
229
|
-
|
|
230
|
+
activityTypeMap.value.forEach((item) => {
|
|
230
231
|
typeOptions.value.push(item);
|
|
231
232
|
});
|
|
232
233
|
const changeType = (val: SelectValueT) => {
|
|
@@ -279,7 +280,7 @@ watch(
|
|
|
279
280
|
organizer,
|
|
280
281
|
} as ParamsItemT;
|
|
281
282
|
form.value = { ...params };
|
|
282
|
-
typeValue.value =
|
|
283
|
+
typeValue.value = activityTypeMap.value.get(val.activity_type)?.label;
|
|
283
284
|
form.value.start_date = `${ form.value.start_date } ${ form.value.start }`;
|
|
284
285
|
form.value.end_date = `${ form.value.end_date } ${ form.value.end }`;
|
|
285
286
|
}
|
|
@@ -305,7 +306,7 @@ const confirm = async (val: boolean) => {
|
|
|
305
306
|
await props.creatActivity?.(form.value);
|
|
306
307
|
}
|
|
307
308
|
message.success({
|
|
308
|
-
content: t('meeting.activityActionSuccess', [form.value.title, type.toLowerCase]),
|
|
309
|
+
content: t('meeting.activityActionSuccess', [form.value.title, type.toLowerCase()]),
|
|
309
310
|
});
|
|
310
311
|
close();
|
|
311
312
|
emits('confirm');
|
|
@@ -314,7 +315,7 @@ const confirm = async (val: boolean) => {
|
|
|
314
315
|
form.value.start_date = `${ form.value.start_date } ${ form.value.start }`;
|
|
315
316
|
form.value.end_date = `${ form.value.end_date } ${ form.value.end }`;
|
|
316
317
|
message.danger({
|
|
317
|
-
content: t('meeting.activityActionFail', [form.value.title, type.toLowerCase]),
|
|
318
|
+
content: t('meeting.activityActionFail', [form.value.title, type.toLowerCase()]),
|
|
318
319
|
});
|
|
319
320
|
} finally {
|
|
320
321
|
loading.value = false;
|
|
@@ -26,15 +26,14 @@ import IconEvent from '~icons/meeting/icon-event.svg';
|
|
|
26
26
|
import type { ActivityItemT, MyActivityCalendarPropsT, ParamsItemT } from './types';
|
|
27
27
|
import { useScreen } from '@opendesign-plus/composables';
|
|
28
28
|
import { formatDate, getDateNumber } from '../meeting/utils';
|
|
29
|
-
import {
|
|
29
|
+
import { useActivityConfig } from './composables/useActivityConfig';
|
|
30
30
|
import { PageParamsT } from '../meeting/types';
|
|
31
31
|
import OMeetingDetail from '@/components/meeting/components/OMeetingDetail.vue';
|
|
32
32
|
import { useI18n, Locales } from '@/i18n';
|
|
33
33
|
|
|
34
34
|
const { t, locale } = useI18n();
|
|
35
35
|
const isZh = computed(() => locale.value === Locales.ZH);
|
|
36
|
-
const statusMap =
|
|
37
|
-
const acticityTypeMap = getActicityTypeMap();
|
|
36
|
+
const { statusMap, activityTypeMap } = useActivityConfig();
|
|
38
37
|
|
|
39
38
|
const formatMonthYear = (date: string | Date) => {
|
|
40
39
|
const d = dayjs(date || new Date());
|
|
@@ -313,7 +312,7 @@ const confirm = () => {
|
|
|
313
312
|
return;
|
|
314
313
|
}
|
|
315
314
|
dialogLoading.value = true;
|
|
316
|
-
props.revokeActivityRequest(currentRow.value?.id)
|
|
315
|
+
props.revokeActivityRequest(currentRow.value?.id)
|
|
317
316
|
.then(() => {
|
|
318
317
|
message.success({
|
|
319
318
|
content: t('meeting.revokeActivitySuccess', [currentRow.value.title]),
|
|
@@ -325,7 +324,7 @@ props.revokeActivityRequest(currentRow.value?.id)
|
|
|
325
324
|
message.danger({
|
|
326
325
|
content: t('meeting.revokeActivityFail', [currentRow.value.title]),
|
|
327
326
|
});
|
|
328
|
-
})
|
|
327
|
+
})
|
|
329
328
|
.finally(() => {
|
|
330
329
|
revokeVisible.value = false;
|
|
331
330
|
dialogLoading.value = false;
|
|
@@ -373,7 +372,7 @@ const handleSubmitReviewItem = (val: ActivityItemT) => {
|
|
|
373
372
|
approver,
|
|
374
373
|
is_publish: 'true',
|
|
375
374
|
} as ParamsItemT;
|
|
376
|
-
props.editActivityRequest(val.id, params)
|
|
375
|
+
props.editActivityRequest(val.id, params)
|
|
377
376
|
.then(() => {
|
|
378
377
|
message.success({
|
|
379
378
|
content: t('meeting.submitReviewSuccess', [val.title]),
|
|
@@ -387,7 +386,7 @@ props.editActivityRequest(val.id, params)
|
|
|
387
386
|
});
|
|
388
387
|
});
|
|
389
388
|
};
|
|
390
|
-
// 删除活动
|
|
389
|
+
// 删除活动
|
|
391
390
|
const deleteVisible = ref(false);
|
|
392
391
|
const handleDeleteItem = (val: ActivityItemT) => {
|
|
393
392
|
currentRow.value = val;
|
|
@@ -398,7 +397,7 @@ const confirmDelete = () => {
|
|
|
398
397
|
return;
|
|
399
398
|
}
|
|
400
399
|
dialogLoading.value = true;
|
|
401
|
-
props.deleteActivityRequest(currentRow.value?.id)
|
|
400
|
+
props.deleteActivityRequest(currentRow.value?.id)
|
|
402
401
|
.then(() => {
|
|
403
402
|
message.success({
|
|
404
403
|
content: t('meeting.deleteActivitySuccess', [currentRow.value.title]),
|
|
@@ -415,7 +414,7 @@ props.deleteActivityRequest(currentRow.value?.id)
|
|
|
415
414
|
deleteVisible.value = false;
|
|
416
415
|
dialogLoading.value = false;
|
|
417
416
|
});
|
|
418
|
-
};
|
|
417
|
+
};
|
|
419
418
|
const cancelDelete = () => {
|
|
420
419
|
deleteVisible.value = false;
|
|
421
420
|
};
|
|
@@ -628,7 +627,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
628
627
|
<div class="act-info">
|
|
629
628
|
<span class="date-range">{{ row.dateRange }}</span>
|
|
630
629
|
<ODivider direction="v"></ODivider>
|
|
631
|
-
<span>{{
|
|
630
|
+
<span>{{ activityTypeMap.get(row.activity_type)?.label }}</span>
|
|
632
631
|
</div>
|
|
633
632
|
</div>
|
|
634
633
|
</div>
|
|
@@ -720,7 +719,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
720
719
|
</div>
|
|
721
720
|
</div>
|
|
722
721
|
</div>
|
|
723
|
-
<!-- 撤销审核弹窗 -->
|
|
722
|
+
<!-- 撤销审核弹窗 -->
|
|
724
723
|
<ODialog v-model:visible="revokeVisible" main-class="handle-dialog-active" :actions="revokeActions">
|
|
725
724
|
<template #header>{{ t('meeting.withdrawReview') }}</template>
|
|
726
725
|
<div class="dialog-content">{{ t('meeting.confirmRevokeActivity', [currentRow.title]) }}</div>
|
|
@@ -730,7 +729,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
730
729
|
<template #header>{{ t('meeting.deleteActivity') }}</template>
|
|
731
730
|
<div class="dialog-content">{{ t('meeting.confirmDeleteActivity', [currentRow.title]) }}</div>
|
|
732
731
|
</ODialog>
|
|
733
|
-
</template>
|
|
732
|
+
</template>
|
|
734
733
|
|
|
735
734
|
<style lang="scss">
|
|
736
735
|
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { computed, watch } from 'vue';
|
|
2
|
+
import { useI18n } from '@/i18n';
|
|
3
|
+
|
|
4
|
+
export const useActivityConfig = () => {
|
|
5
|
+
const { t, locale } = useI18n();
|
|
6
|
+
watch(() => locale.value, () => {
|
|
7
|
+
console.log(locale.value);
|
|
8
|
+
});
|
|
9
|
+
const activityTypeMap = computed(() => new Map([
|
|
10
|
+
[
|
|
11
|
+
1,
|
|
12
|
+
{
|
|
13
|
+
label: t('meeting.offline'),
|
|
14
|
+
value: 1,
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
[
|
|
18
|
+
2,
|
|
19
|
+
{
|
|
20
|
+
label: t('meeting.online'),
|
|
21
|
+
value: 2,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
3,
|
|
26
|
+
{
|
|
27
|
+
label: t('meeting.onlineOffline'),
|
|
28
|
+
value: 3,
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
]));
|
|
32
|
+
|
|
33
|
+
const statusMap = computed(() => new Map([
|
|
34
|
+
[
|
|
35
|
+
1,
|
|
36
|
+
{
|
|
37
|
+
id: 'draft',
|
|
38
|
+
label: t('meeting.statusDraft'),
|
|
39
|
+
text: t('meeting.statusDraft'),
|
|
40
|
+
value: 1,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
[
|
|
44
|
+
2,
|
|
45
|
+
{
|
|
46
|
+
id: 'under-review',
|
|
47
|
+
label: t('meeting.statusUnderReview'),
|
|
48
|
+
text: t('meeting.statusPending'),
|
|
49
|
+
value: 2,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
3,
|
|
54
|
+
{
|
|
55
|
+
id: 'registration',
|
|
56
|
+
label: t('meeting.statusRegistering'),
|
|
57
|
+
text: t('meeting.statusApproved'),
|
|
58
|
+
value: 3,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
4,
|
|
63
|
+
{
|
|
64
|
+
id: 'in-progress',
|
|
65
|
+
label: t('meeting.statusInProgress'),
|
|
66
|
+
text: t('meeting.statusApproved'),
|
|
67
|
+
value: 4,
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
[
|
|
71
|
+
5,
|
|
72
|
+
{
|
|
73
|
+
id: 'ended',
|
|
74
|
+
label: t('meeting.statusEnded'),
|
|
75
|
+
text: t('meeting.statusEnded'),
|
|
76
|
+
value: 5,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
[
|
|
80
|
+
6,
|
|
81
|
+
{
|
|
82
|
+
id: 'modified',
|
|
83
|
+
label: t('meeting.statusModified'),
|
|
84
|
+
text: t('meeting.statusModified'),
|
|
85
|
+
value: 6,
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
[
|
|
89
|
+
7,
|
|
90
|
+
{
|
|
91
|
+
id: 'reject',
|
|
92
|
+
label: t('meeting.statusRejected'),
|
|
93
|
+
text: t('meeting.statusRejected'),
|
|
94
|
+
value: 7,
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
]));
|
|
98
|
+
|
|
99
|
+
const approvalStatusMap = computed(() => new Map([
|
|
100
|
+
[
|
|
101
|
+
'all',
|
|
102
|
+
{
|
|
103
|
+
label: t('common.all'),
|
|
104
|
+
value: 'all',
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
[
|
|
108
|
+
'rejected',
|
|
109
|
+
{
|
|
110
|
+
label: t('meeting.statusRejected'),
|
|
111
|
+
value: 'rejected',
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
[
|
|
115
|
+
'approved',
|
|
116
|
+
{
|
|
117
|
+
label: t('meeting.statusApproved'),
|
|
118
|
+
value: 'approved',
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
[
|
|
122
|
+
'publish',
|
|
123
|
+
{
|
|
124
|
+
label: t('meeting.statusPending'),
|
|
125
|
+
value: 'publish',
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
[
|
|
129
|
+
'cancel',
|
|
130
|
+
{
|
|
131
|
+
label: t('meeting.statusCanceled'),
|
|
132
|
+
value: 'cancel',
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
]));
|
|
136
|
+
|
|
137
|
+
return {
|
|
138
|
+
t,
|
|
139
|
+
activityTypeMap,
|
|
140
|
+
statusMap,
|
|
141
|
+
approvalStatusMap,
|
|
142
|
+
};
|
|
143
|
+
};
|
|
@@ -1,141 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export const getActicityTypeMap = () => {
|
|
4
|
-
const { t } = useI18n();
|
|
5
|
-
return new Map([
|
|
6
|
-
[
|
|
7
|
-
1,
|
|
8
|
-
{
|
|
9
|
-
label: t('meeting.offline'),
|
|
10
|
-
value: 1,
|
|
11
|
-
},
|
|
12
|
-
],
|
|
13
|
-
[
|
|
14
|
-
2,
|
|
15
|
-
{
|
|
16
|
-
label: t('meeting.online'),
|
|
17
|
-
value: 2,
|
|
18
|
-
},
|
|
19
|
-
],
|
|
20
|
-
[
|
|
21
|
-
3,
|
|
22
|
-
{
|
|
23
|
-
label: t('meeting.onlineOffline'),
|
|
24
|
-
value: 3,
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
]);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const WEBSITE_REGEXP = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w ./?%&=-]*)?$/;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
export const getStatusMap = () => {
|
|
34
|
-
const { t } = useI18n();
|
|
35
|
-
return new Map([
|
|
36
|
-
[
|
|
37
|
-
1,
|
|
38
|
-
{
|
|
39
|
-
id: 'draft',
|
|
40
|
-
label: t('meeting.statusDraft'),
|
|
41
|
-
text: t('meeting.statusDraft'),
|
|
42
|
-
value: 1,
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
[
|
|
46
|
-
2,
|
|
47
|
-
{
|
|
48
|
-
id: 'under-review',
|
|
49
|
-
label: t('meeting.statusUnderReview'),
|
|
50
|
-
text: t('meeting.statusPending'),
|
|
51
|
-
value: 2,
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
[
|
|
55
|
-
3,
|
|
56
|
-
{
|
|
57
|
-
id: 'registration',
|
|
58
|
-
label: t('meeting.statusRegistering'),
|
|
59
|
-
text: t('meeting.statusApproved'),
|
|
60
|
-
value: 3,
|
|
61
|
-
},
|
|
62
|
-
],
|
|
63
|
-
[
|
|
64
|
-
4,
|
|
65
|
-
{
|
|
66
|
-
id: 'in-progress',
|
|
67
|
-
label: t('meeting.statusInProgress'),
|
|
68
|
-
text: t('meeting.statusApproved'),
|
|
69
|
-
value: 4,
|
|
70
|
-
},
|
|
71
|
-
],
|
|
72
|
-
[
|
|
73
|
-
5,
|
|
74
|
-
{
|
|
75
|
-
id: 'ended',
|
|
76
|
-
label: t('meeting.statusEnded'),
|
|
77
|
-
text: t('meeting.statusEnded'),
|
|
78
|
-
value: 5,
|
|
79
|
-
},
|
|
80
|
-
],
|
|
81
|
-
[
|
|
82
|
-
6,
|
|
83
|
-
{
|
|
84
|
-
id: 'modified',
|
|
85
|
-
label: t('meeting.statusModified'),
|
|
86
|
-
text: t('meeting.statusModified'),
|
|
87
|
-
value: 6,
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
[
|
|
91
|
-
7,
|
|
92
|
-
{
|
|
93
|
-
id: 'reject',
|
|
94
|
-
label: t('meeting.statusRejected'),
|
|
95
|
-
text: t('meeting.statusRejected'),
|
|
96
|
-
value: 7,
|
|
97
|
-
},
|
|
98
|
-
],
|
|
99
|
-
]);
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
export const getApprovalStatusMap = () => {
|
|
103
|
-
const { t } = useI18n();
|
|
104
|
-
return new Map([
|
|
105
|
-
[
|
|
106
|
-
'all',
|
|
107
|
-
{
|
|
108
|
-
label: t('common.all'),
|
|
109
|
-
value: 'all',
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
[
|
|
113
|
-
'rejected',
|
|
114
|
-
{
|
|
115
|
-
label: t('meeting.statusRejected'),
|
|
116
|
-
value: 'rejected',
|
|
117
|
-
},
|
|
118
|
-
],
|
|
119
|
-
[
|
|
120
|
-
'approved',
|
|
121
|
-
{
|
|
122
|
-
label: t('meeting.statusApproved'),
|
|
123
|
-
value: 'approved',
|
|
124
|
-
},
|
|
125
|
-
],
|
|
126
|
-
[
|
|
127
|
-
'publish',
|
|
128
|
-
{
|
|
129
|
-
label: t('meeting.statusPending'),
|
|
130
|
-
value: 'publish',
|
|
131
|
-
},
|
|
132
|
-
],
|
|
133
|
-
[
|
|
134
|
-
'cancel',
|
|
135
|
-
{
|
|
136
|
-
label: t('meeting.statusCanceled'),
|
|
137
|
-
value: 'cancel',
|
|
138
|
-
},
|
|
139
|
-
],
|
|
140
|
-
]);
|
|
141
|
-
};
|
|
1
|
+
export const WEBSITE_REGEXP = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w ./?%&=-]*)?$/;
|
|
@@ -4,7 +4,8 @@ import { ref } from 'vue';
|
|
|
4
4
|
import ContentWrapper from '../common/ContentWrapper.vue';
|
|
5
5
|
import HeaderNav from './components/HeaderNav.vue';
|
|
6
6
|
import HeaderContent from './components/HeaderContent.vue';
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
import { type NavT } from './types.ts';
|
|
8
9
|
|
|
9
10
|
import { useTheme } from '@opendesign-plus/composables';
|
|
10
11
|
|
|
@@ -17,16 +18,7 @@ export interface OHeaderT {
|
|
|
17
18
|
|
|
18
19
|
const emit = defineEmits<OHeaderT>();
|
|
19
20
|
|
|
20
|
-
const props = defineProps(
|
|
21
|
-
logo: undefined,
|
|
22
|
-
lang: undefined,
|
|
23
|
-
community: undefined,
|
|
24
|
-
navData: undefined,
|
|
25
|
-
bgLeft: undefined,
|
|
26
|
-
bgRight: undefined,
|
|
27
|
-
tagMap: undefined,
|
|
28
|
-
activeIndex: undefined,
|
|
29
|
-
});
|
|
21
|
+
const props = defineProps<NavT>();
|
|
30
22
|
|
|
31
23
|
const hoverIndex = ref();
|
|
32
24
|
const hoverId = ref();
|
|
@@ -69,7 +61,7 @@ const handleMouseleaveSub = (val: string) => {
|
|
|
69
61
|
</slot>
|
|
70
62
|
</div>
|
|
71
63
|
<!-- nav -->
|
|
72
|
-
<div
|
|
64
|
+
<div class="header-nav">
|
|
73
65
|
<slot name="nav">
|
|
74
66
|
<HeaderNav
|
|
75
67
|
v-if="props.navData"
|
|
@@ -82,19 +74,13 @@ const handleMouseleaveSub = (val: string) => {
|
|
|
82
74
|
></HeaderNav>
|
|
83
75
|
</slot>
|
|
84
76
|
</div>
|
|
85
|
-
<!-- openUBMC nav -->
|
|
86
|
-
<div v-if="props.community === 'openUBMC'" class="header-nav-openubmc">
|
|
87
|
-
<slot name="nav">
|
|
88
|
-
<HeaderUbmcNav v-if="props.navData" :nav-data="props.navData" :has-perm="true" :tag-map="props.tagMap" />
|
|
89
|
-
</slot>
|
|
90
|
-
</div>
|
|
91
77
|
<!-- toolbar -->
|
|
92
78
|
<div v-if="$slots.toolbar" class="header-toolbar">
|
|
93
79
|
<slot name="toolbar"></slot>
|
|
94
80
|
</div>
|
|
95
81
|
</ContentWrapper>
|
|
96
82
|
</div>
|
|
97
|
-
<div
|
|
83
|
+
<div class="header-nav-content">
|
|
98
84
|
<HeaderContent
|
|
99
85
|
:itemData="itemData"
|
|
100
86
|
:item-visible="itemVisible"
|
|
@@ -147,13 +133,9 @@ const handleMouseleaveSub = (val: string) => {
|
|
|
147
133
|
overflow: hidden;
|
|
148
134
|
position: relative;
|
|
149
135
|
}
|
|
150
|
-
.header-nav-openubmc {
|
|
151
|
-
flex: 1;
|
|
152
|
-
height: 100%;
|
|
153
|
-
min-width: 0;
|
|
154
|
-
}
|
|
155
136
|
.header-toolbar {
|
|
156
137
|
height: 100%;
|
|
138
|
+
position: relative;
|
|
157
139
|
}
|
|
158
140
|
.header-nav-content {
|
|
159
141
|
position: fixed;
|