diff --git a/src/hooks/web/useMessage.ts b/src/hooks/web/useMessage.ts index ac2b552e035fdbe435b50d7c65e38e16683edeff..4d4061b0f467c35a30d542053b978df13b626d78 100644 --- a/src/hooks/web/useMessage.ts +++ b/src/hooks/web/useMessage.ts @@ -83,6 +83,18 @@ export const useMessage = () => { } ) }, + // 打印窗体 + printConfirm(content?: string, tip?: string) { + return ElMessageBox.confirm( + content ? content : t('common.printMessage'), + tip ? tip : t('common.confirmTitle'), + { + confirmButtonText: t('common.ok'), + cancelButtonText: t('common.cancel'), + type: 'warning' + } + ) + }, // 提交内容 prompt(content: string, tip: string) { return ElMessageBox.prompt(content, tip, { diff --git a/src/locales/en.ts b/src/locales/en.ts index 6562c9b75d9d46459433b64fff254ed3594ad74a..819cbd6df14f342f332926ac96482bd001d9f11f 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -42,6 +42,7 @@ export default { confirmTitle: 'System Hint', exportMessage: 'Whether to confirm export data item?', importMessage: 'Whether to confirm import data item?', + printMessage: 'Whether to confirm print data item?', createSuccess: 'Create Success', updateSuccess: 'Update Success', delMessage: 'Delete the selected data?', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index b9deb3f24465cd4b718608a244c9109f2ab5e639..762821eed5639caec21a4b07114760313a9eed00 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -42,6 +42,7 @@ export default { confirmTitle: '系统提示', exportMessage: '是否确认导出数据项?', importMessage: '是否确认导入数据项?', + printMessage: '是否确认打印数据项?', createSuccess: '新增成功', updateSuccess: '修改成功', delMessage: '是否删除所选中数据?', diff --git a/src/utils/print.ts b/src/utils/print.ts new file mode 100644 index 0000000000000000000000000000000000000000..b75b9096b56f06f6799a503a791ec7b1c4b81055 --- /dev/null +++ b/src/utils/print.ts @@ -0,0 +1,134 @@ +export interface PrintTargetColumnData { + value: string + label: string + width?: number +} + +export interface PrintTargetData { + column: PrintTargetColumnData[] + data: object[] +} + +/** + * Table 打印 + * + * @param target 容器元素 ID 或 数据 (如:{"column":[{"value":"a","label":"啊","width":100},{"value":"b","label":"吧","width":200},{"value":"c","label":"唱","width":300}],"data":[{"a":"啊呀","b":"吧唧","c":"唱歌"},{"a":"天啊","b":"吧啦","c":"唱魂"}]}) + * @param hideClassAndColumn 隐藏 class 或 列 (如:['print-hide', 8]) + */ +export function printTable( + target: string | PrintTargetData, + hideClassAndColumn?: (string | number)[] +) { + // 打印内容 + // let printColgroup: string = '' + let printThead: string = '' + let printTbody: string = '' + if (typeof target === 'string') { + const printElement = document.getElementById(target) + if (printElement) { + // 提取 table 元素 + // const printColgroupElement = printElement.getElementsByTagName('colgroup')[0] + const printTheadElement = printElement.getElementsByTagName('thead')[0] + const printTbodyElement = printElement.getElementsByTagName('tbody')[0] + + // printColgroup = printColgroupElement?.outerHTML + printThead = printTheadElement?.outerHTML + printTbody = printTbodyElement?.outerHTML + } + } else if (target) { + // 组装 table 元素 + const columnList: PrintTargetColumnData[] = target.column || [] + const dataList: object[] = target.data || [] + // printColgroup = [ + // '