Blame view

src/components/inspection/editInspectionPoint.vue 9.95 KB
6ec243d6   wuxw   v1.9 点击提交后,成功提示没有...
1
  <template>
b5dad34f   wuxw   巡检功能测试中
2
3
4
    <el-dialog :title="$t('editInspectionPoint.title')" :visible.sync="dialogVisible" width="60%" top="5vh"
      @close="resetForm">
      <el-form ref="editForm" :model="editInspectionPointInfo" :rules="rules" label-width="120px" label-position="right">
1d73dc48   wuxw   继续晚上巡检功能
5
6
        <el-row :gutter="20">
          <el-col :span="12">
48ea9c43   wuxw   巡检开发完成
7
            <el-form-item :label="$t('editInspectionPoint.inspectionName')" prop="inspectionName">
b5dad34f   wuxw   巡检功能测试中
8
9
              <el-input v-model="editInspectionPointInfo.inspectionName"
                :placeholder="$t('editInspectionPoint.placeholder.inspectionName')" clearable />
1d73dc48   wuxw   继续晚上巡检功能
10
11
12
            </el-form-item>
          </el-col>
          <el-col :span="12">
48ea9c43   wuxw   巡检开发完成
13
            <el-form-item :label="$t('editInspectionPoint.pointObjType')" prop="pointObjType">
b5dad34f   wuxw   巡检功能测试中
14
15
16
17
18
              <el-select v-model="editInspectionPointInfo.pointObjType"
                :placeholder="$t('editInspectionPoint.placeholder.pointObjType')" style="width: 100%;"
                @change="_pointObjTypeChange" disabled>
                <el-option v-for="item in editInspectionPointInfo.pointObjTypes" :key="item.statusCd" :label="item.name"
                  :value="item.statusCd" />
1d73dc48   wuxw   继续晚上巡检功能
19
20
21
22
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
48ea9c43   wuxw   巡检开发完成
23
  
1d73dc48   wuxw   继续晚上巡检功能
24
25
        <el-row :gutter="20" v-if="editInspectionPointInfo.pointObjType === '2002'">
          <el-col :span="12">
48ea9c43   wuxw   巡检开发完成
26
            <el-form-item :label="$t('editInspectionPoint.pointObjName')" prop="pointObjName">
b5dad34f   wuxw   巡检功能测试中
27
28
              <el-input v-model="editInspectionPointInfo.pointObjName"
                :placeholder="$t('editInspectionPoint.placeholder.pointObjName')" clearable />
1d73dc48   wuxw   继续晚上巡检功能
29
30
31
            </el-form-item>
          </el-col>
        </el-row>
48ea9c43   wuxw   巡检开发完成
32
  
1d73dc48   wuxw   继续晚上巡检功能
33
        <el-row :gutter="20" v-if="editInspectionPointInfo.pointObjType === '1001'">
48ea9c43   wuxw   巡检开发完成
34
35
          <el-col :span="24">
            <el-form-item :label="$t('editInspectionPoint.machine')" prop="pointObjId">
b5dad34f   wuxw   巡检功能测试中
36
              <machine-select2 ref="machineSelect" :parent-modal="true" @notify="handleMachineSelect" />
1d73dc48   wuxw   继续晚上巡检功能
37
38
39
            </el-form-item>
          </el-col>
        </el-row>
48ea9c43   wuxw   巡检开发完成
40
  
1d73dc48   wuxw   继续晚上巡检功能
41
42
        <el-row :gutter="20">
          <el-col :span="12">
48ea9c43   wuxw   巡检开发完成
43
            <el-form-item :label="$t('editInspectionPoint.itemId')" prop="itemId">
b5dad34f   wuxw   巡检功能测试中
44
45
46
47
              <el-select v-model="editInspectionPointInfo.itemId"
                :placeholder="$t('editInspectionPoint.placeholder.itemId')" style="width: 100%;">
                <el-option v-for="item in editInspectionPointInfo.items" :key="item.itemId" :label="item.itemName"
                  :value="item.itemId" />
1d73dc48   wuxw   继续晚上巡检功能
48
49
50
51
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
48ea9c43   wuxw   巡检开发完成
52
            <el-form-item :label="$t('editInspectionPoint.nfcCode')">
b5dad34f   wuxw   巡检功能测试中
53
54
              <el-input v-model="editInspectionPointInfo.nfcCode"
                :placeholder="$t('editInspectionPoint.placeholder.nfcCode')" clearable />
1d73dc48   wuxw   继续晚上巡检功能
55
56
57
            </el-form-item>
          </el-col>
        </el-row>
48ea9c43   wuxw   巡检开发完成
58
  
1d73dc48   wuxw   继续晚上巡检功能
59
60
        <el-row :gutter="20">
          <el-col :span="12">
