Commit 911b5549950c1735829de32d9ac201352164c40d
1 parent
e94f0676
修改平凉客户 反馈的bug 修复
Showing
8 changed files
with
94 additions
and
125 deletions
src/components/account/prestoreAccount.vue
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog :title="$t('prestoreAccount.title')" :visible.sync="visible" width="800px" @close="handleClose"> | 2 | <el-dialog :title="$t('prestoreAccount.title')" :visible.sync="visible" width="800px" @close="handleClose"> |
| 3 | - <el-form ref="form" :model="formData" label-width="120px"> | 3 | + <el-form ref="form" :model="formData" :rules="rules" label-width="120px"> |
| 4 | <el-form-item :label="$t('prestoreAccount.accountType')" prop="acctType" required> | 4 | <el-form-item :label="$t('prestoreAccount.accountType')" prop="acctType" required> |
| 5 | <el-select v-model="formData.acctType" class="w-full" :placeholder="$t('prestoreAccount.accountType')"> | 5 | <el-select v-model="formData.acctType" class="w-full" :placeholder="$t('prestoreAccount.accountType')"> |
| 6 | <el-option v-for="(type, index) in acctTypes" :key="index" :label="type.name" :value="type.statusCd" /> | 6 | <el-option v-for="(type, index) in acctTypes" :key="index" :label="type.name" :value="type.statusCd" /> |
| @@ -8,8 +8,7 @@ | @@ -8,8 +8,7 @@ | ||
| 8 | </el-form-item> | 8 | </el-form-item> |
| 9 | 9 | ||
| 10 | <el-form-item :label="$t('prestoreAccount.ownerPhone')" prop="tel" required> | 10 | <el-form-item :label="$t('prestoreAccount.ownerPhone')" prop="tel" required> |
| 11 | - <el-input v-model="formData.tel" :placeholder="$t('prestoreAccount.ownerPhone')" | ||
| 12 | - @blur="handleTelChange" /> | 11 | + <el-input v-model="formData.tel" :placeholder="$t('prestoreAccount.ownerPhone')" @blur="handleTelChange" /> |
| 13 | </el-form-item> | 12 | </el-form-item> |
| 14 | 13 | ||
| 15 | <el-form-item :label="$t('prestoreAccount.ownerName')" prop="ownerId" required> | 14 | <el-form-item :label="$t('prestoreAccount.ownerName')" prop="ownerId" required> |
| @@ -40,8 +39,7 @@ | @@ -40,8 +39,7 @@ | ||
| 40 | </el-form-item> | 39 | </el-form-item> |
| 41 | 40 | ||
| 42 | <el-form-item :label="$t('prestoreAccount.remark')" prop="remark"> | 41 | <el-form-item :label="$t('prestoreAccount.remark')" prop="remark"> |
| 43 | - <el-input v-model="formData.remark" type="textarea" :placeholder="$t('prestoreAccount.remark')" | ||
| 44 | - :rows="3" /> | 42 | + <el-input v-model="formData.remark" type="textarea" :placeholder="$t('prestoreAccount.remark')" :rows="3" /> |
| 45 | </el-form-item> | 43 | </el-form-item> |
| 46 | </el-form> | 44 | </el-form> |
| 47 | 45 | ||
| @@ -72,7 +70,15 @@ export default { | @@ -72,7 +70,15 @@ export default { | ||
| 72 | acctTypes: [], | 70 | acctTypes: [], |
| 73 | primeRates: [], | 71 | primeRates: [], |
| 74 | owners: [], | 72 | owners: [], |
| 75 | - rooms: [] | 73 | + rooms: [], |
| 74 | + rules: { | ||
| 75 | + acctType: [{ required: true, message: this.$t('prestoreAccount.accountType'), trigger: 'change' }], | ||
| 76 | + tel: [{ required: true, message: this.$t('prestoreAccount.ownerPhone'), trigger: 'blur' }], | ||
| 77 | + ownerId: [{ required: true, message: this.$t('prestoreAccount.ownerName'), trigger: 'change' }], | ||
| 78 | + roomId: [{ required: true, message: this.$t('prestoreAccount.deductionRoom'), trigger: 'change' }], | ||
| 79 | + amount: [{ required: true, message: this.$t('prestoreAccount.prestoreAmount'), trigger: 'blur' }], | ||
| 80 | + primeRate: [{ required: true, message: this.$t('prestoreAccount.paymentMethod'), trigger: 'change' }] | ||
| 81 | + } | ||
| 76 | } | 82 | } |
| 77 | }, | 83 | }, |
| 78 | methods: { | 84 | methods: { |
| @@ -154,31 +160,16 @@ export default { | @@ -154,31 +160,16 @@ export default { | ||
| 154 | }, | 160 | }, |
| 155 | 161 | ||
| 156 | validateForm() { | 162 | validateForm() { |
| 157 | - const requiredFields = [ | ||
| 158 | - 'ownerId', 'amount', 'acctType', 'primeRate' | ||
| 159 | - ] | ||
| 160 | - | ||
| 161 | - if (this.formData.acctType === '2004' || this.formData.acctType === '2005') { | ||
| 162 | - requiredFields.push('roomId') | ||
| 163 | - } | ||
| 164 | - | ||
| 165 | - for (const field of requiredFields) { | ||
| 166 | - if (!this.formData[field]) { | ||
| 167 | - this.$message.warning(this.$t('prestoreAccount.placeholder' + field.charAt(0).toUpperCase() + field.slice(1))) | ||
| 168 | - return false | ||
| 169 | - } | ||
| 170 | - } | ||
| 171 | - | ||
| 172 | - if (!this.formData.amount) { | ||
| 173 | - this.$message.warning(this.$t('prestoreAccount.placeholderAmount')) | ||
| 174 | - return false | ||
| 175 | - } | ||
| 176 | - | ||
| 177 | - return true | 163 | + return new Promise((resolve) => { |
| 164 | + this.$refs.form.validate((valid) => { | ||
| 165 | + resolve(valid) | ||
| 166 | + }) | ||
| 167 | + }) | ||
| 178 | }, | 168 | }, |
| 179 | 169 | ||
| 180 | async handleSave() { | 170 | async handleSave() { |
| 181 | - if (!this.validateForm()) return | 171 | + const valid = await this.validateForm() |
| 172 | + if (!valid) return | ||
| 182 | 173 | ||
| 183 | try { | 174 | try { |
| 184 | await ownerPrestoreAccount(this.formData) | 175 | await ownerPrestoreAccount(this.formData) |
src/components/fee/prestoreAccount.vue
| @@ -4,8 +4,8 @@ | @@ -4,8 +4,8 @@ | ||
| 4 | :visible.sync="dialogVisible" | 4 | :visible.sync="dialogVisible" |
| 5 | width="50%" | 5 | width="50%" |
| 6 | > | 6 | > |
| 7 | - <el-form :model="prestoreAccountInfo" label-width="120px"> | ||
| 8 | - <el-form-item :label="$t('prestoreAccount.accountType')" required> | 7 | + <el-form :model="prestoreAccountInfo" :rules="rules" ref="form" label-width="120px"> |
| 8 | + <el-form-item :label="$t('prestoreAccount.accountType')" prop="acctType" required> | ||
| 9 | <el-select | 9 | <el-select |
| 10 | v-model="prestoreAccountInfo.acctType" | 10 | v-model="prestoreAccountInfo.acctType" |
| 11 | style="width: 100%" | 11 | style="width: 100%" |
| @@ -24,7 +24,7 @@ | @@ -24,7 +24,7 @@ | ||
| 24 | </el-select> | 24 | </el-select> |
| 25 | </el-form-item> | 25 | </el-form-item> |
| 26 | 26 | ||
| 27 | - <el-form-item :label="$t('prestoreAccount.ownerPhone')" required> | 27 | + <el-form-item :label="$t('prestoreAccount.ownerPhone')" prop="tel" required> |
| 28 | <el-input | 28 | <el-input |
| 29 | v-model="prestoreAccountInfo.tel" | 29 | v-model="prestoreAccountInfo.tel" |
| 30 | :placeholder="$t('prestoreAccount.ownerPhonePlaceholder')" | 30 | :placeholder="$t('prestoreAccount.ownerPhonePlaceholder')" |
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | ></el-input> | 32 | ></el-input> |
| 33 | </el-form-item> | 33 | </el-form-item> |
| 34 | 34 | ||
| 35 | - <el-form-item :label="$t('prestoreAccount.ownerName')" required> | 35 | + <el-form-item :label="$t('prestoreAccount.ownerName')" prop="ownerId" required> |
| 36 | <el-select | 36 | <el-select |
| 37 | v-model="prestoreAccountInfo.ownerId" | 37 | v-model="prestoreAccountInfo.ownerId" |
| 38 | style="width: 100%" | 38 | style="width: 100%" |
| @@ -55,6 +55,7 @@ | @@ -55,6 +55,7 @@ | ||
| 55 | <el-form-item | 55 | <el-form-item |
| 56 | v-if="prestoreAccountInfo.acctType == '2004' || prestoreAccountInfo.acctType == '2005'" | 56 | v-if="prestoreAccountInfo.acctType == '2004' || prestoreAccountInfo.acctType == '2005'" |
| 57 | :label="$t('prestoreAccount.deductionRoom')" | 57 | :label="$t('prestoreAccount.deductionRoom')" |
| 58 | + prop="roomId" | ||
| 58 | required | 59 | required |
| 59 | > | 60 | > |
| 60 | <el-select v-model="prestoreAccountInfo.roomId" style="width: 100%"> | 61 | <el-select v-model="prestoreAccountInfo.roomId" style="width: 100%"> |
| @@ -72,14 +73,14 @@ | @@ -72,14 +73,14 @@ | ||
| 72 | </el-select> | 73 | </el-select> |
| 73 | </el-form-item> | 74 | </el-form-item> |
| 74 | 75 | ||
| 75 | - <el-form-item :label="$t('prestoreAccount.prestoreAmount')" required> | 76 | + <el-form-item :label="$t('prestoreAccount.prestoreAmount')" prop="amount" required> |
| 76 | <el-input | 77 | <el-input |
| 77 | v-model="prestoreAccountInfo.amount" | 78 | v-model="prestoreAccountInfo.amount" |
| 78 | :placeholder="$t('prestoreAccount.prestoreAmountPlaceholder')" | 79 | :placeholder="$t('prestoreAccount.prestoreAmountPlaceholder')" |
| 79 | ></el-input> | 80 | ></el-input> |
| 80 | </el-form-item> | 81 | </el-form-item> |
| 81 | 82 | ||
| 82 | - <el-form-item :label="$t('prestoreAccount.paymentMethod')" required> | 83 | + <el-form-item :label="$t('prestoreAccount.paymentMethod')" prop="primeRate" required> |
| 83 | <el-select v-model="prestoreAccountInfo.primeRate" style="width: 100%"> | 84 | <el-select v-model="prestoreAccountInfo.primeRate" style="width: 100%"> |
| 84 | <el-option | 85 | <el-option |
| 85 | :label="$t('prestoreAccount.selectPaymentMethod')" | 86 | :label="$t('prestoreAccount.selectPaymentMethod')" |
| @@ -96,7 +97,7 @@ | @@ -96,7 +97,7 @@ | ||
| 96 | </el-select> | 97 | </el-select> |
| 97 | </el-form-item> | 98 | </el-form-item> |
| 98 | 99 | ||
| 99 | - <el-form-item :label="$t('prestoreAccount.remark')"> | 100 | + <el-form-item :label="$t('prestoreAccount.remark')" prop="remark"> |
| 100 | <el-input | 101 | <el-input |
| 101 | type="textarea" | 102 | type="textarea" |
| 102 | :rows="3" | 103 | :rows="3" |
| @@ -136,7 +137,16 @@ export default { | @@ -136,7 +137,16 @@ export default { | ||
| 136 | rooms: [], | 137 | rooms: [], |
| 137 | roomId: '', | 138 | roomId: '', |
| 138 | }, | 139 | }, |
| 139 | - communityId: '' | 140 | + communityId: '', |
| 141 | + rules: { | ||
| 142 | + acctType: [{ required: true, message: this.$t('prestoreAccount.selectAccountType'), trigger: 'change' }], | ||
| 143 | + tel: [{ required: true, message: this.$t('prestoreAccount.ownerPhonePlaceholder'), trigger: 'blur' }], | ||
| 144 | + ownerId: [{ required: true, message: this.$t('prestoreAccount.selectOwner'), trigger: 'change' }], | ||
| 145 | + roomId: [{ required: true, message: this.$t('prestoreAccount.selectRoom'), trigger: 'change' }], | ||
| 146 | + amount: [{ required: true, message: this.$t('prestoreAccount.prestoreAmountPlaceholder'), trigger: 'blur' }], | ||
| 147 | + primeRate: [{ required: true, message: this.$t('prestoreAccount.selectPaymentMethod'), trigger: 'change' }], | ||
| 148 | + remark: [{ max: 200, message: this.$t('prestoreAccount.validateRemark'), trigger: 'blur' }] | ||
| 149 | + } | ||
| 140 | } | 150 | } |
| 141 | }, | 151 | }, |
| 142 | created() { | 152 | created() { |
| @@ -171,44 +181,34 @@ export default { | @@ -171,44 +181,34 @@ export default { | ||
| 171 | }) | 181 | }) |
| 172 | }, | 182 | }, |
| 173 | prestoreAccountValidate() { | 183 | prestoreAccountValidate() { |
| 174 | - if (!this.prestoreAccountInfo.ownerId) { | ||
| 175 | - this.$message.error(this.$t('prestoreAccount.validateOwner')) | ||
| 176 | - return false | ||
| 177 | - } | ||
| 178 | - if (!this.prestoreAccountInfo.amount) { | ||
| 179 | - this.$message.error(this.$t('prestoreAccount.validateAmount')) | ||
| 180 | - return false | ||
| 181 | - } | ||
| 182 | - if (!this.prestoreAccountInfo.acctType) { | ||
| 183 | - this.$message.error(this.$t('prestoreAccount.validateAccountType')) | ||
| 184 | - return false | ||
| 185 | - } | ||
| 186 | - if (this.prestoreAccountInfo.remark && this.prestoreAccountInfo.remark.length > 200) { | ||
| 187 | - this.$message.error(this.$t('prestoreAccount.validateRemark')) | ||
| 188 | - return false | ||
| 189 | - } | ||
| 190 | - return true | 184 | + return new Promise((resolve) => { |
| 185 | + this.$refs.form.validate((valid) => { | ||
| 186 | + resolve(valid) | ||
| 187 | + }) | ||
| 188 | + }) | ||
| 191 | }, | 189 | }, |
| 192 | savePrestoreAccountInfo() { | 190 | savePrestoreAccountInfo() { |
| 193 | - if (!this.prestoreAccountValidate()) return | 191 | + this.prestoreAccountValidate().then(valid => { |
| 192 | + if (valid) { | ||
| 193 | + const params = { | ||
| 194 | + ...this.prestoreAccountInfo, | ||
| 195 | + communityId: this.communityId | ||
| 196 | + } | ||
| 194 | 197 | ||
| 195 | - const params = { | ||
| 196 | - ...this.prestoreAccountInfo, | ||
| 197 | - communityId: this.communityId | ||
| 198 | - } | ||
| 199 | - | ||
| 200 | - ownerPrestoreAccount(params).then(response => { | ||
| 201 | - if (response.code === 0) { | ||
| 202 | - this.$message.success(this.$t('prestoreAccount.saveSuccess')) | ||
| 203 | - this.dialogVisible = false | ||
| 204 | - this.clearPrestoreAccountInfo() | ||
| 205 | - this.$emit('save-success') | ||
| 206 | - } else { | ||
| 207 | - this.$message.error(response.msg) | 198 | + ownerPrestoreAccount(params).then(response => { |
| 199 | + if (response.code === 0) { | ||
| 200 | + this.$message.success(this.$t('prestoreAccount.saveSuccess')) | ||
| 201 | + this.dialogVisible = false | ||
| 202 | + this.clearPrestoreAccountInfo() | ||
| 203 | + this.$emit('save-success') | ||
| 204 | + } else { | ||
| 205 | + this.$message.error(response.msg) | ||
| 206 | + } | ||
| 207 | + }).catch(error => { | ||
| 208 | + console.error('请求失败:', error) | ||
| 209 | + this.$message.error(this.$t('prestoreAccount.saveFailed')) | ||
| 210 | + }) | ||
| 208 | } | 211 | } |
| 209 | - }).catch(error => { | ||
| 210 | - console.error('请求失败:', error) | ||
| 211 | - this.$message.error(this.$t('prestoreAccount.saveFailed')) | ||
| 212 | }) | 212 | }) |
| 213 | }, | 213 | }, |
| 214 | clearPrestoreAccountInfo() { | 214 | clearPrestoreAccountInfo() { |
| @@ -226,6 +226,8 @@ export default { | @@ -226,6 +226,8 @@ export default { | ||
| 226 | rooms: [], | 226 | rooms: [], |
| 227 | roomId: '', | 227 | roomId: '', |
| 228 | } | 228 | } |
| 229 | + // 重置表单验证状态 | ||
| 230 | + this.$refs.form && this.$refs.form.resetFields() | ||
| 229 | }, | 231 | }, |
| 230 | _changeTel() { | 232 | _changeTel() { |
| 231 | if (!this.prestoreAccountInfo.tel) return | 233 | if (!this.prestoreAccountInfo.tel) return |
src/components/owner/addOwner.vue
| @@ -152,8 +152,7 @@ export default { | @@ -152,8 +152,7 @@ export default { | ||
| 152 | ], | 152 | ], |
| 153 | rules: { | 153 | rules: { |
| 154 | name: [ | 154 | name: [ |
| 155 | - { required: true, message: this.$t('listOwner.rules.nameRequired'), trigger: 'blur' }, | ||
| 156 | - { min: 2, max: 64, message: this.$t('listOwner.rules.nameLength'), trigger: 'blur' } | 155 | + { required: true, message: this.$t('listOwner.placeholders.name'), trigger: 'blur' }, |
| 157 | ], | 156 | ], |
| 158 | personType: [ | 157 | personType: [ |
| 159 | { required: true, message: this.$t('listOwner.rules.typeRequired'), trigger: 'change' } | 158 | { required: true, message: this.$t('listOwner.rules.typeRequired'), trigger: 'change' } |
| @@ -162,8 +161,7 @@ export default { | @@ -162,8 +161,7 @@ export default { | ||
| 162 | { required: true, message: this.$t('listOwner.rules.roleRequired'), trigger: 'change' } | 161 | { required: true, message: this.$t('listOwner.rules.roleRequired'), trigger: 'change' } |
| 163 | ], | 162 | ], |
| 164 | link: [ | 163 | link: [ |
| 165 | - { required: true, message: this.$t('listOwner.rules.phoneRequired'), trigger: 'blur' }, | ||
| 166 | - { pattern: /^1[3-9]\d{9}$/, message: this.$t('listOwner.rules.phoneFormat'), trigger: 'blur' } | 164 | + { required: true, message: this.$t('listOwner.placeholders.name'), trigger: 'blur' }, |
| 167 | ], | 165 | ], |
| 168 | sex: [ | 166 | sex: [ |
| 169 | { required: true, message: this.$t('listOwner.rules.genderRequired'), trigger: 'change' } | 167 | { required: true, message: this.$t('listOwner.rules.genderRequired'), trigger: 'change' } |
src/components/owner/editOwner.vue
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | <el-col :span="12"> | 5 | <el-col :span="12"> |
| 6 | <el-form-item :label="$t('listOwner.columns.type')" prop="personType"> | 6 | <el-form-item :label="$t('listOwner.columns.type')" prop="personType"> |
| 7 | <el-select v-model="form.personType" style="width:100%"> | 7 | <el-select v-model="form.personType" style="width:100%"> |
| 8 | - <el-option v-for="(type,index) in personTypes" :key="index" :label="type.label" :value="type.value" /> | 8 | + <el-option v-for="(type, index) in personTypes" :key="index" :label="type.label" :value="type.value" /> |
| 9 | </el-select> | 9 | </el-select> |
| 10 | </el-form-item> | 10 | </el-form-item> |
| 11 | 11 | ||
| @@ -153,21 +153,19 @@ export default { | @@ -153,21 +153,19 @@ export default { | ||
| 153 | ], | 153 | ], |
| 154 | rules: { | 154 | rules: { |
| 155 | name: [ | 155 | name: [ |
| 156 | - { required: true, message: this.$t('listOwner.rules.nameRequired'), trigger: 'blur' }, | ||
| 157 | - { min: 2, max: 64, message: this.$t('listOwner.rules.nameLength'), trigger: 'blur' } | 156 | + { required: true, message: this.$t('listOwner.placeholders.name'), trigger: 'blur' }, |
| 158 | ], | 157 | ], |
| 159 | personType: [ | 158 | personType: [ |
| 160 | - { required: true, message: this.$t('listOwner.rules.typeRequired'), trigger: 'change' } | 159 | + { required: true, message: this.$t('listOwner.placeholders.typeRequired'), trigger: 'change' } |
| 161 | ], | 160 | ], |
| 162 | personRole: [ | 161 | personRole: [ |
| 163 | - { required: true, message: this.$t('listOwner.rules.roleRequired'), trigger: 'change' } | 162 | + { required: true, message: this.$t('listOwner.placeholders.roleRequired'), trigger: 'change' } |
| 164 | ], | 163 | ], |
| 165 | link: [ | 164 | link: [ |
| 166 | - { required: true, message: this.$t('listOwner.rules.phoneRequired'), trigger: 'blur' }, | ||
| 167 | - { pattern: /^1[3-9]\d{9}$/, message: this.$t('listOwner.rules.phoneFormat'), trigger: 'blur' } | 165 | + { required: true, message: this.$t('listOwner.placeholders.phoneRequired'), trigger: 'blur' }, |
| 168 | ], | 166 | ], |
| 169 | sex: [ | 167 | sex: [ |
| 170 | - { required: true, message: this.$t('listOwner.rules.genderRequired'), trigger: 'change' } | 168 | + { required: true, message: this.$t('listOwner.placeholders.genderRequired'), trigger: 'change' } |
| 171 | ] | 169 | ] |
| 172 | } | 170 | } |
| 173 | } | 171 | } |
| @@ -181,7 +179,7 @@ export default { | @@ -181,7 +179,7 @@ export default { | ||
| 181 | 179 | ||
| 182 | async loadAttributes() { | 180 | async loadAttributes() { |
| 183 | try { | 181 | try { |
| 184 | - const data = await getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr'}) | 182 | + const data = await getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr' }) |
| 185 | this.attrs = data.filter(item => item.specShow === 'Y') | 183 | this.attrs = data.filter(item => item.specShow === 'Y') |
| 186 | 184 | ||
| 187 | for (const attr of this.attrs) { | 185 | for (const attr of this.attrs) { |
src/i18n/commonLang.js
| @@ -11,6 +11,7 @@ export const messages = { | @@ -11,6 +11,7 @@ export const messages = { | ||
| 11 | delete: 'Delete', | 11 | delete: 'Delete', |
| 12 | confirm: 'Confirm', | 12 | confirm: 'Confirm', |
| 13 | cancel: 'Cancel', | 13 | cancel: 'Cancel', |
| 14 | + none: 'None', | ||
| 14 | close: 'Close', | 15 | close: 'Close', |
| 15 | back: 'Back', | 16 | back: 'Back', |
| 16 | warning: 'Warning', | 17 | warning: 'Warning', |
| @@ -74,6 +75,7 @@ export const messages = { | @@ -74,6 +75,7 @@ export const messages = { | ||
| 74 | delete: '删除', | 75 | delete: '删除', |
| 75 | confirm: '确定', | 76 | confirm: '确定', |
| 76 | cancel: '取消', | 77 | cancel: '取消', |
| 78 | + none: '无', | ||
| 77 | close: '关闭', | 79 | close: '关闭', |
| 78 | back: '返回', | 80 | back: '返回', |
| 79 | warning: '警告', | 81 | warning: '警告', |
src/views/community/addCommunityPublicityLang.js
| @@ -10,7 +10,8 @@ export const messages = { | @@ -10,7 +10,8 @@ export const messages = { | ||
| 10 | submit: 'Submit', | 10 | submit: 'Submit', |
| 11 | requiredTitle: 'Required, please fill in the publicity title', | 11 | requiredTitle: 'Required, please fill in the publicity title', |
| 12 | requiredType: 'Required, please select publicity type', | 12 | requiredType: 'Required, please select publicity type', |
| 13 | - requiredContent: 'Required, please enter announcement content' | 13 | + requiredContent: 'Required, please enter announcement content', |
| 14 | + requiredHeaderPhoto: 'Required, please upload header photo' | ||
| 14 | } | 15 | } |
| 15 | }, | 16 | }, |
| 16 | zh: { | 17 | zh: { |
| @@ -24,7 +25,8 @@ export const messages = { | @@ -24,7 +25,8 @@ export const messages = { | ||
| 24 | submit: '提交', | 25 | submit: '提交', |
| 25 | requiredTitle: '必填,请填写公示标题', | 26 | requiredTitle: '必填,请填写公示标题', |
| 26 | requiredType: '必填,请选择公示类型', | 27 | requiredType: '必填,请选择公示类型', |
| 27 | - requiredContent: '必填,请输入公告内容' | 28 | + requiredContent: '必填,请输入公告内容', |
| 29 | + requiredHeaderPhoto: '必填,请上传头部照片' | ||
| 28 | } | 30 | } |
| 29 | } | 31 | } |
| 30 | } | 32 | } |
| 31 | \ No newline at end of file | 33 | \ No newline at end of file |
src/views/community/addCommunityPublicityList.vue
| @@ -2,10 +2,7 @@ | @@ -2,10 +2,7 @@ | ||
| 2 | <el-card class="add-publicity-container"> | 2 | <el-card class="add-publicity-container"> |
| 3 | <div slot="header" class="flex justify-between"> | 3 | <div slot="header" class="flex justify-between"> |
| 4 | <span>{{ $t('addCommunityPublicity.title') }}</span> | 4 | <span>{{ $t('addCommunityPublicity.title') }}</span> |
| 5 | - <el-button | ||
| 6 | - style="float: right; padding: 3px 0" | ||
| 7 | - type="text" | ||
| 8 | - @click="goBack"> | 5 | + <el-button style="float: right; padding: 3px 0" type="text" @click="goBack"> |
| 9 | <i class="el-icon-close"></i>{{ $t('addCommunityPublicity.back') }} | 6 | <i class="el-icon-close"></i>{{ $t('addCommunityPublicity.back') }} |
| 10 | </el-button> | 7 | </el-button> |
| 11 | </div> | 8 | </div> |
| @@ -13,55 +10,33 @@ | @@ -13,55 +10,33 @@ | ||
| 13 | <el-form ref="form" :model="formData" label-width="120px"> | 10 | <el-form ref="form" :model="formData" label-width="120px"> |
| 14 | <el-row :gutter="20"> | 11 | <el-row :gutter="20"> |
| 15 | <el-col :span="12"> | 12 | <el-col :span="12"> |
| 16 | - <el-form-item | ||
| 17 | - :label="$t('addCommunityPublicity.pubTitle')" | ||
| 18 | - prop="title" | 13 | + <el-form-item :label="$t('addCommunityPublicity.pubTitle')" prop="title" |
| 19 | :rules="[{ required: true, message: $t('addCommunityPublicity.requiredTitle'), trigger: 'blur' }]"> | 14 | :rules="[{ required: true, message: $t('addCommunityPublicity.requiredTitle'), trigger: 'blur' }]"> |
| 20 | - <el-input | ||
| 21 | - v-model="formData.title" | ||
| 22 | - :placeholder="$t('addCommunityPublicity.requiredTitle')" | ||
| 23 | - clearable> | 15 | + <el-input v-model="formData.title" :placeholder="$t('addCommunityPublicity.requiredTitle')" clearable> |
| 24 | </el-input> | 16 | </el-input> |
| 25 | </el-form-item> | 17 | </el-form-item> |
| 26 | </el-col> | 18 | </el-col> |
| 27 | <el-col :span="12"> | 19 | <el-col :span="12"> |
| 28 | - <el-form-item | ||
| 29 | - :label="$t('addCommunityPublicity.pubType')" | ||
| 30 | - prop="pubType" | 20 | + <el-form-item :label="$t('addCommunityPublicity.pubType')" prop="pubType" |
| 31 | :rules="[{ required: true, message: $t('addCommunityPublicity.requiredType'), trigger: 'change' }]"> | 21 | :rules="[{ required: true, message: $t('addCommunityPublicity.requiredType'), trigger: 'change' }]"> |
| 32 | - <el-select | ||
| 33 | - v-model="formData.pubType" | ||
| 34 | - :placeholder="$t('addCommunityPublicity.requiredType')" | 22 | + <el-select v-model="formData.pubType" :placeholder="$t('addCommunityPublicity.requiredType')" |
| 35 | style="width: 100%"> | 23 | style="width: 100%"> |
| 36 | - <el-option | ||
| 37 | - v-for="item in pubTypes" | ||
| 38 | - :key="item.statusCd" | ||
| 39 | - :label="item.name" | ||
| 40 | - :value="item.statusCd"> | 24 | + <el-option v-for="item in pubTypes" :key="item.statusCd" :label="item.name" :value="item.statusCd"> |
| 41 | </el-option> | 25 | </el-option> |
| 42 | </el-select> | 26 | </el-select> |
| 43 | </el-form-item> | 27 | </el-form-item> |
| 44 | </el-col> | 28 | </el-col> |
| 45 | </el-row> | 29 | </el-row> |
| 46 | 30 | ||
| 47 | - <el-form-item | ||
| 48 | - :label="$t('addCommunityPublicity.headerPhoto')" | ||
| 49 | - prop="headerImg" | 31 | + <el-form-item :label="$t('addCommunityPublicity.headerPhoto')" prop="headerImg" |
| 50 | :rules="[{ required: true, message: $t('addCommunityPublicity.requiredHeaderPhoto'), trigger: 'change' }]"> | 32 | :rules="[{ required: true, message: $t('addCommunityPublicity.requiredHeaderPhoto'), trigger: 'change' }]"> |
| 51 | - <upload-image-url | ||
| 52 | - ref="uploadImage" | ||
| 53 | - :image-count="1" | ||
| 54 | - @notifyUploadCoverImage="handleImageUpload"> | 33 | + <upload-image-url ref="uploadImage" :image-count="1" @notifyUploadCoverImage="handleImageUpload"> |
| 55 | </upload-image-url> | 34 | </upload-image-url> |
| 56 | </el-form-item> | 35 | </el-form-item> |
| 57 | 36 | ||
| 58 | - <el-form-item | ||
| 59 | - :label="$t('addCommunityPublicity.activityContent')" | ||
| 60 | - prop="context" | 37 | + <el-form-item :label="$t('addCommunityPublicity.activityContent')" prop="context" |
| 61 | :rules="[{ required: true, message: $t('addCommunityPublicity.requiredContent'), trigger: 'blur' }]"> | 38 | :rules="[{ required: true, message: $t('addCommunityPublicity.requiredContent'), trigger: 'blur' }]"> |
| 62 | - <rich-text-editor | ||
| 63 | - v-model="formData.context" | ||
| 64 | - :height="300" | 39 | + <rich-text-editor v-model="formData.context" :height="300" |
| 65 | :placeholder="$t('addCommunityPublicity.requiredContent')"> | 40 | :placeholder="$t('addCommunityPublicity.requiredContent')"> |
| 66 | </rich-text-editor> | 41 | </rich-text-editor> |
| 67 | </el-form-item> | 42 | </el-form-item> |
| @@ -76,8 +51,8 @@ | @@ -76,8 +51,8 @@ | ||
| 76 | 51 | ||
| 77 | <script> | 52 | <script> |
| 78 | import UploadImageUrl from '@/components/upload/UploadImageUrl' | 53 | import UploadImageUrl from '@/components/upload/UploadImageUrl' |
| 79 | -import { saveCommunityPublicity } from '@/api/community/addCommunityPublicityApi' | ||
| 80 | -import { getCommunityId ,getDict} from '@/api/community/communityApi' | 54 | +import { saveCommunityPublicity } from '@/api/community/addCommunityPublicityApi' |
| 55 | +import { getCommunityId, getDict } from '@/api/community/communityApi' | ||
| 81 | import richTextEditor from '@/components/editor/RichTextEditor' | 56 | import richTextEditor from '@/components/editor/RichTextEditor' |
| 82 | 57 | ||
| 83 | export default { | 58 | export default { |
| @@ -112,7 +87,7 @@ export default { | @@ -112,7 +87,7 @@ export default { | ||
| 112 | }, | 87 | }, |
| 113 | handleImageUpload(images) { | 88 | handleImageUpload(images) { |
| 114 | if (images.length > 0) { | 89 | if (images.length > 0) { |
| 115 | - this.formData.headerImg = images[0]|| images[0] | 90 | + this.formData.headerImg = images[0] || images[0] |
| 116 | } else { | 91 | } else { |
| 117 | this.formData.headerImg = '' | 92 | this.formData.headerImg = '' |
| 118 | } | 93 | } |
| @@ -152,6 +127,7 @@ export default { | @@ -152,6 +127,7 @@ export default { | ||
| 152 | .add-publicity-container { | 127 | .add-publicity-container { |
| 153 | margin: 20px; | 128 | margin: 20px; |
| 154 | } | 129 | } |
| 130 | + | ||
| 155 | .text-right { | 131 | .text-right { |
| 156 | text-align: right; | 132 | text-align: right; |
| 157 | } | 133 | } |
src/views/owner/listOwnerLang.js
| @@ -14,7 +14,7 @@ export const messages = { | @@ -14,7 +14,7 @@ export const messages = { | ||
| 14 | personal: 'Personal', | 14 | personal: 'Personal', |
| 15 | company: 'Company' | 15 | company: 'Company' |
| 16 | }, | 16 | }, |
| 17 | - personTypeName:'Person Type', | 17 | + personTypeName: 'Person Type', |
| 18 | gender: { | 18 | gender: { |
| 19 | male: 'Male', | 19 | male: 'Male', |
| 20 | female: 'Female' | 20 | female: 'Female' |
| @@ -77,7 +77,7 @@ export const messages = { | @@ -77,7 +77,7 @@ export const messages = { | ||
| 77 | personal: '个人', | 77 | personal: '个人', |
| 78 | company: '公司' | 78 | company: '公司' |
| 79 | }, | 79 | }, |
| 80 | - personTypeName:'人员类型', | 80 | + personTypeName: '人员类型', |
| 81 | gender: { | 81 | gender: { |
| 82 | male: '男', | 82 | male: '男', |
| 83 | female: '女' | 83 | female: '女' |