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 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 91 \ No newline at end of file
... ...
src/components/inspection/InspectionRoutePoint.vue
... ... @@ -81,6 +81,10 @@ export default {
81 81 beforeDestroy() {
82 82 },
83 83 methods: {
  84 + open(params) {
  85 + this.inspectionRoutePointInfo.inspectionRouteId = params.inspectionRouteId
  86 + this._listInspectionRoutePoints()
  87 + },
84 88 loadData(params) {
85 89 this.inspectionRoutePointInfo.inspectionRouteId = params.inspectionRouteId
86 90 this._listInspectionRoutePoints()
... ...
src/components/inspection/InspectionTaskDetail.vue
1 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 5 <el-table :data="taskDetails" border style="width: 100%">
5 6 <el-table-column prop="taskDetailId" :label="$t('inspectionTaskDetail.taskDetails') + 'ID'" align="center"
6 7 width="100" />
... ... @@ -55,7 +56,7 @@
55 56  
56 57 <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total"
57 58 layout="total, prev, pager, next, jumper" @current-change="handlePageChange" />
58   - </el-card>
  59 +
59 60  
60 61 <ViewMap ref="viewMap" />
61 62 <ViewImage ref="viewImage" />
... ...
src/components/inspection/RouteTask.vue
... ... @@ -45,6 +45,10 @@ export default {
45 45 beforeDestroy() {
46 46 },
47 47 methods: {
  48 + open(params) {
  49 + this.routeTaskInfo.inspectionRouteId = params.inspectionRouteId
  50 + this._loadRouteTaskData()
  51 + },
48 52 loadData(params) {
49 53 this.routeTaskInfo.inspectionRouteId = params.inspectionRouteId
50 54 this._loadRouteTaskData()
... ... @@ -75,11 +79,11 @@ export default {
75 79 this.routeTaskInfo.inspectionRouteId = task.inspectionRouteId
76 80  
77 81 // 通知地图组件加载任务
78   - this.$nextTick(() => {
  82 + setTimeout(() => {
79 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 1 <template>
2 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 4 <el-row :gutter="20">
5 5 <el-col :span="12">
6 6 <el-form-item :label="$t('inspectionPlan.planName')" prop="inspectionPlanName" required>
... ... @@ -100,15 +100,16 @@
100 100 <el-col :span="12">
101 101 <el-form-item :label="$t('editInspectionPlan.signMethod')" required>
102 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 105 </el-select>
105 106 </el-form-item>
106 107 </el-col>
107 108 <el-col :span="12">
108 109 <el-form-item :label="$t('editInspectionPlan.allowRecheck')">
109 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 113 </el-select>
113 114 </el-form-item>
114 115 </el-col>
... ... @@ -116,7 +117,7 @@
116 117  
117 118 <el-row>
118 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 121 </el-form-item>
121 122 </el-row>
122 123 </el-form>
... ... @@ -131,7 +132,7 @@
131 132 <script>
132 133 import { updateInspectionPlan, listInspectionRoutes, listInspectionPlanStaffs } from '@/api/inspection/inspectionPlanApi'
133 134 import SelectStaffDiv from '@/components/staff/selectStaffsDiv'
134   -import {getDict} from '@/api/community/communityApi'
  135 +import { getDict } from '@/api/community/communityApi'
135 136  
136 137 export default {
137 138 name: 'EditInspectionPlan',
... ... @@ -210,12 +211,12 @@ export default {
210 211  
211 212 async loadStaffs(planId) {
212 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 215 this.formData.staffs = inspectionPlanStaffs.map(item => ({
215 216 userId: item.staffId,
216 217 name: item.staffName
217 218 }))
218   - this.$refs.selectStaffDiv.setStaffs(this.formData.staffs)
  219 + this.$refs.selectStaffDiv.setStaffs(this.formData.staffs)
219 220 } catch (error) {
220 221 console.error('Failed to load staffs:', error)
221 222 }
... ... @@ -254,7 +255,7 @@ export default {
254 255 this.visible = false
255 256 this.$emit('success')
256 257 } catch (error) {
257   -
  258 +
258 259 this.$message.error(this.$t('inspectionPlan.updateError'))
259 260 }
260 261 }
... ...
src/components/inspection/inspectionPlanState.vue
1 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 3 <div class="text-center">
8 4 <p>{{ $t('inspectionPlan.confirmStateChange', { state: stateName }) }}</p>
9 5 </div>
... ... @@ -34,7 +30,7 @@ export default {
34 30 this.stateName = stateName
35 31 this.visible = true
36 32 },
37   -
  33 +
38 34 async confirmChange() {
39 35 try {
40 36 await updateInspectionPlanState({
... ...
src/components/inspection/pointRoute.vue
... ... @@ -46,6 +46,10 @@ export default {
46 46 this.communityId = getCommunityId()
47 47 },
48 48 methods: {
  49 + open(params) {
  50 + this.pointRouteInfo.inspectionId = params.inspectionId
  51 + this._loadPointRouteData()
  52 + },
49 53 loadData(point) {
50 54 if (!point) return
51 55  
... ...
src/components/inspection/pointTaskDetail.vue
... ... @@ -122,6 +122,12 @@ export default {
122 122 this.communityId = getCommunityId()
123 123 },
124 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 131 loadData(point) {
126 132 if (!point) return
127 133  
... ...
src/components/staff/selectStaffsDiv.vue
... ... @@ -36,7 +36,7 @@
36 36 </el-col>
37 37 </el-row>
38 38 </template>
39   -
  39 +
40 40 <script>
41 41 import { listStaffsByOrgId } from '@/api/inspection/inspectionPlanApi'
42 42 import OrgTreeShow from '@/components/org/OrgTreeShow'
... ... @@ -96,7 +96,7 @@ export default {
96 96 }
97 97 }
98 98 </script>
99   -
  99 +
100 100 <style scoped>
101 101 .border-right {
102 102 border-right: 1px solid #eee;
... ... @@ -152,4 +152,5 @@ export default {
152 152 .text-center {
153 153 text-align: center;
154 154 padding: 10px 0;
155   -}</style>
156 155 \ No newline at end of file
  156 +}
  157 +</style>
157 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 19 import { messages as addInspectionPlanMessages } from '../views/inspection/addInspectionPlanLang'
20 20 import { messages as inspectionTaskMessages } from '../views/inspection/inspectionTaskLang'
21 21 import { messages as inspectionTaskDetailsMessages } from '../views/inspection/inspectionTaskDetailsLang'
  22 +import { messages as inspectionPlanDetailMessages } from '../views/inspection/inspectionPlanDetailLang'
22 23  
23 24 export const messages = {
24 25 en: {
... ... @@ -43,6 +44,7 @@ export const messages = {
43 44 ...addInspectionPlanMessages.en,
44 45 ...inspectionTaskMessages.en,
45 46 ...inspectionTaskDetailsMessages.en,
  47 + ...inspectionPlanDetailMessages.en,
46 48 },
47 49 zh: {
48 50 ...adminInspectionPlanMessages.zh,
... ... @@ -66,6 +68,7 @@ export const messages = {
66 68 ...addInspectionPlanMessages.zh,
67 69 ...inspectionTaskMessages.zh,
68 70 ...inspectionTaskDetailsMessages.zh,
  71 + ...inspectionPlanDetailMessages.zh,
69 72 }
70 73  
71 74 }
72 75 \ No newline at end of file
... ...
src/router/inspectionRouter.js
... ... @@ -104,4 +104,9 @@ export default [
104 104 name: '/pages/property/maintainanceTaskManage',
105 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 113 \ No newline at end of file
... ...
src/views/contract/contractChangeDetailLang.js
... ... @@ -65,13 +65,6 @@ export const messages = {
65 65 staffRequired: 'Staff is required',
66 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 68 chooseContract: {
76 69 title: 'Select Contract',
77 70 searchPlaceholder: 'Input contract name',
... ... @@ -149,13 +142,7 @@ export const messages = {
149 142 staffRequired: '员工不能为空',
150 143 staffNameRequired: '员工名称不能为空'
151 144 },
152   - selectStaff: {
153   - title: '选择员工',
154   - orgInfo: '组织信息',
155   - staffInfo: '员工信息',
156   - submitter: '提交者',
157   - dynamicAssign: '动态指定'
158   - },
  145 +
159 146 chooseContract: {
160 147 title: '选择合同信息',
161 148 searchPlaceholder: '输入合同信息名称',
... ...
src/views/inspection/InspectionTaskList.vue
... ... @@ -109,8 +109,8 @@
109 109 </el-table>
110 110  
111 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 114 </el-col>
115 115 <el-col :span="6">
116 116 <el-pagination :current-page="currentPage" :page-size="pageSize" :total="total"
... ... @@ -237,7 +237,7 @@ export default {
237 237 }
238 238  
239 239 .plan-list-card {
240   - height: calc(100vh - 100px);
  240 + height: auto;
241 241 }
242 242  
243 243 .plan-list {
... ...
src/views/inspection/addInspectionPlanList.vue
... ... @@ -5,7 +5,7 @@
5 5 <span>{{ $t('addInspectionPlan.title') }}</span>
6 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 9 <el-row :gutter="20">
10 10 <el-col :span="12">
11 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 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 242 \ No newline at end of file
... ...
src/views/inspection/inspectionPlanLang.js
... ... @@ -32,7 +32,10 @@ export const messages = {
32 32 confirmDeleteTitle: 'Confirm Deletion',
33 33 confirmDeleteContent: 'Are you sure you want to delete this inspection plan?',
34 34 cancel: 'Cancel',
35   - confirm: 'Confirm'
  35 + confirm: 'Confirm',
  36 + confirmOperation: 'Confirm Operation',
  37 + confirmStateChange: 'Confirm State Change',
  38 +
36 39 },
37 40 editInspectionPlan: {
38 41 title: 'Edit Plan',
... ... @@ -100,7 +103,9 @@ export const messages = {
100 103 confirmDeleteTitle: '确认删除',
101 104 confirmDeleteContent: '确定删除巡检计划吗?',
102 105 cancel: '取消',
103   - confirm: '确定'
  106 + confirm: '确定',
  107 + confirmOperation: '确认操作',
  108 + confirmStateChange: '确认状态变更',
104 109 },
105 110 editInspectionPlan: {
106 111 title: '修改计划',
... ...
src/views/inspection/pointPlanLang.js
1 1 export default {
2 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 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 9 \ No newline at end of file
... ...
src/views/oa/addAttendanceClassesStaffLang.js
... ... @@ -13,14 +13,6 @@ export const messages = {
13 13 imageSizeLimit: 'Image size cannot exceed 2MB',
14 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 16 orgTree: {
25 17 loadFailed: 'Failed to load organization tree'
26 18 }
... ... @@ -39,14 +31,6 @@ export const messages = {
39 31 imageSizeLimit: '图片大小不能超过2MB',
40 32 uploadFailed: '上传失败'
41 33 },
42   - selectStaff: {
43   - title: '选择员工',
44   - orgInfo: '组织信息',
45   - staffInfo: '员工信息',
46   - submitter: '提交者',
47   - dynamicAssign: '动态指定',
48   - loadStaffFailed: '加载员工列表失败'
49   - },
50 34 orgTree: {
51 35 loadFailed: '加载组织树失败'
52 36 }
... ...
src/views/oa/addComplaintTypeLang.js
... ... @@ -17,12 +17,6 @@ export const messages = {
17 17 autoReply: 'Auto Reply',
18 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 21 zh: {
28 22 addComplaintType: {
... ... @@ -42,11 +36,5 @@ export const messages = {
42 36 autoReply: '自动回复',
43 37 manualReply: '人工回复'
44 38 },
45   - selectStaff: {
46   - orgInfo: '组织信息',
47   - staffInfo: '员工信息',
48   - selectedStaff: '已选员工',
49   - noRepeatSelect: '请勿重复选择'
50   - }
51 39 }
52 40 }
53 41 \ No newline at end of file
... ...
src/views/oa/addExamineStaffLang.js
... ... @@ -12,13 +12,6 @@ export const messages = {
12 12 staffIntroduction: 'Staff Introduction',
13 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 15 uploadImage: {
23 16 imageSizeLimit: 'Image size cannot exceed 2MB',
24 17 uploadFailed: 'Upload failed'
... ... @@ -37,13 +30,6 @@ export const messages = {
37 30 staffIntroduction: '员工简介',
38 31 staffIntroductionPlaceholder: '必填,请输入员工简介'
39 32 },
40   - selectStaff: {
41   - title: '选择员工',
42   - orgInfo: '组织信息',
43   - staffInfo: '员工信息',
44   - submitter: '提交者',
45   - dynamicAssign: '动态指定'
46   - },
47 33 uploadImage: {
48 34 imageSizeLimit: '图片大小不能超过2MB',
49 35 uploadFailed: '上传失败'
... ...
src/views/oa/addWorkLang.js
... ... @@ -47,13 +47,6 @@ export const messages = {
47 47 success: 'File uploaded successfully',
48 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 51 zh: {
59 52 addWork: {
... ... @@ -103,12 +96,5 @@ export const messages = {
103 96 success: '文件上传成功',
104 97 failed: '文件上传失败'
105 98 },
106   - selectStaff: {
107   - title: '选择员工',
108   - orgInfo: '组织信息',
109   - staffInfo: '员工信息',
110   - submitter: '提交者',
111   - dynamicAssign: '动态指定'
112   - }
113 99 }
114 100 }
115 101 \ No newline at end of file
... ...
src/views/oa/editComplaintTypeLang.js
... ... @@ -20,13 +20,6 @@ export const messages = {
20 20 saveError: 'Save failed',
21 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 23 orgTree: {
31 24 loadError: 'Failed to load organization tree'
32 25 }
... ... @@ -52,13 +45,6 @@ export const messages = {
52 45 saveError: '保存失败',
53 46 loadError: '加载投诉类型详情失败'
54 47 },
55   - selectStaff: {
56   - orgInfo: '组织信息',
57   - staffInfo: '员工信息',
58   - selectedStaff: '已选员工',
59   - staffAlreadySelected: '请勿重复选择',
60   - loadStaffError: '加载员工信息失败'
61   - },
62 48 orgTree: {
63 49 loadError: '加载组织树失败'
64 50 }
... ...
src/views/oa/editWorkLang.js
... ... @@ -51,13 +51,6 @@ export const messages = {
51 51 placeholder: 'Required, please enter content',
52 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 55 zh: {
63 56 editWork: {
... ... @@ -111,12 +104,5 @@ export const messages = {
111 104 placeholder: '必填,请输入内容',
112 105 uploadFailed: '图片上传失败'
113 106 },
114   - selectStaff: {
115   - title: '选择员工',
116   - orgInfo: '组织信息',
117   - staffInfo: '员工信息',
118   - submitter: '提交者',
119   - dynamicAssign: '动态指定'
120   - }
121 107 }
122 108 }
123 109 \ No newline at end of file
... ...
src/views/oa/newOaWorkflowDetailLang.js
... ... @@ -41,13 +41,6 @@ export const messages = {
41 41 transferred: 'Transferred',
42 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 45 zh: {
53 46 newOaWorkflowDetail: {
... ... @@ -91,12 +84,5 @@ export const messages = {
91 84 transferred: '转单',
92 85 completed: '办结'
93 86 },
94   - selectStaff: {
95   - title: '选择员工',
96   - orgInfo: '组织信息',
97   - staffInfo: '员工信息',
98   - submitter: '提交者',
99   - customAssign: '动态指定'
100   - }
101 87 }
102 88 }
103 89 \ No newline at end of file
... ...
src/views/resource/addItemOutLang.js
... ... @@ -63,18 +63,6 @@ export const messages = {
63 63 fixedItem: 'Fixed Item',
64 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 67 zh: {
80 68 addItemOut: {
... ... @@ -140,17 +128,5 @@ export const messages = {
140 128 fixedItem: '固定物品',
141 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 133 \ No newline at end of file
... ...
src/views/resource/addPurchaseApplyLang.js
... ... @@ -53,13 +53,6 @@ export const messages = {
53 53 itemStock: 'Item Stock',
54 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 57 zh: {
65 58 addPurchaseApply: {
... ... @@ -115,12 +108,5 @@ export const messages = {
115 108 itemStock: '物品库存',
116 109 selectItemsRequired: '请选择需要采购的物品'
117 110 },
118   - selectStaff: {
119   - title: '选择员工',
120   - orgInfo: '组织信息',
121   - staffInfo: '员工信息',
122   - submitter: '提交者',
123   - dynamicAssign: '动态指定'
124   - }
125 111 }
126 112 }
127 113 \ No newline at end of file
... ...
src/views/resource/allocationStorehouseApplyLang.js
... ... @@ -53,13 +53,6 @@ export const messages = {
53 53 itemStock: 'Item Stock',
54 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 57 zh: {
65 58 allocationStorehouseApply: {
... ... @@ -115,12 +108,5 @@ export const messages = {
115 108 itemStock: '物品库存',
116 109 selectItemFirst: '请先选择物品'
117 110 },
118   - selectStaff: {
119   - title: '选择员工',
120   - orgInfo: '组织信息',
121   - staffInfo: '员工信息',
122   - submitter: '提交者',
123   - dynamicAssign: '动态指定'
124   - }
125 111 }
126 112 }
127 113 \ No newline at end of file
... ...
src/views/resource/purchaseApplyDetailLang.js
... ... @@ -66,13 +66,6 @@ export const messages = {
66 66 submitSuccess: 'Submit successfully',
67 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 70 zh: {
78 71 purchaseApplyDetail: {
... ... @@ -141,12 +134,5 @@ export const messages = {
141 134 submitSuccess: '提交成功',
142 135 submitFailed: '提交失败'
143 136 },
144   - selectStaff: {
145   - selectStaff: '选择员工',
146   - orgInfo: '组织信息',
147   - staffInfo: '员工信息',
148   - submitter: '提交者',
149   - dynamicAssign: '动态指定'
150   - }
151 137 }
152 138 }
153 139 \ No newline at end of file
... ...
src/views/staff/staffLang.js
... ... @@ -39,7 +39,15 @@ export const messages = {
39 39 cancel: 'Cancel',
40 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 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 52 zh: {
45 53 staff: {
... ... @@ -80,6 +88,14 @@ export const messages = {
80 88 cancel: '取消',
81 89 confirmDelete: '确认是否删除,删除员工前请确认员工已完成相关审批流程,删除后相关流程将无法继续进行,请慎重操作!',
82 90 confirmDeleteAction: '确认删除'
83   - }
  91 + },
  92 + selectStaff: {
  93 + title: '选择员工',
  94 + orgInfo: '组织信息',
  95 + staffInfo: '员工信息',
  96 + submitter: '提交者',
  97 + dynamicAssign: '动态指定',
  98 + selectedStaff: '已选员工'
  99 + },
84 100 }
85 101 }
86 102 \ No newline at end of file
... ...
src/views/system/workflowSettingManageLang.js
... ... @@ -26,14 +26,6 @@ export const messages = {
26 26 instruction4: 'Must configure the corresponding process',
27 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 29 orgTree: {
38 30 fetchError: 'Failed to fetch organization tree'
39 31 }
... ... @@ -65,14 +57,6 @@ export const messages = {
65 57 instruction4: '必须配置对应的流程',
66 58 invalidOperation: '操作错误'
67 59 },
68   - selectStaff: {
69   - title: '选择员工',
70   - orgInfo: '组织信息',
71   - staffInfo: '员工信息',
72   - submitter: '提交者',
73   - dynamicAssign: '动态指定',
74   - fetchStaffError: '获取员工信息失败'
75   - },
76 60 orgTree: {
77 61 fetchError: '获取组织树失败'
78 62 }
... ...
src/views/work/addItemReleaseViewLang.js
... ... @@ -39,13 +39,6 @@ export const messages = {
39 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 43 zh: {
51 44 addItemReleaseView: {
... ... @@ -87,12 +80,5 @@ export const messages = {
87 80 approverRequired: '审批人不能为空'
88 81 }
89 82 },
90   - selectStaff: {
91   - title: '选择员工',
92   - orgInfo: '组织信息',
93   - staffInfo: '员工信息',
94   - submitter: '提交者',
95   - dynamicAssign: '动态指定'
96   - }
97 83 }
98 84 }
99 85 \ No newline at end of file
... ...
src/views/work/repairTypeUserLang.js
... ... @@ -11,13 +11,6 @@ export const messages = {
11 11 operation: 'Operation',
12 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 14 deleteRepairTypeUser: {
22 15 title: 'Confirm Operation',
23 16 confirmDelete: 'Are you sure to delete this repair master?'
... ... @@ -44,13 +37,6 @@ export const messages = {
44 37 operation: '操作',
45 38 repairTypeRequired: '未包含报修类型'
46 39 },
47   - selectStaff: {
48   - title: '选择员工',
49   - orgInfo: '组织信息',
50   - staffInfo: '员工信息',
51   - selectStaffFirst: '请先选择员工',
52   - selectedStaff: '已选择员工'
53   - },
54 40 deleteRepairTypeUser: {
55 41 title: '请确认您的操作',
56 42 confirmDelete: '确定删除报修师傅?'
... ...