snippetTableColumn.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const timeFieldNeedHandle = {
  2. created_at: true,
  3. create_time: true,
  4. updated_at: true,
  5. update_time: true,
  6. start_time: true,
  7. end_time: true,
  8. };
  9. const genTableColumnSnippetSimple = (key, label) => {
  10. return `<el-table-column show-overflow-tooltip prop="${key}" label="${label}"/>`;
  11. };
  12. const genTabeleColumnSinppetTemplate = (key, label) => {
  13. let val = "";
  14. if (timeFieldNeedHandle[key]) {
  15. val = `parseTime(row.${key})`;
  16. } else {
  17. val = `row.${key}`;
  18. }
  19. return `<el-table-column show-overflow-tooltip label="${label}">
  20. <template #default={row}>
  21. {{ ${val} }}
  22. </template>
  23. </el-table-column>`;
  24. };
  25. export const genTableColumnSnippet = (headers) => {
  26. return headers
  27. .filter((header) => {
  28. return header.show;
  29. })
  30. .map((header) => {
  31. if (timeFieldNeedHandle[header.key] || header.opt === "template") {
  32. return genTabeleColumnSinppetTemplate(header.key, header.label);
  33. } else {
  34. return genTableColumnSnippetSimple(header.key, header.label);
  35. }
  36. })
  37. .join("\n ");
  38. };