Showing
16 changed files
with
530 additions
and
6 deletions
src/api/inspection/inspectionPlan.ts
0 → 100644
1 | +import { defHttp } from '/@/utils/http/axios'; | ||
2 | +import { omit } from 'lodash-es'; | ||
3 | + | ||
4 | +/** | ||
5 | + * 获取列表 | ||
6 | + */ | ||
7 | +export const getInspectionPlanList = (params) => { | ||
8 | + const { page, pageSize } = params; | ||
9 | + const otherParams = omit(params, ['page', 'pageSize']); | ||
10 | + return defHttp.get<any>({ | ||
11 | + url: `/inspectionPlan?page=${page}&pageSize=${pageSize}`, | ||
12 | + params: otherParams, | ||
13 | + }); | ||
14 | +}; |
src/api/inspection/inspectionRecord.ts
0 → 100644
1 | +import { defHttp } from '/@/utils/http/axios'; | ||
2 | +import { omit } from 'lodash-es'; | ||
3 | + | ||
4 | +/** | ||
5 | + * 获取列表 | ||
6 | + */ | ||
7 | +export const getInspectionRecordList = (params) => { | ||
8 | + const { page, pageSize } = params; | ||
9 | + const otherParams = omit(params, ['page', 'pageSize']); | ||
10 | + return defHttp.get<any>({ | ||
11 | + url: `/inspectionRecord?page=${page}&pageSize=${pageSize}`, | ||
12 | + params: otherParams, | ||
13 | + }); | ||
14 | +}; |
src/api/inspection/servicePlan.ts
0 → 100644
1 | +import { defHttp } from '/@/utils/http/axios'; | ||
2 | +import { omit } from 'lodash-es'; | ||
3 | + | ||
4 | +/** | ||
5 | + * 获取列表 | ||
6 | + */ | ||
7 | +export const getServicePlanList = (params) => { | ||
8 | + const { page, pageSize } = params; | ||
9 | + const otherParams = omit(params, ['page', 'pageSize']); | ||
10 | + return defHttp.post<any>({ | ||
11 | + url: `/preservePlan/pageData?page=${page}&pageSize=${pageSize}`, | ||
12 | + params: otherParams, | ||
13 | + }); | ||
14 | +}; |
src/api/inspection/serviceRecord.ts
0 → 100644
1 | +import { defHttp } from '/@/utils/http/axios'; | ||
2 | +import { omit } from 'lodash-es'; | ||
3 | + | ||
4 | +/** | ||
5 | + * 获取列表 | ||
6 | + */ | ||
7 | +export const getServiceRecordList = (params) => { | ||
8 | + const { page, pageSize } = params; | ||
9 | + const otherParams = omit(params, ['page', 'pageSize']); | ||
10 | + return defHttp.post<any>({ | ||
11 | + url: `/preserveRecord/pageData?page=${page}&pageSize=${pageSize}`, | ||
12 | + params: otherParams, | ||
13 | + }); | ||
14 | +}; |
1 | +export default { | ||
2 | + listText: '巡检计划', | ||
3 | + nameText: '名称', | ||
4 | + codeText: '记录编号', | ||
5 | + createCategoryText: '创建记录', | ||
6 | + statusText: '计划状态', | ||
7 | + typeNameText: '类型', | ||
8 | + NOT_START: '未开始', | ||
9 | + UNDERWAY: '进行中', | ||
10 | + FINISH: '已完成', | ||
11 | + STOP: '停用', | ||
12 | + time: '计划时间', | ||
13 | + startTimeText: '开始时间', | ||
14 | + endTimeText: '结束时间', | ||
15 | +}; |
1 | +export default { | ||
2 | + listText: '巡检记录', | ||
3 | + nameText: '巡检计划', | ||
4 | + recordCodeText: '巡检编号', | ||
5 | + inspectionPlanText: '巡检计划', | ||
6 | + checkDateText: '巡检日期', | ||
7 | + inspectorByName: '巡检员', | ||
8 | + inspectorIdText: '巡检员', | ||
9 | + startTimeText: '开始时间', | ||
10 | + endTimeText: '结束时间', | ||
11 | + recordResultText: '巡检结果', | ||
12 | + normal: '正常', | ||
13 | + error: '异常', | ||
14 | +}; |
@@ -5,5 +5,9 @@ export default { | @@ -5,5 +5,9 @@ export default { | ||
5 | statusText: '状态', | 5 | statusText: '状态', |
6 | frequencyText: '频率', | 6 | frequencyText: '频率', |
7 | timesText: '次数', | 7 | timesText: '次数', |
8 | - createCategoryText: '次数', | 8 | + createCategoryText: '创建计划', |
9 | + NOTSTART : '未开始', | ||
10 | + UNDERWAY: '进行中', | ||
11 | + COMPLETED: '已完成', | ||
12 | + STOP: '停用', | ||
9 | }; | 13 | }; |
1 | +export default { | ||
2 | + listText: '保养记录', | ||
3 | + preserveNameText: '维护结果', | ||
4 | + preserveCodeText: '计划编号', | ||
5 | + statusText: '状态', | ||
6 | + time: '保养日期', | ||
7 | + frequencyText: '频率', | ||
8 | + timesText: '次数', | ||
9 | + createCategoryText: '创建记录', | ||
10 | + INCOMPLETE : '未完成', | ||
11 | + COMPLETE: '已完成', | ||
12 | + recordCodeText: '记录编号', | ||
13 | + createTimeText: '保养日期', | ||
14 | + preserveByName: '保养人员', | ||
15 | + preservePlanName: '保养计划', | ||
16 | +}; |
src/views/inspection/inspectionPlan/index.ts
0 → 100644
1 | +import { FormSchema } from '/@/components/Form'; | ||
2 | +import { useI18n } from '/@/hooks/web/useI18n'; | ||
3 | +import { BasicColumn } from '/@/components/Table'; | ||
4 | +import moment from "moment/moment"; | ||
5 | +const { t } = useI18n(); | ||
6 | + | ||
7 | +const typeOptions = [ | ||
8 | + { label: t('inspection.inspectionPlan.NOT_START'), value: 'NOT_START' }, | ||
9 | + { label: t('inspection.inspectionPlan.UNDERWAY'), value: 'UNDERWAY' }, | ||
10 | + { label: t('inspection.inspectionPlan.FINISH'), value: 'FINISH' }, | ||
11 | + { label: t('inspection.inspectionPlan.STOP'), value: 'STOP' }, | ||
12 | +]; | ||
13 | + | ||
14 | +export const searchFormSchema: FormSchema[] = [ | ||
15 | + { | ||
16 | + field: 'name', | ||
17 | + label: t('inspection.inspectionPlan.nameText'), | ||
18 | + component: 'Input', | ||
19 | + colProps: { span: 6 }, | ||
20 | + }, | ||
21 | + { | ||
22 | + field: 'type', | ||
23 | + label: t('inspection.inspectionPlan.typeNameText'), | ||
24 | + component: 'Select', | ||
25 | + colProps: { span: 6 }, | ||
26 | + componentProps: { | ||
27 | + options: typeOptions, | ||
28 | + }, | ||
29 | + }, | ||
30 | + { | ||
31 | + field: 'startTime', | ||
32 | + label: t('inspection.inspectionPlan.startTimeText'), | ||
33 | + component: 'RangePicker', | ||
34 | + componentProps: { | ||
35 | + showTime: { | ||
36 | + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | ||
37 | + }, | ||
38 | + }, | ||
39 | + colProps: { span: 6 }, | ||
40 | + }, | ||
41 | + { | ||
42 | + field: 'endTime', | ||
43 | + label: t('inspection.inspectionPlan.endTimeText'), | ||
44 | + component: 'RangePicker', | ||
45 | + componentProps: { | ||
46 | + showTime: { | ||
47 | + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | ||
48 | + }, | ||
49 | + }, | ||
50 | + colProps: { span: 6 }, | ||
51 | + }, | ||
52 | +]; | ||
53 | + | ||
54 | +export const columns: BasicColumn[] = [ | ||
55 | + { | ||
56 | + title: t('inspection.inspectionPlan.codeText'), | ||
57 | + dataIndex: 'code', | ||
58 | + }, | ||
59 | + { | ||
60 | + title: t('inspection.inspectionPlan.nameText'), | ||
61 | + dataIndex: 'name', | ||
62 | + }, | ||
63 | + { | ||
64 | + title: t('inspection.inspectionPlan.startTimeText'), | ||
65 | + dataIndex: 'startTime', | ||
66 | + }, | ||
67 | + { | ||
68 | + title: t('inspection.inspectionPlan.endTimeText'), | ||
69 | + dataIndex: 'endTime', | ||
70 | + }, | ||
71 | + { | ||
72 | + title: t('inspection.inspectionPlan.statusText'), | ||
73 | + dataIndex: 'status', | ||
74 | + slots: { customRender: 'status' }, | ||
75 | + }, | ||
76 | +]; |
1 | +<template> | ||
2 | + <div> | ||
3 | + <BasicTable :clickToRowSelect="false" @register="registerTable"> | ||
4 | + <template #toolbar> | ||
5 | + <Authority value="api:yt:product:category:post"> | ||
6 | + <Button type="primary"> | ||
7 | + {{ t('inspection.inspectionPlan.createCategoryText') }} | ||
8 | + </Button> | ||
9 | + </Authority> | ||
10 | + </template> | ||
11 | + <template #status="{ record }"> | ||
12 | + <Tag | ||
13 | + :color=" | ||
14 | + record.status == 'NOT_START' | ||
15 | + ? 'yellow' | ||
16 | + : record.status == 'UNDERWAY' | ||
17 | + ? 'blue': record.status == 'FINISH' | ||
18 | + ? 'green': 'red' | ||
19 | + " | ||
20 | + class="ml-2" | ||
21 | + > | ||
22 | + {{ t(`inspection.inspectionPlan.${record.status}`) }} | ||
23 | + </Tag> | ||
24 | + </template> | ||
25 | + </BasicTable> | ||
26 | + </div> | ||
27 | +</template> | ||
28 | +<script setup lang="ts"> | ||
29 | +import { BasicTable, useTable } from '/@/components/Table'; | ||
30 | +import { getInspectionPlanList } from '/@/api/inspection/inspectionPlan'; | ||
31 | +import { columns, searchFormSchema } from './index'; | ||
32 | +import { useI18n } from '/@/hooks/web/useI18n'; | ||
33 | +import { Button, Tag } from 'ant-design-vue'; | ||
34 | +const { t } = useI18n(); | ||
35 | + | ||
36 | +const [ | ||
37 | + registerTable, | ||
38 | + { reload, setLoading, getSelectRowKeys, setSelectedRowKeys, getRowSelection }, | ||
39 | +] = useTable({ | ||
40 | + title: t('inspection.inspectionPlan.listText'), | ||
41 | + api: getInspectionPlanList, | ||
42 | + columns, | ||
43 | + formConfig: { | ||
44 | + labelWidth: 100, | ||
45 | + schemas: searchFormSchema, | ||
46 | + }, | ||
47 | + immediate: true, | ||
48 | + useSearchForm: true, | ||
49 | + showTableSetting: true, | ||
50 | + bordered: true, | ||
51 | + showIndexColumn: false, | ||
52 | + clickToRowSelect: false, | ||
53 | + rowKey: 'id', | ||
54 | + actionColumn: { | ||
55 | + width: 230, | ||
56 | + title: t('common.actionText'), | ||
57 | + slots: { customRender: 'action' }, | ||
58 | + fixed: 'right', | ||
59 | + }, | ||
60 | + rowSelection: { | ||
61 | + type: 'checkbox', | ||
62 | + getCheckboxProps: (record: any) => {}, | ||
63 | + }, | ||
64 | +}); | ||
65 | +</script> |
1 | +import { FormSchema } from '/@/components/Form'; | ||
2 | +import { useI18n } from '/@/hooks/web/useI18n'; | ||
3 | +import { BasicColumn } from '/@/components/Table'; | ||
4 | +import moment from "moment"; | ||
5 | +const { t } = useI18n(); | ||
6 | + | ||
7 | + | ||
8 | +const resultOptions = [ | ||
9 | + { label: t('inspection.inspectionRecord.normal'), value: 'true' }, | ||
10 | + { label: t('inspection.inspectionRecord.error'), value: 'false' }, | ||
11 | +]; | ||
12 | + | ||
13 | +export const searchFormSchema: FormSchema[] = [ | ||
14 | + { | ||
15 | + field: 'inspectionPlanId', | ||
16 | + label: t('inspection.inspectionRecord.nameText'), | ||
17 | + component: 'Input', | ||
18 | + colProps: { span: 6 }, | ||
19 | + }, | ||
20 | + { | ||
21 | + field: 'inspectorId', | ||
22 | + label: t('inspection.inspectionRecord.inspectorIdText'), | ||
23 | + component: 'Input', | ||
24 | + colProps: { span: 6 }, | ||
25 | + }, | ||
26 | + { | ||
27 | + field: 'startTime', | ||
28 | + label: t('inspection.inspectionRecord.startTimeText'), | ||
29 | + component: 'RangePicker', | ||
30 | + componentProps: { | ||
31 | + showTime: { | ||
32 | + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | ||
33 | + }, | ||
34 | + }, | ||
35 | + colProps: { span: 6 }, | ||
36 | + }, | ||
37 | + { | ||
38 | + field: 'endTime', | ||
39 | + label: t('inspection.inspectionRecord.endTimeText'), | ||
40 | + component: 'RangePicker', | ||
41 | + componentProps: { | ||
42 | + showTime: { | ||
43 | + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | ||
44 | + }, | ||
45 | + }, | ||
46 | + colProps: { span: 6 }, | ||
47 | + }, | ||
48 | + { | ||
49 | + field: 'recordResult', | ||
50 | + label: t('inspection.inspectionRecord.recordResultText'), | ||
51 | + component: 'Select', | ||
52 | + colProps: { span: 8 }, | ||
53 | + componentProps: { | ||
54 | + options: resultOptions, | ||
55 | + }, | ||
56 | + }, | ||
57 | +]; | ||
58 | + | ||
59 | +export const columns: BasicColumn[] = [ | ||
60 | + { | ||
61 | + title: t('inspection.inspectionRecord.recordCodeText'), | ||
62 | + dataIndex: 'code', | ||
63 | + }, | ||
64 | + { | ||
65 | + title: t('inspection.inspectionRecord.inspectionPlanText'), | ||
66 | + dataIndex: 'inspectionPlanId', | ||
67 | + }, | ||
68 | + { | ||
69 | + title: t('inspection.inspectionRecord.inspectorByName'), | ||
70 | + dataIndex: 'inspectorId', | ||
71 | + | ||
72 | + }, | ||
73 | + { | ||
74 | + title: t('inspection.inspectionRecord.checkDateText'), | ||
75 | + dataIndex: 'checkDate', | ||
76 | + }, | ||
77 | + { | ||
78 | + title: t('inspection.inspectionRecord.recordResultText'), | ||
79 | + dataIndex: 'recordResult', | ||
80 | + slots: { customRender: 'recordResult' }, | ||
81 | + | ||
82 | + }, | ||
83 | +]; |
1 | +<template> | ||
2 | + <div> | ||
3 | + <BasicTable :clickToRowSelect="false" @register="registerTable"> | ||
4 | + <template #toolbar> | ||
5 | + <Authority value="api:yt:product:category:post"> | ||
6 | + <Button type="primary" > | ||
7 | + {{ t('inspection.inspectionRecord.createCategoryText') }} | ||
8 | + </Button> | ||
9 | + </Authority> | ||
10 | + </template> | ||
11 | + <template #recordResult="{ record }"> | ||
12 | + <Tag | ||
13 | + :color="record.status ? 'green' : 'red'" | ||
14 | + class="ml-2" | ||
15 | + > | ||
16 | + {{record.recordResult ? '正常' : '异常'}} | ||
17 | + </Tag> | ||
18 | + </template> | ||
19 | + </BasicTable> | ||
20 | + </div> | ||
21 | +</template> | ||
22 | +<script setup lang="ts"> | ||
23 | + import { BasicTable, useTable } from '/@/components/Table'; | ||
24 | + import { getInspectionRecordList } from '/@/api/inspection/inspectionRecord'; | ||
25 | + import { columns, searchFormSchema } from './index'; | ||
26 | + import { useI18n } from '/@/hooks/web/useI18n'; | ||
27 | + import { Button, Tag } from 'ant-design-vue'; | ||
28 | + const { t } = useI18n(); | ||
29 | + | ||
30 | + const [ | ||
31 | + registerTable, | ||
32 | + { reload, setLoading, getSelectRowKeys, setSelectedRowKeys, getRowSelection }, | ||
33 | + ] = useTable({ | ||
34 | + title: t('inspection.inspectionRecord.listText'), | ||
35 | + api: getInspectionRecordList, | ||
36 | + columns, | ||
37 | + formConfig: { | ||
38 | + labelWidth: 100, | ||
39 | + schemas: searchFormSchema, | ||
40 | + }, | ||
41 | + immediate: true, | ||
42 | + useSearchForm: true, | ||
43 | + showTableSetting: true, | ||
44 | + bordered: true, | ||
45 | + showIndexColumn: false, | ||
46 | + clickToRowSelect: false, | ||
47 | + rowKey: 'id', | ||
48 | + actionColumn: { | ||
49 | + width: 230, | ||
50 | + title: t('common.actionText'), | ||
51 | + slots: { customRender: 'action' }, | ||
52 | + fixed: 'right', | ||
53 | + }, | ||
54 | + rowSelection: { | ||
55 | + type: 'checkbox', | ||
56 | + getCheckboxProps: (record: any) => {}, | ||
57 | + }, | ||
58 | + }); | ||
59 | +</script> |
@@ -8,7 +8,7 @@ export const searchFormSchema: FormSchema[] = [ | @@ -8,7 +8,7 @@ export const searchFormSchema: FormSchema[] = [ | ||
8 | field: 'preserveName', | 8 | field: 'preserveName', |
9 | label: t('inspection.servicePlan.preserveNameText'), | 9 | label: t('inspection.servicePlan.preserveNameText'), |
10 | component: 'Input', | 10 | component: 'Input', |
11 | - colProps: { span: 12 }, | 11 | + colProps: { span: 8 }, |
12 | }, | 12 | }, |
13 | ]; | 13 | ]; |
14 | 14 |
@@ -8,15 +8,29 @@ | @@ -8,15 +8,29 @@ | ||
8 | </Button> | 8 | </Button> |
9 | </Authority> | 9 | </Authority> |
10 | </template> | 10 | </template> |
11 | + <template #status="{ record }"> | ||
12 | + <Tag | ||
13 | + :color=" | ||
14 | + record.status == 'NOTSTART' | ||
15 | + ? 'red' | ||
16 | + : record.status == 'UNDERWAY' | ||
17 | + ? 'blue': record.status == 'COMPLETED' | ||
18 | + ? 'green': 'yellow' | ||
19 | + " | ||
20 | + class="ml-2" | ||
21 | + > | ||
22 | + {{ t(`inspection.servicePlan.${record.status}`) }} | ||
23 | + </Tag> | ||
24 | + </template> | ||
11 | </BasicTable> | 25 | </BasicTable> |
12 | </div> | 26 | </div> |
13 | </template> | 27 | </template> |
14 | <script setup lang="ts"> | 28 | <script setup lang="ts"> |
15 | - import { useTable } from '/@/components/Table'; | ||
16 | - import { getRepairOrderList } from '/@/api/repair/order'; | 29 | + import { BasicTable, useTable } from '/@/components/Table'; |
30 | + import { getServicePlanList } from '/@/api/inspection/servicePlan'; | ||
17 | import { columns, searchFormSchema } from './index'; | 31 | import { columns, searchFormSchema } from './index'; |
18 | import { useI18n } from '/@/hooks/web/useI18n'; | 32 | import { useI18n } from '/@/hooks/web/useI18n'; |
19 | - | 33 | + import { Button, Tag } from 'ant-design-vue'; |
20 | const { t } = useI18n(); | 34 | const { t } = useI18n(); |
21 | 35 | ||
22 | const [ | 36 | const [ |
@@ -24,7 +38,7 @@ | @@ -24,7 +38,7 @@ | ||
24 | { reload, setLoading, getSelectRowKeys, setSelectedRowKeys, getRowSelection }, | 38 | { reload, setLoading, getSelectRowKeys, setSelectedRowKeys, getRowSelection }, |
25 | ] = useTable({ | 39 | ] = useTable({ |
26 | title: t('inspection.servicePlan.listText'), | 40 | title: t('inspection.servicePlan.listText'), |
27 | - api: getRepairOrderList, | 41 | + api: getServicePlanList, |
28 | columns, | 42 | columns, |
29 | formConfig: { | 43 | formConfig: { |
30 | labelWidth: 100, | 44 | labelWidth: 100, |
src/views/inspection/serviceRecord/index.ts
0 → 100644
1 | +import { FormSchema } from '/@/components/Form'; | ||
2 | +import { useI18n } from '/@/hooks/web/useI18n'; | ||
3 | +import { BasicColumn } from '/@/components/Table'; | ||
4 | +import moment from "moment"; | ||
5 | +const { t } = useI18n(); | ||
6 | + | ||
7 | + | ||
8 | +const statusOptions = [ | ||
9 | + { label: t('inspection.serviceRecord.INCOMPLETE'), value: 'INCOMPLETE' }, | ||
10 | + { label: t('inspection.serviceRecord.COMPLETE'), value: 'COMPLETE' }, | ||
11 | +]; | ||
12 | + | ||
13 | +export const searchFormSchema: FormSchema[] = [ | ||
14 | + { | ||
15 | + field: 'preserveStatus', | ||
16 | + label: t('inspection.serviceRecord.preserveNameText'), | ||
17 | + component: 'Select', | ||
18 | + colProps: { span: 8 }, | ||
19 | + componentProps: { | ||
20 | + options: statusOptions, | ||
21 | + }, | ||
22 | + }, | ||
23 | + { | ||
24 | + field: 'startDate', | ||
25 | + label: t('inspection.serviceRecord.time'), | ||
26 | + component: 'RangePicker', | ||
27 | + componentProps: { | ||
28 | + showTime: { | ||
29 | + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | ||
30 | + }, | ||
31 | + }, | ||
32 | + colProps: { span: 6 }, | ||
33 | + }, | ||
34 | +]; | ||
35 | + | ||
36 | +export const columns: BasicColumn[] = [ | ||
37 | + { | ||
38 | + title: t('inspection.serviceRecord.recordCodeText'), | ||
39 | + dataIndex: 'recordCode', | ||
40 | + }, | ||
41 | + { | ||
42 | + title: t('inspection.serviceRecord.createTimeText'), | ||
43 | + dataIndex: 'createTime', | ||
44 | + }, | ||
45 | + { | ||
46 | + title: t('inspection.serviceRecord.preserveByName'), | ||
47 | + dataIndex: 'preserveByName', | ||
48 | + | ||
49 | + }, | ||
50 | + { | ||
51 | + title: t('inspection.serviceRecord.preserveNameText'), | ||
52 | + dataIndex: 'preserveStatus', | ||
53 | + slots: { customRender: 'preserveStatus' }, | ||
54 | + }, | ||
55 | + { | ||
56 | + title: t('inspection.serviceRecord.preservePlanName'), | ||
57 | + dataIndex: 'preservePlanName', | ||
58 | + }, | ||
59 | +]; |
src/views/inspection/serviceRecord/index.vue
0 → 100644
1 | +<template> | ||
2 | + <div> | ||
3 | + <BasicTable :clickToRowSelect="false" @register="registerTable"> | ||
4 | + <template #toolbar> | ||
5 | + <Authority value="api:yt:product:category:post"> | ||
6 | + <Button type="primary" > | ||
7 | + {{ t('inspection.serviceRecord.createCategoryText') }} | ||
8 | + </Button> | ||
9 | + </Authority> | ||
10 | + </template> | ||
11 | + <template #preserveStatus="{ record }"> | ||
12 | + <Tag | ||
13 | + :color=" | ||
14 | + record.status == 'INCOMPLETE' | ||
15 | + ? 'red': record.status == 'COMPLETED' | ||
16 | + ? 'green': 'yellow' | ||
17 | + " | ||
18 | + class="ml-2" | ||
19 | + > | ||
20 | + {{ t(`inspection.serviceRecord.${record.preserveStatus}`) }} | ||
21 | + </Tag> | ||
22 | + </template> | ||
23 | + </BasicTable> | ||
24 | + </div> | ||
25 | +</template> | ||
26 | +<script setup lang="ts"> | ||
27 | +import { BasicTable, useTable } from '/@/components/Table'; | ||
28 | +import { getServiceRecordList } from '/@/api/inspection/serviceRecord'; | ||
29 | +import { columns, searchFormSchema } from './index'; | ||
30 | +import { useI18n } from '/@/hooks/web/useI18n'; | ||
31 | +import { Button, Tag } from 'ant-design-vue'; | ||
32 | +const { t } = useI18n(); | ||
33 | + | ||
34 | +const [ | ||
35 | + registerTable, | ||
36 | + { reload, setLoading, getSelectRowKeys, setSelectedRowKeys, getRowSelection }, | ||
37 | +] = useTable({ | ||
38 | + title: t('inspection.serviceRecord.listText'), | ||
39 | + api: getServiceRecordList, | ||
40 | + columns, | ||
41 | + formConfig: { | ||
42 | + labelWidth: 100, | ||
43 | + schemas: searchFormSchema, | ||
44 | + }, | ||
45 | + immediate: true, | ||
46 | + useSearchForm: true, | ||
47 | + showTableSetting: true, | ||
48 | + bordered: true, | ||
49 | + showIndexColumn: false, | ||
50 | + clickToRowSelect: false, | ||
51 | + rowKey: 'id', | ||
52 | + actionColumn: { | ||
53 | + width: 230, | ||
54 | + title: t('common.actionText'), | ||
55 | + slots: { customRender: 'action' }, | ||
56 | + fixed: 'right', | ||
57 | + }, | ||
58 | + rowSelection: { | ||
59 | + type: 'checkbox', | ||
60 | + getCheckboxProps: (record: any) => {}, | ||
61 | + }, | ||
62 | +}); | ||
63 | +</script> |