Commit 84ba01559f03e9337fe232d071fbf64cfbc9e868
1 parent
6db3ce8f
家庭成员测试
Showing
21 changed files
with
407 additions
and
710 deletions
src/api/owner/addOwnerMemberApi.js
| ... | ... | @@ -8,11 +8,22 @@ export function saveOwnerMember(data) { |
| 8 | 8 | data |
| 9 | 9 | }).then(response => { |
| 10 | 10 | const res = response.data |
| 11 | - if (res.code === 0) { | |
| 12 | 11 | resolve(res) |
| 13 | - } else { | |
| 14 | - reject(new Error(res.msg || 'Failed to save owner member')) | |
| 15 | - } | |
| 12 | + }).catch(error => { | |
| 13 | + reject(error) | |
| 14 | + }) | |
| 15 | + }) | |
| 16 | +} | |
| 17 | + | |
| 18 | +export function editOwnerMember(data) { | |
| 19 | + return new Promise((resolve, reject) => { | |
| 20 | + request({ | |
| 21 | + url: '/owner.editOwnerMember', | |
| 22 | + method: 'post', | |
| 23 | + data | |
| 24 | + }).then(response => { | |
| 25 | + const res = response.data | |
| 26 | + resolve(res) | |
| 16 | 27 | }).catch(error => { |
| 17 | 28 | reject(error) |
| 18 | 29 | }) | ... | ... |
src/components/community/AddPropertyCommunity.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog | |
| 3 | - :title="$t('propertyCommunity.add.title')" | |
| 4 | - :visible.sync="visible" | |
| 5 | - width="50%" | |
| 6 | - @close="handleClose" | |
| 7 | - > | |
| 8 | - <el-form ref="form" :model="form" label-width="120px"> | |
| 2 | + <el-dialog :title="$t('propertyCommunity.add.title')" :visible.sync="visible" width="50%" @close="handleClose"> | |
| 3 | + <el-form ref="form" :model="form" label-width="120px" class="text-left"> | |
| 9 | 4 | <el-form-item :label="$t('propertyCommunity.add.openCommunity')"> |
| 10 | - <el-select | |
| 11 | - v-model="form.communityIds" | |
| 12 | - multiple | |
| 13 | - filterable | |
| 14 | - style="width: 100%" | |
| 15 | - :placeholder="$t('propertyCommunity.add.selectCommunity')" | |
| 16 | - > | |
| 17 | - <el-option | |
| 18 | - v-for="item in communitys" | |
| 19 | - :key="item.communityId" | |
| 20 | - :label="item.name" | |
| 21 | - :value="item.communityId" | |
| 22 | - /> | |
| 5 | + <el-select v-model="form.communityIds" multiple filterable style="width: 100%" | |
| 6 | + :placeholder="$t('propertyCommunity.add.selectCommunity')"> | |
| 7 | + <el-option v-for="item in communitys" :key="item.communityId" :label="item.name" :value="item.communityId" /> | |
| 23 | 8 | </el-select> |
| 24 | 9 | </el-form-item> |
| 25 | 10 | |
| 26 | - <el-form-item | |
| 27 | - v-if="form.communityIds && form.communityIds.length > 0" | |
| 28 | - :label="$t('propertyCommunity.add.functions')" | |
| 29 | - > | |
| 11 | + <el-form-item v-if="form.communityIds && form.communityIds.length > 0" | |
| 12 | + :label="$t('propertyCommunity.add.functions')"> | |
| 30 | 13 | <el-checkbox v-model="form.isAll" @change="handleAllChange"> |
| 31 | 14 | {{ $t('propertyCommunity.add.all') }} |
| 32 | 15 | </el-checkbox> |
| 33 | - <el-checkbox | |
| 34 | - v-for="item in menuGroups" | |
| 35 | - :key="item.gId" | |
| 36 | - v-model="form.groupIds" | |
| 37 | - :label="item.gId" | |
| 38 | - @change="handleItemChange" | |
| 39 | - > | |
| 16 | + <el-checkbox v-for="item in menuGroups" :key="item.gId" v-model="form.groupIds" :label="item.gId" | |
| 17 | + @change="handleItemChange"> | |
| 40 | 18 | {{ item.name }} |
| 41 | 19 | </el-checkbox> |
| 42 | 20 | </el-form-item> |
| ... | ... | @@ -99,7 +77,7 @@ export default { |
| 99 | 77 | const params = { |
| 100 | 78 | communityName: '' |
| 101 | 79 | } |
| 102 | - const data = await listNoEnterCommunity(params) | |
| 80 | + const data = await listNoEnterCommunity(params) | |
| 103 | 81 | this.communitys = data |
| 104 | 82 | } catch (error) { |
| 105 | 83 | this.$message.error(this.$t('propertyCommunity.fetchError')) | ... | ... |
src/components/community/addCommunity.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog :title="$t('addCommunity.title')" :visible.sync="visible" width="60%" @close="clearAddCommunityInfo"> | |
| 3 | - <el-form ref="form" :model="addCommunityInfo" label-width="120px"> | |
| 2 | + <el-dialog :title="$t('addCommunity.title')" :visible.sync="visible" width="40%" @close="clearAddCommunityInfo"> | |
| 3 | + <el-form ref="form" :model="addCommunityInfo" label-width="120px" class="text-left"> | |
| 4 | 4 | <el-form-item :label="$t('addCommunity.name')" prop="name" required> |
| 5 | 5 | <el-input v-model="addCommunityInfo.name" :placeholder="$t('addCommunity.namePlaceholder')" /> |
| 6 | 6 | </el-form-item> | ... | ... |
src/components/contract/searchRoom.vue deleted
| 1 | -<template> | |
| 2 | - <el-dialog | |
| 3 | - :title="$t('searchRoom.title')" | |
| 4 | - :visible.sync="dialogVisible" | |
| 5 | - width="80%" | |
| 6 | - @close="handleClose" | |
| 7 | - > | |
| 8 | - <el-form v-if="searchRoomInfo.showSearchCondition" inline> | |
| 9 | - <el-form-item :label="$t('searchRoom.buildingNo')"> | |
| 10 | - <el-input | |
| 11 | - v-model="searchRoomInfo._currentFloorNum" | |
| 12 | - :placeholder="$t('searchRoom.buildingNoPlaceholder')" | |
| 13 | - :readonly="searchRoomInfo.floorNumInputReadonly" | |
| 14 | - ></el-input> | |
| 15 | - </el-form-item> | |
| 16 | - | |
| 17 | - <el-form-item :label="$t('searchRoom.roomNo')"> | |
| 18 | - <el-input | |
| 19 | - v-model="searchRoomInfo._currentRoomNum" | |
| 20 | - :placeholder="$t('searchRoom.roomNoPlaceholder')" | |
| 21 | - ></el-input> | |
| 22 | - </el-form-item> | |
| 23 | - | |
| 24 | - <el-form-item> | |
| 25 | - <el-button type="primary" @click="searchRooms"> | |
| 26 | - <i class="el-icon-search"></i> | |
| 27 | - {{ $t('common.search') }} | |
| 28 | - </el-button> | |
| 29 | - <el-button @click="resetRooms"> | |
| 30 | - <i class="el-icon-refresh"></i> | |
| 31 | - {{ $t('common.reset') }} | |
| 32 | - </el-button> | |
| 33 | - </el-form-item> | |
| 34 | - </el-form> | |
| 35 | - | |
| 36 | - <el-table :data="searchRoomInfo.rooms" border> | |
| 37 | - <el-table-column | |
| 38 | - prop="roomId" | |
| 39 | - :label="$t('searchRoom.roomId')" | |
| 40 | - align="center" | |
| 41 | - /> | |
| 42 | - | |
| 43 | - <el-table-column | |
| 44 | - prop="floorNum" | |
| 45 | - :label="$t('searchRoom.buildingNo')" | |
| 46 | - align="center" | |
| 47 | - > | |
| 48 | - <template slot-scope="scope"> | |
| 49 | - {{ scope.row.floorNum }}{{ $t('searchRoom.building') }} | |
| 50 | - </template> | |
| 51 | - </el-table-column> | |
| 52 | - | |
| 53 | - <el-table-column | |
| 54 | - prop="unitNum" | |
| 55 | - :label="$t('searchRoom.unitNo')" | |
| 56 | - align="center" | |
| 57 | - > | |
| 58 | - <template slot-scope="scope"> | |
| 59 | - {{ scope.row.unitNum }}{{ $t('searchRoom.unit') }} | |
| 60 | - </template> | |
| 61 | - </el-table-column> | |
| 62 | - | |
| 63 | - <el-table-column | |
| 64 | - prop="roomNum" | |
| 65 | - :label="$t('searchRoom.roomNo')" | |
| 66 | - align="center" | |
| 67 | - > | |
| 68 | - <template slot-scope="scope"> | |
| 69 | - {{ scope.row.roomNum }}{{ $t('searchRoom.room') }} | |
| 70 | - </template> | |
| 71 | - </el-table-column> | |
| 72 | - | |
| 73 | - <el-table-column | |
| 74 | - prop="layer" | |
| 75 | - :label="$t('searchRoom.floor')" | |
| 76 | - align="center" | |
| 77 | - > | |
| 78 | - <template slot-scope="scope"> | |
| 79 | - {{ scope.row.layer }}{{ $t('searchRoom.floorUnit') }} | |
| 80 | - </template> | |
| 81 | - </el-table-column> | |
| 82 | - | |
| 83 | - <el-table-column | |
| 84 | - :label="$t('common.operation')" | |
| 85 | - align="center" | |
| 86 | - width="120" | |
| 87 | - > | |
| 88 | - <template slot-scope="scope"> | |
| 89 | - <el-button | |
| 90 | - type="primary" | |
| 91 | - size="mini" | |
| 92 | - @click="chooseRoom(scope.row)" | |
| 93 | - > | |
| 94 | - {{ $t('common.select') }} | |
| 95 | - </el-button> | |
| 96 | - </template> | |
| 97 | - </el-table-column> | |
| 98 | - </el-table> | |
| 99 | - | |
| 100 | - <div class="pagination-wrapper"> | |
| 101 | - <el-pagination | |
| 102 | - :current-page="pagination.current" | |
| 103 | - :page-sizes="[10, 20, 30, 50]" | |
| 104 | - :page-size="pagination.size" | |
| 105 | - :total="pagination.total" | |
| 106 | - layout="total, sizes, prev, pager, next, jumper" | |
| 107 | - @size-change="handleSizeChange" | |
| 108 | - @current-change="handleCurrentChange" | |
| 109 | - /> | |
| 110 | - </div> | |
| 111 | - </el-dialog> | |
| 112 | -</template> | |
| 113 | - | |
| 114 | -<script> | |
| 115 | -import { queryRooms } from '@/api/contract/contractChangeDetailApi' | |
| 116 | -import { getCommunityId } from '@/api/community/communityApi' | |
| 117 | - | |
| 118 | -export default { | |
| 119 | - name: 'SearchRoom', | |
| 120 | - props: { | |
| 121 | - emitChooseRoom: { | |
| 122 | - type: String, | |
| 123 | - default: '' | |
| 124 | - }, | |
| 125 | - emitLoadData: { | |
| 126 | - type: String, | |
| 127 | - default: '' | |
| 128 | - }, | |
| 129 | - roomFlag: { | |
| 130 | - type: String, | |
| 131 | - default: '' | |
| 132 | - }, | |
| 133 | - showSearchCondition: { | |
| 134 | - type: String, | |
| 135 | - default: 'true' | |
| 136 | - } | |
| 137 | - }, | |
| 138 | - data() { | |
| 139 | - return { | |
| 140 | - dialogVisible: false, | |
| 141 | - searchRoomInfo: { | |
| 142 | - rooms: [], | |
| 143 | - _currentRoomNum: '', | |
| 144 | - _currentFloorNum: '', | |
| 145 | - floorNumInputReadonly: false, | |
| 146 | - showSearchCondition: this.showSearchCondition === 'true' | |
| 147 | - }, | |
| 148 | - pagination: { | |
| 149 | - current: 1, | |
| 150 | - size: 10, | |
| 151 | - total: 0 | |
| 152 | - }, | |
| 153 | - communityId: '' | |
| 154 | - } | |
| 155 | - }, | |
| 156 | - created() { | |
| 157 | - this.communityId = getCommunityId() | |
| 158 | - }, | |
| 159 | - methods: { | |
| 160 | - open() { | |
| 161 | - this.dialogVisible = true | |
| 162 | - this.refreshSearchRoomData() | |
| 163 | - this.loadAllRoomInfo(1, 10) | |
| 164 | - }, | |
| 165 | - chooseRoom(room) { | |
| 166 | - this.$emit(this.emitChooseRoom, 'chooseRoom', room) | |
| 167 | - this.$emit(this.emitLoadData, 'listRoomData', { | |
| 168 | - roomId: room.roomId | |
| 169 | - }) | |
| 170 | - this.dialogVisible = false | |
| 171 | - }, | |
| 172 | - searchRooms() { | |
| 173 | - this.loadAllRoomInfo(1, 15, this.searchRoomInfo._currentRoomNum) | |
| 174 | - }, | |
| 175 | - resetRooms() { | |
| 176 | - this.searchRoomInfo._currentFloorNum = '' | |
| 177 | - this.searchRoomInfo._currentRoomNum = '' | |
| 178 | - this.loadAllRoomInfo(1, 15) | |
| 179 | - }, | |
| 180 | - handleSizeChange(val) { | |
| 181 | - this.pagination.size = val | |
| 182 | - this.loadAllRoomInfo(this.pagination.current, val) | |
| 183 | - }, | |
| 184 | - handleCurrentChange(val) { | |
| 185 | - this.pagination.current = val | |
| 186 | - this.loadAllRoomInfo(val, this.pagination.size) | |
| 187 | - }, | |
| 188 | - handleClose() { | |
| 189 | - this.searchRoomInfo._currentRoomNum = '' | |
| 190 | - }, | |
| 191 | - refreshSearchRoomData() { | |
| 192 | - this.searchRoomInfo._currentRoomNum = '' | |
| 193 | - }, | |
| 194 | - loadAllRoomInfo(page, row, roomNum) { | |
| 195 | - const params = { | |
| 196 | - page, | |
| 197 | - row, | |
| 198 | - communityId: this.communityId, | |
| 199 | - roomNum, | |
| 200 | - floorNum: this.searchRoomInfo._currentFloorNum, | |
| 201 | - roomFlag: this.roomFlag | |
| 202 | - } | |
| 203 | - | |
| 204 | - let url = '/room.queryRooms' | |
| 205 | - if (this.roomFlag === '1') { | |
| 206 | - url = '/room.queryRoomsWithSell' | |
| 207 | - } else if (this.roomFlag === '2') { | |
| 208 | - url = '/room.queryRoomsWithOutSell' | |
| 209 | - } | |
| 210 | - | |
| 211 | - queryRooms(params, url) | |
| 212 | - .then(response => { | |
| 213 | - const roomInfo = response.data | |
| 214 | - this.searchRoomInfo.rooms = roomInfo.rooms | |
| 215 | - this.pagination.total = roomInfo.records | |
| 216 | - }) | |
| 217 | - .catch(error => { | |
| 218 | - console.error('请求失败:', error) | |
| 219 | - }) | |
| 220 | - } | |
| 221 | - } | |
| 222 | -} | |
| 223 | -</script> | |
| 224 | - | |
| 225 | -<style scoped> | |
| 226 | -.pagination-wrapper { | |
| 227 | - margin-top: 20px; | |
| 228 | - text-align: right; | |
| 229 | -} | |
| 230 | -</style> | |
| 231 | 0 | \ No newline at end of file |
src/components/owner/addOwnerMember.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog | |
| 3 | - :title="$t('addOwnerMember.title')" | |
| 4 | - :visible.sync="dialogVisible" | |
| 5 | - width="80%" | |
| 6 | - @close="_closeSaveOwnerModal" | |
| 7 | - > | |
| 2 | + <el-dialog :title="$t('addOwnerMember.title')" :visible.sync="dialogVisible" width="80%" | |
| 3 | + @close="_closeSaveOwnerModal"> | |
| 8 | 4 | <el-form :model="addOwnerMemberInfo" :rules="rules" ref="form" label-width="120px"> |
| 9 | 5 | <el-row :gutter="20"> |
| 10 | 6 | <el-col :span="12"> |
| 11 | 7 | <el-form-item :label="$t('addOwnerMember.personRole')" prop="personRole"> |
| 12 | - <el-select | |
| 13 | - v-model="addOwnerMemberInfo.personRole" | |
| 14 | - :placeholder="$t('addOwnerMember.placeholder.personRole')" | |
| 15 | - class="w100" | |
| 16 | - > | |
| 17 | - <el-option | |
| 18 | - v-for="item in roleOptions" | |
| 19 | - :key="item.value" | |
| 20 | - :label="item.label" | |
| 21 | - :value="item.value" | |
| 22 | - /> | |
| 8 | + <el-select v-model="addOwnerMemberInfo.personRole" | |
| 9 | + :placeholder="$t('addOwnerMember.placeholder.personRole')" class="w100"> | |
| 10 | + <el-option v-for="item in roleOptions" :key="item.value" :label="item.label" :value="item.value" /> | |
| 23 | 11 | </el-select> |
| 24 | 12 | </el-form-item> |
| 25 | - | |
| 13 | + | |
| 26 | 14 | <el-form-item :label="$t('addOwnerMember.name')" prop="name"> |
| 27 | - <el-input | |
| 28 | - v-model.trim="addOwnerMemberInfo.name" | |
| 29 | - :placeholder="$t('addOwnerMember.placeholder.name')" | |
| 30 | - clearable | |
| 31 | - /> | |
| 15 | + <el-input v-model.trim="addOwnerMemberInfo.name" :placeholder="$t('addOwnerMember.placeholder.name')" | |
| 16 | + clearable /> | |
| 32 | 17 | </el-form-item> |
| 33 | - | |
| 18 | + | |
| 34 | 19 | <el-form-item :label="$t('addOwnerMember.link')" prop="link"> |
| 35 | - <el-input | |
| 36 | - v-model.trim="addOwnerMemberInfo.link" | |
| 37 | - :placeholder="$t('addOwnerMember.placeholder.link')" | |
| 38 | - clearable | |
| 39 | - /> | |
| 20 | + <el-input v-model.trim="addOwnerMemberInfo.link" :placeholder="$t('addOwnerMember.placeholder.link')" | |
| 21 | + clearable /> | |
| 40 | 22 | </el-form-item> |
| 41 | - | |
| 23 | + | |
| 42 | 24 | <el-form-item :label="$t('addOwnerMember.sex')" prop="sex"> |
| 43 | - <el-select | |
| 44 | - v-model="addOwnerMemberInfo.sex" | |
| 45 | - :placeholder="$t('addOwnerMember.placeholder.sex')" | |
| 46 | - class="w100" | |
| 47 | - > | |
| 48 | - <el-option | |
| 49 | - v-for="item in sexOptions" | |
| 50 | - :key="item.value" | |
| 51 | - :label="item.label" | |
| 52 | - :value="item.value" | |
| 53 | - /> | |
| 25 | + <el-select v-model="addOwnerMemberInfo.sex" :placeholder="$t('addOwnerMember.placeholder.sex')" | |
| 26 | + class="w100"> | |
| 27 | + <el-option v-for="item in sexOptions" :key="item.value" :label="item.label" :value="item.value" /> | |
| 54 | 28 | </el-select> |
| 55 | 29 | </el-form-item> |
| 56 | 30 | </el-col> |
| 57 | - | |
| 31 | + | |
| 58 | 32 | <el-col :span="12" class="text-center"> |
| 59 | 33 | <div class="avatar-uploader"> |
| 60 | - <img | |
| 61 | - v-if="addOwnerMemberInfo.ownerPhotoUrl" | |
| 62 | - :src="addOwnerMemberInfo.ownerPhotoUrl" | |
| 63 | - class="avatar" | |
| 64 | - :alt="$t('addOwnerMember.photo')" | |
| 65 | - > | |
| 66 | - <img | |
| 67 | - v-else | |
| 68 | - src="/img/noPhoto.jpg" | |
| 69 | - class="avatar" | |
| 70 | - :alt="$t('addOwnerMember.photo')" | |
| 71 | - > | |
| 34 | + <img v-if="addOwnerMemberInfo.ownerPhotoUrl" :src="addOwnerMemberInfo.ownerPhotoUrl" class="avatar" | |
| 35 | + :alt="$t('addOwnerMember.photo')"> | |
| 36 | + <img v-else src="/img/noPhoto.jpg" class="avatar" :alt="$t('addOwnerMember.photo')"> | |
| 72 | 37 | </div> |
| 73 | - <el-button | |
| 74 | - type="primary" | |
| 75 | - class="mt10" | |
| 76 | - @click="_uploadPhoto" | |
| 77 | - > | |
| 38 | + <el-button type="primary" class="mt10" @click="_uploadPhoto"> | |
| 78 | 39 | {{ $t('addOwnerMember.uploadPhoto') }} |
| 79 | 40 | </el-button> |
| 80 | - <input | |
| 81 | - type="file" | |
| 82 | - ref="fileInput" | |
| 83 | - accept=".jpg,.jpeg,.png" | |
| 84 | - @change="_choosePhoto" | |
| 85 | - style="display: none" | |
| 86 | - > | |
| 41 | + <input type="file" ref="fileInput" accept=".jpg,.jpeg,.png" @change="_choosePhoto" style="display: none"> | |
| 87 | 42 | </el-col> |
| 88 | 43 | </el-row> |
| 89 | - | |
| 44 | + | |
| 90 | 45 | <el-row :gutter="20"> |
| 91 | 46 | <el-col :span="12"> |
| 92 | 47 | <el-form-item :label="$t('addOwnerMember.concactLink')"> |
| 93 | - <el-input | |
| 94 | - v-model.trim="addOwnerMemberInfo.concactLink" | |
| 95 | - :placeholder="$t('addOwnerMember.placeholder.concactLink')" | |
| 96 | - clearable | |
| 97 | - /> | |
| 48 | + <el-input v-model.trim="addOwnerMemberInfo.concactLink" | |
| 49 | + :placeholder="$t('addOwnerMember.placeholder.concactLink')" clearable /> | |
| 98 | 50 | </el-form-item> |
| 99 | - | |
| 51 | + | |
| 100 | 52 | <el-form-item :label="$t('addOwnerMember.address')"> |
| 101 | - <el-input | |
| 102 | - v-model.trim="addOwnerMemberInfo.address" | |
| 103 | - :placeholder="$t('addOwnerMember.placeholder.address')" | |
| 104 | - clearable | |
| 105 | - /> | |
| 53 | + <el-input v-model.trim="addOwnerMemberInfo.address" :placeholder="$t('addOwnerMember.placeholder.address')" | |
| 54 | + clearable /> | |
| 106 | 55 | </el-form-item> |
| 107 | 56 | </el-col> |
| 108 | - | |
| 57 | + | |
| 109 | 58 | <el-col :span="12"> |
| 110 | 59 | <el-form-item :label="$t('addOwnerMember.idCard')"> |
| 111 | - <el-input | |
| 112 | - v-model.trim="addOwnerMemberInfo.idCard" | |
| 113 | - :placeholder="$t('addOwnerMember.placeholder.idCard')" | |
| 114 | - clearable | |
| 115 | - /> | |
| 60 | + <el-input v-model.trim="addOwnerMemberInfo.idCard" :placeholder="$t('addOwnerMember.placeholder.idCard')" | |
| 61 | + clearable /> | |
| 116 | 62 | </el-form-item> |
| 117 | - | |
| 63 | + | |
| 118 | 64 | <el-form-item :label="$t('addOwnerMember.remark')"> |
| 119 | - <el-input | |
| 120 | - v-model.trim="addOwnerMemberInfo.remark" | |
| 121 | - :placeholder="$t('addOwnerMember.placeholder.remark')" | |
| 122 | - clearable | |
| 123 | - /> | |
| 65 | + <el-input v-model.trim="addOwnerMemberInfo.remark" :placeholder="$t('addOwnerMember.placeholder.remark')" | |
| 66 | + clearable /> | |
| 124 | 67 | </el-form-item> |
| 125 | 68 | </el-col> |
| 126 | 69 | </el-row> |
| 127 | - | |
| 128 | - <template v-for="(item,index) in addOwnerMemberInfo.attrs"> | |
| 70 | + | |
| 71 | + <template v-for="(item, index) in addOwnerMemberInfo.attrs"> | |
| 129 | 72 | <el-row :gutter="20" v-if="index % 2 === 0" :key="index"> |
| 130 | 73 | <el-col :span="12"> |
| 131 | 74 | <el-form-item :label="item.specName" v-if="item.specType === '2233'"> |
| 132 | - <el-input | |
| 133 | - v-model="item.value" | |
| 134 | - :placeholder="item.specHoldplace" | |
| 135 | - clearable | |
| 136 | - /> | |
| 75 | + <el-input v-model="item.value" :placeholder="item.specHoldplace" clearable /> | |
| 137 | 76 | </el-form-item> |
| 138 | - | |
| 77 | + | |
| 139 | 78 | <el-form-item :label="item.specName" v-if="item.specType === '3344'"> |
| 140 | - <el-select | |
| 141 | - v-model="item.value" | |
| 142 | - :placeholder="item.specHoldplace" | |
| 143 | - class="w100" | |
| 144 | - > | |
| 145 | - <el-option | |
| 146 | - v-for="value in item.values" | |
| 147 | - :key="value.value" | |
| 148 | - :label="value.valueName" | |
| 149 | - :value="value.value" | |
| 150 | - /> | |
| 79 | + <el-select v-model="item.value" :placeholder="item.specHoldplace" class="w100"> | |
| 80 | + <el-option v-for="value in item.values" :key="value.value" :label="value.valueName" | |
| 81 | + :value="value.value" /> | |
| 151 | 82 | </el-select> |
| 152 | 83 | </el-form-item> |
| 153 | 84 | </el-col> |
| 154 | - | |
| 155 | - <el-col :span="12" v-if="index < addOwnerMemberInfo.attrs.length-1"> | |
| 156 | - <el-form-item | |
| 157 | - :label="addOwnerMemberInfo.attrs[index+1].specName" | |
| 158 | - v-if="addOwnerMemberInfo.attrs[index+1].specType === '2233'" | |
| 159 | - > | |
| 160 | - <el-input | |
| 161 | - v-model="addOwnerMemberInfo.attrs[index+1].value" | |
| 162 | - :placeholder="addOwnerMemberInfo.attrs[index+1].specHoldplace" | |
| 163 | - clearable | |
| 164 | - /> | |
| 85 | + | |
| 86 | + <el-col :span="12" v-if="index < addOwnerMemberInfo.attrs.length - 1"> | |
| 87 | + <el-form-item :label="addOwnerMemberInfo.attrs[index + 1].specName" | |
| 88 | + v-if="addOwnerMemberInfo.attrs[index + 1].specType === '2233'"> | |
| 89 | + <el-input v-model="addOwnerMemberInfo.attrs[index + 1].value" | |
| 90 | + :placeholder="addOwnerMemberInfo.attrs[index + 1].specHoldplace" clearable /> | |
| 165 | 91 | </el-form-item> |
| 166 | - | |
| 167 | - <el-form-item | |
| 168 | - :label="addOwnerMemberInfo.attrs[index+1].specName" | |
| 169 | - v-if="addOwnerMemberInfo.attrs[index+1].specType === '3344'" | |
| 170 | - > | |
| 171 | - <el-select | |
| 172 | - v-model="addOwnerMemberInfo.attrs[index+1].value" | |
| 173 | - :placeholder="addOwnerMemberInfo.attrs[index+1].specHoldplace" | |
| 174 | - class="w100" | |
| 175 | - > | |
| 176 | - <el-option | |
| 177 | - v-for="value in addOwnerMemberInfo.attrs[index+1].values" | |
| 178 | - :key="value.value" | |
| 179 | - :label="value.valueName" | |
| 180 | - :value="value.value" | |
| 181 | - /> | |
| 92 | + | |
| 93 | + <el-form-item :label="addOwnerMemberInfo.attrs[index + 1].specName" | |
| 94 | + v-if="addOwnerMemberInfo.attrs[index + 1].specType === '3344'"> | |
| 95 | + <el-select v-model="addOwnerMemberInfo.attrs[index + 1].value" | |
| 96 | + :placeholder="addOwnerMemberInfo.attrs[index + 1].specHoldplace" class="w100"> | |
| 97 | + <el-option v-for="value in addOwnerMemberInfo.attrs[index + 1].values" :key="value.value" | |
| 98 | + :label="value.valueName" :value="value.value" /> | |
| 182 | 99 | </el-select> |
| 183 | 100 | </el-form-item> |
| 184 | 101 | </el-col> |
| 185 | 102 | </el-row> |
| 186 | 103 | </template> |
| 187 | 104 | </el-form> |
| 188 | - | |
| 105 | + | |
| 189 | 106 | <div slot="footer" class="dialog-footer"> |
| 190 | 107 | <el-button @click="_closeSaveOwnerModal">{{ $t('common.cancel') }}</el-button> |
| 191 | 108 | <el-button type="primary" @click="saveOwnerMemberInfo">{{ $t('common.save') }}</el-button> |
| ... | ... | @@ -195,8 +112,11 @@ |
| 195 | 112 | |
| 196 | 113 | <script> |
| 197 | 114 | import { getCommunityId } from '@/api/community/communityApi' |
| 198 | -import { getAttrSpec, getAttrValue } from '@/api/community/communityApi' | |
| 115 | +import { getAttrValue } from '@/api/community/communityApi' | |
| 199 | 116 | import { uploadFile } from '@/api/staff/addStaffApi' |
| 117 | +import { getAttrSpecList } from '@/api/dev/attrSpecApi' | |
| 118 | +import { saveOwnerMember } from '@/api/owner/addOwnerMemberApi' | |
| 119 | + | |
| 200 | 120 | |
| 201 | 121 | export default { |
| 202 | 122 | name: 'AddOwnerMember', |
| ... | ... | @@ -253,26 +173,25 @@ export default { |
| 253 | 173 | } |
| 254 | 174 | }, |
| 255 | 175 | methods: { |
| 256 | - open(ownerId) { | |
| 257 | - this.addOwnerMemberInfo.ownerId = ownerId | |
| 176 | + open(params) { | |
| 177 | + this.addOwnerMemberInfo.ownerId = params.ownerId | |
| 258 | 178 | this._loadOwnerAttrSpec() |
| 259 | 179 | this.dialogVisible = true |
| 260 | 180 | this.$nextTick(() => { |
| 261 | 181 | this.$refs.form.clearValidate() |
| 262 | 182 | }) |
| 263 | 183 | }, |
| 264 | - | |
| 265 | - saveOwnerMemberInfo() { | |
| 184 | + | |
| 185 | + async saveOwnerMemberInfo() { | |
| 266 | 186 | this.$refs.form.validate(valid => { |
| 267 | 187 | if (valid) { |
| 268 | 188 | const params = { |
| 269 | 189 | ...this.addOwnerMemberInfo, |
| 270 | 190 | communityId: getCommunityId() |
| 271 | 191 | } |
| 272 | - | |
| 273 | - this.$http.post('/owner.saveOwnerMember', params) | |
| 192 | + saveOwnerMember(params) | |
| 274 | 193 | .then(res => { |
| 275 | - if (res.data.code === 0) { | |
| 194 | + if (res.code === 0) { | |
| 276 | 195 | this.$message.success(this.$t('common.saveSuccess')) |
| 277 | 196 | this.dialogVisible = false |
| 278 | 197 | this.$emit('save-success') |
| ... | ... | @@ -287,10 +206,10 @@ export default { |
| 287 | 206 | } |
| 288 | 207 | }) |
| 289 | 208 | }, |
| 290 | - | |
| 209 | + | |
| 291 | 210 | _loadOwnerAttrSpec() { |
| 292 | 211 | this.addOwnerMemberInfo.attrs = [] |
| 293 | - getAttrSpec('building_owner_attr').then(data => { | |
| 212 | + getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr' }).then(data => { | |
| 294 | 213 | data.forEach(item => { |
| 295 | 214 | if (item.specShow === 'Y') { |
| 296 | 215 | item.value = '' |
| ... | ... | @@ -301,7 +220,7 @@ export default { |
| 301 | 220 | }) |
| 302 | 221 | }) |
| 303 | 222 | }, |
| 304 | - | |
| 223 | + | |
| 305 | 224 | _loadAttrValue(specCd, values) { |
| 306 | 225 | getAttrValue(specCd).then(data => { |
| 307 | 226 | data.forEach(item => { |
| ... | ... | @@ -311,11 +230,11 @@ export default { |
| 311 | 230 | }) |
| 312 | 231 | }) |
| 313 | 232 | }, |
| 314 | - | |
| 233 | + | |
| 315 | 234 | _uploadPhoto() { |
| 316 | 235 | this.$refs.fileInput.click() |
| 317 | 236 | }, |
| 318 | - | |
| 237 | + | |
| 319 | 238 | _choosePhoto(event) { |
| 320 | 239 | const files = event.target.files |
| 321 | 240 | if (files && files.length > 0) { |
| ... | ... | @@ -324,16 +243,16 @@ export default { |
| 324 | 243 | this.$message.error(this.$t('addOwnerMember.validate.photoSize')) |
| 325 | 244 | return |
| 326 | 245 | } |
| 327 | - | |
| 246 | + | |
| 328 | 247 | this._doUploadImage(file) |
| 329 | 248 | } |
| 330 | 249 | }, |
| 331 | - | |
| 250 | + | |
| 332 | 251 | _doUploadImage(file) { |
| 333 | 252 | const formData = new FormData() |
| 334 | 253 | formData.append('uploadFile', file) |
| 335 | 254 | formData.append('communityId', getCommunityId()) |
| 336 | - | |
| 255 | + | |
| 337 | 256 | uploadFile(formData).then(res => { |
| 338 | 257 | this.addOwnerMemberInfo.ownerPhoto = res.fileId |
| 339 | 258 | this.addOwnerMemberInfo.ownerPhotoUrl = res.url |
| ... | ... | @@ -342,7 +261,7 @@ export default { |
| 342 | 261 | this.$message.error(this.$t('addOwnerMember.uploadFailed')) |
| 343 | 262 | }) |
| 344 | 263 | }, |
| 345 | - | |
| 264 | + | |
| 346 | 265 | _closeSaveOwnerModal() { |
| 347 | 266 | this.dialogVisible = false |
| 348 | 267 | this.$refs.form.resetFields() |
| ... | ... | @@ -370,18 +289,22 @@ export default { |
| 370 | 289 | .w100 { |
| 371 | 290 | width: 100%; |
| 372 | 291 | } |
| 292 | + | |
| 373 | 293 | .mt10 { |
| 374 | 294 | margin-top: 10px; |
| 375 | 295 | } |
| 296 | + | |
| 376 | 297 | .text-center { |
| 377 | 298 | text-align: center; |
| 378 | 299 | } |
| 300 | + | |
| 379 | 301 | .avatar-uploader { |
| 380 | 302 | width: 100%; |
| 381 | 303 | display: flex; |
| 382 | 304 | justify-content: center; |
| 383 | 305 | margin-bottom: 10px; |
| 384 | 306 | } |
| 307 | + | |
| 385 | 308 | .avatar { |
| 386 | 309 | width: 150px; |
| 387 | 310 | height: 150px; | ... | ... |
src/components/owner/deleteOwner.vue
| ... | ... | @@ -33,7 +33,8 @@ export default { |
| 33 | 33 | async confirmDelete() { |
| 34 | 34 | try { |
| 35 | 35 | await deleteOwner({ |
| 36 | - ownerId: this.owner.ownerId | |
| 36 | + ownerId: this.owner.ownerId, | |
| 37 | + memberId: this.owner.memberId | |
| 37 | 38 | }) |
| 38 | 39 | this.$message.success(this.$t('listOwner.deleteSuccess')) |
| 39 | 40 | this.visible = false | ... | ... |
src/components/owner/editOwnerMember.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog | |
| 3 | - :title="$t('editOwnerMember.title')" | |
| 4 | - :visible.sync="dialogVisible" | |
| 5 | - width="80%" | |
| 6 | - @close="_closeEditOwnerMemberModal" | |
| 7 | - > | |
| 2 | + <el-dialog :title="$t('editOwnerMember.title')" :visible.sync="dialogVisible" width="80%" | |
| 3 | + @close="_closeEditOwnerMemberModal"> | |
| 8 | 4 | <el-form :model="editOwnerMemberInfo" :rules="rules" ref="form" label-width="120px"> |
| 9 | 5 | <el-row :gutter="20"> |
| 10 | 6 | <el-col :span="12"> |
| 11 | 7 | <el-form-item :label="$t('editOwnerMember.personRole')" prop="personRole"> |
| 12 | - <el-select | |
| 13 | - v-model="editOwnerMemberInfo.personRole" | |
| 14 | - :placeholder="$t('editOwnerMember.placeholder.personRole')" | |
| 15 | - class="w100" | |
| 16 | - > | |
| 17 | - <el-option | |
| 18 | - v-for="item in roleOptions" | |
| 19 | - :key="item.value" | |
| 20 | - :label="item.label" | |
| 21 | - :value="item.value" | |
| 22 | - /> | |
| 8 | + <el-select v-model="editOwnerMemberInfo.personRole" | |
| 9 | + :placeholder="$t('editOwnerMember.placeholder.personRole')" class="w100"> | |
| 10 | + <el-option v-for="item in roleOptions" :key="item.value" :label="item.label" :value="item.value" /> | |
| 23 | 11 | </el-select> |
| 24 | 12 | </el-form-item> |
| 25 | - | |
| 13 | + | |
| 26 | 14 | <el-form-item :label="$t('editOwnerMember.name')" prop="name"> |
| 27 | - <el-input | |
| 28 | - v-model.trim="editOwnerMemberInfo.name" | |
| 29 | - :placeholder="$t('editOwnerMember.placeholder.name')" | |
| 30 | - clearable | |
| 31 | - /> | |
| 15 | + <el-input v-model.trim="editOwnerMemberInfo.name" :placeholder="$t('editOwnerMember.placeholder.name')" | |
| 16 | + clearable /> | |
| 32 | 17 | </el-form-item> |
| 33 | - | |
| 18 | + | |
| 34 | 19 | <el-form-item :label="$t('editOwnerMember.link')" prop="link"> |
| 35 | - <el-input | |
| 36 | - v-model.trim="editOwnerMemberInfo.link" | |
| 37 | - :placeholder="$t('editOwnerMember.placeholder.link')" | |
| 38 | - clearable | |
| 39 | - maxlength="11" | |
| 40 | - /> | |
| 20 | + <el-input v-model.trim="editOwnerMemberInfo.link" :placeholder="$t('editOwnerMember.placeholder.link')" | |
| 21 | + clearable maxlength="11" /> | |
| 41 | 22 | </el-form-item> |
| 42 | - | |
| 43 | - <el-form-item | |
| 44 | - :label="$t('editOwnerMember.sex')" | |
| 45 | - prop="sex" | |
| 46 | - v-if="editOwnerMemberInfo.personType === 'P'" | |
| 47 | - > | |
| 48 | - <el-select | |
| 49 | - v-model="editOwnerMemberInfo.sex" | |
| 50 | - :placeholder="$t('editOwnerMember.placeholder.sex')" | |
| 51 | - class="w100" | |
| 52 | - > | |
| 53 | - <el-option | |
| 54 | - v-for="item in sexOptions" | |
| 55 | - :key="item.value" | |
| 56 | - :label="item.label" | |
| 57 | - :value="item.value" | |
| 58 | - /> | |
| 23 | + | |
| 24 | + <el-form-item :label="$t('editOwnerMember.sex')" prop="sex" v-if="editOwnerMemberInfo.personType === 'P'"> | |
| 25 | + <el-select v-model="editOwnerMemberInfo.sex" :placeholder="$t('editOwnerMember.placeholder.sex')" | |
| 26 | + class="w100"> | |
| 27 | + <el-option v-for="item in sexOptions" :key="item.value" :label="item.label" :value="item.value" /> | |
| 59 | 28 | </el-select> |
| 60 | 29 | </el-form-item> |
| 61 | - | |
| 30 | + | |
| 62 | 31 | <el-form-item :label="$t('editOwnerMember.address')"> |
| 63 | - <el-input | |
| 64 | - v-model.trim="editOwnerMemberInfo.address" | |
| 65 | - :placeholder="$t('editOwnerMember.placeholder.address')" | |
| 66 | - clearable | |
| 67 | - /> | |
| 32 | + <el-input v-model.trim="editOwnerMemberInfo.address" | |
| 33 | + :placeholder="$t('editOwnerMember.placeholder.address')" clearable /> | |
| 68 | 34 | </el-form-item> |
| 69 | 35 | </el-col> |
| 70 | - | |
| 36 | + | |
| 71 | 37 | <el-col :span="12" class="text-center"> |
| 72 | 38 | <div class="avatar-uploader"> |
| 73 | - <img | |
| 74 | - v-if="editOwnerMemberInfo.ownerPhotoUrl" | |
| 75 | - :src="editOwnerMemberInfo.ownerPhotoUrl" | |
| 76 | - class="avatar" | |
| 77 | - :alt="$t('editOwnerMember.photo')" | |
| 78 | - @error="handleImageError" | |
| 79 | - > | |
| 80 | - <img | |
| 81 | - v-else | |
| 82 | - src="/img/noPhoto.jpg" | |
| 83 | - class="avatar" | |
| 84 | - :alt="$t('editOwnerMember.photo')" | |
| 85 | - > | |
| 39 | + <img v-if="editOwnerMemberInfo.ownerPhotoUrl" :src="editOwnerMemberInfo.ownerPhotoUrl" class="avatar" | |
| 40 | + :alt="$t('editOwnerMember.photo')" @error="handleImageError"> | |
| 41 | + <img v-else src="/img/noPhoto.jpg" class="avatar" :alt="$t('editOwnerMember.photo')"> | |
| 86 | 42 | </div> |
| 87 | - <el-button | |
| 88 | - type="primary" | |
| 89 | - class="mt10" | |
| 90 | - @click="_uploadEditMemberPhoto" | |
| 91 | - > | |
| 43 | + <el-button type="primary" class="mt10" @click="_uploadEditMemberPhoto"> | |
| 92 | 44 | {{ $t('editOwnerMember.uploadPhoto') }} |
| 93 | 45 | </el-button> |
| 94 | - <input | |
| 95 | - type="file" | |
| 96 | - ref="fileInput" | |
| 97 | - accept=".jpg,.jpeg,.png" | |
| 98 | - @change="_chooseEditMemberPhoto" | |
| 99 | - style="display: none" | |
| 100 | - > | |
| 46 | + <input type="file" ref="fileInput" accept=".jpg,.jpeg,.png" @change="_chooseEditMemberPhoto" | |
| 47 | + style="display: none"> | |
| 101 | 48 | </el-col> |
| 102 | 49 | </el-row> |
| 103 | - | |
| 50 | + | |
| 104 | 51 | <el-row :gutter="20"> |
| 105 | 52 | <el-col :span="12"> |
| 106 | 53 | <el-form-item :label="$t('editOwnerMember.concactLink')"> |
| 107 | - <el-input | |
| 108 | - v-model.trim="editOwnerMemberInfo.concactLink" | |
| 109 | - :placeholder="$t('editOwnerMember.placeholder.concactLink')" | |
| 110 | - clearable | |
| 111 | - /> | |
| 54 | + <el-input v-model.trim="editOwnerMemberInfo.concactLink" | |
| 55 | + :placeholder="$t('editOwnerMember.placeholder.concactLink')" clearable /> | |
| 112 | 56 | </el-form-item> |
| 113 | 57 | </el-col> |
| 114 | - | |
| 58 | + | |
| 115 | 59 | <el-col :span="12"> |
| 116 | 60 | <el-form-item :label="$t('editOwnerMember.idCard')"> |
| 117 | - <el-input | |
| 118 | - v-model.trim="editOwnerMemberInfo.idCard" | |
| 119 | - :placeholder="$t('editOwnerMember.placeholder.idCard')" | |
| 120 | - clearable | |
| 121 | - /> | |
| 61 | + <el-input v-model.trim="editOwnerMemberInfo.idCard" :placeholder="$t('editOwnerMember.placeholder.idCard')" | |
| 62 | + clearable /> | |
| 122 | 63 | </el-form-item> |
| 123 | - | |
| 64 | + | |
| 124 | 65 | <el-form-item :label="$t('editOwnerMember.remark')"> |
| 125 | - <el-input | |
| 126 | - v-model.trim="editOwnerMemberInfo.remark" | |
| 127 | - :placeholder="$t('editOwnerMember.placeholder.remark')" | |
| 128 | - clearable | |
| 129 | - /> | |
| 66 | + <el-input v-model.trim="editOwnerMemberInfo.remark" :placeholder="$t('editOwnerMember.placeholder.remark')" | |
| 67 | + clearable /> | |
| 130 | 68 | </el-form-item> |
| 131 | 69 | </el-col> |
| 132 | 70 | </el-row> |
| 133 | - | |
| 134 | - <template v-for="(item,index) in editOwnerMemberInfo.attrs"> | |
| 71 | + | |
| 72 | + <template v-for="(item, index) in editOwnerMemberInfo.attrs"> | |
| 135 | 73 | <el-row :gutter="20" v-if="index % 2 === 0" :key="index"> |
| 136 | 74 | <el-col :span="12"> |
| 137 | 75 | <el-form-item :label="item.specName" v-if="item.specType === '2233'"> |
| 138 | - <el-input | |
| 139 | - v-model="item.value" | |
| 140 | - :placeholder="item.specHoldplace" | |
| 141 | - clearable | |
| 142 | - /> | |
| 76 | + <el-input v-model="item.value" :placeholder="item.specHoldplace" clearable /> | |
| 143 | 77 | </el-form-item> |
| 144 | - | |
| 78 | + | |
| 145 | 79 | <el-form-item :label="item.specName" v-if="item.specType === '3344'"> |
| 146 | - <el-select | |
| 147 | - v-model="item.value" | |
| 148 | - :placeholder="item.specHoldplace" | |
| 149 | - class="w100" | |
| 150 | - > | |
| 151 | - <el-option | |
| 152 | - v-for="value in item.values" | |
| 153 | - :key="value.value" | |
| 154 | - :label="value.valueName" | |
| 155 | - :value="value.value" | |
| 156 | - /> | |
| 80 | + <el-select v-model="item.value" :placeholder="item.specHoldplace" class="w100"> | |
| 81 | + <el-option v-for="value in item.values" :key="value.value" :label="value.valueName" | |
| 82 | + :value="value.value" /> | |
| 157 | 83 | </el-select> |
| 158 | 84 | </el-form-item> |
| 159 | 85 | </el-col> |
| 160 | - | |
| 161 | - <el-col :span="12" v-if="index < editOwnerMemberInfo.attrs.length-1"> | |
| 162 | - <el-form-item | |
| 163 | - :label="editOwnerMemberInfo.attrs[index+1].specName" | |
| 164 | - v-if="editOwnerMemberInfo.attrs[index+1].specType === '2233'" | |
| 165 | - > | |
| 166 | - <el-input | |
| 167 | - v-model="editOwnerMemberInfo.attrs[index+1].value" | |
| 168 | - :placeholder="editOwnerMemberInfo.attrs[index+1].specHoldplace" | |
| 169 | - clearable | |
| 170 | - /> | |
| 86 | + | |
| 87 | + <el-col :span="12" v-if="index < editOwnerMemberInfo.attrs.length - 1"> | |
| 88 | + <el-form-item :label="editOwnerMemberInfo.attrs[index + 1].specName" | |
| 89 | + v-if="editOwnerMemberInfo.attrs[index + 1].specType === '2233'"> | |
| 90 | + <el-input v-model="editOwnerMemberInfo.attrs[index + 1].value" | |
| 91 | + :placeholder="editOwnerMemberInfo.attrs[index + 1].specHoldplace" clearable /> | |
| 171 | 92 | </el-form-item> |
| 172 | - | |
| 173 | - <el-form-item | |
| 174 | - :label="editOwnerMemberInfo.attrs[index+1].specName" | |
| 175 | - v-if="editOwnerMemberInfo.attrs[index+1].specType === '3344'" | |
| 176 | - > | |
| 177 | - <el-select | |
| 178 | - v-model="editOwnerMemberInfo.attrs[index+1].value" | |
| 179 | - :placeholder="editOwnerMemberInfo.attrs[index+1].specHoldplace" | |
| 180 | - class="w100" | |
| 181 | - > | |
| 182 | - <el-option | |
| 183 | - v-for="value in editOwnerMemberInfo.attrs[index+1].values" | |
| 184 | - :key="value.value" | |
| 185 | - :label="value.valueName" | |
| 186 | - :value="value.value" | |
| 187 | - /> | |
| 93 | + | |
| 94 | + <el-form-item :label="editOwnerMemberInfo.attrs[index + 1].specName" | |
| 95 | + v-if="editOwnerMemberInfo.attrs[index + 1].specType === '3344'"> | |
| 96 | + <el-select v-model="editOwnerMemberInfo.attrs[index + 1].value" | |
| 97 | + :placeholder="editOwnerMemberInfo.attrs[index + 1].specHoldplace" class="w100"> | |
| 98 | + <el-option v-for="value in editOwnerMemberInfo.attrs[index + 1].values" :key="value.value" | |
| 99 | + :label="value.valueName" :value="value.value" /> | |
| 188 | 100 | </el-select> |
| 189 | 101 | </el-form-item> |
| 190 | 102 | </el-col> |
| 191 | 103 | </el-row> |
| 192 | 104 | </template> |
| 193 | 105 | </el-form> |
| 194 | - | |
| 106 | + | |
| 195 | 107 | <div slot="footer" class="dialog-footer"> |
| 196 | 108 | <el-button @click="_closeEditOwnerMemberModal">{{ $t('common.cancel') }}</el-button> |
| 197 | 109 | <el-button type="primary" @click="editOwnerMemberMethod">{{ $t('common.save') }}</el-button> |
| ... | ... | @@ -201,7 +113,10 @@ |
| 201 | 113 | |
| 202 | 114 | <script> |
| 203 | 115 | import { getCommunityId } from '@/api/community/communityApi' |
| 204 | -import { getAttrSpec, getAttrValue } from '@/api/community/communityApi' | |
| 116 | +import { getAttrSpecList } from '@/api/dev/attrSpecApi' | |
| 117 | +import { getAttrValueList } from '@/api/dev/attrValueApi' | |
| 118 | +import { editOwnerMember } from '@/api/owner/addOwnerMemberApi' | |
| 119 | + | |
| 205 | 120 | import { uploadFile } from '@/api/staff/addStaffApi' |
| 206 | 121 | |
| 207 | 122 | export default { |
| ... | ... | @@ -267,9 +182,9 @@ export default { |
| 267 | 182 | ownerPhotoUrl: member.faceUrl, |
| 268 | 183 | attrs: [] |
| 269 | 184 | } |
| 270 | - | |
| 185 | + | |
| 271 | 186 | this._loadEditOwnerMemberAttrSpec().then(() => { |
| 272 | - if (Object.prototype.hasOwnProperty.call(member,'ownerAttrDtos')) { | |
| 187 | + if (Object.prototype.hasOwnProperty.call(member, 'ownerAttrDtos')) { | |
| 273 | 188 | const ownerAttrDtos = member.ownerAttrDtos |
| 274 | 189 | this.editOwnerMemberInfo.attrs.forEach(attrItem => { |
| 275 | 190 | ownerAttrDtos.forEach(item => { |
| ... | ... | @@ -280,14 +195,14 @@ export default { |
| 280 | 195 | }) |
| 281 | 196 | }) |
| 282 | 197 | } |
| 283 | - | |
| 198 | + | |
| 284 | 199 | this.dialogVisible = true |
| 285 | 200 | this.$nextTick(() => { |
| 286 | 201 | this.$refs.form.clearValidate() |
| 287 | 202 | }) |
| 288 | 203 | }) |
| 289 | 204 | }, |
| 290 | - | |
| 205 | + | |
| 291 | 206 | editOwnerMemberMethod() { |
| 292 | 207 | this.$refs.form.validate(valid => { |
| 293 | 208 | if (valid) { |
| ... | ... | @@ -295,15 +210,15 @@ export default { |
| 295 | 210 | ...this.editOwnerMemberInfo, |
| 296 | 211 | communityId: getCommunityId() |
| 297 | 212 | } |
| 298 | - | |
| 299 | - this.$http.post('/owner.editOwnerMember', params) | |
| 213 | + | |
| 214 | + editOwnerMember(params) | |
| 300 | 215 | .then(res => { |
| 301 | - if (res.data.code === 0) { | |
| 216 | + if (res.code === 0) { | |
| 302 | 217 | this.$message.success(this.$t('common.saveSuccess')) |
| 303 | 218 | this.dialogVisible = false |
| 304 | 219 | this.$emit('save-success') |
| 305 | 220 | } else { |
| 306 | - this.$message.error(res.data.msg || this.$t('common.saveFailed')) | |
| 221 | + this.$message.error(res.msg || this.$t('common.saveFailed')) | |
| 307 | 222 | } |
| 308 | 223 | }) |
| 309 | 224 | .catch(err => { |
| ... | ... | @@ -313,12 +228,12 @@ export default { |
| 313 | 228 | } |
| 314 | 229 | }) |
| 315 | 230 | }, |
| 316 | - | |
| 231 | + | |
| 317 | 232 | _loadEditOwnerMemberAttrSpec() { |
| 318 | 233 | return new Promise(resolve => { |
| 319 | 234 | this.editOwnerMemberInfo.attrs = [] |
| 320 | - getAttrSpec('building_owner_attr').then(data => { | |
| 321 | - data.forEach(item => { | |
| 235 | + getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr' }).then(data => { | |
| 236 | + data.data.forEach(item => { | |
| 322 | 237 | if (item.specShow === 'Y') { |
| 323 | 238 | item.value = '' |
| 324 | 239 | item.values = [] |
| ... | ... | @@ -330,21 +245,21 @@ export default { |
| 330 | 245 | }) |
| 331 | 246 | }) |
| 332 | 247 | }, |
| 333 | - | |
| 248 | + | |
| 334 | 249 | _loadEditMemberAttrValue(specCd, values) { |
| 335 | - getAttrValue(specCd).then(data => { | |
| 336 | - data.forEach(item => { | |
| 250 | + getAttrValueList({ specCd: specCd, page: 1, row: 100 }).then(data => { | |
| 251 | + data.data.forEach(item => { | |
| 337 | 252 | if (item.valueShow === 'Y') { |
| 338 | 253 | values.push(item) |
| 339 | 254 | } |
| 340 | 255 | }) |
| 341 | 256 | }) |
| 342 | 257 | }, |
| 343 | - | |
| 258 | + | |
| 344 | 259 | _uploadEditMemberPhoto() { |
| 345 | 260 | this.$refs.fileInput.click() |
| 346 | 261 | }, |
| 347 | - | |
| 262 | + | |
| 348 | 263 | _chooseEditMemberPhoto(event) { |
| 349 | 264 | const files = event.target.files |
| 350 | 265 | if (files && files.length > 0) { |
| ... | ... | @@ -353,16 +268,16 @@ export default { |
| 353 | 268 | this.$message.error(this.$t('editOwnerMember.validate.photoSize')) |
| 354 | 269 | return |
| 355 | 270 | } |
| 356 | - | |
| 271 | + | |
| 357 | 272 | this._doUploadImageEditOwnerMember(file) |
| 358 | 273 | } |
| 359 | 274 | }, |
| 360 | - | |
| 275 | + | |
| 361 | 276 | _doUploadImageEditOwnerMember(file) { |
| 362 | 277 | const formData = new FormData() |
| 363 | 278 | formData.append('uploadFile', file) |
| 364 | 279 | formData.append('communityId', getCommunityId()) |
| 365 | - | |
| 280 | + | |
| 366 | 281 | uploadFile(formData).then(res => { |
| 367 | 282 | this.editOwnerMemberInfo.ownerPhoto = res.fileId |
| 368 | 283 | this.editOwnerMemberInfo.ownerPhotoUrl = res.url |
| ... | ... | @@ -371,12 +286,12 @@ export default { |
| 371 | 286 | this.$message.error(this.$t('editOwnerMember.uploadFailed')) |
| 372 | 287 | }) |
| 373 | 288 | }, |
| 374 | - | |
| 289 | + | |
| 375 | 290 | _closeEditOwnerMemberModal() { |
| 376 | 291 | this.dialogVisible = false |
| 377 | 292 | this.$refs.form.resetFields() |
| 378 | 293 | }, |
| 379 | - | |
| 294 | + | |
| 380 | 295 | handleImageError(e) { |
| 381 | 296 | e.target.src = '/img/noPhoto.jpg' |
| 382 | 297 | } |
| ... | ... | @@ -388,18 +303,22 @@ export default { |
| 388 | 303 | .w100 { |
| 389 | 304 | width: 100%; |
| 390 | 305 | } |
| 306 | + | |
| 391 | 307 | .mt10 { |
| 392 | 308 | margin-top: 10px; |
| 393 | 309 | } |
| 310 | + | |
| 394 | 311 | .text-center { |
| 395 | 312 | text-align: center; |
| 396 | 313 | } |
| 314 | + | |
| 397 | 315 | .avatar-uploader { |
| 398 | 316 | width: 100%; |
| 399 | 317 | display: flex; |
| 400 | 318 | justify-content: center; |
| 401 | 319 | margin-bottom: 10px; |
| 402 | 320 | } |
| 321 | + | |
| 403 | 322 | .avatar { |
| 404 | 323 | width: 150px; |
| 405 | 324 | height: 150px; | ... | ... |
src/components/owner/ownerDetailMember.vue
| 1 | 1 | <template> |
| 2 | 2 | <div class="margin-top"> |
| 3 | - <el-row class="margin-top-lg"> | |
| 3 | + <el-row class=""> | |
| 4 | 4 | <el-col :span="4" class="padding-right-xs padding-left-xl"> |
| 5 | 5 | <el-input v-model="ownerDetailMemberInfo.name" type="text" |
| 6 | 6 | :placeholder="$t('ownerDetailMember.placeholder.name')" class="form-control"></el-input> |
| 7 | 7 | </el-col> |
| 8 | 8 | <el-col :span="4" class="padding-right-xs padding-right-xl"> |
| 9 | - <el-button type="primary" size="small" style="margin-left:10px" | |
| 10 | - @click="_qureyOwnerDetailMember()"> | |
| 9 | + <el-button type="primary" size="small" style="margin-left:10px" @click="_qureyOwnerDetailMember()"> | |
| 11 | 10 | <i class="el-icon-search"></i>{{ $t('common.query') }} |
| 12 | 11 | </el-button> |
| 13 | 12 | </el-col> |
| 14 | 13 | <el-col :span="16" class="text-right"> |
| 15 | - <el-button type="primary" size="small" style="margin-left:10px" | |
| 16 | - v-if="hasPrivilege('502023032885101706')" @click="openAddMemberModel()"> | |
| 14 | + <el-button type="primary" size="small" style="margin-left:10px" v-if="hasPrivilege('502023032885101706')" | |
| 15 | + @click="openAddMemberModel()"> | |
| 17 | 16 | <i class="el-icon-plus"></i>{{ $t('common.add') }} |
| 18 | 17 | </el-button> |
| 19 | 18 | </el-col> |
| ... | ... | @@ -24,14 +23,13 @@ |
| 24 | 23 | <template slot-scope="scope"> |
| 25 | 24 | <img style="width: 60px; height: 60px;" class="border-radius" v-if="scope.row.faceUrl" |
| 26 | 25 | :src="scope.row.faceUrl" @click="_viewOwnerFace(scope.row.faceUrl)" /> |
| 27 | - <img style="width: 60px; height: 60px;" class="border-radius" v-else | |
| 28 | - src="/img/noPhoto.jpg" /> | |
| 26 | + <img style="width: 60px; height: 60px;" class="border-radius" v-else src="/img/noPhoto.jpg" /> | |
| 29 | 27 | </template> |
| 30 | 28 | </el-table-column> |
| 31 | 29 | <el-table-column prop="name" :label="$t('ownerDetailMember.name')" align="center"></el-table-column> |
| 32 | 30 | <el-table-column prop="sex" :label="$t('ownerDetailMember.gender')" align="center"> |
| 33 | 31 | <template slot-scope="scope"> |
| 34 | - {{scope.row.sex == 0 ? $t('common.male') : $t('common.female')}} | |
| 32 | + {{ scope.row.sex == 0 ? $t('common.male') : $t('common.female') }} | |
| 35 | 33 | </template> |
| 36 | 34 | </el-table-column> |
| 37 | 35 | <el-table-column prop="personRoleName" :label="$t('ownerDetailMember.role')" align="center"></el-table-column> |
| ... | ... | @@ -41,8 +39,7 @@ |
| 41 | 39 | <el-table-column :label="$t('common.operation')" align="center" width="180"> |
| 42 | 40 | <template slot-scope="scope"> |
| 43 | 41 | <el-button-group> |
| 44 | - <el-button size="mini" @click="_openEditOwnerModel(scope.row)" | |
| 45 | - v-if="hasPrivilege('502023032899781711')"> | |
| 42 | + <el-button size="mini" @click="_openEditOwnerModel(scope.row)" v-if="hasPrivilege('502023032899781711')"> | |
| 46 | 43 | {{ $t('common.edit') }} |
| 47 | 44 | </el-button> |
| 48 | 45 | <el-button size="mini" @click="_openDeleteOwnerModel(scope.row)" |
| ... | ... | @@ -53,18 +50,14 @@ |
| 53 | 50 | </template> |
| 54 | 51 | </el-table-column> |
| 55 | 52 | </el-table> |
| 56 | - <el-pagination | |
| 57 | - @current-change="handleCurrentChange" | |
| 58 | - :current-page="pagination.currentPage" | |
| 59 | - :page-size="pagination.pageSize" | |
| 60 | - :total="pagination.total" | |
| 61 | - layout="total, prev, pager, next, jumper"> | |
| 53 | + <el-pagination @current-change="handleCurrentChange" :current-page="pagination.currentPage" | |
| 54 | + :page-size="pagination.pageSize" :total="pagination.total" layout="total, prev, pager, next, jumper"> | |
| 62 | 55 | </el-pagination> |
| 63 | 56 | </div> |
| 64 | 57 | |
| 65 | 58 | <add-owner-member ref="addOwnerMember" @refresh="_loadOwnerDetailMemberData"></add-owner-member> |
| 66 | 59 | <edit-owner-member ref="editOwnerMember" @refresh="_loadOwnerDetailMemberData"></edit-owner-member> |
| 67 | - <delete-owner ref="deleteOwner" @refresh="_loadOwnerDetailMemberData"></delete-owner> | |
| 60 | + <delete-owner ref="deleteOwner" @refresh="_loadOwnerDetailMemberData" @success="_loadOwnerDetailMemberData"></delete-owner> | |
| 68 | 61 | </div> |
| 69 | 62 | </template> |
| 70 | 63 | |
| ... | ... | @@ -123,6 +116,7 @@ export default { |
| 123 | 116 | this._loadOwnerDetailMemberData(1, this.pagination.pageSize) |
| 124 | 117 | }, |
| 125 | 118 | openAddMemberModel() { |
| 119 | + | |
| 126 | 120 | this.$refs.addOwnerMember.open({ ownerId: this.ownerDetailMemberInfo.ownerId }) |
| 127 | 121 | }, |
| 128 | 122 | _openDeleteOwnerModel(member) { |
| ... | ... | @@ -153,18 +147,23 @@ export default { |
| 153 | 147 | .margin-top { |
| 154 | 148 | margin-top: 20px; |
| 155 | 149 | } |
| 150 | + | |
| 156 | 151 | .margin-top-lg { |
| 157 | 152 | margin-top: 30px; |
| 158 | 153 | } |
| 154 | + | |
| 159 | 155 | .padding-right-xs { |
| 160 | 156 | padding-right: 5px; |
| 161 | 157 | } |
| 158 | + | |
| 162 | 159 | .padding-left-xl { |
| 163 | 160 | padding-left: 20px; |
| 164 | 161 | } |
| 162 | + | |
| 165 | 163 | .border-radius { |
| 166 | 164 | border-radius: 4px; |
| 167 | 165 | } |
| 166 | + | |
| 168 | 167 | .text-right { |
| 169 | 168 | text-align: right; |
| 170 | 169 | } | ... | ... |
src/components/room/addShops.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog :title="$t('shops.addShop')" :visible.sync="dialogVisible" width="50%"> | |
| 2 | + <el-dialog :title="$t('shops.addShop')" :visible.sync="dialogVisible" width="40%"> | |
| 3 | 3 | <el-form ref="form" :model="formData" :rules="rules" label-width="120px"> |
| 4 | 4 | <el-form-item :label="$t('shops.shopNumber')" prop="roomNum"> |
| 5 | 5 | <el-input v-model="formData.roomNum" :placeholder="$t('shops.shopNumberPlaceholder')"></el-input> |
| ... | ... | @@ -8,8 +8,7 @@ |
| 8 | 8 | <el-input v-model="formData.layer" :placeholder="$t('shops.floorRequired')"></el-input> |
| 9 | 9 | </el-form-item> |
| 10 | 10 | <el-form-item :label="$t('shops.building')" prop="floorId"> |
| 11 | - <el-select v-model="formData.floorId" | |
| 12 | - :placeholder="$t('shops.building')" style="width: 100%"> | |
| 11 | + <el-select v-model="formData.floorId" :placeholder="$t('shops.building')" style="width: 100%"> | |
| 13 | 12 | <el-option v-for="item in floors" :key="item.floorId" :label="item.floorNum + $t('shops.building')" |
| 14 | 13 | :value="item.floorId"></el-option> |
| 15 | 14 | </el-select> |
| ... | ... | @@ -42,7 +41,7 @@ |
| 42 | 41 | <script> |
| 43 | 42 | import { saveShops } from '@/api/room/shopsApi' |
| 44 | 43 | import { getFloors } from '@/api/room/roomApi' |
| 45 | -import {getCommunityId} from '@/api/community/communityApi' | |
| 44 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 46 | 45 | |
| 47 | 46 | export default { |
| 48 | 47 | name: 'AddShops', |
| ... | ... | @@ -136,13 +135,13 @@ export default { |
| 136 | 135 | this.$message.error(this.$t('common.saveFailed')) |
| 137 | 136 | }) |
| 138 | 137 | }, |
| 139 | - async searchFloors() { | |
| 140 | - const {apiFloorDataVoList} = await getFloors({ | |
| 141 | - communityId: getCommunityId(), | |
| 142 | - page:1, | |
| 143 | - row:100 | |
| 144 | - }) | |
| 145 | - this.floors = apiFloorDataVoList | |
| 138 | + async searchFloors() { | |
| 139 | + const { apiFloorDataVoList } = await getFloors({ | |
| 140 | + communityId: getCommunityId(), | |
| 141 | + page: 1, | |
| 142 | + row: 100 | |
| 143 | + }) | |
| 144 | + this.floors = apiFloorDataVoList | |
| 146 | 145 | }, |
| 147 | 146 | } |
| 148 | 147 | } | ... | ... |
src/components/room/editRoom.vue
| ... | ... | @@ -25,29 +25,32 @@ |
| 25 | 25 | </el-col> |
| 26 | 26 | <el-col :span="12"> |
| 27 | 27 | <el-form-item :label="$t('room.editRoom.roomType')" required> |
| 28 | - <el-select v-model="form.roomSubType" :placeholder="$t('room.editRoom.placeholder.roomType')" style="width: 100%;"> | |
| 28 | + <el-select v-model="form.roomSubType" :placeholder="$t('room.editRoom.placeholder.roomType')" | |
| 29 | + style="width: 100%;"> | |
| 29 | 30 | <el-option v-for="item in roomSubTypes" :key="item.statusCd" :label="item.name" :value="item.statusCd" /> |
| 30 | 31 | </el-select> |
| 31 | 32 | </el-form-item> |
| 32 | 33 | </el-col> |
| 33 | 34 | </el-row> |
| 34 | 35 | |
| 35 | - <el-row> | |
| 36 | + <!-- <el-row> | |
| 36 | 37 | <el-col :span="12"> |
| 37 | 38 | <el-form-item :label="$t('room.editRoom.apartment1')" required> |
| 38 | - <el-select v-model="form.apartment1" :placeholder="$t('room.editRoom.placeholder.apartment')" style="width: 100%;"> | |
| 39 | + <el-select v-model="form.apartment1" :placeholder="$t('room.editRoom.placeholder.apartment')" | |
| 40 | + style="width: 100%;"> | |
| 39 | 41 | <el-option v-for="item in apartment1Options" :key="item.value" :label="item.label" :value="item.value" /> |
| 40 | 42 | </el-select> |
| 41 | 43 | </el-form-item> |
| 42 | 44 | </el-col> |
| 43 | 45 | <el-col :span="12"> |
| 44 | 46 | <el-form-item :label="$t('room.editRoom.apartment2')" required> |
| 45 | - <el-select v-model="form.apartment2" :placeholder="$t('room.editRoom.placeholder.apartment')" style="width: 100%;"> | |
| 47 | + <el-select v-model="form.apartment2" :placeholder="$t('room.editRoom.placeholder.apartment')" | |
| 48 | + style="width: 100%;"> | |
| 46 | 49 | <el-option v-for="item in apartment2Options" :key="item.value" :label="item.label" :value="item.value" /> |
| 47 | 50 | </el-select> |
| 48 | 51 | </el-form-item> |
| 49 | 52 | </el-col> |
| 50 | - </el-row> | |
| 53 | + </el-row> --> | |
| 51 | 54 | |
| 52 | 55 | <el-row> |
| 53 | 56 | <el-col :span="12"> |
| ... | ... | @@ -79,15 +82,16 @@ |
| 79 | 82 | <el-row v-if="form.state !== '2002'"> |
| 80 | 83 | <el-col :span="12"> |
| 81 | 84 | <el-form-item :label="$t('room.editRoom.roomState')" required> |
| 82 | - <el-select v-model="form.state" :placeholder="$t('room.editRoom.placeholder.roomState')" style="width: 100%;"> | |
| 85 | + <el-select v-model="form.state" :placeholder="$t('room.editRoom.placeholder.roomState')" | |
| 86 | + style="width: 100%;"> | |
| 83 | 87 | <el-option v-for="item in roomStateOptions" :key="item.value" :label="item.label" :value="item.value" /> |
| 84 | 88 | </el-select> |
| 85 | 89 | </el-form-item> |
| 86 | 90 | </el-col> |
| 87 | 91 | <el-col :span="12"> |
| 88 | 92 | <el-form-item :label="$t('room.editRoom.endTime')" required> |
| 89 | - <el-date-picker v-model="form.endTime" type="date" :placeholder="$t('room.editRoom.placeholder.endTime')" style="width: 100%;" | |
| 90 | - value-format="yyyy-MM-dd" /> | |
| 93 | + <el-date-picker v-model="form.endTime" type="date" :placeholder="$t('room.editRoom.placeholder.endTime')" | |
| 94 | + style="width: 100%;" value-format="yyyy-MM-dd" /> | |
| 91 | 95 | </el-form-item> |
| 92 | 96 | </el-col> |
| 93 | 97 | </el-row> |
| ... | ... | @@ -102,7 +106,8 @@ |
| 102 | 106 | </div> |
| 103 | 107 | |
| 104 | 108 | <el-form-item :label="$t('room.editRoom.remark')"> |
| 105 | - <el-input v-model="form.remark" type="textarea" :placeholder="$t('room.editRoom.placeholder.remark')" :rows="3" /> | |
| 109 | + <el-input v-model="form.remark" type="textarea" :placeholder="$t('room.editRoom.placeholder.remark')" | |
| 110 | + :rows="3" /> | |
| 106 | 111 | </el-form-item> |
| 107 | 112 | </el-form> |
| 108 | 113 | ... | ... |
src/components/room/searchRoom.vue
| ... | ... | @@ -2,11 +2,11 @@ |
| 2 | 2 | <el-dialog :title="$t('searchRoom.title')" :visible.sync="dialogVisible" width="70%" @close="handleClose"> |
| 3 | 3 | <div class="ibox"> |
| 4 | 4 | <el-row v-if="showSearchCondition"> |
| 5 | - <el-col :span="8"> | |
| 5 | + <el-col :span="4"> | |
| 6 | 6 | <el-input :placeholder="$t('searchRoom.floorNumPlaceholder')" :readonly="floorNumInputReadonly" |
| 7 | 7 | v-model.trim="currentFloorNum" clearable /> |
| 8 | 8 | </el-col> |
| 9 | - <el-col :span="8" :offset="1"> | |
| 9 | + <el-col :span="4" :offset="1"> | |
| 10 | 10 | <el-input :placeholder="$t('searchRoom.roomNumPlaceholder')" v-model.trim="currentRoomNum" clearable /> |
| 11 | 11 | </el-col> |
| 12 | 12 | <el-col :span="6" :offset="1"> |
| ... | ... | @@ -58,7 +58,7 @@ |
| 58 | 58 | </div> |
| 59 | 59 | </el-dialog> |
| 60 | 60 | </template> |
| 61 | - | |
| 61 | + | |
| 62 | 62 | <script> |
| 63 | 63 | import { queryRooms, queryRoomsWithSell, queryRoomsWithOutSell } from '@/api/room/roomApi' |
| 64 | 64 | import { getCommunityId } from '@/api/community/communityApi' |
| ... | ... | @@ -176,7 +176,7 @@ export default { |
| 176 | 176 | } |
| 177 | 177 | } |
| 178 | 178 | </script> |
| 179 | - | |
| 179 | + | |
| 180 | 180 | <style scoped> |
| 181 | 181 | .el-input { |
| 182 | 182 | width: 100%; | ... | ... |
src/components/store/AddPropertyCompany.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog :title="$t('propertyCompanyManage.add')" :visible="visible" width="70%" @close="handleClose"> | |
| 3 | - <el-form ref="form" :model="formData" label-width="120px"> | |
| 2 | + <el-dialog :title="$t('propertyCompanyManage.add')" :visible="visible" width="40%" @close="handleClose"> | |
| 3 | + <el-form ref="form" :model="formData" label-width="120px" class="text-left"> | |
| 4 | 4 | <el-form-item :label="$t('propertyCompanyManage.name')" prop="name" required> |
| 5 | 5 | <el-input v-model="formData.name" /> |
| 6 | 6 | </el-form-item> |
| ... | ... | @@ -89,7 +89,7 @@ export default { |
| 89 | 89 | }, |
| 90 | 90 | async fetchCommunities() { |
| 91 | 91 | try { |
| 92 | - const data = await listNoEnterCommunity({ | |
| 92 | + const data = await listNoEnterCommunity({ | |
| 93 | 93 | communityName: '' |
| 94 | 94 | }) |
| 95 | 95 | this.communities = data | ... | ... |
src/components/store/EditPropertyCompany.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog | |
| 3 | - :title="$t('propertyCompanyManage.edit')" | |
| 4 | - :visible.sync="visible" | |
| 5 | - width="70%" | |
| 6 | - @close="handleClose" | |
| 7 | - > | |
| 2 | + <el-dialog :title="$t('propertyCompanyManage.edit')" :visible.sync="visible" width="40%" @close="handleClose"> | |
| 8 | 3 | <el-form ref="form" :model="formData" label-width="120px"> |
| 9 | 4 | <el-form-item :label="$t('propertyCompanyManage.name')" prop="name" required> |
| 10 | 5 | <el-input v-model="formData.name" /> |
| ... | ... | @@ -19,12 +14,7 @@ |
| 19 | 14 | <el-input v-model="formData.corporation" /> |
| 20 | 15 | </el-form-item> |
| 21 | 16 | <el-form-item :label="$t('propertyCompanyManage.foundingTime')" prop="foundingTime" required> |
| 22 | - <el-date-picker | |
| 23 | - v-model="formData.foundingTime" | |
| 24 | - type="date" | |
| 25 | - value-format="yyyy-MM-dd" | |
| 26 | - style="width: 100%" | |
| 27 | - /> | |
| 17 | + <el-date-picker v-model="formData.foundingTime" type="date" value-format="yyyy-MM-dd" style="width: 100%" /> | |
| 28 | 18 | </el-form-item> |
| 29 | 19 | <el-form-item :label="$t('propertyCompanyManage.landmark')" prop="nearbyLandmarks" required> |
| 30 | 20 | <el-input v-model="formData.nearbyLandmarks" /> | ... | ... |
src/i18n/commonLang.js
| ... | ... | @@ -55,6 +55,8 @@ export const messages = { |
| 55 | 55 | examine:'Examine', |
| 56 | 56 | audit:'Audit', |
| 57 | 57 | choose:'Choose', |
| 58 | + submitSuccess:'Submit successfully', | |
| 59 | + saveSuccess:'successfully', | |
| 58 | 60 | } |
| 59 | 61 | }, |
| 60 | 62 | zh: { |
| ... | ... | @@ -113,6 +115,8 @@ export const messages = { |
| 113 | 115 | examine:'审核', |
| 114 | 116 | audit:'审核', |
| 115 | 117 | choose:'选择', |
| 118 | + submitSuccess:'提交成功', | |
| 119 | + saveSuccess:'成功', | |
| 116 | 120 | } |
| 117 | 121 | } |
| 118 | 122 | } |
| 119 | 123 | \ No newline at end of file | ... | ... |
src/views/contract/contractChangeDetailLang.js
| ... | ... | @@ -56,18 +56,6 @@ export const messages = { |
| 56 | 56 | squareMeters: 'Square Meters', |
| 57 | 57 | confirmDelete: 'Are you sure to delete this room?' |
| 58 | 58 | }, |
| 59 | - searchRoom: { | |
| 60 | - title: 'Select Room', | |
| 61 | - buildingNo: 'Building No', | |
| 62 | - buildingNoPlaceholder: 'Input building number', | |
| 63 | - roomNo: 'Room No', | |
| 64 | - roomNoPlaceholder: 'Input room number', | |
| 65 | - roomId: 'Room ID', | |
| 66 | - building: 'Building', | |
| 67 | - unit: 'Unit', | |
| 68 | - room: 'Room', | |
| 69 | - floorUnit: 'Floor' | |
| 70 | - }, | |
| 71 | 59 | purchaseApprovers: { |
| 72 | 60 | title: 'Approver Information', |
| 73 | 61 | orgName: 'Organization', |
| ... | ... | @@ -152,18 +140,6 @@ export const messages = { |
| 152 | 140 | squareMeters: '平方米', |
| 153 | 141 | confirmDelete: '确定删除该房屋吗?' |
| 154 | 142 | }, |
| 155 | - searchRoom: { | |
| 156 | - title: '选择房屋', | |
| 157 | - buildingNo: '楼栋编号', | |
| 158 | - buildingNoPlaceholder: '输入楼栋编号', | |
| 159 | - roomNo: '房屋编号', | |
| 160 | - roomNoPlaceholder: '输入房屋编号', | |
| 161 | - roomId: '房屋ID', | |
| 162 | - building: '号楼', | |
| 163 | - unit: '单元', | |
| 164 | - room: '室', | |
| 165 | - floorUnit: '层' | |
| 166 | - }, | |
| 167 | 143 | purchaseApprovers: { |
| 168 | 144 | title: '审批人信息', |
| 169 | 145 | orgName: '所属组织', | ... | ... |
src/views/owner/ownerBindRoom.vue
| ... | ... | @@ -58,7 +58,7 @@ |
| 58 | 58 | <search-room ref="searchRoomRef" :roomFlag="2" @chooseRoom="handleChooseRoom" /> |
| 59 | 59 | </div> |
| 60 | 60 | </template> |
| 61 | - | |
| 61 | + | |
| 62 | 62 | <script> |
| 63 | 63 | import { sellRoom } from '@/api/owner/roomBindOwnerApi' |
| 64 | 64 | import { getCommunityId } from '@/api/community/communityApi' |
| ... | ... | @@ -174,7 +174,7 @@ export default { |
| 174 | 174 | } |
| 175 | 175 | } |
| 176 | 176 | </script> |
| 177 | - | |
| 177 | + | |
| 178 | 178 | <style scoped> |
| 179 | 179 | .room-bind-owner-container { |
| 180 | 180 | padding: 20px; | ... | ... |
src/views/owner/ownerDetail.vue
src/views/owner/ownerDetailLang.js
| ... | ... | @@ -223,6 +223,80 @@ export const messages = { |
| 223 | 223 | unused: 'Unused', |
| 224 | 224 | used: 'Used', |
| 225 | 225 | effectiveTime: 'Effective Time' |
| 226 | + }, | |
| 227 | + addOwnerMember: { | |
| 228 | + title: 'Add Member', | |
| 229 | + personRole: 'Person Role', | |
| 230 | + name: 'Name', | |
| 231 | + link: 'Phone', | |
| 232 | + sex: 'Gender', | |
| 233 | + concactLink: 'Alternate Phone', | |
| 234 | + address: 'Address', | |
| 235 | + idCard: 'ID Card', | |
| 236 | + remark: 'Remark', | |
| 237 | + photo: 'Photo', | |
| 238 | + uploadPhoto: 'Upload Photo', | |
| 239 | + placeholder: { | |
| 240 | + personRole: 'Required, please select person role', | |
| 241 | + name: 'Required, please enter name', | |
| 242 | + link: 'Required, please enter phone number', | |
| 243 | + sex: 'Required, please select gender', | |
| 244 | + concactLink: 'Optional, please enter alternate phone', | |
| 245 | + address: 'Optional, please enter address', | |
| 246 | + idCard: 'Optional, please enter ID card', | |
| 247 | + remark: 'Optional, please enter remark' | |
| 248 | + }, | |
| 249 | + role: { | |
| 250 | + tenant: 'Tenant', | |
| 251 | + family: 'Family Member', | |
| 252 | + staff: 'Company Staff', | |
| 253 | + other: 'Other' | |
| 254 | + }, | |
| 255 | + validate: { | |
| 256 | + nameLength: 'Name length must be between 2 and 64 characters', | |
| 257 | + phoneFormat: 'Invalid phone number format', | |
| 258 | + idCardFormat: 'Invalid ID card format', | |
| 259 | + remarkLength: 'Remark length cannot exceed 200 characters', | |
| 260 | + photoSize: 'Photo size cannot exceed 2MB' | |
| 261 | + }, | |
| 262 | + uploadFailed: 'Photo upload failed' | |
| 263 | + }, | |
| 264 | + editOwnerMember: { | |
| 265 | + title: 'Edit Member', | |
| 266 | + personRole: 'Person Role', | |
| 267 | + name: 'Name', | |
| 268 | + link: 'Phone', | |
| 269 | + sex: 'Gender', | |
| 270 | + concactLink: 'Alternate Phone', | |
| 271 | + address: 'Address', | |
| 272 | + idCard: 'ID Card', | |
| 273 | + remark: 'Remark', | |
| 274 | + photo: 'Photo', | |
| 275 | + uploadPhoto: 'Upload Photo', | |
| 276 | + placeholder: { | |
| 277 | + personRole: 'Required, please select person role', | |
| 278 | + name: 'Required, please enter name', | |
| 279 | + link: 'Required, please enter phone number', | |
| 280 | + sex: 'Required, please select gender', | |
| 281 | + concactLink: 'Optional, please enter alternate phone', | |
| 282 | + address: 'Optional, please enter address', | |
| 283 | + idCard: 'Optional, please enter ID card', | |
| 284 | + remark: 'Optional, please enter remark' | |
| 285 | + }, | |
| 286 | + role: { | |
| 287 | + tenant: 'Tenant', | |
| 288 | + family: 'Family Member', | |
| 289 | + staff: 'Company Staff', | |
| 290 | + other: 'Other' | |
| 291 | + }, | |
| 292 | + validate: { | |
| 293 | + nameLength: 'Name length must be between 2 and 64 characters', | |
| 294 | + phoneFormat: 'Invalid phone number format', | |
| 295 | + idCardFormat: 'Invalid ID card format', | |
| 296 | + remarkLength: 'Remark length cannot exceed 200 characters', | |
| 297 | + photoSize: 'Photo size cannot exceed 2MB' | |
| 298 | + }, | |
| 299 | + uploadFailed: 'Photo upload failed' | |
| 226 | 300 | } |
| 227 | 301 | }, |
| 228 | 302 | zh: { |
| ... | ... | @@ -449,6 +523,80 @@ export const messages = { |
| 449 | 523 | unused: '未使用', |
| 450 | 524 | used: '已使用', |
| 451 | 525 | effectiveTime: '生效时间' |
| 526 | + }, | |
| 527 | + addOwnerMember: { | |
| 528 | + title: '添加成员', | |
| 529 | + personRole: '人员角色', | |
| 530 | + name: '客户名称', | |
| 531 | + link: '联系手机', | |
| 532 | + sex: '性别', | |
| 533 | + concactLink: '备用手机', | |
| 534 | + address: '地址', | |
| 535 | + idCard: '身份证', | |
| 536 | + remark: '备注', | |
| 537 | + photo: '照片', | |
| 538 | + uploadPhoto: '上传照片', | |
| 539 | + placeholder: { | |
| 540 | + personRole: '必填,请选择人员角色', | |
| 541 | + name: '必填,请填写客户名称', | |
| 542 | + link: '必填,请填写联系方式', | |
| 543 | + sex: '必填,请选择性别', | |
| 544 | + concactLink: '可选,请填写备用手机', | |
| 545 | + address: '可填,请填写地址', | |
| 546 | + idCard: '可选,请填写身份证', | |
| 547 | + remark: '可填,请填写备注' | |
| 548 | + }, | |
| 549 | + role: { | |
| 550 | + tenant: '租客', | |
| 551 | + family: '家庭成员', | |
| 552 | + staff: '公司员工', | |
| 553 | + other: '其他' | |
| 554 | + }, | |
| 555 | + validate: { | |
| 556 | + nameLength: '姓名长度必须在2位至64位', | |
| 557 | + phoneFormat: '手机号格式错误', | |
| 558 | + idCardFormat: '身份证格式不对', | |
| 559 | + remarkLength: '备注长度不能超过200位', | |
| 560 | + photoSize: '图片大小不能超过2MB' | |
| 561 | + }, | |
| 562 | + uploadFailed: '照片上传失败' | |
| 563 | + }, | |
| 564 | + editOwnerMember: { | |
| 565 | + title: '修改成员', | |
| 566 | + personRole: '人员角色', | |
| 567 | + name: '客户名称', | |
| 568 | + link: '联系手机', | |
| 569 | + sex: '性别', | |
| 570 | + concactLink: '备用手机', | |
| 571 | + address: '地址', | |
| 572 | + idCard: '身份证', | |
| 573 | + remark: '备注', | |
| 574 | + photo: '照片', | |
| 575 | + uploadPhoto: '上传照片', | |
| 576 | + placeholder: { | |
| 577 | + personRole: '必填,请选择人员角色', | |
| 578 | + name: '必填,请填写客户名称', | |
| 579 | + link: '必填,请填写联系方式', | |
| 580 | + sex: '必填,请选择性别', | |
| 581 | + concactLink: '可选,请填写备用手机', | |
| 582 | + address: '可填,请填写地址', | |
| 583 | + idCard: '可选,请填写身份证', | |
| 584 | + remark: '可填,请填写备注' | |
| 585 | + }, | |
| 586 | + role: { | |
| 587 | + tenant: '租客', | |
| 588 | + family: '家庭成员', | |
| 589 | + staff: '公司员工', | |
| 590 | + other: '其他' | |
| 591 | + }, | |
| 592 | + validate: { | |
| 593 | + nameLength: '姓名长度必须在2位至64位', | |
| 594 | + phoneFormat: '手机号格式错误', | |
| 595 | + idCardFormat: '身份证格式不对', | |
| 596 | + remarkLength: '备注长度不能超过200位', | |
| 597 | + photoSize: '图片大小不能超过2MB' | |
| 598 | + }, | |
| 599 | + uploadFailed: '照片上传失败' | |
| 452 | 600 | } |
| 453 | 601 | } |
| 454 | 602 | } |
| 455 | 603 | \ No newline at end of file | ... | ... |
src/views/room/addRoomViewList.vue
| 1 | 1 | <template> |
| 2 | 2 | <div class="add-room-view-container"> |
| 3 | 3 | <el-card class="box-card"> |
| 4 | - <div slot="header" class="clearfix"> | |
| 5 | - <h5>{{ $t('addRoomView.title') }}</h5> | |
| 4 | + <div slot="header" class="flex justify-between "> | |
| 5 | + <div>{{ $t('addRoomView.title') }}</div> | |
| 6 | 6 | <div class="ibox-tools"> |
| 7 | 7 | <el-button type="primary" size="small" @click="_goBack"> |
| 8 | 8 | <i class="el-icon-close"></i>{{ $t('common.back') }} | ... | ... |
src/views/room/shopsList.vue
| ... | ... | @@ -129,7 +129,7 @@ |
| 129 | 129 | <add-shops ref="addDialog" @success="loadData"></add-shops> |
| 130 | 130 | <bind-owner-shops ref="bindDialog" @success="loadData"></bind-owner-shops> |
| 131 | 131 | <edit-shops ref="editDialog" @success="loadData"></edit-shops> |
| 132 | - <delete-room ref="deleteDialog" @success="loadData"></delete-room> | |
| 132 | + <delete-room ref="deleteDialog" @handleRefreshRoom="loadData"></delete-room> | |
| 133 | 133 | </div> |
| 134 | 134 | </template> |
| 135 | 135 | ... | ... |
src/views/store/propertyCompanyManageList.vue
| ... | ... | @@ -7,25 +7,13 @@ |
| 7 | 7 | </div> |
| 8 | 8 | <el-row :gutter="20"> |
| 9 | 9 | <el-col :span="6"> |
| 10 | - <el-input | |
| 11 | - v-model="searchForm.storeId" | |
| 12 | - :placeholder="$t('propertyCompanyManage.enterStoreId')" | |
| 13 | - clearable | |
| 14 | - /> | |
| 10 | + <el-input v-model="searchForm.storeId" :placeholder="$t('propertyCompanyManage.enterStoreId')" clearable /> | |
| 15 | 11 | </el-col> |
| 16 | 12 | <el-col :span="6"> |
| 17 | - <el-input | |
| 18 | - v-model="searchForm.name" | |
| 19 | - :placeholder="$t('propertyCompanyManage.enterName')" | |
| 20 | - clearable | |
| 21 | - /> | |
| 13 | + <el-input v-model="searchForm.name" :placeholder="$t('propertyCompanyManage.enterName')" clearable /> | |
| 22 | 14 | </el-col> |
| 23 | 15 | <el-col :span="6"> |
| 24 | - <el-input | |
| 25 | - v-model="searchForm.tel" | |
| 26 | - :placeholder="$t('propertyCompanyManage.enterTel')" | |
| 27 | - clearable | |
| 28 | - /> | |
| 16 | + <el-input v-model="searchForm.tel" :placeholder="$t('propertyCompanyManage.enterTel')" clearable /> | |
| 29 | 17 | </el-col> |
| 30 | 18 | <el-col :span="6"> |
| 31 | 19 | <el-button type="primary" @click="handleSearch"> |
| ... | ... | @@ -63,7 +51,7 @@ |
| 63 | 51 | <el-button size="mini" @click="handleEdit(scope.row)"> |
| 64 | 52 | {{ $t('propertyCompanyManage.edit') }} |
| 65 | 53 | </el-button> |
| 66 | - <el-button size="mini" @click="handleDelete(scope.row)"> | |
| 54 | + <el-button size="mini" @click="handleDelete(scope.row)"> | |
| 67 | 55 | {{ $t('propertyCompanyManage.delete') }} |
| 68 | 56 | </el-button> |
| 69 | 57 | <el-button size="mini" @click="handleManageCommunity(scope.row)"> |
| ... | ... | @@ -74,18 +62,10 @@ |
| 74 | 62 | <el-button size="mini" @click="handleAdminLogin(scope.row)"> |
| 75 | 63 | {{ $t('propertyCompanyManage.login') }} |
| 76 | 64 | </el-button> |
| 77 | - <el-button | |
| 78 | - size="mini" | |
| 79 | - v-if="scope.row.state !== '48002'" | |
| 80 | - @click="handleUpdateState(scope.row, '48002')" | |
| 81 | - > | |
| 65 | + <el-button size="mini" v-if="scope.row.state !== '48002'" @click="handleUpdateState(scope.row, '48002')"> | |
| 82 | 66 | {{ $t('propertyCompanyManage.restrictLogin') }} |
| 83 | 67 | </el-button> |
| 84 | - <el-button | |
| 85 | - size="mini" | |
| 86 | - v-else | |
| 87 | - @click="handleUpdateState(scope.row, '48001')" | |
| 88 | - > | |
| 68 | + <el-button size="mini" v-else @click="handleUpdateState(scope.row, '48001')"> | |
| 89 | 69 | {{ $t('propertyCompanyManage.restoreLogin') }} |
| 90 | 70 | </el-button> |
| 91 | 71 | <el-button size="mini" @click="handleResetPwd(scope.row)"> |
| ... | ... | @@ -101,15 +81,9 @@ |
| 101 | 81 | <div class="tip">{{ $t('propertyCompanyManage.tip') }}</div> |
| 102 | 82 | </el-col> |
| 103 | 83 | <el-col :span="12"> |
| 104 | - <el-pagination | |
| 105 | - :current-page="pagination.current" | |
| 106 | - :page-sizes="[10, 20, 30, 50]" | |
| 107 | - :page-size="pagination.size" | |
| 108 | - :total="pagination.total" | |
| 109 | - layout="total, sizes, prev, pager, next, jumper" | |
| 110 | - @size-change="handleSizeChange" | |
| 111 | - @current-change="handlePageChange" | |
| 112 | - /> | |
| 84 | + <el-pagination :current-page="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size" | |
| 85 | + :total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" | |
| 86 | + @current-change="handlePageChange" /> | |
| 113 | 87 | </el-col> |
| 114 | 88 | </el-row> |
| 115 | 89 | </el-card> | ... | ... |