Commit f68885f80ee5c501add4f9a4c1492eb903f40616
1 parent
439c1b56
开发完成检查项
Showing
10 changed files
with
873 additions
and
61 deletions
src/api/inspection/maintainanceItemApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 3 | + | ||
| 4 | +// 获取检查项列表 | ||
| 5 | +export function listMaintainanceItem(params) { | ||
| 6 | + return new Promise((resolve, reject) => { | ||
| 7 | + request({ | ||
| 8 | + url: '/maintainance.listMaintainanceItem', | ||
| 9 | + method: 'get', | ||
| 10 | + params: { | ||
| 11 | + ...params, | ||
| 12 | + communityId: params.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 saveMaintainanceItem(data) { | ||
| 25 | + return new Promise((resolve, reject) => { | ||
| 26 | + request({ | ||
| 27 | + url: '/maintainance.saveMaintainanceItem', | ||
| 28 | + method: 'post', | ||
| 29 | + data: { | ||
| 30 | + ...data, | ||
| 31 | + communityId: data.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 updateMaintainanceItem(data) { | ||
| 44 | + return new Promise((resolve, reject) => { | ||
| 45 | + request({ | ||
| 46 | + url: '/maintainance.updateMaintainanceItem', | ||
| 47 | + method: 'post', | ||
| 48 | + data: { | ||
| 49 | + ...data, | ||
| 50 | + communityId: data.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 deleteMaintainanceItem(data) { | ||
| 63 | + return new Promise((resolve, reject) => { | ||
| 64 | + request({ | ||
| 65 | + url: '/maintainance.deleteMaintainanceItem', | ||
| 66 | + method: 'post', | ||
| 67 | + data: { | ||
| 68 | + ...data, | ||
| 69 | + communityId: data.communityId || getCommunityId() | ||
| 70 | + } | ||
| 71 | + }).then(response => { | ||
| 72 | + const res = response.data | ||
| 73 | + resolve(res) | ||
| 74 | + }).catch(error => { | ||
| 75 | + reject(error) | ||
| 76 | + }) | ||
| 77 | + }) | ||
| 78 | +} | ||
| 0 | \ No newline at end of file | 79 | \ No newline at end of file |
src/components/inspection/addMaintainanceItem.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <el-dialog :title="$t('maintainanceItem.add.title')" :visible.sync="visible" width="50%" @close="handleClose"> | ||
| 3 | + <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||
| 4 | + <el-form-item :label="$t('maintainanceItem.form.itemTitle')" prop="itemTitle"> | ||
| 5 | + <el-input v-model="form.itemTitle" :placeholder="$t('maintainanceItem.form.itemTitlePlaceholder')" /> | ||
| 6 | + </el-form-item> | ||
| 7 | + | ||
| 8 | + <el-form-item :label="$t('maintainanceItem.form.titleType')" prop="titleType"> | ||
| 9 | + <el-select v-model="form.titleType" :placeholder="$t('maintainanceItem.form.titleTypePlaceholder')" | ||
| 10 | + style="width:100%" @change="handleTitleTypeChange"> | ||
| 11 | + <el-option v-for="item in titleTypeOptions" :key="item.value" :label="item.label" :value="item.value" /> | ||
| 12 | + </el-select> | ||
| 13 | + </el-form-item> | ||
| 14 | + | ||
| 15 | + <template v-if="form.titleType && form.titleType !== '3003'"> | ||
| 16 | + <el-form-item v-for="(item, index) in form.titleValues" :key="index" | ||
| 17 | + :label="`${$t('maintainanceItem.form.option')} ${index + 1}`" :prop="'titleValues.' + index + '.itemValue'" | ||
| 18 | + :rules="{ | ||
| 19 | + required: true, | ||
| 20 | + message: $t('maintainanceItem.form.optionRequired'), | ||
| 21 | + trigger: 'blur' | ||
| 22 | + }"> | ||
| 23 | + <el-row :gutter="10"> | ||
| 24 | + <el-col :span="20"> | ||
| 25 | + <el-input v-model="item.itemValue" :placeholder="$t('maintainanceItem.form.optionPlaceholder')" /> | ||
| 26 | + </el-col> | ||
| 27 | + <el-col :span="3"> | ||
| 28 | + <el-button v-if="index === form.titleValues.length - 1" type="text" @click="handleAddOption"> | ||
| 29 | + {{ $t('common.add') }} | ||
| 30 | + </el-button> | ||
| 31 | + <el-button v-else type="text" @click="handleRemoveOption(index)"> | ||
| 32 | + {{ $t('common.delete') }} | ||
| 33 | + </el-button> | ||
| 34 | + </el-col> | ||
| 35 | + </el-row> | ||
| 36 | + </el-form-item> | ||
| 37 | + </template> | ||
| 38 | + | ||
| 39 | + <el-form-item :label="$t('maintainanceItem.form.seq')" prop="seq"> | ||
| 40 | + <el-input v-model.number="form.seq" :placeholder="$t('maintainanceItem.form.seqPlaceholder')" /> | ||
| 41 | + </el-form-item> | ||
| 42 | + </el-form> | ||
| 43 | + | ||
| 44 | + <span slot="footer" class="dialog-footer"> | ||
| 45 | + <el-button @click="visible = false"> | ||
| 46 | + {{ $t('common.cancel') }} | ||
| 47 | + </el-button> | ||
| 48 | + <el-button type="primary" @click="handleSubmit"> | ||
| 49 | + {{ $t('common.confirm') }} | ||
| 50 | + </el-button> | ||
| 51 | + </span> | ||
| 52 | + </el-dialog> | ||
| 53 | +</template> | ||
| 54 | + | ||
| 55 | +<script> | ||
| 56 | +import { saveMaintainanceItem } from '@/api/inspection/maintainanceItemApi' | ||
| 57 | + | ||
| 58 | +export default { | ||
| 59 | + name: 'AddMaintainanceItem', | ||
| 60 | + data() { | ||
| 61 | + return { | ||
| 62 | + visible: false, | ||
| 63 | + form: { | ||
| 64 | + titleType: '', | ||
| 65 | + itemTitle: '', | ||
| 66 | + seq: '', | ||
| 67 | + titleValues: [], | ||
| 68 | + communityId: '' | ||
| 69 | + }, | ||
| 70 | + rules: { | ||
| 71 | + itemTitle: [ | ||
| 72 | + { required: true, message: this.$t('maintainanceItem.form.itemTitleRequired'), trigger: 'blur' } | ||
| 73 | + ], | ||
| 74 | + titleType: [ | ||
| 75 | + { required: true, message: this.$t('maintainanceItem.form.titleTypeRequired'), trigger: 'change' } | ||
| 76 | + ], | ||
| 77 | + seq: [ | ||
| 78 | + { required: true, message: this.$t('maintainanceItem.form.seqRequired'), trigger: 'blur' }, | ||
| 79 | + { type: 'number', message: this.$t('maintainanceItem.form.seqNumber'), trigger: 'blur' } | ||
| 80 | + ] | ||
| 81 | + }, | ||
| 82 | + titleTypeOptions: [ | ||
| 83 | + { value: '1001', label: this.$t('maintainanceItem.titleType.single') }, | ||
| 84 | + { value: '2002', label: this.$t('maintainanceItem.titleType.multiple') }, | ||
| 85 | + { value: '3003', label: this.$t('maintainanceItem.titleType.shortAnswer') } | ||
| 86 | + ] | ||
| 87 | + } | ||
| 88 | + }, | ||
| 89 | + methods: { | ||
| 90 | + open(data) { | ||
| 91 | + this.resetForm() | ||
| 92 | + if (data) { | ||
| 93 | + this.form.communityId = data.communityId | ||
| 94 | + } | ||
| 95 | + this.visible = true | ||
| 96 | + }, | ||
| 97 | + resetForm() { | ||
| 98 | + this.form = { | ||
| 99 | + titleType: '', | ||
| 100 | + itemTitle: '', | ||
| 101 | + seq: '', | ||
| 102 | + titleValues: [], | ||
| 103 | + communityId: this.form.communityId || '' | ||
| 104 | + } | ||
| 105 | + this.$nextTick(() => { | ||
| 106 | + this.$refs.form && this.$refs.form.resetFields() | ||
| 107 | + }) | ||
| 108 | + }, | ||
| 109 | + handleClose() { | ||
| 110 | + this.resetForm() | ||
| 111 | + }, | ||
| 112 | + handleTitleTypeChange(value) { | ||
| 113 | + this.form.titleValues = [] | ||
| 114 | + if (value === '1001') { | ||
| 115 | + this.form.titleValues = [{ itemValue: '', seq: 1 }] | ||
| 116 | + } else if (value === '2002') { | ||
| 117 | + this.form.titleValues = [ | ||
| 118 | + { itemValue: '', seq: 1 }, | ||
| 119 | + { itemValue: '', seq: 2 } | ||
| 120 | + ] | ||
| 121 | + } | ||
| 122 | + }, | ||
| 123 | + handleAddOption() { | ||
| 124 | + this.form.titleValues.push({ | ||
| 125 | + itemValue: '', | ||
| 126 | + seq: this.form.titleValues.length + 1 | ||
| 127 | + }) | ||
| 128 | + }, | ||
| 129 | + handleRemoveOption(index) { | ||
| 130 | + this.form.titleValues.splice(index, 1) | ||
| 131 | + // 重新排序 | ||
| 132 | + this.form.titleValues.forEach((item, i) => { | ||
| 133 | + item.seq = i + 1 | ||
| 134 | + }) | ||
| 135 | + }, | ||
| 136 | + handleSubmit() { | ||
| 137 | + this.$refs.form.validate(async valid => { | ||
| 138 | + if (valid) { | ||
| 139 | + try { | ||
| 140 | + await saveMaintainanceItem(this.form) | ||
| 141 | + this.$message.success(this.$t('common.saveSuccess')) | ||
| 142 | + this.$emit('success') | ||
| 143 | + this.visible = false | ||
| 144 | + } catch (error) { | ||
| 145 | + this.$message.error(error.message || this.$t('common.saveFailed')) | ||
| 146 | + } | ||
| 147 | + } | ||
| 148 | + }) | ||
| 149 | + } | ||
| 150 | + } | ||
| 151 | +} | ||
| 152 | +</script> | ||
| 0 | \ No newline at end of file | 153 | \ No newline at end of file |
src/components/inspection/deleteMaintainanceItem.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <el-dialog | ||
| 3 | + :title="$t('maintainanceItem.delete.title')" | ||
| 4 | + :visible.sync="visible" | ||
| 5 | + width="30%" | ||
| 6 | + @close="handleClose" | ||
| 7 | + > | ||
| 8 | + <div class="delete-content"> | ||
| 9 | + <p>{{ $t('maintainanceItem.delete.confirmText') }}</p> | ||
| 10 | + <p class="delete-item">{{ form.itemTitle }}</p> | ||
| 11 | + </div> | ||
| 12 | + | ||
| 13 | + <span slot="footer" class="dialog-footer"> | ||
| 14 | + <el-button @click="visible = false"> | ||
| 15 | + {{ $t('common.cancel') }} | ||
| 16 | + </el-button> | ||
| 17 | + <el-button type="primary" @click="handleConfirm"> | ||
| 18 | + {{ $t('common.confirm') }} | ||
| 19 | + </el-button> | ||
| 20 | + </span> | ||
| 21 | + </el-dialog> | ||
| 22 | +</template> | ||
| 23 | + | ||
| 24 | +<script> | ||
| 25 | +import { deleteMaintainanceItem } from '@/api/inspection/maintainanceItemApi' | ||
| 26 | + | ||
| 27 | +export default { | ||
| 28 | + name: 'DeleteMaintainanceItem', | ||
| 29 | + data() { | ||
| 30 | + return { | ||
| 31 | + visible: false, | ||
| 32 | + form: { | ||
| 33 | + itemId: '', | ||
| 34 | + itemTitle: '', | ||
| 35 | + communityId: '' | ||
| 36 | + } | ||
| 37 | + } | ||
| 38 | + }, | ||
| 39 | + methods: { | ||
| 40 | + open(data) { | ||
| 41 | + if (data) { | ||
| 42 | + this.form = { | ||
| 43 | + itemId: data.itemId, | ||
| 44 | + itemTitle: data.itemTitle, | ||
| 45 | + communityId: data.communityId || '' | ||
| 46 | + } | ||
| 47 | + } | ||
| 48 | + this.visible = true | ||
| 49 | + }, | ||
| 50 | + handleClose() { | ||
| 51 | + this.form = { | ||
| 52 | + itemId: '', | ||
| 53 | + itemTitle: '', | ||
| 54 | + communityId: '' | ||
| 55 | + } | ||
| 56 | + }, | ||
| 57 | + async handleConfirm() { | ||
| 58 | + try { | ||
| 59 | + await deleteMaintainanceItem({ | ||
| 60 | + itemId: this.form.itemId, | ||
| 61 | + communityId: this.form.communityId | ||
| 62 | + }) | ||
| 63 | + this.$message.success(this.$t('common.deleteSuccess')) | ||
| 64 | + this.$emit('success') | ||
| 65 | + this.visible = false | ||
| 66 | + } catch (error) { | ||
| 67 | + this.$message.error(error.message || this.$t('common.deleteFailed')) | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | + } | ||
| 71 | +} | ||
| 72 | +</script> | ||
| 73 | + | ||
| 74 | +<style lang="scss" scoped> | ||
| 75 | +.delete-content { | ||
| 76 | + text-align: center; | ||
| 77 | + font-size: 16px; | ||
| 78 | + | ||
| 79 | + .delete-item { | ||
| 80 | + font-weight: bold; | ||
| 81 | + color: #f56c6c; | ||
| 82 | + margin-top: 10px; | ||
| 83 | + } | ||
| 84 | +} | ||
| 85 | +</style> | ||
| 0 | \ No newline at end of file | 86 | \ No newline at end of file |
src/components/inspection/editMaintainanceItem.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <el-dialog :title="$t('maintainanceItem.edit.title')" :visible.sync="visible" width="50%" @close="handleClose"> | ||
| 3 | + <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||
| 4 | + <el-form-item :label="$t('maintainanceItem.form.titleType')" prop="titleType"> | ||
| 5 | + <el-select v-model="form.titleType" :placeholder="$t('maintainanceItem.form.titleTypePlaceholder')" | ||
| 6 | + style="width:100%" @change="handleTitleTypeChange"> | ||
| 7 | + <el-option v-for="item in titleTypeOptions" :key="item.value" :label="item.label" :value="item.value" /> | ||
| 8 | + </el-select> | ||
| 9 | + </el-form-item> | ||
| 10 | + | ||
| 11 | + <el-form-item :label="$t('maintainanceItem.form.itemTitle')" prop="itemTitle"> | ||
| 12 | + <el-input v-model="form.itemTitle" :placeholder="$t('maintainanceItem.form.itemTitlePlaceholder')" /> | ||
| 13 | + </el-form-item> | ||
| 14 | + | ||
| 15 | + <template v-if="form.titleType && form.titleType !== '3003'"> | ||
| 16 | + <el-form-item v-for="(item, index) in form.titleValues" :key="index" | ||
| 17 | + :label="`${$t('maintainanceItem.form.option')} ${index + 1}`" :prop="'titleValues.' + index + '.itemValue'" | ||
| 18 | + :rules="{ | ||
| 19 | + required: true, | ||
| 20 | + message: $t('maintainanceItem.form.optionRequired'), | ||
| 21 | + trigger: 'blur' | ||
| 22 | + }"> | ||
| 23 | + <el-row :gutter="10"> | ||
| 24 | + <el-col :span="20"> | ||
| 25 | + <el-input v-model="item.itemValue" :placeholder="$t('maintainanceItem.form.optionPlaceholder')" /> | ||
| 26 | + </el-col> | ||
| 27 | + <el-col :span="3"> | ||
| 28 | + <el-button v-if="index === form.titleValues.length - 1" type="text" @click="handleAddOption"> | ||
| 29 | + {{ $t('common.add') }} | ||
| 30 | + </el-button> | ||
| 31 | + <el-button v-else type="text" @click="handleRemoveOption(index)"> | ||
| 32 | + {{ $t('common.delete') }} | ||
| 33 | + </el-button> | ||
| 34 | + </el-col> | ||
| 35 | + </el-row> | ||
| 36 | + </el-form-item> | ||
| 37 | + </template> | ||
| 38 | + | ||
| 39 | + <el-form-item :label="$t('maintainanceItem.form.seq')" prop="seq"> | ||
| 40 | + <el-input v-model.number="form.seq" :placeholder="$t('maintainanceItem.form.seqPlaceholder')" /> | ||
| 41 | + </el-form-item> | ||
| 42 | + </el-form> | ||
| 43 | + | ||
| 44 | + <span slot="footer" class="dialog-footer"> | ||
| 45 | + <el-button @click="visible = false"> | ||
| 46 | + {{ $t('common.cancel') }} | ||
| 47 | + </el-button> | ||
| 48 | + <el-button type="primary" @click="handleSubmit"> | ||
| 49 | + {{ $t('common.confirm') }} | ||
| 50 | + </el-button> | ||
| 51 | + </span> | ||
| 52 | + </el-dialog> | ||
| 53 | +</template> | ||
| 54 | + | ||
| 55 | +<script> | ||
| 56 | +import { updateMaintainanceItem } from '@/api/inspection/maintainanceItemApi' | ||
| 57 | + | ||
| 58 | +export default { | ||
| 59 | + name: 'EditMaintainanceItem', | ||
| 60 | + data() { | ||
| 61 | + return { | ||
| 62 | + visible: false, | ||
| 63 | + form: { | ||
| 64 | + titleId: '', | ||
| 65 | + titleType: '', | ||
| 66 | + itemTitle: '', | ||
| 67 | + seq: '', | ||
| 68 | + titleValues: [], | ||
| 69 | + communityId: '' | ||
| 70 | + }, | ||
| 71 | + rules: { | ||
| 72 | + itemTitle: [ | ||
| 73 | + { required: true, message: this.$t('maintainanceItem.form.itemTitleRequired'), trigger: 'blur' } | ||
| 74 | + ], | ||
| 75 | + titleType: [ | ||
| 76 | + { required: true, message: this.$t('maintainanceItem.form.titleTypeRequired'), trigger: 'change' } | ||
| 77 | + ], | ||
| 78 | + seq: [ | ||
| 79 | + { required: true, message: this.$t('maintainanceItem.form.seqRequired'), trigger: 'blur' }, | ||
| 80 | + ] | ||
| 81 | + }, | ||
| 82 | + titleTypeOptions: [ | ||
| 83 | + { value: '1001', label: this.$t('maintainanceItem.titleType.single') }, | ||
| 84 | + { value: '2002', label: this.$t('maintainanceItem.titleType.multiple') }, | ||
| 85 | + { value: '3003', label: this.$t('maintainanceItem.titleType.shortAnswer') } | ||
| 86 | + ] | ||
| 87 | + } | ||
| 88 | + }, | ||
| 89 | + methods: { | ||
| 90 | + open(data) { | ||
| 91 | + this.resetForm() | ||
| 92 | + if (data) { | ||
| 93 | + this.form = { | ||
| 94 | + ...this.form, | ||
| 95 | + titleId: data.titleId, | ||
| 96 | + itemId: data.itemId, | ||
| 97 | + titleType: data.titleType, | ||
| 98 | + itemTitle: data.itemTitle, | ||
| 99 | + seq: data.seq, | ||
| 100 | + titleValues: data.titleValues || [], | ||
| 101 | + communityId: data.communityId | ||
| 102 | + } | ||
| 103 | + } | ||
| 104 | + this.visible = true | ||
| 105 | + }, | ||
| 106 | + resetForm() { | ||
| 107 | + this.form = { | ||
| 108 | + titleId: '', | ||
| 109 | + titleType: '', | ||
| 110 | + itemTitle: '', | ||
| 111 | + seq: '', | ||
| 112 | + titleValues: [], | ||
| 113 | + communityId: '' | ||
| 114 | + } | ||
| 115 | + this.$nextTick(() => { | ||
| 116 | + this.$refs.form && this.$refs.form.resetFields() | ||
| 117 | + }) | ||
| 118 | + }, | ||
| 119 | + handleClose() { | ||
| 120 | + this.resetForm() | ||
| 121 | + }, | ||
| 122 | + handleTitleTypeChange(value) { | ||
| 123 | + if (value === '3003') { | ||
| 124 | + this.form.titleValues = [] | ||
| 125 | + } else if (value === '1001' && (!this.form.titleValues || this.form.titleValues.length === 0)) { | ||
| 126 | + this.form.titleValues = [{ itemValue: '', seq: 1 }] | ||
| 127 | + } else if (value === '2002' && (!this.form.titleValues || this.form.titleValues.length === 0)) { | ||
| 128 | + this.form.titleValues = [ | ||
| 129 | + { itemValue: '', seq: 1 }, | ||
| 130 | + { itemValue: '', seq: 2 } | ||
| 131 | + ] | ||
| 132 | + } | ||
| 133 | + }, | ||
| 134 | + handleAddOption() { | ||
| 135 | + this.form.titleValues.push({ | ||
| 136 | + itemValue: '', | ||
| 137 | + seq: this.form.titleValues.length + 1 | ||
| 138 | + }) | ||
| 139 | + }, | ||
| 140 | + handleRemoveOption(index) { | ||
| 141 | + this.form.titleValues.splice(index, 1) | ||
| 142 | + // 重新排序 | ||
| 143 | + this.form.titleValues.forEach((item, i) => { | ||
| 144 | + item.seq = i + 1 | ||
| 145 | + }) | ||
| 146 | + }, | ||
| 147 | + handleSubmit() { | ||
| 148 | + this.$refs.form.validate(async valid => { | ||
| 149 | + if (valid) { | ||
| 150 | + try { | ||
| 151 | + await updateMaintainanceItem(this.form) | ||
| 152 | + this.$message.success(this.$t('common.updateSuccess')) | ||
| 153 | + this.$emit('success') | ||
| 154 | + this.visible = false | ||
| 155 | + } catch (error) { | ||
| 156 | + this.$message.error(error.message || this.$t('common.updateFailed')) | ||
| 157 | + } | ||
| 158 | + } | ||
| 159 | + }) | ||
| 160 | + } | ||
| 161 | + } | ||
| 162 | +} | ||
| 163 | +</script> | ||
| 0 | \ No newline at end of file | 164 | \ No newline at end of file |
src/i18n/index.js
| @@ -204,6 +204,7 @@ import { messages as addEquipmentAccountMessages } from '../views/machine/addEqu | @@ -204,6 +204,7 @@ import { messages as addEquipmentAccountMessages } from '../views/machine/addEqu | ||
| 204 | import { messages as editEquipmentAccountMessages } from '../views/machine/editEquipmentAccountLang' | 204 | import { messages as editEquipmentAccountMessages } from '../views/machine/editEquipmentAccountLang' |
| 205 | import { messages as equipmentAccountDetailMessages } from '../views/machine/equipmentAccountDetailLang' | 205 | import { messages as equipmentAccountDetailMessages } from '../views/machine/equipmentAccountDetailLang' |
| 206 | import { messages as printEquipmentAccountLabelMessages } from '../views/resource/printEquipmentAccountLabelLang' | 206 | import { messages as printEquipmentAccountLabelMessages } from '../views/resource/printEquipmentAccountLabelLang' |
| 207 | +import {messages as inspectioni18n} from './inspectionI18n' | ||
| 207 | 208 | ||
| 208 | Vue.use(VueI18n) | 209 | Vue.use(VueI18n) |
| 209 | 210 | ||
| @@ -412,6 +413,7 @@ const messages = { | @@ -412,6 +413,7 @@ const messages = { | ||
| 412 | ...editEquipmentAccountMessages.en, | 413 | ...editEquipmentAccountMessages.en, |
| 413 | ...equipmentAccountDetailMessages.en, | 414 | ...equipmentAccountDetailMessages.en, |
| 414 | ...printEquipmentAccountLabelMessages.en, | 415 | ...printEquipmentAccountLabelMessages.en, |
| 416 | + ...inspectioni18n.en, | ||
| 415 | }, | 417 | }, |
| 416 | zh: { | 418 | zh: { |
| 417 | ...loginMessages.zh, | 419 | ...loginMessages.zh, |
| @@ -616,6 +618,7 @@ const messages = { | @@ -616,6 +618,7 @@ const messages = { | ||
| 616 | ...editEquipmentAccountMessages.zh, | 618 | ...editEquipmentAccountMessages.zh, |
| 617 | ...equipmentAccountDetailMessages.zh, | 619 | ...equipmentAccountDetailMessages.zh, |
| 618 | ...printEquipmentAccountLabelMessages.zh, | 620 | ...printEquipmentAccountLabelMessages.zh, |
| 621 | + ...inspectioni18n.zh, | ||
| 619 | } | 622 | } |
| 620 | } | 623 | } |
| 621 | 624 |
src/i18n/inspectionI18n.js
0 → 100644
| 1 | +import { messages as maintainanceItemMessages } from '../views/inspection/maintainanceItemLang' | ||
| 2 | +export const messages = { | ||
| 3 | + en: { | ||
| 4 | + ...maintainanceItemMessages.en, | ||
| 5 | + }, | ||
| 6 | + zh: { | ||
| 7 | + ...maintainanceItemMessages.zh, | ||
| 8 | + } | ||
| 9 | + | ||
| 10 | +} | ||
| 0 | \ No newline at end of file | 11 | \ No newline at end of file |
src/router/index.js
| @@ -3,6 +3,7 @@ import VueRouter from 'vue-router' | @@ -3,6 +3,7 @@ import VueRouter from 'vue-router' | ||
| 3 | import Layout from '@/views/layout/layout.vue' | 3 | import Layout from '@/views/layout/layout.vue' |
| 4 | import Login from '@/views/user/login/Login.vue' | 4 | import Login from '@/views/user/login/Login.vue' |
| 5 | import printEquipmentAccountLabel from '@/views/resource/printEquipmentAccountLabelList.vue' | 5 | import printEquipmentAccountLabel from '@/views/resource/printEquipmentAccountLabelList.vue' |
| 6 | +import inspectionRouter from './inspectionRouter' | ||
| 6 | 7 | ||
| 7 | Vue.use(VueRouter) | 8 | Vue.use(VueRouter) |
| 8 | 9 | ||
| @@ -327,26 +328,7 @@ const routes = [ | @@ -327,26 +328,7 @@ const routes = [ | ||
| 327 | name: '/views/work/adminRepairDetail', | 328 | name: '/views/work/adminRepairDetail', |
| 328 | component: () => import('@/views/work/adminRepairDetailList.vue') | 329 | component: () => import('@/views/work/adminRepairDetailList.vue') |
| 329 | }, | 330 | }, |
| 330 | - { | ||
| 331 | - path: '/pages/inspection/adminInspectionPlan', | ||
| 332 | - name: '/pages/inspection/adminInspectionPlan', | ||
| 333 | - component: () => import('@/views/inspection/adminInspectionPlanList.vue') | ||
| 334 | - }, | ||
| 335 | - { | ||
| 336 | - path: '/pages/inspection/aInspectionPlanDetail', | ||
| 337 | - name: '/pages/inspection/aInspectionPlanDetail', | ||
| 338 | - component: () => import('@/views/inspection/aInspectionPlanDetailList.vue') | ||
| 339 | - }, | ||
| 340 | - { | ||
| 341 | - path: '/pages/inspection/adminInspectionTask', | ||
| 342 | - name: '/pages/inspection/adminInspectionTask', | ||
| 343 | - component: () => import('@/views/inspection/adminInspectionTaskList.vue') | ||
| 344 | - }, | ||
| 345 | - { | ||
| 346 | - path: '/views/inspection/adminInspectionTaskDetail', | ||
| 347 | - name: '/views/inspection/adminInspectionTaskDetail', | ||
| 348 | - component: () => import('@/views/inspection/adminInspectionTaskDetailList.vue') | ||
| 349 | - }, | 331 | + |
| 350 | { | 332 | { |
| 351 | path: '/pages/complaint/adminComplaint', | 333 | path: '/pages/complaint/adminComplaint', |
| 352 | name: '/pages/complaint/adminComplaint', | 334 | name: '/pages/complaint/adminComplaint', |
| @@ -842,36 +824,7 @@ const routes = [ | @@ -842,36 +824,7 @@ const routes = [ | ||
| 842 | name: '/pages/property/repairForceFinishManage', | 824 | name: '/pages/property/repairForceFinishManage', |
| 843 | component: () => import('@/views/work/repairForceFinishManageList.vue') | 825 | component: () => import('@/views/work/repairForceFinishManageList.vue') |
| 844 | }, | 826 | }, |
| 845 | - { | ||
| 846 | - path: '/pages/property/inspectionItemManage', | ||
| 847 | - name: '/pages/property/inspectionItemManage', | ||
| 848 | - component: () => import('@/views/inspection/inspectionItemManageList.vue') | ||
| 849 | - }, | ||
| 850 | - { | ||
| 851 | - path: '/views/inspection/inspectionItemTitleManage', | ||
| 852 | - name: '/views/inspection/inspectionItemTitleManage', | ||
| 853 | - component: () => import('@/views/inspection/inspectionItemTitleManageList.vue') | ||
| 854 | - }, | ||
| 855 | - { | ||
| 856 | - path: '/pages/inspection/inspectionPlan', | ||
| 857 | - name: '/pages/inspection/inspectionPlan', | ||
| 858 | - component: () => import('@/views/inspection/inspectionPlanList.vue') | ||
| 859 | - }, | ||
| 860 | - { | ||
| 861 | - path: '/views/inspection/addInspectionPlan', | ||
| 862 | - name: '/views/inspection/addInspectionPlan', | ||
| 863 | - component: () => import('@/views/inspection/addInspectionPlanList.vue') | ||
| 864 | - }, | ||
| 865 | - { | ||
| 866 | - path: '/pages/inspection/inspectionTask', | ||
| 867 | - name: '/pages/inspection/inspectionTask', | ||
| 868 | - component: () => import('@/views/inspection/InspectionTaskList.vue') | ||
| 869 | - }, | ||
| 870 | - { | ||
| 871 | - path: '/pages/property/inspectionTaskDetails', | ||
| 872 | - name: '/pages/property/inspectionTaskDetails', | ||
| 873 | - component: () => import('@/views/inspection/inspectionTaskDetailsList.vue') | ||
| 874 | - }, | 827 | + |
| 875 | { | 828 | { |
| 876 | path: '/pages/resource/resourceAuditFlow', | 829 | path: '/pages/resource/resourceAuditFlow', |
| 877 | name: '/pages/resource/resourceAuditFlow', | 830 | name: '/pages/resource/resourceAuditFlow', |
| @@ -892,16 +845,7 @@ const routes = [ | @@ -892,16 +845,7 @@ const routes = [ | ||
| 892 | name: '/pages/common/resourceStoreManage', | 845 | name: '/pages/common/resourceStoreManage', |
| 893 | component: () => import('@/views/resource/resourceStoreManageList.vue') | 846 | component: () => import('@/views/resource/resourceStoreManageList.vue') |
| 894 | }, | 847 | }, |
| 895 | - { | ||
| 896 | - path: '/pages/inspection/inspectionPoint', | ||
| 897 | - name: '/pages/inspection/inspectionPoint', | ||
| 898 | - component: () => import('@/views/inspection/inspectionPointList.vue') | ||
| 899 | - }, | ||
| 900 | - { | ||
| 901 | - path: '/pages/inspection/inspectionRoute', | ||
| 902 | - name: '/pages/inspection/inspectionRoute', | ||
| 903 | - component: () => import('@/views/inspection/inspectionRouteList.vue') | ||
| 904 | - }, | 848 | + |
| 905 | { | 849 | { |
| 906 | path: '/pages/property/resourceSupplierManage', | 850 | path: '/pages/property/resourceSupplierManage', |
| 907 | name: '/pages/property/resourceSupplierManage', | 851 | name: '/pages/property/resourceSupplierManage', |
| @@ -1007,7 +951,7 @@ const routes = [ | @@ -1007,7 +951,7 @@ const routes = [ | ||
| 1007 | name: '/views/machine/equipmentAccountDetail', | 951 | name: '/views/machine/equipmentAccountDetail', |
| 1008 | component: () => import('@/views/machine/equipmentAccountDetailList.vue') | 952 | component: () => import('@/views/machine/equipmentAccountDetailList.vue') |
| 1009 | }, | 953 | }, |
| 1010 | - | 954 | + ...inspectionRouter |
| 1011 | // 其他子路由可以在这里添加 | 955 | // 其他子路由可以在这里添加 |
| 1012 | ] | 956 | ] |
| 1013 | }, | 957 | }, |
src/router/inspectionRouter.js
0 → 100644
| 1 | +export default [ | ||
| 2 | + { | ||
| 3 | + path: '/pages/inspection/inspectionPoint', | ||
| 4 | + name: '/pages/inspection/inspectionPoint', | ||
| 5 | + component: () => import('@/views/inspection/inspectionPointList.vue') | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + path: '/pages/inspection/inspectionRoute', | ||
| 9 | + name: '/pages/inspection/inspectionRoute', | ||
| 10 | + component: () => import('@/views/inspection/inspectionRouteList.vue') | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + path: '/pages/inspection/adminInspectionPlan', | ||
| 14 | + name: '/pages/inspection/adminInspectionPlan', | ||
| 15 | + component: () => import('@/views/inspection/adminInspectionPlanList.vue') | ||
| 16 | + }, | ||
| 17 | + { | ||
| 18 | + path: '/pages/inspection/aInspectionPlanDetail', | ||
| 19 | + name: '/pages/inspection/aInspectionPlanDetail', | ||
| 20 | + component: () => import('@/views/inspection/aInspectionPlanDetailList.vue') | ||
| 21 | + }, | ||
| 22 | + { | ||
| 23 | + path: '/pages/inspection/adminInspectionTask', | ||
| 24 | + name: '/pages/inspection/adminInspectionTask', | ||
| 25 | + component: () => import('@/views/inspection/adminInspectionTaskList.vue') | ||
| 26 | + }, | ||
| 27 | + { | ||
| 28 | + path: '/views/inspection/adminInspectionTaskDetail', | ||
| 29 | + name: '/views/inspection/adminInspectionTaskDetail', | ||
| 30 | + component: () => import('@/views/inspection/adminInspectionTaskDetailList.vue') | ||
| 31 | + }, | ||
| 32 | + { | ||
| 33 | + path: '/pages/property/inspectionItemManage', | ||
| 34 | + name: '/pages/property/inspectionItemManage', | ||
| 35 | + component: () => import('@/views/inspection/inspectionItemManageList.vue') | ||
| 36 | + }, | ||
| 37 | + { | ||
| 38 | + path: '/views/inspection/inspectionItemTitleManage', | ||
| 39 | + name: '/views/inspection/inspectionItemTitleManage', | ||
| 40 | + component: () => import('@/views/inspection/inspectionItemTitleManageList.vue') | ||
| 41 | + }, | ||
| 42 | + { | ||
| 43 | + path: '/pages/inspection/inspectionPlan', | ||
| 44 | + name: '/pages/inspection/inspectionPlan', | ||
| 45 | + component: () => import('@/views/inspection/inspectionPlanList.vue') | ||
| 46 | + }, | ||
| 47 | + { | ||
| 48 | + path: '/views/inspection/addInspectionPlan', | ||
| 49 | + name: '/views/inspection/addInspectionPlan', | ||
| 50 | + component: () => import('@/views/inspection/addInspectionPlanList.vue') | ||
| 51 | + }, | ||
| 52 | + { | ||
| 53 | + path: '/pages/inspection/inspectionTask', | ||
| 54 | + name: '/pages/inspection/inspectionTask', | ||
| 55 | + component: () => import('@/views/inspection/InspectionTaskList.vue') | ||
| 56 | + }, | ||
| 57 | + { | ||
| 58 | + path: '/pages/property/inspectionTaskDetails', | ||
| 59 | + name: '/pages/property/inspectionTaskDetails', | ||
| 60 | + component: () => import('@/views/inspection/inspectionTaskDetailsList.vue') | ||
| 61 | + }, | ||
| 62 | + { | ||
| 63 | + path: '/pages/property/maintainanceItem', | ||
| 64 | + name: '/pages/property/maintainanceItem', | ||
| 65 | + component: () => import('@/views/inspection/maintainanceItemList.vue') | ||
| 66 | + }, | ||
| 67 | +] | ||
| 0 | \ No newline at end of file | 68 | \ No newline at end of file |
src/views/inspection/maintainanceItemLang.js
0 → 100644
| 1 | +export const messages = { | ||
| 2 | + en: { | ||
| 3 | + maintainanceItem: { | ||
| 4 | + search: { | ||
| 5 | + title: 'Search Conditions', | ||
| 6 | + itemTitle: 'Please enter item name', | ||
| 7 | + titleType: 'Please select title type' | ||
| 8 | + }, | ||
| 9 | + list: { | ||
| 10 | + title: 'Inspection Items' | ||
| 11 | + }, | ||
| 12 | + table: { | ||
| 13 | + itemTitle: 'Name', | ||
| 14 | + titleType: 'Type', | ||
| 15 | + seq: 'Sequence', | ||
| 16 | + createTime: 'Create Time' | ||
| 17 | + }, | ||
| 18 | + titleType: { | ||
| 19 | + single: 'Single Choice', | ||
| 20 | + multiple: 'Multiple Choice', | ||
| 21 | + shortAnswer: 'Short Answer' | ||
| 22 | + }, | ||
| 23 | + form: { | ||
| 24 | + itemTitle: 'Name', | ||
| 25 | + itemTitlePlaceholder: 'Please enter name', | ||
| 26 | + itemTitleRequired: 'Name is required', | ||
| 27 | + titleType: 'Type', | ||
| 28 | + titleTypePlaceholder: 'Please select type', | ||
| 29 | + titleTypeRequired: 'Type is required', | ||
| 30 | + option: 'Option', | ||
| 31 | + optionPlaceholder: 'Please enter option content', | ||
| 32 | + optionRequired: 'Option content is required', | ||
| 33 | + seq: 'Sequence', | ||
| 34 | + seqPlaceholder: 'Please enter sequence', | ||
| 35 | + seqRequired: 'Sequence is required', | ||
| 36 | + seqNumber: 'Sequence must be a number' | ||
| 37 | + }, | ||
| 38 | + add: { | ||
| 39 | + title: 'Add Item' | ||
| 40 | + }, | ||
| 41 | + edit: { | ||
| 42 | + title: 'Edit Item' | ||
| 43 | + }, | ||
| 44 | + delete: { | ||
| 45 | + title: 'Confirm Operation', | ||
| 46 | + confirmText: 'Are you sure to delete this item?' | ||
| 47 | + }, | ||
| 48 | + fetchError: 'Failed to fetch data' | ||
| 49 | + } | ||
| 50 | + }, | ||
| 51 | + zh: { | ||
| 52 | + maintainanceItem: { | ||
| 53 | + search: { | ||
| 54 | + title: '查询条件', | ||
| 55 | + itemTitle: '请输入问题名称', | ||
| 56 | + titleType: '请选择题目类型' | ||
| 57 | + }, | ||
| 58 | + list: { | ||
| 59 | + title: '检查项' | ||
| 60 | + }, | ||
| 61 | + table: { | ||
| 62 | + itemTitle: '名称', | ||
| 63 | + titleType: '类型', | ||
| 64 | + seq: '顺序', | ||
| 65 | + createTime: '创建时间' | ||
| 66 | + }, | ||
| 67 | + titleType: { | ||
| 68 | + single: '单选', | ||
| 69 | + multiple: '多选', | ||
| 70 | + shortAnswer: '简答' | ||
| 71 | + }, | ||
| 72 | + form: { | ||
| 73 | + itemTitle: '名称', | ||
| 74 | + itemTitlePlaceholder: '请输入名称', | ||
| 75 | + itemTitleRequired: '名称不能为空', | ||
| 76 | + titleType: '类型', | ||
| 77 | + titleTypePlaceholder: '请选择类型', | ||
| 78 | + titleTypeRequired: '类型不能为空', | ||
| 79 | + option: '选项', | ||
| 80 | + optionPlaceholder: '请输入选项内容', | ||
| 81 | + optionRequired: '选项内容不能为空', | ||
| 82 | + seq: '顺序', | ||
| 83 | + seqPlaceholder: '请输入顺序', | ||
| 84 | + seqRequired: '顺序不能为空', | ||
| 85 | + seqNumber: '顺序必须是数字' | ||
| 86 | + }, | ||
| 87 | + add: { | ||
| 88 | + title: '添加检查项' | ||
| 89 | + }, | ||
| 90 | + edit: { | ||
| 91 | + title: '修改检查项' | ||
| 92 | + }, | ||
| 93 | + delete: { | ||
| 94 | + title: '确认操作', | ||
| 95 | + confirmText: '确定删除该题目吗?' | ||
| 96 | + }, | ||
| 97 | + fetchError: '获取数据失败' | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | +} | ||
| 0 | \ No newline at end of file | 101 | \ No newline at end of file |
src/views/inspection/maintainanceItemList.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="maintainance-item-container"> | ||
| 3 | + <!-- 查询条件 --> | ||
| 4 | + <el-card class="search-wrapper"> | ||
| 5 | + <div slot="header" class="flex justify-between"> | ||
| 6 | + <span>{{ $t('maintainanceItem.search.title') }}</span> | ||
| 7 | + </div> | ||
| 8 | + <el-row :gutter="20"> | ||
| 9 | + <el-col :span="6"> | ||
| 10 | + <el-input v-model="searchForm.itemTitle" :placeholder="$t('maintainanceItem.search.itemTitle')" clearable | ||
| 11 | + @keyup.enter.native="handleSearch" /> | ||
| 12 | + </el-col> | ||
| 13 | + <el-col :span="6"> | ||
| 14 | + <el-select v-model="searchForm.titleType" :placeholder="$t('maintainanceItem.search.titleType')" | ||
| 15 | + style="width:100%" clearable> | ||
| 16 | + <el-option v-for="item in titleTypeOptions" :key="item.value" :label="item.label" :value="item.value" /> | ||
| 17 | + </el-select> | ||
| 18 | + </el-col> | ||
| 19 | + <el-col :span="6"> | ||
| 20 | + <el-button type="primary" @click="handleSearch"> | ||
| 21 | + {{ $t('common.search') }} | ||
| 22 | + </el-button> | ||
| 23 | + <el-button @click="handleReset"> | ||
| 24 | + {{ $t('common.reset') }} | ||
| 25 | + </el-button> | ||
| 26 | + </el-col> | ||
| 27 | + </el-row> | ||
| 28 | + </el-card> | ||
| 29 | + | ||
| 30 | + <!-- 列表区域 --> | ||
| 31 | + <el-card class="list-wrapper"> | ||
| 32 | + <div slot="header" class="flex justify-between"> | ||
| 33 | + <span>{{ $t('maintainanceItem.list.title') }}</span> | ||
| 34 | + <div style="float: right;"> | ||
| 35 | + <el-button type="primary" size="small" @click="handleGoBack"> | ||
| 36 | + {{ $t('common.back') }} | ||
| 37 | + </el-button> | ||
| 38 | + <el-button type="primary" size="small" @click="handleShowDocument"> | ||
| 39 | + {{ $t('common.document') }} | ||
| 40 | + </el-button> | ||
| 41 | + <el-button type="primary" size="small" @click="handleAdd"> | ||
| 42 | + <i class="el-icon-plus" /> {{ $t('common.add') }} | ||
| 43 | + </el-button> | ||
| 44 | + </div> | ||
| 45 | + </div> | ||
| 46 | + | ||
| 47 | + <el-table v-loading="loading" :data="tableData" border style="width: 100%"> | ||
| 48 | + <el-table-column prop="itemTitle" :label="$t('maintainanceItem.table.itemTitle')" align="center" /> | ||
| 49 | + <el-table-column prop="titleType" :label="$t('maintainanceItem.table.titleType')" align="center"> | ||
| 50 | + <template slot-scope="scope"> | ||
| 51 | + {{ getTitleTypeName(scope.row.titleType) }} | ||
| 52 | + </template> | ||
| 53 | + </el-table-column> | ||
| 54 | + <el-table-column prop="seq" :label="$t('maintainanceItem.table.seq')" align="center" /> | ||
| 55 | + <el-table-column prop="createTime" :label="$t('maintainanceItem.table.createTime')" align="center" /> | ||
| 56 | + <el-table-column :label="$t('common.operation')" align="center" width="200"> | ||
| 57 | + <template slot-scope="scope"> | ||
| 58 | + <el-button size="mini" type="primary" @click="handleEdit(scope.row)"> | ||
| 59 | + {{ $t('common.edit') }} | ||
| 60 | + </el-button> | ||
| 61 | + <el-button size="mini" type="danger" @click="handleDelete(scope.row)"> | ||
| 62 | + {{ $t('common.delete') }} | ||
| 63 | + </el-button> | ||
| 64 | + </template> | ||
| 65 | + </el-table-column> | ||
| 66 | + </el-table> | ||
| 67 | + | ||
| 68 | + <el-pagination :current-page="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size" | ||
| 69 | + :total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" | ||
| 70 | + @current-change="handleCurrentChange" /> | ||
| 71 | + </el-card> | ||
| 72 | + | ||
| 73 | + <!-- 子组件 --> | ||
| 74 | + <add-maintainance-item ref="addDialog" @success="handleSuccess" /> | ||
| 75 | + <edit-maintainance-item ref="editDialog" @success="handleSuccess" /> | ||
| 76 | + <delete-maintainance-item ref="deleteDialog" @success="handleSuccess" /> | ||
| 77 | + </div> | ||
| 78 | +</template> | ||
| 79 | + | ||
| 80 | +<script> | ||
| 81 | +import { listMaintainanceItem } from '@/api/inspection/maintainanceItemApi' | ||
| 82 | +import AddMaintainanceItem from '@/components/inspection/addMaintainanceItem' | ||
| 83 | +import EditMaintainanceItem from '@/components/inspection/editMaintainanceItem' | ||
| 84 | +import DeleteMaintainanceItem from '@/components/inspection/deleteMaintainanceItem' | ||
| 85 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 86 | + | ||
| 87 | +export default { | ||
| 88 | + name: 'MaintainanceItemList', | ||
| 89 | + components: { | ||
| 90 | + AddMaintainanceItem, | ||
| 91 | + EditMaintainanceItem, | ||
| 92 | + DeleteMaintainanceItem | ||
| 93 | + }, | ||
| 94 | + data() { | ||
| 95 | + return { | ||
| 96 | + loading: false, | ||
| 97 | + searchForm: { | ||
| 98 | + itemTitle: '', | ||
| 99 | + titleType: '', | ||
| 100 | + communityId: '' | ||
| 101 | + }, | ||
| 102 | + tableData: [], | ||
| 103 | + pagination: { | ||
| 104 | + current: 1, | ||
| 105 | + size: 10, | ||
| 106 | + total: 0 | ||
| 107 | + }, | ||
| 108 | + titleTypeOptions: [ | ||
| 109 | + { value: '1001', label: this.$t('maintainanceItem.titleType.single') }, | ||
| 110 | + { value: '2002', label: this.$t('maintainanceItem.titleType.multiple') }, | ||
| 111 | + { value: '3003', label: this.$t('maintainanceItem.titleType.shortAnswer') } | ||
| 112 | + ] | ||
| 113 | + } | ||
| 114 | + }, | ||
| 115 | + created() { | ||
| 116 | + this.searchForm.communityId = getCommunityId() | ||
| 117 | + this.getList() | ||
| 118 | + }, | ||
| 119 | + methods: { | ||
| 120 | + async getList() { | ||
| 121 | + try { | ||
| 122 | + this.loading = true | ||
| 123 | + const params = { | ||
| 124 | + ...this.searchForm, | ||
| 125 | + page: this.pagination.current, | ||
| 126 | + row: this.pagination.size | ||
| 127 | + } | ||
| 128 | + const { data, total } = await listMaintainanceItem(params) | ||
| 129 | + this.tableData = data | ||
| 130 | + this.pagination.total = total | ||
| 131 | + } catch (error) { | ||
| 132 | + this.$message.error(this.$t('maintainanceItem.fetchError')) | ||
| 133 | + } finally { | ||
| 134 | + this.loading = false | ||
| 135 | + } | ||
| 136 | + }, | ||
| 137 | + handleSearch() { | ||
| 138 | + this.pagination.current = 1 | ||
| 139 | + this.getList() | ||
| 140 | + }, | ||
| 141 | + handleReset() { | ||
| 142 | + this.searchForm = { | ||
| 143 | + itemTitle: '', | ||
| 144 | + titleType: '', | ||
| 145 | + communityId: getCommunityId() | ||
| 146 | + } | ||
| 147 | + this.handleSearch() | ||
| 148 | + }, | ||
| 149 | + handleAdd() { | ||
| 150 | + this.$refs.addDialog.open({ | ||
| 151 | + communityId: this.searchForm.communityId | ||
| 152 | + }) | ||
| 153 | + }, | ||
| 154 | + handleEdit(row) { | ||
| 155 | + this.$refs.editDialog.open(row) | ||
| 156 | + }, | ||
| 157 | + handleDelete(row) { | ||
| 158 | + this.$refs.deleteDialog.open(row) | ||
| 159 | + }, | ||
| 160 | + handleSuccess() { | ||
| 161 | + this.getList() | ||
| 162 | + }, | ||
| 163 | + handleSizeChange(val) { | ||
| 164 | + this.pagination.size = val | ||
| 165 | + this.getList() | ||
| 166 | + }, | ||
| 167 | + handleCurrentChange(val) { | ||
| 168 | + this.pagination.current = val | ||
| 169 | + this.getList() | ||
| 170 | + }, | ||
| 171 | + handleGoBack() { | ||
| 172 | + this.$router.go(-1) | ||
| 173 | + }, | ||
| 174 | + handleShowDocument() { | ||
| 175 | + // 显示文档逻辑 | ||
| 176 | + }, | ||
| 177 | + getTitleTypeName(type) { | ||
| 178 | + const option = this.titleTypeOptions.find(item => item.value === type) | ||
| 179 | + return option ? option.label : '' | ||
| 180 | + } | ||
| 181 | + } | ||
| 182 | +} | ||
| 183 | +</script> | ||
| 184 | + | ||
| 185 | +<style lang="scss" scoped> | ||
| 186 | +.maintainance-item-container { | ||
| 187 | + padding: 20px; | ||
| 188 | + | ||
| 189 | + .search-wrapper { | ||
| 190 | + margin-bottom: 20px; | ||
| 191 | + | ||
| 192 | + .el-row { | ||
| 193 | + margin-bottom: 20px; | ||
| 194 | + | ||
| 195 | + &:last-child { | ||
| 196 | + margin-bottom: 0; | ||
| 197 | + } | ||
| 198 | + } | ||
| 199 | + } | ||
| 200 | + | ||
| 201 | + .list-wrapper { | ||
| 202 | + margin-bottom: 20px; | ||
| 203 | + } | ||
| 204 | + | ||
| 205 | + .el-pagination { | ||
| 206 | + margin-top: 20px; | ||
| 207 | + text-align: right; | ||
| 208 | + } | ||
| 209 | +} | ||
| 210 | +</style> | ||
| 0 | \ No newline at end of file | 211 | \ No newline at end of file |