From cd92db66e451bb8c21b27d151ee934f667b655c7 Mon Sep 17 00:00:00 2001 From: Spark <2666652@gmail.com> Date: Sat, 12 Oct 2024 17:07:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=82=B9=E5=90=8D?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RollCallClient/src/assets/icons/iconfont.css | 18 +++- RollCallClient/src/assets/icons/iconfont.js | 2 +- RollCallClient/src/assets/icons/iconfont.json | 21 +++++ RollCallClient/src/assets/icons/iconfont.ttf | Bin 1972 -> 3488 bytes RollCallClient/src/assets/icons/iconfont.woff | Bin 1280 -> 2172 bytes .../src/assets/icons/iconfont.woff2 | Bin 912 -> 1688 bytes RollCallClient/src/views/RollCall.vue | 79 +++++++++++++++++- 7 files changed, 112 insertions(+), 8 deletions(-) diff --git a/RollCallClient/src/assets/icons/iconfont.css b/RollCallClient/src/assets/icons/iconfont.css index fd6fecd..594582f 100644 --- a/RollCallClient/src/assets/icons/iconfont.css +++ b/RollCallClient/src/assets/icons/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 4702540 */ - src: url('iconfont.woff2?t=1728542908069') format('woff2'), - url('iconfont.woff?t=1728542908069') format('woff'), - url('iconfont.ttf?t=1728542908069') format('truetype'); + src: url('iconfont.woff2?t=1728720001607') format('woff2'), + url('iconfont.woff?t=1728720001607') format('woff'), + url('iconfont.ttf?t=1728720001607') format('truetype'); } .iconfont { @@ -13,6 +13,18 @@ -moz-osx-font-smoothing: grayscale; } +.yaya-touzi:before { + content: "\e674"; +} + +.yaya-touzi1:before { + content: "\e601"; +} + +.yaya-touzi2:before { + content: "\e635"; +} + .yaya-xmark:before { content: "\e649"; } diff --git a/RollCallClient/src/assets/icons/iconfont.js b/RollCallClient/src/assets/icons/iconfont.js index 2d04634..8f5fffd 100644 --- a/RollCallClient/src/assets/icons/iconfont.js +++ b/RollCallClient/src/assets/icons/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_4702540='',(n=>{var t=(e=(e=document.getElementsByTagName("script"))[e.length-1]).getAttribute("data-injectcss"),e=e.getAttribute("data-disable-injectsvg");if(!e){var o,i,a,c,s,d=function(t,e){e.parentNode.insertBefore(t,e)};if(t&&!n.__iconfont__svg__cssinject__){n.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(t){console&&console.log(t)}}o=function(){var t,e=document.createElement("div");e.innerHTML=n._iconfont_svg_string_4702540,(e=e.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",e=e,(t=document.body).firstChild?d(e,t.firstChild):t.appendChild(e))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),o()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(a=o,c=n.document,s=!1,r(),c.onreadystatechange=function(){"complete"==c.readyState&&(c.onreadystatechange=null,l())})}function l(){s||(s=!0,a())}function r(){try{c.documentElement.doScroll("left")}catch(t){return void setTimeout(r,50)}l()}})(window); \ No newline at end of file +window._iconfont_svg_string_4702540='',(e=>{var t=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var a,o,n,i,l,s=function(t,c){c.parentNode.insertBefore(t,c)};if(t&&!e.__iconfont__svg__cssinject__){e.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(t){console&&console.log(t)}}a=function(){var t,c=document.createElement("div");c.innerHTML=e._iconfont_svg_string_4702540,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(t=document.body).firstChild?s(c,t.firstChild):t.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),a()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(n=a,i=e.document,l=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,d())})}function d(){l||(l=!0,n())}function m(){try{i.documentElement.doScroll("left")}catch(t){return void setTimeout(m,50)}d()}})(window); \ No newline at end of file diff --git a/RollCallClient/src/assets/icons/iconfont.json b/RollCallClient/src/assets/icons/iconfont.json index bc745e7..bc1f8d3 100644 --- a/RollCallClient/src/assets/icons/iconfont.json +++ b/RollCallClient/src/assets/icons/iconfont.json @@ -5,6 +5,27 @@ "css_prefix_text": "yaya-", "description": "", "glyphs": [ + { + "icon_id": "2119065", + "name": "骰子", + "font_class": "touzi", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "11868243", + "name": "骰子", + "font_class": "touzi1", + "unicode": "e601", + "unicode_decimal": 58881 + }, + { + "icon_id": "30016060", + "name": "骰子", + "font_class": "touzi2", + "unicode": "e635", + "unicode_decimal": 58933 + }, { "icon_id": "35012394", "name": "xmark", diff --git a/RollCallClient/src/assets/icons/iconfont.ttf b/RollCallClient/src/assets/icons/iconfont.ttf index 60c2e49fac87392e87cbc24c64a31d6624c18c13..9dc81d106c4d1f0537335062ba7ed8149f73b28d 100644 GIT binary patch literal 3488 zcmd^C?QdIG8GoMp>iAyU*S_|(>%^|@#7>)bPJ5F$s4rR8msF7^4XtZ55m@IX&P(x| z9A`@hY(WF1?IsOv0#Q{$NaF(_kPsh0NQez2U=ndyfGDK!J7O;n110=T2mv%|8i%A0zgm2hI+g$BgMyBtJ*; zqjR-#bNVM=XaI0N;(otay}0n+f6CVZ_*($dKb9)x`Tb9AcFFcFYNaJ2w_-o@g~WA)y7;|`nKdS%ip<{PI5p09EhyP;RvXNY$ z7LfluDSSY8w=brZ;XR1j5@Y@J0btp&i|PGv2qu6#HFf_(5UiHlbx48}-qCNzSY2K$ zQ+!8*WXH5f41(mcf&lm>5GmKo+^>my-WlPAo9e1$o27s)AR632RdzgJ%GOs zEE_h*4=#?~@PkI{wM`~S_oXTTIOx#$lsrFcxtF_hK65 zAdch;gN4$)SW2T5LMb0L%+hEfC-ELY59l5k-vu~GM65L}qHB0rKcM4fEfNV?Pw3Vo zxWNe=ZdeylL~9MNgknb8z}TW9zaNmbRPet6*(Ziy>WPRxnS`_^2j1_o-c1&g$$alD zwcdOZ&rwG(=nUr__Pir~PQByLMDRI1+jB!vZuqkiYbBELzpLWJZN%GnOG!4uO z*z>0QFaA2;2XQz6N8mJ^qupu3XW&`52H$}1!VlnOcolvNe}cE+Cfs4aAX;WwGT8c? zwC>}j!Z6Yv$Yz{4gJ~JTwq!)k(GJDQZhQgu5viOw% zQ86m;fXYT$;<+AK2!>@(=a=K;#he4GCHVqH4`Zp+P%8B|pQ>uA`a5TM#35s@^bwYPA1aq3`N)9wj^4H6XD*nD+Z=`C+y|(3yk$zEk@Z&O_E}zLcjgPWG}PUvb2BN3#Cxi2VB9fmp;xS)82_H^1&U&fXOU zdmYie2dxKtmIHqu_fzO4fjt~UILNZwi!w{`UW~J6<}mX2=!LP!>#yr$dHuE5wqfq< zF3M56vESgn13JYvqB1=i`U`_dKR7eqgC&#yxu#iqFe)3G^?fZftYHCvp%uAn;d?YI z5#&(AX|0&itT*u$%{~!y*9D-{Q5;M-N-^0Q$HMk}<4CUrHvy5hErqme_NE<2+Oq@f zbwH0E(c2$xl9u8{Hg$x^7?35(*(0vN+>8uhj}K3G{?t(IG!=#4X# z*2;3Do;h4RzrhXnW@EBaAei`PV0d-ig`}QvRL9$+iRj86@YnOJX_Y7IL=wPyJ zN6XN0rASBaomOYas%~5EoXrY6PIohDj%}JzhFXgv)d)?w^Q+KIs)RGNflPOS;>?kC z5teMPCcT1(>Eq?&*%$3RYxbFp6`TFvzy>=y89C%ppu>uUGM(bZc4PI)Wy$UjJA)~% a)yl0;OY^JCi;Y#^eB+6FwNak81N{#Ia2{a* delta 470 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 delta 897 zcmV-{1AhFN4Uh*IcTYw#00961000A!01E&B000NH0009)kr*C-914PDf;5vVHvaO(DXg+uCj=?Y94GS|C+cocHQS zcz^u26d^c`5-0CsZM0W@CZ4+Z?+t9TjJQ)mQx{V+}y9T8UqNHT*hR z83JrwCVzQkNf6a=dm~s8N||4nF0nU&M*{mvFg!q40kxi}<)MU^!2Ft*2AO?&rt)`g61UoVpOcb$vEmG?v;|&yc~pOL~1FbwjJJUCv9SSa`HOXZ~LL zZ;LgxGAoE(><~Y@>D+TRf5zt;oV(or$#wn3{Mg-pgg0gJtUcD02Z(C!!dD)S%S6x% zbv;vGiQ|B$@KO0->J#KI=>wGt^6sztj^~?We3tf%h629NP8tJ4H@jD@@2vYV_G=x9 z#ZFO5m5CXCc4-eVx9Cw%g8Ydp?Y^gQb=+<_)apo()EGckYlte`6sj~>LbY0ZQE!@S zd4mprS!q$~Fs6kNTFsF(`-rU76;-$|RO$AMYOVfI??N -import {onMounted, ref, watch} from 'vue' +import {onMounted, ref, watch, reactive} from 'vue' import {ElMessage, ElNotification} from 'element-plus' import {listStudent, rollCall, updatePoints} from "@/api/student.js"; @@ -9,11 +9,28 @@ const cards = ref([]) const canSelect = ref(true) const isResetting = ref(false) const dialogVisible = ref(false) +const dialogVisible2 = ref(false) const cardResult = ref({}) const studentTable = ref([]) const avatarUrl = ref('https://api.aspark.cc') const avatarKey = ref(0) const pointChange = ref(0) +const pointChange2 = ref(0) +const randomEvents = ref([ + { + title: "放他一马", + content: "有时候,放他一马,不是因为不在乎,而是因为明白,强求的结果只会让彼此更痛。放手的瞬间,心中隐隐作痛,却只能默默接受这无法改变的结局。(放过该同学,本次点名无效,请重新点名)" + }, + { + title: "天选之子", + content: "成为天选之子,看似幸运加身,实则背负孤独。所有人羡慕你的光环,却无人懂得你走过的黑暗。被命运选中,不是因为强大,而是因为只能独自面对那些无人能解的重担。(同学化身天选之子,本次点名积分 +10 )" + } +]) + +const currentRandomEvent = ref({ + title: '', + content: '' +}) // 洗牌 @@ -84,6 +101,7 @@ const selectCard = (index) => { const handleRestart = () => { dialogVisible.value = false + dialogVisible2.value = false if (isResetting.value) return isResetting.value = true canSelect.value = false @@ -184,17 +202,36 @@ onMounted(() => { }); const handlePointsChange = async () => { - if (pointChange.value === 0) { + if (pointChange.value === 0 && pointChange2.value === 0) { dialogVisible.value = false return } - const response = await updatePoints(cardResult.value.id, pointChange.value) + let response; + console.log(pointChange.value + ' ' + pointChange2.value) + if(pointChange2.value !== 0){ + response = await updatePoints(cardResult.value.id, pointChange2.value) + pointChange2.value = 0 + }else{ + response = await updatePoints(cardResult.value.id, pointChange.value) + } + if (response.code === 0) { ElMessage.error('失败,原因:' + response.msg) } dialogVisible.value = false } + +const luckThing = () => { + const lens = randomEvents.value.length + const randomIndex = Math.floor(Math.random() * lens); + currentRandomEvent.value = randomEvents.value[randomIndex] + if (randomIndex === 1) { + pointChange2.value = 10 + } + dialogVisible2.value = true; +}; +