2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
var e=(e,l,a)=>new Promise((t,r)=>{var i=e=>{try{o(a.next(e))}catch(l){r(l)}},n=e=>{try{o(a.throw(e))}catch(l){r(l)}},o=e=>e.done?t(e.value):Promise.resolve(e.value).then(i,n);o((a=a.apply(e,l)).next())});import{d as l,r as a,k as t,c as r,A as i,h as n,e as o,w as s,f as d,g as u,i as m,K as p,P as c,E as v,j as f,ai as _,p as g,bb as y,N as h,v as b,b as j,I as V,J as x,cA as w,b2 as k,T as U,aV as z}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 *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css */import{E as Y}from"./index-BaD29Izp.js";import{a as C,E as D}from"./index-BcfO0-fK.js";import{E,a as I}from"./index-D2gD5Tn5.js";import{E as P}from"./index-BneqRonp.js";import{E as S,a as A}from"./index-BjuMygln.js";import{b as M,a as R}from"./index-DqTthkO7.js";import{E as H}from"./index-ZsMdSUVI.js";import{E as $}from"./index-C1haaLtB.js";import{E as O}from"./index-C_S0YbqD.js";import{E as T}from"./index-D8nVJoNy.js";import{E as B}from"./index-CjpBlozU.js";import{_ as K}from"./_plugin-vue_export-helper-BCo6x5W8.js";import"./castArray-nM8ho4U3.js";import"./_baseClone-Ct7RL6h5.js";import"./_initCloneObject-DRmC-q3t.js";import"./index-BMeOzN3u.js";import"./index-COyGylbk.js";import"./index-Bq8lawOo.js";import"./index-Cp4NEpJ7.js";import"./token-DWNpOE8r.js";import"./debounce-DQl5eUwG.js";import"./_baseIteratee-CtIat01j.js";import"./index-CXORCV4U.js";import"./index-BnK4BbY2.js";import"./isArrayLikeObject-CFQi-X2M.js";import"./raf-DsHSIRfX.js";import"./use-dialog-FwJ-QdmW.js";import"./refs-Cw5r5QN8.js";const J={class:"user-assignment"},L={class:"card-header"},N={class:"header-actions"},Q={class:"title-tags"},W={class:"pagination-container"},X={class:"dialog-footer"},Z=K(l({__name:"UserAssignmentDialog",props:{visible:{type:Boolean},title:{}},emits:["update:visible"],setup(l,{emit:K}){const Z=l,q=K,F=a(),G=a(!1),ee=a(!1),le=a(!1),ae=a([]),te=a([]),re=t({keyword:"",user_level:"",dateRange:[]}),ie=t({current:1,size:20,total:0}),ne=t({expire_type:"permanent",start_time:"",end_time:"",days:30,remark:"",override_existing:!0,send_notification:!0}),oe=r(()=>{var e;return null==(e=Z.title)?void 0:e.id}),se=r({get:()=>Z.visible,set:e=>q("update:visible",e)}),de={newbie:{name:"新用户",type:"info"},normal:{name:"普通用户",type:""},vip:{name:"VIP用户",type:"warning"},svip:{name:"SVIP用户",type:"danger"}};function ue(e){var l;return(null==(l=de[e])?void 0:l.name)||e}function me(e){var l;return(null==(l=de[e])?void 0:l.type)||"info"}function pe(){return e(this,null,function*(){ee.value=!0;try{const e=[{uid:10001,username:"用户10001",phone:"138****0001",user_level:"normal",register_time:"2024-01-15 10:30:00",current_titles:[{id:1,name:"新用户"}]},{uid:10002,username:"用户10002",phone:"138****0002",user_level:"vip",register_time:"2024-02-20 14:20:00",current_titles:[]},{uid:10003,username:"用户10003",phone:"138****0003",user_level:"svip",register_time:"2023-12-10 09:15:00",current_titles:[{id:2,name:"VIP会员"}]}];ae.value=e,ie.total=3}catch(e){U.error("搜索用户失败"),ae.value=[]}finally{ee.value=!1}})}function ce(){re.keyword="",re.user_level="",re.dateRange=[],ie.current=1,ae.value=[],te.value=[]}function ve(e){te.value=e}function fe(){var e;null==(e=F.value)||e.clearSelection(),te.value=[]}function _e(e){ie.size=e,pe()}function ge(e){ie.current=e,pe()}function ye(){return e(this,null,function*(){var e;if(0===te.value.length)return void U.warning("请选择要分配的用户");if(1!==te.value.length)return void U.warning("仅支持单用户,请取消其他选择");const l=te.value[0];if(!!Array.isArray(l.current_titles)&&l.current_titles.some(e=>e.id===oe.value))U.warning("该用户已拥有该称号");else try{yield z.confirm(`确定要为 ${te.value.length} 个用户分配称号"${null==(e=Z.title)?void 0:e.name}"吗?`,"分配确认",{type:"warning"}),le.value=!0;te.value.map(e=>e.uid);let l=null;if("period"===ne.expire_type&&ne.start_time&&ne.end_time)l=ne.end_time;else if("days"===ne.expire_type){const e=new Date;e.setDate(e.getDate()+ne.days),l=e.toISOString()}U.success(`成功为 ${te.value.length} 个用户分配称号`),se.value=!1,fe()}catch(a){"cancel"!==a&&U.error("分配失败")}finally{le.value=!1}})}function he(e){var l;return 1===te.value.length&&(null==(l=te.value[0])?void 0:l.uid)===e.uid}return i(se,e=>{e&&ce()}),(e,a)=>{var t;const r=p,i=D,U=I,z=E,K=P,Z=_,q=v,de=C,be=Y,je=H,Ve=M,xe=A,we=S,ke=$,Ue=R,ze=O,Ye=T,Ce=B,De=k;return o(),n(Ce,{title:`分配用户 - ${null==(t=l.title)?void 0:t.name}`,modelValue:se.value,"onUpdate:modelValue":a[13]||(a[13]=e=>se.value=e),width:"80%","close-on-click-modal":!1},{footer:s(()=>[d("div",X,[u(q,{onClick:a[12]||(a[12]=e=>se.value=!1)},{default:s(()=>[...a[26]||(a[26]=[f("取 消",-1)])]),_:1}),u(q,{type:"primary",onClick:ye,loading:le.value,disabled:0===te.value.length},{default:s(()=>[f(" 确认分配 ("+b(te.value.length)+"个用户) ",1)]),_:1},8,["loading","disabled"])])]),default:s(()=>[d("div",J,[u(be,{class:"search-card",shadow:"never"},{default:s(()=>[u(de,{inline:!0,model:re,class:"search-form"},{default:s(()=>[u(i,{label:"用户搜索"},{default:s(()=>[u(r,{modelValue:re.keyword,"onUpdate:modelValue":a[0]||(a[0]=e=>re.keyword=e),placeholder:"手机号/用户名/UID",clearable:"",onKeyup:c(pe,["enter"])},null,8,["modelValue"])]),_:1}),u(i,{label:"用户等级"},{default:s(()=>[u(z,{modelValue:re.user_level,"onUpdate:modelValue":a[1]||(a[1]=e=>re.user_level=e),placeholder:"选择等级",clearable:""},{default:s(()=>[u(U,{label:"新用户",value:"newbie"}),u(U,{label:"普通用户",value:"normal"}),u(U,{label:"VIP用户",value:"vip"}),u(U,{label:"SVIP用户",value:"svip"})]),_:1},8,["modelValue"])]),_:1}),u(i,{label:"注册时间"},{default:s(()=>[u(K,{modelValue:re.dateRange,"onUpdate:modelValue":a[2]||(a[2]=e=>re.dateRange=e),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD"},null,8,["modelValue"])]),_:1}),u(i,null,{default:s(()=>[u(q,{type:"primary",onClick:pe,loading:ee.value},{default:s(()=>[u(Z,null,{default:s(()=>[u(g(y))]),_:1}),a[14]||(a[14]=f("搜索 ",-1))]),_:1},8,["loading"]),u(q,{onClick:ce},{default:s(()=>[...a[15]||(a[15]=[f("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),u(be,{class:"user-list-card",shadow:"never"},{header:s(()=>[d("div",L,[a[17]||(a[17]=d("span",null,"用户列表",-1)),d("div",N,[u(je,{type:"info"},{default:s(()=>[f("已选择 "+b(te.value.length)+" 个用户",1)]),_:1}),u(q,{type:"warning",size:"small",onClick:fe},{default:s(()=>[...a[16]||(a[16]=[f("清空选择",-1)])]),_:1})])])]),default:s(()=>[h((o(),n(we,{data:ae.value,onSelectionChange:ve,ref_key:"userTableRef",ref:F,"max-height":"400"},{default:s(()=>[u(xe,{label:"选择",width:"70"},{default:s(({row:e})=>[u(Ve,{"model-value":he(e),onChange:l=>function(e){te.value=[e]}(e)},null,8,["model-value","onChange"])]),_:1}),u(xe,{prop:"uid",label:"UID",width:"100"}),u(xe,{prop:"username",label:"用户名","min-width":"120"}),u(xe,{prop:"phone",label:"手机号",width:"120"}),u(xe,{prop:"user_level",label:"用户等级",width:"100"},{default:s(({row:e})=>[u(je,{type:me(e.user_level),size:"small"},{default:s(()=>[f(b(ue(e.user_level)),1)]),_:2},1032,["type"])]),_:1}),u(xe,{prop:"register_time",label:"注册时间",width:"160"}),u(xe,{prop:"current_titles",label:"当前称号","min-width":"150"},{default:s(({row:e})=>[d("div",Q,[(o(!0),j(V,null,x(e.current_titles,e=>(o(),n(je,{key:e.id,size:"small",type:e.id===oe.value?"danger":"info"},{default:s(()=>[f(b(e.name)+" ",1),e.id===oe.value?(o(),n(Z,{key:0,class:"title-icon"},{default:s(()=>[u(g(w))]),_:1})):m("",!0)]),_:2},1032,["type"]))),128)),e.current_titles&&0!==e.current_titles.length?m("",!0):(o(),n(je,{key:0,type:"info",size:"small"},{default:s(()=>[...a[18]||(a[18]=[f(" 无称号 ",-1)])]),_:1}))])]),_:1})]),_:1},8,["data"])),[[De,G.value]]),d("div",W,[u(ke,{"current-page":ie.current,"onUpdate:currentPage":a[3]||(a[3]=e=>ie.current=e),"page-size":ie.size,"onUpdate:pageSize":a[4]||(a[4]=e=>ie.size=e),total:ie.total,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:_e,onCurrentChange:ge},null,8,["current-page","page-size","total"])])]),_:1}),te.value.length>0?(o(),n(be,{key:0,class:"assignment-config-card",shadow:"never"},{header:s(()=>[...a[19]||(a[19]=[d("span",null,"分配配置",-1)])]),default:s(()=>[u(de,{model:ne,"label-width":"120px"},{default:s(()=>[u(i,{label:"有效期类型"},{default:s(()=>[u(Ue,{modelValue:ne.expire_type,"onUpdate:modelValue":a[5]||(a[5]=e=>ne.expire_type=e)},{default:s(()=>[u(Ve,{label:"permanent"},{default:s(()=>[...a[20]||(a[20]=[f("永久有效",-1)])]),_:1}),u(Ve,{label:"period"},{default:s(()=>[...a[21]||(a[21]=[f("指定时段",-1)])]),_:1}),u(Ve,{label:"days"},{default:s(()=>[...a[22]||(a[22]=[f("有效天数",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),"period"===ne.expire_type?(o(),j(V,{key:0},[u(i,{label:"开始时间"},{default:s(()=>[u(K,{modelValue:ne.start_time,"onUpdate:modelValue":a[6]||(a[6]=e=>ne.start_time=e),type:"datetime",placeholder:"选择开始时间","value-format":"YYYY-MM-DD HH:mm:ss"},null,8,["modelValue"])]),_:1}),u(i,{label:"结束时间"},{default:s(()=>[u(K,{modelValue:ne.end_time,"onUpdate:modelValue":a[7]||(a[7]=e=>ne.end_time=e),type:"datetime",placeholder:"选择结束时间","value-format":"YYYY-MM-DD HH:mm:ss"},null,8,["modelValue"])]),_:1})],64)):"days"===ne.expire_type?(o(),n(i,{key:1,label:"有效天数"},{default:s(()=>[u(ze,{modelValue:ne.days,"onUpdate:modelValue":a[8]||(a[8]=e=>ne.days=e),min:1,max:365},null,8,["modelValue"]),a[23]||(a[23]=d("span",{class:"unit"},"天",-1))]),_:1})):m("",!0),u(i,{label:"分配备注"},{default:s(()=>[u(r,{modelValue:ne.remark,"onUpdate:modelValue":a[9]||(a[9]=e=>ne.remark=e),type:"textarea",rows:3,placeholder:"请输入分配备注,如活动名称、原因等",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),u(i,{label:"覆盖现有"},{default:s(()=>[u(Ye,{modelValue:ne.override_existing,"onUpdate:modelValue":a[10]||(a[10]=e=>ne.override_existing=e)},{default:s(()=>[...a[24]||(a[24]=[f(" 覆盖用户现有相同称号(如果用户已有该称号) ",-1)])]),_:1},8,["modelValue"])]),_:1}),u(i,{label:"发送通知"},{default:s(()=>[u(Ye,{modelValue:ne.send_notification,"onUpdate:modelValue":a[11]||(a[11]=e=>ne.send_notification=e)},{default:s(()=>[...a[25]||(a[25]=[f(" 给用户发送获得称号的通知消息 ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1})):m("",!0)])]),_:1},8,["title","modelValue"])}}}),[["__scopeId","data-v-dcfb44a3"]]);export{Z as default};
|