@elementplus-kit/uikit 1.7.0 → 1.9.0
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/components/button/index.ts +2 -4
- package/components/button/src/index.ts +58 -53
- package/components/button/src/type.ts +15 -0
- package/components/dialog/index.ts +2 -6
- package/components/dialog/src/index.ts +3 -3
- package/components/dialog/src/type.ts +1 -0
- package/components/dictLabel/src/type.ts +1 -0
- package/components/drawer/index.ts +2 -4
- package/components/drawer/src/index.ts +3 -3
- package/components/drawer/src/type.ts +1 -0
- package/components/form/index.ts +2 -4
- package/components/form/src/FormItem.ts +24 -16
- package/components/form/src/index.ts +4 -4
- package/components/form/src/type.ts +68 -0
- package/components/importText/index.ts +2 -0
- package/components/importText/src/index.ts +1 -0
- package/components/importText/src/type.ts +3 -0
- package/components/index.ts +1 -39
- package/components/pagination/index.ts +2 -4
- package/components/pagination/src/index.ts +4 -4
- package/components/pagination/src/type.ts +1 -0
- package/components/search/index.ts +2 -4
- package/components/search/src/index.tsx +47 -35
- package/components/search/src/type.ts +2 -0
- package/components/table/index.ts +2 -4
- package/components/table/src/index.ts +5 -4
- package/components/table/src/type.ts +19 -0
- package/dist/index.css +1 -0
- package/dist/index.mjs +1079 -0
- package/dist/index.umd.js +1 -0
- package/package.json +1 -1
- package/build.log +0 -0
- package/components/form/src/types.ts +0 -39
- package/components/table/src/index2.ts +0 -219
- package/components/table/src/index3.ts +0 -233
- package/components/table/src/tableaa.ts +0 -71
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(C,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("lodash-es"),require("@element-plus/icons-vue")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","lodash-es","@element-plus/icons-vue"],e):(C=typeof globalThis<"u"?globalThis:C||self,e(C.ElementPlusKit={},C.vue,C.elementPlus,C._,C.iconsVue))})(this,(function(C,e,l,S,X){"use strict";const B={input:{elName:"input",defaultAttrs:{},events:["blur","focus","change","input","clear","keydown","mouseleave","mouseenter","compositionstart","compositionupdate","compositionend"],slots:["prefix","suffix","prepend","append"]},textarea:{elName:"textarea",defaultAttrs:{},events:["blur","focus","change","input"]},"input-number":{elName:"input-number",defaultAttrs:{},events:["change","Function","blur","focus"],slots:["decrease-icon","increase-icon","prefix","suffix"]},select:{elName:"select",defaultAttrs:{},events:["change","visible-change","remove-tag","clear","blur","focus","popup-scroll"],slots:["default","header","footer","prefix","empty","tag","loading","label"]},"select-v2":{elName:"select-v2",defaultAttrs:{},events:["focus","blur","selectedLabel"],slots:["default","header","footer","prefix","empty","tag","loading","label"]},cascader:{elName:"cascader",defaultAttrs:{},events:["change","expand-change","blur","focus","clear","visible-change","remove-tag"],slots:["default","empty","prefix","suggestion-item","tag"]},"tree-select":{elName:"tree-select",defaultAttrs:{},events:["change","clear","blur","focus"],slots:["default"]},radio:{elName:"radio",defaultAttrs:{},events:["change"]},checkbox:{elName:"checkbox",defaultAttrs:{},events:["change"]},"time-select":{elName:"time-select",defaultAttrs:{},events:["change","blur","focus","clear"]},"date-picker":{elName:"date-picker",defaultAttrs:{},events:["change","blur","focus","clear","calendar-change","panel-change","visible-change"],slots:["default","range-separator","prev-month","next-month","prev-year","next-year"]},"time-picker":{elName:"time-picker",defaultAttrs:{},events:["change","blur","focus","clear","visible-change"],slots:[]},rate:{elName:"rate",defaultAttrs:{},events:["change"]},"color-picker":{elName:"color-picker",defaultAttrs:{},events:["change","active-change","focus","blur"]},slider:{elName:"slider",defaultAttrs:{},events:["change","input"]},switch:{elName:"switch",defaultAttrs:{},events:["change"],slots:["active-action","inactive-action"]},text:{elName:"text",defaultAttrs:{},slots:["default"]},html:{},slot:{}},Z=()=>{let t=[];return Object.keys(B).map(r=>{const p=B[r]?.events;p?.length>0&&t.push(...p)}),t=[...new Set(t)],t},P=t=>t.replace(/(?:^|-)(\w)/g,(r,p)=>p.toUpperCase()),ee={model:{type:Object,default:()=>{}},label:{type:String,default:""},type:{type:String,default:""},prop:{type:String,default:""},required:{type:Boolean,default:!1},allReadonly:{type:Object,default:null},formItem:{type:Object,default:()=>{}},attrs:{type:Object,default:()=>{}},dictType:{type:String,default:void 0},options:{type:Array,default:()=>[]},optionsRef:{type:Object,default:()=>{}},mergeParams:{type:Object,default:()=>{}}},te=e.defineComponent({props:ee,setup(t,{attrs:r,emit:p,slots:i,expose:m}){const{formSlots:u,events:N}=e.inject("formContext"),{model:v,type:O,label:A,prop:d,required:n,allReadonly:h,formItem:a,attrs:f,dictType:T,options:w}=e.toRefs(t),E=()=>{const b={};return B[O.value]?.slots?.forEach(y=>{const V=`${d.value}.${y}`;Object.keys(u).map(x=>{x===V&&(b[y]=u[x])})}),b},s=()=>{const b={};return B[O.value]?.events?.forEach(y=>{const V=`on${P(y)}`;b[V]=(...x)=>N(y,d.value,...x)}),b},g=()=>{let b=!1;return S.isFunction(f.value?.disabled)&&(b=f.value.disabled(t.mergeParams)),S.isBoolean(f.value?.disabled)&&(b=f.value.disabled),h.value&&(b=!0),{disabled:b}},o=()=>{const b=B[O.value]?.defaultAttrs||{},c={ref:y=>L(y,d.value),...b,...f.value,...g()};return["html"].includes(O.value)||(c.modelValue=v.value[d.value],c["onUpdate:modelValue"]=y=>v.value[d.value]=y),c},L=(b,c)=>{t.optionsRef[`${c}Ref`]=b},R={input:()=>e.h(l.ElInput,{clearable:!0,...o(),...s()},{...E()}),textarea:()=>e.h(l.ElInput,{...o(),...s(),type:"textarea"}),"input-number":()=>e.h(l.ElInputNumber,{...o(),...s()},{...E()}),select:()=>e.h(l.ElSelect,{clearable:!0,...o(),...s()},()=>w?.value?.map(b=>e.h(l.ElOption,{...b,label:b.label,value:b.value,key:b.value}))),"select-v2":()=>e.h(l.ElSelectV2,{options:w.value,clearable:!0,...o(),...s()}),cascader:()=>e.h(l.ElCascader,{options:w.value,clearable:!0,...o(),...s()},{...E()}),"tree-select":()=>e.h(l.ElTreeSelect,{data:w.value,clearable:!0,...o(),...s()},{...E()}),radio:()=>e.h(l.ElRadioGroup,{...o(),...s()},{default:()=>w?.value?.map(c=>e.h(c.radioButton?l.ElRadioButton:l.ElRadio,{...c,label:c.label,value:c.value,key:c.value}))}),checkbox:()=>e.h(l.ElCheckboxGroup,{...o(),...s()},{default:()=>w?.value?.map(c=>e.h(l.ElCheckbox,{...c,label:c.label,value:c.value,key:c.value}))}),"time-select":()=>e.h(l.ElTimeSelect,{...o(),...s()}),"date-picker":()=>{const b=f.value?.type||"date",y={year:"YYYY",month:"YYYY-MM",date:"YYYY-MM-DD"}[b];return e.h(l.ElDatePicker,{type:b,valueFormat:y,...o(),...s()},{...E()})},"time-picker":()=>e.h(l.ElTimePicker,{valueFormat:"HH:mm:ss",...o(),...s()}),rate:()=>e.h(l.ElRate,{...o(),...s()}),"color-picker":()=>e.h(l.ElColorPicker,{...o(),...s()}),slider:()=>e.h(l.ElSlider,{...o(),...s()}),switch:()=>e.h(l.ElSwitch,{...o(),...s()},{...E()}),text:()=>e.h(l.ElText,{...o()}),html:()=>e.h("div",{innerHTML:v.value[d.value],...o()}),slot:()=>u[d.value]?.(v.value)},k=()=>u[d.value]?R.slot():O.value==="slot"?`表单属性 ${d.value} 插槽模板未定义`:R[O.value]?R[O.value]():(console.error(`不支持的表单类型 ${O.value}`),`不支持的表单类型 ${O.value}`),I=()=>{const b=k();return e.h(l.ElFormItem,{label:A.value,prop:d.value,rules:n.value?[{required:!0,message:`${A.value} 必填`,trigger:"blur"}]:void 0,...a.value},{default:()=>b})};return()=>I()}}),re={model:{type:Object,default:()=>({})},formOptions:{type:Array,default:()=>[]},readonly:{type:Boolean,default:!1},gutter:{type:Number||String,default:void 0},col:{type:Number,default:void 0},params:{type:Object,default:()=>({})}},Y=e.defineComponent({props:re,emits:[...Z()],setup(t,{attrs:r,emit:p,slots:i,expose:m}){e.provide("formContext",{formSlots:i,events:(g,...o)=>{p(g,...o)}});const u=e.ref({});m({optionsRef:u});const{model:N,formOptions:v,readonly:O,gutter:A,col:d}=e.toRefs(t),n=e.getCurrentInstance(),h=g=>{g&&(n.exposed=g,n.exposeProxy=g)},a=e.computed(()=>O.value),f=e.computed(()=>["",0].includes(A?.value)||d?.value||v?.value.some(g=>S.has(g,"col"))),T=()=>{const g=E();return f.value?e.h(l.ElRow,{class:"c-row",gutter:A.value||20,...r},{default:()=>g}):g},w=e.computed(()=>({formData:N.value,params:t.params})),E=()=>{const g=[];return v.value.map(o=>{S.isFunction(o?.vIf)&&o.vIf(w.value)!==void 0?o.vIf(w.value)&&g.push(o):g.push(o)}),g.map(o=>{const L=()=>e.h(te,{class:"c-form-itme",model:N.value,allReadonly:a,mergeParams:w.value,...o,optionsRef:u.value});if(f.value){let R,k=`col.${o.prop}`;return o?.colSlot?S.has(i,k)?R=i[k]:R=()=>"col插槽模板未定义":S.has(i,k)&&(R=i[k]),e.h(l.ElCol,{class:"c-col",span:S.has(o,"col")?o.col:d?.value?d?.value:f.value?8:void 0},{default:()=>R?R():L()})}else return L()})},s=()=>e.h(l.ElForm,{ref:h,...r,model:N.value,class:a.value?"isReadonly c-form":"c-form"},{default:()=>T()});return()=>s()}}),ae=e.defineComponent({__name:"tableDictLabel",props:{options:{type:Array,default:()=>[]},value:{type:String,default:""}},setup(t){const r=t,p=e.computed(()=>r.options?.find(m=>m.value==r.value.toString())?.label||r.value);return(i,m)=>e.toDisplayString(p.value)}}),oe=["default","append","empty"],le=["default","header","filter-icon","expand"],ne={module:{type:Object,default:()=>{}},params:{type:Object,default:()=>{}},columns:{type:Array,default:()=>[]},showSelection:{type:Boolean,default:!1},showIndex:{type:Boolean,default:!1}},M=e.defineComponent({props:ne,setup(t,{attrs:r,emit:p,slots:i,expose:m}){const u=e.getCurrentInstance(),N=d=>{d&&(u.exposed=d,u.exposeProxy=d)},v=()=>{const d=[];t.showSelection&&d.push(e.h(l.ElTableColumn,{type:"selection",width:50,align:"center"})),t.showIndex&&d.push(e.h(l.ElTableColumn,{label:"序号",type:"index",width:60,align:"center"}));const n=(h,a)=>{h.map(f=>{const{children:T,...w}=f;if(S.isFunction(f.vIf)&&f.vIf(t.params)!==void 0&&!f.vIf(t.params))return;const E=[];T?.length&&n(T,E);const s={};if(le.map(g=>{const o=`${f.prop}.${g}`;i[o]&&(s[g]=i[o])}),i[f.prop]?s.default=i[f.prop]:S.isFunction(f.render)?s.default=f.render:S.isArray(f.options)&&(s.default=g=>e.h(ae,{options:f.options,value:g.row[f.prop]})),Object.keys(s).length){const g=()=>{let o;return E.length?o={...s,default:()=>E}:o={...s},o};a.push(e.h(l.ElTableColumn,{...w,class:"c-table-column"},g()))}else{const g=()=>{let o;return E.length&&(o={default:()=>E}),o};a.push(e.h(l.ElTableColumn,{...w,class:"c-table-column"},g()))}})};return n(t.columns,d),d},O=()=>{const d={};return oe.map(n=>{i[n]&&(d[n]=i[n])}),d},A=()=>{const d=v();return e.h(l.ElTable,{ref:N,...r,class:"c-table"},{default:()=>d,...O()})};return()=>A()}}),j={OPERATION_COL_LABEL:"操作",OPERATION_SLOT_NAME:"custom",CHILDREN_SLOT_KEY:"children"};function se(t,r,p,i){const m={default:()=>ce(t,i)};return e.h(l.ElTable,{data:r,class:"c-table"},m)}function ce(t,r){const p=[];if(S.isObject(t)&&Object.keys(t).forEach(m=>{let u=t[m],N=r[m];if(r[`${m}.header`]){let v=W(m,u),O={header:A=>r[`${m}.header`](A)};r[m]&&(O.default=A=>[r[m](A)]),p.push(e.h(l.ElTableColumn,v,O))}else p.push(z(m,u,N,r))}),r[j.OPERATION_SLOT_NAME]){let i={label:j.OPERATION_COL_LABEL};if(r[`${j.OPERATION_SLOT_NAME}.header`]){let m={header:u=>r[`${j.OPERATION_SLOT_NAME}.header`](u),default:u=>[r[j.OPERATION_SLOT_NAME](u)]};p.push(e.h(l.ElTableColumn,i,m))}else{let m={default:u=>[r[j.OPERATION_SLOT_NAME](u)]};p.push(e.h(l.ElTableColumn,i,m))}}return p}function z(t,r,p,i){let m=W(t,r);delete m[j.CHILDREN_SLOT_KEY];let u=[];if(r[j.CHILDREN_SLOT_KEY]&&S.isObject(r[j.CHILDREN_SLOT_KEY])){let v=r[j.CHILDREN_SLOT_KEY];S.isObject(v)&&Object.keys(v).forEach(A=>{let d=v[A],n=i[A];u.push(z(A,d,n,i))})}let N=()=>[];return p?N={default:v=>[...u,p(v)]}:N={default:()=>[...u]},e.h(l.ElTableColumn,m,N)}function W(t,r){if(S.isString(r))return{prop:t,label:r};if(S.isObject(r))return{prop:t,...r}}const H=e.defineComponent({props:["schema","data"],emits:[],setup(t,{attrs:r,emit:p,slots:i,expose:m}){return()=>se(t.schema,t.data,p,i)}}),ie={pageSizes:[10,20,50,100,200,500],layout:"total, sizes, prev, pager, next, jumper"},q=e.defineComponent({setup(t,{attrs:r,emit:p,slots:i,expose:m}){const u=()=>({...ie}),N=()=>e.h(l.ElPagination,{...u(),class:"c-pagination"});return()=>N()}}),ue={destroyOnClose:!0},de=S.capitalize("C"),U=e.defineComponent({name:`${de}Dialog`,setup(t,{attrs:r,emit:p,slots:i,expose:m}){const u=()=>({...ue}),N=()=>e.h(l.ElDialog,{...u(),class:"c-dialog"},i);return()=>N()}}),fe={destroyOnClose:!0},G=e.defineComponent({setup(t,{attrs:r,emit:p,slots:i,expose:m}){const u=()=>({...fe}),N=()=>e.h(l.ElDrawer,{...u(),class:"c-drawer"},i);return()=>N()}});function _(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const K=e.defineComponent({props:{modelValue:{type:Object,default:{}},formOptions:{type:Array,default:()=>[]},isDrawer:{type:Boolean,default:!1}},emits:["update:modelValue","search","reset","close"],setup(t,{emit:r,slots:p,attrs:i,expose:m}){const u=["btn-left","btn-right"],N=()=>{let c={};return Object.keys(i)?.forEach(y=>{y.indexOf("on")===0&&(c[y]=i[y])}),c},v=()=>{let c={};return Object.keys(p).forEach(y=>{u.includes(y)||(c[y]=p[y])}),c},O=()=>{r("search"),a.value=!1,document.removeEventListener("click",h)},A=()=>{r("reset")},d=()=>{a.value=!1,document.removeEventListener("click",h),r("close")},n=e.ref(null),h=c=>{a.value&&n.value&&!n.value?.$el?.contains(c.target)&&(a.value=!1,document.removeEventListener("click",h))},a=e.ref(!1),f=()=>{a.value?(a.value=!1,document.removeEventListener("click",h)):(a.value=!0,setTimeout(()=>{document.addEventListener("click",h)},0))},T=e.ref(6),w=e.ref(null),E=e.ref(null),s=e.ref(null),g=e.ref(null),o=e.ref(null);let L=null;const R=()=>{L&&clearTimeout(L),L=setTimeout(()=>{k()},200)},k=()=>{if(s.value){const c=s.value.children[0],y=E.value.offsetWidth;let V=0;T.value=c?.children?.length,Array.from(c.children).map((x,D)=>{if(x.style.display="inline-flex",V>y){x.style.display="none";return}const ve=window.getComputedStyle(x).marginRight,Ee=parseFloat(ve),Ce=x.offsetWidth+Ee;V=V+Ce,V>y&&(x.style.display="none",T.value=D,V=1e5)})}},I=e.ref(0),b=()=>{const c=E.value.children[0];new ResizeObserver(V=>{for(const D of V){const F=D.contentRect.width;F!==I.value&&(I.value===0||F<I.value-25?(I.value=F,R()):F>I.value+25&&(R(),I.value=F))}}).observe(c)};return e.onMounted(()=>{b(),window.addEventListener("resize",R)}),e.onUnmounted(()=>{window.removeEventListener("resize",R),document.removeEventListener("click",h)}),()=>{let c,y,V;return e.createVNode("div",{className:"c-search"},[e.createVNode("div",{className:"c-search-simple",ref:w},[e.createVNode("div",{className:"c-search-simple-form",ref:E},[e.createVNode("div",{className:"c-simple-form-container",ref:s},[e.createVNode($,e.mergeProps({ref:x=>o.value=x},N(),{inline:!0,model:t.modelValue,formOptions:t.formOptions}),_(c=v())?c:{default:()=>[c]})])]),e.createVNode("div",{className:"c-search-simple-btn",ref:g},[p["arrow-left"]?.(),T.value<t.formOptions?.length&&e.createVNode("div",{className:`c-search-simple-icon ${a.value?"icon-rotate":""}`,onClick:f},[e.createVNode(e.resolveComponent("el-icon"),{className:"el-icon c-search-icon"},{default:()=>[e.createVNode(X.ArrowUpBold,null,null)]})]),p["search-btn"]?p["search-btn"]():e.createVNode(e.Fragment,null,[p["btn-left"]?.(),e.createVNode(e.resolveComponent("el-button"),{type:"primary",onClick:O},{default:()=>[e.createTextVNode("搜索")]}),e.createVNode(e.resolveComponent("el-button"),{type:"primary",onClick:A},{default:()=>[e.createTextVNode("重置")]}),p["btn-right"]?.()])])]),!t.isDrawer&&a.value&&e.createVNode(e.resolveComponent("transition"),{name:"search-form-transition"},{default:()=>[e.createVNode(e.resolveComponent("el-card"),{ref:n,className:"c-search-form el-card is-always-shadow"},{default:()=>[e.createVNode($,e.mergeProps(N(),{inline:!0,model:t.modelValue,formOptions:t.formOptions.filter((x,D)=>D>=T.value),ref:"formRef"}),_(y=v())?y:{default:()=>[y]}),e.createVNode("div",{style:"text-align: right;"},[e.createVNode(e.resolveComponent("el-button"),{type:"primary",onClick:O},{default:()=>[e.createTextVNode("搜索")]}),e.createVNode(e.resolveComponent("el-button"),{type:"primary",onClick:d},{default:()=>[e.createTextVNode("关闭")]})])]})]}),t.isDrawer&&e.createVNode(Q,{title:"搜索",modelValue:a.value,"onUpdate:modelValue":x=>a.value=x,size:"660px"},{default:()=>[e.createVNode($,e.mergeProps(N(),{col:12,model:t.modelValue,formOptions:t.formOptions.filter((x,D)=>D>=T.value),ref:"formRef"}),_(V=v())?V:{default:()=>[V]}),e.createVNode("div",{style:"text-align: right;"},[e.createVNode(e.resolveComponent("el-button"),{type:"primary",onClick:O},{default:()=>[e.createTextVNode("搜索")]}),e.createVNode(e.resolveComponent("el-button"),{type:"primary",onClick:d},{default:()=>[e.createTextVNode("关闭")]})])]})])}}}),J=e.defineComponent({props:{params:{type:Object,default:()=>({})},btnOptions:{type:Array,default:()=>[]},permit:{type:Function},size:{type:String,default:void 0},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:{type:Boolean,default:void 0},fold:{type:Boolean,default:!1},foldNum:{type:Number,default:0}},emits:["btnAction"],setup(t,{emit:r,slots:p,attrs:i,expose:m}){const u=n=>{let h={size:t.size,plain:t.plain,text:t.text,link:t.link,class:`c-btn-alias-${n.alias||""}`};const a=["label","alias","permit","vIf","disable"];return Object.keys(n).map(f=>{a.includes(f)||(h[f]=n[f])}),S.isBoolean(n.disable)&&(h.disabled=n.disable),S.isFunction(n.disable)&&n.disable(t.params)!==void 0&&(h.disabled=n.disable(t.params)),h},N=n=>{const h=u(n),a={splitButton:!0};return["type","size","splitButton","disabled","placement","effect","trigger"].forEach(T=>{h[T]!==void 0&&(a[T]=h[T])}),a},v=()=>{const n=[];t.btnOptions.map(a=>{S.isArray(a.permit)&&a.permit.length>0&&S.isFunction(t.permit)?t.permit(a.permit)&&n.push(a):n.push(a)});const h=[];return n.map(a=>{S.has(a,"vIf")&&S.isFunction(a.vIf)&&a.vIf(t.params)!==void 0?a.vIf(t.params)&&h.push(a):h.push(a)}),h},O=n=>e.h(l.ElButton,{...u(n),onClick:()=>{r("btnAction",n.alias,t.params)}},{default:()=>n?.label}),A=n=>{const h=[],a=[],f=[];n.map((E,s)=>{s<t.foldNum?h.push(E):s===t.foldNum?a.push(E):f.push(E)}),a.length>0&&f.length===0&&h.push(a[0]);let T=[];const w=h.map(E=>O(E));if(w.length>0&&(T=T.concat(w)),a.length>0&&f.length>0){const E=e.h(l.ElDropdown,{...N(a[0]),class:"c-btn-dropdown",buttonProps:u(a[0]),splitButton:!0,onClick:()=>{r("btnAction",a[0].alias,t.params)},onCommand:s=>{r("btnAction",s,t.params)}},{default:()=>a[0].label,dropdown:()=>f.map(s=>e.h(l.ElDropdownItem,{command:s.alias},{default:()=>s?.label}))});T=T.concat(E)}return T},d=()=>{const n=v();return t.fold?A(n):n.map(h=>O(h))};return()=>d()}}),$=Y,pe=M,me=H,he=q,be=U,Q=G,ge=K,ye=J;C.Button=J,C.CButton=ye,C.CDialog=be,C.CDrawer=Q,C.CForm=$,C.CPagination=he,C.CSearch=ge,C.CTable=pe,C.CTable2=me,C.Dialog=U,C.Drawer=G,C.Form=Y,C.Pagination=q,C.Search=K,C.Table=M,C.Table2=H,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
package/build.log
DELETED
|
Binary file
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export interface FormItemListItem {
|
|
2
|
-
type: string
|
|
3
|
-
label?: string
|
|
4
|
-
prop: string
|
|
5
|
-
required?: Boolean
|
|
6
|
-
vIf?: boolean | ((item: FormItemListItem) => boolean)
|
|
7
|
-
dictType?: string
|
|
8
|
-
options?: Array<Object>
|
|
9
|
-
col?: Number
|
|
10
|
-
formItem?: Object
|
|
11
|
-
attrs?: Object
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface FormItemList {
|
|
15
|
-
module: Object
|
|
16
|
-
formOpsions: FormItemListItem[]
|
|
17
|
-
readonly: boolean
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export type formType =
|
|
21
|
-
| 'input'
|
|
22
|
-
| 'textarea'
|
|
23
|
-
| 'input-number'
|
|
24
|
-
| 'select'
|
|
25
|
-
| 'select-v2'
|
|
26
|
-
| 'cascader'
|
|
27
|
-
| 'tree-select'
|
|
28
|
-
| 'radio'
|
|
29
|
-
| 'checkbox'
|
|
30
|
-
| 'time-select'
|
|
31
|
-
| 'date-picker'
|
|
32
|
-
| 'time-picker'
|
|
33
|
-
| 'rate'
|
|
34
|
-
| 'color-picker'
|
|
35
|
-
| 'slider'
|
|
36
|
-
| 'switch'
|
|
37
|
-
| 'text'
|
|
38
|
-
| 'html'
|
|
39
|
-
| 'slot'
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
defineComponent,
|
|
3
|
-
h,
|
|
4
|
-
getCurrentInstance,
|
|
5
|
-
computed,
|
|
6
|
-
type ExtractPropTypes,
|
|
7
|
-
} from "vue";
|
|
8
|
-
import { ElTable, ElTableColumn } from "element-plus";
|
|
9
|
-
import {
|
|
10
|
-
defaultAttrs,
|
|
11
|
-
tableSlots,
|
|
12
|
-
tablecolumnSlots,
|
|
13
|
-
selectionColumn,
|
|
14
|
-
indexColumn,
|
|
15
|
-
} from "./constants.ts";
|
|
16
|
-
import { isArray, isObject } from "lodash-es";
|
|
17
|
-
const propsAttrs = {
|
|
18
|
-
module: {
|
|
19
|
-
// 公共参数用于业务判断
|
|
20
|
-
type: Object,
|
|
21
|
-
default: () => {},
|
|
22
|
-
},
|
|
23
|
-
// isRadio: { // 是否为单选框
|
|
24
|
-
// type: Boolean,
|
|
25
|
-
// default: false,
|
|
26
|
-
// },
|
|
27
|
-
// isCheckbox: { // 是否为复选框
|
|
28
|
-
// type: Boolean,
|
|
29
|
-
// default: false,
|
|
30
|
-
// },
|
|
31
|
-
columns: {
|
|
32
|
-
// 列数据
|
|
33
|
-
type: Array,
|
|
34
|
-
default: () => [],
|
|
35
|
-
},
|
|
36
|
-
showSelection: {
|
|
37
|
-
// 是否显示选择列
|
|
38
|
-
type: Boolean,
|
|
39
|
-
default: false,
|
|
40
|
-
},
|
|
41
|
-
showIndex: {
|
|
42
|
-
// 是否显示索引列
|
|
43
|
-
type: Boolean,
|
|
44
|
-
default: false,
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export type PropsAttrs = ExtractPropTypes<typeof propsAttrs>;
|
|
49
|
-
|
|
50
|
-
export default defineComponent({
|
|
51
|
-
props: propsAttrs,
|
|
52
|
-
// emits: eventList,
|
|
53
|
-
|
|
54
|
-
// attrs, emit会继承, slots需要设置
|
|
55
|
-
setup(props: PropsAttrs, { attrs, emit, slots, expose }) {
|
|
56
|
-
// 暴露elTable组件上的方法
|
|
57
|
-
const vm = getCurrentInstance(); // 获取虚拟DOM实例
|
|
58
|
-
const cTableFnRef = (el) => {
|
|
59
|
-
if (!el) return;
|
|
60
|
-
vm.exposed = el; // 设置暴露对象
|
|
61
|
-
vm.exposeProxy = el; // 设置代理暴露对象
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// 暴露方法
|
|
65
|
-
expose({
|
|
66
|
-
// tableRef,
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
// 属性处理
|
|
70
|
-
const getAttrs = () => {
|
|
71
|
-
const obj = {
|
|
72
|
-
...defaultAttrs, // 设置默认值
|
|
73
|
-
};
|
|
74
|
-
return obj;
|
|
75
|
-
};
|
|
76
|
-
// 事件处理
|
|
77
|
-
const getEvents = () => {
|
|
78
|
-
const obj = {
|
|
79
|
-
...defaultAttrs, // 设置默认值
|
|
80
|
-
};
|
|
81
|
-
return obj;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const columnsList = computed(() => {
|
|
85
|
-
let list = [];
|
|
86
|
-
list = getArrayColumn();
|
|
87
|
-
// 处理多选与序号列
|
|
88
|
-
if (props.showSelection) {
|
|
89
|
-
list.push(
|
|
90
|
-
h(ElTableColumn, {
|
|
91
|
-
type: "selection",
|
|
92
|
-
width: 55,
|
|
93
|
-
})
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
if (props.showIndex) {
|
|
97
|
-
list.push(
|
|
98
|
-
h(ElTableColumn, {
|
|
99
|
-
label: "序号",
|
|
100
|
-
type: "index",
|
|
101
|
-
width: 55,
|
|
102
|
-
})
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
return list;
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
// 处理列数据-数组
|
|
109
|
-
const getArrayColumn = () => {
|
|
110
|
-
console.log("adsadsd");
|
|
111
|
-
// 递归处理数据
|
|
112
|
-
const list = [];
|
|
113
|
-
|
|
114
|
-
const c = (columns, list) => {
|
|
115
|
-
columns?.map((item) => {
|
|
116
|
-
const { children, ...p } = item;
|
|
117
|
-
// 递归处理子列
|
|
118
|
-
if (isArray(item.children)) {
|
|
119
|
-
item.children = c(item.children, list);
|
|
120
|
-
}
|
|
121
|
-
list.push(p);
|
|
122
|
-
});
|
|
123
|
-
};
|
|
124
|
-
c(props.columns, list);
|
|
125
|
-
console.log("🚀 ~ getArrayColumn ~ props.columns:", props.columns)
|
|
126
|
-
console.log("🚀 ~ gggggggg:", list);
|
|
127
|
-
return list;
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
// 渲染表格列
|
|
131
|
-
const renderTableColumn = () => {
|
|
132
|
-
const list = [];
|
|
133
|
-
|
|
134
|
-
// 列递归渲染
|
|
135
|
-
const rColumn = (columns, list) => {
|
|
136
|
-
console.log("🚀 ~ rColumn ~ columns:", columns);
|
|
137
|
-
columns?.map((item) => {
|
|
138
|
-
const { children, ...p } = item;
|
|
139
|
-
|
|
140
|
-
// 处理多级表头
|
|
141
|
-
const listSub = [];
|
|
142
|
-
if (children?.length) {
|
|
143
|
-
rColumn(children, listSub);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// 处理插槽
|
|
147
|
-
const itemSlot = {};
|
|
148
|
-
// column 自带插槽
|
|
149
|
-
tablecolumnSlots.map((name) => {
|
|
150
|
-
const slotName = `${item.prop}.${name}`;
|
|
151
|
-
if (slots[slotName]) {
|
|
152
|
-
itemSlot[name] = slots[slotName];
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
// column 列插槽
|
|
157
|
-
if (slots[item.prop]) {
|
|
158
|
-
itemSlot["default"] = slots[item.prop];
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// 赋值
|
|
162
|
-
if (Object.keys(itemSlot).length) {
|
|
163
|
-
list.push(
|
|
164
|
-
h(
|
|
165
|
-
ElTableColumn,
|
|
166
|
-
{ ...p, class: "c-table-column" },
|
|
167
|
-
listSub.length
|
|
168
|
-
? { ...itemSlot, default: () => listSub }
|
|
169
|
-
: { ...itemSlot }
|
|
170
|
-
)
|
|
171
|
-
);
|
|
172
|
-
} else {
|
|
173
|
-
list.push(
|
|
174
|
-
h(
|
|
175
|
-
ElTableColumn,
|
|
176
|
-
{ ...p, class: "c-table-column" },
|
|
177
|
-
listSub.length ? { default: () => listSub } : undefined
|
|
178
|
-
)
|
|
179
|
-
);
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
};
|
|
183
|
-
rColumn(columnsList.value, list);
|
|
184
|
-
return list;
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
// 插槽处理
|
|
188
|
-
const getSlots = () => {
|
|
189
|
-
const obj = {};
|
|
190
|
-
tableSlots.map((name) => {
|
|
191
|
-
if (slots[name]) {
|
|
192
|
-
obj[name] = slots[name];
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
return obj;
|
|
196
|
-
};
|
|
197
|
-
// 渲染表格组件
|
|
198
|
-
const renderTable = () => {
|
|
199
|
-
// getColumnList();
|
|
200
|
-
console.log("props", props);
|
|
201
|
-
console.log("attrs", attrs);
|
|
202
|
-
return h(
|
|
203
|
-
ElTable,
|
|
204
|
-
{
|
|
205
|
-
ref: cTableFnRef,
|
|
206
|
-
...attrs,
|
|
207
|
-
class: "c-table",
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
default: () => renderTableColumn(),
|
|
211
|
-
...getSlots(),
|
|
212
|
-
}
|
|
213
|
-
);
|
|
214
|
-
};
|
|
215
|
-
|
|
216
|
-
// 返回渲染函数
|
|
217
|
-
return () => renderTable();
|
|
218
|
-
},
|
|
219
|
-
});
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
defineComponent,
|
|
3
|
-
h,
|
|
4
|
-
getCurrentInstance,
|
|
5
|
-
type ExtractPropTypes,
|
|
6
|
-
} from "vue";
|
|
7
|
-
import { ElTable, ElTableColumn } from "element-plus";
|
|
8
|
-
import {
|
|
9
|
-
defaultAttrs,
|
|
10
|
-
tableSlots,
|
|
11
|
-
tablecolumnSlots,
|
|
12
|
-
selectionColumn,
|
|
13
|
-
indexColumn,
|
|
14
|
-
} from "./constants.ts";
|
|
15
|
-
import { isArray, isObject } from "lodash-es";
|
|
16
|
-
import TableColumn from "./TableColumn.vue"
|
|
17
|
-
const propsAttrs = {
|
|
18
|
-
module: {
|
|
19
|
-
// 公共参数用于业务判断
|
|
20
|
-
type: Object,
|
|
21
|
-
default: () => {},
|
|
22
|
-
},
|
|
23
|
-
// isRadio: { // 是否为单选框
|
|
24
|
-
// type: Boolean,
|
|
25
|
-
// default: false,
|
|
26
|
-
// },
|
|
27
|
-
// isCheckbox: { // 是否为复选框
|
|
28
|
-
// type: Boolean,
|
|
29
|
-
// default: false,
|
|
30
|
-
// },
|
|
31
|
-
columns: {
|
|
32
|
-
// 列数据
|
|
33
|
-
type: Array,
|
|
34
|
-
default: () => [],
|
|
35
|
-
},
|
|
36
|
-
showSelection: {
|
|
37
|
-
// 是否显示选择列
|
|
38
|
-
type: Boolean,
|
|
39
|
-
default: false,
|
|
40
|
-
},
|
|
41
|
-
showIndex: {
|
|
42
|
-
// 是否显示索引列
|
|
43
|
-
type: Boolean,
|
|
44
|
-
default: false,
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export type PropsAttrs = ExtractPropTypes<typeof propsAttrs>;
|
|
49
|
-
|
|
50
|
-
export default defineComponent({
|
|
51
|
-
props: propsAttrs,
|
|
52
|
-
// emits: eventList,
|
|
53
|
-
|
|
54
|
-
// attrs, emit会继承, slots需要设置
|
|
55
|
-
setup(props: PropsAttrs, { attrs, emit, slots, expose }) {
|
|
56
|
-
provide("tableContext", {
|
|
57
|
-
tableSlots: slots,
|
|
58
|
-
events: (eProp, ...args: any) => {
|
|
59
|
-
emit(eProp, ...args);
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
// 暴露elTable组件上的方法
|
|
63
|
-
const vm = getCurrentInstance(); // 获取虚拟DOM实例
|
|
64
|
-
const cTableFnRef = (el) => {
|
|
65
|
-
if (!el) return;
|
|
66
|
-
vm.exposed = el; // 设置暴露对象
|
|
67
|
-
vm.exposeProxy = el; // 设置代理暴露对象
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
// 暴露方法
|
|
71
|
-
expose({
|
|
72
|
-
// tableRef,
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
// 属性处理
|
|
76
|
-
const getAttrs = () => {
|
|
77
|
-
const obj = {
|
|
78
|
-
...defaultAttrs, // 设置默认值
|
|
79
|
-
};
|
|
80
|
-
return obj;
|
|
81
|
-
};
|
|
82
|
-
// 事件处理
|
|
83
|
-
const getEvents = () => {
|
|
84
|
-
const obj = {
|
|
85
|
-
...defaultAttrs, // 设置默认值
|
|
86
|
-
};
|
|
87
|
-
return obj;
|
|
88
|
-
};
|
|
89
|
-
// 插槽处理
|
|
90
|
-
const getSlots = () => {
|
|
91
|
-
const obj = {};
|
|
92
|
-
tableSlots.map((name) => {
|
|
93
|
-
if (slots[name]) {
|
|
94
|
-
obj[name] = slots[name];
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
return obj;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
// // 处理列数据-数组
|
|
101
|
-
// const getArrayColumn = () => {
|
|
102
|
-
// console.log("adsadsd");
|
|
103
|
-
// // 递归处理数据
|
|
104
|
-
// const list = [];
|
|
105
|
-
|
|
106
|
-
// const c = (columns, list) => {
|
|
107
|
-
// columns?.map((item) => {
|
|
108
|
-
// const { children, ...p } = item;
|
|
109
|
-
// // 递归处理子列
|
|
110
|
-
// if (isArray(item.children)) {
|
|
111
|
-
// item.children = c(item.children, list);
|
|
112
|
-
// }
|
|
113
|
-
// list.push(p);
|
|
114
|
-
// });
|
|
115
|
-
// };
|
|
116
|
-
// c(props.columns, list);
|
|
117
|
-
// console.log("🚀 ~ gggggggg:", list);
|
|
118
|
-
// return list;
|
|
119
|
-
// };
|
|
120
|
-
|
|
121
|
-
// // 渲染表格列
|
|
122
|
-
// const renderTableColumn = () => {
|
|
123
|
-
// const list = [];
|
|
124
|
-
// // 处理多选与序号列
|
|
125
|
-
// if (props.showSelection) {
|
|
126
|
-
// list.push(
|
|
127
|
-
// h(ElTableColumn, {
|
|
128
|
-
// type: "selection",
|
|
129
|
-
// width: 55,
|
|
130
|
-
// })
|
|
131
|
-
// );
|
|
132
|
-
// }
|
|
133
|
-
// if (props.showIndex) {
|
|
134
|
-
// list.push(
|
|
135
|
-
// h(ElTableColumn, {
|
|
136
|
-
// label: "序号",
|
|
137
|
-
// type: "index",
|
|
138
|
-
// width: 55,
|
|
139
|
-
// })
|
|
140
|
-
// );
|
|
141
|
-
// }
|
|
142
|
-
|
|
143
|
-
// // 列递归渲染
|
|
144
|
-
// const rColumn = (columns, list) => {
|
|
145
|
-
// columns.map((item) => {
|
|
146
|
-
// const { children, ...p } = item;
|
|
147
|
-
|
|
148
|
-
// // 处理多级表头
|
|
149
|
-
// const listSub = [];
|
|
150
|
-
// if (children?.length) {
|
|
151
|
-
// rColumn(children, listSub);
|
|
152
|
-
// }
|
|
153
|
-
|
|
154
|
-
// // 处理插槽
|
|
155
|
-
// const itemSlot = {};
|
|
156
|
-
// // column 自带插槽
|
|
157
|
-
// tablecolumnSlots.map((name) => {
|
|
158
|
-
// const slotName = `${item.prop}.${name}`;
|
|
159
|
-
// if (slots[slotName]) {
|
|
160
|
-
// itemSlot[name] = slots[slotName];
|
|
161
|
-
// }
|
|
162
|
-
// });
|
|
163
|
-
|
|
164
|
-
// // column 列插槽
|
|
165
|
-
// if (slots[item.prop]) {
|
|
166
|
-
// itemSlot["default"] = slots[item.prop];
|
|
167
|
-
// }
|
|
168
|
-
|
|
169
|
-
// // 赋值
|
|
170
|
-
// if (Object.keys(itemSlot).length) {
|
|
171
|
-
// list.push(
|
|
172
|
-
// h(
|
|
173
|
-
// ElTableColumn,
|
|
174
|
-
// { ...p, class: "c-table-column" },
|
|
175
|
-
// listSub.length
|
|
176
|
-
// ? { ...itemSlot, default: () => listSub }
|
|
177
|
-
// : { ...itemSlot }
|
|
178
|
-
// )
|
|
179
|
-
// );
|
|
180
|
-
// } else {
|
|
181
|
-
// list.push(
|
|
182
|
-
// h(
|
|
183
|
-
// ElTableColumn,
|
|
184
|
-
// { ...p, class: "c-table-column" },
|
|
185
|
-
// listSub.length ? { default: () => listSub } : undefined
|
|
186
|
-
// )
|
|
187
|
-
// );
|
|
188
|
-
// }
|
|
189
|
-
// });
|
|
190
|
-
// };
|
|
191
|
-
// rColumn(props.columns, list);
|
|
192
|
-
// return list;
|
|
193
|
-
// };
|
|
194
|
-
|
|
195
|
-
const renderTableColumn = () => {
|
|
196
|
-
const list = []
|
|
197
|
-
const rTableColumn = (columnsList, list) => {
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
columns.map((item) => {
|
|
201
|
-
|
|
202
|
-
const { children, ...p } = item;
|
|
203
|
-
// 递归处理子列
|
|
204
|
-
if (isArray(item.children)) {
|
|
205
|
-
item.children = renderTableColumn(item.children);
|
|
206
|
-
}
|
|
207
|
-
})
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
TableColumn
|
|
211
|
-
// 渲染表格组件
|
|
212
|
-
const renderTable = () => {
|
|
213
|
-
// getColumnList();
|
|
214
|
-
console.log("props", props);
|
|
215
|
-
console.log("attrs", attrs);
|
|
216
|
-
return h(
|
|
217
|
-
ElTable,
|
|
218
|
-
{
|
|
219
|
-
ref: cTableFnRef,
|
|
220
|
-
...attrs,
|
|
221
|
-
class: "c-table",
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
default: () => renderTableColumn(),
|
|
225
|
-
...getSlots(),
|
|
226
|
-
}
|
|
227
|
-
);
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
// 返回渲染函数
|
|
231
|
-
return () => renderTable();
|
|
232
|
-
},
|
|
233
|
-
});
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// import { ref, h, computed, toRefs, type ExtractPropTypes } from "vue";
|
|
2
|
-
// import { ElTable, ElTableColumn } from "element-plus";
|
|
3
|
-
// import { defaultAttrs } from "./constants.ts";
|
|
4
|
-
|
|
5
|
-
// const propsAttrs = {};
|
|
6
|
-
|
|
7
|
-
// export type PropsAttrs = ExtractPropTypes<typeof propsAttrs>;
|
|
8
|
-
|
|
9
|
-
// export default {
|
|
10
|
-
// // props: propsAttrs,
|
|
11
|
-
// // emits: eventList,
|
|
12
|
-
|
|
13
|
-
// // attrs, emit会继承, slots需要设置
|
|
14
|
-
// setup(props: PropsAttrs, { attrs, emit, slots, expose }) {
|
|
15
|
-
// // const drawerRef = ref();
|
|
16
|
-
|
|
17
|
-
// // 暴露方法
|
|
18
|
-
// // expose({
|
|
19
|
-
// // drawerRef,
|
|
20
|
-
// // });
|
|
21
|
-
|
|
22
|
-
// // 属性处理
|
|
23
|
-
// const getTAttrs = () => {
|
|
24
|
-
// const obj = {
|
|
25
|
-
// ...defaultAttrs, // 设置默认值
|
|
26
|
-
// };
|
|
27
|
-
// return obj;
|
|
28
|
-
// };
|
|
29
|
-
// // 事件处理
|
|
30
|
-
// const getEvents = () => {
|
|
31
|
-
// const obj = {
|
|
32
|
-
// ...defaultAttrs, // 设置默认值
|
|
33
|
-
// };
|
|
34
|
-
// return obj;
|
|
35
|
-
// };
|
|
36
|
-
// // 插槽处理
|
|
37
|
-
// const getSlots = () => {
|
|
38
|
-
// const obj = {
|
|
39
|
-
// ...defaultAttrs, // 设置默认值
|
|
40
|
-
// };
|
|
41
|
-
// return obj;
|
|
42
|
-
// };
|
|
43
|
-
// const renderTableColumn = () => {
|
|
44
|
-
// return h(
|
|
45
|
-
// ElTableColumn,
|
|
46
|
-
// {
|
|
47
|
-
// // ref: drawerRef,
|
|
48
|
-
// ...getAttrs(),
|
|
49
|
-
// class: "c-drawer",
|
|
50
|
-
// },
|
|
51
|
-
// slots
|
|
52
|
-
// );
|
|
53
|
-
// };
|
|
54
|
-
|
|
55
|
-
// // 渲染表格组件
|
|
56
|
-
// const renderTable = () => {
|
|
57
|
-
// return h(
|
|
58
|
-
// ElTable,
|
|
59
|
-
// {
|
|
60
|
-
// // ref: drawerRef,
|
|
61
|
-
// ...getAttrs(),
|
|
62
|
-
// class: "c-drawer",
|
|
63
|
-
// },
|
|
64
|
-
// slots
|
|
65
|
-
// );
|
|
66
|
-
// };
|
|
67
|
-
|
|
68
|
-
// // 返回渲染函数
|
|
69
|
-
// return () => renderTable();
|
|
70
|
-
// },
|
|
71
|
-
// };
|