Commit 33f0225a5dc0254db7f12b00f5f757cf4cdf313d

Authored by gesilong
1 parent 3cf1550c

commit: 设备巡检保养开发(联调未完成)

  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 +};
... ...
  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 +};
... ...
  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 +};
... ...
  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 statusText: '状态',
6 6 frequencyText: '频率',
7 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 +};
... ...
  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 8 field: 'preserveName',
9 9 label: t('inspection.servicePlan.preserveNameText'),
10 10 component: 'Input',
11   - colProps: { span: 12 },
  11 + colProps: { span: 8 },
12 12 },
13 13 ];
14 14
... ...
... ... @@ -8,15 +8,29 @@
8 8 </Button>
9 9 </Authority>
10 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 25 </BasicTable>
12 26 </div>
13 27 </template>
14 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 31 import { columns, searchFormSchema } from './index';
18 32 import { useI18n } from '/@/hooks/web/useI18n';
19   -
  33 + import { Button, Tag } from 'ant-design-vue';
20 34 const { t } = useI18n();
21 35
22 36 const [
... ... @@ -24,7 +38,7 @@
24 38 { reload, setLoading, getSelectRowKeys, setSelectedRowKeys, getRowSelection },
25 39 ] = useTable({
26 40 title: t('inspection.servicePlan.listText'),
27   - api: getRepairOrderList,
  41 + api: getServicePlanList,
28 42 columns,
29 43 formConfig: {
30 44 labelWidth: 100,
... ...
  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 +];
... ...
  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>
... ...