@pangu-backend-ui/user-core 0.0.19 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +644 -675
- package/index.umd.cjs +1 -1
- package/package.json +2 -2
- package/style.css +1 -1
- package/types/components/FunctionDisable/AddFunctionDisableDialog.vue.d.ts +30 -0
- package/types/components/FunctionDisable/FunctionDisableTableDialog.vue.d.ts +43 -0
- package/types/components/FunctionDisable/index.d.ts +6 -0
- package/types/components/UserDetail/UserDetailDialog.vue.d.ts +41 -320
- package/types/components/index.d.ts +2 -1
- package/types/views/components/CreateUserDialog.vue.d.ts +36 -0
- package/types/views/list.vue.d.ts +98 -319
- package/web-types.json +12 -0
- package/types/components/AddBlacklist/AddBlacklistComp.vue.d.ts +0 -322
- package/types/views/BlackListView.vue.d.ts +0 -777
package/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(k,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("pinia"),require("@pangu-backend-ui/common")):typeof define=="function"&&define.amd?define(["exports","vue","pinia","@pangu-backend-ui/common"],e):(k=typeof globalThis<"u"?globalThis:k||self,e(k["pg-user-core"]={},k.Vue,k.pinia,k.common))})(this,function(k,e,O,j){"use strict";const z={key:0,class:"container"},q=e.defineComponent({__name:"UserMobileComponent",props:{userId:{type:Number,default:null},maskMobile:{type:String,default:null}},setup(c){const i=c,n=e.ref({plainMobile:null,loading:!1}),r=e.inject("http");function d(){n.value.plainMobile==null&&(n.value.loading=!0,r==null||r.get(`/api/user/${i.userId}/plainmobile`).then(a=>{n.value.plainMobile=a.data,n.value.loading=!1}).finally(()=>{n.value.loading=!1}))}return(a,m)=>{const s=e.resolveComponent("View"),h=e.resolveComponent("el-icon"),V=e.resolveComponent("Loading");return i.maskMobile!=null?(e.openBlock(),e.createElementBlock("div",z,[n.value.plainMobile==null?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(i.maskMobile),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(n.value.plainMobile),1)],64)),n.value.plainMobile==null&&!n.value.loading&&i.userId!=null&&a.$hasPer("DECRYPT_MOBILE")?(e.openBlock(),e.createBlock(h,{key:2,class:"view-icon",onClick:d},{default:e.withCtx(()=>[e.createVNode(s)]),_:1})):e.createCommentVNode("",!0),n.value.loading?(e.openBlock(),e.createBlock(h,{key:3,class:"is-loading view-icon"},{default:e.withCtx(()=>[e.createVNode(V)]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}}),oe="",$=(c,i)=>{const n=c.__vccOpts||c;for(const[r,d]of i)n[r]=d;return n},B=$(q,[["__scopeId","data-v-dd075891"]]),M={install:c=>{c.component("PgUserMobile",B)}},K=e.defineComponent({__name:"LoginHistory",props:["userId"],setup(c){const i=c,n=e.ref({userId:i.userId,loginTimeStart:null,loginTimeEnd:null}),r=e.ref([]);e.watch(r,m=>{m?(n.value.loginTimeStart=m[0],n.value.loginTimeEnd=m[1]):(n.value.loginTimeStart=null,n.value.loginTimeEnd=null)});const d=e.ref();function a(){d.value.search()}return(m,s)=>{const h=e.resolveComponent("el-date-picker"),V=e.resolveComponent("el-button"),_=e.resolveComponent("el-space"),f=e.resolveComponent("el-table-column"),p=e.resolveComponent("el-tag"),u=e.resolveComponent("pg-table");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(_,null,{default:e.withCtx(()=>[e.createVNode(h,{modelValue:r.value,"onUpdate:modelValue":s[0]||(s[0]=l=>r.value=l),type:"datetimerange","range-separator":"-","start-placeholder":"登录开始时间","end-placeholder":"登录结束时间",clearable:""},null,8,["modelValue"]),e.createVNode(V,{type:"primary",icon:"search",onClick:a},{default:e.withCtx(()=>[e.createTextVNode("搜索")]),_:1})]),_:1}),e.createVNode(u,{ref_key:"historiesTable",ref:d,style:{"margin-top":"10px"},"data-url":"/api/user/login-history",condition:n.value},{columns:e.withCtx(()=>[e.createVNode(f,{prop:"createdTime",label:"登录时间",align:"center","show-overflow-tooltip":""}),e.createVNode(f,{prop:"ip",label:"登录IP",align:"center","show-overflow-tooltip":""}),e.createVNode(f,{prop:"runtimeName",label:"运行容器",align:"center","show-overflow-tooltip":""}),e.createVNode(f,{label:"登录方式",align:"center","show-overflow-tooltip":""},{default:e.withCtx(({row:l})=>[l.method==="SMS"?(e.openBlock(),e.createBlock(p,{key:0,type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode("短信登录")]),_:1})):e.createCommentVNode("",!0),l.method==="THIRD_PLATFORM"?(e.openBlock(),e.createBlock(p,{key:1,type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode("第三方平台")]),_:1})):e.createCommentVNode("",!0),l.method==="UNIVERIFY"?(e.openBlock(),e.createBlock(p,{key:2,type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode("一键登录")]),_:1})):e.createCommentVNode("",!0),l.method==="PASSWORD"?(e.openBlock(),e.createBlock(p,{key:3,type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode("帐号密码")]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(f,{prop:"thirdPlatformName",label:"第三方登录",align:"center","show-overflow-tooltip":""}),e.createVNode(f,{prop:"versionCode",label:"版本代码",align:"center","show-overflow-tooltip":""}),e.createVNode(f,{prop:"versionName",label:"版本名称",align:"center","show-overflow-tooltip":""})]),_:1},8,["condition"])],64)}}}),S=O.defineStore("pg-user-core-config-store",()=>{const c=[];return c.push({name:"登录历史",code:"LOGIN_HISTORY",component:e.shallowRef(K)}),{userDetailDialogTabs:e.computed(()=>c)}}),E=e.defineComponent({__name:"AddBlacklistComp",props:{hiddenEntranceSlot:{type:Boolean,default:!1},userId:{type:Number,required:!1}},emits:["success"],setup(c,{expose:i,emit:n}){const r=c,d=e.inject("http"),a=e.ref(!1);let m=e.ref(null);function s(t){a.value=!0;const o=t??r.userId;if(!o)throw Error("未设置用户ID");m.value=o,f(m.value)}const h=e.ref({description:[{required:!0,message:"请输入加入黑名单的说明"}],unlockTime:[{required:!0,message:"解锁时间不能为空"}]}),V=e.ref({userId:null,unlockTime:null,permissions:[],description:null}),_=e.ref();function f(t){d==null||d.get(`/api/user/${t}/blacklist-and-all-permission-codes`).then(o=>{var g,N,x,y,D;(g=o.data)!=null&&g.info&&((N=o.data)!=null&&N.info.allowPermissionCodes&&(V.value.permissions=JSON.parse((x=o.data)==null?void 0:x.info.allowPermissionCodes)),V.value.userId=(y=o.data)==null?void 0:y.info.userId,V.value.unlockTime=o.data.info.unlockTime,V.value.description=o.data.info.description),_.value=(D=o.data)==null?void 0:D.permissionCodes})}const p=e.ref();function u(){var t;(t=p.value)==null||t.resetFields()}function l(){var t;(t=p.value)==null||t.validate((o,g)=>{o&&(d==null||d.post(`/api/user/${m.value}/blacklist`,V.value).then(N=>{a.value=!1,n("success")}))})}const b=[{text:"三天",value:()=>{const t=new Date;return t.setDate(t.getDate()+3),t}},{text:"七天",value:()=>{const t=new Date;return t.setDate(t.getDate()+7),t}},{text:"十五天",value:()=>{const t=new Date;return t.setDate(t.getDate()+15),t}},{text:"一个月",value:()=>{const t=new Date;return t.setMonth(t.getMonth()+1),t}},{text:"三个月",value:()=>{const t=new Date;return t.setMonth(t.getMonth()+3),t}},{text:"六个月",value:()=>{const t=new Date;return t.setMonth(t.getMonth()+6),t}},{text:"永久",value:()=>{const t=new Date;return t.setFullYear(t.getFullYear()+100),t}}];return i({show:s}),(t,o)=>{const g=e.resolveComponent("el-button"),N=e.resolveComponent("el-date-picker"),x=e.resolveComponent("el-form-item"),y=e.resolveComponent("el-checkbox"),D=e.resolveComponent("el-checkbox-group"),w=e.resolveComponent("el-input"),T=e.resolveComponent("el-form"),U=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[r.hiddenEntranceSlot?e.createCommentVNode("",!0):e.renderSlot(t.$slots,"default",{key:0},()=>[e.createVNode(g,{icon:"lock",type:"warning",onClick:o[0]||(o[0]=C=>s())},{default:e.withCtx(()=>[e.createTextVNode("加入黑名单")]),_:1})]),e.createVNode(U,{modelValue:a.value,"onUpdate:modelValue":o[4]||(o[4]=C=>a.value=C),onClosed:u,title:"黑名单管理",width:"500"},{footer:e.withCtx(()=>[e.createVNode(g,{type:"primary",onClick:l},{default:e.withCtx(()=>[e.createTextVNode("提交")]),_:1})]),default:e.withCtx(()=>[e.createVNode(T,{ref_key:"form",ref:p,"label-position":"top",rules:h.value,model:V.value},{default:e.withCtx(()=>[e.createVNode(x,{label:"解锁时间",prop:"unlockTime"},{default:e.withCtx(()=>[e.createVNode(N,{type:"datetime",shortcuts:b,modelValue:V.value.unlockTime,"onUpdate:modelValue":o[1]||(o[1]=C=>V.value.unlockTime=C)},null,8,["modelValue"])]),_:1}),e.createVNode(x,{label:"允许权限",prop:"allowPermissionCodes"},{default:e.withCtx(()=>[e.createVNode(D,{modelValue:V.value.permissions,"onUpdate:modelValue":o[2]||(o[2]=C=>V.value.permissions=C)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,(C,L)=>(e.openBlock(),e.createBlock(y,{label:L,key:L},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(C),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),e.createVNode(x,{label:"描述",prop:"description"},{default:e.withCtx(()=>[e.createVNode(w,{type:"textarea",modelValue:V.value.description,"onUpdate:modelValue":o[3]||(o[3]=C=>V.value.description=C)},null,8,["modelValue"])]),_:1})]),_:1},8,["rules","model"])]),_:1},8,["modelValue"])],64)}}}),Y={key:0},I=e.defineComponent({__name:"UserDetailDialog",setup(c,{expose:i}){const n=S(),r=e.inject("http"),d=e.ref(!1),a=e.ref(),m=e.ref(),s=e.ref({activeName:n.userDetailDialogTabs[0].code,tabs:[]}),h=e.ref(!1);function V(b,t,o){h.value=!0,_(b),t&&(s.value.activeName=t),s.value.tabs.length=0,s.value.tabs=s.value.tabs.concat(n.userDetailDialogTabs),o&&(s.value.tabs=s.value.tabs.concat(o))}function _(b){r==null||r.get(`/api/user/${b}`).then(t=>{a.value=t.data,h.value=!1,d.value=!0,a.value.inBlacklist&&f(b)})}function f(b){r==null||r.get(`/api/user/${b}/blacklist`).then(t=>{m.value=t.data})}const p=e.ref();function u(){p.value.show(a.value.id)}function l(){a.value=null,m.value=null}return i({show:V}),(b,t)=>{const o=e.resolveComponent("el-descriptions-item"),g=e.resolveComponent("el-tag"),N=e.resolveComponent("el-descriptions"),x=e.resolveComponent("el-tab-pane"),y=e.resolveComponent("el-tabs"),D=e.resolveComponent("el-button"),w=e.resolveComponent("el-dialog"),T=e.resolveDirective("loading"),U=e.resolveDirective("permission");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(w,{modelValue:d.value,"onUpdate:modelValue":t[1]||(t[1]=C=>d.value=C),title:"用户详情",width:"1300",onClosed:l},e.createSlots({default:e.withCtx(()=>[a.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",Y,[e.createVNode(N,{border:""},{default:e.withCtx(()=>[e.createVNode(o,{label:"用户编号"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.id),1)]),_:1}),e.createVNode(o,{label:"用户昵称"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.nickname),1)]),_:1}),e.createVNode(o,{label:"手机号码"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(B,{"mask-mobile":a.value.mobile,"user-id":a.value.id,key:a.value.id},null,8,["mask-mobile","user-id"]))]),_:1}),e.createVNode(o,{label:"邀请编码"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.inviteCode),1)]),_:1}),e.createVNode(o,{label:"活动时间"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.touchTime),1)]),_:1}),e.createVNode(o,{label:"注册时间"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.createdTime),1)]),_:1}),e.createVNode(o,{label:"最后登陆"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.lastLoginTime),1)]),_:1}),e.createVNode(o,{label:"最后更新"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.updatedTime),1)]),_:1}),e.createVNode(o,{label:"上级用户"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.parentId),1)]),_:1}),e.createVNode(o,{label:"黑名单"},{default:e.withCtx(()=>[e.createVNode(g,{type:a.value.inBlacklist?"danger":"success"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.inBlacklist?"是":"否"),1)]),_:1},8,["type"])]),_:1}),e.createVNode(o,{label:"邀请关系"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.relationPath),1)]),_:1})]),_:1}),m.value?(e.openBlock(),e.createBlock(N,{key:0,style:{"margin-top":"10px"},border:"",column:"2"},{default:e.withCtx(()=>[e.createVNode(o,{label:"黑名单解锁时间"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.unlockTime),1)]),_:1}),e.createVNode(o,{label:"加入时间"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.createdTime),1)]),_:1}),e.createVNode(o,{label:"允许权限"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.allowPermissionCodes?JSON.parse(m.value.allowPermissionCodes).join(", "):""),1)]),_:1}),e.createVNode(o,{label:"描述"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.description),1)]),_:1})]),_:1})):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(y,{modelValue:s.value.activeName,"onUpdate:modelValue":t[0]||(t[0]=C=>s.value.activeName=C),key:`usr_tab_${a.value.id}`,style:{"margin-top":"10px"},type:"border-card"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value.tabs,(C,L)=>(e.openBlock(),e.createBlock(x,{label:C.name,name:C.code,key:`user_detail_dialog_${C.code}`},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.KeepAlive,null,[s.value.activeName==C.code?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C.component),{key:`ud_tab_${C.code}`,userId:a.value.id},null,8,["userId"])):e.createCommentVNode("",!0)],1024))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"]))])),[[T,h.value]]):e.createCommentVNode("",!0)]),_:2},[a.value?{name:"footer",fn:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(D,{icon:"lock",type:"warning",onClick:u},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.inBlacklist?"修改":"加入")+"黑名单",1)]),_:1})),[[U,"ADD_TO_BLACKLIST"]])]),key:"0"}:void 0]),1032,["modelValue"]),e.createVNode(E,{ref_key:"addBlacklistComp",ref:p,onSuccess:t[2]||(t[2]=C=>_(a.value.id)),"hidden-entrance-slot":""},null,512)],64)}}}),P={install:c=>{c.component("PgUserDetailDialog",I)}},A=e.defineComponent({__name:"UserSelectorComp",props:{modelValue:{required:!0,type:Number},pageSize:{type:Number,default:20}},emits:["update:modelValue"],setup(c,{emit:i}){const n=c,r=e.inject("http");e.onMounted(()=>{n.modelValue&&V(n.modelValue)});const d=e.ref(n.modelValue);e.watch(d,_=>{i("update:modelValue",_)});const a=e.ref(!1),m=e.ref([]);let s=null;function h(_){_&&(a.value=!0,s&&clearTimeout(s),s=setTimeout(()=>{r==null||r.get("/api/user/keyword-search",{keyword:_,pageSize:n.pageSize}).then(f=>{m.value=f.data}).finally(()=>{a.value=!1})},200))}function V(_){a.value=!0,r==null||r.get(`/api/user/${_}`).then(f=>{m.value=[f.data]}).finally(()=>{a.value=!1})}return(_,f)=>{const p=e.resolveComponent("el-option"),u=e.resolveComponent("el-select");return e.openBlock(),e.createBlock(u,{modelValue:d.value,"onUpdate:modelValue":f[0]||(f[0]=l=>d.value=l),filterable:"",remote:"",loading:a.value,"remote-method":h},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,l=>(e.openBlock(),e.createBlock(p,{key:l.id,value:l.id,label:`${l.id} / ${l.nickname} / ${l.mobile} / ${l.inviteCode}`},{default:e.withCtx(()=>[e.renderSlot(_.$slots,"default",{user:l},()=>[e.createTextVNode(e.toDisplayString(l.id)+" / "+e.toDisplayString(l.nickname)+" / "+e.toDisplayString(l.mobile)+" / "+e.toDisplayString(l.inviteCode),1)])]),_:2},1032,["value","label"]))),128))]),_:3},8,["modelValue","loading"])}}}),F={install:c=>{c.component("PgUserSelector",A)}},H=[M,P,F],J=c=>(e.pushScopeId("data-v-391c43be"),c=c(),e.popScopeId(),c),G={class:"page-layout"},W={style:{"margin-top":"10px"}},Q=J(()=>e.createElementVNode("template",{"slot-scope":"{row}"},null,-1)),X=e.defineComponent({__name:"list",setup(c){const i=e.ref({id:null,parentId:null,phone:null,nicekname:null,inviteCode:null}),n=e.ref(null);function r(){n.value.search()}const d=e.ref();function a(m){d.value.show(m.id)}return(m,s)=>{const h=e.resolveComponent("el-input"),V=e.resolveComponent("el-button"),_=e.resolveComponent("el-space"),f=e.resolveComponent("el-card"),p=e.resolveComponent("el-table-column"),u=e.resolveComponent("el-image");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",G,[e.createVNode(f,null,{default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[e.createVNode(h,{modelValue:i.value.id,"onUpdate:modelValue":s[0]||(s[0]=l=>i.value.id=l),placeholder:"ID",style:{width:"100px"},clearable:""},null,8,["modelValue"]),e.createVNode(h,{modelValue:i.value.parentId,"onUpdate:modelValue":s[1]||(s[1]=l=>i.value.parentId=l),placeholder:"父用户ID",style:{width:"100px"},clearable:""},null,8,["modelValue"]),e.createVNode(h,{modelValue:i.value.phone,"onUpdate:modelValue":s[2]||(s[2]=l=>i.value.phone=l),placeholder:"手机号",style:{width:"120px"},clearable:""},null,8,["modelValue"]),e.createVNode(h,{modelValue:i.value.nicekname,"onUpdate:modelValue":s[3]||(s[3]=l=>i.value.nicekname=l),placeholder:"昵称",style:{width:"150px"},clearable:""},null,8,["modelValue"]),e.createVNode(h,{modelValue:i.value.inviteCode,"onUpdate:modelValue":s[4]||(s[4]=l=>i.value.inviteCode=l),placeholder:"邀请码",style:{width:"100px"},clearable:""},null,8,["modelValue"]),e.createVNode(V,{type:"primary",icon:"search",onClick:r},{default:e.withCtx(()=>[e.createTextVNode("搜索")]),_:1})]),_:1})]),_:1}),e.createElementVNode("div",W,[e.createVNode(e.unref(j.PgTable),{ref_key:"userTable",ref:n,"data-url":"/api/user/page",condition:i.value,onRowDbClick:s[5]||(s[5]=l=>a(l))},{columns:e.withCtx(()=>[e.createVNode(p,{prop:"id",label:"UID",width:"80",align:"center"}),e.createVNode(p,{prop:"mobile",label:"手机",width:"115",align:"left","show-overflow-tooltip":""},{default:e.withCtx(l=>[(e.openBlock(),e.createBlock(B,{"mask-mobile":l.row.mobile,"user-id":l.row.id,key:l.row.id},null,8,["mask-mobile","user-id"]))]),_:1}),e.createVNode(p,{prop:"username",label:"用户名",width:"110",align:"left","show-overflow-tooltip":""}),e.createVNode(p,{prop:"nickname",label:"昵称",width:"110",align:"left","show-overflow-tooltip":""}),e.createVNode(p,{prop:"inviteCode",label:"邀请码",width:"90",align:"center","show-overflow-tooltip":""}),e.createVNode(p,{prop:"avatar",label:"头像",width:"60",align:"center","show-overflow-tooltip":""},{default:e.withCtx(l=>[e.createVNode(u,{fit:"cover",size:30,src:l.row.avatar,"preview-teleported":"","preview-src-list":[l.row.avatar]},null,8,["src","preview-src-list"])]),_:1}),e.createVNode(p,{prop:"parentId",label:"上级ID",width:"80",align:"left","show-overflow-tooltip":""}),e.createVNode(p,{prop:"relationPath",label:"邀请关系","min-width":"150",align:"left","show-overflow-tooltip":""}),e.createVNode(p,{prop:"blackUnlockTime",label:"黑名单解锁",width:"145",align:"left","show-overflow-tooltip":""}),e.createVNode(p,{prop:"lastLoginTime",label:"最后登录时间",width:"145",align:"center","show-overflow-tooltip":""}),e.createVNode(p,{prop:"createdTime",label:"创建时间",width:"145",align:"center","show-overflow-tooltip":""}),e.createVNode(p,{label:"操作",width:"220",fixed:"right"},{default:e.withCtx(()=>[Q]),_:1})]),_:1},8,["condition"])])]),e.createVNode(I,{ref_key:"userDetailDialog",ref:d},null,512)],64)}}}),le="",Z=$(X,[["__scopeId","data-v-391c43be"]]),v=e.defineComponent({__name:"BlackListView",setup(c){const i=e.inject("http"),n=e.ref({userId:null,status:"VALID"}),r=e.ref();function d(){r.value.search()}function a(_){i==null||i.post(`/api/user/blacklist/${_}/unlock`).then(f=>{d()})}const m=e.ref();function s(_){m.value.show(_)}const h=e.ref();function V(_){h.value.show(_)}return(_,f)=>{const p=e.resolveComponent("el-option"),u=e.resolveComponent("el-select"),l=e.resolveComponent("el-button"),b=e.resolveComponent("el-space"),t=e.resolveComponent("el-card"),o=e.resolveComponent("el-table-column"),g=e.resolveComponent("el-link"),N=e.resolveComponent("el-tag"),x=e.resolveComponent("el-popconfirm"),y=e.resolveComponent("pg-table"),D=e.resolveDirective("permission");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(b,null,{default:e.withCtx(()=>[e.createVNode(A,{modelValue:n.value.userId,"onUpdate:modelValue":f[0]||(f[0]=w=>n.value.userId=w),clearable:"",style:{width:"300px"}},null,8,["modelValue"]),e.createVNode(u,{placeholder:"状态",modelValue:n.value.status,"onUpdate:modelValue":f[1]||(f[1]=w=>n.value.status=w),clearable:"",style:{width:"100px"}},{default:e.withCtx(()=>[e.createVNode(p,{value:"VALID",label:"有效"}),e.createVNode(p,{value:"INVALID",label:"失效"})]),_:1},8,["modelValue"]),e.createVNode(l,{icon:"search",type:"primary",onClick:d},{default:e.withCtx(()=>[e.createTextVNode("搜索")]),_:1})]),_:1})]),_:1}),e.createVNode(y,{ref_key:"table",ref:r,"data-url":"/api/user/blacklist",condition:n.value,style:{"margin-top":"10px"}},{columns:e.withCtx(()=>[e.createVNode(o,{label:"ID",prop:"id",width:"100"}),e.createVNode(o,{label:"用户信息"},{default:e.withCtx(()=>[e.createVNode(o,{label:"用户ID",width:"100"},{default:e.withCtx(({row:w})=>[e.createVNode(g,{type:"primary",onClick:T=>V(w.userId)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(w.userId),1)]),_:2},1032,["onClick"])]),_:1}),e.createVNode(o,{label:"手机号",width:"150"},{default:e.withCtx(({row:w})=>[e.createVNode(B,{"user-id":w.userId,"mask-mobile":w.userMobile},null,8,["user-id","mask-mobile"])]),_:1}),e.createVNode(o,{label:"用户昵称",prop:"userNickname"})]),_:1}),e.createVNode(o,{label:"限制信息"},{default:e.withCtx(()=>[e.createVNode(o,{label:"描述",prop:"description"}),e.createVNode(o,{label:"允许权限",prop:"allowPermissionCodes","show-overflow-tooltip":""}),e.createVNode(o,{label:"状态",prop:"status",align:"center",width:"100"},{default:e.withCtx(({row:w})=>[e.createVNode(N,{type:w.status=="VALID"?"success":"warning"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(w.status=="VALID"?"有效":"失效"),1)]),_:2},1032,["type"])]),_:1}),e.createVNode(o,{label:"加入时间",prop:"createdTime",width:"170"}),e.createVNode(o,{label:"解锁时间",prop:"unlockTime",width:"170"})]),_:1}),e.createVNode(o,null,{default:e.withCtx(({row:w})=>[w.status=="VALID"&&_.$hasPer("BLACKLIST_UNLOCK")?(e.openBlock(),e.createBlock(x,{key:0,title:"确定要解锁吗?",onConfirm:a},{reference:e.withCtx(()=>[e.createVNode(l,{type:"warning",icon:"unlock"},{default:e.withCtx(()=>[e.createTextVNode("解锁")]),_:1})]),_:1})):e.createCommentVNode("",!0),w.status=="VALID"?e.withDirectives((e.openBlock(),e.createBlock(l,{key:1,icon:"edit",onClick:T=>s(w.userId)},{default:e.withCtx(()=>[e.createTextVNode("编辑")]),_:2},1032,["onClick"])),[[D,"ADD_TO_BLACKLIST"]]):e.createCommentVNode("",!0)]),_:1})]),_:1},8,["condition"]),e.createVNode(E,{ref_key:"addBlacklistComp",ref:m,onSuccess:d,"hidden-entrance-slot":""},null,512),e.createVNode(I,{ref_key:"userDetail",ref:h},null,512)],64)}}}),ee={install:(c,i)=>{let n=i.router,r=n.getRoutes().find(d=>d.path=="/");r&&r.meta&&n.addRoute({path:"/user",name:"User",redirect:"/user/list",component:r.meta.commonLayout,children:[{path:"list",name:"UserList",component:Z},{path:"blacklist",name:"BlackListView",component:v}]})}},R=(c,i)=>{const n=S();if(i.userDetailDialogTabs&&i.userDetailDialogTabs.length)for(let r of i.userDetailDialogTabs)n.userDetailDialogTabs.push(r);H.forEach(r=>c.use(r)),c.use(ee,i)},te={install:R};k.UserDetailDialog=P,k.UserMobileComp=M,k.UserSelectComp=F,k.default=te,k.install=R,k.useUserCoreConfigStore=S,Object.defineProperties(k,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(C,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("pinia"),require("element-plus"),require("@pangu-backend-ui/common")):typeof define=="function"&&define.amd?define(["exports","vue","pinia","element-plus","@pangu-backend-ui/common"],e):(C=typeof globalThis<"u"?globalThis:C||self,e(C["pg-user-core"]={},C.Vue,C.pinia,C["element-plus"],C.common))})(this,function(C,e,j,y,O){"use strict";const q={key:0,class:"container"},Y=e.defineComponent({__name:"UserMobileComponent",props:{userId:{type:Number,default:null},maskMobile:{type:String,default:null}},setup(c){const n=c,a=e.ref({plainMobile:null,loading:!1}),l=e.inject("http");function r(){a.value.plainMobile==null&&(a.value.loading=!0,l==null||l.get(`/api/user/${n.userId}/plainmobile`).then(t=>{a.value.plainMobile=t.data,a.value.loading=!1}).finally(()=>{a.value.loading=!1}))}return(t,m)=>{const s=e.resolveComponent("View"),b=e.resolveComponent("el-icon"),_=e.resolveComponent("Loading");return n.maskMobile!=null?(e.openBlock(),e.createElementBlock("div",q,[a.value.plainMobile==null?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(n.maskMobile),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a.value.plainMobile),1)],64)),a.value.plainMobile==null&&!a.value.loading&&n.userId!=null&&t.$hasPer("DECRYPT_MOBILE")?(e.openBlock(),e.createBlock(b,{key:2,class:"view-icon",onClick:r},{default:e.withCtx(()=>[e.createVNode(s)]),_:1})):e.createCommentVNode("",!0),a.value.loading?(e.openBlock(),e.createBlock(b,{key:3,class:"is-loading view-icon"},{default:e.withCtx(()=>[e.createVNode(_)]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}}),ne="",F=(c,n)=>{const a=c.__vccOpts||c;for(const[l,r]of n)a[l]=r;return a},D=F(Y,[["__scopeId","data-v-dd075891"]]),E={install:c=>{c.component("PgUserMobile",D)}},A=e.defineComponent({__name:"LoginHistory",props:["userId"],setup(c){const n=c,a=e.ref({userId:n.userId,loginTimeStart:null,loginTimeEnd:null}),l=e.ref([]);e.watch(l,m=>{m?(a.value.loginTimeStart=m[0],a.value.loginTimeEnd=m[1]):(a.value.loginTimeStart=null,a.value.loginTimeEnd=null)});const r=e.ref();function t(){r.value.search()}return(m,s)=>{const b=e.resolveComponent("el-date-picker"),_=e.resolveComponent("el-button"),V=e.resolveComponent("el-space"),d=e.resolveComponent("el-table-column"),u=e.resolveComponent("el-tag"),p=e.resolveComponent("pg-table");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(b,{modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=o=>l.value=o),type:"datetimerange","range-separator":"-","start-placeholder":"登录开始时间","end-placeholder":"登录结束时间",clearable:""},null,8,["modelValue"]),e.createVNode(_,{type:"primary",icon:"search",onClick:t},{default:e.withCtx(()=>[e.createTextVNode("搜索")]),_:1})]),_:1}),e.createVNode(p,{ref_key:"historiesTable",ref:r,style:{"margin-top":"10px"},"data-url":"/api/user/login-history",condition:a.value},{columns:e.withCtx(()=>[e.createVNode(d,{prop:"createdTime",label:"登录时间",align:"center","show-overflow-tooltip":""}),e.createVNode(d,{prop:"ip",label:"登录IP",align:"center","show-overflow-tooltip":""}),e.createVNode(d,{prop:"runtimeName",label:"运行容器",align:"center","show-overflow-tooltip":""}),e.createVNode(d,{label:"登录方式",align:"center","show-overflow-tooltip":""},{default:e.withCtx(({row:o})=>[o.method==="SMS"?(e.openBlock(),e.createBlock(u,{key:0,type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode("短信登录")]),_:1})):e.createCommentVNode("",!0),o.method==="THIRD_PLATFORM"?(e.openBlock(),e.createBlock(u,{key:1,type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode("第三方平台")]),_:1})):e.createCommentVNode("",!0),o.method==="UNIVERIFY"?(e.openBlock(),e.createBlock(u,{key:2,type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode("一键登录")]),_:1})):e.createCommentVNode("",!0),o.method==="PASSWORD"?(e.openBlock(),e.createBlock(u,{key:3,type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode("帐号密码")]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(d,{prop:"thirdPlatformName",label:"第三方登录",align:"center","show-overflow-tooltip":""}),e.createVNode(d,{prop:"versionCode",label:"版本代码",align:"center","show-overflow-tooltip":""}),e.createVNode(d,{prop:"versionName",label:"版本名称",align:"center","show-overflow-tooltip":""})]),_:1},8,["condition"])],64)}}}),T=j.defineStore("pg-user-core-config-store",()=>{const c=[];return c.push({name:"登录历史",code:"LOGIN_HISTORY",component:e.shallowRef(A)}),{userDetailDialogTabs:e.computed(()=>c)}}),H={style:{width:"100%",position:"relative",display:"flex","flex-direction":"column",gap:"5px"}},G=e.defineComponent({__name:"AddFunctionDisableDialog",emits:["success"],setup(c,{expose:n,emit:a}){const l=e.ref(!1),r=e.inject("http"),t=e.ref({functionCode:null,expiry:null,remark:null,disableForever:!0}),m={functionCode:[{required:!0,message:"请选择禁用功能"}],expiry:[{validator:(p,o,g)=>{t.value.disableForever&&(o==null&&g(new Error("请选择结束时间")),new Date(o).getTime()<=new Date().getTime()&&g(new Error("结束时间不能小于当前时间"))),g()}}]},s=e.ref({});async function b(){const p=await(r==null?void 0:r.get("/api/user/function-disable/functions"));s.value=p==null?void 0:p.data}const _=e.ref();function V(){_.value.validate(async p=>{p&&(await(r==null?void 0:r.post(`/api/user/${d}/function-disable`,t.value)),y.ElMessage.success("添加成功"),l.value=!1,t.value.functionCode=null,t.value.expiry=null,t.value.remark=null,t.value.disableForever=!0,a("success"))})}let d=null;function u(p){l.value=!0,d=p,b()}return n({show:u}),(p,o)=>{const g=e.resolveComponent("el-option"),i=e.resolveComponent("el-select"),f=e.resolveComponent("el-form-item"),h=e.resolveComponent("el-checkbox"),w=e.resolveComponent("el-date-picker"),x=e.resolveComponent("el-input"),B=e.resolveComponent("el-form"),S=e.resolveComponent("el-button"),U=e.resolveComponent("el-dialog");return e.openBlock(),e.createBlock(U,{modelValue:l.value,"onUpdate:modelValue":o[4]||(o[4]=N=>l.value=N),title:"添加功能禁用",width:"500px","append-to-body":""},{footer:e.withCtx(()=>[e.createVNode(S,{type:"primary",size:"mini",onClick:V},{default:e.withCtx(()=>[e.createTextVNode("提交")]),_:1})]),default:e.withCtx(()=>[e.createVNode(B,{ref_key:"addDisabledFunctionForm",ref:_,model:t.value,rules:m,"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(f,{label:"禁用功能",prop:"functionCode"},{default:e.withCtx(()=>[e.createVNode(i,{modelValue:t.value.functionCode,"onUpdate:modelValue":o[0]||(o[0]=N=>t.value.functionCode=N),placeholder:"请选择禁用功能"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(N,I)=>(e.openBlock(),e.createBlock(g,{value:I,label:N},null,8,["value","label"]))),256))]),_:1},8,["modelValue"])]),_:1}),e.createVNode(f,{label:"结束时间",prop:"endDateTime"},{default:e.withCtx(()=>[e.createElementVNode("div",H,[e.createVNode(h,{modelValue:t.value.disableForever,"onUpdate:modelValue":o[1]||(o[1]=N=>t.value.disableForever=N),label:"永久禁用"},null,8,["modelValue"]),t.value.disableForever?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(w,{key:0,type:"datetime",modelValue:t.value.expiry,"onUpdate:modelValue":o[2]||(o[2]=N=>t.value.expiry=N),placeholder:"请输入结束时间","value-format":"YYYY-MM-DD HH:mm:ss",clearable:""},null,8,["modelValue"]))])]),_:1}),e.createVNode(f,{label:"备注"},{default:e.withCtx(()=>[e.createVNode(x,{type:"textarea",placeholder:"请输入备注",modelValue:t.value.remark,"onUpdate:modelValue":o[3]||(o[3]=N=>t.value.remark=N)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),M=e.defineComponent({__name:"FunctionDisableTableDialog",setup(c,{expose:n}){const a=e.inject("http"),l=e.ref(!1),r=e.ref({userId:null}),t=e.ref();function m(d){l.value=!0,r.value.userId=d,e.nextTick(()=>t.value.search())}function s(){t.value.search()}const b=e.ref();function _(){b.value.show(r.value.userId)}async function V(d){await(a==null?void 0:a.post(`/api/user/function-disable/${d}/enable`)),y.ElMessage.success("失效成功"),t.value.search()}return n({show:m}),(d,u)=>{const p=e.resolveComponent("el-table-column"),o=e.resolveComponent("el-tag"),g=e.resolveComponent("el-button"),i=e.resolveComponent("el-popconfirm"),f=e.resolveComponent("pg-table"),h=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(h,{modelValue:l.value,"onUpdate:modelValue":u[0]||(u[0]=w=>l.value=w),title:"功能禁用",width:"900px","append-to-body":""},{footer:e.withCtx(()=>[e.createVNode(g,{type:"primary",onClick:_},{default:e.withCtx(()=>[e.createTextVNode(" 添加功能禁用 ")]),_:1})]),default:e.withCtx(()=>[e.createVNode(f,{ref_key:"table",ref:t,"data-url":"/api/user/function-disable/page-search","fetch-data":!1,condition:r.value},{default:e.withCtx(()=>[e.createVNode(p,{prop:"id",label:"ID",width:"80",align:"center"}),e.createVNode(p,{label:"功能",prop:"functionLabel",align:"center",width:"120"}),e.createVNode(p,{label:"状态",width:"80",align:"center"},{default:e.withCtx(({row:w})=>[e.createVNode(o,{size:"mini",type:w.expiry==null||new Date(w.expiry).getTime()>=new Date().getTime()?"success":"warning"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(w.expiry==null||new Date(w.expiry).getTime()>=new Date().getTime()?"生效":"失效"),1)]),_:2},1032,["type"])]),_:1}),e.createVNode(p,{label:"结束时间",align:"center",width:"160"},{default:e.withCtx(({row:w})=>[e.createTextVNode(e.toDisplayString(w.expiry?w.expiry:"永久"),1)]),_:1}),e.createVNode(p,{prop:"remark",label:"备注","show-overflow-tooltip":"",align:"center"}),e.createVNode(p,{prop:"createdTime",label:"创建时间",width:"160",align:"center"}),e.createVNode(p,{prop:"操作",width:"120",align:"center"},{default:e.withCtx(({row:w})=>[w.expiry==null||new Date(w.expiry).getTime()>=new Date().getTime()?(e.openBlock(),e.createBlock(i,{key:0,title:"确定当前操作吗?",onConfirm:x=>V(w.id)},{reference:e.withCtx(()=>[e.createVNode(g,{type:"warning"},{default:e.withCtx(()=>[e.createTextVNode("失效")]),_:1})]),_:2},1032,["onConfirm"])):e.createCommentVNode("",!0)]),_:1})]),_:1},8,["condition"])]),_:1},8,["modelValue"]),e.createVNode(G,{ref_key:"addFunctionDisableDialog",ref:b,onSuccess:s},null,512)],64)}}}),J={key:0},$=e.defineComponent({__name:"UserDetailDialog",setup(c,{expose:n}){const a=T(),l=e.inject("http"),r=e.ref(!1),t=e.ref(),m=e.ref(),s=e.ref({activeName:a.userDetailDialogTabs[0].code,tabs:[]}),b=e.ref(!1);function _(g,i,f){b.value=!0,V(g),i&&(s.value.activeName=i),s.value.tabs.length=0,s.value.tabs=s.value.tabs.concat(a.userDetailDialogTabs),f&&(s.value.tabs=s.value.tabs.concat(f))}function V(g){l==null||l.get(`/api/user/${g}`).then(i=>{t.value=i.data,b.value=!1,r.value=!0,t.value.inBlacklist&&d(g)})}function d(g){l==null||l.get(`/api/user/${g}/blacklist`).then(i=>{m.value=i.data})}const u=e.ref();function p(){u.value.show(t.value.id)}function o(){t.value=null,m.value=null}return n({show:_}),(g,i)=>{const f=e.resolveComponent("el-descriptions-item"),h=e.resolveComponent("el-tag"),w=e.resolveComponent("el-descriptions"),x=e.resolveComponent("el-tab-pane"),B=e.resolveComponent("el-tabs"),S=e.resolveComponent("el-button"),U=e.resolveComponent("el-dialog"),N=e.resolveDirective("loading"),I=e.resolveDirective("permission");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(U,{modelValue:r.value,"onUpdate:modelValue":i[1]||(i[1]=k=>r.value=k),title:"用户详情",width:"1300",onClosed:o},e.createSlots({default:e.withCtx(()=>[t.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",J,[e.createVNode(w,{border:""},{default:e.withCtx(()=>[e.createVNode(f,{label:"用户编号"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.id),1)]),_:1}),e.createVNode(f,{label:"用户昵称"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.nickname),1)]),_:1}),e.createVNode(f,{label:"手机号码"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(D,{"mask-mobile":t.value.mobile,"user-id":t.value.id,key:t.value.id},null,8,["mask-mobile","user-id"]))]),_:1}),e.createVNode(f,{label:"邀请编码"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.inviteCode),1)]),_:1}),e.createVNode(f,{label:"活动时间"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.touchTime),1)]),_:1}),e.createVNode(f,{label:"注册时间"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.createdTime),1)]),_:1}),e.createVNode(f,{label:"最后登陆"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.lastLoginTime),1)]),_:1}),e.createVNode(f,{label:"最后更新"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.updatedTime),1)]),_:1}),e.createVNode(f,{label:"上级用户"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.parentId),1)]),_:1}),e.createVNode(f,{label:"黑名单"},{default:e.withCtx(()=>[e.createVNode(h,{type:t.value.inBlacklist?"danger":"success"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.inBlacklist?"是":"否"),1)]),_:1},8,["type"])]),_:1}),e.createVNode(f,{label:"邀请关系"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.relationPath),1)]),_:1})]),_:1}),m.value?(e.openBlock(),e.createBlock(w,{key:0,style:{"margin-top":"10px"},border:"",column:"2"},{default:e.withCtx(()=>[e.createVNode(f,{label:"黑名单解锁时间"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.unlockTime),1)]),_:1}),e.createVNode(f,{label:"加入时间"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.createdTime),1)]),_:1}),e.createVNode(f,{label:"允许权限"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.allowPermissionCodes?JSON.parse(m.value.allowPermissionCodes).join(", "):""),1)]),_:1}),e.createVNode(f,{label:"描述"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.description),1)]),_:1})]),_:1})):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(B,{modelValue:s.value.activeName,"onUpdate:modelValue":i[0]||(i[0]=k=>s.value.activeName=k),key:`usr_tab_${t.value.id}`,style:{"margin-top":"10px"},type:"border-card"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value.tabs,(k,re)=>(e.openBlock(),e.createBlock(x,{label:k.name,name:k.code,key:`user_detail_dialog_${k.code}`},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.KeepAlive,null,[s.value.activeName==k.code?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(k.component),{key:`ud_tab_${k.code}`,userId:t.value.id},null,8,["userId"])):e.createCommentVNode("",!0)],1024))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"]))])),[[N,b.value]]):e.createCommentVNode("",!0)]),_:2},[t.value?{name:"footer",fn:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(S,{icon:"lock",type:"warning",onClick:p},{default:e.withCtx(()=>[e.createTextVNode("添加功能禁用")]),_:1})),[[I,"FUNCTION_DISABLE"]])]),key:"0"}:void 0]),1032,["modelValue"]),e.createVNode(M,{ref_key:"functionDisableTableDialog",ref:u},null,512)],64)}}}),L={install:c=>{c.component("PgUserDetailDialog",$)}},K=e.defineComponent({__name:"UserSelectorComp",props:{modelValue:{required:!0,type:Number},pageSize:{type:Number,default:20}},emits:["update:modelValue"],setup(c,{emit:n}){const a=c,l=e.inject("http");e.onMounted(()=>{a.modelValue&&_(a.modelValue)});const r=e.ref(a.modelValue);e.watch(r,V=>{n("update:modelValue",V)});const t=e.ref(!1),m=e.ref([]);let s=null;function b(V){V&&(t.value=!0,s&&clearTimeout(s),s=setTimeout(()=>{l==null||l.get("/api/user/keyword-search",{keyword:V,pageSize:a.pageSize}).then(d=>{m.value=d.data}).finally(()=>{t.value=!1})},200))}function _(V){t.value=!0,l==null||l.get(`/api/user/${V}`).then(d=>{m.value=[d.data]}).finally(()=>{t.value=!1})}return(V,d)=>{const u=e.resolveComponent("el-option"),p=e.resolveComponent("el-select");return e.openBlock(),e.createBlock(p,{modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=o=>r.value=o),filterable:"",remote:"",loading:t.value,"remote-method":b},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,o=>(e.openBlock(),e.createBlock(u,{key:o.id,value:o.id,label:`${o.id} / ${o.nickname} / ${o.mobile} / ${o.inviteCode}`},{default:e.withCtx(()=>[e.renderSlot(V.$slots,"default",{user:o},()=>[e.createTextVNode(e.toDisplayString(o.id)+" / "+e.toDisplayString(o.nickname)+" / "+e.toDisplayString(o.mobile)+" / "+e.toDisplayString(o.inviteCode),1)])]),_:2},1032,["value","label"]))),128))]),_:3},8,["modelValue","loading"])}}}),P={install:c=>{c.component("PgUserSelector",K)}},R={install:c=>{c.component("PgFunctionDisableTableDialog",M)}},W=[E,L,P,R],Q={__name:"CreateUserDialog",emits:["success"],setup(c,{expose:n,emit:a}){const l=e.inject("http"),r=e.ref(!1),t=e.ref({mobile:null,password:null,inviteCode:null}),m={mobile:[{required:!0,message:"请输入手机号"}],password:[{required:!0,message:"请输入登录密码"}]},s=e.ref();function b(){s.value.validate(async d=>{d&&(await l.post("/api/user/create",t.value),y.ElMessage.success("创建成功"),a("success"),r.value=!1)})}function _(){r.value=!0}function V(){s.value.resetFields()}return n({show:_}),(d,u)=>{const p=e.resolveComponent("el-input"),o=e.resolveComponent("el-form-item"),g=e.resolveComponent("el-form"),i=e.resolveComponent("el-button"),f=e.resolveComponent("el-dialog");return e.openBlock(),e.createBlock(f,{modelValue:r.value,"onUpdate:modelValue":u[3]||(u[3]=h=>r.value=h),title:"创建用户",width:"400",onClosed:V},{footer:e.withCtx(()=>[e.createVNode(i,{type:"primary",onClick:b},{default:e.withCtx(()=>[e.createTextVNode("提交")]),_:1})]),default:e.withCtx(()=>[e.createVNode(g,{ref_key:"formRef",ref:s,model:t.value,rules:m,"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(o,{label:"手机号",prop:"mobile"},{default:e.withCtx(()=>[e.createVNode(p,{modelValue:t.value.mobile,"onUpdate:modelValue":u[0]||(u[0]=h=>t.value.mobile=h),placeholder:"请输入登录手机号"},null,8,["modelValue"])]),_:1}),e.createVNode(o,{label:"登录密码",prop:"password"},{default:e.withCtx(()=>[e.createVNode(p,{modelValue:t.value.password,"onUpdate:modelValue":u[1]||(u[1]=h=>t.value.password=h),placeholder:"请输入登录密码"},null,8,["modelValue"])]),_:1}),e.createVNode(o,{label:"邀请码",prop:"inviteCode"},{default:e.withCtx(()=>[e.createVNode(p,{modelValue:t.value.inviteCode,"onUpdate:modelValue":u[2]||(u[2]=h=>t.value.inviteCode=h),placeholder:"请输入邀请码"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}},X=c=>(e.pushScopeId("data-v-2dcce2b2"),c=c(),e.popScopeId(),c),Z={class:"page-layout"},v={style:{"margin-top":"10px"}},ee=X(()=>e.createElementVNode("template",{"slot-scope":"{row}"},null,-1)),te=e.defineComponent({__name:"list",setup(c){const n=e.ref({id:null,parentId:null,phone:null,nicekname:null,inviteCode:null}),a=e.ref(null);function l(){a.value.search()}const r=e.ref();function t(b){r.value.show(b.id)}const m=e.ref();function s(){m.value.show()}return(b,_)=>{const V=e.resolveComponent("el-input"),d=e.resolveComponent("el-button"),u=e.resolveComponent("el-space"),p=e.resolveComponent("el-card"),o=e.resolveComponent("el-table-column"),g=e.resolveComponent("el-image");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Z,[e.createVNode(p,null,{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(V,{modelValue:n.value.id,"onUpdate:modelValue":_[0]||(_[0]=i=>n.value.id=i),placeholder:"ID",style:{width:"100px"},clearable:""},null,8,["modelValue"]),e.createVNode(V,{modelValue:n.value.parentId,"onUpdate:modelValue":_[1]||(_[1]=i=>n.value.parentId=i),placeholder:"父用户ID",style:{width:"100px"},clearable:""},null,8,["modelValue"]),e.createVNode(V,{modelValue:n.value.phone,"onUpdate:modelValue":_[2]||(_[2]=i=>n.value.phone=i),placeholder:"手机号",style:{width:"120px"},clearable:""},null,8,["modelValue"]),e.createVNode(V,{modelValue:n.value.nicekname,"onUpdate:modelValue":_[3]||(_[3]=i=>n.value.nicekname=i),placeholder:"昵称",style:{width:"150px"},clearable:""},null,8,["modelValue"]),e.createVNode(V,{modelValue:n.value.inviteCode,"onUpdate:modelValue":_[4]||(_[4]=i=>n.value.inviteCode=i),placeholder:"邀请码",style:{width:"100px"},clearable:""},null,8,["modelValue"]),e.createVNode(d,{type:"primary",icon:"search",onClick:l},{default:e.withCtx(()=>[e.createTextVNode("搜索")]),_:1}),e.createVNode(d,{type:"warning",icon:"plus",onClick:s},{default:e.withCtx(()=>[e.createTextVNode("创建用户")]),_:1})]),_:1})]),_:1}),e.createElementVNode("div",v,[e.createVNode(e.unref(O.PgTable),{ref_key:"userTable",ref:a,"data-url":"/api/user/page",condition:n.value,onRowDbClick:_[5]||(_[5]=i=>t(i))},{columns:e.withCtx(()=>[e.createVNode(o,{prop:"id",label:"UID",width:"80",align:"center"}),e.createVNode(o,{prop:"mobile",label:"手机",width:"115",align:"left","show-overflow-tooltip":""},{default:e.withCtx(i=>[(e.openBlock(),e.createBlock(D,{"mask-mobile":i.row.mobile,"user-id":i.row.id,key:i.row.id},null,8,["mask-mobile","user-id"]))]),_:1}),e.createVNode(o,{prop:"username",label:"用户名",width:"110",align:"left","show-overflow-tooltip":""}),e.createVNode(o,{prop:"nickname",label:"昵称",width:"110",align:"left","show-overflow-tooltip":""}),e.createVNode(o,{prop:"inviteCode",label:"邀请码",width:"90",align:"center","show-overflow-tooltip":""}),e.createVNode(o,{prop:"avatar",label:"头像",width:"60",align:"center","show-overflow-tooltip":""},{default:e.withCtx(i=>[e.createVNode(g,{fit:"cover",size:30,src:i.row.avatar,"preview-teleported":"","preview-src-list":[i.row.avatar]},null,8,["src","preview-src-list"])]),_:1}),e.createVNode(o,{prop:"parentId",label:"上级ID",width:"80",align:"left","show-overflow-tooltip":""}),e.createVNode(o,{prop:"relationPath",label:"邀请关系","min-width":"150",align:"left","show-overflow-tooltip":""}),e.createVNode(o,{prop:"blackUnlockTime",label:"黑名单解锁",width:"145",align:"left","show-overflow-tooltip":""}),e.createVNode(o,{prop:"lastLoginTime",label:"最后登录时间",width:"145",align:"center","show-overflow-tooltip":""}),e.createVNode(o,{prop:"createdTime",label:"创建时间",width:"145",align:"center","show-overflow-tooltip":""}),e.createVNode(o,{label:"操作",width:"220",fixed:"right"},{default:e.withCtx(()=>[ee]),_:1})]),_:1},8,["condition"])])]),e.createVNode($,{ref_key:"userDetailDialog",ref:r},null,512),e.createVNode(Q,{ref_key:"createUserDialog",ref:m,onSuccess:l},null,512)],64)}}}),ie="",oe=F(te,[["__scopeId","data-v-2dcce2b2"]]),le={install:(c,n)=>{let a=n.router,l=a.getRoutes().find(r=>r.path=="/");l&&l.meta&&a.addRoute({path:"/user",name:"User",redirect:"/user/list",component:l.meta.commonLayout,children:[{path:"list",name:"UserList",component:oe}]})}},z=(c,n)=>{const a=T();if(n.userDetailDialogTabs&&n.userDetailDialogTabs.length)for(let l of n.userDetailDialogTabs)a.userDetailDialogTabs.push(l);W.forEach(l=>c.use(l)),c.use(le,n)},ae={install:z};C.FunctionDisableDialog=R,C.UserDetailDialog=L,C.UserMobileComp=E,C.UserSelectComp=P,C.default=ae,C.install=z,C.useUserCoreConfigStore=T,Object.defineProperties(C,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pangu-backend-ui/user-core",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.21",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.js",
|
|
7
7
|
"unpkg": "index.umd.cjs",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"vue": "^3.2.45",
|
|
22
22
|
"vue-router": "^4.1.6",
|
|
23
23
|
"pinia": "^2.0.28",
|
|
24
|
-
"@pangu-backend-ui/common": "^0.0.
|
|
24
|
+
"@pangu-backend-ui/common": "^0.0.31"
|
|
25
25
|
},
|
|
26
26
|
"publishConfig": {
|
|
27
27
|
"access": "public",
|
package/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.view-icon[data-v-dd075891]{margin-left:3px}.container[data-v-dd075891]{display:flex;align-items:center}.page-layout[data-v-
|
|
1
|
+
.view-icon[data-v-dd075891]{margin-left:3px}.container[data-v-dd075891]{display:flex;align-items:center}.page-layout[data-v-2dcce2b2]{display:flex;flex-direction:column}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Http } from "@pangu-backend-ui/common";
|
|
2
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {
|
|
3
|
+
visible: import("vue").Ref<boolean>;
|
|
4
|
+
http: Http | undefined;
|
|
5
|
+
emits: (event: "success", ...args: any[]) => void;
|
|
6
|
+
form: import("vue").Ref<{
|
|
7
|
+
functionCode: null;
|
|
8
|
+
expiry: null;
|
|
9
|
+
remark: null;
|
|
10
|
+
disableForever: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
rules: {
|
|
13
|
+
functionCode: {
|
|
14
|
+
required: boolean;
|
|
15
|
+
message: string;
|
|
16
|
+
}[];
|
|
17
|
+
expiry: {
|
|
18
|
+
validator: (rule: any, value: string | null, callback: Function) => void;
|
|
19
|
+
}[];
|
|
20
|
+
};
|
|
21
|
+
functionCodes: any;
|
|
22
|
+
getFunctionCodes: () => Promise<void>;
|
|
23
|
+
addDisabledFunctionForm: import("vue").Ref<any>;
|
|
24
|
+
createDisabledFunction: () => void;
|
|
25
|
+
userId: number | null;
|
|
26
|
+
show: (userIdParam: number) => void;
|
|
27
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "success"[], "success", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
|
|
28
|
+
onSuccess?: ((...args: any[]) => any) | undefined;
|
|
29
|
+
}, {}>;
|
|
30
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Http } from '@pangu-backend-ui/common';
|
|
2
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {
|
|
3
|
+
http: Http | undefined;
|
|
4
|
+
visible: import("vue").Ref<boolean>;
|
|
5
|
+
condition: import("vue").Ref<{
|
|
6
|
+
userId: number | null;
|
|
7
|
+
}>;
|
|
8
|
+
table: import("vue").Ref<any>;
|
|
9
|
+
show: (userId: number) => void;
|
|
10
|
+
search: () => void;
|
|
11
|
+
addFunctionDisableDialog: import("vue").Ref<any>;
|
|
12
|
+
showAddDisabledFunctionDialog: () => void;
|
|
13
|
+
enableFunction: (id: number) => Promise<void>;
|
|
14
|
+
AddFunctionDisableDialog: import("vue").DefineComponent<{}, {
|
|
15
|
+
visible: import("vue").Ref<boolean>;
|
|
16
|
+
http: Http | undefined;
|
|
17
|
+
emits: (event: "success", ...args: any[]) => void;
|
|
18
|
+
form: import("vue").Ref<{
|
|
19
|
+
functionCode: null;
|
|
20
|
+
expiry: null;
|
|
21
|
+
remark: null;
|
|
22
|
+
disableForever: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
rules: {
|
|
25
|
+
functionCode: {
|
|
26
|
+
required: boolean;
|
|
27
|
+
message: string;
|
|
28
|
+
}[];
|
|
29
|
+
expiry: {
|
|
30
|
+
validator: (rule: any, value: string | null, callback: Function) => void;
|
|
31
|
+
}[];
|
|
32
|
+
};
|
|
33
|
+
functionCodes: any;
|
|
34
|
+
getFunctionCodes: () => Promise<void>;
|
|
35
|
+
addDisabledFunctionForm: import("vue").Ref<any>;
|
|
36
|
+
createDisabledFunction: () => void;
|
|
37
|
+
userId: number | null;
|
|
38
|
+
show: (userIdParam: number) => void;
|
|
39
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "success"[], "success", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
|
|
40
|
+
onSuccess?: ((...args: any[]) => any) | undefined;
|
|
41
|
+
}, {}>;
|
|
42
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
43
|
+
export default _sfc_main;
|