From 7ab266cd29dde89d1894b96b00ccb6088c5bddbc Mon Sep 17 00:00:00 2001 From: ChenXiaohui <1432297778@qq.com> Date: Thu, 23 Dec 2021 15:34:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=92=A4=E5=9B=9E?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E3=80=81=E5=9B=9E=E5=88=B0=E9=A1=B6=E9=83=A8?= =?UTF-8?q?=E3=80=81=E7=BA=A2=E5=8C=85=E5=8D=81=E8=BF=9E=E5=8F=91=E3=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=95=E7=94=A8=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- public/icons/1024.png | Bin 0 -> 46868 bytes src/api/chat.js | 8 + src/background/main.js | 2 +- src/components/Message.vue | 25 ++- src/components/RedPacket.vue | 239 +++++++++++++++----------- src/components/RedPacketInfo.vue | 91 ++++++---- src/components/Send.vue | 15 +- src/components/UserCard.vue | 6 +- src/content-scripts/content-script.js | 23 ++- src/manifest.json | 2 +- src/options/App.vue | 18 -- src/options/main.js | 8 - src/store/index.js | 22 ++- src/views/ChatRoom.vue | 26 +++ src/views/Login.vue | 3 +- 16 files changed, 297 insertions(+), 193 deletions(-) create mode 100644 public/icons/1024.png delete mode 100644 src/options/App.vue delete mode 100644 src/options/main.js diff --git a/package.json b/package.json index 93d85f2..cbb002d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pwl-chat-extension", - "version": "0.2.5", + "version": "0.2.6", "private": true, "scripts": { "serve": "vue-cli-service build --mode development --watch", diff --git a/public/icons/1024.png b/public/icons/1024.png new file mode 100644 index 0000000000000000000000000000000000000000..591d8f3501789d7e4e9d595a08e5ef71e522a98e GIT binary patch literal 46868 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

t;UiIQ!I!SusfthRC9Qk{_M)d_5|Yg5 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