48ea9c43   wuxw   巡检开发完成
61
            <el-form-item :label="$t('editInspectionPoint.lng')">
b5dad34f   wuxw   巡检功能测试中
62
              <el-input v-model="editInspectionPointInfo.lng" :placeholder="$t('editInspectionPoint.placeholder.lng')"
59fd5759   王彪总   feat(map): 替换腾讯地图...
63
                />
1d73dc48   wuxw   继续晚上巡检功能
64
65
66
            </el-form-item>
          </el-col>
          <el-col :span="12">
48ea9c43   wuxw   巡检开发完成
67
            <el-form-item :label="$t('editInspectionPoint.lat')">
b5dad34f   wuxw   巡检功能测试中
68
              <el-input v-model="editInspectionPointInfo.lat" :placeholder="$t('editInspectionPoint.placeholder.lat')"
59fd5759   王彪总   feat(map): 替换腾讯地图...
69
                />
1d73dc48   wuxw   继续晚上巡检功能
70
71
72
            </el-form-item>
          </el-col>
        </el-row>
48ea9c43   wuxw   巡检开发完成
73
  
1d73dc48   wuxw   继续晚上巡检功能
74
        <el-row :gutter="20">
48ea9c43   wuxw   巡检开发完成
75
          <el-col :span="24">
1d73dc48   wuxw   继续晚上巡检功能
76
            <el-form-item :label="$t('editInspectionPoint.remark')">
b5dad34f   wuxw   巡检功能测试中
77
78
              <el-input v-model="editInspectionPointInfo.remark" type="textarea" :rows="3"
                :placeholder="$t('editInspectionPoint.placeholder.remark')" />
1d73dc48   wuxw   继续晚上巡检功能
79
80
81
            </el-form-item>
          </el-col>
        </el-row>
48ea9c43   wuxw   巡检开发完成
82
83
  
        <el-row :gutter="20">
1d73dc48   wuxw   继续晚上巡检功能
84
          <el-col :span="24">
b5dad34f   wuxw   巡检功能测试中
85
86
            <select-map-pos ref="selectMapPos" @position-change="handlePositionChange" />
  
1d73dc48   wuxw   继续晚上巡检功能
87
88
89
          </el-col>
        </el-row>
      </el-form>
48ea9c43   wuxw   巡检开发完成
90
91
92
93
94
  
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">{{ $t('common.cancel') }}</el-button>
        <el-button type="primary" @click="updateInspectionPoint">{{ $t('common.save') }}</el-button>
      </span>
1d73dc48   wuxw   继续晚上巡检功能
95
96
97
98
    </el-dialog>
  </template>
  
  <script>
48ea9c43   wuxw   巡检开发完成
99
100
  import { updateInspectionPoint } from '@/api/inspection/inspectionPointApi'
  import { listInspectionItems } from '@/api/inspection/inspectionPointApi'
1d73dc48   wuxw   继续晚上巡检功能
101
  import { getDict } from '@/api/community/communityApi'
48ea9c43   wuxw   巡检开发完成
102
103
104
  import { getCommunityId } from '@/api/community/communityApi'
  import MachineSelect2 from '@/components/inspection/machineSelect2'
  import SelectMapPos from '@/components/inspection/selectMapPos'
