UNPKG

@wetspace/pro-components

Version:
2 lines (1 loc) 1.31 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("vue");require("element-plus");const b=(y,m,c)=>{const{columns:u,data:o}=y,f={...{summaryLabel:"合计",summaryEmpty:"-"},...c},r=[];return u.forEach((s,t)=>{if(t===0)r[t]=f.summaryLabel;else if(m.includes(s.property)){let e=0;o.forEach(a=>{const n=a[s.property];isNaN(Number(n))||(e+=Number(n))}),r[t]=`${e}`}else r[t]=f.summaryEmpty}),r},h=(y,m,c)=>{let u={},o={};const i=r=>{u={},o={},r.forEach((s,t)=>{if(m.forEach(e=>{if(!u[e])u[e]=[{start:0,step:1,value:s[e]}];else{const a=u[e][u[e].length-1];a.value===s[e]?a.step++:u[e].push({start:t,step:1,value:s[e]})}}),c){const{rowIndex:e,adjoinProp:a}=c;(typeof e=="function"?e(t):e.includes(t))&&a.forEach(l=>{if(!o[t])o[t]=[{start:l,step:1,value:s[l]}];else{const p=o[t][o[t].length-1];p.value===s[l]?p.step++:o[t].push({start:l,step:1,value:s[l]})}})}})},f=r=>{const s=(c==null?void 0:c.adjoinProp)||[],{column:t,rowIndex:e}=r;let a=1,n=1;if(m.includes(t.property)){const l=u[t.property].find(p=>p.start===e);n=l?l.step:0}if(o[`${e}`]&&s.includes(t.property)){const l=o[`${e}`].find(p=>p.start===t.property);a=l?l.step:0}return{colspan:a,rowspan:n}};return g.watch(y,r=>{r&&i(r)},{immediate:!0,deep:!0}),f};exports.tableColumnSummary=b;exports.useMergeTableCell=h;