el-plus-powerful-table
Version:
## [DOCS](https://peng-xiao-shuai.github.io/vite-vue-admin-docs/zh-CN/component_directive/component/powerful-table-doc.html)
1 lines • 9.17 kB
Source Map (JSON)
{"version":3,"file":"button.mjs","sources":["../../../packages/components/src/button.tsx"],"sourcesContent":["import {\n ElButton,\n ElDropdown,\n ElDropdownItem,\n ElDropdownMenu,\n ElTooltip,\n} from 'element-plus'\nimport { JustifyFunSymbol, SizeSymbol } from '../../keys'\nimport type { App } from 'vue'\nimport type {\n BtnDataType,\n PowerfulTableHeaderProps,\n SFCWithInstall,\n} from '~/index'\nimport {\n isProperty,\n powerfulTableComponentProp,\n} from '~/powerful-table/src/powerful-table-data'\nimport { LangKey, t } from '~/locale/lang'\n\nconst Button = defineComponent({\n name: 'PTButton',\n props: {\n ...powerfulTableComponentProp,\n prop: {\n type: Object as PropType<PowerfulTableHeaderProps>,\n default: () => ({}),\n },\n },\n emits: ['return-emit', 'component-emit'],\n setup(props, { emit }) {\n const justifyFun = inject(JustifyFunSymbol)!\n const size = inject(SizeSymbol)\n\n const btn = (item: BtnDataType, btnIndex: number[]) => (\n <ElButton\n size={size}\n style={item.style || {}}\n type={'primary'}\n onClick={(e: Event) => {\n e.stopPropagation()\n if (!item.isMore) {\n if (typeof item.click === 'function') {\n item.click({\n props: props.prop,\n params: item.params,\n row: props.row,\n index: props.index!,\n btnIndex,\n })\n return\n }\n\n if (typeof item.beforeClick === 'function') {\n new Promise((resolve) => {\n item.beforeClick!(\n {\n row: props.row,\n index: props.index!,\n btnIndex,\n props: props.prop,\n params: item.params,\n },\n resolve\n )\n }).then((res) => {\n if (res) {\n emit('return-emit', 'btn-click', {\n props: props.prop,\n params: item.params,\n row: props.row,\n index: props.index,\n btnIndex,\n })\n }\n })\n } else {\n emit('return-emit', 'btn-click', {\n props: props.prop,\n params: item.params,\n row: props.row,\n index: props.index,\n btnIndex,\n })\n }\n }\n }}\n {...isProperty(\n { row: props.row, index: props.index!, props: props.prop },\n item?.property\n )}\n >\n {item.text}\n </ElButton>\n )\n\n // 提示\n const tipRender = (item: BtnDataType, index: number[]) => (\n <>\n {item.tip ? (\n <ElTooltip\n popper-class={item.tip ? '' : 'no-tooltip'}\n effect=\"dark\"\n content={item.tip}\n placement=\"top\"\n {...item.tipProperty}\n >\n {btn(item, index)}\n </ElTooltip>\n ) : (\n <>{btn(item, index)}</>\n )}\n </>\n )\n\n return () => (\n <>\n <div\n class=\"btnType\"\n style={{\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n flexWrap: 'wrap',\n justifyContent: justifyFun(props.aligning),\n }}\n >\n <span style={{ marginRight: props.prop.text ? '10px' : '0px' }}>\n {props.prop.text || ''}\n </span>\n {(props.prop.data as BtnDataType[])\n ?.filter((item) => {\n if (typeof item.showBtn === 'function') {\n return item.showBtn(props.row, props.index!)\n } else {\n return item.showBtn === undefined ? true : item.showBtn\n }\n })\n .map((item, index) => {\n return Array.isArray(item) ? (\n <ElDropdown\n class=\"el-dropdown-more\"\n v-slots={{\n dropdown: () => (\n <ElDropdownMenu>\n {(item as BtnDataType[])\n .filter((each) => !each.isMore)\n .map((each, i) => (\n <ElDropdownItem key={index}>\n {tipRender(each, [index, i])}\n </ElDropdownItem>\n ))}\n </ElDropdownMenu>\n ),\n }}\n >\n <div>\n {(item.some((each) => each.isMore)\n ? [item.find((each) => each.isMore)]\n : [{ tip: t(LangKey.More) }]\n ).map((each) => (\n <>{btn(each, [index])}</>\n ))}\n </div>\n </ElDropdown>\n ) : (\n tipRender(item, [index])\n )\n })}\n </div>\n </>\n )\n },\n})\n\nButton.install = (app: App) => {\n app.component(Button.name!, Button)\n}\nexport const PTButton = Button as SFCWithInstall<typeof Button>\nexport default Button\n"],"names":["_isSlot","s","_isVNode","Button","defineComponent","powerfulTableComponentProp","props","emit","justifyFun","inject","JustifyFunSymbol","size","SizeSymbol","btn","item","btnIndex","_createVNode","ElButton","_mergeProps","e","resolve","res","isProperty","tipRender","index","_slot","_Fragment","ElTooltip","_a","ElDropdown","each","t","LangKey","_slot3","ElDropdownMenu","i","_slot2","ElDropdownItem","app","PTButton"],"mappings":"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"}