wordHelper/dist/js/765.d04a9622.js
2026-01-06 14:37:18 +08:00

27 lines
16 KiB
JavaScript

"use strict";(self["webpackChunkwordhelper"]=self["webpackChunkwordhelper"]||[]).push([[765],{15520:function(e,a,l){l.d(a,{A:function(){return r}});var t=l(45525);
/**
* @license lucide-vue-next v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const r=(0,t.A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},18495:function(e,a,l){l.d(a,{A:function(){return r}});var t=l(45525);
/**
* @license lucide-vue-next v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const r=(0,t.A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},65163:function(e,a,l){l.d(a,{A:function(){return r}});var t=l(45525);
/**
* @license lucide-vue-next v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const r=(0,t.A)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},75765:function(e,a,l){l.r(a),l.d(a,{default:function(){return pe}});l(44114),l(18111),l(7588),l(61701);var t=l(56768),r=l(90144),s=l(45130),o=l(24232),d=l(98728),n=l(97387),u=l(92720),i=l(24556),c=l(10496),v=l(42517),y=l(58911),p=l(52384),g=l(46522),k=l(47209),x=l(19605),b=l(54880),m=l(93913),h=l(9845),f=l(41829),w=l(82089),_=l(45525);
/**
* @license lucide-vue-next v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const R=(0,_.A)("trophy",[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]]),A=(0,_.A)("frown",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 16s-1.5-2-4-2-4 2-4 2",key:"epbg0q"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]]);var L=l(65163),C=l(15520),F=l(2231),W=l(18495),K=l(35720),X=l(15227),E=l(91737);const z={class:"wordle-view max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"},j={class:"flex flex-col gap-4 mb-8"},q={class:"flex items-center gap-2"},M={class:"bg-green-50 dark:bg-green-900/20 p-4 rounded-lg flex items-start gap-3"},U={key:0,class:"max-w-2xl mx-auto"},I={class:"w-full"},V={key:1,class:"text-gray-400 text-sm py-0.5 px-1"},H={class:"flex justify-end mt-6"},$={key:1,class:"max-w-md mx-auto"},Q={class:"flex justify-center mb-6"},N={class:"text-xl font-bold text-gray-700 dark:text-gray-200"},B={key:0,class:"space-y-4"},D={class:"text-gray-400 text-xs"},O={key:1,class:"text-center space-y-6 bg-white dark:bg-gray-800 p-6 rounded-xl shadow-lg"},S={key:0},T={class:"text-gray-600 dark:text-gray-400"},J={key:1},G={class:"text-gray-600 dark:text-gray-400"},P={class:"flex justify-center gap-4"},Y={class:"max-w-4xl mx-auto"},Z={class:"grid grid-cols-2 gap-4 mb-6"},ee={class:"text-center"},ae={class:"text-2xl font-bold text-primary"},le={class:"text-center"},te={class:"text-2xl font-bold text-green-500"},re={key:0,class:"space-y-3"},se={class:"flex justify-between items-center"},oe={class:"flex items-center gap-4"},de={class:"text-lg font-bold text-gray-900 dark:text-white uppercase"},ne={class:"flex items-center text-xs text-gray-400 mt-1"},ue={class:"flex justify-center mt-6 pb-8"},ie={key:1,class:"text-gray-400 text-sm py-4"};var ce={__name:"WordleView",setup(e){const a=(0,d.rd)(),l=(0,n.J)(),{width:_}=(0,E.lWr)(),ce=(0,t.EW)(()=>_.value<768),ve=(0,r.KR)("start"),ye=(0,r.KR)("config"),pe=(0,r.KR)(!1),ge=(0,r.KR)([]),ke=(0,r.KR)(!1),xe=(0,r.KR)([]),be=(0,r.KR)(!1),me=(0,r.KR)({mode:0,dict_ids:[],list_ids:[]}),he=(0,r.KR)(null),fe=(0,r.KR)(""),we=(0,t.EW)(()=>fe.value.length),_e=(0,t.EW)(()=>we.value+1),Re=(0,r.KR)(0),Ae=(0,r.KR)(""),Le=(0,r.KR)([]),Ce=(0,r.KR)("playing"),Fe=(0,r.KR)([]),We=(0,r.KR)([]),Ke=(0,r.KR)(1),Xe=(0,r.KR)({total_games:0,accuracy:0}),Ee=(0,r.KR)(!1),ze=(0,r.KR)(!1),je=()=>{Le.value=Array(_e.value).fill(null).map(()=>Array(we.value).fill(null).map(()=>({char:"",status:"empty"})))},qe=async()=>{be.value=!0;try{const e=await K.A.get("https://newfront.xn--xhq44jb2fzpc.com/word_helper/dict/list");0===e.data.code&&(ge.value=e.data.data.map(e=>({label:e.name,value:e.id})))}catch(e){console.error("Fetch dicts error:",e)}finally{be.value=!1}},Me=e=>{const a=me.value.list_ids.indexOf(e);a>-1&&me.value.list_ids.splice(a,1);const l=xe.value.findIndex(a=>a.id===e);l>-1&&xe.value.splice(l,1)},Ue=async(e=1)=>{Ee.value=!0;try{const a=await K.A.get("https://newfront.xn--xhq44jb2fzpc.com/word_helper/wordle/history",{params:{page:e}}),l=a.data;Xe.value=l.stats,We.value=1===e?l.list:[...We.value,...l.list],Ke.value=l.pagination.page,ze.value=l.pagination.has_more}catch(a){console.error("Fetch history error:",a),l.error("获取历史记录失败")}finally{Ee.value=!1}},Ie=()=>{!Ee.value&&ze.value&&Ue(Ke.value+1)},Ve=async()=>{if(1===me.value.mode&&me.value.dict_ids.length,3===me.value.mode){if(0===me.value.list_ids.length)return void l.warning("请至少选择一个词单");if(me.value.list_ids.length>10)return void l.warning("最多只能选择10个词单")}pe.value=!0;try{const e={mode:me.value.mode,dict_ids:3===me.value.mode?me.value.list_ids:me.value.dict_ids},a=await K.A.post("https://newfront.xn--xhq44jb2fzpc.com/word_helper/wordle/get_word",e),t=a.data;t.id&&t.word?(he.value=t.id,fe.value=t.word.toLowerCase(),Re.value=0,Ae.value="",Fe.value=[],Ce.value="playing",je(),ye.value="game"):t.error?l.error(t.error):l.error("获取单词失败")}catch(e){console.error("Start game error:",e),e.response&&e.response.data&&e.response.data.error?l.error(e.response.data.error):l.error("启动失败,请稍后重试")}finally{pe.value=!1}},He=()=>{ye.value="config",fe.value=""},$e=async()=>{if("playing"!==Ce.value)return;const e=Ae.value.toLowerCase().trim();if(e.length!==we.value)return void l.warning(`请输入 ${we.value} 个字母的单词`);if(!/^[a-z]+$/.test(e))return void l.warning("只能包含字母");const a=Le.value[Re.value],t=fe.value.split(""),r=e.split("");r.forEach((e,l)=>{a[l].char=e,e===t[l]&&(a[l].status="correct",t[l]=null)}),r.forEach((e,l)=>{if("correct"!==a[l].status){const r=t.indexOf(e);-1!==r?(a[l].status="present",t[r]=null):a[l].status="absent"}}),Fe.value.push(e),Re.value++,Ae.value="",e===fe.value?(Ce.value="won",await Qe(!0)):Re.value>=_e.value&&(Ce.value="lost",await Qe(!1))},Qe=async e=>{try{await K.A.post("https://newfront.xn--xhq44jb2fzpc.com/word_helper/wordle/record",{word_id:he.value,success:e,record:Fe.value})}catch(a){console.error("Record result error:",a)}},Ne=(e,a)=>{if(a>=Re.value)return"bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-900 dark:text-white";switch(e.status){case"correct":return"bg-green-500 border-green-500 text-white";case"present":return"bg-yellow-500 border-yellow-500 text-white";case"absent":return"bg-gray-400 dark:bg-gray-600 border-gray-400 dark:border-gray-600 text-white";default:return"bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600"}},Be=e=>{const l=a.resolve({path:"/word",query:{word_id:e}});window.open(l.href,"_blank")};return(0,t.sV)(()=>{document.title="猜单词 - Word Helper",qe()}),(0,t.wB)(()=>me.value.mode,e=>{1===e&&0===ge.value.length&&qe()}),(0,t.wB)(ve,e=>{"history"===e&&Ue(1)}),(e,a)=>{const l=(0,t.gN)("motion-slide-visible-once-left"),d=(0,t.gN)("motion-fade"),n=(0,t.gN)("motion-pop");return(0,t.uX)(),(0,t.CE)("div",z,[(0,t.bo)(((0,t.uX)(),(0,t.CE)("div",j,[(0,t.Lk)("div",q,[(0,t.bF)((0,r.R1)(f.A),{class:"w-8 h-8 text-primary"}),a[11]||(a[11]=(0,t.Lk)("h1",{class:"text-3xl font-bold text-gray-900 dark:text-white"},"单词猜猜乐",-1)),(0,t.bF)((0,r.R1)(u.Ay),{type:"error",size:"small",round:""},{default:(0,t.k6)(()=>[...a[10]||(a[10]=[(0,t.eW)("困难",-1)])]),_:1})]),(0,t.Lk)("div",M,[(0,t.bF)((0,r.R1)(w.A),{class:"w-5 h-5 text-green-500 mt-0.5 flex-shrink-0"}),a[12]||(a[12]=(0,t.Lk)("p",{class:"text-sm text-gray-600 dark:text-gray-300 leading-relaxed"},[(0,t.eW)(" 猜词游戏规则:您需要猜测一个由 5-9 个字母组成的单词。一个长度为 n 的单词有 n+1 次猜测机会。每次猜测后,方格颜色会提示您的猜测是否正确。"),(0,t.Lk)("br"),(0,t.Lk)("span",{class:"inline-block w-3 h-3 bg-green-500 mr-1 rounded-sm align-middle"}),(0,t.eW)("绿色:字母位置正确"),(0,t.Lk)("br"),(0,t.Lk)("span",{class:"inline-block w-3 h-3 bg-yellow-500 mr-1 rounded-sm align-middle"}),(0,t.eW)("黄色:字母存在但位置错误"),(0,t.Lk)("br"),(0,t.Lk)("span",{class:"inline-block w-3 h-3 bg-gray-400 mr-1 rounded-sm align-middle"}),(0,t.eW)("灰色:字母不存在,或目标词中该字母已全部匹配完毕 ")],-1))])])),[[l]]),(0,t.bF)((0,r.R1)(i.A),{type:"segment",animated:"",value:ve.value,"onUpdate:value":a[9]||(a[9]=e=>ve.value=e)},{default:(0,t.k6)(()=>[(0,t.bF)((0,r.R1)(c.A),{name:"start",tab:"开始游戏"},{default:(0,t.k6)(()=>["config"===ye.value?(0,t.bo)(((0,t.uX)(),(0,t.CE)("div",U,[(0,t.bF)((0,r.R1)(v.Ay),{class:"rounded-xl shadow-sm",title:"游戏配置"},{default:(0,t.k6)(()=>[(0,t.bF)((0,r.R1)(y.A),{ref:"formRef",model:me.value,"label-placement":ce.value?"top":"left","label-width":ce.value?"auto":100,"require-mark-placement":"right-hanging"},{default:(0,t.k6)(()=>[(0,t.bF)((0,r.R1)(p.Ay),{label:"单词来源"},{default:(0,t.k6)(()=>[(0,t.bF)((0,r.R1)(g.A),{value:me.value.mode,"onUpdate:value":a[0]||(a[0]=e=>me.value.mode=e),name:"mode"},{default:(0,t.k6)(()=>[(0,t.bF)((0,r.R1)(k.A),{value:0,label:"学习记录"}),(0,t.bF)((0,r.R1)(k.A),{value:1,label:"词书挑战"}),(0,t.bF)((0,r.R1)(k.A),{value:2,label:"生词本"}),(0,t.bF)((0,r.R1)(k.A),{value:3,label:"词单抽词"})]),_:1},8,["value"])]),_:1}),1===me.value.mode?((0,t.uX)(),(0,t.Wv)((0,r.R1)(p.Ay),{key:0,label:"选择词书"},{default:(0,t.k6)(()=>[(0,t.bF)((0,r.R1)(x.A),{value:me.value.dict_ids,"onUpdate:value":a[1]||(a[1]=e=>me.value.dict_ids=e),multiple:"",filterable:"",placeholder:"请选择词书(不选代表全部)",options:ge.value,loading:be.value,clearable:""},null,8,["value","options","loading"])]),_:1})):(0,t.Q3)("",!0),3===me.value.mode?((0,t.uX)(),(0,t.Wv)((0,r.R1)(p.Ay),{key:1,label:"选择词单"},{default:(0,t.k6)(()=>[(0,t.Lk)("div",I,[(0,t.Lk)("div",{class:"border border-gray-300 dark:border-gray-600 rounded-md p-2 min-h-[34px] cursor-pointer hover:border-indigo-500 transition-colors bg-white dark:bg-black/10 flex flex-wrap gap-2",onClick:a[2]||(a[2]=e=>ke.value=!0)},[xe.value.length>0?((0,t.uX)(!0),(0,t.CE)(t.FK,{key:0},(0,t.pI)(xe.value,e=>((0,t.uX)(),(0,t.Wv)((0,r.R1)(u.Ay),{key:e.id,closable:"",onClose:(0,s.D$)(a=>Me(e.id),["stop"]),size:"small"},{default:(0,t.k6)(()=>[(0,t.eW)((0,o.v_)(e.name),1)]),_:2},1032,["onClose"]))),128)):((0,t.uX)(),(0,t.CE)("div",V," 点击选择词单... "))])])]),_:1})):(0,t.Q3)("",!0),(0,t.bF)(X.A,{show:ke.value,"onUpdate:show":a[3]||(a[3]=e=>ke.value=e),modelValue:me.value.list_ids,"onUpdate:modelValue":a[4]||(a[4]=e=>me.value.list_ids=e),selectedList:xe.value,"onUpdate:selectedList":a[5]||(a[5]=e=>xe.value=e),"max-count":10},null,8,["show","modelValue","selectedList"]),(0,t.Lk)("div",H,[(0,t.bF)((0,r.R1)(b.Ay),{type:"primary",size:"large",onClick:Ve,loading:pe.value},{default:(0,t.k6)(()=>[...a[13]||(a[13]=[(0,t.eW)(" 开始游戏 ",-1)])]),_:1},8,["loading"])])]),_:1},8,["model","label-placement","label-width"])]),_:1})])),[[d]]):"game"===ye.value?(0,t.bo)(((0,t.uX)(),(0,t.CE)("div",$,[(0,t.Lk)("div",Q,[(0,t.Lk)("h2",N," 猜一个 "+(0,o.v_)(we.value)+" 个字母的单词 ",1)]),(0,t.Lk)("div",{class:"grid gap-2 mb-8 select-none",style:(0,o.Tr)({gridTemplateColumns:`repeat(${we.value}, minmax(0, 1fr))`})},[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(Le.value,(e,a)=>((0,t.uX)(),(0,t.CE)(t.FK,{key:a},[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(e,(e,l)=>((0,t.uX)(),(0,t.CE)("div",{key:l,class:(0,o.C4)(["aspect-square flex items-center justify-center text-2xl font-bold uppercase border-2 rounded transition-all duration-300",Ne(e,a)])},(0,o.v_)(e.char),3))),128))],64))),128))],4),"playing"===Ce.value?((0,t.uX)(),(0,t.CE)("div",B,[(0,t.bF)((0,r.R1)(m.A),{ref:"inputRef",value:Ae.value,"onUpdate:value":a[6]||(a[6]=e=>Ae.value=e),placeholder:"输入单词后回车",maxlength:we.value,onKeydown:(0,s.jR)($e,["enter"]),class:"text-center text-lg uppercase",autofocus:""},{suffix:(0,t.k6)(()=>[(0,t.Lk)("span",D,(0,o.v_)(Ae.value.length)+"/"+(0,o.v_)(we.value),1)]),_:1},8,["value","maxlength"]),(0,t.bF)((0,r.R1)(b.Ay),{block:"",type:"primary",onClick:$e,disabled:Ae.value.length!==we.value},{default:(0,t.k6)(()=>[...a[14]||(a[14]=[(0,t.eW)(" 提交猜测 ",-1)])]),_:1},8,["disabled"])])):(0,t.bo)(((0,t.uX)(),(0,t.CE)("div",O,["won"===Ce.value?((0,t.uX)(),(0,t.CE)("div",S,[(0,t.bF)((0,r.R1)(R),{class:"w-16 h-16 text-yellow-500 mx-auto mb-4"}),a[16]||(a[16]=(0,t.Lk)("h3",{class:"text-2xl font-bold text-green-600 mb-2"},"恭喜胜利!",-1)),(0,t.Lk)("p",T,[a[15]||(a[15]=(0,t.eW)("单词是: ",-1)),(0,t.Lk)("span",{class:"font-bold text-lg text-primary cursor-pointer hover:underline decoration-primary decoration-2 underline-offset-4",onClick:a[7]||(a[7]=e=>Be(he.value)),title:"点击查看单词详情"},(0,o.v_)(fe.value),1)])])):((0,t.uX)(),(0,t.CE)("div",J,[(0,t.bF)((0,r.R1)(A),{class:"w-16 h-16 text-gray-400 mx-auto mb-4"}),a[18]||(a[18]=(0,t.Lk)("h3",{class:"text-2xl font-bold text-red-500 mb-2"},"游戏结束",-1)),(0,t.Lk)("p",G,[a[17]||(a[17]=(0,t.eW)("正确单词是: ",-1)),(0,t.Lk)("span",{class:"font-bold text-lg text-primary cursor-pointer hover:underline decoration-primary decoration-2 underline-offset-4",onClick:a[8]||(a[8]=e=>Be(he.value)),title:"点击查看单词详情"},(0,o.v_)(fe.value),1)])])),(0,t.Lk)("div",P,[(0,t.bF)((0,r.R1)(b.Ay),{secondary:"",onClick:He},{default:(0,t.k6)(()=>[...a[19]||(a[19]=[(0,t.eW)("返回配置",-1)])]),_:1}),(0,t.bF)((0,r.R1)(b.Ay),{type:"primary",onClick:Ve},{default:(0,t.k6)(()=>[...a[20]||(a[20]=[(0,t.eW)("再来一局",-1)])]),_:1})])])),[[n]])])),[[d]]):(0,t.Q3)("",!0)]),_:1}),(0,t.bF)((0,r.R1)(c.A),{name:"history",tab:"历史记录"},{default:(0,t.k6)(()=>[(0,t.bo)(((0,t.uX)(),(0,t.CE)("div",Y,[(0,t.Lk)("div",Z,[(0,t.bF)((0,r.R1)(v.Ay),{class:"bg-blue-50 dark:bg-blue-900/20 border-0 rounded-xl"},{default:(0,t.k6)(()=>[(0,t.Lk)("div",ee,[a[21]||(a[21]=(0,t.Lk)("div",{class:"text-gray-500 dark:text-gray-400 text-sm mb-1"},"累计场次",-1)),(0,t.Lk)("div",ae,(0,o.v_)(Xe.value.total_games),1)])]),_:1}),(0,t.bF)((0,r.R1)(v.Ay),{class:"bg-green-50 dark:bg-green-900/20 border-0 rounded-xl"},{default:(0,t.k6)(()=>[(0,t.Lk)("div",le,[a[22]||(a[22]=(0,t.Lk)("div",{class:"text-gray-500 dark:text-gray-400 text-sm mb-1"},"胜率",-1)),(0,t.Lk)("div",te,(0,o.v_)(Xe.value.accuracy)+"%",1)])]),_:1})]),We.value.length>0?((0,t.uX)(),(0,t.CE)("div",re,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(We.value,e=>((0,t.uX)(),(0,t.Wv)((0,r.R1)(v.Ay),{key:e.id,size:"small",class:"hover:shadow-md transition-shadow cursor-pointer rounded-lg",onClick:a=>Be(e.word_id)},{default:(0,t.k6)(()=>[(0,t.Lk)("div",se,[(0,t.Lk)("div",oe,[((0,t.uX)(),(0,t.Wv)((0,t.$y)(e.success?(0,r.R1)(L.A):(0,r.R1)(C.A)),{class:(0,o.C4)(["w-8 h-8",e.success?"text-green-500":"text-red-500"])},null,8,["class"])),(0,t.Lk)("div",null,[(0,t.Lk)("h4",de,(0,o.v_)(e.word),1),(0,t.Lk)("div",ne,[(0,t.bF)((0,r.R1)(F.A),{class:"w-3 h-3 mr-1"}),(0,t.eW)(" "+(0,o.v_)(new Date(e.created_at).toLocaleString()),1)])])]),(0,t.bF)((0,r.R1)(W.A),{class:"w-4 h-4 text-gray-400"})])]),_:2},1032,["onClick"]))),128)),(0,t.Lk)("div",ue,[ze.value?((0,t.uX)(),(0,t.Wv)((0,r.R1)(b.Ay),{key:0,loading:Ee.value,onClick:Ie,secondary:"",round:""},{default:(0,t.k6)(()=>[...a[23]||(a[23]=[(0,t.eW)(" 查看更多 ",-1)])]),_:1},8,["loading"])):((0,t.uX)(),(0,t.CE)("div",ie,"没有更多了"))])])):Ee.value?(0,t.Q3)("",!0):((0,t.uX)(),(0,t.Wv)((0,r.R1)(h.A),{key:1,description:"暂无游戏记录",class:"mt-20"}))])),[[d]])]),_:1})]),_:1},8,["value"])])}}},ve=l(71241);const ye=(0,ve.A)(ce,[["__scopeId","data-v-5d345b7b"]]);var pe=ye}}]);
//# sourceMappingURL=765.d04a9622.js.map