UserTableSelect.j5GdSGnb.js 8.6 KB

123
  1. import{z as e,A as l,t,F as a,G as o,B as s,ah as r,a as n,k as i,m as p,O as u,d,ay as m,q as c,g as f}from"./element-plus.ea_38_Np.js";import{_ as v}from"./index.Ck3_JN8S.js";import{M as y,aZ as j,aL as g,u as b,I as _,bJ as h,v as k,F as C,aX as V,s as w,ar as U,bM as x,H as z,bL as S,au as R,bk as A,aY as I,bb as $,aw as K,aU as q,aS as F,q as M,bE as E}from"./@vue.DbmRtknU.js";import{a as L}from"./@vueuse.Dnsd2JKX.js";import{_ as B,U as D}from"./index.CAsHN19g.js";import"./lodash-es.DaM9m3L-.js";import"./async-validator.j0i5Y79Y.js";import"./@popperjs.DxtSUbXb.js";import"./@ctrl.BEgk5vdO.js";import"./dayjs.DCWbrgJ0.js";import"./memoize-one.BAtLgO95.js";import"./normalize-wheel-es.TzhA1irr.js";import"./@floating-ui.8vigAAFV.js";import"./pinia.BlfmsheH.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./nprogress.BTjJXJ-u.js";import"./codemirror.CYSLATvI.js";import"./diff-match-patch.DkK4wJpa.js";import"./vue-web-terminal.D-rog7dz.js";import"./vue.MGxsMDTR.js";/* empty css */import"./vue-router.yxIMtaxH.js";import"./axios.Da-QW0H8.js";import"./qs.BQjOrGHM.js";import"./side-channel.4q28KFJj.js";import"./es-errors.DTEWvbA_.js";import"./object-inspect.DvQZIv3_.js";import"./side-channel-list.Do0-XmF5.js";import"./side-channel-map.DNHQ53lO.js";import"./get-intrinsic.Bbe5x-9b.js";import"./es-object-atoms.CyiuHMUS.js";import"./math-intrinsics.pM-JTNwN.js";import"./gopd.BudZp56J.js";import"./es-define-property.F0aoeP8o.js";import"./has-symbols.BcO-SUVM.js";import"./get-proto.Cb_fpw-j.js";import"./dunder-proto.WEH3rgQR.js";import"./call-bind-apply-helpers.DJjIjCF_.js";import"./function-bind.DrnB-baK.js";import"./hasown.BXcyoiLU.js";import"./call-bound.22gFUC2Q.js";import"./side-channel-weakmap.DpSeWE6i.js";import"./pinia-plugin-persistedstate.COWkwNh5.js";const G={class:"feedback"},H=B(y({__name:"index",props:{selectConfig:{},text:{default:""}},emits:["confirmClick","clearClick"],setup(f,{emit:y}){const E=f,B=y,D=E.selectConfig.pk??"id",H=!0===E.selectConfig.multiple,J=E.selectConfig.width??"100%",N=E.selectConfig.placeholder??"请选择",O=q(!1),P=q(!1),T=q(0),X=q([]),Y=F({page_no:1,page_size:10}),Z=q(),Q=q(J);L(Z,e=>{Q.value=`${e[0].contentRect.width}px`});const W=q();for(const e of E.selectConfig.formItems)Y[e.prop]=e.initialValue??"";function ee(){var e;null==(e=W.value)||e.resetFields(),te(!0)}function le(){te(!0)}function te(e=!1){P.value=!0,e&&(Y.page_no=1,Y.page_size=10),E.selectConfig.indexAction(Y).then(e=>{T.value=e.total,X.value=e.list}).finally(()=>{P.value=!1})}const ae=q();for(const e of E.selectConfig.tableColumns)if("selection"===e.type){e.reserveSelection=!0;break}const oe=q([]),se=M(()=>oe.value.length>0?`已选(${oe.value.length})`:"确 定");function re(e){var l,t,a;H||0===e.length?oe.value=e:(oe.value=[e[e.length-1]],null==(l=ae.value)||l.clearSelection(),null==(t=ae.value)||t.toggleRowSelection(oe.value[0],!0),null==(a=ae.value)||a.setCurrentRow(oe.value[0]))}function ne(e){H&&(oe.value=e)}function ie(){te()}const pe=q(!1);function ue(){!1===pe.value&&(pe.value=!0,te())}function de(){0!==oe.value.length?(O.value=!1,B("confirmClick",oe.value)):c.error("请选择数据")}function me(){var e;null==(e=ae.value)||e.clearSelection(),oe.value=[],B("clearClick")}function ce(){O.value=!1}const fe=q();return(c,y)=>{var q;const F=j("ArrowDown"),M=d,E=t,L=o,B=a,te=s,oe=r,pe=l,ve=n,ye=e,je=p,ge=i,be=v,_e=m,he=u;return g(),b("div",{ref_key:"tableSelectRef",ref:Z,style:K("width:"+A(J))},[_(_e,U({visible:O.value,width:(null==(q=f.selectConfig.popover)?void 0:q.width)??Q.value,placement:"bottom-end"},f.selectConfig.popover,{onShow:ue}),{reference:h(()=>[k("div",{onClick:y[0]||(y[0]=e=>O.value=!O.value)},[I(c.$slots,"default",{},()=>[_(E,{class:"reference","model-value":f.text,readonly:!0,placeholder:A(N),clearable:!0,onClear:me},{suffix:h(()=>[_(M,{style:K({transform:O.value?"rotate(180deg)":"rotate(0)",transition:"transform .5s"})},{default:h(()=>[_(F)]),_:1},8,["style"])]),_:1},8,["model-value","placeholder"])],!0)])]),default:h(()=>[k("div",{ref_key:"popoverContentRef",ref:fe},[_(ye,{ref_key:"formRef",ref:W,model:Y,inline:!0},{default:h(()=>[(g(!0),b(C,null,V(f.selectConfig.formItems,e=>(g(),w(pe,{key:e.prop,label:e.label,prop:e.prop},{default:h(()=>{var l,t;return["input"===e.type?(g(),b(C,{key:0},["number"===(null==(l=e.attrs)?void 0:l.type)?(g(),w(E,U({key:0,modelValue:Y[e.prop],"onUpdate:modelValue":l=>Y[e.prop]=l,modelModifiers:{number:!0}},{ref_for:!0},e.attrs,{onKeyup:x(le,["enter"])}),null,16,["modelValue","onUpdate:modelValue"])):(g(),w(E,U({key:1,modelValue:Y[e.prop],"onUpdate:modelValue":l=>Y[e.prop]=l},{ref_for:!0},e.attrs,{onKeyup:x(le,["enter"])}),null,16,["modelValue","onUpdate:modelValue"]))],64)):"select"===e.type?(g(),w(B,U({key:1,modelValue:Y[e.prop],"onUpdate:modelValue":l=>Y[e.prop]=l},{ref_for:!0},e.attrs),{default:h(()=>[(g(!0),b(C,null,V(e.options,e=>(g(),w(L,{key:e.value,label:e.label,value:e.value},null,8,["label","value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue"])):"tree-select"===e.type?(g(),w(te,U({key:2,modelValue:Y[e.prop],"onUpdate:modelValue":l=>Y[e.prop]=l},{ref_for:!0},e.attrs),null,16,["modelValue","onUpdate:modelValue"])):"date-picker"===e.type?(g(),w(oe,U({key:3,modelValue:Y[e.prop],"onUpdate:modelValue":l=>Y[e.prop]=l},{ref_for:!0},e.attrs),null,16,["modelValue","onUpdate:modelValue"])):(g(),b(C,{key:4},["number"===(null==(t=e.attrs)?void 0:t.type)?(g(),w(E,U({key:0,modelValue:Y[e.prop],"onUpdate:modelValue":l=>Y[e.prop]=l,modelModifiers:{number:!0}},{ref_for:!0},e.attrs,{onKeyup:x(le,["enter"])}),null,16,["modelValue","onUpdate:modelValue"])):(g(),w(E,U({key:1,modelValue:Y[e.prop],"onUpdate:modelValue":l=>Y[e.prop]=l},{ref_for:!0},e.attrs,{onKeyup:x(le,["enter"])}),null,16,["modelValue","onUpdate:modelValue"]))],64))]}),_:2},1032,["label","prop"]))),128)),_(pe,null,{default:h(()=>[_(ve,{type:"primary",icon:"search",onClick:le},{default:h(()=>[...y[4]||(y[4]=[z("搜索",-1)])]),_:1}),_(ve,{type:"default",icon:"refresh",onClick:ee},{default:h(()=>[...y[5]||(y[5]=[z("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),S((g(),w(ge,{ref_key:"tableRef",ref:ae,data:X.value,border:!0,"max-height":250,"row-key":A(D),class:R({radio:!H}),onSelect:re,onSelectAll:ne},{default:h(()=>[(g(!0),b(C,null,V(f.selectConfig.tableColumns,e=>(g(),b(C,{key:e.prop},["custom"===e.templet?(g(),w(je,U({key:0,ref_for:!0},e),{default:h(l=>[I(c.$slots,e.slotName??e.prop,U({prop:e.prop},{ref_for:!0},l),void 0,!0)]),_:2},1040)):(g(),w(je,U({key:1,ref_for:!0},e),null,16))],64))),128))]),_:3},8,["data","row-key","class"])),[[he,P.value]]),_(be,{total:T.value,"onUpdate:total":y[1]||(y[1]=e=>T.value=e),page:Y.page_no,"onUpdate:page":y[2]||(y[2]=e=>Y.page_no=e),limit:Y.page_size,"onUpdate:limit":y[3]||(y[3]=e=>Y.page_size=e),onPagination:ie},null,8,["total","page","limit"]),k("div",G,[_(ve,{type:"primary",size:"small",onClick:de},{default:h(()=>[z($(se.value),1)]),_:1}),_(ve,{size:"small",onClick:me},{default:h(()=>[...y[6]||(y[6]=[z("清 空",-1)])]),_:1}),_(ve,{size:"small",onClick:ce},{default:h(()=>[...y[7]||(y[7]=[z("关 闭",-1)])]),_:1})])],512)]),_:3},16,["visible","width"])],4)}}}),[["__scopeId","data-v-e76cdcc6"]]),J=y({__name:"UserTableSelect",props:{modelValue:{}},emits:["confirmClick","update:modelValue"],setup(e,{emit:l}){const t=e,a=l,o={pk:"id",width:"167.5px",
  2. // 与搜索表单其他输入宽度一致
  3. placeholder:"请选择用户",popover:{width:720},formItems:[{type:"select",label:"状态",prop:"status",initialValue:"0",attrs:{placeholder:"全部",clearable:!0,style:{width:"140px"}},options:[{label:"启用",value:"0"},{label:"停用",value:"1"}]}],indexAction(e){const l={...e};return Object.keys(l).forEach(e=>{const t=l[e];""!==t&&null!=t||delete l[e]}),"string"==typeof l.status&&("true"===l.status?l.status=!0:"false"===l.status&&(l.status=!1)),D.listUser(l).then(e=>({total:e.data.data.total,list:e.data.data.items}))},tableColumns:[{type:"selection",width:50,align:"center"},{label:"编号",align:"center",prop:"id",width:100},{label:"账号",align:"center",prop:"username"},{label:"用户名",align:"center",prop:"name",width:120},{label:"状态",align:"center",prop:"status",templet:"custom",slotName:"status"}]},s=q();function r(e){var l;s.value=e[0];const t=null==(l=s.value)?void 0:l.id;a("update:modelValue",t),a("confirmClick",e)}function n(){s.value=void 0,a("update:modelValue",void 0)}E(()=>t.modelValue,e=>{null==e&&(s.value=void 0)});const i=M(()=>s.value?`${s.value.username} - ${s.value.name}`:"");return(e,l)=>{const t=f,a=H;return g(),w(a,{text:A(i),"select-config":o,onConfirmClick:r,onClearClick:n},{status:h(e=>[_(t,{type:"0"===e.row[e.prop]?"success":"danger"},{default:h(()=>[z($("0"===e.row[e.prop]?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1},8,["text"])}}});export{J as default};