@opendesign-plus-test/components 0.0.1-rc.42 → 0.0.1-rc.45
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 +132 -112
- package/dist/components/OHeaderSearch.vue.d.ts +824 -506
- package/dist/components/OSourceCode.vue.d.ts +4 -6
- package/dist/components/activity/OActivityApproval.vue.d.ts +6 -10
- package/dist/components/activity/OActivityForm.vue.d.ts +3 -5
- package/dist/components/activity/OMyActivityCalendar.vue.d.ts +100 -46
- package/dist/components/activity/index.d.ts +56 -33
- package/dist/components/activity/types.d.ts +8 -1
- package/dist/components/events/config.d.ts +5 -18
- package/dist/components/events/types.d.ts +4 -1
- package/dist/components/header/OHeaderMobile.vue.d.ts +18 -11
- package/dist/components/header/components/HeaderNavMobile.vue.d.ts +4 -1
- package/dist/components/header/index.d.ts +12 -5
- package/dist/components/header/types.d.ts +4 -0
- package/dist/components/meeting/OMeetingCalendar.vue.d.ts +8 -12
- package/dist/components/meeting/OMeetingForm.vue.d.ts +3 -5
- package/dist/components/meeting/OMeetingPlayback.vue.d.ts +45 -0
- package/dist/components/meeting/OMyMeetingCalendar.vue.d.ts +100 -46
- package/dist/components/meeting/components/OMeetingCalendarList.vue.d.ts +1 -1
- package/dist/components/meeting/index.d.ts +817 -0
- package/dist/components/meeting/types.d.ts +82 -17
- package/dist/components/meeting/utils.d.ts +1 -1
- package/dist/components/search/OSearchInput.vue.d.ts +1003 -0
- package/dist/components/search/composables/useImageSearch.d.ts +48 -0
- package/dist/components/search/composables/useKeywordHighlight.d.ts +2 -0
- package/dist/components/search/composables/useSearchHistory.d.ts +14 -0
- package/dist/components/search/index.d.ts +590 -0
- package/dist/components/search/internal/HighlightText.vue.d.ts +9 -0
- package/dist/components/search/internal/SearchImageInput.vue.d.ts +716 -0
- package/dist/components/search/internal/SearchPanel.vue.d.ts +100 -0
- package/dist/components/search/types.d.ts +20 -0
- package/dist/components.cjs.js +43 -43
- package/dist/components.css +1 -1
- package/dist/components.es.js +11681 -10636
- package/dist/index.d.ts +1 -0
- package/package.json +3 -3
- package/src/assets/svg-icons/icon-delete-hover.svg +4 -0
- package/src/assets/svg-icons/icon-delete.svg +5 -1
- package/src/assets/svg-icons/icon-image-close.svg +4 -0
- package/src/assets/svg-icons/icon-image-upload.svg +3 -0
- package/src/assets/svg-icons/icon-image-zoomin.svg +3 -0
- package/src/assets/svg-icons/icon-refresh.svg +3 -0
- package/src/components/OBanner.vue +18 -18
- package/src/components/OCookieNotice.vue +21 -21
- package/src/components/OFooter.vue +18 -17
- package/src/components/OHeaderSearch.vue +402 -420
- package/src/components/OHeaderUser.vue +3 -2
- package/src/components/OSection.vue +4 -4
- package/src/components/OSourceCode.vue +8 -10
- package/src/components/activity/OActivityApproval.vue +32 -32
- package/src/components/activity/OActivityForm.vue +5 -5
- package/src/components/activity/OMyActivityCalendar.vue +66 -50
- package/src/components/activity/config.ts +1 -1
- package/src/components/activity/types.ts +8 -1
- package/src/components/common/ContentWrapper.vue +3 -3
- package/src/components/common/MoreText.vue +1 -1
- package/src/components/common/ThFilter.vue +7 -7
- package/src/components/element-plus/OElCookieNotice.vue +27 -27
- package/src/components/events/OEventsApply.vue +44 -44
- package/src/components/events/OEventsCalendar.vue +14 -14
- package/src/components/events/OEventsList.vue +53 -26
- package/src/components/events/config.ts +1 -1
- package/src/components/events/types.ts +4 -1
- package/src/components/header/OHeader.vue +2 -2
- package/src/components/header/OHeaderMobile.vue +8 -1
- package/src/components/header/components/HeaderContent.vue +67 -63
- package/src/components/header/components/HeaderNav.vue +4 -4
- package/src/components/header/components/HeaderNavMobile.vue +8 -5
- package/src/components/header/types.ts +4 -0
- package/src/components/meeting/OMeetingCalendar.vue +66 -54
- package/src/components/meeting/OMeetingForm.vue +70 -51
- package/src/components/meeting/OMeetingPlayback.vue +8 -8
- package/src/components/meeting/OMyMeetingCalendar.vue +56 -45
- package/src/components/meeting/OSigMeetingCalendar.vue +31 -28
- package/src/components/meeting/components/OMeetingCalendarList.vue +31 -26
- package/src/components/meeting/components/OMeetingCalendarSelector.vue +10 -6
- package/src/components/meeting/components/OMeetingDetail.vue +32 -18
- package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +1 -1
- package/src/components/meeting/components/OMeetingPlaybackVideo.vue +12 -12
- package/src/components/meeting/components/OSigMeetingAside.vue +8 -9
- package/src/components/meeting/types.ts +88 -17
- package/src/components/search/OSearchInput.vue +463 -0
- package/src/components/search/composables/useImageSearch.ts +157 -0
- package/src/components/search/composables/useKeywordHighlight.ts +30 -0
- package/src/components/search/composables/useSearchHistory.ts +75 -0
- package/src/components/search/index.ts +23 -0
- package/src/components/search/internal/HighlightText.vue +37 -0
- package/src/components/search/internal/SearchImageInput.vue +488 -0
- package/src/components/search/internal/SearchPanel.vue +430 -0
- package/src/components/search/types.ts +25 -0
- package/src/draft/Banner.vue +6 -6
- package/src/draft/ButtonCards.vue +1 -1
- package/src/draft/Feature.vue +6 -6
- package/src/draft/Footer.vue +29 -22
- package/src/draft/HorizontalAnchor.vue +4 -4
- package/src/draft/ItemSwiper.vue +2 -2
- package/src/draft/Logo.vue +3 -3
- package/src/draft/LogoCard.vue +2 -2
- package/src/draft/MultiCard.vue +1 -1
- package/src/draft/MultiIconCard.vue +1 -1
- package/src/draft/OInfoCard.vue +4 -4
- package/src/draft/Section.vue +4 -4
- package/src/draft/SingleTabCard.vue +1 -1
- package/src/draft/SliderCard.vue +4 -3
- package/src/i18n/en.ts +10 -0
- package/src/i18n/zh.ts +10 -0
- package/src/index.ts +1 -0
- package/vite.config.ts +4 -3
|
@@ -27,7 +27,7 @@ import type { ActivityItemT, MyActivityCalendarPropsT, ParamsItemT } from './typ
|
|
|
27
27
|
import { useScreen } from '@opendesign-plus/composables';
|
|
28
28
|
import { formatDate, getDateNumber } from '../meeting/utils';
|
|
29
29
|
import { useActivityConfig } from './composables/useActivityConfig';
|
|
30
|
-
import { CalendarDataType, PageParamsT } from '../meeting/types';
|
|
30
|
+
import { CalendarDataType, MeetingItemT, PageParamsT } from '../meeting/types';
|
|
31
31
|
import OMeetingDetail from '@/components/meeting/components/OMeetingDetail.vue';
|
|
32
32
|
import { useI18n, Locales } from '@/i18n';
|
|
33
33
|
|
|
@@ -47,19 +47,19 @@ const props = defineProps<MyActivityCalendarPropsT>();
|
|
|
47
47
|
|
|
48
48
|
const emits = defineEmits(['edit']);
|
|
49
49
|
const list = ref<ActivityItemT[]>([]); // 列表数据
|
|
50
|
-
const originList = ref([]); // 原始数据
|
|
50
|
+
const originList = ref<ActivityItemT[]>([]); // 原始数据
|
|
51
51
|
|
|
52
52
|
const currentPage = ref(1); // 分页-当前页
|
|
53
53
|
const pageSize = ref(50); // 分页-每页数量
|
|
54
|
-
const total = ref(null); // 分页-总数
|
|
54
|
+
const total = ref<number | null>(null); // 分页-总数
|
|
55
55
|
const reloadAll = ref(false); // 是否需要清空数据
|
|
56
56
|
|
|
57
|
-
const expanded = ref([]); // 展开的数据,id
|
|
57
|
+
const expanded = ref<number[]>([]); // 展开的数据,id
|
|
58
58
|
|
|
59
59
|
const nextLoading = ref(false);
|
|
60
60
|
const bottomReached = ref(false);
|
|
61
61
|
|
|
62
|
-
const canLoadMore = computed(() => originList.value.length < total.value
|
|
62
|
+
const canLoadMore = computed(() => total.value === null || originList.value.length < total.value);
|
|
63
63
|
|
|
64
64
|
const getList = async () => {
|
|
65
65
|
if (!props.getListRequest) {
|
|
@@ -69,7 +69,7 @@ const getList = async () => {
|
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
try {
|
|
72
|
-
if (total.value > 0 && (currentPage.value - 1) * pageSize.value > total.value) {
|
|
72
|
+
if (total.value !== null && total.value > 0 && (currentPage.value - 1) * pageSize.value > total.value) {
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
// 当月数据已加载完,手动切换下一月
|
|
@@ -99,7 +99,7 @@ const getList = async () => {
|
|
|
99
99
|
];
|
|
100
100
|
})
|
|
101
101
|
.flat()
|
|
102
|
-
.filter((v) => {
|
|
102
|
+
.filter((v: ActivityItemT) => {
|
|
103
103
|
return v.start_date.slice(0, 7) === formatDate(selectedDate.value, 'YYYY-MM-DD').slice(0, 7);
|
|
104
104
|
});
|
|
105
105
|
if (reloadAll.value) {
|
|
@@ -143,7 +143,7 @@ const getActivityDetail = (val: number) => {
|
|
|
143
143
|
}
|
|
144
144
|
if (!expandList.value.includes(val)) {
|
|
145
145
|
expandList.value.push(val);
|
|
146
|
-
props.getActivityDetailRequest(val).then((res) => {
|
|
146
|
+
props.getActivityDetailRequest(val).then((res: ActivityItemT) => {
|
|
147
147
|
list.value?.forEach((item) => {
|
|
148
148
|
if (item.id === res.id) {
|
|
149
149
|
item.approve_record = res.approve_record;
|
|
@@ -153,20 +153,20 @@ const getActivityDetail = (val: number) => {
|
|
|
153
153
|
}
|
|
154
154
|
};
|
|
155
155
|
|
|
156
|
-
const change = (val: number[]) => {
|
|
156
|
+
const change = (val: (number | string)[]) => {
|
|
157
157
|
if (val.length) {
|
|
158
|
-
val.forEach((item
|
|
159
|
-
getActivityDetail(item);
|
|
158
|
+
val.forEach((item) => {
|
|
159
|
+
getActivityDetail(item as unknown as number);
|
|
160
160
|
});
|
|
161
161
|
}
|
|
162
162
|
};
|
|
163
163
|
|
|
164
|
-
const calcIfApproved = (date) => {
|
|
164
|
+
const calcIfApproved = (date: string) => {
|
|
165
165
|
const activityOfDate = list.value.filter((v) => v.start_date === date);
|
|
166
166
|
return activityOfDate.length && activityOfDate.every((v) => v.status === 3 || v.status === 4);
|
|
167
167
|
};
|
|
168
168
|
|
|
169
|
-
const scrollerScroll = (el) => {
|
|
169
|
+
const scrollerScroll = (el: any) => {
|
|
170
170
|
const container = el.target;
|
|
171
171
|
if (!container) return;
|
|
172
172
|
const scrollTop = container.scrollTop; // 已经滚动的距离
|
|
@@ -183,7 +183,7 @@ const updateScroller = () => {
|
|
|
183
183
|
|
|
184
184
|
// -------------------- 日历 --------------------
|
|
185
185
|
const calendarRef = ref();
|
|
186
|
-
const selectedDate = ref(dayjs().format('YYYY-MM-DD'));
|
|
186
|
+
const selectedDate = ref<any>(dayjs().format('YYYY-MM-DD'));
|
|
187
187
|
const allDateList = computed<string[]>(() => [...new Set(list.value.map((v) => v.start_date))].sort((a, b) => (dayjs(a).isBefore(dayjs(b)) ? -1 : 1)));
|
|
188
188
|
const dateList = computed<string[]>(() =>
|
|
189
189
|
[...new Set(list.value.filter((v) => !v.isExpired && !v.is_delete).map((v) => v.start_date))].sort((a, b) => (dayjs(a).isBefore(dayjs(b)) ? -1 : 1)),
|
|
@@ -231,8 +231,13 @@ const changeMonth = (val: string) => {
|
|
|
231
231
|
|
|
232
232
|
|
|
233
233
|
// -------------------- 活动列表 --------------------
|
|
234
|
-
|
|
235
|
-
|
|
234
|
+
interface ActivityListItemT {
|
|
235
|
+
start_date: string;
|
|
236
|
+
list: ActivityItemT[];
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const activityList = computed<ActivityListItemT[]>(() => {
|
|
240
|
+
return list.value.reduce((prev: ActivityListItemT[], cur: ActivityItemT) => {
|
|
236
241
|
if (!prev.length) {
|
|
237
242
|
return [
|
|
238
243
|
{
|
|
@@ -256,13 +261,19 @@ const activityList = computed(() => {
|
|
|
256
261
|
});
|
|
257
262
|
|
|
258
263
|
// -------------------- 活动详情组件实例 --------------------
|
|
259
|
-
const detailRefs = ref({});
|
|
260
|
-
const getDetailRefs = (insRef, id) => {
|
|
264
|
+
const detailRefs = ref<any>({});
|
|
265
|
+
const getDetailRefs = (insRef: any, id: number) => {
|
|
261
266
|
if (insRef && id) {
|
|
262
267
|
detailRefs.value[id] = insRef;
|
|
263
268
|
}
|
|
264
269
|
};
|
|
265
|
-
|
|
270
|
+
const copyInfo = async (idx: number) => {
|
|
271
|
+
const instance = detailRefs.value[idx];
|
|
272
|
+
await instance.copyInfo();
|
|
273
|
+
message.success({
|
|
274
|
+
content: t('common.copySuccess'),
|
|
275
|
+
});
|
|
276
|
+
};
|
|
266
277
|
// -------------------- 处理滚动事件 --------------------
|
|
267
278
|
const scrollerRef = ref();
|
|
268
279
|
const scrollToSelectedDate = (date: string) => {
|
|
@@ -312,11 +323,14 @@ const confirm = () => {
|
|
|
312
323
|
if (!props.revokeActivityRequest) {
|
|
313
324
|
return;
|
|
314
325
|
}
|
|
326
|
+
if (!currentRow.value) {
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
315
329
|
dialogLoading.value = true;
|
|
316
330
|
props.revokeActivityRequest(currentRow.value?.id)
|
|
317
331
|
.then(() => {
|
|
318
332
|
message.success({
|
|
319
|
-
content: t('meeting.revokeActivitySuccess', [currentRow.value
|
|
333
|
+
content: t('meeting.revokeActivitySuccess', [currentRow.value?.title]),
|
|
320
334
|
});
|
|
321
335
|
reloadAll.value = true;
|
|
322
336
|
getList();
|
|
@@ -391,7 +405,7 @@ const confirmDelete = () => {
|
|
|
391
405
|
props.deleteActivityRequest(currentRow.value?.id)
|
|
392
406
|
.then(() => {
|
|
393
407
|
message.success({
|
|
394
|
-
content: t('meeting.deleteActivitySuccess', [currentRow.value
|
|
408
|
+
content: t('meeting.deleteActivitySuccess', [currentRow.value?.title]),
|
|
395
409
|
});
|
|
396
410
|
reloadAll.value = true;
|
|
397
411
|
getList();
|
|
@@ -495,6 +509,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
495
509
|
},
|
|
496
510
|
}];
|
|
497
511
|
});
|
|
512
|
+
|
|
498
513
|
</script>
|
|
499
514
|
|
|
500
515
|
<template>
|
|
@@ -653,7 +668,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
653
668
|
<div class="activity-detail">
|
|
654
669
|
<OMeetingDetail
|
|
655
670
|
:show="expanded.includes(row.id)"
|
|
656
|
-
:data="row"
|
|
671
|
+
:data="row as unknown as MeetingItemT"
|
|
657
672
|
:ref="(insRef) => getDetailRefs(insRef, row.id)"
|
|
658
673
|
/>
|
|
659
674
|
<div class="activity-btn" v-if="!row.isExpired && !row.is_delete">
|
|
@@ -708,12 +723,12 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
708
723
|
<!-- 撤销审核弹窗 -->
|
|
709
724
|
<ODialog v-model:visible="revokeVisible" main-class="handle-dialog-active" :actions="revokeActions">
|
|
710
725
|
<template #header>{{ t('meeting.withdrawReview') }}</template>
|
|
711
|
-
<div class="dialog-content">{{ t('meeting.confirmRevokeActivity', [currentRow
|
|
726
|
+
<div class="dialog-content">{{ t('meeting.confirmRevokeActivity', [currentRow?.title]) }}</div>
|
|
712
727
|
</ODialog>
|
|
713
728
|
<!-- 删除活动弹窗 -->
|
|
714
729
|
<ODialog v-model:visible="deleteVisible" main-class="handle-dialog-active" :actions="deleteActions">
|
|
715
730
|
<template #header>{{ t('meeting.deleteActivity') }}</template>
|
|
716
|
-
<div class="dialog-content">{{ t('meeting.confirmDeleteActivity', [currentRow
|
|
731
|
+
<div class="dialog-content">{{ t('meeting.confirmDeleteActivity', [currentRow?.title]) }}</div>
|
|
717
732
|
</ODialog>
|
|
718
733
|
</template>
|
|
719
734
|
|
|
@@ -748,11 +763,11 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
748
763
|
gap: var(--o-gap-4);
|
|
749
764
|
height: 100%;
|
|
750
765
|
--phone-padding-top: 0;
|
|
751
|
-
@include respond
|
|
766
|
+
@include respond('pad_v') {
|
|
752
767
|
flex-direction: column;
|
|
753
768
|
gap: var(--o-gap-4);
|
|
754
769
|
}
|
|
755
|
-
@include respond
|
|
770
|
+
@include respond('phone') {
|
|
756
771
|
flex-direction: column;
|
|
757
772
|
gap: var(--o-gap-3);
|
|
758
773
|
--phone-padding-top: calc(var(--o-gap-5) + var(--o-gap-3) + var(--o-gap-3));
|
|
@@ -793,7 +808,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
793
808
|
}
|
|
794
809
|
}
|
|
795
810
|
|
|
796
|
-
@include respond
|
|
811
|
+
@include respond('phone') {
|
|
797
812
|
padding-top: var(--o-gap-7);
|
|
798
813
|
background-color: var(--o-color-ubmc-bg);
|
|
799
814
|
padding-bottom: var(--o-gap-4);
|
|
@@ -811,7 +826,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
811
826
|
.left-calendar {
|
|
812
827
|
width: 336px;
|
|
813
828
|
flex-shrink: 0;
|
|
814
|
-
@include respond
|
|
829
|
+
@include respond('pad_h') {
|
|
815
830
|
.el-calendar {
|
|
816
831
|
.el-calendar__body {
|
|
817
832
|
padding-left: 12px;
|
|
@@ -829,10 +844,10 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
829
844
|
}
|
|
830
845
|
}
|
|
831
846
|
}
|
|
832
|
-
@include respond
|
|
847
|
+
@include respond('pad_v') {
|
|
833
848
|
width: 100%;
|
|
834
849
|
}
|
|
835
|
-
@include respond
|
|
850
|
+
@include respond('phone') {
|
|
836
851
|
display: none;
|
|
837
852
|
}
|
|
838
853
|
|
|
@@ -962,7 +977,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
962
977
|
|
|
963
978
|
&.clickable {
|
|
964
979
|
&::after {
|
|
965
|
-
background-color: rgb(var(--o-
|
|
980
|
+
background-color: rgb(var(--o-grey-6));
|
|
966
981
|
}
|
|
967
982
|
|
|
968
983
|
&.approved::after {
|
|
@@ -970,11 +985,11 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
970
985
|
}
|
|
971
986
|
|
|
972
987
|
&.expired::after {
|
|
973
|
-
background-color: rgb(var(--o-
|
|
988
|
+
background-color: rgb(var(--o-grey-6));
|
|
974
989
|
}
|
|
975
990
|
|
|
976
991
|
&.all-deleted::after {
|
|
977
|
-
background-color: rgb(var(--o-
|
|
992
|
+
background-color: rgb(var(--o-grey-6));
|
|
978
993
|
}
|
|
979
994
|
}
|
|
980
995
|
}
|
|
@@ -993,7 +1008,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
993
1008
|
flex-grow: 1;
|
|
994
1009
|
background-color: var(--o-color-fill2);
|
|
995
1010
|
|
|
996
|
-
@include respond
|
|
1011
|
+
@include respond('phone') {
|
|
997
1012
|
margin-top: calc(var(--phone-padding-top) - var(--o-gap-4));
|
|
998
1013
|
}
|
|
999
1014
|
|
|
@@ -1013,7 +1028,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1013
1028
|
.scroller-container {
|
|
1014
1029
|
height: 100%;
|
|
1015
1030
|
max-height: calc(var(--layout-left-height, 900px) - 4 * var(--o-gap-5) - var(--header-height) * 1px);
|
|
1016
|
-
@include respond
|
|
1031
|
+
@include respond('phone') {
|
|
1017
1032
|
max-height: fit-content;
|
|
1018
1033
|
}
|
|
1019
1034
|
|
|
@@ -1025,7 +1040,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1025
1040
|
flex-grow: 1;
|
|
1026
1041
|
}
|
|
1027
1042
|
|
|
1028
|
-
@include respond
|
|
1043
|
+
@include respond('phone') {
|
|
1029
1044
|
padding-left: var(--o-gap-2);
|
|
1030
1045
|
}
|
|
1031
1046
|
|
|
@@ -1054,13 +1069,13 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1054
1069
|
width: 16px;
|
|
1055
1070
|
height: 26px;
|
|
1056
1071
|
position: relative;
|
|
1057
|
-
@include respond
|
|
1072
|
+
@include respond('laptop') {
|
|
1058
1073
|
height: 24px;
|
|
1059
1074
|
}
|
|
1060
|
-
@include respond
|
|
1075
|
+
@include respond('pad_h') {
|
|
1061
1076
|
height: 22px;
|
|
1062
1077
|
}
|
|
1063
|
-
@include respond
|
|
1078
|
+
@include respond('<=pad_v') {
|
|
1064
1079
|
height: 22px;
|
|
1065
1080
|
}
|
|
1066
1081
|
|
|
@@ -1113,7 +1128,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1113
1128
|
margin-bottom: var(--o-gap-2);
|
|
1114
1129
|
color: var(--o-color-info1);
|
|
1115
1130
|
@include text2;
|
|
1116
|
-
@include respond
|
|
1131
|
+
@include respond('phone') {
|
|
1117
1132
|
padding-left: var(--o-gap-5);
|
|
1118
1133
|
}
|
|
1119
1134
|
|
|
@@ -1128,7 +1143,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1128
1143
|
.list-body {
|
|
1129
1144
|
height: 100%;
|
|
1130
1145
|
|
|
1131
|
-
@include respond
|
|
1146
|
+
@include respond('phone') {
|
|
1132
1147
|
height: fit-content;
|
|
1133
1148
|
padding: var(--o-gap-4) !important;
|
|
1134
1149
|
}
|
|
@@ -1143,7 +1158,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1143
1158
|
@include hover {
|
|
1144
1159
|
--btn-color: var(--o-color-primary2);
|
|
1145
1160
|
}
|
|
1146
|
-
@include respond
|
|
1161
|
+
@include respond('phone') {
|
|
1147
1162
|
display: none;
|
|
1148
1163
|
}
|
|
1149
1164
|
|
|
@@ -1194,22 +1209,22 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1194
1209
|
transition: margin var(--o-easing-standard) var(--o-duration-s);
|
|
1195
1210
|
--copy-display: none;
|
|
1196
1211
|
--icon-size: 24px;
|
|
1197
|
-
@include respond
|
|
1212
|
+
@include respond('<=pad_v') {
|
|
1198
1213
|
padding: var(--o-gap-3) var(--o-gap-4);
|
|
1199
1214
|
}
|
|
1200
1215
|
|
|
1201
1216
|
&:hover {
|
|
1202
|
-
@include respond
|
|
1217
|
+
@include respond('>pad_v') {
|
|
1203
1218
|
--copy-display: inline-flex;
|
|
1204
1219
|
}
|
|
1205
1220
|
}
|
|
1206
1221
|
|
|
1207
|
-
@include respond
|
|
1222
|
+
@include respond('phone') {
|
|
1208
1223
|
--icon-size: 20px;
|
|
1209
1224
|
}
|
|
1210
1225
|
|
|
1211
1226
|
&.o-collapse-item-expanded {
|
|
1212
|
-
@include respond
|
|
1227
|
+
@include respond('<=pad_v') {
|
|
1213
1228
|
--copy-display: inline-flex;
|
|
1214
1229
|
}
|
|
1215
1230
|
}
|
|
@@ -1233,7 +1248,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1233
1248
|
position: relative;
|
|
1234
1249
|
top: 4px;
|
|
1235
1250
|
flex-shrink: 0;
|
|
1236
|
-
@include respond
|
|
1251
|
+
@include respond('phone') {
|
|
1237
1252
|
position: absolute;
|
|
1238
1253
|
right: 0;
|
|
1239
1254
|
width: 20px;
|
|
@@ -1259,7 +1274,8 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1259
1274
|
align-items: flex-start;
|
|
1260
1275
|
gap: var(--o-gap-3);
|
|
1261
1276
|
width: 100%;
|
|
1262
|
-
|
|
1277
|
+
padding-right: 48px;
|
|
1278
|
+
@include respond('phone') {
|
|
1263
1279
|
flex-grow: 1;
|
|
1264
1280
|
width: 100%;
|
|
1265
1281
|
align-self: stretch;
|
|
@@ -1393,7 +1409,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1393
1409
|
height: 18px;
|
|
1394
1410
|
width: 18px;
|
|
1395
1411
|
display: var(--copy-display);
|
|
1396
|
-
@include respond
|
|
1412
|
+
@include respond('phone') {
|
|
1397
1413
|
bottom: var(--o-gap-2);
|
|
1398
1414
|
transform: revert;
|
|
1399
1415
|
top: revert;
|
|
@@ -1419,7 +1435,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1419
1435
|
|
|
1420
1436
|
.activity-detail {
|
|
1421
1437
|
padding-left: calc(var(--o-gap-3) + var(--icon-size));
|
|
1422
|
-
@include respond
|
|
1438
|
+
@include respond('phone') {
|
|
1423
1439
|
padding-left: 0;
|
|
1424
1440
|
}
|
|
1425
1441
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const WEBSITE_REGEXP = /^
|
|
1
|
+
export const WEBSITE_REGEXP = /^https?:\/\/\S+/;
|
|
@@ -14,10 +14,11 @@ export interface ParamsItemT {
|
|
|
14
14
|
end: string; // 活动结束时间
|
|
15
15
|
schedules?: string;
|
|
16
16
|
is_publish: string; // 是否发布 true-发布审核 false-发布为草稿
|
|
17
|
-
update_activity_id?: string;
|
|
17
|
+
update_activity_id?: string | number;
|
|
18
18
|
email_list?: string; // 邮件列表
|
|
19
19
|
organizer?: string; // 主办方
|
|
20
20
|
approver: string; // 审批人
|
|
21
|
+
status?: number; // 状态
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
export interface ActivityFormPropsT {
|
|
@@ -50,12 +51,18 @@ export interface ActivityItemT {
|
|
|
50
51
|
live_address: string;
|
|
51
52
|
register_end_date: string;
|
|
52
53
|
register_url: string;
|
|
54
|
+
content_url: string;
|
|
53
55
|
start: string;
|
|
54
56
|
status: number; // 1-草稿 2-审核中 3-报名中 4-进行中 5-已结束 6-已修改 7-驳回
|
|
55
57
|
synopsis: string;
|
|
56
58
|
title: string;
|
|
57
59
|
update_activity_id: number;
|
|
58
60
|
user: string;
|
|
61
|
+
sponsor: string; // 创建人
|
|
62
|
+
create_time: string; // 创建时间
|
|
63
|
+
isExpired?: number; // 计算属性表示是否过期
|
|
64
|
+
sub_id?: string;
|
|
65
|
+
dateRange?: string; // 计算属性
|
|
59
66
|
}
|
|
60
67
|
|
|
61
68
|
export interface ReviewParamsT {
|
|
@@ -59,16 +59,16 @@ const paddingBottom = computed(() => {
|
|
|
59
59
|
--layout-content-padding: 64px;
|
|
60
60
|
--layout-header-height: 80px;
|
|
61
61
|
|
|
62
|
-
@include respond
|
|
62
|
+
@include respond('<=laptop') {
|
|
63
63
|
--layout-content-max-width: 100%;
|
|
64
64
|
--layout-content-padding: 40px;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
@include respond
|
|
67
|
+
@include respond('<=pad') {
|
|
68
68
|
--layout-content-padding: 32px;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
@include respond
|
|
71
|
+
@include respond('phone') {
|
|
72
72
|
--layout-content-padding: 24px;
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -23,7 +23,7 @@ const { t } = useI18n();
|
|
|
23
23
|
const expanded = ref(false); // 是否展开
|
|
24
24
|
const showBtn = ref(false); // 受否显示展开按钮
|
|
25
25
|
const offsetHeight = ref(0); // 内容高度
|
|
26
|
-
const contentRef = ref(null); // 内容节点
|
|
26
|
+
const contentRef = ref<any>(null); // 内容节点
|
|
27
27
|
|
|
28
28
|
onMounted(() => {
|
|
29
29
|
determineHeight();
|
|
@@ -58,7 +58,7 @@ const visible = ref(false); // 控制浮窗展示
|
|
|
58
58
|
|
|
59
59
|
watch(
|
|
60
60
|
() => props.modelValue,
|
|
61
|
-
(val:
|
|
61
|
+
(val: any) => {
|
|
62
62
|
if (!props.multiple) {
|
|
63
63
|
checked.value = val;
|
|
64
64
|
} else {
|
|
@@ -67,16 +67,16 @@ watch(
|
|
|
67
67
|
},
|
|
68
68
|
);
|
|
69
69
|
// -------------------- 普通多选 --------------------
|
|
70
|
-
const multiChecked = ref([]); // 选中的值
|
|
70
|
+
const multiChecked = ref<any>([]); // 选中的值
|
|
71
71
|
|
|
72
|
-
const change = (val: string | number) => {
|
|
72
|
+
const change = (val: (string | number)[]) => {
|
|
73
73
|
multiChecked.value = val;
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
// -------------------- 级联选择 --------------------
|
|
77
77
|
const cascaderValue = ref([]);
|
|
78
78
|
// -------------------- 单选 --------------------
|
|
79
|
-
const checked = ref(null); // 选中的值
|
|
79
|
+
const checked = ref<any>(null); // 选中的值
|
|
80
80
|
// 单选没有按钮,点击即是确认
|
|
81
81
|
const handleCommand = (val: string | number) => {
|
|
82
82
|
if (checked.value === val) {
|
|
@@ -115,8 +115,8 @@ const hasChecked = computed(() => {
|
|
|
115
115
|
return multiChecked.value.length || cascaderValue.value.length || checked.value || props.modelValue;
|
|
116
116
|
});
|
|
117
117
|
// -------------------- 自定义级联选择器label --------------------
|
|
118
|
-
const aref = ref(null);
|
|
119
|
-
const clickLabelSpan = async (e) => {
|
|
118
|
+
const aref = ref<any>(null);
|
|
119
|
+
const clickLabelSpan = async (e: any) => {
|
|
120
120
|
const ele = e.target.parentElement.parentElement;
|
|
121
121
|
await nextTick();
|
|
122
122
|
const input = ele.querySelector('input');
|
|
@@ -127,7 +127,7 @@ const clickLabelSpan = async (e) => {
|
|
|
127
127
|
aref.value?.$forceUpdate();
|
|
128
128
|
cascaderValue.value = JSON.parse(JSON.stringify(cascaderValue.value));
|
|
129
129
|
};
|
|
130
|
-
const renderLabel = ({ data }) => {
|
|
130
|
+
const renderLabel = ({ data }: any) => {
|
|
131
131
|
return h('span', { onclick: clickLabelSpan }, data.label);
|
|
132
132
|
};
|
|
133
133
|
</script>
|