1d73dc48   wuxw   继续晚上巡检功能
105
106
107
108
  
  export default {
    name: 'EditInspectionPoint',
    components: {
48ea9c43   wuxw   巡检开发完成
109
110
      MachineSelect2,
      SelectMapPos
1d73dc48   wuxw   继续晚上巡检功能
111
112
113
    },
    data() {
      return {
48ea9c43   wuxw   巡检开发完成
114
        dialogVisible: false,
1d73dc48   wuxw   继续晚上巡检功能
115
116
        editInspectionPointInfo: {
          inspectionId: '',
48ea9c43   wuxw   巡检开发完成
117
          inspectionName: '',
1d73dc48   wuxw   继续晚上巡检功能
118
119
120
121
          pointObjId: '',
          pointObjType: '',
          pointObjTypes: [],
          pointObjName: '',
1d73dc48   wuxw   继续晚上巡检功能
122
123
124
125
126
          remark: '',
          items: [],
          itemId: '',
          nfcCode: '',
          lng: '',
48ea9c43   wuxw   巡检开发完成
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
          lat: '',
          communityId: ''
        },
        rules: {
          inspectionName: [
            { required: true, message: this.$t('editInspectionPoint.rules.inspectionName'), trigger: 'blur' },
            { max: 100, message: this.$t('editInspectionPoint.rules.inspectionNameMax'), trigger: 'blur' }
          ],
          pointObjType: [
            { required: true, message: this.$t('editInspectionPoint.rules.pointObjType'), trigger: 'change' }
          ],
          pointObjName: [
            { required: true, message: this.$t('editInspectionPoint.rules.pointObjName'), trigger: 'blur' }
          ],
          pointObjId: [
            { required: true, message: this.$t('editInspectionPoint.rules.pointObjId'), trigger: 'change' }
          ],
          itemId: [
            { required: true, message: this.$t('editInspectionPoint.rules.itemId'), trigger: 'change' }
          ],
          remark: [
            { max: 200, message: this.$t('editInspectionPoint.rules.remarkMax'), trigger: 'blur' }
          ]
1d73dc48   wuxw   继续晚上巡检功能
150
        },
48ea9c43   wuxw   巡检开发完成
151
        communityId: ''
1d73dc48   wuxw   继续晚上巡检功能
152
153
154
      }
    },
    methods: {
48ea9c43   wuxw   巡检开发完成
155
156
      open(inspectionPoint) {
        this.dialogVisible = true
1d73dc48   wuxw   继续晚上巡检功能
157
        this.resetForm()
b5dad34f   wuxw   巡检功能测试中
158
  
48ea9c43   wuxw   巡检开发完成
159
160
161
        this.$nextTick(() => {
          this.getDictData()
          this._listEditInspectionItems()
b5dad34f   wuxw   巡检功能测试中
162
  
48ea9c43   wuxw   巡检开发完成
163
164
          // 填充表单数据
          Object.assign(this.editInspectionPointInfo, inspectionPoint)
b5dad34f   wuxw   巡检功能测试中
165
  
48ea9c43   wuxw   巡检开发完成
166
167
168
169
170
171
172
173
174
175
176
177
          // 设置设备选择器(如果是设备类型)
          if (inspectionPoint.pointObjType === '1001') {
            this.$nextTick(() => {
              if (this.$refs.machineSelect) {
                this.$refs.machineSelect.setMachine({
                  machineId: inspectionPoint.pointObjId,
                  machineName: inspectionPoint.pointObjName
                })
              }
            })
          }
        })
b5dad34f   wuxw   巡检功能测试中
178
179
180
        setTimeout(() => {
          this.$refs.selectMapPos.initMap({})
        }, 1000)
48ea9c43   wuxw   巡检开发完成
181
      },
b5dad34f   wuxw   巡检功能测试中
182
  
48ea9c43   wuxw   巡检开发完成
183
      async getDictData() {
1d73dc48   wuxw   继续晚上巡检功能
184
        try {
48ea9c43   wuxw   巡检开发完成
185
186
          const data = await getDict('inspection_point', 'point_obj_type')
          this.editInspectionPointInfo.pointObjTypes = data
1d73dc48   wuxw   继续晚上巡检功能
187
188
189
        } catch (error) {
          console.error('获取字典数据失败:', error)
        }
48ea9c43   wuxw   巡检开发完成
190
      },
b5dad34f   wuxw   巡检功能测试中
191
  
48ea9c43   wuxw   巡检开发完成
192
      async _listEditInspectionItems() {
1d73dc48   wuxw   继续晚上巡检功能
193
        try {
48ea9c43   wuxw   巡检开发完成
194
195
          const params = {
            communityId: this.communityId,
1d73dc48   wuxw   继续晚上巡检功能
196
197
            page: 1,
            row: 100
48ea9c43   wuxw   巡检开发完成
198
          }
b5dad34f   wuxw   巡检功能测试中
199
  
48ea9c43   wuxw   巡检开发完成
200
201
          const response = await listInspectionItems(params)
          this.editInspectionPointInfo.items = response.data
1d73dc48   wuxw   继续晚上巡检功能
202
        } catch (error) {
48ea9c43   wuxw   巡检开发完成
203
          console.error('获取巡检项目失败:', error)
1d73dc48   wuxw   继续晚上巡检功能
204
        }
48ea9c43   wuxw   巡检开发完成
205
      },
b5dad34f   wuxw   巡检功能测试中
206
  
48ea9c43   wuxw   巡检开发完成
207
208
209
      _pointObjTypeChange() {
        this.editInspectionPointInfo.pointObjId = ''
        this.editInspectionPointInfo.pointObjName = ''
b5dad34f   wuxw   巡检功能测试中
210
  
1d73dc48   wuxw   继续晚上巡检功能
211
        if (this.editInspectionPointInfo.pointObjType === '1001') {
48ea9c43   wuxw   巡检开发完成
212
          this.$refs.machineSelect.clearMachine()
1d73dc48   wuxw   继续晚上巡检功能
213
        }
48ea9c43   wuxw   巡检开发完成
214
      },
b5dad34f   wuxw   巡检功能测试中
215
  
48ea9c43   wuxw   巡检开发完成
216
217
218
219
220
221
      handleMachineSelect(data) {
        if (data && data.machineId && data.machineName) {
          this.editInspectionPointInfo.pointObjId = data.machineId
          this.editInspectionPointInfo.pointObjName = data.machineName
        }
      },
b5dad34f   wuxw   巡检功能测试中
222
  
48ea9c43   wuxw   巡检开发完成
223
224
225
226
      handlePositionChange(position) {
        this.editInspectionPointInfo.lat = position.lat
        this.editInspectionPointInfo.lng = position.lng
      },
b5dad34f   wuxw   巡检功能测试中
227
  
48ea9c43   wuxw   巡检开发完成
228
229
230
      updateInspectionPoint() {
        this.$refs.editForm.validate(async valid => {
          if (!valid) return
b5dad34f   wuxw   巡检功能测试中
231
  
48ea9c43   wuxw   巡检开发完成
232
233
234
235
236
          // 特殊验证
          if (this.editInspectionPointInfo.pointObjType === '1001' && !this.editInspectionPointInfo.pointObjId) {
            this.$message.error(this.$t('editInspectionPoint.rules.machineRequired'))
            return
          }
b5dad34f   wuxw   巡检功能测试中
237
  
48ea9c43   wuxw   巡检开发完成
238
239
240
241
          if (this.editInspectionPointInfo.pointObjType === '2002' && !this.editInspectionPointInfo.pointObjName) {
            this.$message.error(this.$t('editInspectionPoint.rules.locationRequired'))
            return
          }
b5dad34f   wuxw   巡检功能测试中
242
  
48ea9c43   wuxw   巡检开发完成
243
244
          try {
            this.editInspectionPointInfo.communityId = this.communityId
b5dad34f   wuxw   巡检功能测试中
245
  
48ea9c43   wuxw   巡检开发完成
246
            const response = await updateInspectionPoint(this.editInspectionPointInfo)
b5dad34f   wuxw   巡检功能测试中
247
  
48ea9c43   wuxw   巡检开发完成
248
            if (response.code === 0) {
6ec243d6   wuxw   v1.9 点击提交后,成功提示没有...
249
              this.$message.success(this.$t('common.operationSuccess'))
48ea9c43   wuxw   巡检开发完成
250
251
252
253
254
255
256
257
258
              this.dialogVisible = false
              this.$emit('success')
            } else {
              this.$message.error(response.msg || this.$t('editInspectionPoint.updateFailed'))
            }
          } catch (error) {
            console.error('更新巡检点失败:', error)
            this.$message.error(this.$t('editInspectionPoint.updateFailed'))
          }
1d73dc48   wuxw   继续晚上巡检功能
259
260
        })
      },
b5dad34f   wuxw   巡检功能测试中
261
  
1d73dc48   wuxw   继续晚上巡检功能
262
263
264
      resetForm() {
        this.editInspectionPointInfo = {
          inspectionId: '',
48ea9c43   wuxw   巡检开发完成
265
          inspectionName: '',
1d73dc48   wuxw   继续晚上巡检功能
266
267
          pointObjId: '',
          pointObjType: '',
1d73dc48   wuxw   继续晚上巡检功能
268
          pointObjName: '',
1d73dc48   wuxw   继续晚上巡检功能
269
270
271
272
273
          remark: '',
          items: [],
          itemId: '',
          nfcCode: '',
          lng: '',
48ea9c43   wuxw   巡检开发完成
274
275
          lat: '',
          communityId: ''
1d73dc48   wuxw   继续晚上巡检功能
276
        }
b5dad34f   wuxw   巡检功能测试中
277
  
48ea9c43   wuxw   巡检开发完成
278
279
        if (this.$refs.editForm) {
          this.$refs.editForm.resetFields()
1d73dc48   wuxw   继续晚上巡检功能
280
        }
b5dad34f   wuxw   巡检功能测试中
281
  
48ea9c43   wuxw   巡检开发完成
282
283
        if (this.$refs.machineSelect) {
          this.$refs.machineSelect.clearMachine()
1d73dc48   wuxw   继续晚上巡检功能
284
        }
b5dad34f   wuxw   巡检功能测试中
285
  
48ea9c43   wuxw   巡检开发完成
286
287
        if (this.$refs.mapSelector) {
          this.$refs.mapSelector.updatePosition(39.916527, 116.397128)
1d73dc48   wuxw   继续晚上巡检功能
288
        }
1d73dc48   wuxw   继续晚上巡检功能
289
      }
48ea9c43   wuxw   巡检开发完成
290
291
292
    },
    created() {
      this.communityId = getCommunityId()
1d73dc48   wuxw   继续晚上巡检功能
293
294
295
    }
  }
  </script>