Commit 27918d403d7fbf6854dd557d927e3ae81cc425dc

Authored by wuxw
1 parent 050d35a0

v1.9 测试完成设备下的功能

src/components/inspection/maintainanceTaskDetail.vue
1 <template> 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 <template slot-scope="scope"> 10 <template slot-scope="scope">
40 {{ scope.row.planInsTime }}<br />{{ scope.row.planEndTime }} 11 {{ scope.row.planInsTime }}<br />{{ scope.row.planEndTime }}
41 </template> 12 </template>
42 </el-table-column> 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 <template slot-scope="scope"> 15 <template slot-scope="scope">
48 {{ scope.row.inspectionTime || '-' }} 16 {{ scope.row.inspectionTime || '-' }}
49 </template> 17 </template>
50 </el-table-column> 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 <template slot-scope="scope"> 20 <template slot-scope="scope">
56 {{ scope.row.actUserName || '-' }} 21 {{ scope.row.actUserName || '-' }}
57 </template> 22 </template>
58 </el-table-column> 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 <template slot-scope="scope"> 26 <template slot-scope="scope">
69 <span class="text-primary"> 27 <span class="text-primary">
70 {{ scope.row.description || '-' }} 28 {{ scope.row.description || '-' }}
71 </span> 29 </span>
72 </template> 30 </template>
73 </el-table-column> 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 <template slot-scope="scope"> 33 <template slot-scope="scope">
79 <div v-if="scope.row.photos && scope.row.photos.length > 0" class="photo-container"> 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 </div> 38 </div>
89 <span v-else>-</span> 39 <span v-else>-</span>
90 </template> 40 </template>
91 </el-table-column> 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 <template slot-scope="scope"> 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 </el-button> 47 </el-button>
109 </template> 48 </template>
110 </el-table-column> 49 </el-table-column>
111 </el-table> 50 </el-table>
112 51
113 <div class="pagination-wrapper"> 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 </div> 56 </div>
124 </el-dialog> 57 </el-dialog>
125 </template> 58 </template>
@@ -188,7 +121,7 @@ export default { @@ -188,7 +121,7 @@ export default {
188 this.loadTaskDetails() 121 this.loadTaskDetails()
189 }, 122 },
190 handleViewDetail(taskDetailId) { 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,11 +7,11 @@
7 <el-form-item :label="$t('printerRule.remark')" prop="remark"> 7 <el-form-item :label="$t('printerRule.remark')" prop="remark">
8 <el-input type="textarea" v-model="form.remark" :placeholder="$t('printerRule.remarkPlaceholder')"></el-input> 8 <el-input type="textarea" v-model="form.remark" :placeholder="$t('printerRule.remarkPlaceholder')"></el-input>
9 </el-form-item> 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 <el-select v-model="form.state" style="width:100%"> 11 <el-select v-model="form.state" style="width:100%">
12 <el-option v-for="item in stateOptions" :key="item.statusCd" :label="item.name" :value="item.statusCd"></el-option> 12 <el-option v-for="item in stateOptions" :key="item.statusCd" :label="item.name" :value="item.statusCd"></el-option>
13 </el-select> 13 </el-select>
14 - </el-form-item> 14 + </el-form-item> -->
15 </el-form> 15 </el-form>
16 16
17 <span slot="footer" class="dialog-footer"> 17 <span slot="footer" class="dialog-footer">
@@ -51,12 +51,11 @@ export default { @@ -51,12 +51,11 @@ export default {
51 }, 51 },
52 created() { 52 created() {
53 this.form.communityId = getCommunityId() 53 this.form.communityId = getCommunityId()
54 - this.getStateOptions()  
55 }, 54 },
56 methods: { 55 methods: {
57 async getStateOptions() { 56 async getStateOptions() {
58 try { 57 try {
59 - const data = await getDict('printer_rule', 'state') 58 + const {data} = await getDict('printer_rule', 'state')
60 this.stateOptions = data 59 this.stateOptions = data
61 } catch (error) { 60 } catch (error) {
62 console.error('获取状态字典失败:', error) 61 console.error('获取状态字典失败:', error)
@@ -65,6 +64,8 @@ export default { @@ -65,6 +64,8 @@ export default {
65 open() { 64 open() {
66 this.visible = true 65 this.visible = true
67 this.resetForm() 66 this.resetForm()
  67 + this.getStateOptions()
  68 +
68 }, 69 },
69 handleClose() { 70 handleClose() {
70 this.resetForm() 71 this.resetForm()
src/components/machine/printerRuleFees.vue
@@ -2,19 +2,16 @@ @@ -2,19 +2,16 @@
2 <div class="printer-rule-fees"> 2 <div class="printer-rule-fees">
3 3
4 <el-form :inline="true" :model="searchForm" class="search-form"> 4 <el-form :inline="true" :model="searchForm" class="search-form">
5 - <el-form-item :label="$t('printerRuleFees.id')"> 5 + <el-form-item >
6 <el-input v-model="searchForm.prfId" :placeholder="$t('printerRuleFees.idPlaceholder')" clearable /> 6 <el-input v-model="searchForm.prfId" :placeholder="$t('printerRuleFees.idPlaceholder')" clearable />
7 </el-form-item> 7 </el-form-item>
8 - <el-form-item :label="$t('printerRuleFees.feeName')"> 8 + <el-form-item >
9 <el-input v-model="searchForm.feeConfigName" :placeholder="$t('printerRuleFees.feeNamePlaceholder')" clearable /> 9 <el-input v-model="searchForm.feeConfigName" :placeholder="$t('printerRuleFees.feeNamePlaceholder')" clearable />
10 </el-form-item> 10 </el-form-item>
11 <el-form-item> 11 <el-form-item>
12 <el-button type="primary" @click="handleSearch"> 12 <el-button type="primary" @click="handleSearch">
13 {{ $t('common.search') }} 13 {{ $t('common.search') }}
14 </el-button> 14 </el-button>
15 - <el-button @click="handleReset">  
16 - {{ $t('common.reset') }}  
17 - </el-button>  
18 <el-button type="primary" @click="openAddModal"> 15 <el-button type="primary" @click="openAddModal">
19 <i class="el-icon-plus"></i> 16 <i class="el-icon-plus"></i>
20 {{ $t('common.add') }} 17 {{ $t('common.add') }}
src/components/machine/printerRuleMachine.vue
@@ -2,10 +2,10 @@ @@ -2,10 +2,10 @@
2 <div class="printer-rule-machine"> 2 <div class="printer-rule-machine">
3 3
4 <el-form :inline="true" :model="searchForm" class="search-form"> 4 <el-form :inline="true" :model="searchForm" class="search-form">
5 - <el-form-item :label="$t('printerRuleMachine.id')"> 5 + <el-form-item >
6 <el-input v-model="searchForm.prmId" :placeholder="$t('printerRuleMachine.idPlaceholder')" clearable /> 6 <el-input v-model="searchForm.prmId" :placeholder="$t('printerRuleMachine.idPlaceholder')" clearable />
7 </el-form-item> 7 </el-form-item>
8 - <el-form-item :label="$t('printerRuleMachine.machineName')"> 8 + <el-form-item >
9 <el-input v-model="searchForm.machineName" :placeholder="$t('printerRuleMachine.machineNamePlaceholder')" 9 <el-input v-model="searchForm.machineName" :placeholder="$t('printerRuleMachine.machineNamePlaceholder')"
10 clearable /> 10 clearable />
11 </el-form-item> 11 </el-form-item>
@@ -13,9 +13,6 @@ @@ -13,9 +13,6 @@
13 <el-button type="primary" @click="handleSearch"> 13 <el-button type="primary" @click="handleSearch">
14 {{ $t('common.search') }} 14 {{ $t('common.search') }}
15 </el-button> 15 </el-button>
16 - <el-button @click="handleReset">  
17 - {{ $t('common.reset') }}  
18 - </el-button>  
19 <el-button type="primary" @click="openAddModal"> 16 <el-button type="primary" @click="openAddModal">
20 <i class="el-icon-plus"></i> 17 <i class="el-icon-plus"></i>
21 {{ $t('common.add') }} 18 {{ $t('common.add') }}
src/components/machine/printerRuleRepair.vue
@@ -2,10 +2,10 @@ @@ -2,10 +2,10 @@
2 <div class="printer-rule-repair"> 2 <div class="printer-rule-repair">
3 3
4 <el-form :inline="true" :model="searchForm" class="search-form"> 4 <el-form :inline="true" :model="searchForm" class="search-form">
5 - <el-form-item :label="$t('printerRuleRepair.id')"> 5 + <el-form-item >
6 <el-input v-model="searchForm.prrId" :placeholder="$t('printerRuleRepair.idPlaceholder')" clearable /> 6 <el-input v-model="searchForm.prrId" :placeholder="$t('printerRuleRepair.idPlaceholder')" clearable />
7 </el-form-item> 7 </el-form-item>
8 - <el-form-item :label="$t('printerRuleRepair.repairType')"> 8 + <el-form-item >
9 <el-input v-model="searchForm.repairTypeName" :placeholder="$t('printerRuleRepair.repairTypePlaceholder')" 9 <el-input v-model="searchForm.repairTypeName" :placeholder="$t('printerRuleRepair.repairTypePlaceholder')"
10 clearable /> 10 clearable />
11 </el-form-item> 11 </el-form-item>
@@ -13,9 +13,6 @@ @@ -13,9 +13,6 @@
13 <el-button type="primary" @click="handleSearch"> 13 <el-button type="primary" @click="handleSearch">
14 {{ $t('common.search') }} 14 {{ $t('common.search') }}
15 </el-button> 15 </el-button>
16 - <el-button @click="handleReset">  
17 - {{ $t('common.reset') }}  
18 - </el-button>  
19 <el-button type="primary" @click="openAddModal"> 16 <el-button type="primary" @click="openAddModal">
20 <i class="el-icon-plus"></i> 17 <i class="el-icon-plus"></i>
21 {{ $t('common.add') }} 18 {{ $t('common.add') }}
src/components/staff/AStaffDetailMaintainance.vue
@@ -69,7 +69,7 @@ @@ -69,7 +69,7 @@
69 <el-table-column prop="createTime" :label="$t('staffDetailMaintainance.createTime')" align="center" /> 69 <el-table-column prop="createTime" :label="$t('staffDetailMaintainance.createTime')" align="center" />
70 <el-table-column :label="$t('common.operation')" align="center"> 70 <el-table-column :label="$t('common.operation')" align="center">
71 <template slot-scope="scope"> 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 {{ $t('common.detail') }} 73 {{ $t('common.detail') }}
74 </el-link> 74 </el-link>
75 </template> 75 </template>
src/i18n/inspectionI18n.js
@@ -7,6 +7,7 @@ import { messages as editMaintainancePlanMessages } from &#39;../views/inspection/ed @@ -7,6 +7,7 @@ import { messages as editMaintainancePlanMessages } from &#39;../views/inspection/ed
7 import { messages as maintainancePlanMachineMessages } from '../views/inspection/maintainancePlanMachineLang' 7 import { messages as maintainancePlanMachineMessages } from '../views/inspection/maintainancePlanMachineLang'
8 import { messages as maintainanceTaskDetailsMessages } from '../views/inspection/maintainanceTaskDetailsLang' 8 import { messages as maintainanceTaskDetailsMessages } from '../views/inspection/maintainanceTaskDetailsLang'
9 import { messages as maintainanceTaskManageMessages } from '../views/inspection/maintainanceTaskManageLang' 9 import { messages as maintainanceTaskManageMessages } from '../views/inspection/maintainanceTaskManageLang'
  10 +import { messages as maintainanceTaskDetailViewMessages } from '../views/inspection/maintainanceTaskDetailViewLang'
10 import { messages as adminInspectionPlanMessages } from '../views/inspection/adminInspectionPlanLang' 11 import { messages as adminInspectionPlanMessages } from '../views/inspection/adminInspectionPlanLang'
11 import { messages as aInspectionPlanDetailMessages } from '../views/inspection/aInspectionPlanDetailLang' 12 import { messages as aInspectionPlanDetailMessages } from '../views/inspection/aInspectionPlanDetailLang'
12 import { messages as adminInspectionTaskMessages } from '../views/inspection/adminInspectionTaskLang' 13 import { messages as adminInspectionTaskMessages } from '../views/inspection/adminInspectionTaskLang'
@@ -36,6 +37,7 @@ export const messages = { @@ -36,6 +37,7 @@ export const messages = {
36 ...maintainancePlanMachineMessages.en, 37 ...maintainancePlanMachineMessages.en,
37 ...maintainanceTaskDetailsMessages.en, 38 ...maintainanceTaskDetailsMessages.en,
38 ...maintainanceTaskManageMessages.en, 39 ...maintainanceTaskManageMessages.en,
  40 + ...maintainanceTaskDetailViewMessages.en,
39 ...inspectionPointMessages.en, 41 ...inspectionPointMessages.en,
40 ...inspectionRouteMessages.en, 42 ...inspectionRouteMessages.en,
41 ...inspectionItemManageMessages.en, 43 ...inspectionItemManageMessages.en,
@@ -60,6 +62,7 @@ export const messages = { @@ -60,6 +62,7 @@ export const messages = {
60 ...maintainancePlanMachineMessages.zh, 62 ...maintainancePlanMachineMessages.zh,
61 ...maintainanceTaskDetailsMessages.zh, 63 ...maintainanceTaskDetailsMessages.zh,
62 ...maintainanceTaskManageMessages.zh, 64 ...maintainanceTaskManageMessages.zh,
  65 + ...maintainanceTaskDetailViewMessages.zh,
63 ...inspectionPointMessages.zh, 66 ...inspectionPointMessages.zh,
64 ...inspectionRouteMessages.zh, 67 ...inspectionRouteMessages.zh,
65 ...inspectionItemManageMessages.zh, 68 ...inspectionItemManageMessages.zh,
src/router/inspectionRouter.js
@@ -100,6 +100,11 @@ export default [ @@ -100,6 +100,11 @@ export default [
100 component: () => import('@/views/inspection/maintainanceTaskDetailsList.vue') 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 path: '/pages/property/maintainanceTaskManage', 108 path: '/pages/property/maintainanceTaskManage',
104 name: '/pages/property/maintainanceTaskManage', 109 name: '/pages/property/maintainanceTaskManage',
105 component: () => import('@/views/inspection/maintainanceTaskManageList.vue') 110 component: () => import('@/views/inspection/maintainanceTaskManageList.vue')
src/views/dev/cacheList.vue
1 <template> 1 <template>
2 - <div class="cache-container padding"> 2 + <div class="cache-container ">
3 <div class="list-wrapper"> 3 <div class="list-wrapper">
4 <div class="list-header"> 4 <div class="list-header">
5 <div class="list-title">{{ $t('cache.list.title') }}</div> 5 <div class="list-title">{{ $t('cache.list.title') }}</div>
@@ -118,7 +118,7 @@ export default { @@ -118,7 +118,7 @@ export default {
118 118
119 <style lang="scss" scoped> 119 <style lang="scss" scoped>
120 .cache-container { 120 .cache-container {
121 - padding: 0; 121 + padding: 20px;
122 margin: 0; 122 margin: 0;
123 123
124 .search-wrapper { 124 .search-wrapper {
src/views/dev/taskList.vue
1 <template> 1 <template>
2 - <div class="task-container"> 2 + <div class="task-container ">
3 <!-- 查询条件 --> 3 <!-- 查询条件 -->
4 <div class="search-wrapper"> 4 <div class="search-wrapper">
5 <div class="search-title">{{ $t('task.search.title') }}</div> 5 <div class="search-title">{{ $t('task.search.title') }}</div>
@@ -177,7 +177,7 @@ export default { @@ -177,7 +177,7 @@ export default {
177 177
178 <style lang="scss" scoped> 178 <style lang="scss" scoped>
179 .task-container { 179 .task-container {
180 - padding: 0; 180 + padding: 20px;
181 margin: 0; 181 margin: 0;
182 182
183 .search-wrapper { 183 .search-wrapper {
src/views/inspection/maintainanceItemList.vue
@@ -32,9 +32,9 @@ @@ -32,9 +32,9 @@
32 <div slot="header" class="flex justify-between"> 32 <div slot="header" class="flex justify-between">
33 <span>{{ $t('maintainanceItem.list.title') }}</span> 33 <span>{{ $t('maintainanceItem.list.title') }}</span>
34 <div style="float: right;"> 34 <div style="float: right;">
35 - <el-button type="primary" size="small" @click="handleGoBack"> 35 + <!-- <el-button type="primary" size="small" @click="handleGoBack">
36 {{ $t('common.back') }} 36 {{ $t('common.back') }}
37 - </el-button> 37 + </el-button> -->
38 <!-- <el-button type="primary" size="small" @click="handleShowDocument"> 38 <!-- <el-button type="primary" size="small" @click="handleShowDocument">
39 {{ $t('common.document') }} 39 {{ $t('common.document') }}
40 </el-button> --> 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,19 +25,13 @@
25 </el-select> 25 </el-select>
26 </el-col> 26 </el-col>
27 <el-col :span="4"> 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 <el-select v-model="searchForm.taskState" :placeholder="$t('maintainanceTaskDetails.search.taskState')" 28 <el-select v-model="searchForm.taskState" :placeholder="$t('maintainanceTaskDetails.search.taskState')"
33 style="width:100%"> 29 style="width:100%">
34 <el-option :label="$t('maintainanceTaskDetails.search.selectState')" value="" /> 30 <el-option :label="$t('maintainanceTaskDetails.search.selectState')" value="" />
35 <el-option v-for="(item, index) in taskStateList" :key="index" :label="item.name" :value="item.statusCd" /> 31 <el-option v-for="(item, index) in taskStateList" :key="index" :label="item.name" :value="item.statusCd" />
36 </el-select> 32 </el-select>
37 </el-col> 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 <el-button type="primary" @click="handleSearch"> 35 <el-button type="primary" @click="handleSearch">
42 <i class="el-icon-search"></i> 36 <i class="el-icon-search"></i>
43 {{ $t('common.search') }} 37 {{ $t('common.search') }}
@@ -219,7 +213,7 @@ export default { @@ -219,7 +213,7 @@ export default {
219 }, 213 },
220 handleDetail(taskDetailId) { 214 handleDetail(taskDetailId) {
221 this.$router.push({ 215 this.$router.push({
222 - path: '/inspection/maintainanceTaskDetailView', 216 + path: '/views/inspection/maintainanceTaskDetailView',
223 query: { taskDetailId } 217 query: { taskDetailId }
224 }) 218 })
225 }, 219 },
src/views/inspection/maintainanceTaskManageLang.js
@@ -50,7 +50,10 @@ export const messages = { @@ -50,7 +50,10 @@ export const messages = {
50 photos: 'Maintenance Photos', 50 photos: 'Maintenance Photos',
51 createTime: 'Create Time', 51 createTime: 'Create Time',
52 viewDetail: 'View Details', 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 deleteMaintainanceTask: { 58 deleteMaintainanceTask: {
56 title: 'Confirm Operation', 59 title: 'Confirm Operation',
@@ -128,7 +131,10 @@ export const messages = { @@ -128,7 +131,10 @@ export const messages = {
128 photos: '保养照片', 131 photos: '保养照片',
129 createTime: '创建时间', 132 createTime: '创建时间',
130 viewDetail: '详情', 133 viewDetail: '详情',
131 - fetchError: '获取任务详情失败' 134 + fetchError: '获取任务详情失败',
  135 + timeRange: '开始/结束时间',
  136 + actInsTime: '实际保养时间',
  137 + planName: '保养计划',
132 }, 138 },
133 deleteMaintainanceTask: { 139 deleteMaintainanceTask: {
134 title: '请确认您的操作', 140 title: '请确认您的操作',
src/views/inspection/maintainanceTaskManageList.vue
@@ -7,14 +7,16 @@ @@ -7,14 +7,16 @@
7 </div> 7 </div>
8 <el-row :gutter="20"> 8 <el-row :gutter="20">
9 <el-col :span="4"> 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 </el-col> 12 </el-col>
13 <el-col :span="4"> 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 </el-col> 16 </el-col>
16 <el-col :span="4"> 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 </el-col> 20 </el-col>
19 <el-col :span="4"> 21 <el-col :span="4">
20 <el-input v-model="searchForm.planName" :placeholder="$t('maintainanceTaskManage.planNamePlaceholder')" 22 <el-input v-model="searchForm.planName" :placeholder="$t('maintainanceTaskManage.planNamePlaceholder')"
src/views/machine/equipmentAccountList.vue
@@ -19,20 +19,17 @@ @@ -19,20 +19,17 @@
19 <el-card class="box-card text-left"> 19 <el-card class="box-card text-left">
20 <div slot="header" class=""> 20 <div slot="header" class="">
21 <span>{{ $t('equipmentAccount.searchCondition') }}</span> 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 </div> 22 </div>
26 <el-form :inline="true" :model="equipmentAccountInfo.conditions" class="search-form"> 23 <el-form :inline="true" :model="equipmentAccountInfo.conditions" class="search-form">
27 - <el-form-item :label="$t('equipmentAccount.machineName')"> 24 + <el-form-item >
28 <el-input v-model.trim="equipmentAccountInfo.conditions.machineName" 25 <el-input v-model.trim="equipmentAccountInfo.conditions.machineName"
29 :placeholder="$t('equipmentAccount.machineNamePlaceholder')"></el-input> 26 :placeholder="$t('equipmentAccount.machineNamePlaceholder')"></el-input>
30 </el-form-item> 27 </el-form-item>
31 - <el-form-item :label="$t('equipmentAccount.machineCode')"> 28 + <el-form-item >
32 <el-input v-model.trim="equipmentAccountInfo.conditions.machineCode" 29 <el-input v-model.trim="equipmentAccountInfo.conditions.machineCode"
33 :placeholder="$t('equipmentAccount.machineCodePlaceholder')"></el-input> 30 :placeholder="$t('equipmentAccount.machineCodePlaceholder')"></el-input>
34 </el-form-item> 31 </el-form-item>
35 - <el-form-item :label="$t('equipmentAccount.state')"> 32 + <el-form-item >
36 <el-select v-model="equipmentAccountInfo.conditions.state" style="width:100%"> 33 <el-select v-model="equipmentAccountInfo.conditions.state" style="width:100%">
37 <el-option :label="$t('equipmentAccount.selectState')" value=""></el-option> 34 <el-option :label="$t('equipmentAccount.selectState')" value=""></el-option>
38 <el-option v-for="item in equipmentAccountInfo.useStatus" :key="item.statusCd" :label="item.name" 35 <el-option v-for="item in equipmentAccountInfo.useStatus" :key="item.statusCd" :label="item.name"
@@ -40,15 +37,7 @@ @@ -40,15 +37,7 @@
40 </el-option> 37 </el-option>
41 </el-select> 38 </el-select>
42 </el-form-item> 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 <el-select v-model="equipmentAccountInfo.conditions.importanceLevel" style="width:100%"> 41 <el-select v-model="equipmentAccountInfo.conditions.importanceLevel" style="width:100%">
53 <el-option :label="$t('equipmentAccount.selectImportanceLevel')" value=""></el-option> 42 <el-option :label="$t('equipmentAccount.selectImportanceLevel')" value=""></el-option>
54 <el-option v-for="item in equipmentAccountInfo.importanceLevels" :key="item.statusCd" :label="item.name" 43 <el-option v-for="item in equipmentAccountInfo.importanceLevels" :key="item.statusCd" :label="item.name"
@@ -56,7 +45,12 @@ @@ -56,7 +45,12 @@
56 </el-option> 45 </el-option>
57 </el-select> 46 </el-select>
58 </el-form-item> 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 </el-form> 52 </el-form>
  53 +
60 </el-card> 54 </el-card>
61 55
62 <el-card class="box-card margin-top"> 56 <el-card class="box-card margin-top">
@@ -269,7 +263,7 @@ export default { @@ -269,7 +263,7 @@ export default {
269 } 263 }
270 264
271 .search-form { 265 .search-form {
272 - margin-bottom: 20px; 266 + margin-bottom: 0px;
273 } 267 }
274 268
275 .pagination-wrapper { 269 .pagination-wrapper {
src/views/machine/machinePrinterManageList.vue
@@ -33,9 +33,6 @@ @@ -33,9 +33,6 @@
33 <el-button type="primary" size="small" @click="handleAdd"> 33 <el-button type="primary" size="small" @click="handleAdd">
34 {{ $t('common.add') }} 34 {{ $t('common.add') }}
35 </el-button> 35 </el-button>
36 - <el-button type="primary" size="small" @click="handleShowDoc">  
37 - {{ $t('common.document') }}  
38 - </el-button>  
39 </div> 36 </div>
40 </div> 37 </div>
41 38
src/views/machine/machineTranslateManageList.vue
@@ -4,9 +4,9 @@ @@ -4,9 +4,9 @@
4 <el-card class="search-wrapper"> 4 <el-card class="search-wrapper">
5 <div slot="header" class="flex justify-between"> 5 <div slot="header" class="flex justify-between">
6 <span>{{ $t('machineTranslateManage.search.title') }}</span> 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 {{ machineTranslateManageInfo.moreCondition ? $t('common.hide') : $t('common.more') }} 8 {{ machineTranslateManageInfo.moreCondition ? $t('common.hide') : $t('common.more') }}
9 - </el-button> 9 + </el-button> -->
10 </div> 10 </div>
11 <el-row :gutter="20"> 11 <el-row :gutter="20">
12 <el-col :span="6"> 12 <el-col :span="6">
src/views/machine/printerRuleList.vue
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 <el-col :span="20"> 7 <el-col :span="20">
8 <el-card class="box-card"> 8 <el-card class="box-card">
9 <div slot="header" class="text-left"> 9 <div slot="header" class="text-left">
10 - <h5>{{ printerRuleInfo.curPrinterRule.ruleName }}</h5> 10 + <span>{{ printerRuleInfo.curPrinterRule.ruleName }}</span>
11 <div class="role-context">{{ printerRuleInfo.curPrinterRule.remark }}</div> 11 <div class="role-context">{{ printerRuleInfo.curPrinterRule.remark }}</div>
12 </div> 12 </div>
13 <div class="role-menu flex justify-start"> 13 <div class="role-menu flex justify-start">