Commit 56c7fec9f35a3e9babf204ca6008371cb6fcdbe6

Authored by wuxw
1 parent d367e130

巡检功能测试完成

src/api/inspection/inspectionPlanDetailApi.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +import { getCommunityId } from '@/api/community/communityApi'
  3 +
  4 +// 获取巡检计划详情
  5 +export function getInspectionPlanDetail(params) {
  6 + return new Promise((resolve, reject) => {
  7 + request({
  8 + url: '/inspectionPlan.listInspectionPlans',
  9 + method: 'get',
  10 + params: {
  11 + ...params,
  12 + communityId: getCommunityId()
  13 + }
  14 + }).then(response => {
  15 + const res = response.data
  16 + resolve(res)
  17 + }).catch(error => {
  18 + reject(error)
  19 + })
  20 + })
  21 +}
  22 +
  23 +// 获取巡检计划人员列表
  24 +export function listInspectionPlanStaffs(params) {
  25 + return new Promise((resolve, reject) => {
  26 + request({
  27 + url: '/inspection.listInspectionPlanStaffs',
  28 + method: 'get',
  29 + params: {
  30 + ...params,
  31 + communityId: getCommunityId()
  32 + }
  33 + }).then(response => {
  34 + const res = response.data
  35 + resolve(res)
  36 + }).catch(error => {
  37 + reject(error)
  38 + })
  39 + })
  40 +}
  41 +
  42 +// 获取巡检路线列表
  43 +export function listInspectionRoutes(params) {
  44 + return new Promise((resolve, reject) => {
  45 + request({
  46 + url: '/inspectionRoute.listInspectionRoutes',
  47 + method: 'get',
  48 + params: {
  49 + ...params,
  50 + communityId: getCommunityId()
  51 + }
  52 + }).then(response => {
  53 + const res = response.data
  54 + resolve(res)
  55 + }).catch(error => {
  56 + reject(error)
  57 + })
  58 + })
  59 +}
  60 +
  61 +// 获取巡检路线点列表
  62 +export function listInspectionRoutePoints(params) {
  63 + return new Promise((resolve, reject) => {
  64 + request({
  65 + url: '/inspectionRoute.listInspectionRoutePoints',
  66 + method: 'get',
  67 + params: {
  68 + ...params,
  69 + communityId: getCommunityId()
  70 + }
  71 + }).then(response => {
  72 + const res = response.data
  73 + resolve(res)
  74 + }).catch(error => {
  75 + reject(error)
  76 + })
  77 + })
  78 +}
  79 +
  80 +// 获取巡检点列表
  81 +export function listInspectionPoints(params) {
  82 + return new Promise((resolve, reject) => {
  83 + request({
  84 + url: '/inspectionPoint.listInspectionPoints',
  85 + method: 'get',
  86 + params: {
  87 + ...params,
  88 + communityId: getCommunityId()
  89 + }
  90 + }).then(response => {
  91 + const res = response.data
  92 + resolve(res)
  93 + }).catch(error => {
  94 + reject(error)
  95 + })
  96 + })
  97 +}
  98 +
  99 +// 保存巡检路线点
  100 +export function saveInspectionRoutePoint(data) {
  101 + return new Promise((resolve, reject) => {
  102 + request({
  103 + url: '/inspectionRoute.saveInspectionRoutePoint',
  104 + method: 'post',
  105 + data: {
  106 + ...data,
  107 + communityId: getCommunityId()
  108 + }
  109 + }).then(response => {
  110 + const res = response.data
  111 + resolve(res)
  112 + }).catch(error => {
  113 + reject(error)
  114 + })
  115 + })
  116 +}
  117 +
  118 +// 删除巡检路线点
  119 +export function deleteInspectionRoutePoint(data) {
  120 + return new Promise((resolve, reject) => {
  121 + request({
  122 + url: '/inspectionRoute.deleteInspectionRoutePoint',
  123 + method: 'post',
  124 + data: {
  125 + ...data,
  126 + communityId: getCommunityId()
  127 + }
  128 + }).then(response => {
  129 + const res = response.data
  130 + resolve(res)
  131 + }).catch(error => {
  132 + reject(error)
  133 + })
  134 + })
  135 +}
  136 +
  137 +// 更新巡检路线点关系
  138 +export function updateInspectionRoutePointRel(data) {
  139 + return new Promise((resolve, reject) => {
  140 + request({
  141 + url: '/inspectionRoute.updateInspectionRoutePointRel',
  142 + method: 'post',
  143 + data: {
  144 + ...data,
  145 + communityId: getCommunityId()
  146 + }
  147 + }).then(response => {
  148 + const res = response.data
  149 + resolve(res)
  150 + }).catch(error => {
  151 + reject(error)
  152 + })
  153 + })
  154 +}
  155 +
  156 +// 查询路线巡检任务
  157 +export function queryRouteInspectionTask(params) {
  158 + return new Promise((resolve, reject) => {
  159 + request({
  160 + url: '/inspection.queryRouteInspectionTask',
  161 + method: 'get',
  162 + params: {
  163 + ...params,
  164 + communityId: getCommunityId()
  165 + }
  166 + }).then(response => {
  167 + const res = response.data
  168 + resolve(res)
  169 + }).catch(error => {
  170 + reject(error)
  171 + })
  172 + })
  173 +}
  174 +
  175 +// 查询巡检任务详情
  176 +export function queryInspectionTaskDetail(params) {
  177 + return new Promise((resolve, reject) => {
  178 + request({
  179 + url: '/inspection.queryInspectionTaskDetail',
  180 + method: 'get',
  181 + params: {
  182 + ...params,
  183 + communityId: getCommunityId()
  184 + }
  185 + }).then(response => {
  186 + const res = response.data
  187 + resolve(res)
  188 + }).catch(error => {
  189 + reject(error)
  190 + })
  191 + })
  192 +}
  193 +
  194 +// 获取巡检任务详情列表
  195 +export function listInspectionTaskDetails(params) {
  196 + return new Promise((resolve, reject) => {
  197 + request({
  198 + url: '/inspectionTaskDetail.listInspectionTaskDetails',
  199 + method: 'get',
  200 + params: {
  201 + ...params,
  202 + communityId: getCommunityId()
  203 + }
  204 + }).then(response => {
  205 + const res = response.data
  206 + resolve(res)
  207 + }).catch(error => {
  208 + reject(error)
  209 + })
  210 + })
  211 +}
0 \ No newline at end of file 212 \ No newline at end of file
src/components/inspection/InspectionPlanDetailStaff.vue 0 → 100644
  1 +<template>
  2 + <div class="inspection-plan-detail-staff">
  3 + <el-table v-loading="loading" :data="inspectionPlanDetailStaffInfo.staffs" border style="width: 100%">
  4 + <el-table-column prop="staffName" :label="$t('inspectionPlanDetail.staffName')" align="center" />
  5 + <el-table-column prop="startTime" :label="$t('inspectionPlanDetail.startTime')" align="center" />
  6 + <el-table-column prop="endTime" :label="$t('inspectionPlanDetail.endTime')" align="center" />
  7 + </el-table>
  8 +
  9 + <el-pagination :current-page.sync="page.current" :page-sizes="[10, 20, 30, 50]" :page-size="page.size"
  10 + :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
  11 + @current-change="handleCurrentChange" />
  12 + </div>
  13 +</template>
  14 +
  15 +<script>
  16 +import { getCommunityId } from '@/api/community/communityApi'
  17 +import { listInspectionPlanStaffs } from '@/api/inspection/inspectionPlanDetailApi'
  18 +
  19 +export default {
  20 + name: 'InspectionPlanDetailStaff',
  21 + data() {
  22 + return {
  23 + inspectionPlanDetailStaffInfo: {
  24 + staffs: [],
  25 + inspectionPlanId: '',
  26 + planUserName: '',
  27 + inspectionStartTime: '',
  28 + inspectionEndTime: ''
  29 + },
  30 + page: {
  31 + current: 1,
  32 + size: 10,
  33 + total: 0
  34 + },
  35 + loading: false,
  36 + communityId: ''
  37 + }
  38 + },
  39 + created() {
  40 + this.communityId = getCommunityId()
  41 + },
  42 + methods: {
  43 + open(params) {
  44 + this.inspectionPlanDetailStaffInfo.inspectionPlanId = params.inspectionPlanId
  45 + this.loadInspectionPlanDetailStaffData()
  46 + },
  47 + async switch(params) {
  48 + this.inspectionPlanDetailStaffInfo.inspectionPlanId = params.inspectionPlanId
  49 + this.loadInspectionPlanDetailStaffData()
  50 + },
  51 + async loadInspectionPlanDetailStaffData() {
  52 + try {
  53 + this.loading = true
  54 + const params = {
  55 + communityId: this.communityId,
  56 + inspectionPlanId: this.inspectionPlanDetailStaffInfo.inspectionPlanId,
  57 + page: this.page.current,
  58 + row: this.page.size
  59 + }
  60 + const { inspectionPlanStaffs, total } = await listInspectionPlanStaffs(params)
  61 + this.inspectionPlanDetailStaffInfo.staffs = inspectionPlanStaffs
  62 + this.page.total = total
  63 + } catch (error) {
  64 + console.error('获取巡检人员列表失败:', error)
  65 + } finally {
  66 + this.loading = false
  67 + }
  68 + },
  69 + handleSizeChange(val) {
  70 + this.page.size = val
  71 + this.loadInspectionPlanDetailStaffData()
  72 + },
  73 + handleCurrentChange(val) {
  74 + this.page.current = val
  75 + this.loadInspectionPlanDetailStaffData()
  76 + }
  77 + }
  78 +}
  79 +</script>
  80 +
  81 +<style lang="scss" scoped>
  82 +.inspection-plan-detail-staff {
  83 + padding: 20px;
  84 +
  85 + .el-pagination {
  86 + margin-top: 20px;
  87 + text-align: right;
  88 + }
  89 +}
  90 +</style>
