Commit 84ba01559f03e9337fe232d071fbf64cfbc9e868

Authored by wuxw
1 parent 6db3ce8f

家庭成员测试

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>