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

2 days ago
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,d as o,f as s,i as c,it as l,kt as u,l as d,nt as f,p,u as m,ut as h,v as g,y as _,z as v}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as y}from"./index-DhmwAFpV.js";import{t as b}from"./datetime-3T8f3S0H.js";import{t as x}from"./listTable-CVMJfkhr.js";var S={class:`um-toolbar`},C={key:0},w={key:0,style:{"margin-top":`4px`,color:`var(--color-text-3)`,"font-size":`12px`}},T=_({__name:`Blacklist`,setup(_){let T=l(!1),E=l([]),D=l([]),O=l(null),k=l(``),A=l(void 0),j=l([]),M=f({current:1,pageSize:10,total:0}),N=l(!1),P=l(`blacklist`),F=l(``),I=l([]),L=l([]),R=d(()=>O.value?.role===`venue_admin`);async function z(){let{data:e}=await y.get(`/me`);O.value=e}async function B(){T.value=!0;try{let[e,t]=await Promise.all([y.get(`/venues`),y.get(`/user-management/users`,{params:{keyword:k.value||void 0,venue_id:A.value||void 0,page:M.current,page_size:M.pageSize}})]);D.value=e.data,E.value=t.data.data,M.total=t.data.total}catch(t){e.error(t?.response?.data?.message??`加载用户管理失败`)}finally{T.value=!1}}function V(){M.current=1,B()}function H(e){let t=new Set(E.value.filter(e=>!e.disabled&&e.visitor_phone).map(e=>e.user_key));j.value=e.filter(e=>t.has(String(e)))}function U(e,t){P.value=t,F.value=``,I.value=[e.visitor_phone],R.value?L.value=(O.value?.venues||[]).map(e=>e.id):L.value=(t===`blacklist`?e.venues:e.blacklisted_venues).map(e=>e.id),N.value=!0}function W(t){if(!j.value.length){e.warning(`请先勾选用户`);return}if(P.value=t,F.value=``,I.value=E.value.filter(e=>j.value.includes(e.user_key)&&!!e.visitor_phone).map(e=>e.visitor_phone).filter(Boolean),!I.value.length){e.warning(`所选用户无可操作手机号`);return}R.value?L.value=(O.value?.venues||[]).map(e=>e.id):L.value=[],N.value=!0}function G(e,t){return(e.blacklisted_venues||[]).some(e=>e.id===t)}function K(e){return(e.blacklisted_venues||[]).map(e=>`${e.name}${e.reason||`未填写`}`).join(``)}async function q(){if(!F.value.trim())return e.warning(`请填写原因`),!1;if(!L.value.length)return e.warning(`请至少选择一个场馆`),!1;try{let t=P.value===`blacklist`?`/user-management/blacklist`:`/user-management/unblacklist`,{data:n}=await y.post(t,{phones:I.value,venue_ids:L.value,reason:F.value.trim()});return e.success(`${n.message},成功 ${n.count}`),N.value=!1,j.value=[],await B(),!0}catch(t){return e.error(t?.response?.data?.message??`操作失败`),!1}}function J(e){M.current=e,B()}return n(async()=>{await z(),R.value&&(A.value=O.value?.venues?.[0]?.id),await B()}),(e,n)=>{let l=r(`a-input`),d=r(`a-option`),f=r(`a-select`),_=r(`a-button`),y=r(`a-space`),O=r(`a-table-column`),z=r(`a-tag`),Y=r(`a-table`),X=r(`a-card`),Z=r(`a-form-item`),Q=r(`a-textarea`),$=r(`a-form`),ee=r(`a-modal`);return t(),p(c,null,[g(X,{title:`活动管理 / 用户管理`},{default:i(()=>[m(`div`,S,[g(y,{wrap:``,size:12},{default:i(()=>[g(l,{modelValue:k.value,"onUpdate:modelValue":n[0]||=e=>k.value=e,placeholder:`姓名/手机号/身份证`,"allow-clear":``,style:{width:`220px`}},null,8,[`modelValue`]),g(f,{modelValue:A.value,"onUpdate:modelValue":n[1]||=e=>A.value=e,disabled:R.value,"allow-clear":``,style:{width:`220px`},placeholder:`筛选场馆`},{default:i(()=>[(t(!0),p(c,null,v(D.value,e=>(t(),o(d,{key:e.id,value:e.id},{default:i(()=>[a(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`,`disabled`]),g(_,{type:`primary`,onClick:V},{default:i(()=>[...n[7]||=[a(`查询`,-1)]]),_:1}),g(_,{onClick:B},{default:i(()=>[...n[8]||=[a(`刷新`,-1)]]),_:1}),g(_,{status:`warning`,onClick:n[2]||=e=>W(`blacklist`)},{default:i(()=>[...n[9]||=[a(`批量拉黑`,-1)]]),_:1}),g(_,{status:`success`,onClick:n[3]||=e=>W(`unblacklist`)},{default:i(()=>[...n[10]||=[a(`批量解除黑名单`,-1)]]),_:1})]),_:1})]),g(Y,{class:`list-data-table`,scroll:{x:h(x)},data:E.value,loading:T.value,"row-key":`user_key`,"row-selection":{type:`checkbox`,selectedRowKeys:j.value,showCheckedAll:!0},pagination:{current:M.current,pageSize:M.pageSize,total:M.total,showTotal:!0},onSelectionCh