@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.
Files changed (109) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +132 -112
  3. package/dist/components/OHeaderSearch.vue.d.ts +824 -506
  4. package/dist/components/OSourceCode.vue.d.ts +4 -6
  5. package/dist/components/activity/OActivityApproval.vue.d.ts +6 -10
  6. package/dist/components/activity/OActivityForm.vue.d.ts +3 -5
  7. package/dist/components/activity/OMyActivityCalendar.vue.d.ts +100 -46
  8. package/dist/components/activity/index.d.ts +56 -33
  9. package/dist/components/activity/types.d.ts +8 -1
  10. package/dist/components/events/config.d.ts +5 -18
  11. package/dist/components/events/types.d.ts +4 -1
  12. package/dist/components/header/OHeaderMobile.vue.d.ts +18 -11
  13. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +4 -1
  14. package/dist/components/header/index.d.ts +12 -5
  15. package/dist/components/header/types.d.ts +4 -0
  16. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +8 -12
  17. package/dist/components/meeting/OMeetingForm.vue.d.ts +3 -5
  18. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +45 -0
  19. package/dist/components/meeting/OMyMeetingCalendar.vue.d.ts +100 -46
  20. package/dist/components/meeting/components/OMeetingCalendarList.vue.d.ts +1 -1
  21. package/dist/components/meeting/index.d.ts +817 -0
  22. package/dist/components/meeting/types.d.ts +82 -17
  23. package/dist/components/meeting/utils.d.ts +1 -1
  24. package/dist/components/search/OSearchInput.vue.d.ts +1003 -0
  25. package/dist/components/search/composables/useImageSearch.d.ts +48 -0
  26. package/dist/components/search/composables/useKeywordHighlight.d.ts +2 -0
  27. package/dist/components/search/composables/useSearchHistory.d.ts +14 -0
  28. package/dist/components/search/index.d.ts +590 -0
  29. package/dist/components/search/internal/HighlightText.vue.d.ts +9 -0
  30. package/dist/components/search/internal/SearchImageInput.vue.d.ts +716 -0
  31. package/dist/components/search/internal/SearchPanel.vue.d.ts +100 -0
  32. package/dist/components/search/types.d.ts +20 -0
  33. package/dist/components.cjs.js +43 -43
  34. package/dist/components.css +1 -1
  35. package/dist/components.es.js +11681 -10636
  36. package/dist/index.d.ts +1 -0
  37. package/package.json +3 -3
  38. package/src/assets/svg-icons/icon-delete-hover.svg +4 -0
  39. package/src/assets/svg-icons/icon-delete.svg +5 -1
  40. package/src/assets/svg-icons/icon-image-close.svg +4 -0
  41. package/src/assets/svg-icons/icon-image-upload.svg +3 -0
  42. package/src/assets/svg-icons/icon-image-zoomin.svg +3 -0
  43. package/src/assets/svg-icons/icon-refresh.svg +3 -0
  44. package/src/components/OBanner.vue +18 -18
  45. package/src/components/OCookieNotice.vue +21 -21
  46. package/src/components/OFooter.vue +18 -17
  47. package/src/components/OHeaderSearch.vue +402 -420
  48. package/src/components/OHeaderUser.vue +3 -2
  49. package/src/components/OSection.vue +4 -4
  50. package/src/components/OSourceCode.vue +8 -10
  51. package/src/components/activity/OActivityApproval.vue +32 -32
  52. package/src/components/activity/OActivityForm.vue +5 -5
  53. package/src/components/activity/OMyActivityCalendar.vue +66 -50
  54. package/src/components/activity/config.ts +1 -1
  55. package/src/components/activity/types.ts +8 -1
  56. package/src/components/common/ContentWrapper.vue +3 -3
  57. package/src/components/common/MoreText.vue +1 -1
  58. package/src/components/common/ThFilter.vue +7 -7
  59. package/src/components/element-plus/OElCookieNotice.vue +27 -27
  60. package/src/components/events/OEventsApply.vue +44 -44
  61. package/src/components/events/OEventsCalendar.vue +14 -14
  62. package/src/components/events/OEventsList.vue +53 -26
  63. package/src/components/events/config.ts +1 -1
  64. package/src/components/events/types.ts +4 -1
  65. package/src/components/header/OHeader.vue +2 -2
  66. package/src/components/header/OHeaderMobile.vue +8 -1
  67. package/src/components/header/components/HeaderContent.vue +67 -63
  68. package/src/components/header/components/HeaderNav.vue +4 -4
  69. package/src/components/header/components/HeaderNavMobile.vue +8 -5
  70. package/src/components/header/types.ts +4 -0
  71. package/src/components/meeting/OMeetingCalendar.vue +66 -54
  72. package/src/components/meeting/OMeetingForm.vue +70 -51
  73. package/src/components/meeting/OMeetingPlayback.vue +8 -8
  74. package/src/components/meeting/OMyMeetingCalendar.vue +56 -45
  75. package/src/components/meeting/OSigMeetingCalendar.vue +31 -28
  76. package/src/components/meeting/components/OMeetingCalendarList.vue +31 -26
  77. package/src/components/meeting/components/OMeetingCalendarSelector.vue +10 -6
  78. package/src/components/meeting/components/OMeetingDetail.vue +32 -18
  79. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +1 -1
  80. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +12 -12
  81. package/src/components/meeting/components/OSigMeetingAside.vue +8 -9
  82. package/src/components/meeting/types.ts +88 -17
  83. package/src/components/search/OSearchInput.vue +463 -0
  84. package/src/components/search/composables/useImageSearch.ts +157 -0
  85. package/src/components/search/composables/useKeywordHighlight.ts +30 -0
  86. package/src/components/search/composables/useSearchHistory.ts +75 -0
  87. package/src/components/search/index.ts +23 -0
  88. package/src/components/search/internal/HighlightText.vue +37 -0
  89. package/src/components/search/internal/SearchImageInput.vue +488 -0
  90. package/src/components/search/internal/SearchPanel.vue +430 -0
  91. package/src/components/search/types.ts +25 -0
  92. package/src/draft/Banner.vue +6 -6
  93. package/src/draft/ButtonCards.vue +1 -1
  94. package/src/draft/Feature.vue +6 -6
  95. package/src/draft/Footer.vue +29 -22
  96. package/src/draft/HorizontalAnchor.vue +4 -4
  97. package/src/draft/ItemSwiper.vue +2 -2
  98. package/src/draft/Logo.vue +3 -3
  99. package/src/draft/LogoCard.vue +2 -2
  100. package/src/draft/MultiCard.vue +1 -1
  101. package/src/draft/MultiIconCard.vue +1 -1
  102. package/src/draft/OInfoCard.vue +4 -4
  103. package/src/draft/Section.vue +4 -4
  104. package/src/draft/SingleTabCard.vue +1 -1
  105. package/src/draft/SliderCard.vue +4 -3
  106. package/src/i18n/en.ts +10 -0
  107. package/src/i18n/zh.ts +10 -0
  108. package/src/index.ts +1 -0
  109. 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 || total.value === null);
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: number) => {
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
- const activityList = computed(() => {
235
- return list.value.reduce((prev, cur) => {
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.title]),
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.title]),
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.title]) }}</div>
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.title]) }}</div>
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-to('pad_v') {
766
+ @include respond('pad_v') {
752
767
  flex-direction: column;
753
768
  gap: var(--o-gap-4);
754
769
  }
755
- @include respond-to('phone') {
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-to('phone') {
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-to('pad_h') {
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-to('pad_v') {
847
+ @include respond('pad_v') {
833
848
  width: 100%;
834
849
  }
835
- @include respond-to('phone') {
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-mixedgray-6));
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-mixedgray-6));
988
+ background-color: rgb(var(--o-grey-6));
974
989
  }
975
990
 
976
991
  &.all-deleted::after {
977
- background-color: rgb(var(--o-mixedgray-6));
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-to('phone') {
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-to('phone') {
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-to('phone') {
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-to('laptop') {
1072
+ @include respond('laptop') {
1058
1073
  height: 24px;
1059
1074
  }
1060
- @include respond-to('pad_h') {
1075
+ @include respond('pad_h') {
1061
1076
  height: 22px;
1062
1077
  }
1063
- @include respond-to('<=pad_v') {
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-to('phone') {
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-to('phone') {
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-to('phone') {
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-to('<=pad_v') {
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-to('>pad_v') {
1217
+ @include respond('>pad_v') {
1203
1218
  --copy-display: inline-flex;
1204
1219
  }
1205
1220
  }
1206
1221
 
1207
- @include respond-to('phone') {
1222
+ @include respond('phone') {
1208
1223
  --icon-size: 20px;
1209
1224
  }
1210
1225
 
1211
1226
  &.o-collapse-item-expanded {
1212
- @include respond-to('<=pad_v') {
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-to('phone') {
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
- @include respond-to('phone') {
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-to('phone') {
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-to('phone') {
1438
+ @include respond('phone') {
1423
1439
  padding-left: 0;
1424
1440
  }
1425
1441
 
@@ -1 +1 @@
1
- export const WEBSITE_REGEXP = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w ./?%&=-]*)?$/;
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-to('<=laptop') {
62
+ @include respond('<=laptop') {
63
63
  --layout-content-max-width: 100%;
64
64
  --layout-content-padding: 40px;
65
65
  }
66
66
 
67
- @include respond-to('<=pad') {
67
+ @include respond('<=pad') {
68
68
  --layout-content-padding: 32px;
69
69
  }
70
70
 
71
- @include respond-to('phone') {
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: TItem) => {
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>