6ec243d6
wuxw
v1.9 点击提交后,成功提示没有...
|
1
|
<template>
|
b96589a4
wuxw
v1.9 业主相关bug
|
2
|
<el-dialog :title="$t('addOwnerMember.title')" :visible.sync="dialogVisible" width="60%"
|
84ba0155
wuxw
家庭成员测试
|
3
|
@close="_closeSaveOwnerModal">
|
c85e0853
wuxw
业主详情开发完成
|
4
5
6
7
|
<el-form :model="addOwnerMemberInfo" :rules="rules" ref="form" label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item :label="$t('addOwnerMember.personRole')" prop="personRole">
|
84ba0155
wuxw
家庭成员测试
|
8
9
10
|
<el-select v-model="addOwnerMemberInfo.personRole"
:placeholder="$t('addOwnerMember.placeholder.personRole')" class="w100">
<el-option v-for="item in roleOptions" :key="item.value" :label="item.label" :value="item.value" />
|
c85e0853
wuxw
业主详情开发完成
|
11
12
|
</el-select>
</el-form-item>
|
84ba0155
wuxw
家庭成员测试
|
13
|
|
c85e0853
wuxw
业主详情开发完成
|
14
|
<el-form-item :label="$t('addOwnerMember.name')" prop="name">
|
84ba0155
wuxw
家庭成员测试
|
15
16
|
<el-input v-model.trim="addOwnerMemberInfo.name" :placeholder="$t('addOwnerMember.placeholder.name')"
clearable />
|
c85e0853
wuxw
业主详情开发完成
|
17
|
</el-form-item>
|
84ba0155
wuxw
家庭成员测试
|
18
|
|
c85e0853
wuxw
业主详情开发完成
|
19
|
<el-form-item :label="$t('addOwnerMember.link')" prop="link">
|
84ba0155
wuxw
家庭成员测试
|
20
21
|
<el-input v-model.trim="addOwnerMemberInfo.link" :placeholder="$t('addOwnerMember.placeholder.link')"
clearable />
|
c85e0853
wuxw
业主详情开发完成
|
22
|
</el-form-item>
|
84ba0155
wuxw
家庭成员测试
|
23
|
|
c85e0853
wuxw
业主详情开发完成
|
24
|
<el-form-item :label="$t('addOwnerMember.sex')" prop="sex">
|
84ba0155
wuxw
家庭成员测试
|
25
26
27
|
<el-select v-model="addOwnerMemberInfo.sex" :placeholder="$t('addOwnerMember.placeholder.sex')"
class="w100">
<el-option v-for="item in sexOptions" :key="item.value" :label="item.label" :value="item.value" />
|
c85e0853
wuxw
业主详情开发完成
|
28
29
30
|
</el-select>
</el-form-item>
</el-col>
|
84ba0155
wuxw
家庭成员测试
|
31
|
|
c85e0853
wuxw
业主详情开发完成
|
32
33
|
<el-col :span="12" class="text-center">
<div class="avatar-uploader">
|
84ba0155
wuxw
家庭成员测试
|
34
35
36
|
<img v-if="addOwnerMemberInfo.ownerPhotoUrl" :src="addOwnerMemberInfo.ownerPhotoUrl" class="avatar"
:alt="$t('addOwnerMember.photo')">
<img v-else src="/img/noPhoto.jpg" class="avatar" :alt="$t('addOwnerMember.photo')">
|
c85e0853
wuxw
业主详情开发完成
|
37
|
</div>
|
84ba0155
wuxw
家庭成员测试
|
38
|
<el-button type="primary" class="mt10" @click="_uploadPhoto">
|
c85e0853
wuxw
业主详情开发完成
|
39
40
|
{{ $t('addOwnerMember.uploadPhoto') }}
</el-button>
|
84ba0155
wuxw
家庭成员测试
|
41
|
<input type="file" ref="fileInput" accept=".jpg,.jpeg,.png" @change="_choosePhoto" style="display: none">
|
c85e0853
wuxw
业主详情开发完成
|
42
43
|
</el-col>
</el-row>
|
84ba0155
wuxw
家庭成员测试
|
44
|
|
c85e0853
wuxw
业主详情开发完成
|
45
46
47
|
<el-row :gutter="20">
<el-col :span="12">
<el-form-item :label="$t('addOwnerMember.concactLink')">
|
84ba0155
wuxw
家庭成员测试
|
48
49
|
<el-input v-model.trim="addOwnerMemberInfo.concactLink"
:placeholder="$t('addOwnerMember.placeholder.concactLink')" clearable />
|
c85e0853
wuxw
业主详情开发完成
|
50
|
</el-form-item>
|
84ba0155
wuxw
家庭成员测试
|
51
|
|
c85e0853
wuxw
业主详情开发完成
|
52
|
<el-form-item :label="$t('addOwnerMember.address')">
|
84ba0155
wuxw
家庭成员测试
|
53
54
|
<el-input v-model.trim="addOwnerMemberInfo.address" :placeholder="$t('addOwnerMember.placeholder.address')"
clearable />
|
c85e0853
wuxw
业主详情开发完成
|
55
56
|
</el-form-item>
</el-col>
|
84ba0155
wuxw
家庭成员测试
|
57
|
|
c85e0853
wuxw
业主详情开发完成
|
58
59
|
<el-col :span="12">
<el-form-item :label="$t('addOwnerMember.idCard')">
|
84ba0155
wuxw
家庭成员测试
|
60
61
|
<el-input v-model.trim="addOwnerMemberInfo.idCard" :placeholder="$t('addOwnerMember.placeholder.idCard')"
clearable />
|
c85e0853
wuxw
业主详情开发完成
|
62
|
</el-form-item>
|
84ba0155
wuxw
家庭成员测试
|
63
|
|
c85e0853
wuxw
业主详情开发完成
|
64
|
<el-form-item :label="$t('addOwnerMember.remark')">
|
84ba0155
wuxw
家庭成员测试
|
65
66
|
<el-input v-model.trim="addOwnerMemberInfo.remark" :placeholder="$t('addOwnerMember.placeholder.remark')"
clearable />
|
c85e0853
wuxw
业主详情开发完成
|
67
68
69
|
</el-form-item>
</el-col>
</el-row>
|
84ba0155
wuxw
家庭成员测试
|
70
71
|
<template v-for="(item, index) in addOwnerMemberInfo.attrs">
|
c85e0853
wuxw
业主详情开发完成
|
72
73
74
|
<el-row :gutter="20" v-if="index % 2 === 0" :key="index">
<el-col :span="12">
<el-form-item :label="item.specName" v-if="item.specType === '2233'">
|
84ba0155
wuxw
家庭成员测试
|
75
|
<el-input v-model="item.value" :placeholder="item.specHoldplace" clearable />
|
c85e0853
wuxw
业主详情开发完成
|
76
|
</el-form-item>
|
84ba0155
wuxw
家庭成员测试
|
77
|
|
c85e0853
wuxw
业主详情开发完成
|
78
|
<el-form-item :label="item.specName" v-if="item.specType === '3344'">
|
84ba0155
wuxw
家庭成员测试
|
79
80
81
|
<el-select v-model="item.value" :placeholder="item.specHoldplace" class="w100">
<el-option v-for="value in item.values" :key="value.value" :label="value.valueName"
:value="value.value" />
|
c85e0853
wuxw
业主详情开发完成
|
82
83
84
|
</el-select>
</el-form-item>
</el-col>
|
84ba0155
wuxw
家庭成员测试
|
85
86
87
88
89
90
|
<el-col :span="12" v-if="index < addOwnerMemberInfo.attrs.length - 1">
<el-form-item :label="addOwnerMemberInfo.attrs[index + 1].specName"
v-if="addOwnerMemberInfo.attrs[index + 1].specType === '2233'">
<el-input v-model="addOwnerMemberInfo.attrs[index + 1].value"
:placeholder="addOwnerMemberInfo.attrs[index + 1].specHoldplace" clearable />
|
c85e0853
wuxw
业主详情开发完成
|
91
|
</el-form-item>
|
84ba0155
wuxw
家庭成员测试
|
92
93
94
95
96
97
98
|
<el-form-item :label="addOwnerMemberInfo.attrs[index + 1].specName"
v-if="addOwnerMemberInfo.attrs[index + 1].specType === '3344'">
<el-select v-model="addOwnerMemberInfo.attrs[index + 1].value"
:placeholder="addOwnerMemberInfo.attrs[index + 1].specHoldplace" class="w100">
<el-option v-for="value in addOwnerMemberInfo.attrs[index + 1].values" :key="value.value"
:label="value.valueName" :value="value.value" />
|
c85e0853
wuxw
业主详情开发完成
|
99
100
101
102
103
104
|
</el-select>
</el-form-item>
</el-col>
</el-row>
</template>
</el-form>
|
84ba0155
wuxw
家庭成员测试
|
105
|
|
c85e0853
wuxw
业主详情开发完成
|
106
107
108
109
110
111
112
113
114
|
<div slot="footer" class="dialog-footer">
<el-button @click="_closeSaveOwnerModal">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="saveOwnerMemberInfo">{{ $t('common.save') }}</el-button>
</div>
</el-dialog>
</template>
<script>
import { getCommunityId } from '@/api/community/communityApi'
|
b96589a4
wuxw
v1.9 业主相关bug
|
115
|
import { getAttrValue } from '@/api/owner/ownerApi'
|
c85e0853
wuxw
业主详情开发完成
|
116
|
import { uploadFile } from '@/api/staff/addStaffApi'
|
84ba0155
wuxw
家庭成员测试
|
117
118
119
|
import { getAttrSpecList } from '@/api/dev/attrSpecApi'
import { saveOwnerMember } from '@/api/owner/addOwnerMemberApi'
|
c85e0853
wuxw
业主详情开发完成
|
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
export default {
name: 'AddOwnerMember',
data() {
return {
dialogVisible: false,
addOwnerMemberInfo: {
name: '',
link: '',
address: '',
sex: '',
remark: '',
ownerId: '',
ownerPhoto: '',
ownerPhotoUrl: '',
idCard: '',
personType: 'P',
personRole: '3',
concactLink: '',
attrs: []
},
roleOptions: [
{ value: '2', label: this.$t('addOwnerMember.role.tenant') },
{ value: '3', label: this.$t('addOwnerMember.role.family') },
{ value: '4', label: this.$t('addOwnerMember.role.staff') },
{ value: '99', label: this.$t('addOwnerMember.role.other') }
],
sexOptions: [
{ value: '0', label: this.$t('common.male') },
{ value: '1', label: this.$t('common.female') }
],
rules: {
personRole: [
{ required: true, message: this.$t('addOwnerMember.placeholder.personRole'), trigger: 'change' }
],
name: [
{ required: true, message: this.$t('addOwnerMember.placeholder.name'), trigger: 'blur' },
{ min: 2, max: 64, message: this.$t('addOwnerMember.validate.nameLength'), trigger: 'blur' }
],
link: [
{ required: true, message: this.$t('addOwnerMember.placeholder.link'), trigger: 'blur' },
{ pattern: /^1[3-9]\d{9}$/, message: this.$t('addOwnerMember.validate.phoneFormat'), trigger: 'blur' }
],
sex: [
{ required: true, message: this.$t('addOwnerMember.placeholder.sex'), trigger: 'change' }
],
idCard: [
{ pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: this.$t('addOwnerMember.validate.idCardFormat'), trigger: 'blur' }
],
remark: [
{ max: 200, message: this.$t('addOwnerMember.validate.remarkLength'), trigger: 'blur' }
]
}
}
},
methods: {
|
84ba0155
wuxw
家庭成员测试
|
176
177
|
open(params) {
this.addOwnerMemberInfo.ownerId = params.ownerId
|
c85e0853
wuxw
业主详情开发完成
|
178
179
180
181
182
183
|
this._loadOwnerAttrSpec()
this.dialogVisible = true
this.$nextTick(() => {
this.$refs.form.clearValidate()
})
},
|
84ba0155
wuxw
家庭成员测试
|
184
185
|
async saveOwnerMemberInfo() {
|
c85e0853
wuxw
业主详情开发完成
|
186
187
188
189
190
191
|
this.$refs.form.validate(valid => {
if (valid) {
const params = {
...this.addOwnerMemberInfo,
communityId: getCommunityId()
}
|
84ba0155
wuxw
家庭成员测试
|
192
|
saveOwnerMember(params)
|
c85e0853
wuxw
业主详情开发完成
|
193
|
.then(res => {
|
52b5e4b9
wuxw
v1.9 优化客户黄反馈bug
|
194
|
if (res.code == 0) {
|
6ec243d6
wuxw
v1.9 点击提交后,成功提示没有...
|
195
|
this.$message.success(this.$t('common.operationSuccess'))
|
c85e0853
wuxw
业主详情开发完成
|
196
|
this.dialogVisible = false
|
b96589a4
wuxw
v1.9 业主相关bug
|
197
|
this.$emit('success')
|
c85e0853
wuxw
业主详情开发完成
|
198
|
} else {
|
52b5e4b9
wuxw
v1.9 优化客户黄反馈bug
|
199
|
this.$message.error(res.msg || this.$t('common.saveFailed'))
|
c85e0853
wuxw
业主详情开发完成
|
200
201
202
203
204
205
206
207
208
|
}
})
.catch(err => {
console.error('请求失败:', err)
this.$message.error(this.$t('common.saveFailed'))
})
}
})
},
|
84ba0155
wuxw
家庭成员测试
|
209
|
|
b96589a4
wuxw
v1.9 业主相关bug
|
210
|
async _loadOwnerAttrSpec() {
|
c85e0853
wuxw
业主详情开发完成
|
211
|
this.addOwnerMemberInfo.attrs = []
|
b96589a4
wuxw
v1.9 业主相关bug
|
212
213
|
const { data } = await getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr' })
for (const attr of data) {
|
92c405db
wuxw
优化业务受理中部分选项打不开bug
|
214
215
|
attr.value = ''
if (attr.specShow == 'Y') {
|
b96589a4
wuxw
v1.9 业主相关bug
|
216
|
attr.values = await getAttrValue(attr.specCd)
|
92c405db
wuxw
优化业务受理中部分选项打不开bug
|
217
|
this.addOwnerMemberInfo.attrs.push(attr)
|
b96589a4
wuxw
v1.9 业主相关bug
|
218
|
}
|
84ba0155
wuxw
家庭成员测试
|
219
|
|
b96589a4
wuxw
v1.9 业主相关bug
|
220
|
}
|
c85e0853
wuxw
业主详情开发完成
|
221
|
},
|
84ba0155
wuxw
家庭成员测试
|
222
|
|
c85e0853
wuxw
业主详情开发完成
|
223
224
225
|
_uploadPhoto() {
this.$refs.fileInput.click()
},
|
84ba0155
wuxw
家庭成员测试
|
226
|
|
c85e0853
wuxw
业主详情开发完成
|
227
228
229
230
231
232
233
234
|
_choosePhoto(event) {
const files = event.target.files
if (files && files.length > 0) {
const file = files[0]
if (file.size > 1024 * 1024 * 2) {
this.$message.error(this.$t('addOwnerMember.validate.photoSize'))
return
}
|
c85e0853
wuxw
业主详情开发完成
|
235
236
237
|
this._doUploadImage(file)
}
},
|
84ba0155
wuxw
家庭成员测试
|
238
|
|
c85e0853
wuxw
业主详情开发完成
|
239
240
241
242
|
_doUploadImage(file) {
const formData = new FormData()
formData.append('uploadFile', file)
formData.append('communityId', getCommunityId())
|
84ba0155
wuxw
家庭成员测试
|
243
|
|
c85e0853
wuxw
业主详情开发完成
|
244
245
246
247
248
249
250
251
|
uploadFile(formData).then(res => {
this.addOwnerMemberInfo.ownerPhoto = res.fileId
this.addOwnerMemberInfo.ownerPhotoUrl = res.url
}).catch(err => {
console.error('上传失败:', err)
this.$message.error(this.$t('addOwnerMember.uploadFailed'))
})
},
|
84ba0155
wuxw
家庭成员测试
|
252
|
|
c85e0853
wuxw
业主详情开发完成
|
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
|
_closeSaveOwnerModal() {
this.dialogVisible = false
this.$refs.form.resetFields()
this.addOwnerMemberInfo = {
name: '',
link: '',
address: '',
sex: '',
remark: '',
ownerId: '',
ownerPhoto: '',
ownerPhotoUrl: '',
idCard: '',
personType: 'P',
personRole: '3',
concactLink: '',
attrs: []
}
}
}
}
</script>
<style scoped>
.w100 {
width: 100%;
}
|
84ba0155
wuxw
家庭成员测试
|
280
|
|
c85e0853
wuxw
业主详情开发完成
|
281
282
283
|
.mt10 {
margin-top: 10px;
}
|
84ba0155
wuxw
家庭成员测试
|
284
|
|
c85e0853
wuxw
业主详情开发完成
|
285
286
287
|
.text-center {
text-align: center;
}
|
84ba0155
wuxw
家庭成员测试
|
288
|
|
c85e0853
wuxw
业主详情开发完成
|
289
290
291
292
293
294
|
.avatar-uploader {
width: 100%;
display: flex;
justify-content: center;
margin-bottom: 10px;
}
|
84ba0155
wuxw
家庭成员测试
|
295
|
|
c85e0853
wuxw
业主详情开发完成
|
296
297
298
299
300
301
|
.avatar {
width: 150px;
height: 150px;
object-fit: cover;
}
</style>
|