import{d as M,l as ye,m as L,k as u,r as ve,o as y,x as V,b as s,a as o,u as i,M as O,ap as ge,c as x,B as D,t as he,F as be,h as ke,y as J}from"./vue.1703796278973.js";import{F as E,M as T,I as Ie,aL as Ce,a as we,av as xe,K as Ue,L as Te,a0 as Ne,Z as Se,Y as Be,aK as Pe,aw as $e,W as je,a5 as Le,r as Oe}from"./index.17037962789732.js";import"./index.170379627897318.js";import"./index.170379627897319.js";import"./index.170379627897316.js";import"./index.170379627897317.js";import"./index.170379627897337.js";import"./index.170379627897315.js";import"./index.1703796278973305.js";import"./index.1703796278973301.js";import"./index.1703796278973302.js";import"./index.170379627897332.js";import"./index.1703796278973303.js";import"./index.170379627897339.js";import"./index.170379627897314.js";import"./index.1703796278973304.js";import"./index.170379627897320.js";import"./index.170379627897321.js";import"./index.170379627897336.js";import"./index.170379627897333.js";import"./index.170379627897327.js";import{n as p}from"./config.17037962789732.js";import"./default.1703796278973.js";import"./index.170379627897310.js";import"./index.17037962789737.js";import{_ as De}from"./_plugin-vue_export-helper.1703796278973.js";import"./index.17037962789733.js";import"./dayjs.min.1703796278973.js";import"./isArray.1703796278973.js";import"./editor.api.1703796278973.js";import"./preload-helper.1703796278973.js";import"./monaco.contribution.1703796278973.js";import"./system.1703796278973.js";import"./comm.1703796278973.js";import"./index.170379627897334.js";import"./permission.1703796278973.js";import"./consts.1703796278973.js";import"./404.1703796278973.js";const Je=M({name:"SyncUser"}),Fe=M({...Je,props:{visible:{type:Boolean,default:!1},data:{type:Object,default:()=>({})}},emits:["update:visible"],setup(R,{emit:W}){const a=R,q=E.useForm,U=ye({get:()=>a.visible,set:e=>W("update:visible",e)});L(()=>U.value,e=>{e?N():C.value=[]});const B=u([]),k=u(""),I=u(""),N=async()=>{var l,d;let e=null;a.data.type==="dingTalk"?e=await p.dingTalkDept(a.data.id):a.data.type==="weixin"&&(e=await p.weChatDept(a.data.id));let t=e==null?void 0:e.result;k.value&&(t=(l=e==null?void 0:e.result)==null?void 0:l.filter(w=>w.name.indexOf(k.value)>-1)),B.value=t,I.value=(d=t[0])==null?void 0:d.id};L(()=>k.value,e=>{e||N()});const Y=e=>{I.value=e[0],j.value=10,$.value=1},Z=[{title:"钉钉用户名",dataIndex:"thirdPartyUserName",key:"thirdPartyUserName"},{title:"用户",dataIndex:"userName",key:"userName",scopedSlots:!0},{title:"绑定状态",dataIndex:"status",key:"status",scopedSlots:!0},{title:"操作",dataIndex:"action",key:"action",scopedSlots:!0}],G=(e,t)=>{if(!e)return[];const l=[{key:"bind",text:"绑定",tooltip:{title:"绑定"},icon:"EditOutlined",onClick:()=>{oe(e)}},{key:"unbind",text:"解绑",icon:"DisconnectOutlined",popConfirm:{title:"确认解绑?",onConfirm:async()=>{p.unBindUser({bindingId:e.bindId},e.bindId).then(()=>{T.success("操作成功"),v()})}}}];return e.status.value==="success"?l:l.filter(d=>d.key!=="unbind")},H=async()=>{await v([{column:`id$user-third$${a.data.type}_${a.data.provider}$not`}]);const e=C.value.filter(t=>t.userId&&t.status.value==="error").map(t=>({userId:t.userId,providerName:t.thirdPartyUserName,thirdPartyUserId:t.thirdPartyUserId}));a.data.type==="dingTalk"?p.dingTalkBindUser(e,a.data.id).then(()=>{T.success("操作成功"),v()}):a.data.type==="weixin"&&p.weChatBindUser(e,a.data.id).then(()=>{T.success("操作成功"),v()})},Q=async()=>{let e=null;return a.data.type==="dingTalk"?e=await p.getDingTalkUsers(a.data.id,I.value):a.data.type==="weixin"&&(e=await p.getWeChatUsers(a.data.id,I.value)),e==null?void 0:e.result},X=async()=>{let e=null;return a.data.type==="dingTalk"?e=await p.getDingTalkBindUsers(a.data.id):a.data.type==="weixin"&&(e=await p.getWeChatBindUsers(a.data.id)),e==null?void 0:e.result},F=u([]),K=async e=>{const t={paging:!1,terms:e},{result:l}=await p.getPlatformUsers(t);return F.value=l.map(d=>({label:d.name,value:d.id,...d})),l},C=u([]),P=u(!1),v=e=>{P.value=!0,Promise.all([Q(),X(),K(e)]).then(t=>{C.value=[];const[l,d,w]=t;(l||[]).forEach(_=>{let m=w.find(h=>h.name===(_==null?void 0:_.name));const n=d.find(h=>h.thirdPartyUserId===_.id);n&&(m=w.find(h=>h.id===n.userId)),C.value.push({thirdPartyUserId:_.id,thirdPartyUserName:_.name,bindId:n==null?void 0:n.id,userId:m==null?void 0:m.id,userName:m?`${m.name}(${m.username})`:n==null?void 0:n.providerName,status:{text:n!=null&&n.providerName?"已绑定":"未绑定",value:n!=null&&n.providerName?"success":"error"}})})}).finally(()=>{P.value=!1})},$=u(1),j=u(10),ee=e=>{$.value=e.current,j.value=e.pageSize};L(()=>I.value,()=>{v()},{immediate:!0});const g=u(!1),S=u(!1),f=u({userId:"",thirdPartyUserId:"",thirdPartyUserName:"",bindId:""}),te=u({userId:[{required:!0,message:"请选择用户",trigger:"change"}]}),{resetFields:ae,validate:ne,validateInfos:se,clearValidate:Ke}=q(f.value,te.value),oe=e=>{g.value=!0,Object.assign(f.value,e),K([{column:`id$user-third$${a.data.type}_${a.data.provider}$not`}])},ie=(e,t)=>t.componentOptions.children[0].text.toLowerCase().indexOf(e.toLowerCase())>=0,le=()=>{ne().then(async()=>{const e={providerName:f.value.thirdPartyUserName,thirdPartyUserId:f.value.thirdPartyUserId,userId:f.value.userId,id:f.value.bindId};S.value=!0,a.data.type==="dingTalk"?p.dingTalkBindUser([e],a.data.id).then(()=>{T.success("操作成功"),g.value=!1,v()}).finally(()=>{S.value=!1}):a.data.type==="weixin"&&p.weChatBindUser([e],a.data.id).then(()=>{T.success("操作成功"),g.value=!1,v()}).finally(()=>{S.value=!1})})},re=()=>{g.value=!1,ae()};return(e,t)=>{const l=ve("AIcon"),d=Ie,w=Ce,_=we,m=xe,n=Ue,h=Te,z=Ne,de=Se,ue=Be,pe=Pe,ce=$e,A=je,me=Le,fe=Oe,_e=E;return y(),V("div",null,[s(A,{visible:i(U),"onUpdate:visible":t[1]||(t[1]=r=>O(U)?U.value=r:null),title:"同步用户",footer:null,onCancel:t[2]||(t[2]=r=>U.value=!1),width:"80%"},{default:o(()=>[s(ce,{gutter:10,class:"model-body"},{default:o(()=>[s(m,{span:4},{default:o(()=>[s(d,{value:i(k),"onUpdate:value":t[0]||(t[0]=r=>O(k)?k.value=r:null),onKeyup:ge(N,["enter"]),allowClear:"",placeholder:"请输入部门名称",style:{"margin-bottom":"8px"}},{addonAfter:o(()=>[s(l,{type:"SearchOutlined",style:{cursor:"pointer"},onClick:N})]),_:1},8,["value","onKeyup"]),s(w,{"tree-data":i(B),fieldNames:{title:"name",key:"id"},selectedKeys:[i(I)],onSelect:Y},null,8,["tree-data","selectedKeys"]),i(B).length?D("",!0):(y(),x(_,{key:0}))]),_:1}),s(m,{span:20},{default:o(()=>[s(n,{type:"primary",onClick:H},{default:o(()=>[he(" 自动绑定 ")]),_:1}),s(pe,{ref:"tableRef",columns:Z,dataSource:i(C),loading:i(P),pagination:{total:i(C).length,current:i($),pageSize:i(j),pageSizeOptions:["10","20","50","100"],showSizeChanger:!0,hideOnSinglePage:!1,showTotal:(r,b)=>`第 ${b[0]} - ${b[1]} 条/总共 ${r} 条`},onChange:ee},{bodyCell:o(({column:r,record:b,index:ze})=>[r.dataIndex==="status"?(y(),x(z,{key:0},{default:o(()=>[s(h,{status:b.status.value,text:b.status.text},null,8,["status","text"])]),_:2},1024)):D("",!0),r.dataIndex==="action"?(y(),x(z,{key:1,size:16},{default:o(()=>[(y(!0),V(be,null,ke(G(b,"table"),c=>(y(),x(ue,J({key:c.key},c.tooltip),{default:o(()=>[c.popConfirm?(y(),x(de,J({key:0},c.popConfirm,{disabled:c.disabled}),{default:o(()=>[s(n,{disabled:c.disabled,style:{padding:"0"},type:"link"},{default:o(()=>[s(l,{type:c.icon},null,8,["type"])]),_:2},1032,["disabled"])]),_:2},1040,["disabled"])):(y(),x(n,{key:1,style:{padding:"0"},type:"link",onClick:Ae=>c.onClick&&c.onClick(b)},{default:o(()=>[s(n,{disabled:c.disabled,style:{padding:"0"},type:"link"},{default:o(()=>[s(l,{type:c.icon},null,8,["type"])]),_:2},1032,["disabled"])]),_:2},1032,["onClick"]))]),_:2},1040))),128))]),_:2},1024)):D("",!0)]),_:1},8,["dataSource","loading","pagination"])]),_:1})]),_:1})]),_:1},8,["visible"]),s(A,{visible:i(g),"onUpdate:visible":t[4]||(t[4]=r=>O(g)?g.value=r:null),title:"绑定用户",maskClosable:!1,"confirm-loading":i(S),onCancel:re,onOk:le},{default:o(()=>[s(_e,{layout:"vertical"},{default:o(()=>[s(fe,J({label:"用户"},i(se).userId),{default:o(()=>[s(me,{value:i(f).userId,"onUpdate:value":t[3]||(t[3]=r=>i(f).userId=r),options:i(F),allowClear:"","show-search":"","option-filter-prop":"children","filter-option":ie,placeholder:"请选择用户"},null,8,["value","options"])]),_:1},16)]),_:1})]),_:1},8,["visible","confirm-loading"])])}}});const Ut=De(Fe,[["__scopeId","data-v-456c66d4"]]);export{Ut as default};