UNPKG

@seemusic/ui-components

Version:

A Vue 3 UI Library. Uses Composable.

1 lines 3.15 kB
{"version":3,"file":"SopDataTable.mjs","sources":["../../../src/components/SopDataTable/SopDataTable.tsx"],"sourcesContent":["import { defineComponent, ref, onMounted, computed, nextTick, onBeforeUpdate } from 'vue';\n\nexport default defineComponent({\n name: 'SopDataTable',\n props: {\n title: {\n type: String,\n default: ''\n },\n cols: {\n type: Number,\n default: 2\n },\n gap: {\n type: Number,\n default: 16\n }\n },\n setup(props, { slots }) {\n // 获取实际 slot 中 item 内容项个数\n const content = ref<HTMLElement | null>(null);\n // 计算出每一项的宽度并在 style 中引用\n const itemWidth = computed(() => `calc((100% - ${props.gap * (props.cols - 1)}px) / ${props.cols})`);\n\n onMounted(() => {\n setSopDateTableItemWidth();\n });\n\n onBeforeUpdate(() => {\n setSopDateTableItemWidth();\n });\n\n async function setSopDateTableItemWidth() {\n await nextTick();\n const items = content.value?.querySelectorAll('.sop-data-table-item') || [];\n if (items.length) {\n for (let i = 0; i <= items.length; i++) {\n if ((items[i] as HTMLDivElement)) {\n (items[i] as HTMLDivElement).style.width = itemWidth.value;\n }\n }\n }\n }\n\n return () => (\n <div class=\"sop-data-table\">\n {\n props.title &&\n <div class=\"sop-data-table__title\">\n { props.title }\n </div>\n }\n\n <div\n ref={content}\n class=\"sop-data-table__content\"\n style={{ gap: `0 ${props.gap + 'px'}` }}\n >\n {slots.default?.()}\n </div>\n </div>\n );\n },\n});\n"],"names":["defineComponent","name","props","title","type","String","default","cols","Number","gap","setup","slots","content","ref","itemWidth","computed","onMounted","setSopDateTableItemWidth","onBeforeUpdate","nextTick","items","value","querySelectorAll","length","i","style","width","_createVNode"],"mappings":";AAEA,MAAeA,+CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAO;AAAA,IACLC,OAAO;AAAA,MACLC,MAAMC;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA,IACDC,MAAM;AAAA,MACJH,MAAMI;AAAAA,MACNF,SAAS;AAAA,IACV;AAAA,IACDG,KAAK;AAAA,MACHL,MAAMI;AAAAA,MACNF,SAAS;AAAA,IACX;AAAA,EACD;AAAA,EACDI,MAAMR,OAAO;AAAA,IAAES;AAAAA,EAAM,GAAG;AAEtB,UAAMC,UAAUC,IAAwB,IAAI;AAE5C,UAAMC,YAAYC,SAAS,MAAO,gBAAeb,MAAMO,OAAOP,MAAMK,OAAO,EAAG,SAAQL,MAAMK,IAAK,GAAE;AAEnGS,cAAU,MAAM;AACdC;IACF,CAAC;AAEDC,mBAAe,MAAM;AACnBD;IACF,CAAC;AAED,mBAAeA,2BAA2B;;AACxC,YAAME,SAAQ;AACd,YAAMC,UAAQR,aAAQS,UAART,mBAAeU,iBAAiB,4BAA2B;AACzE,UAAIF,MAAMG,QAAQ;AAChB,iBAASC,IAAI,GAAGA,KAAKJ,MAAMG,QAAQC,KAAK;AACtC,cAAKJ,MAAMI,CAAC,GAAsB;AAC/BJ,kBAAMI,CAAC,EAAqBC,MAAMC,QAAQZ,UAAUO;AAAAA,UACvD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO,MAAA;;AAAAM,yBAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAGDzB,MAAMC,SAAKwB,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAEPzB,MAAMC,KAAK,CAAA,GACTwB,YAAA,OAAA;AAAA,QAAA,OAIDf;AAAAA,QAAO,SAAA;AAAA,QAAA,SAEL;AAAA,UAAEH,KAAM,KAAIP,MAAMO,MAAM,IAAK;AAAA,QAAE;AAAA,MAAC,GAAA,EAEtCE,WAAML,YAANK,8BAAiB,CAGvB,CAAA,CAAA;AAAA;AAAA,EACH;AACF,CAAC;"}