2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
var e=Object.defineProperty,t=Object.defineProperties,a=Object.getOwnPropertyDescriptors,l=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,s=(t,a,l)=>a in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[a]=l,i=(e,t)=>{for(var a in t||(t={}))o.call(t,a)&&s(e,a,t[a]);if(l)for(var a of l(t))r.call(t,a)&&s(e,a,t[a]);return e},n=(e,l)=>t(e,a(l)),p=(e,t,a)=>new Promise((l,o)=>{var r=e=>{try{i(a.next(e))}catch(t){o(t)}},s=e=>{try{i(a.throw(e))}catch(t){o(t)}},i=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,s);i((a=a.apply(e,t)).next())});import{a8 as d,e6 as u,am as c,e7 as m,a0 as f,d as y,bK as v,a1 as _,r as g,c as x,p as b,cB as h,h as j,e as w,w as k,s as V,i as C,g as B,cn as z,f as E,q as T,j as S,ai as I,m as O,aE as P,v as D,E as U,a2 as $,az as A,c1 as R,k as q,o as K,b as N,N as M,b2 as L,K as Q,P as X,b5 as Y,T as F}from"./index-BoIUJTA2.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css */import{E as G,a as H}from"./index-BjuMygln.js";import{E as J}from"./index-ZsMdSUVI.js";import{u as W,E as Z}from"./index-BMeOzN3u.js";import{E as ee}from"./index-C1haaLtB.js";import{E as te}from"./index-BaD29Izp.js";import{a as ae,E as le}from"./index-BcfO0-fK.js";import{E as oe}from"./index-CjpBlozU.js";import{_ as re}from"./_plugin-vue_export-helper-BCo6x5W8.js";import"./index-Cp4NEpJ7.js";import"./_initCloneObject-DRmC-q3t.js";import"./isArrayLikeObject-CFQi-X2M.js";import"./raf-DsHSIRfX.js";import"./_baseIteratee-CtIat01j.js";import"./castArray-nM8ho4U3.js";import"./debounce-DQl5eUwG.js";import"./index-D8nVJoNy.js";import"./index-CXORCV4U.js";import"./index-COyGylbk.js";import"./index-Bq8lawOo.js";import"./index-D2gD5Tn5.js";import"./token-DWNpOE8r.js";import"./_baseClone-Ct7RL6h5.js";import"./use-dialog-FwJ-QdmW.js";import"./refs-Cw5r5QN8.js";const se=d({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:m,default:"primary"},cancelButtonType:{type:String,values:m,default:"text"},icon:{type:c,default:()=>u},iconColor:{type:String,default:"#f90"},hideIcon:Boolean,hideAfter:{type:Number,default:200},effect:n(i({},W.effect),{default:"light"}),teleported:W.teleported,persistent:W.persistent,width:{type:[String,Number],default:150},closeOnPressEscape:{type:Boolean,default:!0}}),ie={confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent||e instanceof KeyboardEvent},ne=y({name:"ElPopconfirm"});const pe=A(f(y(n(i({},ne),{props:se,emits:ie,setup(e,{expose:t,emit:a}){const l=e,{t:o}=v(),r=_("popconfirm"),s=g(),i=x(()=>{var e;return null==(e=b(s))?void 0:e.popperRef}),n=()=>{var e,t;null==(t=null==(e=s.value)?void 0:e.onClose)||t.call(e)},p=x(()=>({width:h(l.width)})),d=e=>{a("confirm",e),n()},u=e=>{a("cancel",e),n()},c=e=>{l.closeOnPressEscape&&u(e)},m=x(()=>l.confirmButtonText||o("el.popconfirm.confirmButtonText")),f=x(()=>l.cancelButtonText||o("el.popconfirm.cancelButtonText"));return t({popperRef:i,hide:n}),(e,t)=>(w(),j(b(Z),$({ref_key:"tooltipRef",ref:s,trigger:"click",effect:e.effect},e.$attrs,{"popper-class":`${b(r).namespace.value}-popover`,"popper-style":b(p),teleported:e.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":e.hideAfter,persistent:e.persistent}),{content:k(()=>[B(b(z),{loop:"",trapped:"",onReleaseRequested:c},{default:k(()=>[E("div",{class:T(b(r).b())},[E("div",{class:T(b(r).e("main"))},[!e.hideIcon&&e.icon?(w(),j(b(I),{key:0,class:T(b(r).e("icon")),style:O({color:e.iconColor})},{default:k(()=>[(w(),j(P(e.icon)))]),_:1},8,["class","style"])):C("v-if",!0),S(" "+D(e.title),1)],2),E("div",{class:T(b(r).e("action"))},[V(e.$slots,"actions",{confirm:d,cancel:u},()=>[B(b(U),{size:"small",type:"text"===e.cancelButtonType?"":e.cancelButtonType,text:"text"===e.cancelButtonType,onClick:u},{default:k(()=>[S(D(b(f)),1)]),_:1},8,["type","text"]),B(b(U),{size:"small",type:"text"===e.confirmButtonType?"":e.confirmButtonType,text:"text"===e.confirmButtonType,onClick:d},{default:k(()=>[S(D(b(m)),1)]),_:1},8,["type","text"])])],2)],2)]),_:3})]),default:k(()=>[e.$slots.reference?V(e.$slots,"reference",{key:0}):C("v-if",!0)]),_:3},16,["effect","popper-class","popper-style","teleported","hide-after","persistent"]))}})),[["__file","popconfirm.vue"]]));const de={class:"blacklist-page p-4"},ue={class:"flex justify-between items-center"},ce={class:"flex gap-2"},me={class:"flex items-center gap-2"},fe={class:"font-mono"},ye={class:"mt-4 flex justify-end"},ve=re(y({__name:"index",setup(e){const t=g(!1),a=g(!1),l=g([]),o=g(""),r=q({page:1,pageSize:20,total:0}),s=g(!1),i=q({douyin_user_id:"",reason:""}),n=g(!1),d=q({ids_text:"",reason:""});function u(){return p(this,null,function*(){t.value=!0;try{const t=yield(e={page:r.page,page_size:r.pageSize,keyword:o.value||void 0},R.get({url:"/admin/blacklist",params:e}));l.value=t.list||[],r.total=t.total||0}catch(a){}finally{t.value=!1}var e})}function c(){r.page=1,u()}function m(){i.douyin_user_id="",i.reason="",s.value=!0}function f(){return p(this,null,function*(){if(i.douyin_user_id.trim()){a.value=!0;try{yield(e={douyin_user_id:i.douyin_user_id.trim(),reason:i.reason},R.post({url:"/admin/blacklist",data:e})),F.success("添加成功"),s.value=!1,u()}catch(t){F.error((null==t?void 0:t.message)||"添加失败")}finally{a.value=!1}var e}else F.warning("请输入抖音用户ID")})}function y(){d.ids_text="",d.reason="",n.value=!0}function v(){return p(this,null,function*(){const e=d.ids_text.split("\n").map(e=>e.trim()).filter(e=>e.length>0);if(0!==e.length){a.value=!0;try{const a=yield(t={douyin_user_ids:e,reason:d.reason},R.post({url:"/admin/blacklist/batch",data:t}));F.success(`批量添加完成:新增 ${a.added} 个,跳过 ${a.skipped} 个`),n.value=!1,u()}catch(l){F.error((null==l?void 0:l.message)||"批量添加失败")}finally{a.value=!1}var t}else F.warning("请输入至少一个抖音用户ID")})}function _(e){return p(this,null,function*(){try{yield(t=e.id,R.del({url:`/admin/blacklist/${t}`})),F.success("移除成功"),u()}catch(a){F.error((null==a?void 0:a.message)||"移除失败")}var t})}return K(()=>{u()}),(e,p)=>{const g=Q,x=U,h=I,V=H,C=J,z=pe,O=G,P=ee,$=te,A=le,R=ae,q=oe,K=L;return w(),N("div",de,[B($,{shadow:"never"},{header:k(()=>[E("div",ue,[p[14]||(p[14]=E("span",{class:"font-bold"},"抖音用户黑名单",-1)),E("div",ce,[B(g,{modelValue:o.value,"onUpdate:modelValue":p[0]||(p[0]=e=>o.value=e),placeholder:"搜索抖音ID",style:{width:"200px"},clearable:"",onKeyup:X(c,["enter"]),onClear:c},null,8,["modelValue"]),B(x,{type:"primary",onClick:c},{default:k(()=>[...p[11]||(p[11]=[S("搜索",-1)])]),_:1}),B(x,{type:"success",onClick:m},{default:k(()=>[B(h,{class:"mr-1"},{default:k(()=>[B(b(Y))]),_:1}),p[12]||(p[12]=S(" 添加黑名单 ",-1))]),_:1}),B(x,{onClick:y},{default:k(()=>[...p[13]||(p[13]=[S("批量添加",-1)])]),_:1})])])]),default:k(()=>[M((w(),j(O,{data:l.value,border:"",style:{width:"100%"}},{default:k(()=>[B(V,{prop:"id",label:"ID",width:"80"}),B(V,{prop:"douyin_user_id",label:"抖音用户ID","min-width":"180"},{default:k(({row:e})=>[E("div",me,[B(C,{type:"danger",size:"small"},{default:k(()=>[...p[15]||(p[15]=[S("黑名单",-1)])]),_:1}),E("span",fe,D(e.douyin_user_id),1)])]),_:1}),B(V,{prop:"reason",label:"拉黑原因","min-width":"200"},{default:k(({row:e})=>[E("span",{class:T(e.reason?"":"text-gray-400")},D(e.reason||"未填写"),3)]),_:1}),B(V,{prop:"created_at",label:"添加时间",width:"170"}),B(V,{label:"操作",width:"120",fixed:"right"},{default:k(({row:e})=>[B(z,{title:"确定要将该用户从黑名单移除吗?",onConfirm:t=>_(e)},{reference:k(()=>[B(x,{link:"",type:"success",size:"small"},{default:k(()=>[...p[16]||(p[16]=[S("移除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:1})]),_:1},8,["data"])),[[K,t.value]]),E("div",ye,[B(P,{"current-page":r.page,"onUpdate:currentPage":p[1]||(p[1]=e=>r.page=e),"page-size":r.pageSize,"onUpdate:pageSize":p[2]||(p[2]=e=>r.pageSize=e),total:r.total,"page-sizes":[20,50,100],layout:"total, sizes, prev, pager, next",onSizeChange:u,onCurrentChange:u},null,8,["current-page","page-size","total"])])]),_:1}),B(q,{modelValue:s.value,"onUpdate:modelValue":p[6]||(p[6]=e=>s.value=e),title:"添加黑名单",width:"500px"},{footer:k(()=>[B(x,{onClick:p[5]||(p[5]=e=>s.value=!1)},{default:k(()=>[...p[17]||(p[17]=[S("取消",-1)])]),_:1}),B(x,{type:"primary",onClick:f,loading:a.value},{default:k(()=>[...p[18]||(p[18]=[S("确定",-1)])]),_:1},8,["loading"])]),default:k(()=>[B(R,{model:i,"label-width":"100px"},{default:k(()=>[B(A,{label:"抖音用户ID",required:""},{default:k(()=>[B(g,{modelValue:i.douyin_user_id,"onUpdate:modelValue":p[3]||(p[3]=e=>i.douyin_user_id=e),placeholder:"请输入抖音用户ID"},null,8,["modelValue"])]),_:1}),B(A,{label:"拉黑原因"},{default:k(()=>[B(g,{modelValue:i.reason,"onUpdate:modelValue":p[4]||(p[4]=e=>i.reason=e),type:"textarea",rows:3,placeholder:"如:多次恶意退款"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),B(q,{modelValue:n.value,"onUpdate:modelValue":p[10]||(p[10]=e=>n.value=e),title:"批量添加黑名单",width:"600px"},{footer:k(()=>[B(x,{onClick:p[9]||(p[9]=e=>n.value=!1)},{default:k(()=>[...p[19]||(p[19]=[S("取消",-1)])]),_:1}),B(x,{type:"primary",onClick:v,loading:a.value},{default:k(()=>[...p[20]||(p[20]=[S("确定",-1)])]),_:1},8,["loading"])]),default:k(()=>[B(R,{model:d,"label-width":"100px"},{default:k(()=>[B(A,{label:"抖音用户ID",required:""},{default:k(()=>[B(g,{modelValue:d.ids_text,"onUpdate:modelValue":p[7]||(p[7]=e=>d.ids_text=e),type:"textarea",rows:6,placeholder:"每行一个抖音用户ID,支持批量粘贴"},null,8,["modelValue"])]),_:1}),B(A,{label:"拉黑原因"},{default:k(()=>[B(g,{modelValue:d.reason,"onUpdate:modelValue":p[8]||(p[8]=e=>d.reason=e),placeholder:"如:批量导入"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-1afedef3"]]);export{ve as default};
|