Commit 2e81c59f0280bbf18c5be0fe55492e014b929520
1 parent
c0ea09a1
完成办公功能测试
Showing
16 changed files
with
110 additions
and
218 deletions
src/components/editor/RichTextEditor.vue
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | <template> | 2 | <template> |
| 3 | <div ref="editor" class="rich-text-editor" style="text-align: left;"></div> | 3 | <div ref="editor" class="rich-text-editor" style="text-align: left;"></div> |
| 4 | </template> | 4 | </template> |
| 5 | - | 5 | + |
| 6 | <script> | 6 | <script> |
| 7 | import E from 'wangeditor' | 7 | import E from 'wangeditor' |
| 8 | import { getHeader } from '@/utils/header' | 8 | import { getHeader } from '@/utils/header' |
| @@ -57,28 +57,53 @@ export default { | @@ -57,28 +57,53 @@ export default { | ||
| 57 | ] | 57 | ] |
| 58 | 58 | ||
| 59 | // Image upload configuration | 59 | // Image upload configuration |
| 60 | - this.editor.config.uploadImgServer = '/upload/uploadFile' | 60 | + this.editor.config.uploadImgServer = '/callComponent/upload/uploadFile/uploadImage' |
| 61 | let headers = getHeader() | 61 | let headers = getHeader() |
| 62 | this.editor.config.uploadImgHeaders = headers | 62 | this.editor.config.uploadImgHeaders = headers |
| 63 | this.editor.config.uploadFileName = 'uploadFile' | 63 | this.editor.config.uploadFileName = 'uploadFile' |
| 64 | this.editor.config.uploadImgMaxSize = 10 * 1024 * 1024 // 10M | 64 | this.editor.config.uploadImgMaxSize = 10 * 1024 * 1024 // 10M |
| 65 | 65 | ||
| 66 | - // Custom image upload callback | ||
| 67 | - this.editor.config.uploadImgHooks = { | ||
| 68 | - customInsert: (insertImgFn, result) => { | ||
| 69 | - if (result.code === 0) { | ||
| 70 | - const url = result.data.url || result.data.path | ||
| 71 | - insertImgFn(url) | ||
| 72 | - } else { | ||
| 73 | - this.$message.error(result.msg || this.$t('upload.error')) | ||
| 74 | - } | ||
| 75 | - }, | ||
| 76 | - error: (err) => { | ||
| 77 | - this.$message.error(this.$t('upload.error')) | ||
| 78 | - console.error('Image upload error:', err) | ||
| 79 | - } | 66 | + this.editor.config.customUploadImg = (resultFiles, insertImgFn) => { |
| 67 | + // 创建 FormData | ||
| 68 | + const formData = new FormData() | ||
| 69 | + formData.append('uploadFile', resultFiles[0]) | ||
| 70 | + formData.append('communityId', '-1') // 添加 communityId 参数 | ||
| 71 | + | ||
| 72 | + // 发送请求 | ||
| 73 | + fetch('/callComponent/upload/uploadFile/uploadImage', { | ||
| 74 | + method: 'POST', | ||
| 75 | + headers: headers, | ||
| 76 | + body: formData | ||
| 77 | + }) | ||
| 78 | + .then(response => response.json()) | ||
| 79 | + .then(result => { | ||
| 80 | + console.log(result) | ||
| 81 | + const url = result.url | ||
| 82 | + insertImgFn(url) | ||
| 83 | + | ||
| 84 | + }) | ||
| 85 | + .catch(err => { | ||
| 86 | + this.$message.error(this.$t('upload.error')) | ||
| 87 | + console.error('Image upload error:', err) | ||
| 88 | + }) | ||
| 80 | } | 89 | } |
| 81 | 90 | ||
| 91 | + // Custom image upload callback | ||
| 92 | + // this.editor.config.uploadImgHooks = { | ||
| 93 | + // customInsert: (insertImgFn, result) => { | ||
| 94 | + // if (result.code === 0) { | ||
| 95 | + // const url = result.data.url || result.data.path | ||
| 96 | + // insertImgFn(url) | ||
| 97 | + // } else { | ||
| 98 | + // this.$message.error(result.msg || this.$t('upload.error')) | ||
| 99 | + // } | ||
| 100 | + // }, | ||
| 101 | + // error: (err) => { | ||
| 102 | + // this.$message.error(this.$t('upload.error')) | ||
| 103 | + // console.error('Image upload error:', err) | ||
| 104 | + // } | ||
| 105 | + // } | ||
| 106 | + | ||
| 82 | // Create the editor | 107 | // Create the editor |
| 83 | this.editor.create() | 108 | this.editor.create() |
| 84 | 109 | ||
| @@ -112,7 +137,7 @@ export default { | @@ -112,7 +137,7 @@ export default { | ||
| 112 | } | 137 | } |
| 113 | } | 138 | } |
| 114 | </script> | 139 | </script> |
| 115 | - | 140 | + |
| 116 | <style lang="scss" scoped> | 141 | <style lang="scss" scoped> |
| 117 | .rich-text-editor { | 142 | .rich-text-editor { |
| 118 | border: 1px solid #dcdfe6; | 143 | border: 1px solid #dcdfe6; |
src/components/oa/addActivitiesType.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog :title="$t('activitiesTypeManage.add.title')" :visible.sync="visible" width="50%" @close="handleClose"> | 2 | + <el-dialog :title="$t('activitiesTypeManage.add.title')" :visible.sync="visible" width="40%" @close="handleClose"> |
| 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('activitiesTypeManage.add.typeName')" prop="typeName"> | 4 | <el-form-item :label="$t('activitiesTypeManage.add.typeName')" prop="typeName"> |
| 5 | <el-input v-model="formData.typeName" :placeholder="$t('activitiesTypeManage.add.typeNamePlaceholder')" /> | 5 | <el-input v-model="formData.typeName" :placeholder="$t('activitiesTypeManage.add.typeNamePlaceholder')" /> |
src/components/oa/addExamineProject.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog | ||
| 3 | - :title="$t('examineProjectManage.add.title')" | ||
| 4 | - :visible.sync="visible" | ||
| 5 | - width="50%" | ||
| 6 | - @close="handleClose" | ||
| 7 | - > | ||
| 8 | - <el-form | ||
| 9 | - ref="form" | ||
| 10 | - :model="formData" | ||
| 11 | - :rules="rules" | ||
| 12 | - label-width="120px" | ||
| 13 | - label-position="right" | ||
| 14 | - > | ||
| 15 | - <el-form-item | ||
| 16 | - :label="$t('examineProjectManage.form.name')" | ||
| 17 | - prop="name" | ||
| 18 | - > | ||
| 19 | - <el-input | ||
| 20 | - v-model="formData.name" | ||
| 21 | - :placeholder="$t('examineProjectManage.form.namePlaceholder')" | ||
| 22 | - /> | 2 | + <el-dialog :title="$t('examineProjectManage.add.title')" :visible.sync="visible" width="40%" @close="handleClose"> |
| 3 | + <el-form ref="form" :model="formData" :rules="rules" label-width="120px" label-position="right" class="text-left"> | ||
| 4 | + <el-form-item :label="$t('examineProjectManage.form.name')" prop="name"> | ||
| 5 | + <el-input v-model="formData.name" :placeholder="$t('examineProjectManage.form.namePlaceholder')" /> | ||
| 23 | </el-form-item> | 6 | </el-form-item> |
| 24 | - <el-form-item | ||
| 25 | - :label="$t('examineProjectManage.form.post')" | ||
| 26 | - prop="postCd" | ||
| 27 | - > | ||
| 28 | - <el-select | ||
| 29 | - v-model="formData.postCd" | ||
| 30 | - :placeholder="$t('examineProjectManage.form.postPlaceholder')" | ||
| 31 | - style="width:100%" | ||
| 32 | - > | ||
| 33 | - <el-option | ||
| 34 | - :label="$t('examineProjectManage.form.commonPost')" | ||
| 35 | - value="9999" | ||
| 36 | - /> | 7 | + <el-form-item :label="$t('examineProjectManage.form.post')" prop="postCd"> |
| 8 | + <el-select v-model="formData.postCd" :placeholder="$t('examineProjectManage.form.postPlaceholder')" | ||
| 9 | + style="width:100%"> | ||
| 10 | + <el-option :label="$t('examineProjectManage.form.commonPost')" value="9999" /> | ||
| 37 | </el-select> | 11 | </el-select> |
| 38 | </el-form-item> | 12 | </el-form-item> |
| 39 | - <el-form-item | ||
| 40 | - :label="$t('examineProjectManage.form.weight')" | ||
| 41 | - prop="weight" | ||
| 42 | - > | ||
| 43 | - <el-input | ||
| 44 | - v-model="formData.weight" | ||
| 45 | - :placeholder="$t('examineProjectManage.form.weightPlaceholder')" | ||
| 46 | - style="width:80%" | ||
| 47 | - > | 13 | + <el-form-item :label="$t('examineProjectManage.form.weight')" prop="weight"> |
| 14 | + <el-input v-model="formData.weight" :placeholder="$t('examineProjectManage.form.weightPlaceholder')" | ||
| 15 | + style="width:80%"> | ||
| 48 | <template slot="append">%</template> | 16 | <template slot="append">%</template> |
| 49 | </el-input> | 17 | </el-input> |
| 50 | </el-form-item> | 18 | </el-form-item> |
| 51 | - <el-form-item | ||
| 52 | - :label="$t('examineProjectManage.form.state')" | ||
| 53 | - prop="state" | ||
| 54 | - > | ||
| 55 | - <el-select | ||
| 56 | - v-model="formData.state" | ||
| 57 | - :placeholder="$t('examineProjectManage.form.statePlaceholder')" | ||
| 58 | - style="width:100%" | ||
| 59 | - > | ||
| 60 | - <el-option | ||
| 61 | - :label="$t('examineProjectManage.status.enable')" | ||
| 62 | - value="Y" | ||
| 63 | - /> | ||
| 64 | - <el-option | ||
| 65 | - :label="$t('examineProjectManage.status.disable')" | ||
| 66 | - value="N" | ||
| 67 | - /> | 19 | + <el-form-item :label="$t('examineProjectManage.form.state')" prop="state"> |
| 20 | + <el-select v-model="formData.state" :placeholder="$t('examineProjectManage.form.statePlaceholder')" | ||
| 21 | + style="width:100%"> | ||
| 22 | + <el-option :label="$t('examineProjectManage.status.enable')" value="Y" /> | ||
| 23 | + <el-option :label="$t('examineProjectManage.status.disable')" value="N" /> | ||
| 68 | </el-select> | 24 | </el-select> |
| 69 | </el-form-item> | 25 | </el-form-item> |
| 70 | </el-form> | 26 | </el-form> |
src/components/oa/addQuestionTitle.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog :title="$t('questionTitle.add.title')" :visible.sync="visible" width="70%" @close="handleClose"> | 2 | + <el-dialog :title="$t('questionTitle.add.title')" :visible.sync="visible" width="40%" @close="handleClose"> |
| 3 | <el-form ref="form" :model="formData" label-width="120px"> | 3 | <el-form ref="form" :model="formData" label-width="120px"> |
| 4 | <el-form-item :label="$t('questionTitle.add.name')" prop="qaTitle" :rules="[ | 4 | <el-form-item :label="$t('questionTitle.add.name')" prop="qaTitle" :rules="[ |
| 5 | { required: true, message: $t('questionTitle.add.nameRequired'), trigger: 'blur' }, | 5 | { required: true, message: $t('questionTitle.add.nameRequired'), trigger: 'blur' }, |
src/components/oa/complaintDetail.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog :title="`${form.typeCdName} ${$t('complaint.detail.title')}`" :visible.sync="visible" width="70%" top="5vh"> | 2 | + <el-dialog :title="`${form.typeName} ${$t('complaint.detail.title')}`" :visible.sync="visible" width="70%" |
| 3 | + top="5vh"> | ||
| 3 | <el-form label-width="120px"> | 4 | <el-form label-width="120px"> |
| 4 | <el-row :gutter="20"> | 5 | <el-row :gutter="20"> |
| 5 | <el-col :span="12"> | 6 | <el-col :span="12"> |
| @@ -17,7 +18,7 @@ | @@ -17,7 +18,7 @@ | ||
| 17 | <el-row :gutter="20"> | 18 | <el-row :gutter="20"> |
| 18 | <el-col :span="12"> | 19 | <el-col :span="12"> |
| 19 | <el-form-item :label="$t('complaint.detail.type')"> | 20 | <el-form-item :label="$t('complaint.detail.type')"> |
| 20 | - <el-input v-model="form.typeCdName" readonly /> | 21 | + <el-input v-model="form.typeName" readonly /> |
| 21 | </el-form-item> | 22 | </el-form-item> |
| 22 | </el-col> | 23 | </el-col> |
| 23 | <el-col :span="12"> | 24 | <el-col :span="12"> |
| @@ -58,7 +59,7 @@ | @@ -58,7 +59,7 @@ | ||
| 58 | </el-form-item> | 59 | </el-form-item> |
| 59 | </template> | 60 | </template> |
| 60 | 61 | ||
| 61 | - <el-form-item :label="`${form.typeCdName}${$t('complaint.detail.content')}`"> | 62 | + <el-form-item :label="`${$t('complaint.detail.content')}`"> |
| 62 | <el-input type="textarea" :rows="4" v-model="form.context" readonly /> | 63 | <el-input type="textarea" :rows="4" v-model="form.context" readonly /> |
| 63 | </el-form-item> | 64 | </el-form-item> |
| 64 | 65 | ||
| @@ -100,7 +101,7 @@ export default { | @@ -100,7 +101,7 @@ export default { | ||
| 100 | complaintName: '', | 101 | complaintName: '', |
| 101 | tel: '', | 102 | tel: '', |
| 102 | context: '', | 103 | context: '', |
| 103 | - typeCdName: '', | 104 | + typeName: '', |
| 104 | stateName: '', | 105 | stateName: '', |
| 105 | roomName: '', | 106 | roomName: '', |
| 106 | currentUserName: '', | 107 | currentUserName: '', |
| @@ -116,6 +117,7 @@ export default { | @@ -116,6 +117,7 @@ export default { | ||
| 116 | methods: { | 117 | methods: { |
| 117 | open(row) { | 118 | open(row) { |
| 118 | this.visible = true | 119 | this.visible = true |
| 120 | + console.log(row) | ||
| 119 | this.form = { | 121 | this.form = { |
| 120 | ...row, | 122 | ...row, |
| 121 | photosShow: row.photos.map(photo => ({ | 123 | photosShow: row.photos.map(photo => ({ |
src/components/oa/deleteQuestionAnswer.vue
| @@ -36,8 +36,8 @@ export default { | @@ -36,8 +36,8 @@ export default { | ||
| 36 | } | 36 | } |
| 37 | }, | 37 | }, |
| 38 | methods: { | 38 | methods: { |
| 39 | - open(qaId) { | ||
| 40 | - this.qaId = qaId | 39 | + open(qa) { |
| 40 | + this.qaId = qa.qaId | ||
| 41 | this.visible = true | 41 | this.visible = true |
| 42 | }, | 42 | }, |
| 43 | async handleConfirm() { | 43 | async handleConfirm() { |
src/components/oa/editExamineProject.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog | ||
| 3 | - :title="$t('examineProjectManage.edit.title')" | ||
| 4 | - :visible.sync="visible" | ||
| 5 | - width="50%" | ||
| 6 | - @close="handleClose" | ||
| 7 | - > | ||
| 8 | - <el-form | ||
| 9 | - ref="form" | ||
| 10 | - :model="formData" | ||
| 11 | - :rules="rules" | ||
| 12 | - label-width="120px" | ||
| 13 | - label-position="right" | ||
| 14 | - > | ||
| 15 | - <el-form-item | ||
| 16 | - :label="$t('examineProjectManage.form.name')" | ||
| 17 | - prop="name" | ||
| 18 | - > | ||
| 19 | - <el-input | ||
| 20 | - v-model="formData.name" | ||
| 21 | - :placeholder="$t('examineProjectManage.form.namePlaceholder')" | ||
| 22 | - /> | 2 | + <el-dialog :title="$t('examineProjectManage.edit.title')" :visible.sync="visible" width="40%" @close="handleClose"> |
| 3 | + <el-form ref="form" :model="formData" :rules="rules" label-width="120px" label-position="right" class="text-left"> | ||
| 4 | + <el-form-item :label="$t('examineProjectManage.form.name')" prop="name"> | ||
| 5 | + <el-input v-model="formData.name" :placeholder="$t('examineProjectManage.form.namePlaceholder')" /> | ||
| 23 | </el-form-item> | 6 | </el-form-item> |
| 24 | - <el-form-item | ||
| 25 | - :label="$t('examineProjectManage.form.post')" | ||
| 26 | - prop="postCd" | ||
| 27 | - > | ||
| 28 | - <el-select | ||
| 29 | - v-model="formData.postCd" | ||
| 30 | - :placeholder="$t('examineProjectManage.form.postPlaceholder')" | ||
| 31 | - style="width:100%" | ||
| 32 | - > | ||
| 33 | - <el-option | ||
| 34 | - :label="$t('examineProjectManage.form.commonPost')" | ||
| 35 | - value="9999" | ||
| 36 | - /> | 7 | + <el-form-item :label="$t('examineProjectManage.form.post')" prop="postCd"> |
| 8 | + <el-select v-model="formData.postCd" :placeholder="$t('examineProjectManage.form.postPlaceholder')" | ||
| 9 | + style="width:100%"> | ||
| 10 | + <el-option :label="$t('examineProjectManage.form.commonPost')" value="9999" /> | ||
| 37 | </el-select> | 11 | </el-select> |
| 38 | </el-form-item> | 12 | </el-form-item> |
| 39 | - <el-form-item | ||
| 40 | - :label="$t('examineProjectManage.form.weight')" | ||
| 41 | - prop="weight" | ||
| 42 | - > | ||
| 43 | - <el-input | ||
| 44 | - v-model="formData.weight" | ||
| 45 | - :placeholder="$t('examineProjectManage.form.weightPlaceholder')" | ||
| 46 | - style="width:80%" | ||
| 47 | - > | 13 | + <el-form-item :label="$t('examineProjectManage.form.weight')" prop="weight"> |
| 14 | + <el-input v-model="formData.weight" :placeholder="$t('examineProjectManage.form.weightPlaceholder')" | ||
| 15 | + style="width:80%"> | ||
| 48 | <template slot="append">%</template> | 16 | <template slot="append">%</template> |
| 49 | </el-input> | 17 | </el-input> |
| 50 | </el-form-item> | 18 | </el-form-item> |
| 51 | - <el-form-item | ||
| 52 | - :label="$t('examineProjectManage.form.state')" | ||
| 53 | - prop="state" | ||
| 54 | - > | ||
| 55 | - <el-select | ||
| 56 | - v-model="formData.state" | ||
| 57 | - :placeholder="$t('examineProjectManage.form.statePlaceholder')" | ||
| 58 | - style="width:100%" | ||
| 59 | - > | ||
| 60 | - <el-option | ||
| 61 | - :label="$t('examineProjectManage.status.enable')" | ||
| 62 | - value="Y" | ||
| 63 | - /> | ||
| 64 | - <el-option | ||
| 65 | - :label="$t('examineProjectManage.status.disable')" | ||
| 66 | - value="N" | ||
| 67 | - /> | 19 | + <el-form-item :label="$t('examineProjectManage.form.state')" prop="state"> |
| 20 | + <el-select v-model="formData.state" :placeholder="$t('examineProjectManage.form.statePlaceholder')" | ||
| 21 | + style="width:100%"> | ||
| 22 | + <el-option :label="$t('examineProjectManage.status.enable')" value="Y" /> | ||
| 23 | + <el-option :label="$t('examineProjectManage.status.disable')" value="N" /> | ||
| 68 | </el-select> | 24 | </el-select> |
| 69 | </el-form-item> | 25 | </el-form-item> |
| 70 | </el-form> | 26 | </el-form> |
src/views/oa/addExamineStaffList.vue
| @@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
| 9 | </el-button> | 9 | </el-button> |
| 10 | </div> | 10 | </div> |
| 11 | </div> | 11 | </div> |
| 12 | - <el-form ref="form" :model="addExamineStaffInfo" label-width="120px"> | 12 | + <el-form ref="form" :model="addExamineStaffInfo" label-width="120px" class="text-left"> |
| 13 | <el-row> | 13 | <el-row> |
| 14 | <el-col :span="24"> | 14 | <el-col :span="24"> |
| 15 | <el-form-item :label="$t('addExamineStaff.staffName')"> | 15 | <el-form-item :label="$t('addExamineStaff.staffName')"> |
| @@ -38,8 +38,7 @@ | @@ -38,8 +38,7 @@ | ||
| 38 | <el-row> | 38 | <el-row> |
| 39 | <el-col :span="24"> | 39 | <el-col :span="24"> |
| 40 | <el-form-item :label="$t('addExamineStaff.staffAvatar')"> | 40 | <el-form-item :label="$t('addExamineStaff.staffAvatar')"> |
| 41 | - <upload-image-url ref="uploadImage" :call-back-listener="'addExamineStaff'" | ||
| 42 | - :call-back-function="'notifyUploadImage'" :image-count="1"> | 41 | + <upload-image-url ref="uploadImage" @notifyUploadCoverImage="notifyUploadImage" :image-count="1"> |
| 43 | </upload-image-url> | 42 | </upload-image-url> |
| 44 | </el-form-item> | 43 | </el-form-item> |
| 45 | </el-col> | 44 | </el-col> |
| @@ -114,13 +113,10 @@ export default { | @@ -114,13 +113,10 @@ export default { | ||
| 114 | this.addExamineStaffInfo.communityId = getCommunityId() | 113 | this.addExamineStaffInfo.communityId = getCommunityId() |
| 115 | this._listExamineProjects() | 114 | this._listExamineProjects() |
| 116 | }, | 115 | }, |
| 117 | - mounted() { | ||
| 118 | - this.$on('addExamineStaff', 'notifyUploadImage', this.notifyUploadImage) | ||
| 119 | - }, | ||
| 120 | methods: { | 116 | methods: { |
| 121 | notifyUploadImage(_param) { | 117 | notifyUploadImage(_param) { |
| 122 | if (_param.length > 0) { | 118 | if (_param.length > 0) { |
| 123 | - this.addExamineStaffInfo.headerImg = _param[0].fileId | 119 | + this.addExamineStaffInfo.headerImg = _param[0] |
| 124 | } else { | 120 | } else { |
| 125 | this.addExamineStaffInfo.headerImg = '' | 121 | this.addExamineStaffInfo.headerImg = '' |
| 126 | } | 122 | } |
src/views/oa/addQuestionAnswerLang.js
| @@ -25,17 +25,6 @@ export const messages = { | @@ -25,17 +25,6 @@ export const messages = { | ||
| 25 | saveSuccess: 'Questionnaire saved successfully', | 25 | saveSuccess: 'Questionnaire saved successfully', |
| 26 | saveError: 'Failed to save questionnaire' | 26 | saveError: 'Failed to save questionnaire' |
| 27 | }, | 27 | }, |
| 28 | - questionTitle: { | ||
| 29 | - name: 'Name', | ||
| 30 | - type: 'Type', | ||
| 31 | - options: 'Options', | ||
| 32 | - operation: 'Operation', | ||
| 33 | - delete: 'Delete', | ||
| 34 | - createTime: 'Create Time', | ||
| 35 | - singleChoice: 'Single Choice', | ||
| 36 | - multipleChoice: 'Multiple Choice', | ||
| 37 | - shortAnswer: 'Short Answer' | ||
| 38 | - }, | ||
| 39 | selectRoom: { | 28 | selectRoom: { |
| 40 | buildingUnit: 'Building Unit', | 29 | buildingUnit: 'Building Unit', |
| 41 | roomInfo: 'Room Information', | 30 | roomInfo: 'Room Information', |
| @@ -78,17 +67,6 @@ export const messages = { | @@ -78,17 +67,6 @@ export const messages = { | ||
| 78 | saveSuccess: '问卷保存成功', | 67 | saveSuccess: '问卷保存成功', |
| 79 | saveError: '问卷保存失败' | 68 | saveError: '问卷保存失败' |
| 80 | }, | 69 | }, |
| 81 | - questionTitle: { | ||
| 82 | - name: '名称', | ||
| 83 | - type: '类型', | ||
| 84 | - options: '选项', | ||
| 85 | - operation: '操作', | ||
| 86 | - delete: '删除', | ||
| 87 | - createTime: '创建时间', | ||
| 88 | - singleChoice: '单选', | ||
| 89 | - multipleChoice: '多选', | ||
| 90 | - shortAnswer: '简答' | ||
| 91 | - }, | ||
| 92 | selectRoom: { | 70 | selectRoom: { |
| 93 | buildingUnit: '楼栋单元', | 71 | buildingUnit: '楼栋单元', |
| 94 | roomInfo: '房屋信息', | 72 | roomInfo: '房屋信息', |
src/views/oa/addQuestionAnswerList.vue
| @@ -52,23 +52,23 @@ | @@ -52,23 +52,23 @@ | ||
| 52 | </el-button> | 52 | </el-button> |
| 53 | </div> | 53 | </div> |
| 54 | <el-table :data="addQuestionAnswerInfo.questionTitles" border style="width: 100%"> | 54 | <el-table :data="addQuestionAnswerInfo.questionTitles" border style="width: 100%"> |
| 55 | - <el-table-column prop="qaTitle" :label="$t('questionTitle.name')" align="center" /> | ||
| 56 | - <el-table-column prop="titleType" :label="$t('questionTitle.type')" align="center"> | 55 | + <el-table-column prop="qaTitle" :label="$t('questionTitle.table.name')" align="center" /> |
| 56 | + <el-table-column prop="titleType" :label="$t('questionTitle.table.type')" align="center"> | ||
| 57 | <template slot-scope="scope"> | 57 | <template slot-scope="scope"> |
| 58 | {{ getTitleTypeName(scope.row.titleType) }} | 58 | {{ getTitleTypeName(scope.row.titleType) }} |
| 59 | </template> | 59 | </template> |
| 60 | </el-table-column> | 60 | </el-table-column> |
| 61 | - <el-table-column :label="$t('questionTitle.options')" align="center"> | 61 | + <el-table-column :label="$t('questionTitle.table.options')" align="center"> |
| 62 | <template slot-scope="scope"> | 62 | <template slot-scope="scope"> |
| 63 | <div v-for="(item, index) in scope.row.titleValues" :key="index"> | 63 | <div v-for="(item, index) in scope.row.titleValues" :key="index"> |
| 64 | {{ item.seq }}、{{ item.qaValue }} | 64 | {{ item.seq }}、{{ item.qaValue }} |
| 65 | </div> | 65 | </div> |
| 66 | </template> | 66 | </template> |
| 67 | </el-table-column> | 67 | </el-table-column> |
| 68 | - <el-table-column :label="$t('questionTitle.operation')" align="center" width="150"> | 68 | + <el-table-column :label="$t('common.operation')" align="center" width="150"> |
| 69 | <template slot-scope="scope"> | 69 | <template slot-scope="scope"> |
| 70 | <el-button type="danger" size="mini" @click="openDeleteQuestionTitle(scope.row)"> | 70 | <el-button type="danger" size="mini" @click="openDeleteQuestionTitle(scope.row)"> |
| 71 | - {{ $t('questionTitle.delete') }} | 71 | + {{ $t('common.delete') }} |
| 72 | </el-button> | 72 | </el-button> |
| 73 | </template> | 73 | </template> |
| 74 | </el-table-column> | 74 | </el-table-column> |
| @@ -134,11 +134,11 @@ export default { | @@ -134,11 +134,11 @@ export default { | ||
| 134 | methods: { | 134 | methods: { |
| 135 | getTitleTypeName(titleType) { | 135 | getTitleTypeName(titleType) { |
| 136 | if (titleType === '1001') { | 136 | if (titleType === '1001') { |
| 137 | - return this.$t('questionTitle.singleChoice') | 137 | + return this.$t('questionTitle.types.singleChoice') |
| 138 | } else if (titleType === '2002') { | 138 | } else if (titleType === '2002') { |
| 139 | - return this.$t('questionTitle.multipleChoice') | 139 | + return this.$t('questionTitle.types.multipleChoice') |
| 140 | } else { | 140 | } else { |
| 141 | - return this.$t('questionTitle.shortAnswer') | 141 | + return this.$t('questionTitle.types.shortAnswer') |
| 142 | } | 142 | } |
| 143 | }, | 143 | }, |
| 144 | chooseTitle() { | 144 | chooseTitle() { |
src/views/oa/complaintList.vue
| @@ -2,9 +2,9 @@ | @@ -2,9 +2,9 @@ | ||
| 2 | <div class="complaint-container animated fadeInRight"> | 2 | <div class="complaint-container animated fadeInRight"> |
| 3 | <el-row :gutter="20"> | 3 | <el-row :gutter="20"> |
| 4 | <el-col :span="4"> | 4 | <el-col :span="4"> |
| 5 | - <el-card class="border-radius"> | ||
| 6 | - <div class="treeview"> | ||
| 7 | - <ul class="list-group text-center border-radius"> | 5 | + <div class="list-group-border-radius"> |
| 6 | + <div class=" treeview"> | ||
| 7 | + <ul class="list-group text-center "> | ||
| 8 | <li v-for="(item, index) in complaintInfo.states" :key="index" @click="swatchComplaintState(item)" | 8 | <li v-for="(item, index) in complaintInfo.states" :key="index" @click="swatchComplaintState(item)" |
| 9 | :class="{ 'vc-node-selected': complaintInfo.conditions.state == item.statusCd }" | 9 | :class="{ 'vc-node-selected': complaintInfo.conditions.state == item.statusCd }" |
| 10 | class="list-group-item node-orgTree"> | 10 | class="list-group-item node-orgTree"> |
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | </li> | 12 | </li> |
| 13 | </ul> | 13 | </ul> |
| 14 | </div> | 14 | </div> |
| 15 | - </el-card> | 15 | + </div> |
| 16 | </el-col> | 16 | </el-col> |
| 17 | <el-col :span="20"> | 17 | <el-col :span="20"> |
| 18 | <el-card> | 18 | <el-card> |
| @@ -233,28 +233,6 @@ export default { | @@ -233,28 +233,6 @@ export default { | ||
| 233 | border-radius: 4px; | 233 | border-radius: 4px; |
| 234 | } | 234 | } |
| 235 | 235 | ||
| 236 | - .treeview { | ||
| 237 | - .list-group { | ||
| 238 | - padding: 0; | ||
| 239 | - margin: 0; | ||
| 240 | - list-style: none; | ||
| 241 | - | ||
| 242 | - .list-group-item { | ||
| 243 | - padding: 10px 15px; | ||
| 244 | - margin-bottom: -1px; | ||
| 245 | - border: 1px solid #ddd; | ||
| 246 | - cursor: pointer; | ||
| 247 | - | ||
| 248 | - &:hover { | ||
| 249 | - background-color: #f5f5f5; | ||
| 250 | - } | ||
| 251 | - | ||
| 252 | - &.vc-node-selected { | ||
| 253 | - background-color: #409EFF; | ||
| 254 | - color: #fff; | ||
| 255 | - } | ||
| 256 | - } | ||
| 257 | - } | ||
| 258 | - } | 236 | + |
| 259 | } | 237 | } |
| 260 | </style> | 238 | </style> |
| 261 | \ No newline at end of file | 239 | \ No newline at end of file |
src/views/oa/editExamineStaffList.vue
| @@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
| 10 | </div> | 10 | </div> |
| 11 | </div> | 11 | </div> |
| 12 | 12 | ||
| 13 | - <el-form ref="form" :model="editExamineStaffInfo" label-width="120px"> | 13 | + <el-form ref="form" :model="editExamineStaffInfo" label-width="120px" class="text-left"> |
| 14 | <el-row> | 14 | <el-row> |
| 15 | <el-col :span="24"> | 15 | <el-col :span="24"> |
| 16 | <el-form-item :label="$t('editExamineStaff.staffName')"> | 16 | <el-form-item :label="$t('editExamineStaff.staffName')"> |
| @@ -37,7 +37,7 @@ | @@ -37,7 +37,7 @@ | ||
| 37 | <el-row> | 37 | <el-row> |
| 38 | <el-col :span="24"> | 38 | <el-col :span="24"> |
| 39 | <el-form-item :label="$t('editExamineStaff.staffPhoto')"> | 39 | <el-form-item :label="$t('editExamineStaff.staffPhoto')"> |
| 40 | - <upload-image-url ref="uploadImage" :image-count="1" @notifyUploadImage="handleUploadImage"> | 40 | + <upload-image-url ref="uploadImage" :image-count="1" @notifyUploadCoverImage="handleUploadImage"> |
| 41 | </upload-image-url> | 41 | </upload-image-url> |
| 42 | </el-form-item> | 42 | </el-form-item> |
| 43 | </el-col> | 43 | </el-col> |
| @@ -108,7 +108,7 @@ export default { | @@ -108,7 +108,7 @@ export default { | ||
| 108 | methods: { | 108 | methods: { |
| 109 | handleUploadImage(images) { | 109 | handleUploadImage(images) { |
| 110 | if (images.length > 0) { | 110 | if (images.length > 0) { |
| 111 | - this.editExamineStaffInfo.headerImg = images[0].fileId | 111 | + this.editExamineStaffInfo.headerImg = images[0] |
| 112 | } else { | 112 | } else { |
| 113 | this.editExamineStaffInfo.headerImg = '' | 113 | this.editExamineStaffInfo.headerImg = '' |
| 114 | } | 114 | } |
src/views/oa/examineProjectManageList.vue
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | <div slot="header" class="flex justify-between"> | 5 | <div slot="header" class="flex justify-between"> |
| 6 | <span>{{ $t('examineProjectManage.search.title') }}</span> | 6 | <span>{{ $t('examineProjectManage.search.title') }}</span> |
| 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 v-model="searchForm.name" :placeholder="$t('examineProjectManage.search.namePlaceholder')" | 10 | <el-input v-model="searchForm.name" :placeholder="$t('examineProjectManage.search.namePlaceholder')" |
| 11 | clearable /> | 11 | clearable /> |
src/views/oa/printOwnerVotingList.vue
| 1 | <template> | 1 | <template> |
| 2 | <div class="print-owner-voting-container"> | 2 | <div class="print-owner-voting-container"> |
| 3 | - <el-card> | ||
| 4 | <el-row> | 3 | <el-row> |
| 5 | <el-col :span="24"> | 4 | <el-col :span="24"> |
| 6 | <div class="text-center"> | 5 | <div class="text-center"> |
| @@ -98,7 +97,7 @@ | @@ -98,7 +97,7 @@ | ||
| 98 | </el-button> | 97 | </el-button> |
| 99 | </el-col> | 98 | </el-col> |
| 100 | </el-row> | 99 | </el-row> |
| 101 | - </el-card> | 100 | + |
| 102 | </div> | 101 | </div> |
| 103 | </template> | 102 | </template> |
| 104 | 103 |
src/views/oa/printQuestionAnswerList.vue
| 1 | <template> | 1 | <template> |
| 2 | <div class="print-question-answer-container"> | 2 | <div class="print-question-answer-container"> |
| 3 | - <el-card> | 3 | + |
| 4 | <div class="text-center"> | 4 | <div class="text-center"> |
| 5 | <h1>{{ printQuestionAnswerInfo.qaName }}</h1> | 5 | <h1>{{ printQuestionAnswerInfo.qaName }}</h1> |
| 6 | </div> | 6 | </div> |
| @@ -59,7 +59,7 @@ | @@ -59,7 +59,7 @@ | ||
| 59 | {{ $t('common.cancel') }} | 59 | {{ $t('common.cancel') }} |
| 60 | </el-button> | 60 | </el-button> |
| 61 | </div> | 61 | </div> |
| 62 | - </el-card> | 62 | + |
| 63 | </div> | 63 | </div> |
| 64 | </template> | 64 | </template> |
| 65 | 65 |
src/views/oa/visitManageList.vue
| @@ -168,6 +168,7 @@ | @@ -168,6 +168,7 @@ | ||
| 168 | import { listVisits, listVisitTypes } from '@/api/oa/visitManageApi' | 168 | import { listVisits, listVisitTypes } from '@/api/oa/visitManageApi' |
| 169 | import { getDict } from '@/api/community/communityApi' | 169 | import { getDict } from '@/api/community/communityApi' |
| 170 | import { getCommunityId } from '@/api/community/communityApi' | 170 | import { getCommunityId } from '@/api/community/communityApi' |
| 171 | +import { jumpToIot } from '@/api/user/menuApi' | ||
| 171 | 172 | ||
| 172 | export default { | 173 | export default { |
| 173 | name: 'VisitManageList', | 174 | name: 'VisitManageList', |
| @@ -274,7 +275,8 @@ export default { | @@ -274,7 +275,8 @@ export default { | ||
| 274 | this._listVisits(1, this.page.size) | 275 | this._listVisits(1, this.page.size) |
| 275 | }, | 276 | }, |
| 276 | _toIotVisit() { | 277 | _toIotVisit() { |
| 277 | - this.$router.push('/pages/accessControl/visitManage') | 278 | + //this.$router.push('/pages/accessControl/visitManage') |
| 279 | + jumpToIot('/#/pages/accessControl/visitManage') | ||
| 278 | }, | 280 | }, |
| 279 | _toVisitDetail(visit) { | 281 | _toVisitDetail(visit) { |
| 280 | this.$router.push(`/pages/accessControl/visitDetail?visitId=${visit.visitId}&phoneNumber=${visit.phoneNumber}`) | 282 | this.$router.push(`/pages/accessControl/visitDetail?visitId=${visit.visitId}&phoneNumber=${visit.phoneNumber}`) |