1 |
- (self["webpackChunkcimo"]=self["webpackChunkcimo"]||[]).push([[421],{13986:function(e,t,o){"use strict";var a=o(13719),l=o.n(a),r=o(27454),n=o.n(r),s=o(76661),c=o(57695);const i=l().create({baseURL:s.c.baseURL,timeout:s.c.timeOut});i.interceptors.request.use(e=>{const t=sessionStorage.getItem("access_token");if(t&&(e.headers.Authorization="Bearer "+t),e.type)switch(e.type){case"FORM-DATA":e.transformRequest=[e=>"args="+JSON.stringify(e)];break;case"FORM":e.headers["Content-Type"]="application/x-www-form-urlencoded",e.data=n().stringify(e.data);break;default:break}return e},e=>Promise.reject(e)),i.interceptors.response.use(e=>("object"==typeof e.data&&Object.keys(e.data).includes("Success")&&!0!==e.data.Success&&c.oR.error(e.data.Message||`请求失败:${e.request.responseURL}`,{autoClose:3e3,position:"top-center"}),e.data),e=>{if("ECONNABORTED"===e.code||e.message&&-1!==e.message.indexOf("timeout")||"Network Error"===e.message)return c.oR.error("网络异常",{autoClose:3e3,position:"top-center"}),Promise.reject(e);if(e.response)switch(e.response.status){case 400:c.oR.error("请求错误:"+e.response.data.Message||0,{autoClose:3e3,position:"top-center"});break;case 403:c.oR.error("拒绝访问(403)",{autoClose:3e3,position:"top-center"});break;case 404:c.oR.error("资源不存在(404)",{autoClose:3e3,position:"top-center"});break;case 408:c.oR.error("请求超时(408)",{autoClose:3e3,position:"top-center"});break;case 500:c.oR.error("服务器错误(500)",{autoClose:3e3,position:"top-center"});break;case 501:c.oR.error("服务未实现(501)",{autoClose:3e3,position:"top-center"});break;case 502:c.oR.error("网络错误(502)",{autoClose:3e3,position:"top-center"});break;case 503:c.oR.error("服务不可用(503)",{autoClose:3e3,position:"top-center"});break;case 504:c.oR.error("网络超时(504)",{autoClose:3e3,position:"top-center"});break;case 505:c.oR.error("HTTP版本不受支持(505)",{autoClose:3e3,position:"top-center"});break;default:break}return Promise.reject(e)}),t.A=i},27488:function(e,t,o){"use strict";o.r(t),o.d(t,{default:function(){return Q}});var a=o(74061),l=o(57695),r=o(13986),n=o(23508),s=o.n(n);const c={class:"links-container"},i={class:"row q-mb-md"},d={class:"text-h6"},u={class:"col"},p={class:"col-4 text-right"},m={key:0,class:"text-center q-pa-xl text-grey-6"},C=["href"],w=["href"],V=["href"],f={class:"q-gutter-xs"},h={class:"text-subtitle2"},v={key:2,class:"row justify-center q-mt-md"};var k=(0,a.defineComponent)({__name:"links",setup(e){const t=(0,a.ref)([]),o=(0,a.ref)(!1),n=(0,a.ref)(1),k=(0,a.ref)(15),g=(0,a.ref)(""),N=(0,a.ref)(),x=(0,a.ref)(new Map),b=(0,a.computed)(()=>t.value.filter(e=>e.Name?.includes(g.value)||e.Url?.includes(g.value)||e.UrlBase?.includes(g.value))),y=(0,a.computed)(()=>Math.ceil(b.value.length/k.value)),R=(0,a.computed)(()=>{const e=(n.value-1)*k.value,t=e+k.value;return b.value.slice(e,t)}),_=e=>{n.value=e},E=async()=>{o.value=!0;try{const e=await r.A.get("/links/get");e?.Success&&e.Data?t.value=e.Data:t.value=[]}catch(e){l.oR.error("加载友情链接失败",{autoClose:2e3,position:"top-center"}),console.error("Error loading links:",e),t.value=[]}finally{o.value=!1}},U=async()=>{const e=N.value;if(e){const t={Name:"",Url:"",UrlBase:"",Id:0,Loopbacks:0,UpdateTime:s()().format("YYYY-MM-DD HH:mm:ss"),Except:!1,Recommend:!1,Status:0},{row:o}=await e.insert(t);e.setEditCell(o,"Name")}},B=async(e,t)=>{if(!e.Name||!e.Url||!e.UrlBase)return void l.oR.warning("请填写完整的链接信息",{autoClose:2e3,position:"top-center"});const o=await r.A.post("/links/save",e);o?.Success?(l.oR.success(o.Message||"修改成功",{autoClose:2e3,position:"top-center"}),t.clearEdit(),x.value.set(e.Id,{...e})):l.oR.error(o?.Message||"修改失败",{autoClose:2e3,position:"top-center"})},A=(e,t)=>{const o=x.value.get(e.Id);o&&Object.assign(e,o),t.clearEdit()},q=async e=>{const t=await r.A.post(`/links/delete/${e.Id}`);t?.Success?(l.oR.success(t.Message||"删除成功",{autoClose:2e3,position:"top-center"}),E()):l.oR.error(t?.Message||"删除失败",{autoClose:2e3,position:"top-center"})},T=async e=>{try{l.oR.success("正在检查链接 "+e.Name,{autoClose:5e3,position:"top-center"});const t=await r.A.post("/links/check",{link:e.Url});t?.Message&&l.oR.success(t.Message,{autoClose:5e3,position:"top-center"})}catch(t){l.oR.error("检查链接失败: "+e.Name,{autoClose:2e3,position:"top-center"}),console.error("Error checking link:",t)}},S=async e=>{try{await r.A.post(`/links/ToggleWhitelist/${e.Id}`)}catch(t){e.Except=!e.Except,l.oR.error("切换白名单状态失败",{autoClose:2e3,position:"top-center"}),console.error("Error toggling whitelist:",t)}},M=async e=>{try{await r.A.post(`/links/ToggleRecommend/${e.Id}`)}catch(t){e.Recommend=!e.Recommend,l.oR.error("切换推荐状态失败",{autoClose:2e3,position:"top-center"}),console.error("Error toggling recommend:",t)}},D=async e=>{try{await r.A.post(`/links/Toggle/${e.Id}`),e.Status=1===e.Status?0:1}catch(t){l.oR.error("切换可用状态失败",{autoClose:2e3,position:"top-center"}),console.error("Error toggling status:",t)}},I=e=>s()(e).format("YYYY-MM-DD HH:mm:ss");return(0,a.onMounted)(()=>{E(),N.value&&N.value.$on("edit-actived",({row:e})=>{x.value.set(e.Id,{...e})})}),(e,l)=>{const r=(0,a.resolveComponent)("q-icon"),s=(0,a.resolveComponent)("q-chip"),k=(0,a.resolveComponent)("q-btn"),x=(0,a.resolveComponent)("q-btn-group"),Q=(0,a.resolveComponent)("q-input"),O=(0,a.resolveComponent)("vxe-column"),$=(0,a.resolveComponent)("q-toggle"),z=(0,a.resolveComponent)("q-tooltip"),P=(0,a.resolveComponent)("q-card-section"),Y=(0,a.resolveComponent)("q-card-actions"),j=(0,a.resolveComponent)("q-card"),L=(0,a.resolveComponent)("q-popup-proxy"),H=(0,a.resolveComponent)("vxe-table"),F=(0,a.resolveComponent)("q-pagination"),G=(0,a.resolveDirective)("close-popup");return(0,a.openBlock)(),(0,a.createElementBlock)("div",c,[(0,a.createElementVNode)("div",i,[(0,a.createElementVNode)("div",d,[(0,a.createVNode)(r,{name:"link",class:"q-mr-sm"}),l[3]||(l[3]=(0,a.createTextVNode)(" 友情链接列表 ",-1)),t.value.length>0?((0,a.openBlock)(),(0,a.createBlock)(s,{key:0,color:"primary","text-color":"white",label:`共 ${t.value.length} 个链接`,class:"q-ml-sm"},null,8,["label"])):(0,a.createCommentVNode)("",!0)]),(0,a.createElementVNode)("div",u,[(0,a.createVNode)(x,null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)(k,{color:"primary",icon:"refresh",label:"刷新",onClick:E,loading:o.value},null,8,["loading"]),(0,a.createVNode)(k,{color:"positive",icon:"add",label:"添加链接",onClick:U})]),_:1})]),(0,a.createElementVNode)("div",p,[(0,a.createVNode)(Q,{autofocus:"",modelValue:g.value,"onUpdate:modelValue":l[1]||(l[1]=e=>g.value=e),dense:"",outlined:"",placeholder:"搜索名称、链接地址",debounce:"100"},{prepend:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:"search",class:"cursor-pointer"})]),append:(0,a.withCtx)(()=>[g.value?((0,a.openBlock)(),(0,a.createBlock)(r,{key:0,name:"close",class:"cursor-pointer",onClick:l[0]||(l[0]=e=>g.value="")})):(0,a.createCommentVNode)("",!0)]),_:1},8,["modelValue"])])]),(0,a.createVNode)(j,{flat:"",bordered:""},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(P,null,{default:(0,a.withCtx)(()=>[0!==b.value.length||o.value?((0,a.openBlock)(),(0,a.createBlock)(H,{key:1,ref_key:"tableRef",ref:N,data:R.value,stripe:"",border:"","show-header-overflow":"","show-overflow":"",loading:o.value,"edit-config":{trigger:"manual",mode:"row"}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(O,{field:"Name",title:"名称",width:"150",sortable:"","edit-render":{}},{default:(0,a.withCtx)(({row:e})=>[(0,a.createElementVNode)("a",{href:`https://www.baidu.com/s?wd=${e.Name}`,target:"_blank",class:"text-primary text-weight-bold"},(0,a.toDisplayString)(e.Name),9,C)]),edit:(0,a.withCtx)(({row:e})=>[(0,a.createVNode)(Q,{modelValue:e.Name,"onUpdate:modelValue":t=>e.Name=t,dense:"",outlined:""},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),(0,a.createVNode)(O,{field:"Url",title:"链接地址","min-width":"200",sortable:"","edit-render":{}},{default:(0,a.withCtx)(({row:e})=>[(0,a.createElementVNode)("a",{href:e.Url,target:"_blank",class:"text-primary"},(0,a.toDisplayString)(e.Url),9,w)]),edit:(0,a.withCtx)(({row:e})=>[(0,a.createVNode)(Q,{modelValue:e.Url,"onUpdate:modelValue":t=>e.Url=t,dense:"",outlined:""},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),(0,a.createVNode)(O,{field:"UrlBase",title:"主页地址","min-width":"200","edit-render":{}},{default:(0,a.withCtx)(({row:e})=>[(0,a.createElementVNode)("a",{href:e.UrlBase,target:"_blank",class:"text-primary"},(0,a.toDisplayString)(e.UrlBase),9,V)]),edit:(0,a.withCtx)(({row:e})=>[(0,a.createVNode)(Q,{modelValue:e.UrlBase,"onUpdate:modelValue":t=>e.UrlBase=t,dense:"",outlined:""},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),(0,a.createVNode)(O,{field:"Loopbacks",title:"最近来源次数",width:"120",sortable:"",align:"center"},{default:(0,a.withCtx)(({row:e})=>[(0,a.createVNode)(s,{color:e.Loopbacks>0?"positive":"grey","text-color":"white",label:e.Loopbacks},null,8,["color","label"])]),_:1}),(0,a.createVNode)(O,{field:"UpdateTime",title:"更新时间",width:"160",sortable:""},{default:(0,a.withCtx)(({row:e})=>[(0,a.createTextVNode)((0,a.toDisplayString)(I(e.UpdateTime)),1)]),_:1}),(0,a.createVNode)(O,{field:"Except",title:"白名单",width:"80",align:"center"},{default:(0,a.withCtx)(({row:e})=>[(0,a.createVNode)($,{modelValue:e.Except,"onUpdate:modelValue":[t=>e.Except=t,t=>S(e)],color:"positive"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),(0,a.createVNode)(O,{field:"Recommend",title:"推荐",width:"80",align:"center"},{default:(0,a.withCtx)(({row:e})=>[(0,a.createVNode)($,{modelValue:e.Recommend,"onUpdate:modelValue":[t=>e.Recommend=t,t=>M(e)],color:"warning"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),(0,a.createVNode)(O,{field:"Status",title:"可用状态",width:"90",align:"center"},{default:(0,a.withCtx)(({row:e})=>[(0,a.createVNode)($,{"model-value":1===e.Status,color:"primary","onUpdate:modelValue":t=>D(e)},null,8,["model-value","onUpdate:modelValue"])]),_:1}),(0,a.createVNode)(O,{title:"操作",width:"100",align:"center"},{default:(0,a.withCtx)(({row:e,$table:t})=>[(0,a.createElementVNode)("div",f,[t.isEditByRow(e)?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)(k,{color:"primary",icon:"check",size:"sm",dense:"",flat:"",onClick:o=>B(e,t)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(z,null,{default:(0,a.withCtx)(()=>[...l[6]||(l[6]=[(0,a.createTextVNode)("保存",-1)])]),_:1})]),_:1},8,["onClick"]),(0,a.createVNode)(k,{color:"grey",icon:"close",size:"sm",dense:"",flat:"",onClick:o=>A(e,t)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(z,null,{default:(0,a.withCtx)(()=>[...l[7]||(l[7]=[(0,a.createTextVNode)("取消",-1)])]),_:1})]),_:1},8,["onClick"])],64)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createVNode)(k,{color:"info",icon:"edit",size:"sm",dense:"",flat:"",onClick:o=>t.setEditRow(e)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(z,null,{default:(0,a.withCtx)(()=>[...l[8]||(l[8]=[(0,a.createTextVNode)("编辑",-1)])]),_:1})]),_:1},8,["onClick"]),(0,a.createVNode)(k,{color:"negative",icon:"delete",size:"sm",dense:"",flat:""},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(z,null,{default:(0,a.withCtx)(()=>[...l[9]||(l[9]=[(0,a.createTextVNode)("删除",-1)])]),_:1}),(0,a.createVNode)(L,{"transition-show":"scale","transition-hide":"scale"},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(j,null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)(P,{class:"row items-center"},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{name:"warning",color:"red",size:"2rem",class:"q-mr-sm"}),(0,a.createElementVNode)("div",null,[l[10]||(l[10]=(0,a.createElementVNode)("div",{class:"text-h6"},"确认删除",-1)),(0,a.createElementVNode)("div",h,"确认删除该友情链接 "+(0,a.toDisplayString)(e.Name)+" 吗?",1)])]),_:2},1024),(0,a.createVNode)(Y,{align:"right"},{default:(0,a.withCtx)(()=>[(0,a.withDirectives)((0,a.createVNode)(k,{flat:"",label:"确认",color:"negative",onClick:t=>q(e)},null,8,["onClick"]),[[G]]),(0,a.withDirectives)((0,a.createVNode)(k,{flat:"",label:"取消",color:"primary"},null,512),[[G]])]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024),(0,a.createVNode)(k,{color:"primary",icon:"link",size:"sm",dense:"",flat:"",onClick:t=>T(e)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(z,null,{default:(0,a.withCtx)(()=>[...l[11]||(l[11]=[(0,a.createTextVNode)("检查链接",-1)])]),_:1})]),_:1},8,["onClick"])],64))])]),_:1})]),_:1},8,["data","loading"])):((0,a.openBlock)(),(0,a.createElementBlock)("div",m,[(0,a.createVNode)(r,{name:"link_off",size:"64px",class:"q-mb-md"}),l[4]||(l[4]=(0,a.createElementVNode)("div",{class:"text-h6"},"暂无友情链接",-1)),l[5]||(l[5]=(0,a.createElementVNode)("div",{class:"text-body2 q-mt-sm"},'点击上方"添加链接"按钮添加第一个友情链接',-1))])),y.value>1?((0,a.openBlock)(),(0,a.createElementBlock)("div",v,[(0,a.createVNode)(F,{modelValue:n.value,"onUpdate:modelValue":[l[2]||(l[2]=e=>n.value=e),_],max:y.value,"max-pages":6,"direction-links":"","boundary-links":"",color:"primary"},null,8,["modelValue","max"])])):(0,a.createCommentVNode)("",!0)]),_:1})]),_:1})])}}}),g=o(1317),N=o(64503),x=o(97491),b=o(10258),y=o(20407),R=o(38622),_=o(63663),E=o(17180),U=o(91343),B=o(76997),A=o(34854),q=o(71248),T=o(74183),S=o(60515),M=o(22110),D=o.n(M);const I=(0,g.A)(k,[["__scopeId","data-v-b948796c"]]);var Q=I;D()(k,"components",{QIcon:N.A,QChip:x.A,QBtnGroup:b.A,QBtn:y.A,QInput:R.A,QCard:_.A,QCardSection:E.A,QToggle:U.A,QTooltip:B.A,QPopupProxy:A.A,QCardActions:q.A,QPagination:T.A}),D()(k,"directives",{ClosePopup:S.A})},42634:function(){}}]);
|