CustomSelectTable-CVkVwiaD.js 5.0 KB

1
  1. import{_ as W,O as j,k as P,l as Q,m as X,b as Z,p as G,q as H,s as M,bg as Y,v as ee}from"./index-CKIhG1T4.js";import{E as le}from"./index-Dszus0mF.js";import{f as ae,a as m,D as d,E as g,$ as i,U as r,K as h,ad as _,T as v,Z as C,R as K,X as te,V as oe,af as ue,Q as de,F as re,n as se}from"./spreadSheetsDesignerVue-MRUT1X_l.js";const ne={class:"pagination-wrapper"},pe=W({__name:"CustomSelectTable",props:{modelLabel:{type:Array,default:()=>[]},modelValue:{type:Array,default:()=>[]},isUseLabel:{type:Boolean,default:!1},placeholder:{type:String,default:"\u8BF7\u9009\u62E9"},dialogTitle:{type:String,default:"\u8BF7\u9009\u62E9\u6570\u636E"},dialogWidth:{type:String,default:"60%"},searchItems:{type:Array,default:()=>[]},columns:{type:Array,required:!0},fetchDataFn:{type:Function,required:!0},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},max:{type:Number,default:0},unShowAllSelect:{type:Boolean,default:!1},pagerCount:{type:Number,default:3},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change","update:modelLabel"],setup(t,{emit:z}){const a=t,s=z,A=ae({get:()=>new Set([...a.modelValue]),set:u=>u}),c=m(!1),U=m(!1),S=m([]),y=m({}),w=m(1),k=m(10),N=m(0),f=m(),R=()=>{a.disabled||(c.value=!0,b())},O=u=>{const e=JSON.parse(JSON.stringify(a.modelValue)),o=JSON.parse(JSON.stringify(a.modelLabel));if(!Array.isArray(o)||!Array.isArray(e))return;const n=(a.isUseLabel?o:e).findIndex(V=>V===u);n!==-1&&(e.splice(n,1),a.isUseLabel&&o.splice(n,1),s("update:modelValue",e),a.isUseLabel&&s("update:modelLabel",o),s("change",a.isUseLabel?o:e))},T=()=>{s("update:modelValue",[]),a.isUseLabel&&s("update:modelLabel",[]),s("change",[])},F=(u,e)=>{if(u.length>a.max&&a.max>0)return j.warning(`\u6700\u591A\u53EF\u9009\u62E9${a.max}\u4E2A`),void f.value.toggleRowSelection(e,!1);A.value=new Set((u||[]).map(o=>o[a.valueKey]))},b=async()=>{try{U.value=!0;const u={...y.value,pageNo:w.value,pageSize:k.value},e=await a.fetchDataFn(u);S.value=e.list,N.value=e.total,se(()=>{S.value.forEach(o=>{var n;(n=f.value)==null||n.toggleRowSelection(o,A.value.has(o[a.valueKey]))})})}finally{U.value=!1}};b();const I=()=>{w.value=1,b()},J=()=>{const u=f.value.getSelectionRows().map(e=>e[a.valueKey]);if(s("update:modelValue",u),a.isUseLabel){const e=f.value.getSelectionRows().map(o=>o[a.labelKey]);s("update:modelLabel",e)}s("change",u),c.value=!1};return(u,e)=>{const o=P,n=Q,V=X,L=Z,q=G,x=H,B=M,D=le,E=Y,$=ee;return d(),g(h,null,[i(n,{"model-value":t.isUseLabel?t.modelLabel:t.modelValue,style:{width:"100%"},onClick:R,placeholder:t.placeholder||"\u8BF7\u9009\u62E9",multiple:"",clearable:"",onRemoveTag:O,onClear:T,disabled:t.disabled},{default:r(()=>[(d(!0),g(h,null,_(S.value,l=>(d(),v(o,{key:l[t.valueKey],label:l[t.labelKey],value:l[t.valueKey]},null,8,["label","value"]))),128))]),_:1},8,["model-value","placeholder","disabled"]),i(E,{modelValue:c.value,"onUpdate:modelValue":e[3]||(e[3]=l=>c.value=l),title:t.dialogTitle,width:t.dialogWidth,"append-to-body":""},{footer:r(()=>[i(L,{onClick:e[2]||(e[2]=l=>c.value=!1)},{default:r(()=>e[5]||(e[5]=[C("\u53D6\u6D88")])),_:1}),i(L,{type:"primary",onClick:J},{default:r(()=>e[6]||(e[6]=[C("\u786E\u5B9A")])),_:1})]),default:r(()=>[i(q,{model:y.value,inline:""},{default:r(()=>[(d(!0),g(h,null,_(t.searchItems,l=>(d(),v(V,{key:l.prop,label:l.label},{default:r(()=>[l.component==="el-select"?(d(),v(n,K({key:0,modelValue:y.value[l.prop],"onUpdate:modelValue":p=>y.value[l.prop]=p,ref_for:!0},l.props,{clearable:"",placeholder:l.placeholder||"\u8BF7\u9009\u62E9"}),{default:r(()=>[(d(!0),g(h,null,_(l.options,p=>(d(),v(o,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:2},1040,["modelValue","onUpdate:modelValue","placeholder"])):(d(),v(te(l.component||"el-input"),K({key:1,modelValue:y.value[l.prop],"onUpdate:modelValue":p=>y.value[l.prop]=p,ref_for:!0},l.props,{clearable:"",placeholder:l.placeholder||"\u8BF7\u9009\u62E9"}),null,16,["modelValue","onUpdate:modelValue","placeholder"]))]),_:2},1032,["label"]))),128)),i(V,null,{default:r(()=>[i(L,{type:"primary",onClick:I},{default:r(()=>e[4]||(e[4]=[C("\u641C\u7D22")])),_:1})]),_:1})]),_:1},8,["model"]),oe((d(),v(B,{ref_key:"tableRef",ref:f,data:S.value,style:{width:"100%"},"row-key":t.valueKey,onSelect:F,"header-cell-class-name":t.unShowAllSelect?"disable-all-select":""},{default:r(()=>[i(x,{type:"selection","reserve-selection":!0,width:"55"}),(d(!0),g(h,null,_(t.columns,l=>(d(),v(x,K({key:l.prop,ref_for:!0},l),ue({_:2},[l.slotName?{name:"default",fn:r(p=>[de(u.$slots,l.slotName,{row:p.row},void 0,!0)]),key:"0"}:void 0]),1040))),128))]),_:3},8,["data","row-key","header-cell-class-name"])),[[$,U.value]]),re("div",ne,[i(D,{"current-page":w.value,"onUpdate:currentPage":e[0]||(e[0]=l=>w.value=l),"page-size":k.value,"onUpdate:pageSize":e[1]||(e[1]=l=>k.value=l),total:N.value,"pager-count":a.pagerCount,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:b,onSizeChange:b},null,8,["current-page","page-size","total","pager-count"])])]),_:3},8,["modelValue","title","width"])],64)}}},[["__scopeId","data-v-9a9d3073"]]);export{pe as C};