0 \ No newline at end of file 91 \ No newline at end of file
src/components/inspection/InspectionRoutePoint.vue
@@ -81,6 +81,10 @@ export default { @@ -81,6 +81,10 @@ export default {
81 beforeDestroy() { 81 beforeDestroy() {
82 }, 82 },
83 methods: { 83 methods: {
  84 + open(params) {
  85 + this.inspectionRoutePointInfo.inspectionRouteId = params.inspectionRouteId
  86 + this._listInspectionRoutePoints()
  87 + },
84 loadData(params) { 88 loadData(params) {
85 this.inspectionRoutePointInfo.inspectionRouteId = params.inspectionRouteId 89 this.inspectionRoutePointInfo.inspectionRouteId = params.inspectionRouteId
86 this._listInspectionRoutePoints() 90 this._listInspectionRoutePoints()
src/components/inspection/InspectionTaskDetail.vue
1 <template> 1 <template>
2 - <el-dialog :title="$t('inspectionTaskDetail.taskDetails')" :visible.sync="visible" width="90%" top="5vh" @close="close">  
3 - <el-card> 2 + <el-dialog :title="$t('inspectionTaskDetail.taskDetails')" :visible.sync="visible" width="90%" top="5vh"
  3 + @close="close">
  4 +
4 <el-table :data="taskDetails" border style="width: 100%"> 5 <el-table :data="taskDetails" border style="width: 100%">
5 <el-table-column prop="taskDetailId" :label="$t('inspectionTaskDetail.taskDetails') + 'ID'" align="center" 6 <el-table-column prop="taskDetailId" :label="$t('inspectionTaskDetail.taskDetails') + 'ID'" align="center"
6 width="100" /> 7 width="100" />
@@ -55,7 +56,7 @@ @@ -55,7 +56,7 @@
55 56
56 <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total" 57 <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total"
57 layout="total, prev, pager, next, jumper" @current-change="handlePageChange" /> 58 layout="total, prev, pager, next, jumper" @current-change="handlePageChange" />
58 - </el-card> 59 +
59 60
60 <ViewMap ref="viewMap" /> 61 <ViewMap ref="viewMap" />
61 <ViewImage ref="viewImage" /> 62 <ViewImage ref="viewImage" />
src/components/inspection/RouteTask.vue
@@ -45,6 +45,10 @@ export default { @@ -45,6 +45,10 @@ export default {
45 beforeDestroy() { 45 beforeDestroy() {
46 }, 46 },
47 methods: { 47 methods: {
  48 + open(params) {
  49 + this.routeTaskInfo.inspectionRouteId = params.inspectionRouteId
  50 + this._loadRouteTaskData()
  51 + },
48 loadData(params) { 52 loadData(params) {
49 this.routeTaskInfo.inspectionRouteId = params.inspectionRouteId 53 this.routeTaskInfo.inspectionRouteId = params.inspectionRouteId
50 this._loadRouteTaskData() 54 this._loadRouteTaskData()
@@ -75,11 +79,11 @@ export default { @@ -75,11 +79,11 @@ export default {
75 this.routeTaskInfo.inspectionRouteId = task.inspectionRouteId 79 this.routeTaskInfo.inspectionRouteId = task.inspectionRouteId
76 80
77 // 通知地图组件加载任务 81 // 通知地图组件加载任务
78 - this.$nextTick(() => { 82 + setTimeout(() => {
79 if (this.$refs.inspectionTaskMap) { 83 if (this.$refs.inspectionTaskMap) {
80 - this.$refs.inspectionTaskMap.loadTask(task) 84 + this.$refs.inspectionTaskMap.loadData(task)
81 } 85 }
82 - }) 86 + }, 500)
83 } 87 }
84 } 88 }
85 } 89 }
src/components/inspection/editInspectionPlan.vue
1 <template> 1 <template>
2 <el-dialog :title="$t('inspectionPlan.modify')" :visible.sync="visible" width="80%" @close="resetForm"> 2 <el-dialog :title="$t('inspectionPlan.modify')" :visible.sync="visible" width="80%" @close="resetForm">
3 - <el-form ref="form" :model="formData" label-width="150px"> 3 + <el-form ref="form" :model="formData" label-width="150px" class="text-left">
4 <el-row :gutter="20"> 4 <el-row :gutter="20">
5 <el-col :span="12"> 5 <el-col :span="12">
6 <el-form-item :label="$t('inspectionPlan.planName')" prop="inspectionPlanName" required> 6 <el-form-item :label="$t('inspectionPlan.planName')" prop="inspectionPlanName" required>
@@ -100,15 +100,16 @@ @@ -100,15 +100,16 @@
100 <el-col :span="12"> 100 <el-col :span="12">
101 <el-form-item :label="$t('editInspectionPlan.signMethod')" required> 101 <el-form-item :label="$t('editInspectionPlan.signMethod')" required>
102 <el-select v-model="formData.signType" style="width:100%"> 102 <el-select v-model="formData.signType" style="width:100%">
103 - <el-option v-for="sign in signTypeOptions" :key="sign.statusCd" :label="sign.name" :value="sign.statusCd" /> 103 + <el-option v-for="sign in signTypeOptions" :key="sign.statusCd" :label="sign.name"
  104 + :value="sign.statusCd" />
104 </el-select> 105 </el-select>
105 </el-form-item> 106 </el-form-item>
106 </el-col> 107 </el-col>
107 <el-col :span="12"> 108 <el-col :span="12">
108 <el-form-item :label="$t('editInspectionPlan.allowRecheck')"> 109 <el-form-item :label="$t('editInspectionPlan.allowRecheck')">
109 <el-select v-model="formData.canReexamine" style="width:100%"> 110 <el-select v-model="formData.canReexamine" style="width:100%">
110 - <el-option :label="$t('inspectionPlan.disallowRecheck')" value="1000" />  
111 - <el-option :label="$t('inspectionPlan.allowRecheck')" value="2000" /> 111 + <el-option :label="$t('addInspectionPlan.notAllowed')" value="1000"></el-option>
  112 + <el-option :label="$t('addInspectionPlan.allowed')" value="2000"></el-option>
112 </el-select> 113 </el-select>
113 </el-form-item> 114 </el-form-item>
114 </el-col> 115 </el-col>
@@ -116,7 +117,7 @@ @@ -116,7 +117,7 @@
116 117
117 <el-row> 118 <el-row>
118 <el-form-item :label="$t('editInspectionPlan.selectStaff')"> 119 <el-form-item :label="$t('editInspectionPlan.selectStaff')">
119 - <select-staff-div ref="selectStaffDiv" @selectStaffs="handleSelectStaffs" /> 120 + <select-staff-div ref="selectStaffDiv" @selectStaffs="handleSelectStaffs" />
120 </el-form-item> 121 </el-form-item>
121 </el-row> 122 </el-row>
122 </el-form> 123 </el-form>
@@ -131,7 +132,7 @@ @@ -131,7 +132,7 @@
131 <script> 132 <script>
132 import { updateInspectionPlan, listInspectionRoutes, listInspectionPlanStaffs } from '@/api/inspection/inspectionPlanApi' 133 import { updateInspectionPlan, listInspectionRoutes, listInspectionPlanStaffs } from '@/api/inspection/inspectionPlanApi'
133 import SelectStaffDiv from '@/components/staff/selectStaffsDiv' 134 import SelectStaffDiv from '@/components/staff/selectStaffsDiv'
134 -import {getDict} from '@/api/community/communityApi' 135 +import { getDict } from '@/api/community/communityApi'
135 136
136 export default { 137 export default {
137 name: 'EditInspectionPlan', 138 name: 'EditInspectionPlan',
@@ -210,12 +211,12 @@ export default { @@ -210,12 +211,12 @@ export default {
210 211
211 async loadStaffs(planId) { 212 async loadStaffs(planId) {
212 try { 213 try {
213 - const { inspectionPlanStaffs } = await listInspectionPlanStaffs({ inspectionPlanId: planId,page: 1, row: 100 }) 214 + const { inspectionPlanStaffs } = await listInspectionPlanStaffs({ inspectionPlanId: planId, page: 1, row: 100 })
214 this.formData.staffs = inspectionPlanStaffs.map(item => ({ 215 this.formData.staffs = inspectionPlanStaffs.map(item => ({
215 userId: item.staffId, 216 userId: item.staffId,
216 name: item.staffName 217 name: item.staffName
217 })) 218 }))
218 - this.$refs.selectStaffDiv.setStaffs(this.formData.staffs) 219 + this.$refs.selectStaffDiv.setStaffs(this.formData.staffs)
219 } catch (error) { 220 } catch (error) {
220 console.error('Failed to load staffs:', error) 221 console.error('Failed to load staffs:', error)
221 } 222 }
@@ -254,7 +255,7 @@ export default { @@ -254,7 +255,7 @@ export default {
254 this.visible = false 255 this.visible = false
255 this.$emit('success') 256 this.$emit('success')
256 } catch (error) { 257 } catch (error) {
257 - 258 +
258 this.$message.error(this.$t('inspectionPlan.updateError')) 259 this.$message.error(this.$t('inspectionPlan.updateError'))
259 } 260 }
260 } 261 }
src/components/inspection/inspectionPlanState.vue
1 <template> 1 <template>
2 - <el-dialog  
3 - :title="$t('inspectionPlan.confirmOperation')"  
4 - :visible.sync="visible"  
5 - width="30%"  
6 - > 2 + <el-dialog :title="$t('inspectionPlan.confirmOperation')" :visible.sync="visible" width="30%">
7 <div class="text-center"> 3 <div class="text-center">
8 <p>{{ $t('inspectionPlan.confirmStateChange', { state: stateName }) }}</p> 4 <p>{{ $t('inspectionPlan.confirmStateChange', { state: stateName }) }}</p>
9 </div> 5 </div>
@@ -34,7 +30,7 @@ export default { @@ -34,7 +30,7 @@ export default {
34 this.stateName = stateName 30 this.stateName = stateName
35 this.visible = true 31 this.visible = true
36 }, 32 },
37 - 33 +
38 async confirmChange() { 34 async confirmChange() {
39 try { 35 try {
40 await updateInspectionPlanState({ 36 await updateInspectionPlanState({
src/components/inspection/pointRoute.vue
@@ -46,6 +46,10 @@ export default { @@ -46,6 +46,10 @@ export default {
46 this.communityId = getCommunityId() 46 this.communityId = getCommunityId()
47 }, 47 },
48 methods: { 48 methods: {
  49 + open(params) {
  50 + this.pointRouteInfo.inspectionId = params.inspectionId
  51 + this._loadPointRouteData()
  52 + },
49 loadData(point) { 53 loadData(point) {
50 if (!point) return 54 if (!point) return
51 55
src/components/inspection/pointTaskDetail.vue
@@ -122,6 +122,12 @@ export default { @@ -122,6 +122,12 @@ export default {
122 this.communityId = getCommunityId() 122 this.communityId = getCommunityId()
123 }, 123 },
124 methods: { 124 methods: {
  125 + open(params) {
  126 + this.pointTaskDetailInfo.inspectionId = params.inspectionId
  127 + this.pointTaskDetailInfo.inspectionRouteId = params.inspectionRouteId
  128 + this.pointTaskDetailInfo.taskId = params.taskId
  129 + this._loadPointTaskDetailData(this.page.current, this.page.size)
  130 + },
125 loadData(point) { 131 loadData(point) {
126 if (!point) return 132 if (!point) return
127 133
src/components/staff/selectStaffsDiv.vue
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 </el-col> 36 </el-col>
37 </el-row> 37 </el-row>
38 </template> 38 </template>
39 - 39 +
40 <script> 40 <script>
41 import { listStaffsByOrgId } from '@/api/inspection/inspectionPlanApi' 41 import { listStaffsByOrgId } from '@/api/inspection/inspectionPlanApi'
42 import OrgTreeShow from '@/components/org/OrgTreeShow' 42 import OrgTreeShow from '@/components/org/OrgTreeShow'
@@ -96,7 +96,7 @@ export default { @@ -96,7 +96,7 @@ export default {
96 } 96 }
97 } 97 }
98 </script> 98 </script>
99 - 99 +
100 <style scoped> 100 <style scoped>
101 .border-right { 101 .border-right {
102 border-right: 1px solid #eee; 102 border-right: 1px solid #eee;
@@ -152,4 +152,5 @@ export default { @@ -152,4 +152,5 @@ export default {
152 .text-center { 152 .text-center {
153 text-align: center; 153 text-align: center;
154 padding: 10px 0; 154 padding: 10px 0;
155 -}</style>  
156 \ No newline at end of file 155 \ No newline at end of file
  156 +}
  157 +</style>
157 \ No newline at end of file 158 \ No newline at end of file
src/i18n/inspectionI18n.js
@@ -19,6 +19,7 @@ import { messages as inspectionPlanMessages } from &#39;../views/inspection/inspecti @@ -19,6 +19,7 @@ import { messages as inspectionPlanMessages } from &#39;../views/inspection/inspecti
19 import { messages as addInspectionPlanMessages } from '../views/inspection/addInspectionPlanLang' 19 import { messages as addInspectionPlanMessages } from '../views/inspection/addInspectionPlanLang'
20 import { messages as inspectionTaskMessages } from '../views/inspection/inspectionTaskLang' 20 import { messages as inspectionTaskMessages } from '../views/inspection/inspectionTaskLang'
21 import { messages as inspectionTaskDetailsMessages } from '../views/inspection/inspectionTaskDetailsLang' 21 import { messages as inspectionTaskDetailsMessages } from '../views/inspection/inspectionTaskDetailsLang'
  22 +import { messages as inspectionPlanDetailMessages } from '../views/inspection/inspectionPlanDetailLang'
22 23
23 export const messages = { 24 export const messages = {
24 en: { 25 en: {
@@ -43,6 +44,7 @@ export const messages = { @@ -43,6 +44,7 @@ export const messages = {
43 ...addInspectionPlanMessages.en, 44 ...addInspectionPlanMessages.en,
44 ...inspectionTaskMessages.en, 45 ...inspectionTaskMessages.en,
45 ...inspectionTaskDetailsMessages.en, 46 ...inspectionTaskDetailsMessages.en,
  47 + ...inspectionPlanDetailMessages.en,
46 }, 48 },
47 zh: { 49 zh: {
48 ...adminInspectionPlanMessages.zh, 50 ...adminInspectionPlanMessages.zh,
@@ -66,6 +68,7 @@ export const messages = { @@ -66,6 +68,7 @@ export const messages = {
66 ...addInspectionPlanMessages.zh, 68 ...addInspectionPlanMessages.zh,
67 ...inspectionTaskMessages.zh, 69 ...inspectionTaskMessages.zh,
68 ...inspectionTaskDetailsMessages.zh, 70 ...inspectionTaskDetailsMessages.zh,
  71 + ...inspectionPlanDetailMessages.zh,
69 } 72 }
70 73
71 } 74 }
72 \ No newline at end of file 75 \ No newline at end of file
src/router/inspectionRouter.js
@@ -104,4 +104,9 @@ export default [ @@ -104,4 +104,9 @@ export default [
104 name: '/pages/property/maintainanceTaskManage', 104 name: '/pages/property/maintainanceTaskManage',
105 component: () => import('@/views/inspection/maintainanceTaskManageList.vue') 105 component: () => import('@/views/inspection/maintainanceTaskManageList.vue')
106 }, 106 },
  107 + {
  108 + path:'/pages/inspection/inspectionPlanDetail',
  109 + name:'/pages/inspection/inspectionPlanDetail',
  110 + component: () => import('@/views/inspection/inspectionPlanDetailList.vue')
  111 + },
107 ] 112 ]
108 \ No newline at end of file 113 \ No newline at end of file
src/views/contract/contractChangeDetailLang.js
@@ -65,13 +65,6 @@ export const messages = { @@ -65,13 +65,6 @@ export const messages = {
65 staffRequired: 'Staff is required', 65 staffRequired: 'Staff is required',
66 staffNameRequired: 'Staff name is required' 66 staffNameRequired: 'Staff name is required'
67 }, 67 },
68 - selectStaff: {  
69 - title: 'Select Staff',  
70 - orgInfo: 'Organization Information',  
71 - staffInfo: 'Staff Information',  
72 - submitter: 'Submitter',  
73 - dynamicAssign: 'Dynamic Assignment'  
74 - },  
75 chooseContract: { 68 chooseContract: {
76 title: 'Select Contract', 69 title: 'Select Contract',
77 searchPlaceholder: 'Input contract name', 70 searchPlaceholder: 'Input contract name',
@@ -149,13 +142,7 @@ export const messages = { @@ -149,13 +142,7 @@ export const messages = {
149 staffRequired: '员工不能为空', 142 staffRequired: '员工不能为空',
150 staffNameRequired: '员工名称不能为空' 143 staffNameRequired: '员工名称不能为空'
151 }, 144 },
152 - selectStaff: {  
153 - title: '选择员工',  
154 - orgInfo: '组织信息',  
155 - staffInfo: '员工信息',  
156 - submitter: '提交者',  
157 - dynamicAssign: '动态指定'  
158 - }, 145 +
159 chooseContract: { 146 chooseContract: {
160 title: '选择合同信息', 147 title: '选择合同信息',
161 searchPlaceholder: '输入合同信息名称', 148 searchPlaceholder: '输入合同信息名称',
src/views/inspection/InspectionTaskList.vue
@@ -109,8 +109,8 @@ @@ -109,8 +109,8 @@
109 </el-table> 109 </el-table>
110 110
111 <el-row style="margin-top: 20px;"> 111 <el-row style="margin-top: 20px;">
112 - <el-col :span="18">  
113 - <div class="note">{{ $t('inspectionTask.note') }}</div> 112 + <el-col :span="18" class="text-left table-desc">
  113 + <div >{{ $t('inspectionTask.note') }}</div>
114 </el-col> 114 </el-col>
115 <el-col :span="6"> 115 <el-col :span="6">
116 <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total" 116 <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total"
@@ -237,7 +237,7 @@ export default { @@ -237,7 +237,7 @@ export default {
237 } 237 }
238 238
239 .plan-list-card { 239 .plan-list-card {
240 - height: calc(100vh - 100px); 240 + height: auto;
241 } 241 }
242 242
243 .plan-list { 243 .plan-list {
src/views/inspection/addInspectionPlanList.vue
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <span>{{ $t('addInspectionPlan.title') }}</span> 5 <span>{{ $t('addInspectionPlan.title') }}</span>
6 </div> 6 </div>
7 7
8 - <el-form ref="form" :model="form" label-width="150px" label-position="right"> 8 + <el-form ref="form" :model="form" label-width="150px" label-position="right" class="text-left">
9 <el-row :gutter="20"> 9 <el-row :gutter="20">
10 <el-col :span="12"> 10 <el-col :span="12">
11 <el-form-item :label="$t('addInspectionPlan.planName')" prop="inspectionPlanName" required> 11 <el-form-item :label="$t('addInspectionPlan.planName')" prop="inspectionPlanName" required>
src/views/inspection/inspectionPlanDetailLang.js 0 → 100644
  1 +export const messages = {
  2 + en: {
  3 + inspectionPlanDetail: {
  4 + title: 'Inspection Plan Detail',
  5 + planName: 'Plan Name',
  6 + planRoute: 'Plan Route',
  7 + planPeriod: 'Plan Period',
  8 + signType: 'Sign Type',
  9 + dateRange: 'Date Range',
  10 + timeRange: 'Time Range',
  11 + beforeTime: 'Before Time (min)',
  12 + creator: 'Creator',
  13 + createTime: 'Create Time',
  14 + status: 'Status',
  15 + staff: 'Staff',
  16 + route: 'Route',
  17 + point: 'Point',
  18 + task: 'Task',
  19 + detail: 'Detail',
  20 + staffName: 'Staff Name',
  21 + startTime: 'Start Time',
  22 + endTime: 'End Time',
  23 + routeList: 'Route List',
  24 + pointId: 'Point ID',
  25 + pointName: 'Point Name',
  26 + pointType: 'Point Type',
  27 + pointLocation: 'Location',
  28 + pointTimeRange: 'Time Range',
  29 + sortNumber: 'Sort Number',
  30 + operation: 'Operation',
  31 + choosePoint: 'Choose Inspection Point',
  32 + pointNamePlaceholder: 'Enter point name',
  33 + deletePointConfirm: 'Are you sure to delete this inspection point?',
  34 + editPoint: 'Edit Inspection Point',
  35 + startTimePlaceholder: 'Select start time',
  36 + endTimePlaceholder: 'Select end time',
  37 + sortNumberPlaceholder: 'Enter sort number',
  38 + startTimeRequired: 'Start time is required',
  39 + endTimeRequired: 'End time is required',
  40 + sortNumberRequired: 'Sort number is required',
  41 + sortNumberMustBeNumber: 'Sort number must be a number',
  42 + choosePointWarning: 'Please select at least one inspection point',
  43 + taskList: 'Task List',
  44 + taskDetailId: 'Task Detail ID',
  45 + taskStatus: 'Task Status',
  46 + planUser: 'Plan User',
  47 + actualUser: 'Actual User',
  48 + signStatus: 'Sign Status',
  49 + pointStatus: 'Point Status',
  50 + inspectionDesc: 'Description',
  51 + inspectionPhoto: 'Photos',
  52 + planTimeRange: 'Plan Time',
  53 + actualTime: 'Actual Time',
  54 + searchPlanUser: 'Search by user',
  55 + searchStartTime: 'Start time',
  56 + searchEndTime: 'End time'
  57 + }
  58 + },
  59 + zh: {
  60 + inspectionPlanDetail: {
  61 + title: '巡检计划详情',
  62 + planName: '计划名称',
  63 + planRoute: '计划路线',
  64 + planPeriod: '计划周期',
  65 + signType: '签到方式',
  66 + dateRange: '日期范围',
  67 + timeRange: '时间范围',
  68 + beforeTime: '任务提前(分钟)',
  69 + creator: '制定人',
  70 + createTime: '制定时间',
  71 + status: '状态',
  72 + staff: '巡检人员',
  73 + route: '巡检路线',
  74 + point: '巡检点',
  75 + task: '巡检任务',
  76 + detail: '巡检明细',
  77 + staffName: '巡检人员',
  78 + startTime: '开始时间',
  79 + endTime: '结束时间',
  80 + routeList: '路线列表',
  81 + pointId: '巡检点ID',
  82 + pointName: '巡检点名称',
  83 + pointType: '巡检点类型',
  84 + pointLocation: '巡检位置',
  85 + pointTimeRange: '时间范围',
  86 + sortNumber: '排序',
  87 + operation: '操作',
  88 + choosePoint: '选择巡检点',
  89 + pointNamePlaceholder: '输入巡检点名称',
  90 + deletePointConfirm: '确定删除该巡检点吗?',
  91 + editPoint: '修改巡检点',
  92 + startTimePlaceholder: '请填写开始时间',
  93 + endTimePlaceholder: '请填写结束时间',
  94 + sortNumberPlaceholder: '请填写排序值',
  95 + startTimeRequired: '开始时间不能为空',
  96 + endTimeRequired: '结束时间不能为空',
  97 + sortNumberRequired: '排序不能为空',
  98 + sortNumberMustBeNumber: '顺序必须是数字',
  99 + choosePointWarning: '请选择巡检点',
  100 + taskList: '任务列表',
  101 + taskDetailId: '任务详情ID',
  102 + taskStatus: '任务状态',
  103 + planUser: '计划巡检人',
  104 + actualUser: '实际巡检人',
  105 + signStatus: '实际签到状态',
  106 + pointStatus: '巡检点状态',
  107 + inspectionDesc: '巡检情况',
  108 + inspectionPhoto: '巡检照片',
  109 + planTimeRange: '计划时间',
  110 + actualTime: '实际巡检时间',
  111 + searchPlanUser: '请输入巡检人',
  112 + searchStartTime: '实际巡检开始时间',
  113 + searchEndTime: '实际巡检结束时间'
  114 + }
  115 + }
  116 +}
0 \ No newline at end of file 117 \ No newline at end of file
src/views/inspection/inspectionPlanDetailList.vue 0 → 100644
  1 +<template>
  2 + <div class="inspection-plan-detail-container">
  3 + <el-card class="box-card">
  4 + <div slot="header" class="clearfix">
  5 + <span>{{ $t('inspectionPlanDetail.title') }}</span>
  6 + </div>
  7 + <div class="content-wrapper">
  8 + <el-row :gutter="20">
  9 + <el-col :span="8">
  10 + <div class="form-group">
  11 + <label class="col-form-label">
  12 + {{ $t('inspectionPlanDetail.planName') }}:
  13 + </label>
  14 + <label>{{ inspectionPlanDetailInfo.inspectionPlanName }}</label>
  15 + </div>
  16 + </el-col>
  17 + <el-col :span="8">
  18 + <div class="form-group">
  19 + <label class="col-form-label">
  20 + {{ $t('inspectionPlanDetail.planRoute') }}:
  21 + </label>
  22 + <label>{{ inspectionPlanDetailInfo.inspectionRouteName }}</label>
  23 + </div>
  24 + </el-col>
  25 + <el-col :span="8">
  26 + <div class="form-group">
  27 + <label class="col-form-label">
  28 + {{ $t('inspectionPlanDetail.planPeriod') }}:
  29 + </label>
  30 + <label>{{ inspectionPlanDetailInfo.inspectionPlanPeriodName }}</label>
  31 + </div>
  32 + </el-col>
  33 + <el-col :span="8">
  34 + <div class="form-group">
  35 + <label class="col-form-label">
  36 + {{ $t('inspectionPlanDetail.signType') }}:
  37 + </label>
  38 + <label>{{ inspectionPlanDetailInfo.signTypeName }}</label>
  39 + </div>
  40 + </el-col>
  41 + <el-col :span="8">
  42 + <div class="form-group">
  43 + <label class="col-form-label">
  44 + {{ $t('inspectionPlanDetail.dateRange') }}:
  45 + </label>
  46 + <label>{{ inspectionPlanDetailInfo.startDate }}~{{ inspectionPlanDetailInfo.endDate }}</label>
  47 + </div>
  48 + </el-col>
  49 + <el-col :span="8">
  50 + <div class="form-group">
  51 + <label class="col-form-label">
  52 + {{ $t('inspectionPlanDetail.timeRange') }}:
  53 + </label>
  54 + <label>{{ inspectionPlanDetailInfo.startTime }}~{{ inspectionPlanDetailInfo.endTime }}</label>
  55 + </div>
  56 + </el-col>
  57 + <el-col :span="8">
  58 + <div class="form-group">
  59 + <label class="col-form-label">
  60 + {{ $t('inspectionPlanDetail.beforeTime') }}:
  61 + </label>
  62 + <label>{{ inspectionPlanDetailInfo.beforeTime }}</label>
  63 + </div>
  64 + </el-col>
  65 + <el-col :span="8">
  66 + <div class="form-group">
  67 + <label class="col-form-label">
  68 + {{ $t('inspectionPlanDetail.creator') }}:
  69 + </label>
  70 + <label>{{ inspectionPlanDetailInfo.createUserName }}</label>
  71 + </div>
  72 + </el-col>
  73 + <el-col :span="8">
  74 + <div class="form-group">
  75 + <label class="col-form-label">
  76 + {{ $t('inspectionPlanDetail.createTime') }}:
  77 + </label>
  78 + <label>{{ inspectionPlanDetailInfo.createTime }}</label>
  79 + </div>
  80 + </el-col>
  81 + <el-col :span="8">
  82 + <div class="form-group">
  83 + <label class="col-form-label">
  84 + {{ $t('inspectionPlanDetail.status') }}:
  85 + </label>
  86 + <label>{{ inspectionPlanDetailInfo.stateName }}</label>
  87 + </div>
  88 + </el-col>
  89 + </el-row>
  90 + </div>
  91 + </el-card>
  92 +
  93 + <el-card class="box-card margin-top">
  94 + <div class="content-wrapper">
  95 + <el-tabs v-model="inspectionPlanDetailInfo._currentTab" @tab-click="changeTab(inspectionPlanDetailInfo._currentTab)">
  96 + <el-tab-pane :label="$t('inspectionPlanDetail.staff')" name="inspectionPlanDetailStaff">
  97 + <inspection-plan-detail-staff ref="inspectionPlanDetailStaff" />
  98 + </el-tab-pane>
  99 + <el-tab-pane :label="$t('inspectionPlanDetail.route')" name="pointRoute">
  100 + <point-route ref="pointRoute" />
  101 + </el-tab-pane>
  102 + <el-tab-pane :label="$t('inspectionPlanDetail.point')" name="inspectionRoutePoint">
  103 + <inspection-route-point ref="inspectionRoutePoint" />
  104 + </el-tab-pane>
  105 + <el-tab-pane :label="$t('inspectionPlanDetail.task')" name="routeTask">
  106 + <route-task ref="routeTask" />
  107 + </el-tab-pane>
  108 + <el-tab-pane :label="$t('inspectionPlanDetail.detail')" name="pointTaskDetail">
  109 + <point-task-detail ref="pointTaskDetail" />
  110 + </el-tab-pane>
  111 + </el-tabs>
  112 + </div>
  113 + </el-card>
  114 + </div>
  115 +</template>
  116 +
  117 +<script>
  118 +import { getCommunityId } from '@/api/community/communityApi'
  119 +import InspectionPlanDetailStaff from '@/components/inspection/InspectionPlanDetailStaff'
  120 +import PointRoute from '@/components/inspection/pointRoute'
  121 +import InspectionRoutePoint from '@/components/inspection/InspectionRoutePoint'
  122 +import RouteTask from '@/components/inspection/RouteTask'
  123 +import PointTaskDetail from '@/components/inspection/pointTaskDetail'
  124 +import { getInspectionPlanDetail } from '@/api/inspection/inspectionPlanDetailApi'
  125 +
  126 +export default {
  127 + name: 'InspectionPlanDetailList',
  128 + components: {
  129 + InspectionPlanDetailStaff,
  130 + PointRoute,
  131 + InspectionRoutePoint,
  132 + RouteTask,
  133 + PointTaskDetail
  134 + },
  135 + data() {
  136 + return {
  137 + inspectionPlanDetailInfo: {
  138 + beforeTime: '',
  139 + canReexamine: '',
  140 + createTime: '',
  141 + createUserId: '',
  142 + createUserName: '',
  143 + endDate: '',
  144 + endTime: '',
  145 + inspectionDay: '',
  146 + inspectionMonth: '',
  147 + inspectionPlanId: '',
  148 + inspectionPlanName: '',
  149 + inspectionPlanPeriod: '',
  150 + inspectionPlanPeriodName: '',
  151 + inspectionRouteId: '',
  152 + inspectionRouteName: '',
  153 + inspectionWorkday: '',
  154 + remark: '',
  155 + signType: '',
  156 + signTypeName: '',
  157 + startDate: '',
  158 + startTime: '',
  159 + state: '',
  160 + stateName: '',
  161 + total: 0,
  162 + records: 1,
  163 + moreCondition: false,
  164 + inspectionName: '',
  165 + pointObjTypes: [],
  166 + _currentTab: 'inspectionPlanDetailStaff'
  167 + },
  168 + communityId: ''
  169 + }
  170 + },
  171 + created() {
  172 + this.communityId = getCommunityId()
  173 + this.inspectionPlanDetailInfo.inspectionPlanId = this.$route.query.inspectionPlanId
  174 + this.getInspectionPlanDetail()
  175 + },
  176 + methods: {
  177 + async getInspectionPlanDetail() {
  178 + try {
  179 + const params = {
  180 + page: 1,
  181 + row: 1,
  182 + communityId: this.communityId,
  183 + inspectionPlanId: this.inspectionPlanDetailInfo.inspectionPlanId
  184 + }
  185 + const { data } = await getInspectionPlanDetail(params)
  186 + Object.assign(this.inspectionPlanDetailInfo, data[0])
  187 + this.changeTab(this.inspectionPlanDetailInfo._currentTab)
  188 + } catch (error) {
  189 + console.error('获取巡检计划详情失败:', error)
  190 + }
  191 + },
  192 + changeTab(tab) {
  193 + this.inspectionPlanDetailInfo._currentTab = tab
  194 + setTimeout(() => {
  195 + const componentRef = this.$refs[`${tab}`]
  196 + if (componentRef && componentRef.open) {
  197 + componentRef.open({
  198 + inspectionPlanId: this.inspectionPlanDetailInfo.inspectionPlanId,
  199 + inspectionRouteId: this.inspectionPlanDetailInfo.inspectionRouteId
  200 + })
  201 + }
  202 + }, 500)
  203 + }
  204 + }
  205 +}
  206 +</script>
  207 +
  208 +<style lang="scss" scoped>
  209 +.inspection-plan-detail-container {
  210 + padding: 20px;
  211 +
  212 + .box-card {
  213 + margin-bottom: 20px;
  214 +
  215 + .clearfix {
  216 + display: flex;
  217 + justify-content: space-between;
  218 + align-items: center;
  219 + }
  220 +
  221 + .content-wrapper {
  222 + padding: 20px;
  223 +
  224 + .form-group {
  225 + margin-bottom: 15px;
  226 + display: flex;
  227 + align-items: center;
  228 +
  229 + .col-form-label {
  230 + margin-right: 10px;
  231 + min-width: 100px;
  232 + }
  233 + }
  234 + }
  235 + }
  236 +
  237 + .margin-top {
  238 + margin-top: 20px;
  239 + }
  240 +}
  241 +</style>
0 \ No newline at end of file 242 \ No newline at end of file
src/views/inspection/inspectionPlanLang.js
@@ -32,7 +32,10 @@ export const messages = { @@ -32,7 +32,10 @@ export const messages = {
32 confirmDeleteTitle: 'Confirm Deletion', 32 confirmDeleteTitle: 'Confirm Deletion',
33 confirmDeleteContent: 'Are you sure you want to delete this inspection plan?', 33 confirmDeleteContent: 'Are you sure you want to delete this inspection plan?',
34 cancel: 'Cancel', 34 cancel: 'Cancel',
35 - confirm: 'Confirm' 35 + confirm: 'Confirm',
  36 + confirmOperation: 'Confirm Operation',
  37 + confirmStateChange: 'Confirm State Change',
  38 +
36 }, 39 },
37 editInspectionPlan: { 40 editInspectionPlan: {
38 title: 'Edit Plan', 41 title: 'Edit Plan',
@@ -100,7 +103,9 @@ export const messages = { @@ -100,7 +103,9 @@ export const messages = {
100 confirmDeleteTitle: '确认删除', 103 confirmDeleteTitle: '确认删除',
101 confirmDeleteContent: '确定删除巡检计划吗?', 104 confirmDeleteContent: '确定删除巡检计划吗?',
102 cancel: '取消', 105 cancel: '取消',
103 - confirm: '确定' 106 + confirm: '确定',
  107 + confirmOperation: '确认操作',
  108 + confirmStateChange: '确认状态变更',
104 }, 109 },
105 editInspectionPlan: { 110 editInspectionPlan: {
106 title: '修改计划', 111 title: '修改计划',
src/views/inspection/pointPlanLang.js
1 export default { 1 export default {
2 en: { 2 en: {
3 - inspectionPlan: {  
4 - planName: 'Plan Name',  
5 - planRoute: 'Plan Route',  
6 - planPeriod: 'Plan Cycle',  
7 - signType: 'Sign-in Method',  
8 - dateRange: 'Date Range',  
9 - timeRange: 'Time Range',  
10 - taskAhead: 'Task Ahead (minutes)',  
11 - creator: 'Creator',  
12 - createTime: 'Create Time',  
13 - inspector: 'Inspector',  
14 - status: 'Status'  
15 - } 3 +
16 }, 4 },
17 zh: { 5 zh: {
18 - inspectionPlan: {  
19 - planName: '计划名称',  
20 - planRoute: '计划路线',  
21 - planPeriod: '计划周期',  
22 - signType: '签到方式',  
23 - dateRange: '日期范围',  
24 - timeRange: '时间范围',  
25 - taskAhead: '任务提前(分钟)',  
26 - creator: '制定人',  
27 - createTime: '制定时间',  
28 - inspector: '巡检人',  
29 - status: '状态'  
30 - } 6 +
31 } 7 }
32 } 8 }
33 \ No newline at end of file 9 \ No newline at end of file
src/views/oa/addAttendanceClassesStaffLang.js
@@ -13,14 +13,6 @@ export const messages = { @@ -13,14 +13,6 @@ export const messages = {
13 imageSizeLimit: 'Image size cannot exceed 2MB', 13 imageSizeLimit: 'Image size cannot exceed 2MB',
14 uploadFailed: 'Upload failed' 14 uploadFailed: 'Upload failed'
15 }, 15 },
16 - selectStaff: {  
17 - title: 'Select Staff',  
18 - orgInfo: 'Organization Information',  
19 - staffInfo: 'Staff Information',  
20 - submitter: 'Submitter',  
21 - dynamicAssign: 'Dynamic Assign',  
22 - loadStaffFailed: 'Failed to load staff list'  
23 - },  
24 orgTree: { 16 orgTree: {
25 loadFailed: 'Failed to load organization tree' 17 loadFailed: 'Failed to load organization tree'
26 } 18 }
@@ -39,14 +31,6 @@ export const messages = { @@ -39,14 +31,6 @@ export const messages = {
39 imageSizeLimit: '图片大小不能超过2MB', 31 imageSizeLimit: '图片大小不能超过2MB',
40 uploadFailed: '上传失败' 32 uploadFailed: '上传失败'
41 }, 33 },
42 - selectStaff: {  
43 - title: '选择员工',  
44 - orgInfo: '组织信息',  
45 - staffInfo: '员工信息',  
46 - submitter: '提交者',  
47 - dynamicAssign: '动态指定',  
48 - loadStaffFailed: '加载员工列表失败'  
49 - },  
50 orgTree: { 34 orgTree: {
51 loadFailed: '加载组织树失败' 35 loadFailed: '加载组织树失败'
52 } 36 }
src/views/oa/addComplaintTypeLang.js
@@ -17,12 +17,6 @@ export const messages = { @@ -17,12 +17,6 @@ export const messages = {
17 autoReply: 'Auto Reply', 17 autoReply: 'Auto Reply',
18 manualReply: 'Manual Reply' 18 manualReply: 'Manual Reply'
19 }, 19 },
20 - selectStaff: {  
21 - orgInfo: 'Organization Info',  
22 - staffInfo: 'Staff Info',  
23 - selectedStaff: 'Selected Staff',  
24 - noRepeatSelect: 'Do not select repeatedly'  
25 - }  
26 }, 20 },
27 zh: { 21 zh: {
28 addComplaintType: { 22 addComplaintType: {
@@ -42,11 +36,5 @@ export const messages = { @@ -42,11 +36,5 @@ export const messages = {
42 autoReply: '自动回复', 36 autoReply: '自动回复',
43 manualReply: '人工回复' 37 manualReply: '人工回复'
44 }, 38 },
45 - selectStaff: {  
46 - orgInfo: '组织信息',  
47 - staffInfo: '员工信息',  
48 - selectedStaff: '已选员工',  
49 - noRepeatSelect: '请勿重复选择'  
50 - }  
51 } 39 }
52 } 40 }
53 \ No newline at end of file 41 \ No newline at end of file
src/views/oa/addExamineStaffLang.js
@@ -12,13 +12,6 @@ export const messages = { @@ -12,13 +12,6 @@ export const messages = {
12 staffIntroduction: 'Staff Introduction', 12 staffIntroduction: 'Staff Introduction',
13 staffIntroductionPlaceholder: 'Required, please fill in staff introduction' 13 staffIntroductionPlaceholder: 'Required, please fill in staff introduction'
14 }, 14 },
15 - selectStaff: {  
16 - title: 'Select Staff',  
17 - orgInfo: 'Organization Information',  
18 - staffInfo: 'Staff Information',  
19 - submitter: 'Submitter',  
20 - dynamicAssign: 'Dynamic Assignment'  
21 - },  
22 uploadImage: { 15 uploadImage: {
23 imageSizeLimit: 'Image size cannot exceed 2MB', 16 imageSizeLimit: 'Image size cannot exceed 2MB',
24 uploadFailed: 'Upload failed' 17 uploadFailed: 'Upload failed'
@@ -37,13 +30,6 @@ export const messages = { @@ -37,13 +30,6 @@ export const messages = {
37 staffIntroduction: '员工简介', 30 staffIntroduction: '员工简介',
38 staffIntroductionPlaceholder: '必填,请输入员工简介' 31 staffIntroductionPlaceholder: '必填,请输入员工简介'
39 }, 32 },
40 - selectStaff: {  
41 - title: '选择员工',  
42 - orgInfo: '组织信息',  
43 - staffInfo: '员工信息',  
44 - submitter: '提交者',  
45 - dynamicAssign: '动态指定'  
46 - },  
47 uploadImage: { 33 uploadImage: {
48 imageSizeLimit: '图片大小不能超过2MB', 34 imageSizeLimit: '图片大小不能超过2MB',
49 uploadFailed: '上传失败' 35 uploadFailed: '上传失败'
src/views/oa/addWorkLang.js
@@ -47,13 +47,6 @@ export const messages = { @@ -47,13 +47,6 @@ export const messages = {
47 success: 'File uploaded successfully', 47 success: 'File uploaded successfully',
48 failed: 'File upload failed' 48 failed: 'File upload failed'
49 }, 49 },
50 - selectStaff: {  
51 - title: 'Select Staff',  
52 - orgInfo: 'Organization Information',  
53 - staffInfo: 'Staff Information',  
54 - submitter: 'Submitter',  
55 - dynamicAssign: 'Dynamic Assignment'  
56 - }  
57 }, 50 },
58 zh: { 51 zh: {
59 addWork: { 52 addWork: {
@@ -103,12 +96,5 @@ export const messages = { @@ -103,12 +96,5 @@ export const messages = {
103 success: '文件上传成功', 96 success: '文件上传成功',
104 failed: '文件上传失败' 97 failed: '文件上传失败'
105 }, 98 },
106 - selectStaff: {  
107 - title: '选择员工',  
108 - orgInfo: '组织信息',  
109 - staffInfo: '员工信息',  
110 - submitter: '提交者',  
111 - dynamicAssign: '动态指定'  
112 - }  
113 } 99 }
114 } 100 }
115 \ No newline at end of file 101 \ No newline at end of file
src/views/oa/editComplaintTypeLang.js
@@ -20,13 +20,6 @@ export const messages = { @@ -20,13 +20,6 @@ export const messages = {
20 saveError: 'Save failed', 20 saveError: 'Save failed',
21 loadError: 'Failed to load complaint type details' 21 loadError: 'Failed to load complaint type details'
22 }, 22 },
23 - selectStaff: {  
24 - orgInfo: 'Organization Information',  
25 - staffInfo: 'Staff Information',  
26 - selectedStaff: 'Selected Staff',  
27 - staffAlreadySelected: 'Staff already selected',  
28 - loadStaffError: 'Failed to load staff information'  
29 - },  
30 orgTree: { 23 orgTree: {
31 loadError: 'Failed to load organization tree' 24 loadError: 'Failed to load organization tree'
32 } 25 }
@@ -52,13 +45,6 @@ export const messages = { @@ -52,13 +45,6 @@ export const messages = {
52 saveError: '保存失败', 45 saveError: '保存失败',
53 loadError: '加载投诉类型详情失败' 46 loadError: '加载投诉类型详情失败'
54 }, 47 },
55 - selectStaff: {  
56 - orgInfo: '组织信息',  
57 - staffInfo: '员工信息',  
58 - selectedStaff: '已选员工',  
59 - staffAlreadySelected: '请勿重复选择',  
60 - loadStaffError: '加载员工信息失败'  
61 - },  
62 orgTree: { 48 orgTree: {
63 loadError: '加载组织树失败' 49 loadError: '加载组织树失败'
64 } 50 }
src/views/oa/editWorkLang.js
@@ -51,13 +51,6 @@ export const messages = { @@ -51,13 +51,6 @@ export const messages = {
51 placeholder: 'Required, please enter content', 51 placeholder: 'Required, please enter content',
52 uploadFailed: 'Image upload failed' 52 uploadFailed: 'Image upload failed'
53 }, 53 },
54 - selectStaff: {  
55 - title: 'Select Staff',  
56 - orgInfo: 'Organization Information',  
57 - staffInfo: 'Staff Information',  
58 - submitter: 'Submitter',  
59 - dynamicAssign: 'Dynamic Assign'  
60 - }  
61 }, 54 },
62 zh: { 55 zh: {
63 editWork: { 56 editWork: {
@@ -111,12 +104,5 @@ export const messages = { @@ -111,12 +104,5 @@ export const messages = {
111 placeholder: '必填,请输入内容', 104 placeholder: '必填,请输入内容',
112 uploadFailed: '图片上传失败' 105 uploadFailed: '图片上传失败'
113 }, 106 },
114 - selectStaff: {  
115 - title: '选择员工',  
116 - orgInfo: '组织信息',  
117 - staffInfo: '员工信息',  
118 - submitter: '提交者',  
119 - dynamicAssign: '动态指定'  
120 - }  
121 } 107 }
122 } 108 }
123 \ No newline at end of file 109 \ No newline at end of file
src/views/oa/newOaWorkflowDetailLang.js
@@ -41,13 +41,6 @@ export const messages = { @@ -41,13 +41,6 @@ export const messages = {
41 transferred: 'Transferred', 41 transferred: 'Transferred',
42 completed: 'Completed' 42 completed: 'Completed'
43 }, 43 },
44 - selectStaff: {  
45 - title: 'Select Staff',  
46 - orgInfo: 'Organization Information',  
47 - staffInfo: 'Staff Information',  
48 - submitter: 'Submitter',  
49 - customAssign: 'Dynamic Assignment'  
50 - }  
51 }, 44 },
52 zh: { 45 zh: {
53 newOaWorkflowDetail: { 46 newOaWorkflowDetail: {
@@ -91,12 +84,5 @@ export const messages = { @@ -91,12 +84,5 @@ export const messages = {
91 transferred: '转单', 84 transferred: '转单',
92 completed: '办结' 85 completed: '办结'
93 }, 86 },
94 - selectStaff: {  
95 - title: '选择员工',  
96 - orgInfo: '组织信息',  
97 - staffInfo: '员工信息',  
98 - submitter: '提交者',  
99 - customAssign: '动态指定'  
100 - }  
101 } 87 }
102 } 88 }
103 \ No newline at end of file 89 \ No newline at end of file
src/views/resource/addItemOutLang.js
@@ -63,18 +63,6 @@ export const messages = { @@ -63,18 +63,6 @@ export const messages = {
63 fixedItem: 'Fixed Item', 63 fixedItem: 'Fixed Item',
64 stock: 'Stock' 64 stock: 'Stock'
65 }, 65 },
66 - selectStaff: {  
67 - title: 'Select Staff',  
68 - orgInfo: 'Organization Information',  
69 - staffInfo: 'Staff Information',  
70 - submitter: 'Submitter',  
71 - dynamicAssign: 'Dynamic Assignment',  
72 - confirm: 'Confirm',  
73 - cancel: 'Cancel',  
74 - selectStaffWarning: 'Please select a staff member',  
75 - fetchOrgError: 'Failed to fetch organization data',  
76 - fetchStaffError: 'Failed to fetch staff data'  
77 - }  
78 }, 66 },
79 zh: { 67 zh: {
80 addItemOut: { 68 addItemOut: {
@@ -140,17 +128,5 @@ export const messages = { @@ -140,17 +128,5 @@ export const messages = {
140 fixedItem: '固定物品', 128 fixedItem: '固定物品',
141 stock: '物品库存' 129 stock: '物品库存'
142 }, 130 },
143 - selectStaff: {  
144 - title: '选择员工',  
145 - orgInfo: '组织信息',  
146 - staffInfo: '员工信息',  
147 - submitter: '提交者',  
148 - dynamicAssign: '动态指定',  
149 - confirm: '确定',  
150 - cancel: '取消',  
151 - selectStaffWarning: '请选择员工',  
152 - fetchOrgError: '获取组织数据失败',  
153 - fetchStaffError: '获取员工数据失败'  
154 - }  
155 } 131 }
156 } 132 }
157 \ No newline at end of file 133 \ No newline at end of file
src/views/resource/addPurchaseApplyLang.js
@@ -53,13 +53,6 @@ export const messages = { @@ -53,13 +53,6 @@ export const messages = {
53 itemStock: 'Item Stock', 53 itemStock: 'Item Stock',
54 selectItemsRequired: 'Please select items to purchase' 54 selectItemsRequired: 'Please select items to purchase'
55 }, 55 },
56 - selectStaff: {  
57 - title: 'Select Staff',  
58 - orgInfo: 'Organization Information',  
59 - staffInfo: 'Staff Information',  
60 - submitter: 'Submitter',  
61 - dynamicAssign: 'Dynamic Assignment'  
62 - }  
63 }, 56 },
64 zh: { 57 zh: {
65 addPurchaseApply: { 58 addPurchaseApply: {
@@ -115,12 +108,5 @@ export const messages = { @@ -115,12 +108,5 @@ export const messages = {
115 itemStock: '物品库存', 108 itemStock: '物品库存',
116 selectItemsRequired: '请选择需要采购的物品' 109 selectItemsRequired: '请选择需要采购的物品'
117 }, 110 },
118 - selectStaff: {  
119 - title: '选择员工',  
120 - orgInfo: '组织信息',  
121 - staffInfo: '员工信息',  
122 - submitter: '提交者',  
123 - dynamicAssign: '动态指定'  
124 - }  
125 } 111 }
126 } 112 }
127 \ No newline at end of file 113 \ No newline at end of file
src/views/resource/allocationStorehouseApplyLang.js
@@ -53,13 +53,6 @@ export const messages = { @@ -53,13 +53,6 @@ export const messages = {
53 itemStock: 'Item Stock', 53 itemStock: 'Item Stock',
54 selectItemFirst: 'Please select items first' 54 selectItemFirst: 'Please select items first'
55 }, 55 },
56 - selectStaff: {  
57 - title: 'Select Staff',  
58 - orgInfo: 'Organization Information',  
59 - staffInfo: 'Staff Information',  
60 - submitter: 'Submitter',  
61 - dynamicAssign: 'Dynamic Assignment'  
62 - }  
63 }, 56 },
64 zh: { 57 zh: {
65 allocationStorehouseApply: { 58 allocationStorehouseApply: {
@@ -115,12 +108,5 @@ export const messages = { @@ -115,12 +108,5 @@ export const messages = {
115 itemStock: '物品库存', 108 itemStock: '物品库存',
116 selectItemFirst: '请先选择物品' 109 selectItemFirst: '请先选择物品'
117 }, 110 },
118 - selectStaff: {  
119 - title: '选择员工',  
120 - orgInfo: '组织信息',  
121 - staffInfo: '员工信息',  
122 - submitter: '提交者',  
123 - dynamicAssign: '动态指定'  
124 - }  
125 } 111 }
126 } 112 }
127 \ No newline at end of file 113 \ No newline at end of file
src/views/resource/purchaseApplyDetailLang.js
@@ -66,13 +66,6 @@ export const messages = { @@ -66,13 +66,6 @@ export const messages = {
66 submitSuccess: 'Submit successfully', 66 submitSuccess: 'Submit successfully',
67 submitFailed: 'Submit failed' 67 submitFailed: 'Submit failed'
68 }, 68 },
69 - selectStaff: {  
70 - selectStaff: 'Select Staff',  
71 - orgInfo: 'Organization Information',  
72 - staffInfo: 'Staff Information',  
73 - submitter: 'Submitter',  
74 - dynamicAssign: 'Dynamic Assign'  
75 - }  
76 }, 69 },
77 zh: { 70 zh: {
78 purchaseApplyDetail: { 71 purchaseApplyDetail: {
@@ -141,12 +134,5 @@ export const messages = { @@ -141,12 +134,5 @@ export const messages = {
141 submitSuccess: '提交成功', 134 submitSuccess: '提交成功',
142 submitFailed: '提交失败' 135 submitFailed: '提交失败'
143 }, 136 },
144 - selectStaff: {  
145 - selectStaff: '选择员工',  
146 - orgInfo: '组织信息',  
147 - staffInfo: '员工信息',  
148 - submitter: '提交者',  
149 - dynamicAssign: '动态指定'  
150 - }  
151 } 137 }
152 } 138 }
153 \ No newline at end of file 139 \ No newline at end of file
src/views/staff/staffLang.js
@@ -39,7 +39,15 @@ export const messages = { @@ -39,7 +39,15 @@ export const messages = {
39 cancel: 'Cancel', 39 cancel: 'Cancel',
40 confirmDelete: 'Are you sure to delete? Before deleting staff, please confirm that the staff has completed the relevant approval process. After deletion, the relevant process will not be able to continue. Please operate carefully!', 40 confirmDelete: 'Are you sure to delete? Before deleting staff, please confirm that the staff has completed the relevant approval process. After deletion, the relevant process will not be able to continue. Please operate carefully!',
41 confirmDeleteAction: 'Confirm Delete' 41 confirmDeleteAction: 'Confirm Delete'
42 - } 42 + },
  43 + selectStaff: {
  44 + title: 'Select Staff',
  45 + orgInfo: 'Organization Information',
  46 + staffInfo: 'Staff Information',
  47 + submitter: 'Submitter',
  48 + dynamicAssign: 'Dynamic Assignment',
  49 + selectedStaff: 'Selected Staff'
  50 + },
43 }, 51 },
44 zh: { 52 zh: {
45 staff: { 53 staff: {
@@ -80,6 +88,14 @@ export const messages = { @@ -80,6 +88,14 @@ export const messages = {
80 cancel: '取消', 88 cancel: '取消',
81 confirmDelete: '确认是否删除,删除员工前请确认员工已完成相关审批流程,删除后相关流程将无法继续进行,请慎重操作!', 89 confirmDelete: '确认是否删除,删除员工前请确认员工已完成相关审批流程,删除后相关流程将无法继续进行,请慎重操作!',
82 confirmDeleteAction: '确认删除' 90 confirmDeleteAction: '确认删除'
83 - } 91 + },
  92 + selectStaff: {
  93 + title: '选择员工',
  94 + orgInfo: '组织信息',
  95 + staffInfo: '员工信息',
  96 + submitter: '提交者',
  97 + dynamicAssign: '动态指定',
  98 + selectedStaff: '已选员工'
  99 + },
84 } 100 }
85 } 101 }
86 \ No newline at end of file 102 \ No newline at end of file
src/views/system/workflowSettingManageLang.js
@@ -26,14 +26,6 @@ export const messages = { @@ -26,14 +26,6 @@ export const messages = {
26 instruction4: 'Must configure the corresponding process', 26 instruction4: 'Must configure the corresponding process',
27 invalidOperation: 'Invalid operation' 27 invalidOperation: 'Invalid operation'
28 }, 28 },
29 - selectStaff: {  
30 - title: 'Select Staff',  
31 - orgInfo: 'Organization Information',  
32 - staffInfo: 'Staff Information',  
33 - submitter: 'Submitter',  
34 - dynamicAssign: 'Dynamic Assign',  
35 - fetchStaffError: 'Failed to fetch staff information'  
36 - },  
37 orgTree: { 29 orgTree: {
38 fetchError: 'Failed to fetch organization tree' 30 fetchError: 'Failed to fetch organization tree'
39 } 31 }
@@ -65,14 +57,6 @@ export const messages = { @@ -65,14 +57,6 @@ export const messages = {
65 instruction4: '必须配置对应的流程', 57 instruction4: '必须配置对应的流程',
66 invalidOperation: '操作错误' 58 invalidOperation: '操作错误'
67 }, 59 },
68 - selectStaff: {  
69 - title: '选择员工',  
70 - orgInfo: '组织信息',  
71 - staffInfo: '员工信息',  
72 - submitter: '提交者',  
73 - dynamicAssign: '动态指定',  
74 - fetchStaffError: '获取员工信息失败'  
75 - },  
76 orgTree: { 60 orgTree: {
77 fetchError: '获取组织树失败' 61 fetchError: '获取组织树失败'
78 } 62 }
src/views/work/addItemReleaseViewLang.js
@@ -39,13 +39,6 @@ export const messages = { @@ -39,13 +39,6 @@ export const messages = {
39 approverRequired: 'Approver is required' 39 approverRequired: 'Approver is required'
40 } 40 }
41 }, 41 },
42 - selectStaff: {  
43 - title: 'Select Staff',  
44 - orgInfo: 'Organization Information',  
45 - staffInfo: 'Staff Information',  
46 - submitter: 'Submitter',  
47 - dynamicAssign: 'Dynamic Assignment'  
48 - }  
49 }, 42 },
50 zh: { 43 zh: {
51 addItemReleaseView: { 44 addItemReleaseView: {
@@ -87,12 +80,5 @@ export const messages = { @@ -87,12 +80,5 @@ export const messages = {
87 approverRequired: '审批人不能为空' 80 approverRequired: '审批人不能为空'
88 } 81 }
89 }, 82 },
90 - selectStaff: {  
91 - title: '选择员工',  
92 - orgInfo: '组织信息',  
93 - staffInfo: '员工信息',  
94 - submitter: '提交者',  
95 - dynamicAssign: '动态指定'  
96 - }  
97 } 83 }
98 } 84 }
99 \ No newline at end of file 85 \ No newline at end of file
src/views/work/repairTypeUserLang.js
@@ -11,13 +11,6 @@ export const messages = { @@ -11,13 +11,6 @@ export const messages = {
11 operation: 'Operation', 11 operation: 'Operation',
12 repairTypeRequired: 'Repair type is required' 12 repairTypeRequired: 'Repair type is required'
13 }, 13 },
14 - selectStaff: {  
15 - title: 'Select Staff',  
16 - orgInfo: 'Organization Information',  
17 - staffInfo: 'Staff Information',  
18 - selectStaffFirst: 'Please select a staff first',  
19 - selectedStaff: 'Selected Staff'  
20 - },  
21 deleteRepairTypeUser: { 14 deleteRepairTypeUser: {
22 title: 'Confirm Operation', 15 title: 'Confirm Operation',
23 confirmDelete: 'Are you sure to delete this repair master?' 16 confirmDelete: 'Are you sure to delete this repair master?'
@@ -44,13 +37,6 @@ export const messages = { @@ -44,13 +37,6 @@ export const messages = {
44 operation: '操作', 37 operation: '操作',
45 repairTypeRequired: '未包含报修类型' 38 repairTypeRequired: '未包含报修类型'
46 }, 39 },
47 - selectStaff: {  
48 - title: '选择员工',  
49 - orgInfo: '组织信息',  
50 - staffInfo: '员工信息',  
51 - selectStaffFirst: '请先选择员工',  
52 - selectedStaff: '已选择员工'  
53 - },  
54 deleteRepairTypeUser: { 40 deleteRepairTypeUser: {
55 title: '请确认您的操作', 41 title: '请确认您的操作',
56 confirmDelete: '确定删除报修师傅?' 42 confirmDelete: '确定删除报修师傅?'