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,11 +8,22 @@ export function saveOwnerMember(data) { | ||
| 8 | data | 8 | data |
| 9 | }).then(response => { | 9 | }).then(response => { |
| 10 | const res = response.data | 10 | const res = response.data |
| 11 | - if (res.code === 0) { | ||
| 12 | resolve(res) | 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 | }).catch(error => { | 27 | }).catch(error => { |
| 17 | reject(error) | 28 | reject(error) |
| 18 | }) | 29 | }) |
src/components/community/AddPropertyCommunity.vue
| 1 | <template> | 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 | <el-form-item :label="$t('propertyCommunity.add.openCommunity')"> | 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 | </el-select> | 8 | </el-select> |
| 24 | </el-form-item> | 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 | <el-checkbox v-model="form.isAll" @change="handleAllChange"> | 13 | <el-checkbox v-model="form.isAll" @change="handleAllChange"> |
| 31 | {{ $t('propertyCommunity.add.all') }} | 14 | {{ $t('propertyCommunity.add.all') }} |
| 32 | </el-checkbox> | 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 | {{ item.name }} | 18 | {{ item.name }} |
| 41 | </el-checkbox> | 19 | </el-checkbox> |
| 42 | </el-form-item> | 20 | </el-form-item> |
| @@ -99,7 +77,7 @@ export default { | @@ -99,7 +77,7 @@ export default { | ||
| 99 | const params = { | 77 | const params = { |
| 100 | communityName: '' | 78 | communityName: '' |
| 101 | } | 79 | } |
| 102 | - const data = await listNoEnterCommunity(params) | 80 | + const data = await listNoEnterCommunity(params) |
| 103 | this.communitys = data | 81 | this.communitys = data |
| 104 | } catch (error) { | 82 | } catch (error) { |
| 105 | this.$message.error(this.$t('propertyCommunity.fetchError')) | 83 | this.$message.error(this.$t('propertyCommunity.fetchError')) |
src/components/community/addCommunity.vue
| 1 | <template> | 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 | <el-form-item :label="$t('addCommunity.name')" prop="name" required> | 4 | <el-form-item :label="$t('addCommunity.name')" prop="name" required> |
| 5 | <el-input v-model="addCommunityInfo.name" :placeholder="$t('addCommunity.namePlaceholder')" /> | 5 | <el-input v-model="addCommunityInfo.name" :placeholder="$t('addCommunity.namePlaceholder')" /> |
| 6 | </el-form-item> | 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 | \ No newline at end of file | 0 | \ No newline at end of file |
src/components/owner/addOwnerMember.vue
| 1 | <template> | 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 | <el-form :model="addOwnerMemberInfo" :rules="rules" ref="form" label-width="120px"> | 4 | <el-form :model="addOwnerMemberInfo" :rules="rules" ref="form" label-width="120px"> |
| 9 | <el-row :gutter="20"> | 5 | <el-row :gutter="20"> |
| 10 | <el-col :span="12"> | 6 | <el-col :span="12"> |
| 11 | <el-form-item :label="$t('addOwnerMember.personRole')" prop="personRole"> | 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 | </el-select> | 11 | </el-select> |
| 24 | </el-form-item> | 12 | </el-form-item> |
| 25 | - | 13 | + |
| 26 | <el-form-item :label="$t('addOwnerMember.name')" prop="name"> | 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 | </el-form-item> | 17 | </el-form-item> |
| 33 | - | 18 | + |
| 34 | <el-form-item :label="$t('addOwnerMember.link')" prop="link"> | 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 | </el-form-item> | 22 | </el-form-item> |
| 41 | - | 23 | + |
| 42 | <el-form-item :label="$t('addOwnerMember.sex')" prop="sex"> | 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 | </el-select> | 28 | </el-select> |
| 55 | </el-form-item> | 29 | </el-form-item> |
| 56 | </el-col> | 30 | </el-col> |
| 57 | - | 31 | + |
| 58 | <el-col :span="12" class="text-center"> | 32 | <el-col :span="12" class="text-center"> |
| 59 | <div class="avatar-uploader"> | 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 | </div> | 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 | {{ $t('addOwnerMember.uploadPhoto') }} | 39 | {{ $t('addOwnerMember.uploadPhoto') }} |
| 79 | </el-button> | 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 | </el-col> | 42 | </el-col> |
| 88 | </el-row> | 43 | </el-row> |
| 89 | - | 44 | + |
| 90 | <el-row :gutter="20"> | 45 | <el-row :gutter="20"> |
| 91 | <el-col :span="12"> | 46 | <el-col :span="12"> |
| 92 | <el-form-item :label="$t('addOwnerMember.concactLink')"> | 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 | </el-form-item> | 50 | </el-form-item> |
| 99 | - | 51 | + |
| 100 | <el-form-item :label="$t('addOwnerMember.address')"> | 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 | </el-form-item> | 55 | </el-form-item> |
| 107 | </el-col> | 56 | </el-col> |
| 108 | - | 57 | + |
| 109 | <el-col :span="12"> | 58 | <el-col :span="12"> |
| 110 | <el-form-item :label="$t('addOwnerMember.idCard')"> | 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 | </el-form-item> | 62 | </el-form-item> |
| 117 | - | 63 | + |
| 118 | <el-form-item :label="$t('addOwnerMember.remark')"> | 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 | </el-form-item> | 67 | </el-form-item> |
| 125 | </el-col> | 68 | </el-col> |
| 126 | </el-row> | 69 | </el-row> |
| 127 | - | ||
| 128 | - <template v-for="(item,index) in addOwnerMemberInfo.attrs"> | 70 | + |
| 71 | + <template v-for="(item, index) in addOwnerMemberInfo.attrs"> | ||
| 129 | <el-row :gutter="20" v-if="index % 2 === 0" :key="index"> | 72 | <el-row :gutter="20" v-if="index % 2 === 0" :key="index"> |
| 130 | <el-col :span="12"> | 73 | <el-col :span="12"> |
| 131 | <el-form-item :label="item.specName" v-if="item.specType === '2233'"> | 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 | </el-form-item> | 76 | </el-form-item> |
| 138 | - | 77 | + |
| 139 | <el-form-item :label="item.specName" v-if="item.specType === '3344'"> | 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 | </el-select> | 82 | </el-select> |
| 152 | </el-form-item> | 83 | </el-form-item> |
| 153 | </el-col> | 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 | </el-form-item> | 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 | </el-select> | 99 | </el-select> |
| 183 | </el-form-item> | 100 | </el-form-item> |
| 184 | </el-col> | 101 | </el-col> |
| 185 | </el-row> | 102 | </el-row> |
| 186 | </template> | 103 | </template> |
| 187 | </el-form> | 104 | </el-form> |
| 188 | - | 105 | + |
| 189 | <div slot="footer" class="dialog-footer"> | 106 | <div slot="footer" class="dialog-footer"> |
| 190 | <el-button @click="_closeSaveOwnerModal">{{ $t('common.cancel') }}</el-button> | 107 | <el-button @click="_closeSaveOwnerModal">{{ $t('common.cancel') }}</el-button> |
| 191 | <el-button type="primary" @click="saveOwnerMemberInfo">{{ $t('common.save') }}</el-button> | 108 | <el-button type="primary" @click="saveOwnerMemberInfo">{{ $t('common.save') }}</el-button> |
| @@ -195,8 +112,11 @@ | @@ -195,8 +112,11 @@ | ||
| 195 | 112 | ||
| 196 | <script> | 113 | <script> |
| 197 | import { getCommunityId } from '@/api/community/communityApi' | 114 | import { getCommunityId } from '@/api/community/communityApi' |
| 198 | -import { getAttrSpec, getAttrValue } from '@/api/community/communityApi' | 115 | +import { getAttrValue } from '@/api/community/communityApi' |
| 199 | import { uploadFile } from '@/api/staff/addStaffApi' | 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 | export default { | 121 | export default { |
| 202 | name: 'AddOwnerMember', | 122 | name: 'AddOwnerMember', |
| @@ -253,26 +173,25 @@ export default { | @@ -253,26 +173,25 @@ export default { | ||
| 253 | } | 173 | } |
| 254 | }, | 174 | }, |
| 255 | methods: { | 175 | methods: { |
| 256 | - open(ownerId) { | ||
| 257 | - this.addOwnerMemberInfo.ownerId = ownerId | 176 | + open(params) { |
| 177 | + this.addOwnerMemberInfo.ownerId = params.ownerId | ||
| 258 | this._loadOwnerAttrSpec() | 178 | this._loadOwnerAttrSpec() |
| 259 | this.dialogVisible = true | 179 | this.dialogVisible = true |
| 260 | this.$nextTick(() => { | 180 | this.$nextTick(() => { |
| 261 | this.$refs.form.clearValidate() | 181 | this.$refs.form.clearValidate() |
| 262 | }) | 182 | }) |
| 263 | }, | 183 | }, |
| 264 | - | ||
| 265 | - saveOwnerMemberInfo() { | 184 | + |
| 185 | + async saveOwnerMemberInfo() { | ||
| 266 | this.$refs.form.validate(valid => { | 186 | this.$refs.form.validate(valid => { |
| 267 | if (valid) { | 187 | if (valid) { |
| 268 | const params = { | 188 | const params = { |
| 269 | ...this.addOwnerMemberInfo, | 189 | ...this.addOwnerMemberInfo, |
| 270 | communityId: getCommunityId() | 190 | communityId: getCommunityId() |
| 271 | } | 191 | } |
| 272 | - | ||
| 273 | - this.$http.post('/owner.saveOwnerMember', params) | 192 | + saveOwnerMember(params) |
| 274 | .then(res => { | 193 | .then(res => { |
| 275 | - if (res.data.code === 0) { | 194 | + if (res.code === 0) { |
| 276 | this.$message.success(this.$t('common.saveSuccess')) | 195 | this.$message.success(this.$t('common.saveSuccess')) |
| 277 | this.dialogVisible = false | 196 | this.dialogVisible = false |
| 278 | this.$emit('save-success') | 197 | this.$emit('save-success') |
| @@ -287,10 +206,10 @@ export default { | @@ -287,10 +206,10 @@ export default { | ||
| 287 | } | 206 | } |
| 288 | }) | 207 | }) |
| 289 | }, | 208 | }, |
| 290 | - | 209 | + |
| 291 | _loadOwnerAttrSpec() { | 210 | _loadOwnerAttrSpec() { |
| 292 | this.addOwnerMemberInfo.attrs = [] | 211 | this.addOwnerMemberInfo.attrs = [] |
| 293 | - getAttrSpec('building_owner_attr').then(data => { | 212 | + getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr' }).then(data => { |
| 294 | data.forEach(item => { | 213 | data.forEach(item => { |
| 295 | if (item.specShow === 'Y') { | 214 | if (item.specShow === 'Y') { |
| 296 | item.value = '' | 215 | item.value = '' |
| @@ -301,7 +220,7 @@ export default { | @@ -301,7 +220,7 @@ export default { | ||
| 301 | }) | 220 | }) |
| 302 | }) | 221 | }) |
| 303 | }, | 222 | }, |
| 304 | - | 223 | + |
| 305 | _loadAttrValue(specCd, values) { | 224 | _loadAttrValue(specCd, values) { |
| 306 | getAttrValue(specCd).then(data => { | 225 | getAttrValue(specCd).then(data => { |
| 307 | data.forEach(item => { | 226 | data.forEach(item => { |
| @@ -311,11 +230,11 @@ export default { | @@ -311,11 +230,11 @@ export default { | ||
| 311 | }) | 230 | }) |
| 312 | }) | 231 | }) |
| 313 | }, | 232 | }, |
| 314 | - | 233 | + |
| 315 | _uploadPhoto() { | 234 | _uploadPhoto() { |
| 316 | this.$refs.fileInput.click() | 235 | this.$refs.fileInput.click() |
| 317 | }, | 236 | }, |
| 318 | - | 237 | + |
| 319 | _choosePhoto(event) { | 238 | _choosePhoto(event) { |
| 320 | const files = event.target.files | 239 | const files = event.target.files |
| 321 | if (files && files.length > 0) { | 240 | if (files && files.length > 0) { |
| @@ -324,16 +243,16 @@ export default { | @@ -324,16 +243,16 @@ export default { | ||
| 324 | this.$message.error(this.$t('addOwnerMember.validate.photoSize')) | 243 | this.$message.error(this.$t('addOwnerMember.validate.photoSize')) |
| 325 | return | 244 | return |
| 326 | } | 245 | } |
| 327 | - | 246 | + |
| 328 | this._doUploadImage(file) | 247 | this._doUploadImage(file) |
| 329 | } | 248 | } |
| 330 | }, | 249 | }, |
| 331 | - | 250 | + |
| 332 | _doUploadImage(file) { | 251 | _doUploadImage(file) { |
| 333 | const formData = new FormData() | 252 | const formData = new FormData() |
| 334 | formData.append('uploadFile', file) | 253 | formData.append('uploadFile', file) |
| 335 | formData.append('communityId', getCommunityId()) | 254 | formData.append('communityId', getCommunityId()) |
| 336 | - | 255 | + |
| 337 | uploadFile(formData).then(res => { | 256 | uploadFile(formData).then(res => { |
| 338 | this.addOwnerMemberInfo.ownerPhoto = res.fileId | 257 | this.addOwnerMemberInfo.ownerPhoto = res.fileId |
| 339 | this.addOwnerMemberInfo.ownerPhotoUrl = res.url | 258 | this.addOwnerMemberInfo.ownerPhotoUrl = res.url |
| @@ -342,7 +261,7 @@ export default { | @@ -342,7 +261,7 @@ export default { | ||
| 342 | this.$message.error(this.$t('addOwnerMember.uploadFailed')) | 261 | this.$message.error(this.$t('addOwnerMember.uploadFailed')) |
| 343 | }) | 262 | }) |
| 344 | }, | 263 | }, |
| 345 | - | 264 | + |
| 346 | _closeSaveOwnerModal() { | 265 | _closeSaveOwnerModal() { |
| 347 | this.dialogVisible = false | 266 | this.dialogVisible = false |
| 348 | this.$refs.form.resetFields() | 267 | this.$refs.form.resetFields() |
| @@ -370,18 +289,22 @@ export default { | @@ -370,18 +289,22 @@ export default { | ||
| 370 | .w100 { | 289 | .w100 { |
| 371 | width: 100%; | 290 | width: 100%; |
| 372 | } | 291 | } |
| 292 | + | ||
| 373 | .mt10 { | 293 | .mt10 { |
| 374 | margin-top: 10px; | 294 | margin-top: 10px; |
| 375 | } | 295 | } |
| 296 | + | ||
| 376 | .text-center { | 297 | .text-center { |
| 377 | text-align: center; | 298 | text-align: center; |
| 378 | } | 299 | } |
| 300 | + | ||
| 379 | .avatar-uploader { | 301 | .avatar-uploader { |
| 380 | width: 100%; | 302 | width: 100%; |
| 381 | display: flex; | 303 | display: flex; |
| 382 | justify-content: center; | 304 | justify-content: center; |
| 383 | margin-bottom: 10px; | 305 | margin-bottom: 10px; |
| 384 | } | 306 | } |
| 307 | + | ||
| 385 | .avatar { | 308 | .avatar { |
| 386 | width: 150px; | 309 | width: 150px; |
| 387 | height: 150px; | 310 | height: 150px; |
src/components/owner/deleteOwner.vue
| @@ -33,7 +33,8 @@ export default { | @@ -33,7 +33,8 @@ export default { | ||
| 33 | async confirmDelete() { | 33 | async confirmDelete() { |
| 34 | try { | 34 | try { |
| 35 | await deleteOwner({ | 35 | await deleteOwner({ |
| 36 | - ownerId: this.owner.ownerId | 36 | + ownerId: this.owner.ownerId, |
| 37 | + memberId: this.owner.memberId | ||
| 37 | }) | 38 | }) |
| 38 | this.$message.success(this.$t('listOwner.deleteSuccess')) | 39 | this.$message.success(this.$t('listOwner.deleteSuccess')) |
| 39 | this.visible = false | 40 | this.visible = false |
src/components/owner/editOwnerMember.vue
| 1 | <template> | 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 | <el-form :model="editOwnerMemberInfo" :rules="rules" ref="form" label-width="120px"> | 4 | <el-form :model="editOwnerMemberInfo" :rules="rules" ref="form" label-width="120px"> |
| 9 | <el-row :gutter="20"> | 5 | <el-row :gutter="20"> |
| 10 | <el-col :span="12"> | 6 | <el-col :span="12"> |
| 11 | <el-form-item :label="$t('editOwnerMember.personRole')" prop="personRole"> | 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 | </el-select> | 11 | </el-select> |
| 24 | </el-form-item> | 12 | </el-form-item> |
| 25 | - | 13 | + |
| 26 | <el-form-item :label="$t('editOwnerMember.name')" prop="name"> | 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 | </el-form-item> | 17 | </el-form-item> |
| 33 | - | 18 | + |
| 34 | <el-form-item :label="$t('editOwnerMember.link')" prop="link"> | 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 | </el-form-item> | 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 | </el-select> | 28 | </el-select> |
| 60 | </el-form-item> | 29 | </el-form-item> |
| 61 | - | 30 | + |
| 62 | <el-form-item :label="$t('editOwnerMember.address')"> | 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 | </el-form-item> | 34 | </el-form-item> |
| 69 | </el-col> | 35 | </el-col> |
| 70 | - | 36 | + |
| 71 | <el-col :span="12" class="text-center"> | 37 | <el-col :span="12" class="text-center"> |
| 72 | <div class="avatar-uploader"> | 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 | </div> | 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 | {{ $t('editOwnerMember.uploadPhoto') }} | 44 | {{ $t('editOwnerMember.uploadPhoto') }} |
| 93 | </el-button> | 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 | </el-col> | 48 | </el-col> |
| 102 | </el-row> | 49 | </el-row> |
| 103 | - | 50 | + |
| 104 | <el-row :gutter="20"> | 51 | <el-row :gutter="20"> |
| 105 | <el-col :span="12"> | 52 | <el-col :span="12"> |
| 106 | <el-form-item :label="$t('editOwnerMember.concactLink')"> | 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 | </el-form-item> | 56 | </el-form-item> |
| 113 | </el-col> | 57 | </el-col> |
| 114 | - | 58 | + |
| 115 | <el-col :span="12"> | 59 | <el-col :span="12"> |
| 116 | <el-form-item :label="$t('editOwnerMember.idCard')"> | 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 | </el-form-item> | 63 | </el-form-item> |
| 123 | - | 64 | + |
| 124 | <el-form-item :label="$t('editOwnerMember.remark')"> | 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 | </el-form-item> | 68 | </el-form-item> |
| 131 | </el-col> | 69 | </el-col> |
| 132 | </el-row> | 70 | </el-row> |
| 133 | - | ||
| 134 | - <template v-for="(item,index) in editOwnerMemberInfo.attrs"> | 71 | + |
| 72 | + <template v-for="(item, index) in editOwnerMemberInfo.attrs"> | ||
| 135 | <el-row :gutter="20" v-if="index % 2 === 0" :key="index"> | 73 | <el-row :gutter="20" v-if="index % 2 === 0" :key="index"> |
| 136 | <el-col :span="12"> | 74 | <el-col :span="12"> |
| 137 | <el-form-item :label="item.specName" v-if="item.specType === '2233'"> | 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 | </el-form-item> | 77 | </el-form-item> |
| 144 | - | 78 | + |
| 145 | <el-form-item :label="item.specName" v-if="item.specType === '3344'"> | 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 | </el-select> | 83 | </el-select> |
| 158 | </el-form-item> | 84 | </el-form-item> |
| 159 | </el-col> | 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 | </el-form-item> | 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 | </el-select> | 100 | </el-select> |
| 189 | </el-form-item> | 101 | </el-form-item> |
| 190 | </el-col> | 102 | </el-col> |
| 191 | </el-row> | 103 | </el-row> |
| 192 | </template> | 104 | </template> |
| 193 | </el-form> | 105 | </el-form> |
| 194 | - | 106 | + |
| 195 | <div slot="footer" class="dialog-footer"> | 107 | <div slot="footer" class="dialog-footer"> |
| 196 | <el-button @click="_closeEditOwnerMemberModal">{{ $t('common.cancel') }}</el-button> | 108 | <el-button @click="_closeEditOwnerMemberModal">{{ $t('common.cancel') }}</el-button> |
| 197 | <el-button type="primary" @click="editOwnerMemberMethod">{{ $t('common.save') }}</el-button> | 109 | <el-button type="primary" @click="editOwnerMemberMethod">{{ $t('common.save') }}</el-button> |
| @@ -201,7 +113,10 @@ | @@ -201,7 +113,10 @@ | ||
| 201 | 113 | ||
| 202 | <script> | 114 | <script> |
| 203 | import { getCommunityId } from '@/api/community/communityApi' | 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 | import { uploadFile } from '@/api/staff/addStaffApi' | 120 | import { uploadFile } from '@/api/staff/addStaffApi' |
| 206 | 121 | ||
| 207 | export default { | 122 | export default { |
| @@ -267,9 +182,9 @@ export default { | @@ -267,9 +182,9 @@ export default { | ||
| 267 | ownerPhotoUrl: member.faceUrl, | 182 | ownerPhotoUrl: member.faceUrl, |
| 268 | attrs: [] | 183 | attrs: [] |
| 269 | } | 184 | } |
| 270 | - | 185 | + |
| 271 | this._loadEditOwnerMemberAttrSpec().then(() => { | 186 | this._loadEditOwnerMemberAttrSpec().then(() => { |
| 272 | - if (Object.prototype.hasOwnProperty.call(member,'ownerAttrDtos')) { | 187 | + if (Object.prototype.hasOwnProperty.call(member, 'ownerAttrDtos')) { |
| 273 | const ownerAttrDtos = member.ownerAttrDtos | 188 | const ownerAttrDtos = member.ownerAttrDtos |
| 274 | this.editOwnerMemberInfo.attrs.forEach(attrItem => { | 189 | this.editOwnerMemberInfo.attrs.forEach(attrItem => { |
| 275 | ownerAttrDtos.forEach(item => { | 190 | ownerAttrDtos.forEach(item => { |
| @@ -280,14 +195,14 @@ export default { | @@ -280,14 +195,14 @@ export default { | ||
| 280 | }) | 195 | }) |
| 281 | }) | 196 | }) |
| 282 | } | 197 | } |
| 283 | - | 198 | + |
| 284 | this.dialogVisible = true | 199 | this.dialogVisible = true |
| 285 | this.$nextTick(() => { | 200 | this.$nextTick(() => { |
| 286 | this.$refs.form.clearValidate() | 201 | this.$refs.form.clearValidate() |
| 287 | }) | 202 | }) |
| 288 | }) | 203 | }) |
| 289 | }, | 204 | }, |
| 290 | - | 205 | + |
| 291 | editOwnerMemberMethod() { | 206 | editOwnerMemberMethod() { |
| 292 | this.$refs.form.validate(valid => { | 207 | this.$refs.form.validate(valid => { |
| 293 | if (valid) { | 208 | if (valid) { |
| @@ -295,15 +210,15 @@ export default { | @@ -295,15 +210,15 @@ export default { | ||
| 295 | ...this.editOwnerMemberInfo, | 210 | ...this.editOwnerMemberInfo, |
| 296 | communityId: getCommunityId() | 211 | communityId: getCommunityId() |
| 297 | } | 212 | } |
| 298 | - | ||
| 299 | - this.$http.post('/owner.editOwnerMember', params) | 213 | + |
| 214 | + editOwnerMember(params) | ||
| 300 | .then(res => { | 215 | .then(res => { |
| 301 | - if (res.data.code === 0) { | 216 | + if (res.code === 0) { |
| 302 | this.$message.success(this.$t('common.saveSuccess')) | 217 | this.$message.success(this.$t('common.saveSuccess')) |
| 303 | this.dialogVisible = false | 218 | this.dialogVisible = false |
| 304 | this.$emit('save-success') | 219 | this.$emit('save-success') |
| 305 | } else { | 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 | .catch(err => { | 224 | .catch(err => { |
| @@ -313,12 +228,12 @@ export default { | @@ -313,12 +228,12 @@ export default { | ||
| 313 | } | 228 | } |
| 314 | }) | 229 | }) |
| 315 | }, | 230 | }, |
| 316 | - | 231 | + |
| 317 | _loadEditOwnerMemberAttrSpec() { | 232 | _loadEditOwnerMemberAttrSpec() { |
| 318 | return new Promise(resolve => { | 233 | return new Promise(resolve => { |
| 319 | this.editOwnerMemberInfo.attrs = [] | 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 | if (item.specShow === 'Y') { | 237 | if (item.specShow === 'Y') { |
| 323 | item.value = '' | 238 | item.value = '' |
| 324 | item.values = [] | 239 | item.values = [] |
| @@ -330,21 +245,21 @@ export default { | @@ -330,21 +245,21 @@ export default { | ||
| 330 | }) | 245 | }) |
| 331 | }) | 246 | }) |
| 332 | }, | 247 | }, |
| 333 | - | 248 | + |
| 334 | _loadEditMemberAttrValue(specCd, values) { | 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 | if (item.valueShow === 'Y') { | 252 | if (item.valueShow === 'Y') { |
| 338 | values.push(item) | 253 | values.push(item) |
| 339 | } | 254 | } |
| 340 | }) | 255 | }) |
| 341 | }) | 256 | }) |
| 342 | }, | 257 | }, |
| 343 | - | 258 | + |
| 344 | _uploadEditMemberPhoto() { | 259 | _uploadEditMemberPhoto() { |
| 345 | this.$refs.fileInput.click() | 260 | this.$refs.fileInput.click() |
| 346 | }, | 261 | }, |
| 347 | - | 262 | + |
| 348 | _chooseEditMemberPhoto(event) { | 263 | _chooseEditMemberPhoto(event) { |
| 349 | const files = event.target.files | 264 | const files = event.target.files |
| 350 | if (files && files.length > 0) { | 265 | if (files && files.length > 0) { |
| @@ -353,16 +268,16 @@ export default { | @@ -353,16 +268,16 @@ export default { | ||
| 353 | this.$message.error(this.$t('editOwnerMember.validate.photoSize')) | 268 | this.$message.error(this.$t('editOwnerMember.validate.photoSize')) |
| 354 | return | 269 | return |
| 355 | } | 270 | } |
| 356 | - | 271 | + |
| 357 | this._doUploadImageEditOwnerMember(file) | 272 | this._doUploadImageEditOwnerMember(file) |
| 358 | } | 273 | } |
| 359 | }, | 274 | }, |
| 360 | - | 275 | + |
| 361 | _doUploadImageEditOwnerMember(file) { | 276 | _doUploadImageEditOwnerMember(file) { |
| 362 | const formData = new FormData() | 277 | const formData = new FormData() |
| 363 | formData.append('uploadFile', file) | 278 | formData.append('uploadFile', file) |
| 364 | formData.append('communityId', getCommunityId()) | 279 | formData.append('communityId', getCommunityId()) |
| 365 | - | 280 | + |
| 366 | uploadFile(formData).then(res => { | 281 | uploadFile(formData).then(res => { |
| 367 | this.editOwnerMemberInfo.ownerPhoto = res.fileId | 282 | this.editOwnerMemberInfo.ownerPhoto = res.fileId |
| 368 | this.editOwnerMemberInfo.ownerPhotoUrl = res.url | 283 | this.editOwnerMemberInfo.ownerPhotoUrl = res.url |
| @@ -371,12 +286,12 @@ export default { | @@ -371,12 +286,12 @@ export default { | ||
| 371 | this.$message.error(this.$t('editOwnerMember.uploadFailed')) | 286 | this.$message.error(this.$t('editOwnerMember.uploadFailed')) |
| 372 | }) | 287 | }) |
| 373 | }, | 288 | }, |
| 374 | - | 289 | + |
| 375 | _closeEditOwnerMemberModal() { | 290 | _closeEditOwnerMemberModal() { |
| 376 | this.dialogVisible = false | 291 | this.dialogVisible = false |
| 377 | this.$refs.form.resetFields() | 292 | this.$refs.form.resetFields() |
| 378 | }, | 293 | }, |
| 379 | - | 294 | + |
| 380 | handleImageError(e) { | 295 | handleImageError(e) { |
| 381 | e.target.src = '/img/noPhoto.jpg' | 296 | e.target.src = '/img/noPhoto.jpg' |
| 382 | } | 297 | } |
| @@ -388,18 +303,22 @@ export default { | @@ -388,18 +303,22 @@ export default { | ||
| 388 | .w100 { | 303 | .w100 { |
| 389 | width: 100%; | 304 | width: 100%; |
| 390 | } | 305 | } |
| 306 | + | ||
| 391 | .mt10 { | 307 | .mt10 { |
| 392 | margin-top: 10px; | 308 | margin-top: 10px; |
| 393 | } | 309 | } |
| 310 | + | ||
| 394 | .text-center { | 311 | .text-center { |
| 395 | text-align: center; | 312 | text-align: center; |
| 396 | } | 313 | } |
| 314 | + | ||
| 397 | .avatar-uploader { | 315 | .avatar-uploader { |
| 398 | width: 100%; | 316 | width: 100%; |
| 399 | display: flex; | 317 | display: flex; |
| 400 | justify-content: center; | 318 | justify-content: center; |
| 401 | margin-bottom: 10px; | 319 | margin-bottom: 10px; |
| 402 | } | 320 | } |
| 321 | + | ||
| 403 | .avatar { | 322 | .avatar { |
| 404 | width: 150px; | 323 | width: 150px; |
| 405 | height: 150px; | 324 | height: 150px; |
src/components/owner/ownerDetailMember.vue
| 1 | <template> | 1 | <template> |
| 2 | <div class="margin-top"> | 2 | <div class="margin-top"> |
| 3 | - <el-row class="margin-top-lg"> | 3 | + <el-row class=""> |
| 4 | <el-col :span="4" class="padding-right-xs padding-left-xl"> | 4 | <el-col :span="4" class="padding-right-xs padding-left-xl"> |
| 5 | <el-input v-model="ownerDetailMemberInfo.name" type="text" | 5 | <el-input v-model="ownerDetailMemberInfo.name" type="text" |
| 6 | :placeholder="$t('ownerDetailMember.placeholder.name')" class="form-control"></el-input> | 6 | :placeholder="$t('ownerDetailMember.placeholder.name')" class="form-control"></el-input> |
| 7 | </el-col> | 7 | </el-col> |
| 8 | <el-col :span="4" class="padding-right-xs padding-right-xl"> | 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 | <i class="el-icon-search"></i>{{ $t('common.query') }} | 10 | <i class="el-icon-search"></i>{{ $t('common.query') }} |
| 12 | </el-button> | 11 | </el-button> |
| 13 | </el-col> | 12 | </el-col> |
| 14 | <el-col :span="16" class="text-right"> | 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 | <i class="el-icon-plus"></i>{{ $t('common.add') }} | 16 | <i class="el-icon-plus"></i>{{ $t('common.add') }} |
| 18 | </el-button> | 17 | </el-button> |
| 19 | </el-col> | 18 | </el-col> |
| @@ -24,14 +23,13 @@ | @@ -24,14 +23,13 @@ | ||
| 24 | <template slot-scope="scope"> | 23 | <template slot-scope="scope"> |
| 25 | <img style="width: 60px; height: 60px;" class="border-radius" v-if="scope.row.faceUrl" | 24 | <img style="width: 60px; height: 60px;" class="border-radius" v-if="scope.row.faceUrl" |
| 26 | :src="scope.row.faceUrl" @click="_viewOwnerFace(scope.row.faceUrl)" /> | 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 | </template> | 27 | </template> |
| 30 | </el-table-column> | 28 | </el-table-column> |
| 31 | <el-table-column prop="name" :label="$t('ownerDetailMember.name')" align="center"></el-table-column> | 29 | <el-table-column prop="name" :label="$t('ownerDetailMember.name')" align="center"></el-table-column> |
| 32 | <el-table-column prop="sex" :label="$t('ownerDetailMember.gender')" align="center"> | 30 | <el-table-column prop="sex" :label="$t('ownerDetailMember.gender')" align="center"> |
| 33 | <template slot-scope="scope"> | 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 | </template> | 33 | </template> |
| 36 | </el-table-column> | 34 | </el-table-column> |
| 37 | <el-table-column prop="personRoleName" :label="$t('ownerDetailMember.role')" align="center"></el-table-column> | 35 | <el-table-column prop="personRoleName" :label="$t('ownerDetailMember.role')" align="center"></el-table-column> |
| @@ -41,8 +39,7 @@ | @@ -41,8 +39,7 @@ | ||
| 41 | <el-table-column :label="$t('common.operation')" align="center" width="180"> | 39 | <el-table-column :label="$t('common.operation')" align="center" width="180"> |
| 42 | <template slot-scope="scope"> | 40 | <template slot-scope="scope"> |
| 43 | <el-button-group> | 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 | {{ $t('common.edit') }} | 43 | {{ $t('common.edit') }} |
| 47 | </el-button> | 44 | </el-button> |
| 48 | <el-button size="mini" @click="_openDeleteOwnerModel(scope.row)" | 45 | <el-button size="mini" @click="_openDeleteOwnerModel(scope.row)" |
| @@ -53,18 +50,14 @@ | @@ -53,18 +50,14 @@ | ||
| 53 | </template> | 50 | </template> |
| 54 | </el-table-column> | 51 | </el-table-column> |
| 55 | </el-table> | 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 | </el-pagination> | 55 | </el-pagination> |
| 63 | </div> | 56 | </div> |
| 64 | 57 | ||
| 65 | <add-owner-member ref="addOwnerMember" @refresh="_loadOwnerDetailMemberData"></add-owner-member> | 58 | <add-owner-member ref="addOwnerMember" @refresh="_loadOwnerDetailMemberData"></add-owner-member> |
| 66 | <edit-owner-member ref="editOwnerMember" @refresh="_loadOwnerDetailMemberData"></edit-owner-member> | 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 | </div> | 61 | </div> |
| 69 | </template> | 62 | </template> |
| 70 | 63 | ||
| @@ -123,6 +116,7 @@ export default { | @@ -123,6 +116,7 @@ export default { | ||
| 123 | this._loadOwnerDetailMemberData(1, this.pagination.pageSize) | 116 | this._loadOwnerDetailMemberData(1, this.pagination.pageSize) |
| 124 | }, | 117 | }, |
| 125 | openAddMemberModel() { | 118 | openAddMemberModel() { |
| 119 | + | ||
| 126 | this.$refs.addOwnerMember.open({ ownerId: this.ownerDetailMemberInfo.ownerId }) | 120 | this.$refs.addOwnerMember.open({ ownerId: this.ownerDetailMemberInfo.ownerId }) |
| 127 | }, | 121 | }, |
| 128 | _openDeleteOwnerModel(member) { | 122 | _openDeleteOwnerModel(member) { |
| @@ -153,18 +147,23 @@ export default { | @@ -153,18 +147,23 @@ export default { | ||
| 153 | .margin-top { | 147 | .margin-top { |
| 154 | margin-top: 20px; | 148 | margin-top: 20px; |
| 155 | } | 149 | } |
| 150 | + | ||
| 156 | .margin-top-lg { | 151 | .margin-top-lg { |
| 157 | margin-top: 30px; | 152 | margin-top: 30px; |
| 158 | } | 153 | } |
| 154 | + | ||
| 159 | .padding-right-xs { | 155 | .padding-right-xs { |
| 160 | padding-right: 5px; | 156 | padding-right: 5px; |
| 161 | } | 157 | } |
| 158 | + | ||
| 162 | .padding-left-xl { | 159 | .padding-left-xl { |
| 163 | padding-left: 20px; | 160 | padding-left: 20px; |
| 164 | } | 161 | } |
| 162 | + | ||
| 165 | .border-radius { | 163 | .border-radius { |
| 166 | border-radius: 4px; | 164 | border-radius: 4px; |
| 167 | } | 165 | } |
| 166 | + | ||
| 168 | .text-right { | 167 | .text-right { |
| 169 | text-align: right; | 168 | text-align: right; |
| 170 | } | 169 | } |
src/components/room/addShops.vue
| 1 | <template> | 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 | <el-form ref="form" :model="formData" :rules="rules" label-width="120px"> | 3 | <el-form ref="form" :model="formData" :rules="rules" label-width="120px"> |
| 4 | <el-form-item :label="$t('shops.shopNumber')" prop="roomNum"> | 4 | <el-form-item :label="$t('shops.shopNumber')" prop="roomNum"> |
| 5 | <el-input v-model="formData.roomNum" :placeholder="$t('shops.shopNumberPlaceholder')"></el-input> | 5 | <el-input v-model="formData.roomNum" :placeholder="$t('shops.shopNumberPlaceholder')"></el-input> |
| @@ -8,8 +8,7 @@ | @@ -8,8 +8,7 @@ | ||
| 8 | <el-input v-model="formData.layer" :placeholder="$t('shops.floorRequired')"></el-input> | 8 | <el-input v-model="formData.layer" :placeholder="$t('shops.floorRequired')"></el-input> |
| 9 | </el-form-item> | 9 | </el-form-item> |
| 10 | <el-form-item :label="$t('shops.building')" prop="floorId"> | 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 | <el-option v-for="item in floors" :key="item.floorId" :label="item.floorNum + $t('shops.building')" | 12 | <el-option v-for="item in floors" :key="item.floorId" :label="item.floorNum + $t('shops.building')" |
| 14 | :value="item.floorId"></el-option> | 13 | :value="item.floorId"></el-option> |
| 15 | </el-select> | 14 | </el-select> |
| @@ -42,7 +41,7 @@ | @@ -42,7 +41,7 @@ | ||
| 42 | <script> | 41 | <script> |
| 43 | import { saveShops } from '@/api/room/shopsApi' | 42 | import { saveShops } from '@/api/room/shopsApi' |
| 44 | import { getFloors } from '@/api/room/roomApi' | 43 | import { getFloors } from '@/api/room/roomApi' |
| 45 | -import {getCommunityId} from '@/api/community/communityApi' | 44 | +import { getCommunityId } from '@/api/community/communityApi' |
| 46 | 45 | ||
| 47 | export default { | 46 | export default { |
| 48 | name: 'AddShops', | 47 | name: 'AddShops', |
| @@ -136,13 +135,13 @@ export default { | @@ -136,13 +135,13 @@ export default { | ||
| 136 | this.$message.error(this.$t('common.saveFailed')) | 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,29 +25,32 @@ | ||
| 25 | </el-col> | 25 | </el-col> |
| 26 | <el-col :span="12"> | 26 | <el-col :span="12"> |
| 27 | <el-form-item :label="$t('room.editRoom.roomType')" required> | 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 | <el-option v-for="item in roomSubTypes" :key="item.statusCd" :label="item.name" :value="item.statusCd" /> | 30 | <el-option v-for="item in roomSubTypes" :key="item.statusCd" :label="item.name" :value="item.statusCd" /> |
| 30 | </el-select> | 31 | </el-select> |
| 31 | </el-form-item> | 32 | </el-form-item> |
| 32 | </el-col> | 33 | </el-col> |
| 33 | </el-row> | 34 | </el-row> |
| 34 | 35 | ||
| 35 | - <el-row> | 36 | + <!-- <el-row> |
| 36 | <el-col :span="12"> | 37 | <el-col :span="12"> |
| 37 | <el-form-item :label="$t('room.editRoom.apartment1')" required> | 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 | <el-option v-for="item in apartment1Options" :key="item.value" :label="item.label" :value="item.value" /> | 41 | <el-option v-for="item in apartment1Options" :key="item.value" :label="item.label" :value="item.value" /> |
| 40 | </el-select> | 42 | </el-select> |
| 41 | </el-form-item> | 43 | </el-form-item> |
| 42 | </el-col> | 44 | </el-col> |
| 43 | <el-col :span="12"> | 45 | <el-col :span="12"> |
| 44 | <el-form-item :label="$t('room.editRoom.apartment2')" required> | 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 | <el-option v-for="item in apartment2Options" :key="item.value" :label="item.label" :value="item.value" /> | 49 | <el-option v-for="item in apartment2Options" :key="item.value" :label="item.label" :value="item.value" /> |
| 47 | </el-select> | 50 | </el-select> |
| 48 | </el-form-item> | 51 | </el-form-item> |
| 49 | </el-col> | 52 | </el-col> |
| 50 | - </el-row> | 53 | + </el-row> --> |
| 51 | 54 | ||
| 52 | <el-row> | 55 | <el-row> |
| 53 | <el-col :span="12"> | 56 | <el-col :span="12"> |
| @@ -79,15 +82,16 @@ | @@ -79,15 +82,16 @@ | ||
| 79 | <el-row v-if="form.state !== '2002'"> | 82 | <el-row v-if="form.state !== '2002'"> |
| 80 | <el-col :span="12"> | 83 | <el-col :span="12"> |
| 81 | <el-form-item :label="$t('room.editRoom.roomState')" required> | 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 | <el-option v-for="item in roomStateOptions" :key="item.value" :label="item.label" :value="item.value" /> | 87 | <el-option v-for="item in roomStateOptions" :key="item.value" :label="item.label" :value="item.value" /> |
| 84 | </el-select> | 88 | </el-select> |
| 85 | </el-form-item> | 89 | </el-form-item> |
| 86 | </el-col> | 90 | </el-col> |
| 87 | <el-col :span="12"> | 91 | <el-col :span="12"> |
| 88 | <el-form-item :label="$t('room.editRoom.endTime')" required> | 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 | </el-form-item> | 95 | </el-form-item> |
| 92 | </el-col> | 96 | </el-col> |
| 93 | </el-row> | 97 | </el-row> |
| @@ -102,7 +106,8 @@ | @@ -102,7 +106,8 @@ | ||
| 102 | </div> | 106 | </div> |
| 103 | 107 | ||
| 104 | <el-form-item :label="$t('room.editRoom.remark')"> | 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 | </el-form-item> | 111 | </el-form-item> |
| 107 | </el-form> | 112 | </el-form> |
| 108 | 113 |
src/components/room/searchRoom.vue
| @@ -2,11 +2,11 @@ | @@ -2,11 +2,11 @@ | ||
| 2 | <el-dialog :title="$t('searchRoom.title')" :visible.sync="dialogVisible" width="70%" @close="handleClose"> | 2 | <el-dialog :title="$t('searchRoom.title')" :visible.sync="dialogVisible" width="70%" @close="handleClose"> |
| 3 | <div class="ibox"> | 3 | <div class="ibox"> |
| 4 | <el-row v-if="showSearchCondition"> | 4 | <el-row v-if="showSearchCondition"> |
| 5 | - <el-col :span="8"> | 5 | + <el-col :span="4"> |
| 6 | <el-input :placeholder="$t('searchRoom.floorNumPlaceholder')" :readonly="floorNumInputReadonly" | 6 | <el-input :placeholder="$t('searchRoom.floorNumPlaceholder')" :readonly="floorNumInputReadonly" |
| 7 | v-model.trim="currentFloorNum" clearable /> | 7 | v-model.trim="currentFloorNum" clearable /> |
| 8 | </el-col> | 8 | </el-col> |
| 9 | - <el-col :span="8" :offset="1"> | 9 | + <el-col :span="4" :offset="1"> |
| 10 | <el-input :placeholder="$t('searchRoom.roomNumPlaceholder')" v-model.trim="currentRoomNum" clearable /> | 10 | <el-input :placeholder="$t('searchRoom.roomNumPlaceholder')" v-model.trim="currentRoomNum" clearable /> |
| 11 | </el-col> | 11 | </el-col> |
| 12 | <el-col :span="6" :offset="1"> | 12 | <el-col :span="6" :offset="1"> |
| @@ -58,7 +58,7 @@ | @@ -58,7 +58,7 @@ | ||
| 58 | </div> | 58 | </div> |
| 59 | </el-dialog> | 59 | </el-dialog> |
| 60 | </template> | 60 | </template> |
| 61 | - | 61 | + |
| 62 | <script> | 62 | <script> |
| 63 | import { queryRooms, queryRoomsWithSell, queryRoomsWithOutSell } from '@/api/room/roomApi' | 63 | import { queryRooms, queryRoomsWithSell, queryRoomsWithOutSell } from '@/api/room/roomApi' |
| 64 | import { getCommunityId } from '@/api/community/communityApi' | 64 | import { getCommunityId } from '@/api/community/communityApi' |
| @@ -176,7 +176,7 @@ export default { | @@ -176,7 +176,7 @@ export default { | ||
| 176 | } | 176 | } |
| 177 | } | 177 | } |
| 178 | </script> | 178 | </script> |
| 179 | - | 179 | + |
| 180 | <style scoped> | 180 | <style scoped> |
| 181 | .el-input { | 181 | .el-input { |
| 182 | width: 100%; | 182 | width: 100%; |
src/components/store/AddPropertyCompany.vue
| 1 | <template> | 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 | <el-form-item :label="$t('propertyCompanyManage.name')" prop="name" required> | 4 | <el-form-item :label="$t('propertyCompanyManage.name')" prop="name" required> |
| 5 | <el-input v-model="formData.name" /> | 5 | <el-input v-model="formData.name" /> |
| 6 | </el-form-item> | 6 | </el-form-item> |
| @@ -89,7 +89,7 @@ export default { | @@ -89,7 +89,7 @@ export default { | ||
| 89 | }, | 89 | }, |
| 90 | async fetchCommunities() { | 90 | async fetchCommunities() { |
| 91 | try { | 91 | try { |
| 92 | - const data = await listNoEnterCommunity({ | 92 | + const data = await listNoEnterCommunity({ |
| 93 | communityName: '' | 93 | communityName: '' |
| 94 | }) | 94 | }) |
| 95 | this.communities = data | 95 | this.communities = data |
src/components/store/EditPropertyCompany.vue
| 1 | <template> | 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 | <el-form ref="form" :model="formData" label-width="120px"> | 3 | <el-form ref="form" :model="formData" label-width="120px"> |
| 9 | <el-form-item :label="$t('propertyCompanyManage.name')" prop="name" required> | 4 | <el-form-item :label="$t('propertyCompanyManage.name')" prop="name" required> |
| 10 | <el-input v-model="formData.name" /> | 5 | <el-input v-model="formData.name" /> |
| @@ -19,12 +14,7 @@ | @@ -19,12 +14,7 @@ | ||
| 19 | <el-input v-model="formData.corporation" /> | 14 | <el-input v-model="formData.corporation" /> |
| 20 | </el-form-item> | 15 | </el-form-item> |
| 21 | <el-form-item :label="$t('propertyCompanyManage.foundingTime')" prop="foundingTime" required> | 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 | </el-form-item> | 18 | </el-form-item> |
| 29 | <el-form-item :label="$t('propertyCompanyManage.landmark')" prop="nearbyLandmarks" required> | 19 | <el-form-item :label="$t('propertyCompanyManage.landmark')" prop="nearbyLandmarks" required> |
| 30 | <el-input v-model="formData.nearbyLandmarks" /> | 20 | <el-input v-model="formData.nearbyLandmarks" /> |
src/i18n/commonLang.js
| @@ -55,6 +55,8 @@ export const messages = { | @@ -55,6 +55,8 @@ export const messages = { | ||
| 55 | examine:'Examine', | 55 | examine:'Examine', |
| 56 | audit:'Audit', | 56 | audit:'Audit', |
| 57 | choose:'Choose', | 57 | choose:'Choose', |
| 58 | + submitSuccess:'Submit successfully', | ||
| 59 | + saveSuccess:'successfully', | ||
| 58 | } | 60 | } |
| 59 | }, | 61 | }, |
| 60 | zh: { | 62 | zh: { |
| @@ -113,6 +115,8 @@ export const messages = { | @@ -113,6 +115,8 @@ export const messages = { | ||
| 113 | examine:'审核', | 115 | examine:'审核', |
| 114 | audit:'审核', | 116 | audit:'审核', |
| 115 | choose:'选择', | 117 | choose:'选择', |
| 118 | + submitSuccess:'提交成功', | ||
| 119 | + saveSuccess:'成功', | ||
| 116 | } | 120 | } |
| 117 | } | 121 | } |
| 118 | } | 122 | } |
| 119 | \ No newline at end of file | 123 | \ No newline at end of file |
src/views/contract/contractChangeDetailLang.js
| @@ -56,18 +56,6 @@ export const messages = { | @@ -56,18 +56,6 @@ export const messages = { | ||
| 56 | squareMeters: 'Square Meters', | 56 | squareMeters: 'Square Meters', |
| 57 | confirmDelete: 'Are you sure to delete this room?' | 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 | purchaseApprovers: { | 59 | purchaseApprovers: { |
| 72 | title: 'Approver Information', | 60 | title: 'Approver Information', |
| 73 | orgName: 'Organization', | 61 | orgName: 'Organization', |
| @@ -152,18 +140,6 @@ export const messages = { | @@ -152,18 +140,6 @@ export const messages = { | ||
| 152 | squareMeters: '平方米', | 140 | squareMeters: '平方米', |
| 153 | confirmDelete: '确定删除该房屋吗?' | 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 | purchaseApprovers: { | 143 | purchaseApprovers: { |
| 168 | title: '审批人信息', | 144 | title: '审批人信息', |
| 169 | orgName: '所属组织', | 145 | orgName: '所属组织', |
src/views/owner/ownerBindRoom.vue
| @@ -58,7 +58,7 @@ | @@ -58,7 +58,7 @@ | ||
| 58 | <search-room ref="searchRoomRef" :roomFlag="2" @chooseRoom="handleChooseRoom" /> | 58 | <search-room ref="searchRoomRef" :roomFlag="2" @chooseRoom="handleChooseRoom" /> |
| 59 | </div> | 59 | </div> |
| 60 | </template> | 60 | </template> |
| 61 | - | 61 | + |
| 62 | <script> | 62 | <script> |
| 63 | import { sellRoom } from '@/api/owner/roomBindOwnerApi' | 63 | import { sellRoom } from '@/api/owner/roomBindOwnerApi' |
| 64 | import { getCommunityId } from '@/api/community/communityApi' | 64 | import { getCommunityId } from '@/api/community/communityApi' |
| @@ -174,7 +174,7 @@ export default { | @@ -174,7 +174,7 @@ export default { | ||
| 174 | } | 174 | } |
| 175 | } | 175 | } |
| 176 | </script> | 176 | </script> |
| 177 | - | 177 | + |
| 178 | <style scoped> | 178 | <style scoped> |
| 179 | .room-bind-owner-container { | 179 | .room-bind-owner-container { |
| 180 | padding: 20px; | 180 | padding: 20px; |
src/views/owner/ownerDetail.vue
| @@ -117,7 +117,7 @@ | @@ -117,7 +117,7 @@ | ||
| 117 | </el-row> | 117 | </el-row> |
| 118 | </div> | 118 | </div> |
| 119 | 119 | ||
| 120 | - <divider/> | 120 | + <divider /> |
| 121 | 121 | ||
| 122 | <div class="margin-top-sm"> | 122 | <div class="margin-top-sm"> |
| 123 | <el-tabs v-model="ownerDetailInfo._currentTab" @tab-click="changeTab(ownerDetailInfo._currentTab)"> | 123 | <el-tabs v-model="ownerDetailInfo._currentTab" @tab-click="changeTab(ownerDetailInfo._currentTab)"> |
src/views/owner/ownerDetailLang.js
| @@ -223,6 +223,80 @@ export const messages = { | @@ -223,6 +223,80 @@ export const messages = { | ||
| 223 | unused: 'Unused', | 223 | unused: 'Unused', |
| 224 | used: 'Used', | 224 | used: 'Used', |
| 225 | effectiveTime: 'Effective Time' | 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 | zh: { | 302 | zh: { |
| @@ -449,6 +523,80 @@ export const messages = { | @@ -449,6 +523,80 @@ export const messages = { | ||
| 449 | unused: '未使用', | 523 | unused: '未使用', |
| 450 | used: '已使用', | 524 | used: '已使用', |
| 451 | effectiveTime: '生效时间' | 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 | \ No newline at end of file | 603 | \ No newline at end of file |
src/views/room/addRoomViewList.vue
| 1 | <template> | 1 | <template> |
| 2 | <div class="add-room-view-container"> | 2 | <div class="add-room-view-container"> |
| 3 | <el-card class="box-card"> | 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 | <div class="ibox-tools"> | 6 | <div class="ibox-tools"> |
| 7 | <el-button type="primary" size="small" @click="_goBack"> | 7 | <el-button type="primary" size="small" @click="_goBack"> |
| 8 | <i class="el-icon-close"></i>{{ $t('common.back') }} | 8 | <i class="el-icon-close"></i>{{ $t('common.back') }} |
src/views/room/shopsList.vue
| @@ -129,7 +129,7 @@ | @@ -129,7 +129,7 @@ | ||
| 129 | <add-shops ref="addDialog" @success="loadData"></add-shops> | 129 | <add-shops ref="addDialog" @success="loadData"></add-shops> |
| 130 | <bind-owner-shops ref="bindDialog" @success="loadData"></bind-owner-shops> | 130 | <bind-owner-shops ref="bindDialog" @success="loadData"></bind-owner-shops> |
| 131 | <edit-shops ref="editDialog" @success="loadData"></edit-shops> | 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 | </div> | 133 | </div> |
| 134 | </template> | 134 | </template> |
| 135 | 135 |
src/views/store/propertyCompanyManageList.vue
| @@ -7,25 +7,13 @@ | @@ -7,25 +7,13 @@ | ||
| 7 | </div> | 7 | </div> |
| 8 | <el-row :gutter="20"> | 8 | <el-row :gutter="20"> |
| 9 | <el-col :span="6"> | 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 | </el-col> | 11 | </el-col> |
| 16 | <el-col :span="6"> | 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 | </el-col> | 14 | </el-col> |
| 23 | <el-col :span="6"> | 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 | </el-col> | 17 | </el-col> |
| 30 | <el-col :span="6"> | 18 | <el-col :span="6"> |
| 31 | <el-button type="primary" @click="handleSearch"> | 19 | <el-button type="primary" @click="handleSearch"> |
| @@ -63,7 +51,7 @@ | @@ -63,7 +51,7 @@ | ||
| 63 | <el-button size="mini" @click="handleEdit(scope.row)"> | 51 | <el-button size="mini" @click="handleEdit(scope.row)"> |
| 64 | {{ $t('propertyCompanyManage.edit') }} | 52 | {{ $t('propertyCompanyManage.edit') }} |
| 65 | </el-button> | 53 | </el-button> |
| 66 | - <el-button size="mini" @click="handleDelete(scope.row)"> | 54 | + <el-button size="mini" @click="handleDelete(scope.row)"> |
| 67 | {{ $t('propertyCompanyManage.delete') }} | 55 | {{ $t('propertyCompanyManage.delete') }} |
| 68 | </el-button> | 56 | </el-button> |
| 69 | <el-button size="mini" @click="handleManageCommunity(scope.row)"> | 57 | <el-button size="mini" @click="handleManageCommunity(scope.row)"> |
| @@ -74,18 +62,10 @@ | @@ -74,18 +62,10 @@ | ||
| 74 | <el-button size="mini" @click="handleAdminLogin(scope.row)"> | 62 | <el-button size="mini" @click="handleAdminLogin(scope.row)"> |
| 75 | {{ $t('propertyCompanyManage.login') }} | 63 | {{ $t('propertyCompanyManage.login') }} |
| 76 | </el-button> | 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 | {{ $t('propertyCompanyManage.restrictLogin') }} | 66 | {{ $t('propertyCompanyManage.restrictLogin') }} |
| 83 | </el-button> | 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 | {{ $t('propertyCompanyManage.restoreLogin') }} | 69 | {{ $t('propertyCompanyManage.restoreLogin') }} |
| 90 | </el-button> | 70 | </el-button> |
| 91 | <el-button size="mini" @click="handleResetPwd(scope.row)"> | 71 | <el-button size="mini" @click="handleResetPwd(scope.row)"> |
| @@ -101,15 +81,9 @@ | @@ -101,15 +81,9 @@ | ||
| 101 | <div class="tip">{{ $t('propertyCompanyManage.tip') }}</div> | 81 | <div class="tip">{{ $t('propertyCompanyManage.tip') }}</div> |
| 102 | </el-col> | 82 | </el-col> |
| 103 | <el-col :span="12"> | 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 | </el-col> | 87 | </el-col> |
| 114 | </el-row> | 88 | </el-row> |
| 115 | </el-card> | 89 | </el-card> |