| 
					
				 | 
			
			
				@@ -1,17 +1,17 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="denet-message" v-show="state.list.length > 0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <template v-for="item in state.list"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="denet-message-area" @click="clickItem(item)" v-if="item.type == 1 && item.show"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="denet-message-area" @click="clickItem(item)" v-if="item.bizType == 2"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <img :src="require('@/assets/img/icon-message-fail.png')" alt /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <span>You were not selected from jerryWang's giveaway... click to see more giveaway!</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <div class="denet-message-close" @click="clickClose(item)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <img :src="require('@/assets/img/icon-message-close.png')" alt /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="denet-message-area" @click="clickItem(item)" v-if="item.type == 2 && item.show"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="denet-message-area" @click="clickItem(item)" v-if="item.bizType == 1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <img :src="require('@/assets/img/icon-message-win.png')" alt /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <span>Congratulations! You won <b class="denet-message-money">{{ item.data.lotteryMoney }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        {{ item.data.lotteryTokenSymbol }}</b> from jerryWang's giveaway! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span>Congratulations! You won <b class="denet-message-money">{{ item.bizData.lotteryMoney }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        {{ item.bizData.lotteryTokenSymbol }}</b> from jerryWang's giveaway! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     🎉</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <div class="denet-message-close" @click="clickClose(item)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <img :src="require('@/assets/img/icon-message-close.png')" alt /> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -21,84 +21,65 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script setup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { json } from "body-parser"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { onMounted, reactive } from "vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { escapeJsonPointer } from "_ajv@8.11.0@ajv/dist/compile/util"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let state = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    list: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            id: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bizType: 1, // 1.中奖 2.未中奖 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            show: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 过5秒已读消息记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    read_list: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    overTimeClose([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    list: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 过5秒消失逻辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const overTimeClose = (list) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    list.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        state.read_list.push(item.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const overTimeClose = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        state.list.forEach(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 所有的数据全部清除掉 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 请求已读接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let now_time = new Date().getTime() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let i in state.list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ((now_time - state.list[i].read_time) > 4500) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                state.list.splice(i, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 5000) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const clickClose = (item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 通知已读 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // for(let i in state.list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     if(state.list[i].id == item.id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    item.show = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for (let i in state.list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (item.id == state.list[i].id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            state.list.splice(i, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const clickItem = (item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 跳转详情页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    window.open(`https://twitter.com/${item.bizData.twitterAccount}/status/${item.bizData.twitterId}`) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 读取消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const readMessage = (id = 0) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     chrome.runtime.sendMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         actionType: "CONTENT_HTTP_NET_WORK", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         funcName: '通知已读', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             url: '/notice/read', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             params: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                noticeId: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                noticeId: id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (req.actionType == 'CONTENT_HTTP_NET_WORK') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        switch (req.funcName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case '通知已读': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else if (req.actionType == 'BACK_未读消息') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let data = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (req.data.code == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data = req.data.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (req.actionType == 'BACK_UNREAD_MESSAGE') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let data = req.data.data || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (req.data.code == 0 && data.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (state.list.filter((filter_item) => { return filter_item.id == item.id }).length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    item.bizData = JSON.parse(item.bizData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    item.read_time = new Date().getTime() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    state.list.push(item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                readMessage(item.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            overTimeClose() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        data.forEach((item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (state.list.filter((filter_item) => { return filter_item == item.id }).length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.bizData = JSON.parse(item.bizData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                state.list.push(item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log('state.list', state.list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 |