diff --git a/src/api/inspection/maintainanceItemApi.js b/src/api/inspection/maintainanceItemApi.js new file mode 100644 index 0000000..020af28 --- /dev/null +++ b/src/api/inspection/maintainanceItemApi.js @@ -0,0 +1,78 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取检查项列表 +export function listMaintainanceItem(params) { + return new Promise((resolve, reject) => { + request({ + url: '/maintainance.listMaintainanceItem', + method: 'get', + params: { + ...params, + communityId: params.communityId || getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 添加检查项 +export function saveMaintainanceItem(data) { + return new Promise((resolve, reject) => { + request({ + url: '/maintainance.saveMaintainanceItem', + method: 'post', + data: { + ...data, + communityId: data.communityId || getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 更新检查项 +export function updateMaintainanceItem(data) { + return new Promise((resolve, reject) => { + request({ + url: '/maintainance.updateMaintainanceItem', + method: 'post', + data: { + ...data, + communityId: data.communityId || getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 删除检查项 +export function deleteMaintainanceItem(data) { + return new Promise((resolve, reject) => { + request({ + url: '/maintainance.deleteMaintainanceItem', + method: 'post', + data: { + ...data, + communityId: data.communityId || getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/components/inspection/addMaintainanceItem.vue b/src/components/inspection/addMaintainanceItem.vue new file mode 100644 index 0000000..52dae4a --- /dev/null +++ b/src/components/inspection/addMaintainanceItem.vue @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + {{ $t('common.add') }} + + + {{ $t('common.delete') }} + + + + + + + + + + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.confirm') }} + + + + + + \ No newline at end of file diff --git a/src/components/inspection/deleteMaintainanceItem.vue b/src/components/inspection/deleteMaintainanceItem.vue new file mode 100644 index 0000000..7d49b97 --- /dev/null +++ b/src/components/inspection/deleteMaintainanceItem.vue @@ -0,0 +1,85 @@ + + + + {{ $t('maintainanceItem.delete.confirmText') }} + {{ form.itemTitle }} + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.confirm') }} + + + + + + + + \ No newline at end of file diff --git a/src/components/inspection/editMaintainanceItem.vue b/src/components/inspection/editMaintainanceItem.vue new file mode 100644 index 0000000..40bc52e --- /dev/null +++ b/src/components/inspection/editMaintainanceItem.vue @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + {{ $t('common.add') }} + + + {{ $t('common.delete') }} + + + + + + + + + + + + + + {{ $t('common.cancel') }} + + + {{ $t('common.confirm') }} + + + + + + \ No newline at end of file diff --git a/src/i18n/index.js b/src/i18n/index.js index b2c8799..d790764 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -204,6 +204,7 @@ import { messages as addEquipmentAccountMessages } from '../views/machine/addEqu import { messages as editEquipmentAccountMessages } from '../views/machine/editEquipmentAccountLang' import { messages as equipmentAccountDetailMessages } from '../views/machine/equipmentAccountDetailLang' import { messages as printEquipmentAccountLabelMessages } from '../views/resource/printEquipmentAccountLabelLang' +import {messages as inspectioni18n} from './inspectionI18n' Vue.use(VueI18n) @@ -412,6 +413,7 @@ const messages = { ...editEquipmentAccountMessages.en, ...equipmentAccountDetailMessages.en, ...printEquipmentAccountLabelMessages.en, + ...inspectioni18n.en, }, zh: { ...loginMessages.zh, @@ -616,6 +618,7 @@ const messages = { ...editEquipmentAccountMessages.zh, ...equipmentAccountDetailMessages.zh, ...printEquipmentAccountLabelMessages.zh, + ...inspectioni18n.zh, } } diff --git a/src/i18n/inspectionI18n.js b/src/i18n/inspectionI18n.js new file mode 100644 index 0000000..17f3129 --- /dev/null +++ b/src/i18n/inspectionI18n.js @@ -0,0 +1,10 @@ +import { messages as maintainanceItemMessages } from '../views/inspection/maintainanceItemLang' +export const messages = { + en: { + ...maintainanceItemMessages.en, + }, + zh: { + ...maintainanceItemMessages.zh, + } + +} \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 5d8289f..e4dc4f0 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -3,6 +3,7 @@ import VueRouter from 'vue-router' import Layout from '@/views/layout/layout.vue' import Login from '@/views/user/login/Login.vue' import printEquipmentAccountLabel from '@/views/resource/printEquipmentAccountLabelList.vue' +import inspectionRouter from './inspectionRouter' Vue.use(VueRouter) @@ -327,26 +328,7 @@ const routes = [ name: '/views/work/adminRepairDetail', component: () => import('@/views/work/adminRepairDetailList.vue') }, - { - path: '/pages/inspection/adminInspectionPlan', - name: '/pages/inspection/adminInspectionPlan', - component: () => import('@/views/inspection/adminInspectionPlanList.vue') - }, - { - path: '/pages/inspection/aInspectionPlanDetail', - name: '/pages/inspection/aInspectionPlanDetail', - component: () => import('@/views/inspection/aInspectionPlanDetailList.vue') - }, - { - path: '/pages/inspection/adminInspectionTask', - name: '/pages/inspection/adminInspectionTask', - component: () => import('@/views/inspection/adminInspectionTaskList.vue') - }, - { - path: '/views/inspection/adminInspectionTaskDetail', - name: '/views/inspection/adminInspectionTaskDetail', - component: () => import('@/views/inspection/adminInspectionTaskDetailList.vue') - }, + { path: '/pages/complaint/adminComplaint', name: '/pages/complaint/adminComplaint', @@ -842,36 +824,7 @@ const routes = [ name: '/pages/property/repairForceFinishManage', component: () => import('@/views/work/repairForceFinishManageList.vue') }, - { - path: '/pages/property/inspectionItemManage', - name: '/pages/property/inspectionItemManage', - component: () => import('@/views/inspection/inspectionItemManageList.vue') - }, - { - path: '/views/inspection/inspectionItemTitleManage', - name: '/views/inspection/inspectionItemTitleManage', - component: () => import('@/views/inspection/inspectionItemTitleManageList.vue') - }, - { - path: '/pages/inspection/inspectionPlan', - name: '/pages/inspection/inspectionPlan', - component: () => import('@/views/inspection/inspectionPlanList.vue') - }, - { - path: '/views/inspection/addInspectionPlan', - name: '/views/inspection/addInspectionPlan', - component: () => import('@/views/inspection/addInspectionPlanList.vue') - }, - { - path: '/pages/inspection/inspectionTask', - name: '/pages/inspection/inspectionTask', - component: () => import('@/views/inspection/InspectionTaskList.vue') - }, - { - path: '/pages/property/inspectionTaskDetails', - name: '/pages/property/inspectionTaskDetails', - component: () => import('@/views/inspection/inspectionTaskDetailsList.vue') - }, + { path: '/pages/resource/resourceAuditFlow', name: '/pages/resource/resourceAuditFlow', @@ -892,16 +845,7 @@ const routes = [ name: '/pages/common/resourceStoreManage', component: () => import('@/views/resource/resourceStoreManageList.vue') }, - { - path: '/pages/inspection/inspectionPoint', - name: '/pages/inspection/inspectionPoint', - component: () => import('@/views/inspection/inspectionPointList.vue') - }, - { - path: '/pages/inspection/inspectionRoute', - name: '/pages/inspection/inspectionRoute', - component: () => import('@/views/inspection/inspectionRouteList.vue') - }, + { path: '/pages/property/resourceSupplierManage', name: '/pages/property/resourceSupplierManage', @@ -1007,7 +951,7 @@ const routes = [ name: '/views/machine/equipmentAccountDetail', component: () => import('@/views/machine/equipmentAccountDetailList.vue') }, - + ...inspectionRouter // 其他子路由可以在这里添加 ] }, diff --git a/src/router/inspectionRouter.js b/src/router/inspectionRouter.js new file mode 100644 index 0000000..2a765bd --- /dev/null +++ b/src/router/inspectionRouter.js @@ -0,0 +1,67 @@ +export default [ + { + path: '/pages/inspection/inspectionPoint', + name: '/pages/inspection/inspectionPoint', + component: () => import('@/views/inspection/inspectionPointList.vue') + }, + { + path: '/pages/inspection/inspectionRoute', + name: '/pages/inspection/inspectionRoute', + component: () => import('@/views/inspection/inspectionRouteList.vue') + }, + { + path: '/pages/inspection/adminInspectionPlan', + name: '/pages/inspection/adminInspectionPlan', + component: () => import('@/views/inspection/adminInspectionPlanList.vue') + }, + { + path: '/pages/inspection/aInspectionPlanDetail', + name: '/pages/inspection/aInspectionPlanDetail', + component: () => import('@/views/inspection/aInspectionPlanDetailList.vue') + }, + { + path: '/pages/inspection/adminInspectionTask', + name: '/pages/inspection/adminInspectionTask', + component: () => import('@/views/inspection/adminInspectionTaskList.vue') + }, + { + path: '/views/inspection/adminInspectionTaskDetail', + name: '/views/inspection/adminInspectionTaskDetail', + component: () => import('@/views/inspection/adminInspectionTaskDetailList.vue') + }, + { + path: '/pages/property/inspectionItemManage', + name: '/pages/property/inspectionItemManage', + component: () => import('@/views/inspection/inspectionItemManageList.vue') + }, + { + path: '/views/inspection/inspectionItemTitleManage', + name: '/views/inspection/inspectionItemTitleManage', + component: () => import('@/views/inspection/inspectionItemTitleManageList.vue') + }, + { + path: '/pages/inspection/inspectionPlan', + name: '/pages/inspection/inspectionPlan', + component: () => import('@/views/inspection/inspectionPlanList.vue') + }, + { + path: '/views/inspection/addInspectionPlan', + name: '/views/inspection/addInspectionPlan', + component: () => import('@/views/inspection/addInspectionPlanList.vue') + }, + { + path: '/pages/inspection/inspectionTask', + name: '/pages/inspection/inspectionTask', + component: () => import('@/views/inspection/InspectionTaskList.vue') + }, + { + path: '/pages/property/inspectionTaskDetails', + name: '/pages/property/inspectionTaskDetails', + component: () => import('@/views/inspection/inspectionTaskDetailsList.vue') + }, + { + path: '/pages/property/maintainanceItem', + name: '/pages/property/maintainanceItem', + component: () => import('@/views/inspection/maintainanceItemList.vue') + }, +] \ No newline at end of file diff --git a/src/views/inspection/maintainanceItemLang.js b/src/views/inspection/maintainanceItemLang.js new file mode 100644 index 0000000..0318b67 --- /dev/null +++ b/src/views/inspection/maintainanceItemLang.js @@ -0,0 +1,100 @@ +export const messages = { + en: { + maintainanceItem: { + search: { + title: 'Search Conditions', + itemTitle: 'Please enter item name', + titleType: 'Please select title type' + }, + list: { + title: 'Inspection Items' + }, + table: { + itemTitle: 'Name', + titleType: 'Type', + seq: 'Sequence', + createTime: 'Create Time' + }, + titleType: { + single: 'Single Choice', + multiple: 'Multiple Choice', + shortAnswer: 'Short Answer' + }, + form: { + itemTitle: 'Name', + itemTitlePlaceholder: 'Please enter name', + itemTitleRequired: 'Name is required', + titleType: 'Type', + titleTypePlaceholder: 'Please select type', + titleTypeRequired: 'Type is required', + option: 'Option', + optionPlaceholder: 'Please enter option content', + optionRequired: 'Option content is required', + seq: 'Sequence', + seqPlaceholder: 'Please enter sequence', + seqRequired: 'Sequence is required', + seqNumber: 'Sequence must be a number' + }, + add: { + title: 'Add Item' + }, + edit: { + title: 'Edit Item' + }, + delete: { + title: 'Confirm Operation', + confirmText: 'Are you sure to delete this item?' + }, + fetchError: 'Failed to fetch data' + } + }, + zh: { + maintainanceItem: { + search: { + title: '查询条件', + itemTitle: '请输入问题名称', + titleType: '请选择题目类型' + }, + list: { + title: '检查项' + }, + table: { + itemTitle: '名称', + titleType: '类型', + seq: '顺序', + createTime: '创建时间' + }, + titleType: { + single: '单选', + multiple: '多选', + shortAnswer: '简答' + }, + form: { + itemTitle: '名称', + itemTitlePlaceholder: '请输入名称', + itemTitleRequired: '名称不能为空', + titleType: '类型', + titleTypePlaceholder: '请选择类型', + titleTypeRequired: '类型不能为空', + option: '选项', + optionPlaceholder: '请输入选项内容', + optionRequired: '选项内容不能为空', + seq: '顺序', + seqPlaceholder: '请输入顺序', + seqRequired: '顺序不能为空', + seqNumber: '顺序必须是数字' + }, + add: { + title: '添加检查项' + }, + edit: { + title: '修改检查项' + }, + delete: { + title: '确认操作', + confirmText: '确定删除该题目吗?' + }, + fetchError: '获取数据失败' + } + } +} \ No newline at end of file diff --git a/src/views/inspection/maintainanceItemList.vue b/src/views/inspection/maintainanceItemList.vue new file mode 100644 index 0000000..d539354 --- /dev/null +++ b/src/views/inspection/maintainanceItemList.vue @@ -0,0 +1,210 @@ + + + + + + {{ $t('maintainanceItem.search.title') }} + + + + + + + + + + + + + {{ $t('common.search') }} + + + {{ $t('common.reset') }} + + + + + + + + + {{ $t('maintainanceItem.list.title') }} + + + {{ $t('common.back') }} + + + {{ $t('common.document') }} + + + {{ $t('common.add') }} + + + + + + + + + {{ getTitleTypeName(scope.row.titleType) }} + + + + + + + + {{ $t('common.edit') }} + + + {{ $t('common.delete') }} + + + + + + + + + + + + + + + + + + \ No newline at end of file
{{ $t('maintainanceItem.delete.confirmText') }}
{{ form.itemTitle }}