|
@@ -1,4 +1,4 @@
|
|
|
-import { defineComponent, ref, onMounted, onBeforeMount, nextTick } from 'vue';
|
|
|
+import { defineComponent, ref, onMounted, nextTick, onUnmounted } from 'vue';
|
|
|
import styles from './index.module.less';
|
|
|
import { NImage, NBadge, NPopover, NIcon, NModal, NTooltip } from 'naive-ui';
|
|
|
import styles2 from './modals/suggestion-option.module.less';
|
|
@@ -25,6 +25,8 @@ import ImGroup from './imGroup';
|
|
|
import SuggestionOption from './modals/suggestion-option';
|
|
|
import dayjs from 'dayjs';
|
|
|
import ClassModal from '/src/views/home/modals/class-modal';
|
|
|
+import { suggestMessageUnread } from '/src/api/user';
|
|
|
+import { eventGlobal } from '/src/utils';
|
|
|
export default defineComponent({
|
|
|
name: 'layoutTop',
|
|
|
setup() {
|
|
@@ -60,11 +62,40 @@ export default defineComponent({
|
|
|
console.log(suggestionOptionRef.value, 'suggestionOptionRef');
|
|
|
};
|
|
|
|
|
|
+ const suggestionStatus = ref(false);
|
|
|
+ const getSuggestMessageUnread = async () => {
|
|
|
+ try {
|
|
|
+ const { data } = await suggestMessageUnread();
|
|
|
+ const temp = data || [];
|
|
|
+ let system: any = {};
|
|
|
+ temp.forEach((item: any) => {
|
|
|
+ if (item.group === 'SYSTEM') {
|
|
|
+ system = item;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (system.number > 0) {
|
|
|
+ suggestionStatus.value = system.number > 0 ? true : false;
|
|
|
+ } else {
|
|
|
+ suggestionStatus.value = false;
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
window.addEventListener('message', onImMessage);
|
|
|
showImGroupLoading.value = true;
|
|
|
showImGroup.value = true;
|
|
|
|
|
|
+ getSuggestMessageUnread();
|
|
|
+
|
|
|
+ eventGlobal.on('onSuggestionRead', () => {
|
|
|
+ if (suggestionStatus.value) {
|
|
|
+ getSuggestMessageUnread();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
nextTick(() => {
|
|
|
setTimeout(() => {
|
|
|
showImGroup.value = false;
|
|
@@ -87,7 +118,7 @@ export default defineComponent({
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- onBeforeMount(() => {
|
|
|
+ onUnmounted(() => {
|
|
|
window.removeEventListener('message', onImMessage);
|
|
|
});
|
|
|
|
|
@@ -139,7 +170,9 @@ export default defineComponent({
|
|
|
{{
|
|
|
trigger: () => (
|
|
|
<div class={styles.optons} onClick={showOption}>
|
|
|
- <NImage src={opinionIcon} previewDisabled></NImage>
|
|
|
+ <NBadge dot={suggestionStatus.value} color={'#FF1036'}>
|
|
|
+ <NImage src={opinionIcon} previewDisabled></NImage>
|
|
|
+ </NBadge>
|
|
|
</div>
|
|
|
),
|
|
|
default: '意见反馈'
|