@opendesign-plus-test/components 0.0.1-rc.26 → 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.
- package/dist/chunk-OElCookieNotice.cjs.js +1 -1
- package/dist/chunk-OElCookieNotice.es.js +269 -197
- package/dist/components/OCookieNotice.vue.d.ts +3 -2
- package/dist/components/OFooter.vue.d.ts +22 -1
- package/dist/components/OHeaderUser.vue.d.ts +0 -2
- package/dist/components/activity/OMyActivityCalendar.vue.d.ts +6 -6
- package/dist/components/activity/index.d.ts +3 -3
- package/dist/components/element-plus/OElCookieNotice.vue.d.ts +6 -3
- package/dist/components/{OHeader.vue.d.ts → header/OHeader.vue.d.ts} +2 -1
- package/dist/components/{OHeaderMoblie.vue.d.ts → header/OHeaderMoblie.vue.d.ts} +2 -2
- package/dist/components/header/components/HeaderContent.vue.d.ts +6 -0
- package/dist/components/header/components/HeaderNav.vue.d.ts +7 -0
- package/dist/components/header/components/HeaderNavMoblie.vue.d.ts +17 -0
- package/dist/components/header/components/HeaderUbmcNav.vue.d.ts +2 -0
- package/dist/components/header/index.d.ts +22 -0
- package/dist/components/meeting/OMeetingCalendar.vue.d.ts +1 -6
- package/dist/components/meeting/OMeetingForm.vue.d.ts +3 -15
- package/dist/components/meeting/OMyMeetingCalendar.vue.d.ts +6 -6
- package/dist/components/meeting/types.d.ts +14 -5
- package/dist/components/meeting/utils.d.ts +1 -0
- package/dist/components.cjs.js +46 -46
- package/dist/components.css +1 -1
- package/dist/components.es.js +17909 -17780
- package/dist/index.d.ts +2 -3
- package/package.json +1 -1
- package/src/assets/svg-icons/icon-chevron-down.svg +1 -1
- package/src/components/OCookieNotice.vue +270 -118
- package/src/components/OFooter.vue +11 -1
- package/src/components/OHeaderUser.vue +14 -81
- package/src/components/OSourceCode.vue +1 -1
- package/src/components/activity/OActivityApproval.vue +60 -26
- package/src/components/activity/OActivityForm.vue +2 -5
- package/src/components/activity/OMyActivityCalendar.vue +80 -73
- package/src/components/common/MoreText.vue +3 -2
- package/src/components/common/ThFilter.vue +7 -3
- package/src/components/element-plus/OElCookieNotice.vue +306 -115
- package/src/components/events/OEventsApply.vue +16 -0
- package/src/components/events/OEventsList.vue +3 -0
- package/src/components/header/OHeader.vue +175 -0
- package/src/components/{OHeaderMoblie.vue → header/OHeaderMoblie.vue} +6 -3
- package/src/components/{common/HeaderEulerNav.vue → header/components/HeaderContent.vue} +375 -551
- package/src/components/header/components/HeaderNav.vue +280 -0
- package/src/components/{common → header/components}/HeaderNavMoblie.vue +20 -18
- package/src/components/{common → header/components}/HeaderUbmcNav.vue +6 -63
- package/src/components/header/index.ts +16 -0
- package/src/components/meeting/OMeetingCalendar.vue +19 -12
- package/src/components/meeting/OMeetingForm.vue +20 -27
- package/src/components/meeting/OMeetingPlayback.vue +1 -1
- package/src/components/meeting/OMyMeetingCalendar.vue +36 -36
- package/src/components/meeting/components/OMeetingCalendarList.vue +12 -9
- package/src/components/meeting/components/OMeetingDetail.vue +38 -17
- package/src/components/meeting/types.ts +13 -5
- package/src/components/meeting/utils.ts +18 -1
- package/src/i18n/en.ts +3 -1
- package/src/i18n/zh.ts +4 -2
- package/src/index.ts +2 -5
- package/dist/components/activity/data.d.ts +0 -51
- package/src/components/OHeader.vue +0 -97
- package/src/components/activity/data.ts +0 -365
- package/src/components/meeting/components/OMyCalendarWrapper.vue +0 -160
|
@@ -19,9 +19,9 @@ import {
|
|
|
19
19
|
} from '@opensig/opendesign';
|
|
20
20
|
import IconHelp from '~icons/meeting/icon-help.svg';
|
|
21
21
|
import IconTip from '~icons/meeting/icon-tip.svg';
|
|
22
|
-
import
|
|
22
|
+
import { MeetingFormPropsT, MeetingPostT, OptionItemT } from './types';
|
|
23
23
|
import dayjs from 'dayjs';
|
|
24
|
-
import { findLabelFromOptions, formatDateNumber, getDateNumber } from './utils';
|
|
24
|
+
import { findLabelFromOptions, formatDateNumber, getDateNumber, getPlatformLabel } from './utils';
|
|
25
25
|
import {
|
|
26
26
|
EMAIL_REGEX,
|
|
27
27
|
INTERVAL_DAY,
|
|
@@ -36,18 +36,7 @@ import { useI18n } from '@/i18n';
|
|
|
36
36
|
|
|
37
37
|
const { t, locale } = useI18n();
|
|
38
38
|
|
|
39
|
-
const props = withDefaults(defineProps<{
|
|
40
|
-
data?: MeetingItemT;
|
|
41
|
-
isSub?: boolean;
|
|
42
|
-
isEdit?: boolean;
|
|
43
|
-
subId?: string;
|
|
44
|
-
createMeetingRequest: any,
|
|
45
|
-
editMeetingRequest: any;
|
|
46
|
-
editSubMeetingRequest: any;
|
|
47
|
-
getPlatformsRequest: any;
|
|
48
|
-
getGroupsRequest: any;
|
|
49
|
-
showBtns?: boolean
|
|
50
|
-
}>(), {
|
|
39
|
+
const props = withDefaults(defineProps<MeetingFormPropsT>(), {
|
|
51
40
|
isSub: false,
|
|
52
41
|
isEdit: false,
|
|
53
42
|
showBtns: true,
|
|
@@ -78,7 +67,7 @@ const initForm = {
|
|
|
78
67
|
cycle_interval: 1,
|
|
79
68
|
cycle_type: INTERVAL_DAY,
|
|
80
69
|
cycle_point: [],
|
|
81
|
-
}
|
|
70
|
+
};
|
|
82
71
|
const form = ref<MeetingPostT>(Object.assign({}, initForm) as unknown as MeetingPostT); // 表单数据
|
|
83
72
|
const formRef = ref(null); // 表单实例
|
|
84
73
|
const loading = ref(false); // 提交状态
|
|
@@ -258,7 +247,7 @@ const getPlatformOptions = async () => {
|
|
|
258
247
|
return;
|
|
259
248
|
}
|
|
260
249
|
const res = await props.getPlatformsRequest();
|
|
261
|
-
typeOptions.value = res.map((v) => ({ label: v, value: v }));
|
|
250
|
+
typeOptions.value = res.map((v) => ({ label: getPlatformLabel(v), value: v }));
|
|
262
251
|
if (!props.data) {
|
|
263
252
|
form.value.platform = typeOptions.value[0].value;
|
|
264
253
|
}
|
|
@@ -485,7 +474,7 @@ defineExpose({
|
|
|
485
474
|
<OFormItem :rules="rules.etherpad" label="Etherpad" field="etherpad" v-if="form.group_name">
|
|
486
475
|
<template #label>
|
|
487
476
|
<div class="label-wrapper">
|
|
488
|
-
<span>
|
|
477
|
+
<span>{{ t('meeting.etherpad') }} </span>
|
|
489
478
|
<OPopover>
|
|
490
479
|
<div class="o-meeting-form-popover-content etherpad">{{ t('meeting.etherpadDesc') }}</div>
|
|
491
480
|
<template #target>
|
|
@@ -694,12 +683,6 @@ defineExpose({
|
|
|
694
683
|
|
|
695
684
|
<style lang="scss">
|
|
696
685
|
.o-meeting-form {
|
|
697
|
-
.el-input {
|
|
698
|
-
--el-border-color: var(--o-color-control1);
|
|
699
|
-
--el-input-border-color: var(--o-color-control1);
|
|
700
|
-
--el-input-hover-border-color:var(--o-color-control2);
|
|
701
|
-
--el-input-focus-border-color:var(--o-color-control3);
|
|
702
|
-
}
|
|
703
686
|
.form-wrapper {
|
|
704
687
|
& > .o-form-item {
|
|
705
688
|
max-width: 592px;
|
|
@@ -718,6 +701,7 @@ defineExpose({
|
|
|
718
701
|
|
|
719
702
|
&.o-form-layout-v {
|
|
720
703
|
--form-item-gap: var(--o-gap-3);
|
|
704
|
+
|
|
721
705
|
.o-form-item-label {
|
|
722
706
|
margin-bottom: var(--o-gap-2);
|
|
723
707
|
}
|
|
@@ -741,6 +725,13 @@ defineExpose({
|
|
|
741
725
|
}
|
|
742
726
|
}
|
|
743
727
|
|
|
728
|
+
.o-select {
|
|
729
|
+
--select-bd-color: var(--o-color-control1);
|
|
730
|
+
--select-bd-color-hover: var(--o-color-primary2);
|
|
731
|
+
--select-bd-color-focus: var(--o-color-primary3);
|
|
732
|
+
--select-bd-color-disabled: var(--o-color-control4);
|
|
733
|
+
}
|
|
734
|
+
|
|
744
735
|
.o-form-item-label {
|
|
745
736
|
flex: 0 0 100px;
|
|
746
737
|
height: var(--o-control_size-l);
|
|
@@ -766,6 +757,7 @@ defineExpose({
|
|
|
766
757
|
|
|
767
758
|
.o-form-item-label {
|
|
768
759
|
margin: 0;
|
|
760
|
+
align-items: flex-start;
|
|
769
761
|
}
|
|
770
762
|
|
|
771
763
|
.o-form-item-main {
|
|
@@ -835,7 +827,7 @@ defineExpose({
|
|
|
835
827
|
display: flex;
|
|
836
828
|
align-items: center;
|
|
837
829
|
border: 1px solid var(--o-color-control1);
|
|
838
|
-
border-radius: var(--o-
|
|
830
|
+
border-radius: var(--o-radius-xs);
|
|
839
831
|
padding: 0 15px;
|
|
840
832
|
background-color: var(--o-color-fill2);
|
|
841
833
|
|
|
@@ -844,7 +836,7 @@ defineExpose({
|
|
|
844
836
|
}
|
|
845
837
|
|
|
846
838
|
&:hover {
|
|
847
|
-
border-color: var(--o-color-
|
|
839
|
+
border-color: var(--o-color-primary2);
|
|
848
840
|
}
|
|
849
841
|
|
|
850
842
|
@include respond-to('phone') {
|
|
@@ -921,7 +913,7 @@ defineExpose({
|
|
|
921
913
|
}
|
|
922
914
|
|
|
923
915
|
.repeat-config {
|
|
924
|
-
background-color: var(--o-color-control2-light);
|
|
916
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
|
|
925
917
|
padding: var(--o-gap-5);
|
|
926
918
|
border-radius: var(--o-radius-xs);
|
|
927
919
|
@include respond-to('<=pad_v') {
|
|
@@ -989,13 +981,14 @@ defineExpose({
|
|
|
989
981
|
</style>
|
|
990
982
|
|
|
991
983
|
<style lang="scss">
|
|
992
|
-
.meeting-form-time-popover, o-meeting-form-date-picker-popper {
|
|
984
|
+
.meeting-form-time-popover, .o-meeting-form-date-picker-popper {
|
|
993
985
|
--el-color-primary: var(--o-color-primary1);
|
|
994
986
|
--el-datepicker-active-color: var(--o-color-primary1);
|
|
995
987
|
--el-fill-color-light: var(--o-color-control2-light);
|
|
996
988
|
--el-input-bg-color: var(--o-color-control-light);
|
|
997
989
|
--el-fill-color-blank: var(--o-color-control-light);
|
|
998
990
|
}
|
|
991
|
+
|
|
999
992
|
.o-meeting-form-popover-content {
|
|
1000
993
|
max-width: 256px;
|
|
1001
994
|
text-align: left;
|
|
@@ -14,7 +14,7 @@ const props = withDefaults(defineProps<MeetingPlaybackPropsT>(), {
|
|
|
14
14
|
detail: () => ({}) as any,
|
|
15
15
|
});
|
|
16
16
|
const emits = defineEmits(['change-date']);
|
|
17
|
-
|
|
17
|
+
const { t } = useI18n();
|
|
18
18
|
const playbackInstance = ref(null);
|
|
19
19
|
const getInstance = (instance: any) => {
|
|
20
20
|
playbackInstance.value = instance;
|
|
@@ -833,15 +833,39 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
833
833
|
}
|
|
834
834
|
|
|
835
835
|
.list-calendar {
|
|
836
|
-
width: 334px;
|
|
837
836
|
flex-shrink: 0;
|
|
838
|
-
|
|
837
|
+
width: 334px;
|
|
838
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
|
|
839
|
+
|
|
840
|
+
@include respond-to('pad_h') {
|
|
841
|
+
.el-calendar {
|
|
842
|
+
.el-calendar__body {
|
|
843
|
+
padding-left: 12px;
|
|
844
|
+
padding-right: 12px;
|
|
839
845
|
|
|
846
|
+
.el-calendar-table .date-cell {
|
|
847
|
+
height: 40px;
|
|
848
|
+
width: 28px;
|
|
849
|
+
|
|
850
|
+
.date-cell-text {
|
|
851
|
+
line-height: 24px;
|
|
852
|
+
@include tip2;
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
@include respond-to('pad_v') {
|
|
859
|
+
width: 100%;
|
|
860
|
+
}
|
|
861
|
+
@include respond-to('phone') {
|
|
862
|
+
display: none;
|
|
863
|
+
}
|
|
840
864
|
.el-calendar {
|
|
841
865
|
min-height: 460px;
|
|
842
866
|
height: calc(100% - 54px);
|
|
843
|
-
background-color: var(--table-bg);
|
|
844
867
|
border-radius: var(--o-radius-xs);
|
|
868
|
+
background-color: transparent;
|
|
845
869
|
|
|
846
870
|
.el-calendar__header {
|
|
847
871
|
border-bottom: 1px solid var(--o-color-control4);
|
|
@@ -870,18 +894,15 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
870
894
|
|
|
871
895
|
.el-calendar__body {
|
|
872
896
|
.el-calendar-table {
|
|
873
|
-
tr {
|
|
874
|
-
background: var(--table-bg) !important;
|
|
875
|
-
}
|
|
876
897
|
|
|
877
898
|
th {
|
|
878
899
|
text-align: center;
|
|
879
|
-
background: var(--
|
|
900
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%) !important;
|
|
880
901
|
border: none;
|
|
881
902
|
}
|
|
882
903
|
|
|
883
904
|
td {
|
|
884
|
-
background: var(--
|
|
905
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%) !important;
|
|
885
906
|
border: none;
|
|
886
907
|
text-align: center;
|
|
887
908
|
transition: none;
|
|
@@ -980,31 +1001,6 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
980
1001
|
}
|
|
981
1002
|
}
|
|
982
1003
|
|
|
983
|
-
@include respond-to('pad_h') {
|
|
984
|
-
width: 240px;
|
|
985
|
-
.el-calendar {
|
|
986
|
-
.el-calendar__body {
|
|
987
|
-
padding-left: 12px;
|
|
988
|
-
padding-right: 12px;
|
|
989
|
-
|
|
990
|
-
.el-calendar-table .date-cell {
|
|
991
|
-
height: 40px;
|
|
992
|
-
width: 28px;
|
|
993
|
-
|
|
994
|
-
.date-cell-text {
|
|
995
|
-
line-height: 24px;
|
|
996
|
-
@include tip2;
|
|
997
|
-
}
|
|
998
|
-
}
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
-
}
|
|
1002
|
-
@include respond-to('pad_v') {
|
|
1003
|
-
width: 100%;
|
|
1004
|
-
}
|
|
1005
|
-
@include respond-to('phone') {
|
|
1006
|
-
display: none;
|
|
1007
|
-
}
|
|
1008
1004
|
}
|
|
1009
1005
|
|
|
1010
1006
|
.list-wrapper {
|
|
@@ -1025,11 +1021,15 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1025
1021
|
.o-scrollbar-rail {
|
|
1026
1022
|
right: -16px;
|
|
1027
1023
|
}
|
|
1024
|
+
|
|
1025
|
+
.o-scrollbar {
|
|
1026
|
+
height: 100%;
|
|
1027
|
+
}
|
|
1028
1028
|
}
|
|
1029
1029
|
|
|
1030
1030
|
.scroller-container {
|
|
1031
1031
|
height: 100%;
|
|
1032
|
-
max-height: calc(var(--layout-left-height) - 4 * var(--o-gap-5) - var(--header-height) * 1px);
|
|
1032
|
+
max-height: calc(var(--layout-left-height, 900px) - 4 * var(--o-gap-5) - var(--header-height) * 1px);
|
|
1033
1033
|
|
|
1034
1034
|
@include respond-to('phone') {
|
|
1035
1035
|
max-height: fit-content;
|
|
@@ -1237,7 +1237,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1237
1237
|
}
|
|
1238
1238
|
|
|
1239
1239
|
&.o-collapse-item-expanded {
|
|
1240
|
-
background-color: var(--o-color-control2-light);
|
|
1240
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%) !important;
|
|
1241
1241
|
}
|
|
1242
1242
|
}
|
|
1243
1243
|
|
|
@@ -1358,7 +1358,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1358
1358
|
display: flex;
|
|
1359
1359
|
align-items: center;
|
|
1360
1360
|
padding-left: calc(var(--o-gap-3) + var(--icon-size));
|
|
1361
|
-
gap: var(--o-gap-
|
|
1361
|
+
gap: var(--o-gap-4);
|
|
1362
1362
|
width: 100%;
|
|
1363
1363
|
|
|
1364
1364
|
.o-link {
|
|
@@ -276,11 +276,8 @@ const computedList = computed(() => {
|
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
&.o-collapse-item-expanded {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
.copy-icon {
|
|
282
|
-
display: inline-flex;
|
|
283
|
-
}
|
|
279
|
+
.copy-icon {
|
|
280
|
+
display: inline-flex;
|
|
284
281
|
}
|
|
285
282
|
}
|
|
286
283
|
}
|
|
@@ -305,9 +302,9 @@ const computedList = computed(() => {
|
|
|
305
302
|
padding: 12px 16px;
|
|
306
303
|
}
|
|
307
304
|
|
|
308
|
-
|
|
309
305
|
.o-collapse-item-title {
|
|
310
306
|
flex-grow: 1;
|
|
307
|
+
margin-bottom: 0;
|
|
311
308
|
}
|
|
312
309
|
|
|
313
310
|
|
|
@@ -322,7 +319,7 @@ const computedList = computed(() => {
|
|
|
322
319
|
}
|
|
323
320
|
|
|
324
321
|
.o-collapse-item-body {
|
|
325
|
-
background-color: var(--o-color-control2-light);
|
|
322
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light), transparent 60%);
|
|
326
323
|
margin-bottom: 0;
|
|
327
324
|
|
|
328
325
|
a {
|
|
@@ -333,7 +330,12 @@ const computedList = computed(() => {
|
|
|
333
330
|
.jump-detail-link {
|
|
334
331
|
padding-left: calc(var(--icon-right) + var(--icon-size2));
|
|
335
332
|
margin-top: var(--o-gap-2);
|
|
336
|
-
|
|
333
|
+
color: var(--o-color-info2);
|
|
334
|
+
@include tip1;
|
|
335
|
+
|
|
336
|
+
&:hover {
|
|
337
|
+
color: var(--o-color-primary1);
|
|
338
|
+
}
|
|
337
339
|
|
|
338
340
|
.o-icon {
|
|
339
341
|
font-size: 16px;
|
|
@@ -362,7 +364,6 @@ const computedList = computed(() => {
|
|
|
362
364
|
|
|
363
365
|
.o-icon {
|
|
364
366
|
flex-shrink: 0;
|
|
365
|
-
padding: 2px;
|
|
366
367
|
border-radius: 50%;
|
|
367
368
|
overflow: hidden;
|
|
368
369
|
color: var(--o-color-white);
|
|
@@ -378,6 +379,7 @@ const computedList = computed(() => {
|
|
|
378
379
|
|
|
379
380
|
.text {
|
|
380
381
|
display: block;
|
|
382
|
+
font-weight: 600;
|
|
381
383
|
@include text-truncate(1);
|
|
382
384
|
}
|
|
383
385
|
}
|
|
@@ -390,6 +392,7 @@ const computedList = computed(() => {
|
|
|
390
392
|
align-items: center;
|
|
391
393
|
color: var(--o-color-info3);
|
|
392
394
|
text-decoration: none;
|
|
395
|
+
font-weight: 400;
|
|
393
396
|
@include tip1;
|
|
394
397
|
|
|
395
398
|
.o-divider {
|
|
@@ -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 {
|
|
@@ -63,11 +65,17 @@ export interface MeetingPostT {
|
|
|
63
65
|
is_notify?: boolean;
|
|
64
66
|
}
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
export interface MeetingFormPropsT {
|
|
69
|
+
data?: MeetingItemT;
|
|
70
|
+
isSub?: boolean;
|
|
71
|
+
isEdit?: boolean;
|
|
72
|
+
subId?: string;
|
|
73
|
+
createMeetingRequest: any,
|
|
74
|
+
editMeetingRequest: any;
|
|
75
|
+
editSubMeetingRequest: any;
|
|
76
|
+
getPlatformsRequest: any;
|
|
77
|
+
getGroupsRequest: any;
|
|
78
|
+
showBtns?: boolean
|
|
71
79
|
}
|
|
72
80
|
|
|
73
81
|
// 会议详情
|
|
@@ -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
|
@@ -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': '
|
|
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': '复制成功',
|
package/src/index.ts
CHANGED
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
import OBanner from './components/OBanner.vue';
|
|
5
5
|
import OCookieNotice from './components/OCookieNotice.vue';
|
|
6
6
|
import OFooter from './components/OFooter.vue';
|
|
7
|
-
import OHeader from './components/OHeader.vue';
|
|
8
|
-
import OHeaderMoblie from './components/OHeaderMoblie.vue';
|
|
9
7
|
import OHeaderSearch from './components/OHeaderSearch.vue';
|
|
10
8
|
import OHeaderUser from './components/OHeaderUser.vue';
|
|
11
9
|
import OPlusConfigProvider from './components/OPlusConfigProvider.vue';
|
|
@@ -18,8 +16,6 @@ const components = {
|
|
|
18
16
|
OBanner,
|
|
19
17
|
OCookieNotice,
|
|
20
18
|
OFooter,
|
|
21
|
-
OHeader,
|
|
22
|
-
OHeaderMoblie,
|
|
23
19
|
OHeaderSearch,
|
|
24
20
|
OHeaderUser,
|
|
25
21
|
OPlusConfigProvider,
|
|
@@ -29,12 +25,13 @@ const components = {
|
|
|
29
25
|
};
|
|
30
26
|
|
|
31
27
|
// 导出单个组件
|
|
32
|
-
export { OBanner, OCookieNotice, OFooter,
|
|
28
|
+
export { OBanner, OCookieNotice, OFooter, OHeaderSearch, OHeaderUser, OPlusConfigProvider, OSection, OSourceCode, OThemeSwitcher };
|
|
33
29
|
|
|
34
30
|
// 重新导出子目录中的组件
|
|
35
31
|
export * from './components/activity';
|
|
36
32
|
export * from './components/element-plus';
|
|
37
33
|
export * from './components/events';
|
|
34
|
+
export * from './components/header';
|
|
38
35
|
export * from './components/meeting';
|
|
39
36
|
|
|
40
37
|
// 默认导出(用于Vue插件安装)
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
export declare const approveListRes: {
|
|
2
|
-
total: number;
|
|
3
|
-
page: string;
|
|
4
|
-
size: number;
|
|
5
|
-
data: {
|
|
6
|
-
id: number;
|
|
7
|
-
title: string;
|
|
8
|
-
start_date: string;
|
|
9
|
-
end_date: string;
|
|
10
|
-
activity_type: number;
|
|
11
|
-
synopsis: string;
|
|
12
|
-
activity_mode: number;
|
|
13
|
-
status: number;
|
|
14
|
-
create_time: string;
|
|
15
|
-
is_delete: number;
|
|
16
|
-
address: string;
|
|
17
|
-
sponsor: string;
|
|
18
|
-
start: string;
|
|
19
|
-
end: string;
|
|
20
|
-
register_url: string;
|
|
21
|
-
content_url: string;
|
|
22
|
-
update_activity_id: null;
|
|
23
|
-
register_end_date: string;
|
|
24
|
-
}[];
|
|
25
|
-
};
|
|
26
|
-
export declare const listRes: {
|
|
27
|
-
total: number;
|
|
28
|
-
page: string;
|
|
29
|
-
size: number;
|
|
30
|
-
data: {
|
|
31
|
-
id: number;
|
|
32
|
-
title: string;
|
|
33
|
-
start_date: string;
|
|
34
|
-
end_date: string;
|
|
35
|
-
activity_type: number;
|
|
36
|
-
synopsis: string;
|
|
37
|
-
activity_mode: number;
|
|
38
|
-
create_time: string;
|
|
39
|
-
address: string;
|
|
40
|
-
status: number;
|
|
41
|
-
sponsor: string;
|
|
42
|
-
is_delete: number;
|
|
43
|
-
start: string;
|
|
44
|
-
end: string;
|
|
45
|
-
register_url: string;
|
|
46
|
-
content_url: string;
|
|
47
|
-
register_end_date: string;
|
|
48
|
-
update_activity_id: null;
|
|
49
|
-
approver: string;
|
|
50
|
-
}[];
|
|
51
|
-
};
|