EIq?liz8%VFv%(!e z{zOGTX1?NaLa~r{A69B2!_otcs8g8a{dp=nxvj5JeYof5JQ+frSgg8)J*eY@xLZmM zaX&3~%avkM^axc-OUHJamNJ=jcomS zu*)DI=g{-WVhXaxc4B!wUUSeKmhFl`cd^K)AA%`<55cqQ@bn}#`sO1oiggNq9gA45 zVvo#QLsR(WU{rrKoL9U6Rm#?M{*;OnGC!#s6yKS!#+dmW;)3&Mf*I@0@w<^4R0xxzOBgV)pPgxe>k)=U>o(!(#fJ9BAeM8>)t1|q>_=@<`u(gO;aVO zkEQdUs{D+aWL;xUwfRz*dFX4g4mBc`FG%6PQrUx=zDvpd`|a=)EG$ggT@^}xXCEdR)K@?bUp|X2 z_bh?o>mR;z26n?7AI#(g)PnRp?t|WV(Pn`+jDjmJ2)1=P7#WMzhc%xE z__Wp;0oIBJ2do%#z_E3}+D~Do~2??Nj+LqV}hr8%d=oP@&}IGxiYO zirf?dDUkA<+K7@1lu(Mc(_^R6_}|k^ zLc43w40`uGphdm9f}NnnuG2B3^e>Kd7hmF)rrDGOo($6x7;Of41MKd#zo!Hh<}!&^ zI5o=M3sPhnIns}6vX7d?788=EM2~vNUA&OTNlY|GJ3g%8asDjB zNruuxjEl?I_s;TsT8xb{0wU+*}zXq=54nA zYB8bM=ON`)^V(xs?Cq_;22Z!iZs9(f8K|?85TiL1jbPkYGaY*Ej7~^?Y7qGw-iH;Or_+npr^M z?y4}s8|NghvnRTO=1NEydaPL%pNYz?H5;KXG3ij*px4LW_+ewZ!CBRpeHeKRkEB_~msb=j=F;(L78Lq75i+lu*Wu%Ee#t*_pn7ozl-Qq(?7N1NT} zCgzx~6>2!BvEeAfDVaaZ46ZP~L#}}5tQF(a6862&8oO@m9PI!d8&`1*llaIhy=8p+ zzvZ{wlPFxrB$Rp5DUnYvmF{wI8y3gJz58c=SKsRTAM_4K)sp9Y?|VJs1={R7-}35uIHgt{53OodbL7b4r$xFaa4hu9~_ygzxG zMYM}5^l?DcAJN}=l8O#t7j>_j*o#TL5XoNmde!a|2fUBhW-qt#Z!b^4LVA-~^9#~$ z{mrLkY_N{Um_#l_^aoXRxAje1!)8Npj{k%e9JuvcPjcy7GZLNq>J|igh>!C)@t_ln z6g2-AY3YwoO^9s2!>SeZ;t4W4Vh`4MGcK*?Lw_Y1&aQ0Tg zJVcx2%Cr(tkX|#@SaZBaot@%qc(}ZSNpxK{>xWzHDrfmcao1Op3^Qw;lT)8%OrvAndPK(GX8(v1-%v#eps9>UbCDn2xA{yELqI% zO6R9A2{R@U$s~R=mHpTLvyNiK;rJ!fzlx&wl4~*SDy}vycNq@kakgNyJ0J+fbhOxw z8T^pA6Z0d>R0!5?yFFD$PqGq}NT!&N7qN)Hc$^)WWH__4%+_i4i$9NZ3X5BX&wY=_ zmraExSHn46K8%1gknqZ4)+2te;2XV{v0sIDm(7em%{=|(7zD-;lKocs$MR_{R`5p5 zw>@_GKW})PBUttK_|?yXZm<7rSf)|OOYqA*+W=01m3-ZcCUF2DfIV9ghQRaUXNzG zoKAr2S{~h0LW)))RYX)?}xC*;ErjlgA8C z{Vp#_Xq)MJGqp%*x3#=vU*}Atxcs4@WGa8EzFw}Cp25G7t5@A+gGXfWb(q0t撤回 {{ getTime(message.time) }} - + - + - {{message.users.length}} 人+1 + {{ message.users.length }} 人+1 + @@ -84,6 +102,7 @@ export default { props: { message: Object, date: String, + unlimitedRevoke: Boolean, }, data() { return { diff --git a/src/components/RedPacket.vue b/src/components/RedPacket.vue index ad65777..695a2b5 100644 --- a/src/components/RedPacket.vue +++ b/src/components/RedPacket.vue @@ -1,89 +1,104 @@ \ No newline at end of file + diff --git a/src/components/RedPacketInfo.vue b/src/components/RedPacketInfo.vue index bcffea3..0cafd99 100644 --- a/src/components/RedPacketInfo.vue +++ b/src/components/RedPacketInfo.vue @@ -1,60 +1,75 @@ @@ -71,6 +86,10 @@ export default { text-align: center; height: 35px; } +.who-box { + max-height: 280px; + overflow: auto; +} .user { width: 140px; } @@ -92,4 +111,4 @@ export default { font-size: 16px; font-weight: bolder; } - \ No newline at end of file + diff --git a/src/components/Send.vue b/src/components/Send.vue index 1f480fb..e260471 100644 --- a/src/components/Send.vue +++ b/src/components/Send.vue @@ -88,7 +88,7 @@ export default { return } getUserName({ name: matAt[1] }).then((res) => { - if (0 === res.code) { + if (0 === res.code && res.data.length > 0) { this.userList = res.data this.visible = true } @@ -158,17 +158,22 @@ export default { let form = this.form if (this.quoteVisible) { let quoteForm = this.quoteForm - form.content += - '\n##### 引用 @' + - quoteForm.userName + + + form.content = + '引用 @' + this.buildAtUser(quoteForm.userName) + '\n> ' + - (quoteForm.md ? quoteForm.md : quoteForm.content) + (quoteForm.md ? quoteForm.md : quoteForm.content) + + '\n\n并说:' + + form.content } send(form).then(() => { this.quoteVisible = false this.content = '' }) }, + buildAtUser(userName) { + return '' + userName + '' + } }, } diff --git a/src/components/UserCard.vue b/src/components/UserCard.vue index bf2194c..3930bd3 100644 --- a/src/components/UserCard.vue +++ b/src/components/UserCard.vue @@ -25,7 +25,8 @@ + class="column user-info"> + {{userInfo.userNo}}号 {{userInfo.userAppRole == 0 ? '黑客' : '画家'}} {{userInfo.userRole}} {{userInfo.userPoint}} {{userInfo.userCity}} @@ -97,6 +98,9 @@ export default { .info .column { padding: 0 20px; } +.user-info { + padding: 0 5px !important; +} .intro { height: 40px; text-align: center; diff --git a/src/content-scripts/content-script.js b/src/content-scripts/content-script.js index d41fad7..38285b6 100644 --- a/src/content-scripts/content-script.js +++ b/src/content-scripts/content-script.js @@ -1,17 +1,22 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - let img = document.getElementById('pwl-extension-img'); + let img = document.getElementById('pwl-extension-img') if (img) { if (img.getAttribute('src') !== request.src) { - img.setAttribute('src', request.src); - return; + img.setAttribute('src', request.src) + return } img.style.display = 'none' === img.style.display ? '' : 'none' - return; + return } - img = document.createElement('img'); + img = document.createElement('img') img.setAttribute('id', 'pwl-extension-img') img.setAttribute('onclick', 'this.style.display="none"') - img.setAttribute("style", "position: fixed;z-index: 9999999999;max-height: 80%;max-width: 60%;top: 100px;left:50px;") - img.setAttribute('src', request.src); - document.body.appendChild(img); -}) \ No newline at end of file + img.setAttribute('src', request.src) + let div = document.createElement('div') + div.setAttribute( + 'style', + 'position: fixed;z-index: 9999999999;max-height: 80%;max-width: 60%;overflow: auto;top: 100px;left:50px;' + ) + document.body.appendChild(div) + div.appendChild(img) +}) diff --git a/src/manifest.json b/src/manifest.json index b994860..2244fd0 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "摸鱼派聊天室", - "version": "0.2.5", + "version": "0.2.6", "homepage_url": "https://github.com/Lemon-cxh/pwl-chat-extension", "description": "摸鱼派聊天室插件", "permissions": [ diff --git a/src/options/App.vue b/src/options/App.vue deleted file mode 100644 index e28480a..0000000 --- a/src/options/App.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - - - diff --git a/src/options/main.js b/src/options/main.js deleted file mode 100644 index 503fd89..0000000 --- a/src/options/main.js +++ /dev/null @@ -1,8 +0,0 @@ -import Vue from 'vue' -import App from './App.vue' - -/* eslint-disable no-new */ -new Vue({ - el: '#app', - render: h => h(App) -}) diff --git a/src/store/index.js b/src/store/index.js index 7a61820..1f91a70 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -4,9 +4,14 @@ import { getUserInfo } from '../api/login' import { MESSAGE_LIMIT, STORAGE, MESSAGE_TYPE } from '../constant/Constant' import { setLocal, getLocal } from "../utils/chromeUtil" import { isRedPacket } from '../utils/util' +import { send } from '../api/chat' Vue.use(Vuex) +async function sendMessage(content, key) { + send({ content: content, apiKey: key }).then() +} + export default new Vuex.Store({ state: { key: '', @@ -80,9 +85,18 @@ export default new Vuex.Store({ state.messageTotal += 1 let last = state.message[0] if (last && last.md && message.message.md === last.md && !isRedPacket(message.message)) { - let users = last.users ? last.users : [] - users.unshift({ userName: message.message.userName, userAvatarURL: message.message.userAvatarURL }) + let users = last.users, oIds = last.oIds + if (!last.users) { + users = [] + oIds = [] + } + let length = users.push({ userName: message.message.userName, userAvatarURL: message.message.userAvatarURL }) + oIds.push(message.oId) state.message[0].users = users + state.message[0].oIds = oIds + if (length === 3) { + sendMessage(message.message.md, state.key) + } return } } @@ -115,10 +129,10 @@ export default new Vuex.Store({ }) }, revoke(state, oId) { - state.messageTotal -= 1 state.message.some(e => { - if (e.oId == oId && e.type === MESSAGE_TYPE.msg) { + if (e.type === MESSAGE_TYPE.msg && (e.oId == oId || (e.oIds && e.oIds.some(e => e === oId)))) { e.revoke = true; + state.messageTotal -= 1 return true; } return false; diff --git a/src/views/ChatRoom.vue b/src/views/ChatRoom.vue index d9cce6b..25ecd25 100644 --- a/src/views/ChatRoom.vue +++ b/src/views/ChatRoom.vue @@ -21,6 +21,7 @@

+
e === this.userInfo.userRole) + } }, components: { Message, @@ -276,6 +283,20 @@ export default { return false }) }, + revokeMessage(message) { + if (message.oIds) { + message.oIds.push(message.oId) + let count = 0 + message.oIds.forEach(oId => { + revoke(oId).then(res => count += (res.code === 0 ? 1 : 0)) + }); + this.$message.success('批量撤回' + count + '条消息') + return + } + revoke(message.oId).then(res => { + 0 === res.code ? this.$message.success(res.msg) : this.$message.info(res.msg) + }) + }, showRedpacketInfo(info) { this.redPacketVisible = true this.redPacketInfo = info @@ -324,3 +345,8 @@ export default { margin: 0 3px; } + diff --git a/src/views/Login.vue b/src/views/Login.vue index d1a0fb3..19bf3d4 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -1,7 +1,7 @@