Commit 27918d403d7fbf6854dd557d927e3ae81cc425dc
1 parent
050d35a0
v1.9 测试完成设备下的功能
Showing
20 changed files
with
383 additions
and
153 deletions
src/components/inspection/maintainanceTaskDetail.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog | |
| 3 | - :title="$t('maintainanceTaskDetail.title')" | |
| 4 | - :visible.sync="visible" | |
| 5 | - width="90%" | |
| 6 | - top="5vh" | |
| 7 | - @close="handleClose" | |
| 8 | - > | |
| 9 | - <el-table | |
| 10 | - :data="taskDetails" | |
| 11 | - border | |
| 12 | - style="width: 100%" | |
| 13 | - v-loading="loading" | |
| 14 | - > | |
| 15 | - <el-table-column | |
| 16 | - prop="machineName" | |
| 17 | - :label="$t('maintainanceTaskDetail.machineName')" | |
| 18 | - align="center" | |
| 19 | - /> | |
| 20 | - <el-table-column | |
| 21 | - prop="planName" | |
| 22 | - :label="$t('maintainanceTaskDetail.planName')" | |
| 23 | - align="center" | |
| 24 | - /> | |
| 25 | - <el-table-column | |
| 26 | - prop="standardName" | |
| 27 | - :label="$t('maintainanceTaskDetail.standardName')" | |
| 28 | - align="center" | |
| 29 | - /> | |
| 30 | - <el-table-column | |
| 31 | - prop="planUserName" | |
| 32 | - :label="$t('maintainanceTaskDetail.planUserName')" | |
| 33 | - align="center" | |
| 34 | - /> | |
| 35 | - <el-table-column | |
| 36 | - :label="$t('maintainanceTaskDetail.timeRange')" | |
| 37 | - align="center" | |
| 38 | - > | |
| 2 | + <el-dialog :title="$t('maintainanceTaskDetail.title')" :visible.sync="visible" width="90%" top="5vh" | |
| 3 | + @close="handleClose"> | |
| 4 | + <el-table :data="taskDetails" border style="width: 100%" v-loading="loading"> | |
| 5 | + <el-table-column prop="machineName" :label="$t('maintainanceTaskDetail.machineName')" align="center" /> | |
| 6 | + <el-table-column prop="planName" :label="$t('maintainanceTaskDetail.planName')" align="center" /> | |
| 7 | + <el-table-column prop="standardName" :label="$t('maintainanceTaskDetail.standardName')" align="center" /> | |
| 8 | + <el-table-column prop="planUserName" :label="$t('maintainanceTaskDetail.planUserName')" align="center" /> | |
| 9 | + <el-table-column :label="$t('maintainanceTaskDetail.timeRange')" align="center"> | |
| 39 | 10 | <template slot-scope="scope"> |
| 40 | 11 | {{ scope.row.planInsTime }}<br />{{ scope.row.planEndTime }} |
| 41 | 12 | </template> |
| 42 | 13 | </el-table-column> |
| 43 | - <el-table-column | |
| 44 | - :label="$t('maintainanceTaskDetail.actInsTime')" | |
| 45 | - align="center" | |
| 46 | - > | |
| 14 | + <el-table-column :label="$t('maintainanceTaskDetail.actInsTime')" align="center"> | |
| 47 | 15 | <template slot-scope="scope"> |
| 48 | 16 | {{ scope.row.inspectionTime || '-' }} |
| 49 | 17 | </template> |
| 50 | 18 | </el-table-column> |
| 51 | - <el-table-column | |
| 52 | - :label="$t('maintainanceTaskDetail.actUserName')" | |
| 53 | - align="center" | |
| 54 | - > | |
| 19 | + <el-table-column :label="$t('maintainanceTaskDetail.actUserName')" align="center"> | |
| 55 | 20 | <template slot-scope="scope"> |
| 56 | 21 | {{ scope.row.actUserName || '-' }} |
| 57 | 22 | </template> |
| 58 | 23 | </el-table-column> |
| 59 | - <el-table-column | |
| 60 | - prop="stateName" | |
| 61 | - :label="$t('maintainanceTaskDetail.stateName')" | |
| 62 | - align="center" | |
| 63 | - /> | |
| 64 | - <el-table-column | |
| 65 | - :label="$t('maintainanceTaskDetail.description')" | |
| 66 | - align="center" | |
| 67 | - > | |
| 24 | + <el-table-column prop="stateName" :label="$t('maintainanceTaskDetail.stateName')" align="center" /> | |
| 25 | + <el-table-column :label="$t('maintainanceTaskDetail.description')" align="center"> | |
| 68 | 26 | <template slot-scope="scope"> |
| 69 | 27 | <span class="text-primary"> |
| 70 | 28 | {{ scope.row.description || '-' }} |
| 71 | 29 | </span> |
| 72 | 30 | </template> |
| 73 | 31 | </el-table-column> |
| 74 | - <el-table-column | |
| 75 | - :label="$t('maintainanceTaskDetail.photos')" | |
| 76 | - align="center" | |
| 77 | - > | |
| 32 | + <el-table-column :label="$t('maintainanceTaskDetail.photos')" align="center"> | |
| 78 | 33 | <template slot-scope="scope"> |
| 79 | 34 | <div v-if="scope.row.photos && scope.row.photos.length > 0" class="photo-container"> |
| 80 | - <el-image | |
| 81 | - v-for="(photo, index) in scope.row.photos" | |
| 82 | - :key="index" | |
| 83 | - :src="photo.url" | |
| 84 | - :preview-src-list="scope.row.photos.map(p => p.url)" | |
| 85 | - style="width: 60px; height: 60px; margin-right: 5px;" | |
| 86 | - fit="cover" | |
| 87 | - /> | |
| 35 | + <el-image v-for="(photo, index) in scope.row.photos" :key="index" :src="photo.url" | |
| 36 | + :preview-src-list="scope.row.photos.map(p => p.url)" style="width: 60px; height: 60px; margin-right: 5px;" | |
| 37 | + fit="cover" /> | |
| 88 | 38 | </div> |
| 89 | 39 | <span v-else>-</span> |
| 90 | 40 | </template> |
| 91 | 41 | </el-table-column> |
| 92 | - <el-table-column | |
| 93 | - prop="createTime" | |
| 94 | - :label="$t('maintainanceTaskDetail.createTime')" | |
| 95 | - align="center" | |
| 96 | - /> | |
| 97 | - <el-table-column | |
| 98 | - :label="$t('maintainanceTaskDetail.operation')" | |
| 99 | - align="center" | |
| 100 | - width="100" | |
| 101 | - > | |
| 42 | + <el-table-column prop="createTime" :label="$t('maintainanceTaskDetail.createTime')" align="center" /> | |
| 43 | + <el-table-column :label="$t('common.operation')" align="center" width="100"> | |
| 102 | 44 | <template slot-scope="scope"> |
| 103 | - <el-button | |
| 104 | - type="text" | |
| 105 | - @click="handleViewDetail(scope.row.taskDetailId)" | |
| 106 | - > | |
| 107 | - {{ $t('maintainanceTaskDetail.viewDetail') }} | |
| 45 | + <el-button type="text" @click="handleViewDetail(scope.row.taskDetailId)"> | |
| 46 | + {{ $t('common.detail') }} | |
| 108 | 47 | </el-button> |
| 109 | 48 | </template> |
| 110 | 49 | </el-table-column> |
| 111 | 50 | </el-table> |
| 112 | 51 | |
| 113 | 52 | <div class="pagination-wrapper"> |
| 114 | - <el-pagination | |
| 115 | - :current-page="pagination.current" | |
| 116 | - :page-sizes="[10, 20, 30, 50]" | |
| 117 | - :page-size="pagination.size" | |
| 118 | - :total="pagination.total" | |
| 119 | - layout="total, sizes, prev, pager, next, jumper" | |
| 120 | - @size-change="handleSizeChange" | |
| 121 | - @current-change="handleCurrentChange" | |
| 122 | - /> | |
| 53 | + <el-pagination :current-page="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size" | |
| 54 | + :total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" | |
| 55 | + @current-change="handleCurrentChange" /> | |
| 123 | 56 | </div> |
| 124 | 57 | </el-dialog> |
| 125 | 58 | </template> |
| ... | ... | @@ -188,7 +121,7 @@ export default { |
| 188 | 121 | this.loadTaskDetails() |
| 189 | 122 | }, |
| 190 | 123 | handleViewDetail(taskDetailId) { |
| 191 | - window.open(`/#/pages/property/maintainanceTaskDetailView?taskDetailId=${taskDetailId}`, '_blank') | |
| 124 | + window.open(`/#/views/inspection/maintainanceTaskDetailView?taskDetailId=${taskDetailId}`, '_blank') | |
| 192 | 125 | } |
| 193 | 126 | } |
| 194 | 127 | } | ... | ... |
src/components/machine/addPrinterRule.vue
| ... | ... | @@ -7,11 +7,11 @@ |
| 7 | 7 | <el-form-item :label="$t('printerRule.remark')" prop="remark"> |
| 8 | 8 | <el-input type="textarea" v-model="form.remark" :placeholder="$t('printerRule.remarkPlaceholder')"></el-input> |
| 9 | 9 | </el-form-item> |
| 10 | - <el-form-item :label="$t('printerRule.state')" prop="state"> | |
| 10 | + <!-- <el-form-item :label="$t('printerRule.state')" prop="state"> | |
| 11 | 11 | <el-select v-model="form.state" style="width:100%"> |
| 12 | 12 | <el-option v-for="item in stateOptions" :key="item.statusCd" :label="item.name" :value="item.statusCd"></el-option> |
| 13 | 13 | </el-select> |
| 14 | - </el-form-item> | |
| 14 | + </el-form-item> --> | |
| 15 | 15 | </el-form> |
| 16 | 16 | |
| 17 | 17 | <span slot="footer" class="dialog-footer"> |
| ... | ... | @@ -51,12 +51,11 @@ export default { |
| 51 | 51 | }, |
| 52 | 52 | created() { |
| 53 | 53 | this.form.communityId = getCommunityId() |
| 54 | - this.getStateOptions() | |
| 55 | 54 | }, |
| 56 | 55 | methods: { |
| 57 | 56 | async getStateOptions() { |
| 58 | 57 | try { |
| 59 | - const data = await getDict('printer_rule', 'state') | |
| 58 | + const {data} = await getDict('printer_rule', 'state') | |
| 60 | 59 | this.stateOptions = data |
| 61 | 60 | } catch (error) { |
| 62 | 61 | console.error('获取状态字典失败:', error) |
| ... | ... | @@ -65,6 +64,8 @@ export default { |
| 65 | 64 | open() { |
| 66 | 65 | this.visible = true |
| 67 | 66 | this.resetForm() |
| 67 | + this.getStateOptions() | |
| 68 | + | |
| 68 | 69 | }, |
| 69 | 70 | handleClose() { |
| 70 | 71 | this.resetForm() | ... | ... |
src/components/machine/printerRuleFees.vue
| ... | ... | @@ -2,19 +2,16 @@ |
| 2 | 2 | <div class="printer-rule-fees"> |
| 3 | 3 | |
| 4 | 4 | <el-form :inline="true" :model="searchForm" class="search-form"> |
| 5 | - <el-form-item :label="$t('printerRuleFees.id')"> | |
| 5 | + <el-form-item > | |
| 6 | 6 | <el-input v-model="searchForm.prfId" :placeholder="$t('printerRuleFees.idPlaceholder')" clearable /> |
| 7 | 7 | </el-form-item> |
| 8 | - <el-form-item :label="$t('printerRuleFees.feeName')"> | |
| 8 | + <el-form-item > | |
| 9 | 9 | <el-input v-model="searchForm.feeConfigName" :placeholder="$t('printerRuleFees.feeNamePlaceholder')" clearable /> |
| 10 | 10 | </el-form-item> |
| 11 | 11 | <el-form-item> |
| 12 | 12 | <el-button type="primary" @click="handleSearch"> |
| 13 | 13 | {{ $t('common.search') }} |
| 14 | 14 | </el-button> |
| 15 | - <el-button @click="handleReset"> | |
| 16 | - {{ $t('common.reset') }} | |
| 17 | - </el-button> | |
| 18 | 15 | <el-button type="primary" @click="openAddModal"> |
| 19 | 16 | <i class="el-icon-plus"></i> |
| 20 | 17 | {{ $t('common.add') }} | ... | ... |
src/components/machine/printerRuleMachine.vue
| ... | ... | @@ -2,10 +2,10 @@ |
| 2 | 2 | <div class="printer-rule-machine"> |
| 3 | 3 | |
| 4 | 4 | <el-form :inline="true" :model="searchForm" class="search-form"> |
| 5 | - <el-form-item :label="$t('printerRuleMachine.id')"> | |
| 5 | + <el-form-item > | |
| 6 | 6 | <el-input v-model="searchForm.prmId" :placeholder="$t('printerRuleMachine.idPlaceholder')" clearable /> |
| 7 | 7 | </el-form-item> |
| 8 | - <el-form-item :label="$t('printerRuleMachine.machineName')"> | |
| 8 | + <el-form-item > | |
| 9 | 9 | <el-input v-model="searchForm.machineName" :placeholder="$t('printerRuleMachine.machineNamePlaceholder')" |
| 10 | 10 | clearable /> |
| 11 | 11 | </el-form-item> |
| ... | ... | @@ -13,9 +13,6 @@ |
| 13 | 13 | <el-button type="primary" @click="handleSearch"> |
| 14 | 14 | {{ $t('common.search') }} |
| 15 | 15 | </el-button> |
| 16 | - <el-button @click="handleReset"> | |
| 17 | - {{ $t('common.reset') }} | |
| 18 | - </el-button> | |
| 19 | 16 | <el-button type="primary" @click="openAddModal"> |
| 20 | 17 | <i class="el-icon-plus"></i> |
| 21 | 18 | {{ $t('common.add') }} | ... | ... |
src/components/machine/printerRuleRepair.vue
| ... | ... | @@ -2,10 +2,10 @@ |
| 2 | 2 | <div class="printer-rule-repair"> |
| 3 | 3 | |
| 4 | 4 | <el-form :inline="true" :model="searchForm" class="search-form"> |
| 5 | - <el-form-item :label="$t('printerRuleRepair.id')"> | |
| 5 | + <el-form-item > | |
| 6 | 6 | <el-input v-model="searchForm.prrId" :placeholder="$t('printerRuleRepair.idPlaceholder')" clearable /> |
| 7 | 7 | </el-form-item> |
| 8 | - <el-form-item :label="$t('printerRuleRepair.repairType')"> | |
| 8 | + <el-form-item > | |
| 9 | 9 | <el-input v-model="searchForm.repairTypeName" :placeholder="$t('printerRuleRepair.repairTypePlaceholder')" |
| 10 | 10 | clearable /> |
| 11 | 11 | </el-form-item> |
| ... | ... | @@ -13,9 +13,6 @@ |
| 13 | 13 | <el-button type="primary" @click="handleSearch"> |
| 14 | 14 | {{ $t('common.search') }} |
| 15 | 15 | </el-button> |
| 16 | - <el-button @click="handleReset"> | |
| 17 | - {{ $t('common.reset') }} | |
| 18 | - </el-button> | |
| 19 | 16 | <el-button type="primary" @click="openAddModal"> |
| 20 | 17 | <i class="el-icon-plus"></i> |
| 21 | 18 | {{ $t('common.add') }} | ... | ... |
src/components/staff/AStaffDetailMaintainance.vue
| ... | ... | @@ -69,7 +69,7 @@ |
| 69 | 69 | <el-table-column prop="createTime" :label="$t('staffDetailMaintainance.createTime')" align="center" /> |
| 70 | 70 | <el-table-column :label="$t('common.operation')" align="center"> |
| 71 | 71 | <template slot-scope="scope"> |
| 72 | - <el-link :href="`/views/property/maintainanceTaskDetailView?taskDetailId=${scope.row.taskDetailId}`"> | |
| 72 | + <el-link :href="`/views/inspection/maintainanceTaskDetailView?taskDetailId=${scope.row.taskDetailId}`"> | |
| 73 | 73 | {{ $t('common.detail') }} |
| 74 | 74 | </el-link> |
| 75 | 75 | </template> | ... | ... |
src/i18n/inspectionI18n.js
| ... | ... | @@ -7,6 +7,7 @@ import { messages as editMaintainancePlanMessages } from '../views/inspection/ed |
| 7 | 7 | import { messages as maintainancePlanMachineMessages } from '../views/inspection/maintainancePlanMachineLang' |
| 8 | 8 | import { messages as maintainanceTaskDetailsMessages } from '../views/inspection/maintainanceTaskDetailsLang' |
| 9 | 9 | import { messages as maintainanceTaskManageMessages } from '../views/inspection/maintainanceTaskManageLang' |
| 10 | +import { messages as maintainanceTaskDetailViewMessages } from '../views/inspection/maintainanceTaskDetailViewLang' | |
| 10 | 11 | import { messages as adminInspectionPlanMessages } from '../views/inspection/adminInspectionPlanLang' |
| 11 | 12 | import { messages as aInspectionPlanDetailMessages } from '../views/inspection/aInspectionPlanDetailLang' |
| 12 | 13 | import { messages as adminInspectionTaskMessages } from '../views/inspection/adminInspectionTaskLang' |
| ... | ... | @@ -36,6 +37,7 @@ export const messages = { |
| 36 | 37 | ...maintainancePlanMachineMessages.en, |
| 37 | 38 | ...maintainanceTaskDetailsMessages.en, |
| 38 | 39 | ...maintainanceTaskManageMessages.en, |
| 40 | + ...maintainanceTaskDetailViewMessages.en, | |
| 39 | 41 | ...inspectionPointMessages.en, |
| 40 | 42 | ...inspectionRouteMessages.en, |
| 41 | 43 | ...inspectionItemManageMessages.en, |
| ... | ... | @@ -60,6 +62,7 @@ export const messages = { |
| 60 | 62 | ...maintainancePlanMachineMessages.zh, |
| 61 | 63 | ...maintainanceTaskDetailsMessages.zh, |
| 62 | 64 | ...maintainanceTaskManageMessages.zh, |
| 65 | + ...maintainanceTaskDetailViewMessages.zh, | |
| 63 | 66 | ...inspectionPointMessages.zh, |
| 64 | 67 | ...inspectionRouteMessages.zh, |
| 65 | 68 | ...inspectionItemManageMessages.zh, | ... | ... |
src/router/inspectionRouter.js
| ... | ... | @@ -100,6 +100,11 @@ export default [ |
| 100 | 100 | component: () => import('@/views/inspection/maintainanceTaskDetailsList.vue') |
| 101 | 101 | }, |
| 102 | 102 | { |
| 103 | + path: '/views/inspection/maintainanceTaskDetailView', | |
| 104 | + name: '/views/inspection/maintainanceTaskDetailView', | |
| 105 | + component: () => import('@/views/inspection/maintainanceTaskDetailView.vue') | |
| 106 | + }, | |
| 107 | + { | |
| 103 | 108 | path: '/pages/property/maintainanceTaskManage', |
| 104 | 109 | name: '/pages/property/maintainanceTaskManage', |
| 105 | 110 | component: () => import('@/views/inspection/maintainanceTaskManageList.vue') | ... | ... |
src/views/dev/cacheList.vue
| 1 | 1 | <template> |
| 2 | - <div class="cache-container padding"> | |
| 2 | + <div class="cache-container "> | |
| 3 | 3 | <div class="list-wrapper"> |
| 4 | 4 | <div class="list-header"> |
| 5 | 5 | <div class="list-title">{{ $t('cache.list.title') }}</div> |
| ... | ... | @@ -118,7 +118,7 @@ export default { |
| 118 | 118 | |
| 119 | 119 | <style lang="scss" scoped> |
| 120 | 120 | .cache-container { |
| 121 | - padding: 0; | |
| 121 | + padding: 20px; | |
| 122 | 122 | margin: 0; |
| 123 | 123 | |
| 124 | 124 | .search-wrapper { | ... | ... |
src/views/dev/taskList.vue
| 1 | 1 | <template> |
| 2 | - <div class="task-container"> | |
| 2 | + <div class="task-container "> | |
| 3 | 3 | <!-- 查询条件 --> |
| 4 | 4 | <div class="search-wrapper"> |
| 5 | 5 | <div class="search-title">{{ $t('task.search.title') }}</div> |
| ... | ... | @@ -177,7 +177,7 @@ export default { |
| 177 | 177 | |
| 178 | 178 | <style lang="scss" scoped> |
| 179 | 179 | .task-container { |
| 180 | - padding: 0; | |
| 180 | + padding: 20px; | |
| 181 | 181 | margin: 0; |
| 182 | 182 | |
| 183 | 183 | .search-wrapper { | ... | ... |
src/views/inspection/maintainanceItemList.vue
| ... | ... | @@ -32,9 +32,9 @@ |
| 32 | 32 | <div slot="header" class="flex justify-between"> |
| 33 | 33 | <span>{{ $t('maintainanceItem.list.title') }}</span> |
| 34 | 34 | <div style="float: right;"> |
| 35 | - <el-button type="primary" size="small" @click="handleGoBack"> | |
| 35 | + <!-- <el-button type="primary" size="small" @click="handleGoBack"> | |
| 36 | 36 | {{ $t('common.back') }} |
| 37 | - </el-button> | |
| 37 | + </el-button> --> | |
| 38 | 38 | <!-- <el-button type="primary" size="small" @click="handleShowDocument"> |
| 39 | 39 | {{ $t('common.document') }} |
| 40 | 40 | </el-button> --> | ... | ... |
src/views/inspection/maintainanceTaskDetailView.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div class="maintainance-task-detail-view"> | |
| 3 | + <el-card class="detail-card"> | |
| 4 | + <div slot="header" class="flex justify-between"> | |
| 5 | + <span>{{ $t('maintainanceTaskDetailView.title') }}</span> | |
| 6 | + <el-button type="primary" size="mini" @click="goBack"> | |
| 7 | + <i class="el-icon-back"></i> | |
| 8 | + {{ $t('maintainanceTaskDetailView.back') }} | |
| 9 | + </el-button> | |
| 10 | + </div> | |
| 11 | + | |
| 12 | + <el-card shadow="never" class="info-card text-left"> | |
| 13 | + <div slot="header" class="flex justify-between"> | |
| 14 | + <span>{{ $t('maintainanceTaskDetailView.basicInfo') }}</span> | |
| 15 | + </div> | |
| 16 | + | |
| 17 | + <el-row :gutter="24" class=""> | |
| 18 | + <el-col :span="8"> | |
| 19 | + <div class="info-item"> | |
| 20 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.taskDetailId') }}:</span> | |
| 21 | + <span>{{ detail.taskDetailId || '-' }}</span> | |
| 22 | + </div> | |
| 23 | + </el-col> | |
| 24 | + <el-col :span="8"> | |
| 25 | + <div class="info-item"> | |
| 26 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.machineName') }}:</span> | |
| 27 | + <span>{{ detail.machineName || '-' }}</span> | |
| 28 | + </div> | |
| 29 | + </el-col> | |
| 30 | + <el-col :span="8"> | |
| 31 | + <div class="info-item"> | |
| 32 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.planUserName') }}:</span> | |
| 33 | + <span>{{ detail.planUserName || '-' }}</span> | |
| 34 | + </div> | |
| 35 | + </el-col> | |
| 36 | + </el-row> | |
| 37 | + | |
| 38 | + <el-row :gutter="24"> | |
| 39 | + <el-col :span="8"> | |
| 40 | + <div class="info-item"> | |
| 41 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.planTime') }}:</span> | |
| 42 | + <span>{{ formatPlanTime(detail.planInsTime, detail.planEndTime) }}</span> | |
| 43 | + </div> | |
| 44 | + </el-col> | |
| 45 | + <el-col :span="8"> | |
| 46 | + <div class="info-item"> | |
| 47 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.actUserName') }}:</span> | |
| 48 | + <span>{{ detail.actUserName || '-' }}</span> | |
| 49 | + </div> | |
| 50 | + </el-col> | |
| 51 | + <el-col :span="8"> | |
| 52 | + <div class="info-item"> | |
| 53 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.inspectionTime') }}:</span> | |
| 54 | + <span>{{ detail.inspectionTime || '-' }}</span> | |
| 55 | + </div> | |
| 56 | + </el-col> | |
| 57 | + </el-row> | |
| 58 | + | |
| 59 | + <el-row :gutter="24"> | |
| 60 | + <el-col :span="8"> | |
| 61 | + <div class="info-item"> | |
| 62 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.stateName') }}:</span> | |
| 63 | + <span>{{ detail.stateName || '-' }}</span> | |
| 64 | + </div> | |
| 65 | + </el-col> | |
| 66 | + <el-col :span="8"> | |
| 67 | + <div class="info-item"> | |
| 68 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.planName') }}:</span> | |
| 69 | + <span>{{ detail.planName || '-' }}</span> | |
| 70 | + </div> | |
| 71 | + </el-col> | |
| 72 | + <el-col :span="8"> | |
| 73 | + <div class="info-item"> | |
| 74 | + <span class="label">{{ $t('maintainanceTaskDetailView.fields.standardName') }}:</span> | |
| 75 | + <span>{{ detail.standardName || '-' }}</span> | |
| 76 | + </div> | |
| 77 | + </el-col> | |
| 78 | + </el-row> | |
| 79 | + </el-card> | |
| 80 | + | |
| 81 | + <el-card shadow="never" class="info-card text-left"> | |
| 82 | + <div slot="header" class="flex justify-between"> | |
| 83 | + <span>{{ $t('maintainanceTaskDetailView.photosTitle') }}</span> | |
| 84 | + </div> | |
| 85 | + | |
| 86 | + <div v-if="photoList.length" class="photo-list"> | |
| 87 | + <el-image | |
| 88 | + v-for="(photo, index) in photoList" | |
| 89 | + :key="index" | |
| 90 | + :src="photo" | |
| 91 | + :preview-src-list="photoList" | |
| 92 | + fit="cover" | |
| 93 | + class="photo-item" | |
| 94 | + /> | |
| 95 | + </div> | |
| 96 | + <div v-else class="empty-text">{{ $t('maintainanceTaskDetailView.noPhotos') }}</div> | |
| 97 | + </el-card> | |
| 98 | + | |
| 99 | + <el-card shadow="never" class="info-card text-left"> | |
| 100 | + <div slot="header" class="flex justify-between"> | |
| 101 | + <span>{{ $t('maintainanceTaskDetailView.descriptionTitle') }}</span> | |
| 102 | + </div> | |
| 103 | + <div class="description"> | |
| 104 | + {{ detail.description || $t('maintainanceTaskDetailView.noDescription') }} | |
| 105 | + </div> | |
| 106 | + </el-card> | |
| 107 | + </el-card> | |
| 108 | + | |
| 109 | + <view-image ref="viewImage" /> | |
| 110 | + </div> | |
| 111 | +</template> | |
| 112 | + | |
| 113 | +<script> | |
| 114 | +import { getMaintainanceTaskDetailList } from '@/api/inspection/maintainanceTaskDetailsApi' | |
| 115 | +import ViewImage from '@/components/system/viewImage' | |
| 116 | +import { messages } from './maintainanceTaskDetailViewLang' | |
| 117 | + | |
| 118 | +export default { | |
| 119 | + name: 'MaintainanceTaskDetailView', | |
| 120 | + components: { | |
| 121 | + ViewImage | |
| 122 | + }, | |
| 123 | + i18n: { | |
| 124 | + messages | |
| 125 | + }, | |
| 126 | + data() { | |
| 127 | + return { | |
| 128 | + detail: { | |
| 129 | + taskDetailId: '', | |
| 130 | + machineName: '', | |
| 131 | + planName: '', | |
| 132 | + standardName: '', | |
| 133 | + planUserName: '', | |
| 134 | + planInsTime: '', | |
| 135 | + planEndTime: '', | |
| 136 | + actUserName: '', | |
| 137 | + inspectionTime: '', | |
| 138 | + stateName: '', | |
| 139 | + description: '', | |
| 140 | + photos: [] | |
| 141 | + }, | |
| 142 | + loading: false | |
| 143 | + } | |
| 144 | + }, | |
| 145 | + computed: { | |
| 146 | + photoList() { | |
| 147 | + if (!this.detail.photos || !this.detail.photos.length) { | |
| 148 | + return [] | |
| 149 | + } | |
| 150 | + return this.detail.photos.map(photo => photo.url).filter(Boolean) | |
| 151 | + } | |
| 152 | + }, | |
| 153 | + created() { | |
| 154 | + this.fetchDetail() | |
| 155 | + }, | |
| 156 | + methods: { | |
| 157 | + async fetchDetail() { | |
| 158 | + const taskDetailId = this.$route.query.taskDetailId | |
| 159 | + if (!taskDetailId) { | |
| 160 | + return | |
| 161 | + } | |
| 162 | + try { | |
| 163 | + this.loading = true | |
| 164 | + const params = { | |
| 165 | + page: 1, | |
| 166 | + row: 1, | |
| 167 | + taskDetailId | |
| 168 | + } | |
| 169 | + const res = await getMaintainanceTaskDetailList(params) | |
| 170 | + if (res && res.data && res.data.length) { | |
| 171 | + this.detail = { ...this.detail, ...res.data[0] } | |
| 172 | + } | |
| 173 | + } catch (error) { | |
| 174 | + this.$message.error(this.$t('maintainanceTaskDetailView.fetchError')) | |
| 175 | + } finally { | |
| 176 | + this.loading = false | |
| 177 | + } | |
| 178 | + }, | |
| 179 | + formatPlanTime(start, end) { | |
| 180 | + if (!start && !end) { | |
| 181 | + return '-' | |
| 182 | + } | |
| 183 | + if (!start) { | |
| 184 | + return end | |
| 185 | + } | |
| 186 | + if (!end) { | |
| 187 | + return start | |
| 188 | + } | |
| 189 | + return `${start} ~ ${end}` | |
| 190 | + }, | |
| 191 | + goBack() { | |
| 192 | + if (window.history.length > 1) { | |
| 193 | + this.$router.back() | |
| 194 | + } else { | |
| 195 | + this.$router.push({ path: '/pages/property/maintainanceTaskDetails' }) | |
| 196 | + } | |
| 197 | + } | |
| 198 | + } | |
| 199 | +} | |
| 200 | +</script> | |
| 201 | + | |
| 202 | +<style lang="scss" scoped> | |
| 203 | +.maintainance-task-detail-view { | |
| 204 | + padding: 20px; | |
| 205 | + | |
| 206 | + .detail-card { | |
| 207 | + .card-header { | |
| 208 | + display: flex; | |
| 209 | + align-items: center; | |
| 210 | + justify-content: space-between; | |
| 211 | + } | |
| 212 | + | |
| 213 | + .info-card { | |
| 214 | + margin-bottom: 20px; | |
| 215 | + } | |
| 216 | + | |
| 217 | + .section-title { | |
| 218 | + font-weight: 600; | |
| 219 | + } | |
| 220 | + | |
| 221 | + .info-item { | |
| 222 | + margin-bottom: 16px; | |
| 223 | + .label { | |
| 224 | + color: #606266; | |
| 225 | + margin-right: 4px; | |
| 226 | + } | |
| 227 | + } | |
| 228 | + | |
| 229 | + .photo-list { | |
| 230 | + display: flex; | |
| 231 | + flex-wrap: wrap; | |
| 232 | + gap: 12px; | |
| 233 | + | |
| 234 | + .photo-item { | |
| 235 | + width: 120px; | |
| 236 | + height: 120px; | |
| 237 | + border-radius: 4px; | |
| 238 | + overflow: hidden; | |
| 239 | + border: 1px solid #ebeef5; | |
| 240 | + } | |
| 241 | + } | |
| 242 | + | |
| 243 | + .empty-text { | |
| 244 | + color: #999; | |
| 245 | + } | |
| 246 | + | |
| 247 | + .description { | |
| 248 | + min-height: 80px; | |
| 249 | + line-height: 1.6; | |
| 250 | + white-space: pre-wrap; | |
| 251 | + } | |
| 252 | + } | |
| 253 | +} | |
| 254 | +</style> | |
| 255 | + | ... | ... |
src/views/inspection/maintainanceTaskDetailViewLang.js
0 → 100644
| 1 | +export const messages = { | |
| 2 | + en: { | |
| 3 | + maintainanceTaskDetailView: { | |
| 4 | + title: 'Maintenance Detail', | |
| 5 | + basicInfo: 'Basic Information', | |
| 6 | + photosTitle: 'Maintenance Photos', | |
| 7 | + descriptionTitle: 'Maintenance Description', | |
| 8 | + noPhotos: 'No photos available', | |
| 9 | + noDescription: 'No description', | |
| 10 | + back: 'Back', | |
| 11 | + fields: { | |
| 12 | + taskDetailId: 'ID', | |
| 13 | + machineName: 'Equipment Name', | |
| 14 | + planUserName: 'Planned Maintainer', | |
| 15 | + planTime: 'Planned Maintenance Time', | |
| 16 | + actUserName: 'Actual Maintainer', | |
| 17 | + inspectionTime: 'Actual Maintenance Time', | |
| 18 | + stateName: 'Status', | |
| 19 | + planName: 'Plan', | |
| 20 | + standardName: 'Maintenance Standard' | |
| 21 | + }, | |
| 22 | + fetchError: 'Failed to load maintenance detail' | |
| 23 | + } | |
| 24 | + }, | |
| 25 | + zh: { | |
| 26 | + maintainanceTaskDetailView: { | |
| 27 | + title: '保养详情', | |
| 28 | + basicInfo: '基本信息', | |
| 29 | + photosTitle: '保养图片', | |
| 30 | + descriptionTitle: '保养说明', | |
| 31 | + noPhotos: '暂无保养图片', | |
| 32 | + noDescription: '暂无保养说明', | |
| 33 | + back: '返回', | |
| 34 | + fields: { | |
| 35 | + taskDetailId: '编码', | |
| 36 | + machineName: '设备名称', | |
| 37 | + planUserName: '计划保养人', | |
| 38 | + planTime: '计划保养时间', | |
| 39 | + actUserName: '实际保养人', | |
| 40 | + inspectionTime: '实际保养时间', | |
| 41 | + stateName: '状态', | |
| 42 | + planName: '计划', | |
| 43 | + standardName: '保养标准' | |
| 44 | + }, | |
| 45 | + fetchError: '获取保养详情失败' | |
| 46 | + } | |
| 47 | + } | |
| 48 | +} | |
| 49 | + | ... | ... |
src/views/inspection/maintainanceTaskDetailsList.vue
| ... | ... | @@ -25,19 +25,13 @@ |
| 25 | 25 | </el-select> |
| 26 | 26 | </el-col> |
| 27 | 27 | <el-col :span="4"> |
| 28 | - <el-input v-model="searchForm.taskDetailId" :placeholder="$t('maintainanceTaskDetails.search.taskDetailId')" | |
| 29 | - clearable /> | |
| 30 | - </el-col> | |
| 31 | - <el-col :span="4"> | |
| 32 | 28 | <el-select v-model="searchForm.taskState" :placeholder="$t('maintainanceTaskDetails.search.taskState')" |
| 33 | 29 | style="width:100%"> |
| 34 | 30 | <el-option :label="$t('maintainanceTaskDetails.search.selectState')" value="" /> |
| 35 | 31 | <el-option v-for="(item, index) in taskStateList" :key="index" :label="item.name" :value="item.statusCd" /> |
| 36 | 32 | </el-select> |
| 37 | 33 | </el-col> |
| 38 | - </el-row> | |
| 39 | - <el-row :gutter="20" style="margin-top:20px"> | |
| 40 | - <el-col :span="24" style="text-align:right"> | |
| 34 | + <el-col :span="4" style="text-align:right"> | |
| 41 | 35 | <el-button type="primary" @click="handleSearch"> |
| 42 | 36 | <i class="el-icon-search"></i> |
| 43 | 37 | {{ $t('common.search') }} |
| ... | ... | @@ -219,7 +213,7 @@ export default { |
| 219 | 213 | }, |
| 220 | 214 | handleDetail(taskDetailId) { |
| 221 | 215 | this.$router.push({ |
| 222 | - path: '/inspection/maintainanceTaskDetailView', | |
| 216 | + path: '/views/inspection/maintainanceTaskDetailView', | |
| 223 | 217 | query: { taskDetailId } |
| 224 | 218 | }) |
| 225 | 219 | }, | ... | ... |
src/views/inspection/maintainanceTaskManageLang.js
| ... | ... | @@ -50,7 +50,10 @@ export const messages = { |
| 50 | 50 | photos: 'Maintenance Photos', |
| 51 | 51 | createTime: 'Create Time', |
| 52 | 52 | viewDetail: 'View Details', |
| 53 | - fetchError: 'Failed to get task details' | |
| 53 | + fetchError: 'Failed to get task details', | |
| 54 | + timeRange: 'Start/End Time', | |
| 55 | + actInsTime: 'Actual Maintenance Time', | |
| 56 | + planName: 'Maintenance Plan', | |
| 54 | 57 | }, |
| 55 | 58 | deleteMaintainanceTask: { |
| 56 | 59 | title: 'Confirm Operation', |
| ... | ... | @@ -128,7 +131,10 @@ export const messages = { |
| 128 | 131 | photos: '保养照片', |
| 129 | 132 | createTime: '创建时间', |
| 130 | 133 | viewDetail: '详情', |
| 131 | - fetchError: '获取任务详情失败' | |
| 134 | + fetchError: '获取任务详情失败', | |
| 135 | + timeRange: '开始/结束时间', | |
| 136 | + actInsTime: '实际保养时间', | |
| 137 | + planName: '保养计划', | |
| 132 | 138 | }, |
| 133 | 139 | deleteMaintainanceTask: { |
| 134 | 140 | title: '请确认您的操作', | ... | ... |
src/views/inspection/maintainanceTaskManageList.vue
| ... | ... | @@ -7,14 +7,16 @@ |
| 7 | 7 | </div> |
| 8 | 8 | <el-row :gutter="20"> |
| 9 | 9 | <el-col :span="4"> |
| 10 | - <el-input v-model="searchForm.planUserName" :placeholder="$t('maintainanceTaskManage.planUserNamePlaceholder')" | |
| 11 | - clearable /> | |
| 10 | + <el-input v-model="searchForm.planUserName" | |
| 11 | + :placeholder="$t('maintainanceTaskManage.planUserNamePlaceholder')" clearable /> | |
| 12 | 12 | </el-col> |
| 13 | 13 | <el-col :span="4"> |
| 14 | - <el-date-picker v-model="searchForm.startTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('maintainanceTaskManage.startTimePlaceholder')" style="width: 100%" /> | |
| 14 | + <el-date-picker v-model="searchForm.startTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" | |
| 15 | + :placeholder="$t('maintainanceTaskManage.startTimePlaceholder')" style="width: 100%" /> | |
| 15 | 16 | </el-col> |
| 16 | 17 | <el-col :span="4"> |
| 17 | - <el-date-picker v-model="searchForm.endTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" :placeholder="$t('maintainanceTaskManage.endTimePlaceholder')" style="width: 100%" /> | |
| 18 | + <el-date-picker v-model="searchForm.endTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" | |
| 19 | + :placeholder="$t('maintainanceTaskManage.endTimePlaceholder')" style="width: 100%" /> | |
| 18 | 20 | </el-col> |
| 19 | 21 | <el-col :span="4"> |
| 20 | 22 | <el-input v-model="searchForm.planName" :placeholder="$t('maintainanceTaskManage.planNamePlaceholder')" | ... | ... |
src/views/machine/equipmentAccountList.vue
| ... | ... | @@ -19,20 +19,17 @@ |
| 19 | 19 | <el-card class="box-card text-left"> |
| 20 | 20 | <div slot="header" class=""> |
| 21 | 21 | <span>{{ $t('equipmentAccount.searchCondition') }}</span> |
| 22 | - <el-button type="text" style="float: right;" @click="toggleMoreCondition"> | |
| 23 | - {{ equipmentAccountInfo.moreCondition ? $t('equipmentAccount.hide') : $t('equipmentAccount.more') }} | |
| 24 | - </el-button> | |
| 25 | 22 | </div> |
| 26 | 23 | <el-form :inline="true" :model="equipmentAccountInfo.conditions" class="search-form"> |
| 27 | - <el-form-item :label="$t('equipmentAccount.machineName')"> | |
| 24 | + <el-form-item > | |
| 28 | 25 | <el-input v-model.trim="equipmentAccountInfo.conditions.machineName" |
| 29 | 26 | :placeholder="$t('equipmentAccount.machineNamePlaceholder')"></el-input> |
| 30 | 27 | </el-form-item> |
| 31 | - <el-form-item :label="$t('equipmentAccount.machineCode')"> | |
| 28 | + <el-form-item > | |
| 32 | 29 | <el-input v-model.trim="equipmentAccountInfo.conditions.machineCode" |
| 33 | 30 | :placeholder="$t('equipmentAccount.machineCodePlaceholder')"></el-input> |
| 34 | 31 | </el-form-item> |
| 35 | - <el-form-item :label="$t('equipmentAccount.state')"> | |
| 32 | + <el-form-item > | |
| 36 | 33 | <el-select v-model="equipmentAccountInfo.conditions.state" style="width:100%"> |
| 37 | 34 | <el-option :label="$t('equipmentAccount.selectState')" value=""></el-option> |
| 38 | 35 | <el-option v-for="item in equipmentAccountInfo.useStatus" :key="item.statusCd" :label="item.name" |
| ... | ... | @@ -40,15 +37,7 @@ |
| 40 | 37 | </el-option> |
| 41 | 38 | </el-select> |
| 42 | 39 | </el-form-item> |
| 43 | - <el-form-item> | |
| 44 | - <el-button type="primary" @click="queryEquipmentAccountMethod">{{ $t('common.search') }}</el-button> | |
| 45 | - <el-button @click="resetEquipmentAccountMethod">{{ $t('common.reset') }}</el-button> | |
| 46 | - </el-form-item> | |
| 47 | - </el-form> | |
| 48 | - | |
| 49 | - <el-form v-show="equipmentAccountInfo.moreCondition" :inline="true" :model="equipmentAccountInfo.conditions" | |
| 50 | - class="search-form"> | |
| 51 | - <el-form-item :label="$t('equipmentAccount.importanceLevel')"> | |
| 40 | + <el-form-item > | |
| 52 | 41 | <el-select v-model="equipmentAccountInfo.conditions.importanceLevel" style="width:100%"> |
| 53 | 42 | <el-option :label="$t('equipmentAccount.selectImportanceLevel')" value=""></el-option> |
| 54 | 43 | <el-option v-for="item in equipmentAccountInfo.importanceLevels" :key="item.statusCd" :label="item.name" |
| ... | ... | @@ -56,7 +45,12 @@ |
| 56 | 45 | </el-option> |
| 57 | 46 | </el-select> |
| 58 | 47 | </el-form-item> |
| 48 | + <el-form-item> | |
| 49 | + <el-button type="primary" @click="queryEquipmentAccountMethod">{{ $t('common.search') }}</el-button> | |
| 50 | + <el-button @click="resetEquipmentAccountMethod">{{ $t('common.reset') }}</el-button> | |
| 51 | + </el-form-item> | |
| 59 | 52 | </el-form> |
| 53 | + | |
| 60 | 54 | </el-card> |
| 61 | 55 | |
| 62 | 56 | <el-card class="box-card margin-top"> |
| ... | ... | @@ -269,7 +263,7 @@ export default { |
| 269 | 263 | } |
| 270 | 264 | |
| 271 | 265 | .search-form { |
| 272 | - margin-bottom: 20px; | |
| 266 | + margin-bottom: 0px; | |
| 273 | 267 | } |
| 274 | 268 | |
| 275 | 269 | .pagination-wrapper { | ... | ... |
src/views/machine/machinePrinterManageList.vue
src/views/machine/machineTranslateManageList.vue
| ... | ... | @@ -4,9 +4,9 @@ |
| 4 | 4 | <el-card class="search-wrapper"> |
| 5 | 5 | <div slot="header" class="flex justify-between"> |
| 6 | 6 | <span>{{ $t('machineTranslateManage.search.title') }}</span> |
| 7 | - <el-button style="float: right; padding: 3px 0" type="text" @click="toggleMoreCondition"> | |
| 7 | + <!-- <el-button style="float: right; padding: 3px 0" type="text" @click="toggleMoreCondition"> | |
| 8 | 8 | {{ machineTranslateManageInfo.moreCondition ? $t('common.hide') : $t('common.more') }} |
| 9 | - </el-button> | |
| 9 | + </el-button> --> | |
| 10 | 10 | </div> |
| 11 | 11 | <el-row :gutter="20"> |
| 12 | 12 | <el-col :span="6"> | ... | ... |
src/views/machine/printerRuleList.vue
| ... | ... | @@ -7,7 +7,7 @@ |
| 7 | 7 | <el-col :span="20"> |
| 8 | 8 | <el-card class="box-card"> |
| 9 | 9 | <div slot="header" class="text-left"> |
| 10 | - <h5>{{ printerRuleInfo.curPrinterRule.ruleName }}</h5> | |
| 10 | + <span>{{ printerRuleInfo.curPrinterRule.ruleName }}</span> | |
| 11 | 11 | <div class="role-context">{{ printerRuleInfo.curPrinterRule.remark }}</div> |
| 12 | 12 | </div> |
| 13 | 13 | <div class="role-menu flex justify-start"> | ... | ... |