You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
8.6 KiB

import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,X as s,Xt as c,Y as l,at as u,b as d,d as f,ht as p,m,ot as h,q as g,tn as _,x as v,y}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as b,l as x,s as S}from"./index-BKGTVidA.js";import{n as C,t as w}from"./usePageLoad-D9c6HmVf.js";import{r as T}from"./admin-list-DjncsyJC.js";import{a as E}from"./dict-yXQAO4jv.js";import{a as D,i as O,n as k,t as A}from"./crawl-addresses-QIhKFPyF.js";import{p as j}from"./teachers-DxDHDTxq.js";var M={class:`list-page`},N={class:`page-header`},P={class:`list-filter-bar`},ee={class:`table-row-actions`},F={class:`list-pager`},I=S(n({__name:`index`,setup(n){let S={paper:`论文 → 论文库`,industry_news:`行业资讯 → 资讯管理`,teacher:`老师库 → 老师库`},I=p(!1),L=p([]),R=p({current_page:1,per_page:20,total:0}),z=p(``),B=p(``),V=p(1),H=p([]),U=p([]),W=p(!1),G=p(null),K=p({target_type:`paper`,name:``,request_url:``,keyword:``,category_dict_item_id:null,university_id:null,department:``,sort:0,status:1}),q=y(()=>K.value.target_type===`industry_news`),J=y(()=>K.value.target_type===`teacher`);function Y(e){return S[e]||e}async function X(){if(H.value.length===0)try{H.value=(await E(`news_category`)).items.map(e=>({id:e.id,label:e.label}))}catch{}if(U.value.length===0)try{U.value=(await j({page:1,page_size:500,simple:1})).items.map(e=>({id:e.id,name:e.name}))}catch{}}async function Z(){I.value=!0;try{let e=await O({page:V.value,page_size:R.value.per_page,keyword:z.value||void 0,target_type:B.value||void 0});L.value=e.items,R.value=e.meta}finally{I.value=!1}}function Q(e){e!==`industry_news`&&(K.value.category_dict_item_id=null),e!==`teacher`&&(K.value.university_id=null,K.value.department=``)}function te(){G.value=null,K.value={target_type:`paper`,name:``,request_url:``,keyword:``,category_dict_item_id:null,university_id:null,department:``,sort:0,status:1},W.value=!0,X()}function ne(e){G.value=e,K.value={target_type:e.target_type,name:e.name,request_url:e.request_url,keyword:e.keyword||``,category_dict_item_id:e.category_dict_item_id??null,university_id:e.university_id??null,department:e.department||``,sort:e.sort,status:e.status},W.value=!0,X()}async function re(){if(!K.value.name.trim()){x.warning(`请填写地址名称`);return}if(!K.value.request_url.trim()){x.warning(`请填写目标地址`);return}let e={target_type:K.value.target_type,name:K.value.name.trim(),request_url:K.value.request_url.trim(),keyword:K.value.keyword.trim()||null,category_dict_item_id:q.value?K.value.category_dict_item_id:null,university_id:J.value?K.value.university_id:null,department:J.value&&K.value.department.trim()||null,sort:K.value.sort,status:K.value.status};G.value?await D(G.value.id,e):await A(e),x.success(`已保存`),W.value=!1,await Z()}async function ie(e){await b.confirm(`确定删除爬虫地址「${e.name}」?`,`提示`,{type:`warning`}),await k(e.id),x.success(`已删除`),await Z()}function $(){V.value=1,Z()}function ae(){z.value=``,B.value=``,V.value=1,Z()}function oe(e){Q(e)}return w(Z),(n,p)=>{let y=l(`el-button`),b=l(`el-option`),x=l(`el-select`),S=l(`el-input`),w=l(`el-table-column`),E=l(`el-table`),D=l(`el-pagination`),O=l(`el-card`),k=l(`el-radio`),A=l(`el-radio-group`),j=l(`el-form-item`),X=l(`el-input-number`),Q=l(`el-form`),se=l(`el-dialog`),ce=s(`loading`);return i(),e(`div`,M,[d(`div`,N,[r(C),r(y,{type:`primary`,size:`small`,class:`btn-create`,onClick:te},{default:u(()=>[...p[14]||=[o(`新增`,-1)]]),_:1})]),r(O,{shadow:`never`,class:`admin-list-card`},{default:u(()=>[d(`div`,P,[r(x,{modelValue:B.value,"onUpdate:modelValue":p[0]||=e=>B.value=e,clearable:``,placeholder:`入库类型`,class:`filter-select`,onChange:$},{default:u(()=>[r(b,{label:`论文 → 论文库`,value:`paper`}),r(b,{label:`行业资讯 → 资讯管理`,value:`industry_news`}),r(b,{label:`老师库 → 老师库`,value:`teacher`})]),_:1},8,[`modelValue`]),r(S,{modelValue:z.value,"onUpdate:modelValue":p[1]||=e=>z.value=e,placeholder:`名称 / 地址 / 关键词`,clearable:``,class:`filter-search`,onKeyup:f($,[`enter`])},null,8,[`modelValue`]),r(y,{type:`primary`,onClick:$},{default:u(()=>[...p[15]||=[o(`搜索`,-1)]]),_:1}),r(y,{onClick:ae},{default:u(()=>[...p[16]||=[o(`重置`,-1)]]),_:1})]),h((i(),v(E,{data:L.value,"row-key":`id`},{default:u(()=>[r(w,{label:`入库类型`,width:`160`},{default:u(({row:e})=>[o(_(Y(e.target_type)),1)]),_:1}),r(w,{prop:`name`,label:`地址名称`,"min-width":`140`}),r(w,{prop:`request_url`,label:`目标地址`,"min-width":`220`,"show-overflow-tooltip":``}),r(w,{prop:`keyword`,label:`关键词`,"min-width":`120`,"show-overflow-tooltip":``}),r(w,{label:`资讯分类`,width:`120`,"show-overflow-tooltip":``},{default:u(({row:e})=>[o(_(e.category_label||``),1)]),_:1}),r(w,{label:`高校`,width:`140`,"show-overflow-tooltip":``},{default:u(({row:e})=>[o(_(e.university_name||``),1)]),_:1}),r(w,{label:`学院`,width:`160`,"show-overflow-tooltip":``},{default:u(({row:e})=>[o(_(e.department||``),1)]),_:1}),r(w,{prop:`sort`,label:`排序`,width:`80`,align:`center`}),r(w,{label:`状态`,width:`90`,align:`center`},{default:u(({row:e})=>[d(`span`,{class:c([`status-badge`,t(T)(e.status)])},_(e.status===1?`启用`:`停用`),3)]),_:1}),r(w,{label:`操作`,width:`160`,fixed:`right`},{default:u(({row:e})=>[d(`div`,ee,[r(y,{class:`btn-action-primary`,onClick:t=>ne(e)},{default:u(()=>[...p[17]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),r(y,{class:`btn-action-brand`,onClick:t=>ie(e)},{default:u(()=>[...p[18]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`data`])),[[ce,I.value]]),d(`div`,F,[r(D,{"current-page":V.value,"onUpdate:currentPage":p[2]||=e=>V.value=e,layout:`total, prev, pager, next`,total:R.value.total,onCurrentChange:Z},null,8,[`current-page`,`total`])])]),_:1}),r(se,{modelValue:W.value,"onUpdate:modelValue":p[13]||=e=>W.value=e,title:G.value?`编辑爬虫地址`:`新增爬虫地址`,width:`560px`},{footer:u(()=>[r(y,{onClick:p[12]||=e=>W.value=!1},{default:u(()=>[...p[24]||=[o(`取消`,-1)]]),_:1}),r(y,{type:`primary`,onClick:re},{default:u(()=>[...p[25]||=[o(`保存`,-1)]]),_:1})]),default:u(()=>[r(Q,{"label-width":`100px`},{default:u(()=>[r(j,{label:`入库类型`,required:``},{default:u(()=>[r(A,{modelValue:K.value.target_type,"onUpdate:modelValue":p[3]||=e=>K.value.target_type=e,onChange:oe},{default:u(()=>[r(k,{label:`paper`},{default:u(()=>[...p[19]||=[o(`论文`,-1)]]),_:1}),r(k,{label:`industry_news`},{default:u(()=>[...p[20]||=[o(`行业资讯`,-1)]]),_:1}),r(k,{label:`teacher`},{default:u(()=>[...p[21]||=[o(`老师库`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),r(j,{label:`地址名称`,required:``},{default:u(()=>[r(S,{modelValue:K.value.name,"onUpdate:modelValue":p[4]||=e=>K.value.name=e,maxlength:`128`,"show-word-limit":``},null,8,[`modelValue`])]),_:1}),r(j,{label:`目标地址`,required:``},{default:u(()=>[r(S,{modelValue:K.value.request_url,"onUpdate:modelValue":p[5]||=e=>K.value.request_url=e,type:`url`,placeholder:`https://`},null,8,[`modelValue`])]),_:1}),r(j,{label:`关键词`},{default:u(()=>[r(S,{modelValue:K.value.keyword,"onUpdate:modelValue":p[6]||=e=>K.value.keyword=e,type:`textarea`,rows:2,placeholder:`多个关键词用逗号或换行分隔`},null,8,[`modelValue`])]),_:1}),q.value?(i(),v(j,{key:0,label:`资讯分类`},{default:u(()=>[r(x,{modelValue:K.value.category_dict_item_id,"onUpdate:modelValue":p[7]||=e=>K.value.category_dict_item_id=e,clearable:``,filterable:``,placeholder:`请选择`},{default:u(()=>[(i(!0),e(m,null,g(H.value,e=>(i(),v(b,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})):a(``,!0),J.value?(i(),v(j,{key:1,label:`高校`},{default:u(()=>[r(x,{modelValue:K.value.university_id,"onUpdate:modelValue":p[8]||=e=>K.value.university_id=e,clearable:``,filterable:``,placeholder:`请选择`},{default:u(()=>[(i(!0),e(m,null,g(U.value,e=>(i(),v(b,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})):a(``,!0),J.value?(i(),v(j,{key:2,label:`学院`},{default:u(()=>[r(S,{modelValue:K.value.department,"onUpdate:modelValue":p[9]||=e=>K.value.department=e,maxlength:`128`,placeholder:`如:电子信息与电气工程学院`},null,8,[`modelValue`])]),_:1})):a(``,!0),r(j,{label:`排序`},{default:u(()=>[r(X,{modelValue:K.value.sort,"onUpdate:modelValue":p[10]||=e=>K.value.sort=e,min:0},null,8,[`modelValue`])]),_:1}),r(j,{label:`状态`},{default:u(()=>[r(A,{modelValue:K.value.status,"onUpdate:modelValue":p[11]||=e=>K.value.status=e},{default:u(()=>[r(k,{label:1},{default:u(()=>[...p[22]||=[o(`启用`,-1)]]),_:1}),r(k,{label:0},{default:u(()=>[...p[23]||=[o(`停用`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-ce20f0d3`]]);export{I as default};