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
11 KiB

4 weeks ago
import{C as e,Ct as t,D as n,E as r,G as i,S as a,T as o,X as ee,Xt as s,Y as c,at as l,b as u,d as te,ht as d,m as f,ot as ne,q as p,tn as m,x as h}from"./vue.runtime.esm-bundler-DUiYyeqQ.js";import{c as g,l as _,s as v,t as y}from"./index-BAoVGmph.js";import{t as b}from"./usePageLoad-DFTLo_Lv.js";import{n as re,t as x}from"./admin-list-CBoToEFo.js";import{a as S}from"./dict-CsbOb9BJ.js";import{a as C,n as w,o as T,r as E,s as D}from"./demands-AL2Msyob.js";import{r as O}from"./users-CTiypNKv.js";var ie={class:`list-page demands-page`},k={class:`list-filter-bar`},ae={class:`table-row-actions`},oe={class:`list-pager`},se={class:`follow-teacher-summary`},ce={class:`follow-history-list`},le={class:`follow-history-head`},ue={class:`follow-history-title`},de={class:`follow-history-date`},fe={class:`follow-history-body`},pe={class:`follow-teacher-summary`},A=v(n({__name:`index`,setup(n){let v=y();function A(){let e=v.user?.id;return e!=null&&B.value.some(t=>t.id===e)?e:B.value[0]?.id}let j=d(!1),M=d([]),N=d({current_page:1,per_page:20,total:0}),P=d(1),F=d(``),I=d(``),L=d(``),R=d([]),z=d([]),B=d([]),V=d(!1),H=d(null),U=d([]),W=d(!1),G=d(``),K=d([]),q=d(!1),J=d(null),Y=d({handled_at:new Date().toISOString().slice(0,10),admin_user_id:void 0,status_dict_item_id:void 0,content:``,next_plan:``,next_follow_date:``});async function X(){let[e,t,n]=await Promise.all([S(`demand_type`),S(`demand_status`),O({page:1,page_size:200,status:1})]);R.value=e.items,z.value=t.items,B.value=n.items.map(e=>({id:e.id,label:e.real_name||e.username}))}async function Z(){j.value=!0;try{let e={page:P.value,page_size:N.value.per_page};F.value&&(e.keyword=F.value),I.value!==``&&(e.type_dict_item_id=I.value),L.value!==``&&(e.status_dict_item_id=L.value);let t=await D(e);M.value=t.items,N.value=t.meta}finally{j.value=!1}}function me(){F.value=``,I.value=``,L.value=``,P.value=1,Z()}function Q(){P.value=1,Z()}async function he(e){H.value=await C(e.id),U.value=await T(e.id),V.value=!0}async function ge(e){G.value=e.title,K.value=await T(e.id),W.value=!0}function $(e){J.value=e,Y.value={handled_at:new Date().toISOString().slice(0,10),admin_user_id:A(),status_dict_item_id:e.status_dict_item_id,content:``,next_plan:``,next_follow_date:``},q.value=!0}async function _e(){if(!J.value)return;let e=Y.value;if(!e.content.trim()||!e.status_dict_item_id||!e.admin_user_id){_.warning(`请填写跟进内容、处理状态与跟进人员`);return}await w(J.value.id,{...e}),_.success(`已保存跟进`),q.value=!1,await Z()}async function ve(e){await g.confirm(`确定删除需求「${e.title}」?`,`确认删除`,{type:`warning`}),await E(e.id),_.success(`已删除`),await Z()}function ye(){H.value&&(V.value=!1,$(H.value))}return b(async()=>{await X(),await Z()}),(n,d)=>{let g=c(`el-input`),_=c(`el-option`),v=c(`el-select`),y=c(`el-button`),b=c(`el-table-column`),S=c(`el-table`),C=c(`el-pagination`),w=c(`el-card`),T=c(`el-col`),E=c(`el-row`),D=c(`el-dialog`),O=c(`el-empty`),A=c(`el-date-picker`),X=c(`el-form-item`),be=c(`el-form`),xe=ee(`loading`);return i(),e(`div`,ie,[d[32]||=u(`div`,{class:`page-header`},[u(`h1`,{class:`page-title`},`需求管理`)],-1),r(w,{shadow:`never`,class:`admin-list-card`},{default:l(()=>[u(`div`,k,[r(g,{modelValue:F.value,"onUpdate:modelValue":d[0]||=e=>F.value=e,class:`filter-search`,placeholder:`搜索标题、姓名、公司、类型…`,clearable:``,onKeyup:te(Q,[`enter`])},null,8,[`modelValue`]),r(v,{modelValue:I.value,"onUpdate:modelValue":d[1]||=e=>I.value=e,placeholder:`类型`,clearable:``,class:`filter-select-wide`},{default:l(()=>[(i(!0),e(f,null,p(R.value,e=>(i(),h(_,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),r(v,{modelValue:L.value,"onUpdate:modelValue":d[2]||=e=>L.value=e,placeholder:`处理状态`,clearable:``,class:`filter-select`},{default:l(()=>[(i(!0),e(f,null,p(z.value,e=>(i(),h(_,{key:e.id,label:e.label,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),r(y,{type:`primary`,class:`btn-create`,onClick:Q},{default:l(()=>[...d[16]||=[o(`搜索`,-1)]]),_:1}),r(y