import{F as e,L as t,V as n,t as r}from"./dist-CxIYsDur.js";import{B as ee,F as te,Gt as i,H as a,Ht as o,R as s,U as c,a as l,b as u,ct as d,d as f,et as p,f as m,m as h,p as g,t as _,tt as ne,ut as v,v as y,vt as b,y as x}from"./_plugin-vue_export-helper-BmDUjPB3.js";import{n as S,r as C}from"./index-BdquF2dM.js";import"./request-D2yY8ZUb.js";import{_ as w,f as T,h as E,o as D,r as O,u as k,x as A}from"./superAdmin-DRegPzth.js";var j={class:`tenant-container`},M={class:`card-header`},re={class:`tenant-name`},ie={class:`pagination-wrapper`},N=_(u({__name:`Tenant`,setup(u){let _=v(!1),N=v(!1),P=v(!1),F=v(!1),I=v(!1),L=v(),R=v(null),z=v([]),B=d({keyword:``,status:null,expired:null}),V=d({page:1,limit:15,total:0}),H=v([]),U=d({name:``,code:``,admin_email:``,admin_phone:``,package_id:null,expire_time:``,domain:``,remark:``}),W={name:[{required:!0,message:`请输入租户名称`,trigger:`blur`}],code:[{required:!0,message:`请输入租户编码`,trigger:`blur`}],admin_email:[{required:!0,message:`请输入管理员邮箱`,trigger:`blur`},{type:`email`,message:`邮箱格式不正确`,trigger:`blur`}],package_id:[{required:!0,message:`请选择套餐`,trigger:`change`}],expire_time:[{required:!0,message:`请选择到期时间`,trigger:`change`}]};async function G(){try{let e=await k();e.code===200&&(z.value=e.data)}catch(e){console.error(`获取套餐列表失败`,e)}}async function K(){_.value=!0;try{let e=await T({page:V.page,limit:V.limit,...B});e.code===200&&(H.value=e.data.list,V.total=e.data.total)}catch(e){console.error(`获取租户列表失败`,e)}finally{_.value=!1}}function q(){V.page=1,K()}function J(){B.keyword=``,B.status=null,B.expired=null,q()}function ae(){V.page=1,K()}function oe(){K()}function se(){I.value=!1,Z.value=`创建租户`,Y(),P.value=!0}function ce(e){I.value=!0,Z.value=`编辑租户`,Object.assign(U,{name:e.name,code:e.code,admin_email:e.admin_email,admin_phone:e.admin_phone,package_id:e.package?.id,expire_time:e.expire_time,domain:e.domain,remark:e.remark}),R.value=e,P.value=!0}function le(e){R.value=e,F.value=!0}async function ue(){L.value&&await L.value.validate(async e=>{if(e){N.value=!0;try{let e=await(I.value?A:O)(...I.value?[R.value.id,U]:[U]);e.code===200?(C.success(I.value?`更新成功`:`创建成功`),P.value=!1,K()):C.error(e.message)}catch(e){C.error(e.message||`操作失败`)}finally{N.value=!1}}})}function de(){L.value?.resetFields(),Y()}function Y(){Object.assign(U,{name:``,code:``,admin_email:``,admin_phone:``,package_id:null,expire_time:``,domain:``,remark:``})}async function fe(e,t){switch(R.value=t,e){case`toggle`:try{let e=await w(t.id);e.code===200&&(C.success(e.message),K())}catch{C.error(`操作失败`)}break;case`suspend`:try{await S.confirm(`确定要暂停该租户吗?`,`提示`,{type:`warning`}),(await E(t.id)).code===200&&(C.success(`已暂停`),K())}catch(e){e!==`cancel`&&C.error(`操作失败`)}break;case`delete`:try{await S.confirm(`确定要删除该租户吗?此操作不可恢复!`,`警告`,{type:`error`});let e=await D(t.id);e.code===200?(C.success(`删除成功`),K()):C.error(e.message)}catch(e){e!==`cancel`&&C.error(`删除失败`)}break}}function X(e){return{1:`success`,0:`info`,[-1]:`danger`}[e]||`info`}let Z=v(`创建租户`);return te(()=>{K(),G()}),(te,u)=>{let d=a(`el-input`),v=a(`el-form-item`),S=a(`el-option`),C=a(`el-select`),w=a(`el-icon`),T=a(`el-button`),E=a(`el-form`),D=a(`el-card`),O=a(`el-table-column`),k=a(`el-tag`),A=a(`el-dropdown-item`),G=a(`el-dropdown-menu`),K=a(`el-dropdown`),Y=a(`el-table`),pe=a(`el-pagination`),me=a(`el-date-picker`),Q=a(`el-dialog`),$=a(`el-descriptions-item`),he=a(`el-descriptions`),ge=c(`loading`);return s(),h(`div`,j,[x(D,{class:`search-card`},{default:p(()=>[x(E,{inline:!0,model:B},{default:p(()=>[x(v,{label:`关键词`},{default:p(()=>[x(d,{modelValue:B.keyword,"onUpdate:modelValue":u[0]||=e=>B.keyword=e,placeholder:`租户名称/编码/邮箱`,clearable:``},null,8,[`modelValue`])]),_:1}),x(v,{label:`状态`},{default:p(()=>[x(C,{modelValue:B.status,"onUpdate:modelValue":u[1]||=e=>B.status=e,placeholder:`全部`,clearable:``},{default:p(()=>[x(S,{label:`正常`,value:1}),x(S,{label:`禁用`,value:0}),x(S,{label:`暂停`,value:-1})]),_:1},8,[`modelValue`])]),_:1}),x(v,{label:`到期`},{default:p(()=>[x(C,{modelValue:B.expired,"onUpdate:modelValue":u[2]||=e=>B.expired=e,placeholder:`全部`,clearable:``},{default:p(()=>[x(S,{label:`已到期`,value:1}),x(S,{label:`未到期`,value:0})]),_:1},8,[`modelValue`])]),_:1}),x(v,null,{default:p(()=>[x(T,{type:`primary`,onClick:q},{default:p(()=>[x(w,null,{default:p(()=>[x(b(n))]),_:1}),u[16]||=y(` 搜索 `,-1)]),_:1}),x(T,{onClick:J},{default:p(()=>[x(w,null,{default:p(()=>[x(b(t))]),_:1}),u[17]||=y(` 重置 `,-1)]),_:1})]),_:1})]),_:1},8,[`model`])]),_:1}),x(D,{class:`table-card`},{header:p(()=>[f(`div`,M,[u[19]||=f(`span`,null,`租户列表`,-1),x(T,{type:`primary`,onClick:se},{default:p(()=>[x(w,null,{default:p(()=>[x(b(e))]),_:1}),u[18]||=y(` 新建租户 `,-1)]),_:1})])]),default:p(()=>[ne((s(),m(Y,{data:H.value,stripe:``},{default:p(()=>[x(O,{prop:`id`,label:`ID`,width:`80`}),x(O,{prop:`name`,label:`租户名称`,"min-width":`150`},{default:p(({row:e})=>[f(`div`,re,[f(`span`,null,i(e.name),1),e.is_expired?(s(),m(k,{key:0,type:`danger`,size:`small`},{default:p(()=>[...u[20]||=[y(`已到期`,-1)]]),_:1})):g(``,!0)])]),_:1}),x(O,{prop:`code`,label:`编码`,width:`120`}),x(O,{prop:`package`,label:`套餐`,width:`120`},{default:p(({row:e})=>[y(i(e.package?.name||`-`),1)]),_:1}),x(O,{prop:`admin_email`,label:`管理员邮箱`,"min-width":`180`}),x(O,{prop:`admin_phone`,label:`联系电话`,width:`130`}),x(O,{prop:`expire_time`,label:`到期时间`,width:`160`},{default:p(({row:e})=>[f(`span`,{class:o({expired:e.is_expired})},i(e.expire_time||`-`),3)]),_:1}),x(O,{prop:`status`,label:`状态`,width:`100`},{default:p(({row:e})=>[x(k,{type:X(e.status)},{default:p(()=>[y(i(e.status_label),1)]),_:2},1032,[`type`])]),_:1}),x(O,{prop:`created_at`,label:`创建时间`,width:`160`}),x(O,{label:`操作`,width:`200`,fixed:`right`},{default:p(({row:e})=>[x(T,{type:`primary`,link:``,size:`small`,onClick:t=>le(e)},{default:p(()=>[...u[21]||=[y(`详情`,-1)]]),_:1},8,[`onClick`]),x(T,{type:`primary`,link:``,size:`small`,onClick:t=>ce(e)},{default:p(()=>[...u[22]||=[y(`编辑`,-1)]]),_:1},8,[`onClick`]),x(K,{onCommand:t=>fe(t,e)},{dropdown:p(()=>[x(G,null,{default:p(()=>[x(A,{command:`toggle`},{default:p(()=>[y(i(e.status===1?`禁用`:`启用`),1)]),_:2},1024),x(A,{command:`suspend`,divided:``},{default:p(()=>[...u[24]||=[y(`暂停`,-1)]]),_:1}),x(A,{command:`delete`,style:{color:`#F56C6C`}},{default:p(()=>[...u[25]||=[y(`删除`,-1)]]),_:1})]),_:2},1024)]),default:p(()=>[x(T,{type:`primary`,link:``,size:`small`},{default:p(()=>[u[23]||=y(` 更多`,-1),x(w,{class:`el-icon--right`},{default:p(()=>[x(b(r))]),_:1})]),_:1})]),_:2},1032,[`onCommand`])]),_:1})]),_:1},8,[`data`])),[[ge,_.value]]),f(`div`,ie,[x(pe,{"current-page":V.page,"onUpdate:currentPage":u[3]||=e=>V.page=e,"page-size":V.limit,"onUpdate:pageSize":u[4]||=e=>V.limit=e,total:V.total,"page-sizes":[10,20,50,100],layout:`total, sizes, prev, pager, next`,onSizeChange:ae,onCurrentChange:oe},null,8,[`current-page`,`page-size`,`total`])])]),_:1}),x(Q,{modelValue:P.value,"onUpdate:modelValue":u[14]||=e=>P.value=e,title:Z.value,width:`600px`,onClose:de},{footer:p(()=>[x(T,{onClick:u[13]||=e=>P.value=!1},{default:p(()=>[...u[26]||=[y(`取消`,-1)]]),_:1}),x(T,{type:`primary`,onClick:ue,loading:N.value},{default:p(()=>[...u[27]||=[y(` 确定 `,-1)]]),_:1},8,[`loading`])]),default:p(()=>[x(E,{ref_key:`formRef`,ref:L,model:U,rules:W,"label-width":`100px`},{default:p(()=>[x(v,{label:`租户名称`,prop:`name`},{default:p(()=>[x(d,{modelValue:U.name,"onUpdate:modelValue":u[5]||=e=>U.name=e,placeholder:`请输入租户名称`},null,8,[`modelValue`])]),_:1}),x(v,{label:`租户编码`,prop:`code`},{default:p(()=>[x(d,{modelValue:U.code,"onUpdate:modelValue":u[6]||=e=>U.code=e,placeholder:`唯一标识`,disabled:I.value},null,8,[`modelValue`,`disabled`])]),_:1}),x(v,{label:`管理员邮箱`,prop:`admin_email`},{default:p(()=>[x(d,{modelValue:U.admin_email,"onUpdate:modelValue":u[7]||=e=>U.admin_email=e,placeholder:`用于登录和接收通知`},null,8,[`modelValue`])]),_:1}),x(v,{label:`联系电话`,prop:`admin_phone`},{default:p(()=>[x(d,{modelValue:U.admin_phone,"onUpdate:modelValue":u[8]||=e=>U.admin_phone=e,placeholder:`选填`},null,8,[`modelValue`])]),_:1}),x(v,{label:`套餐`,prop:`package_id`},{default:p(()=>[x(C,{modelValue:U.package_id,"onUpdate:modelValue":u[9]||=e=>U.package_id=e,placeholder:`请选择套餐`,style:{width:`100%`}},{default:p(()=>[(s(!0),h(l,null,ee(z.value,e=>(s(),m(S,{key:e.id,label:`${e.name} - ¥${e.price}/${e.type===`month`?`月`:e.type===`year`?`年`:`永久`}`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),x(v,{label:`到期时间`,prop:`expire_time`},{default:p(()=>[x(me,{modelValue:U.expire_time,"onUpdate:modelValue":u[10]||=e=>U.expire_time=e,type:`datetime`,placeholder:`选择到期时间`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),x(v,{label:`域名`,prop:`domain`},{default:p(()=>[x(d,{modelValue:U.domain,"onUpdate:modelValue":u[11]||=e=>U.domain=e,placeholder:`选填,用于自定义域名`},null,8,[`modelValue`])]),_:1}),x(v,{label:`备注`,prop:`remark`},{default:p(()=>[x(d,{modelValue:U.remark,"onUpdate:modelValue":u[12]||=e=>U.remark=e,type:`textarea`,rows:`3`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`]),x(Q,{modelValue:F.value,"onUpdate:modelValue":u[15]||=e=>F.value=e,title:`租户详情`,width:`700px`},{default:p(()=>[x(he,{column:2,border:``},{default:p(()=>[x($,{label:`ID`},{default:p(()=>[y(i(R.value?.id),1)]),_:1}),x($,{label:`状态`},{default:p(()=>[x(k,{type:X(R.value?.status)},{default:p(()=>[y(i(R.value?.status_label),1)]),_:1},8,[`type`])]),_:1}),x($,{label:`租户名称`},{default:p(()=>[y(i(R.value?.name),1)]),_:1}),x($,{label:`租户编码`},{default:p(()=>[y(i(R.value?.code),1)]),_:1}),x($,{label:`套餐`},{default:p(()=>[y(i(R.value?.package?.name),1)]),_:1}),x($,{label:`到期时间`},{default:p(()=>[y(i(R.value?.expire_time),1)]),_:1}),x($,{label:`管理员邮箱`},{default:p(()=>[y(i(R.value?.admin_email),1)]),_:1}),x($,{label:`联系电话`},{default:p(()=>[y(i(R.value?.admin_phone||`-`),1)]),_:1}),x($,{label:`域名`},{default:p(()=>[y(i(R.value?.domain||`-`),1)]),_:1}),x($,{label:`创建时间`},{default:p(()=>[y(i(R.value?.created_at),1)]),_:1}),x($,{label:`备注`,span:2},{default:p(()=>[y(i(R.value?.remark||`-`),1)]),_:1}),x($,{label:`统计数据`,span:2},{default:p(()=>[y(` 订单: `+i(R.value?.stats?.orders||0)+` | 用户: `+i(R.value?.stats?.users||0)+` | 商品: `+i(R.value?.stats?.goods||0),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}}),[[`__scopeId`,`data-v-cd1afe62`]]);export{N as default};