107 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <div class="pig-sick-logs-view">
 | |
|     <GenericMonitorList
 | |
|       :fetchData="fetchPigSickLogs"
 | |
|       :columnsConfig="pigSickLogColumns"
 | |
|     />
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script setup>
 | |
| import GenericMonitorList from '../../components/GenericMonitorList.vue';
 | |
| import { getPigSickLogs } from '../../api/monitor.js';
 | |
| import { formatRFC3339 } from '../../utils/format.js';
 | |
| 
 | |
| // 适配通用组件的 fetchData prop
 | |
| const fetchPigSickLogs = async (params) => {
 | |
|   return await getPigSickLogs(params);
 | |
| };
 | |
| 
 | |
| // 定义表格的列,依据 swagger.json
 | |
| const pigSickLogColumns = [
 | |
|   {
 | |
|     title: '记录ID',
 | |
|     dataIndex: 'id',
 | |
|     key: 'id',
 | |
|     sorter: true,
 | |
|     minWidth: 100,
 | |
|   },
 | |
|   {
 | |
|     title: '猪批次ID',
 | |
|     dataIndex: 'pig_batch_id',
 | |
|     key: 'pig_batch_id',
 | |
|     filterType: 'number',
 | |
|     sorter: true,
 | |
|     minWidth: 120,
 | |
|   },
 | |
|   {
 | |
|     title: '猪栏ID',
 | |
|     dataIndex: 'pen_id',
 | |
|     key: 'pen_id',
 | |
|     filterType: 'number',
 | |
|     sorter: true,
 | |
|     minWidth: 120,
 | |
|   },
 | |
|   {
 | |
|     title: '原因',
 | |
|     dataIndex: 'reason',
 | |
|     key: 'reason',
 | |
|     filterType: 'select',
 | |
|     filterOptions: [
 | |
|       { text: '患病', value: '患病' },
 | |
|       { text: '康复', value: '康复' },
 | |
|       { text: '死亡', value: '死亡' },
 | |
|       { text: '淘汰', value: '淘汰' },
 | |
|       { text: '转入', value: '转入' },
 | |
|       { text: '转出', value: '转出' },
 | |
|       { text: '其他', value: '其他' },
 | |
|     ],
 | |
|     minWidth: 120,
 | |
|   },
 | |
|   {
 | |
|     title: '治疗地点',
 | |
|     dataIndex: 'treatment_location',
 | |
|     key: 'treatment_location',
 | |
|     filterType: 'select',
 | |
|     filterOptions: [
 | |
|         { text: '原地治疗', value: '原地治疗' },
 | |
|         { text: '病猪栏治疗', value: '病猪栏治疗' },
 | |
|     ],
 | |
|     minWidth: 130,
 | |
|   },
 | |
|   {
 | |
|     title: '变更数量',
 | |
|     dataIndex: 'change_count',
 | |
|     key: 'change_count',
 | |
|     sorter: true,
 | |
|     minWidth: 120,
 | |
|   },
 | |
|   {
 | |
|     title: '发生时间',
 | |
|     dataIndex: 'happened_at',
 | |
|     key: 'happened_at',
 | |
|     sorter: true,
 | |
|     filterType: 'dateRange',
 | |
|     formatter: (row, column, cellValue) => formatRFC3339(cellValue),
 | |
|     minWidth: 180,
 | |
|   },
 | |
|   {
 | |
|     title: '操作员ID',
 | |
|     dataIndex: 'operator_id',
 | |
|     key: 'operator_id',
 | |
|     filterType: 'number',
 | |
|     minWidth: 120,
 | |
|   },
 | |
|   {
 | |
|     title: '备注',
 | |
|     dataIndex: 'remarks',
 | |
|     key: 'remarks',
 | |
|     minWidth: 200,
 | |
|   },
 | |
| ];
 | |
| </script>
 | |
| 
 | |
| <style scoped>
 | |
| /* 视图容器样式 */
 | |
| </style>
 |