| | |
| | | import dayjs from 'dayjs'; |
| | | |
| | | import { getTrainRecordCatalog } from '#/api/x/tms/trainRecord'; |
| | | import { TMS_BTN } from '#/views/x/tms/shared/ui'; |
| | | |
| | | defineOptions({ name: 'TmsTrainRecordCatalog' }); |
| | | |
| | |
| | | createMessage.warning('暂无数据可导出'); |
| | | return; |
| | | } |
| | | createMessage.success(`已准备导出 ${list.length} 条(导出接口联调后生效)`); |
| | | const headers = ['培训记录编号', '培训类型', '培训内容', '培训方式', '培训师', '考核方式', '培训结果', '是否合格', '具体培训时间']; |
| | | const escape = (v: unknown) => { |
| | | const s = v === null || v === undefined ? '' : String(v); |
| | | return /[",\n]/.test(s) ? `"${s.replace(/"/g, '""')}"` : s; |
| | | }; |
| | | const passText = (v: string) => (v === '1' ? '合格' : v === '0' ? '不合格' : ''); |
| | | const lines = [ |
| | | headers.join(','), |
| | | ...list.map((row) => |
| | | [ |
| | | row.recordNo, |
| | | row.trainType, |
| | | row.trainContent, |
| | | row.trainMode, |
| | | row.trainerName, |
| | | row.evalMode, |
| | | resultText(row), |
| | | passText(row.passFlag), |
| | | row.trainDate || '', |
| | | ] |
| | | .map(escape) |
| | | .join(','), |
| | | ), |
| | | ]; |
| | | const bom = '\uFEFF'; |
| | | const blob = new Blob([bom + lines.join('\n')], { type: 'text/csv;charset=utf-8;' }); |
| | | const url = URL.createObjectURL(blob); |
| | | const a = document.createElement('a'); |
| | | a.href = url; |
| | | a.download = `培训目录_${detail.value?.userName || detail.value?.archiveNo || 'export'}_${dayjs().format('YYYYMMDD')}.csv`; |
| | | a.click(); |
| | | URL.revokeObjectURL(url); |
| | | createMessage.success(`已导出 ${list.length} 条`); |
| | | } |
| | | |
| | | function goBack() { |
| | |
| | | :placeholder="['开始日期', '结束日期']" |
| | | :get-popup-container="popupContainer" |
| | | /> |
| | | <a-button type="primary" class="ml-3" @click="handleSearch">查询</a-button> |
| | | <a-button class="ml-2" @click="handleReset">重置</a-button> |
| | | <a-button type="primary" class="ml-3" @click="handleSearch">{{ TMS_BTN.search }}</a-button> |
| | | <a-button class="ml-2" @click="handleReset">{{ TMS_BTN.reset }}</a-button> |
| | | </div> |
| | | <a-space> |
| | | <a-button @click="handleExport">导出</a-button> |
| | | <a-button @click="goBack">关闭</a-button> |
| | | <a-button type="primary" ghost @click="handleExport">{{ TMS_BTN.export }}</a-button> |
| | | <a-button @click="goBack">{{ TMS_BTN.close }}</a-button> |
| | | </a-space> |
| | | </div> |
| | | |