Commit 62011a1463fd806eff8f6deb23a2c2d36ba0af96
1 parent
c3bd0a26
v1.9 修复合同上传附件bug 修复
Showing
5 changed files
with
77 additions
and
118 deletions
src/api/contract/contractDetailFileApi.js
| 1 | 1 | import request from '@/utils/request' |
| 2 | 2 | |
| 3 | 3 | export function queryContractFile(params) { |
| 4 | - return request({ | |
| 5 | - url: '/contractFile/queryContractFile', | |
| 6 | - method: 'get', | |
| 7 | - params | |
| 4 | + return new Promise((resolve, reject) => { | |
| 5 | + request({ | |
| 6 | + url: '/contractFile/queryContractFile', | |
| 7 | + method: 'get', | |
| 8 | + params | |
| 9 | + }).then(response => { | |
| 10 | + const res = response.data | |
| 11 | + resolve(res) | |
| 12 | + }).catch(error => { | |
| 13 | + reject(error) | |
| 14 | + }) | |
| 8 | 15 | }) |
| 9 | 16 | } |
| 10 | 17 | \ No newline at end of file | ... | ... |
src/components/contract/contractDetailFile.vue
| ... | ... | @@ -2,17 +2,19 @@ |
| 2 | 2 | <div class="margin-top"> |
| 3 | 3 | <el-row class="margin-top-lg"></el-row> |
| 4 | 4 | <div class="margin-top"> |
| 5 | - <el-row> | |
| 6 | - <el-col :span="10"> | |
| 7 | - <el-form-item :label="$t('contractDetailFile.relatedFiles')"> | |
| 8 | - <div v-for="(file,index) in contractDetailFileInfo.files" :key="index" style="margin-left: 50px;"> | |
| 9 | - <el-link type="primary" @click="_viewFile(file)"> | |
| 10 | - {{ file.fileRealName }} | |
| 11 | - </el-link> | |
| 12 | - </div> | |
| 13 | - </el-form-item> | |
| 14 | - </el-col> | |
| 15 | - </el-row> | |
| 5 | + <el-form :model="contractDetailFileInfo" label-width="120px" class="text-left"> | |
| 6 | + <el-row> | |
| 7 | + <el-col :span="10"> | |
| 8 | + <el-form-item :label="$t('contractDetailFile.relatedFiles')"> | |
| 9 | + <div v-for="(file, index) in contractDetailFileInfo.files" :key="index" style="margin-left: 50px;"> | |
| 10 | + <el-link type="primary" @click="_viewFile(file)"> | |
| 11 | + {{ file.fileRealName }} | |
| 12 | + </el-link> | |
| 13 | + </div> | |
| 14 | + </el-form-item> | |
| 15 | + </el-col> | |
| 16 | + </el-row> | |
| 17 | + </el-form> | |
| 16 | 18 | </div> |
| 17 | 19 | </div> |
| 18 | 20 | </template> |
| ... | ... | @@ -30,21 +32,25 @@ export default { |
| 30 | 32 | contractId: '', |
| 31 | 33 | roomNum: '', |
| 32 | 34 | allOweFeeAmount: '0' |
| 33 | - } | |
| 35 | + }, | |
| 36 | + pagination: { | |
| 37 | + page: 1, | |
| 38 | + row: 100 | |
| 39 | + }, | |
| 34 | 40 | } |
| 35 | 41 | }, |
| 36 | 42 | methods: { |
| 37 | 43 | open(data) { |
| 38 | 44 | this.contractDetailFileInfo.contractId = data.contractId |
| 39 | - this._loadContractDetailFileData(1, this.pagination.pageSize) | |
| 45 | + this._loadContractDetailFileData(1, this.pagination.row) | |
| 40 | 46 | }, |
| 41 | 47 | _loadContractDetailFileData(page, row) { |
| 42 | 48 | const params = { |
| 43 | 49 | contractId: this.contractDetailFileInfo.contractId, |
| 44 | 50 | page: page || 1, |
| 45 | - row: row || 100 | |
| 51 | + row: row || this.pagination.row | |
| 46 | 52 | } |
| 47 | - | |
| 53 | + | |
| 48 | 54 | queryContractFile(params).then(response => { |
| 49 | 55 | this.contractDetailFileInfo.files = response.data |
| 50 | 56 | }).catch(error => { |
| ... | ... | @@ -65,6 +71,7 @@ export default { |
| 65 | 71 | .margin-top { |
| 66 | 72 | margin-top: 20px; |
| 67 | 73 | } |
| 74 | + | |
| 68 | 75 | .margin-top-lg { |
| 69 | 76 | margin-top: 30px; |
| 70 | 77 | } | ... | ... |
src/components/contract/editContract.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog | |
| 3 | - :title="$t('contractManage.edit.title')" | |
| 4 | - :visible.sync="visible" | |
| 5 | - width="70%" | |
| 6 | - :before-close="handleClose" | |
| 7 | - > | |
| 2 | + <el-dialog :title="$t('contractManage.edit.title')" :visible.sync="visible" width="70%" :before-close="handleClose"> | |
| 8 | 3 | <el-form :model="editContractInfo" label-width="120px" class="text-left" ref="editForm"> |
| 9 | 4 | <el-row :gutter="20"> |
| 10 | 5 | <el-col :span="8"> |
| 11 | 6 | <el-form-item :label="$t('contractManage.edit.contractName')" prop="contractName" required> |
| 12 | - <el-input | |
| 13 | - v-model="editContractInfo.contractName" | |
| 14 | - :placeholder="$t('contractManage.edit.contractNamePlaceholder')" | |
| 15 | - /> | |
| 7 | + <el-input v-model="editContractInfo.contractName" | |
| 8 | + :placeholder="$t('contractManage.edit.contractNamePlaceholder')" /> | |
| 16 | 9 | </el-form-item> |
| 17 | 10 | </el-col> |
| 18 | 11 | <el-col :span="8"> |
| 19 | 12 | <el-form-item :label="$t('contractManage.edit.contractCode')" prop="contractCode" required> |
| 20 | - <el-input | |
| 21 | - v-model="editContractInfo.contractCode" | |
| 22 | - :placeholder="$t('contractManage.edit.contractCodePlaceholder')" | |
| 23 | - /> | |
| 13 | + <el-input v-model="editContractInfo.contractCode" | |
| 14 | + :placeholder="$t('contractManage.edit.contractCodePlaceholder')" /> | |
| 24 | 15 | </el-form-item> |
| 25 | 16 | </el-col> |
| 26 | 17 | <el-col :span="8"> |
| 27 | 18 | <el-form-item :label="$t('contractManage.edit.contractType')" prop="contractType" required> |
| 28 | - <el-select | |
| 29 | - v-model="editContractInfo.contractType" | |
| 30 | - :placeholder="$t('contractManage.edit.contractTypePlaceholder')" | |
| 31 | - style="width:100%" | |
| 32 | - disabled | |
| 33 | - > | |
| 34 | - <el-option | |
| 35 | - v-for="item in editContractInfo.contractTypes" | |
| 36 | - :key="item.contractTypeId" | |
| 37 | - :label="item.typeName" | |
| 38 | - :value="item.contractTypeId" | |
| 39 | - /> | |
| 19 | + <el-select v-model="editContractInfo.contractType" | |
| 20 | + :placeholder="$t('contractManage.edit.contractTypePlaceholder')" style="width:100%" disabled> | |
| 21 | + <el-option v-for="item in editContractInfo.contractTypes" :key="item.contractTypeId" | |
| 22 | + :label="item.typeName" :value="item.contractTypeId" /> | |
| 40 | 23 | </el-select> |
| 41 | 24 | </el-form-item> |
| 42 | 25 | </el-col> |
| ... | ... | @@ -45,26 +28,18 @@ |
| 45 | 28 | <el-row :gutter="20"> |
| 46 | 29 | <el-col :span="8"> |
| 47 | 30 | <el-form-item :label="$t('contractManage.edit.partyA')" prop="partyA" required> |
| 48 | - <el-input | |
| 49 | - v-model="editContractInfo.partyA" | |
| 50 | - :placeholder="$t('contractManage.edit.partyAPlaceholder')" | |
| 51 | - /> | |
| 31 | + <el-input v-model="editContractInfo.partyA" :placeholder="$t('contractManage.edit.partyAPlaceholder')" /> | |
| 52 | 32 | </el-form-item> |
| 53 | 33 | </el-col> |
| 54 | 34 | <el-col :span="8"> |
| 55 | 35 | <el-form-item :label="$t('contractManage.edit.aContacts')" prop="aContacts" required> |
| 56 | - <el-input | |
| 57 | - v-model="editContractInfo.aContacts" | |
| 58 | - :placeholder="$t('contractManage.edit.aContactsPlaceholder')" | |
| 59 | - /> | |
| 36 | + <el-input v-model="editContractInfo.aContacts" | |
| 37 | + :placeholder="$t('contractManage.edit.aContactsPlaceholder')" /> | |
| 60 | 38 | </el-form-item> |
| 61 | 39 | </el-col> |
| 62 | 40 | <el-col :span="8"> |
| 63 | 41 | <el-form-item :label="$t('contractManage.edit.aLink')" prop="aLink" required> |
| 64 | - <el-input | |
| 65 | - v-model="editContractInfo.aLink" | |
| 66 | - :placeholder="$t('contractManage.edit.aLinkPlaceholder')" | |
| 67 | - /> | |
| 42 | + <el-input v-model="editContractInfo.aLink" :placeholder="$t('contractManage.edit.aLinkPlaceholder')" /> | |
| 68 | 43 | </el-form-item> |
| 69 | 44 | </el-col> |
| 70 | 45 | </el-row> |
| ... | ... | @@ -72,26 +47,18 @@ |
| 72 | 47 | <el-row :gutter="20"> |
| 73 | 48 | <el-col :span="8"> |
| 74 | 49 | <el-form-item :label="$t('contractManage.edit.partyB')" prop="partyB" required> |
| 75 | - <el-input | |
| 76 | - v-model="editContractInfo.partyB" | |
| 77 | - :placeholder="$t('contractManage.edit.partyBPlaceholder')" | |
| 78 | - /> | |
| 50 | + <el-input v-model="editContractInfo.partyB" :placeholder="$t('contractManage.edit.partyBPlaceholder')" /> | |
| 79 | 51 | </el-form-item> |
| 80 | 52 | </el-col> |
| 81 | 53 | <el-col :span="8"> |
| 82 | 54 | <el-form-item :label="$t('contractManage.edit.bContacts')" prop="bContacts" required> |
| 83 | - <el-input | |
| 84 | - v-model="editContractInfo.bContacts" | |
| 85 | - :placeholder="$t('contractManage.edit.bContactsPlaceholder')" | |
| 86 | - /> | |
| 55 | + <el-input v-model="editContractInfo.bContacts" | |
| 56 | + :placeholder="$t('contractManage.edit.bContactsPlaceholder')" /> | |
| 87 | 57 | </el-form-item> |
| 88 | 58 | </el-col> |
| 89 | 59 | <el-col :span="8"> |
| 90 | 60 | <el-form-item :label="$t('contractManage.edit.bLink')" prop="bLink" required> |
| 91 | - <el-input | |
| 92 | - v-model="editContractInfo.bLink" | |
| 93 | - :placeholder="$t('contractManage.edit.bLinkPlaceholder')" | |
| 94 | - /> | |
| 61 | + <el-input v-model="editContractInfo.bLink" :placeholder="$t('contractManage.edit.bLinkPlaceholder')" /> | |
| 95 | 62 | </el-form-item> |
| 96 | 63 | </el-col> |
| 97 | 64 | </el-row> |
| ... | ... | @@ -99,26 +66,19 @@ |
| 99 | 66 | <el-row :gutter="20"> |
| 100 | 67 | <el-col :span="8"> |
| 101 | 68 | <el-form-item :label="$t('contractManage.edit.operator')" prop="operator" required> |
| 102 | - <el-input | |
| 103 | - v-model="editContractInfo.operator" | |
| 104 | - :placeholder="$t('contractManage.edit.operatorPlaceholder')" | |
| 105 | - /> | |
| 69 | + <el-input v-model="editContractInfo.operator" | |
| 70 | + :placeholder="$t('contractManage.edit.operatorPlaceholder')" /> | |
| 106 | 71 | </el-form-item> |
| 107 | 72 | </el-col> |
| 108 | 73 | <el-col :span="8"> |
| 109 | 74 | <el-form-item :label="$t('contractManage.edit.operatorLink')" prop="operatorLink" required> |
| 110 | - <el-input | |
| 111 | - v-model="editContractInfo.operatorLink" | |
| 112 | - :placeholder="$t('contractManage.edit.operatorLinkPlaceholder')" | |
| 113 | - /> | |
| 75 | + <el-input v-model="editContractInfo.operatorLink" | |
| 76 | + :placeholder="$t('contractManage.edit.operatorLinkPlaceholder')" /> | |
| 114 | 77 | </el-form-item> |
| 115 | 78 | </el-col> |
| 116 | 79 | <el-col :span="8"> |
| 117 | 80 | <el-form-item :label="$t('contractManage.edit.amount')" prop="amount"> |
| 118 | - <el-input | |
| 119 | - v-model="editContractInfo.amount" | |
| 120 | - :placeholder="$t('contractManage.edit.amountPlaceholder')" | |
| 121 | - /> | |
| 81 | + <el-input v-model="editContractInfo.amount" :placeholder="$t('contractManage.edit.amountPlaceholder')" /> | |
| 122 | 82 | </el-form-item> |
| 123 | 83 | </el-col> |
| 124 | 84 | </el-row> |
| ... | ... | @@ -126,46 +86,32 @@ |
| 126 | 86 | <el-row :gutter="20"> |
| 127 | 87 | <el-col :span="8"> |
| 128 | 88 | <el-form-item :label="$t('contractManage.edit.startTime')" prop="startTime" required> |
| 129 | - <el-date-picker | |
| 130 | - v-model="editContractInfo.startTime" | |
| 131 | - type="datetime" | |
| 132 | - :placeholder="$t('contractManage.edit.startTimePlaceholder')" | |
| 133 | - style="width:100%" | |
| 134 | - /> | |
| 89 | + <el-date-picker v-model="editContractInfo.startTime" type="datetime" | |
| 90 | + :placeholder="$t('contractManage.edit.startTimePlaceholder')" style="width:100%" /> | |
| 135 | 91 | </el-form-item> |
| 136 | 92 | </el-col> |
| 137 | 93 | <el-col :span="8"> |
| 138 | 94 | <el-form-item :label="$t('contractManage.edit.endTime')" prop="endTime" required> |
| 139 | - <el-date-picker | |
| 140 | - v-model="editContractInfo.endTime" | |
| 141 | - type="datetime" | |
| 142 | - :placeholder="$t('contractManage.edit.endTimePlaceholder')" | |
| 143 | - style="width:100%" | |
| 144 | - /> | |
| 95 | + <el-date-picker v-model="editContractInfo.endTime" type="datetime" | |
| 96 | + :placeholder="$t('contractManage.edit.endTimePlaceholder')" style="width:100%" /> | |
| 145 | 97 | </el-form-item> |
| 146 | 98 | </el-col> |
| 147 | 99 | <el-col :span="8"> |
| 148 | 100 | <el-form-item :label="$t('contractManage.edit.signingTime')" prop="signingTime" required> |
| 149 | - <el-date-picker | |
| 150 | - v-model="editContractInfo.signingTime" | |
| 151 | - type="datetime" | |
| 152 | - :placeholder="$t('contractManage.edit.signingTimePlaceholder')" | |
| 153 | - style="width:100%" | |
| 154 | - /> | |
| 101 | + <el-date-picker v-model="editContractInfo.signingTime" type="datetime" | |
| 102 | + :placeholder="$t('contractManage.edit.signingTimePlaceholder')" style="width:100%" /> | |
| 155 | 103 | </el-form-item> |
| 156 | 104 | </el-col> |
| 157 | 105 | </el-row> |
| 158 | 106 | |
| 159 | 107 | <!-- 合同类型规格 --> |
| 160 | - <div v-for="(item,index) in editContractInfo.contractTypeSpecs" :key="index"> | |
| 108 | + <div v-for="(item, index) in editContractInfo.contractTypeSpecs" :key="index"> | |
| 161 | 109 | <el-row :gutter="20" v-if="index % 3 === 0"> |
| 162 | 110 | <el-col :span="8" v-for="i in 3" :key="i"> |
| 163 | 111 | <div v-if="editContractInfo.contractTypeSpecs[index + i - 1]"> |
| 164 | 112 | <el-form-item :label="editContractInfo.contractTypeSpecs[index + i - 1].specName"> |
| 165 | - <el-input | |
| 166 | - v-model="editContractInfo.contractTypeSpecs[index + i - 1].value" | |
| 167 | - :placeholder="editContractInfo.contractTypeSpecs[index + i - 1].specHoldplace" | |
| 168 | - /> | |
| 113 | + <el-input v-model="editContractInfo.contractTypeSpecs[index + i - 1].value" | |
| 114 | + :placeholder="editContractInfo.contractTypeSpecs[index + i - 1].specHoldplace" /> | |
| 169 | 115 | </el-form-item> |
| 170 | 116 | </div> |
| 171 | 117 | </el-col> |
| ... | ... | @@ -177,18 +123,14 @@ |
| 177 | 123 | <el-button type="primary" @click="addFileStep"> |
| 178 | 124 | {{ $t('contractManage.edit.addFile') }} |
| 179 | 125 | </el-button> |
| 180 | - <div v-for="(item,index) in editContractInfo.contractFilePo" :key="index" style="margin-top:10px"> | |
| 126 | + <div v-for="(item, index) in editContractInfo.contractFilePo" :key="index" style="margin-top:10px"> | |
| 181 | 127 | <el-row :gutter="10"> |
| 182 | 128 | <el-col :span="2"> |
| 183 | - <span>{{ $t('contractManage.edit.fileIndex', {index: index+1}) }}</span> | |
| 129 | + <span>{{ $t('contractManage.edit.fileIndex', { index: index + 1 }) }}</span> | |
| 184 | 130 | </el-col> |
| 185 | 131 | <el-col :span="10"> |
| 186 | - <input | |
| 187 | - type="file" | |
| 188 | - style="display:inline-block;width:100%" | |
| 189 | - @change="getFile($event,index)" | |
| 190 | - accept=".png,.pdf,.jpg" | |
| 191 | - /> | |
| 132 | + <input type="file" style="display:inline-block;width:100%" @change="getFile($event, index)" | |
| 133 | + accept=".png,.pdf,.jpg" /> | |
| 192 | 134 | </el-col> |
| 193 | 135 | <el-col :span="6"> |
| 194 | 136 | <span>{{ item.fileRealName }}</span> |
| ... | ... | @@ -211,7 +153,8 @@ |
| 211 | 153 | </template> |
| 212 | 154 | |
| 213 | 155 | <script> |
| 214 | -import { updateContract, queryContractTypeSpec, queryContractFile, uploadContactFile } from '@/api/contract/contractManageApi' | |
| 156 | +import { updateContract, queryContractTypeSpec, queryContractFile } from '@/api/contract/contractManageApi' | |
| 157 | +import { uploadFile } from '@/api/system/paymentPoolApi' | |
| 215 | 158 | |
| 216 | 159 | export default { |
| 217 | 160 | name: 'EditContract', |
| ... | ... | @@ -352,8 +295,8 @@ export default { |
| 352 | 295 | const formData = new FormData() |
| 353 | 296 | formData.append('uploadFile', this.editContractInfo.tempfile) |
| 354 | 297 | |
| 355 | - const fileSaveName = await uploadContactFile(formData) | |
| 356 | - this.editContractInfo.contractFilePo[index].fileSaveName = fileSaveName | |
| 298 | + const data = await uploadFile(formData,{}) | |
| 299 | + this.editContractInfo.contractFilePo[index].fileSaveName = data.realFileName | |
| 357 | 300 | this.$message.success(this.$t('contractManage.edit.uploadSuccess')) |
| 358 | 301 | } catch (error) { |
| 359 | 302 | console.error('上传文件失败:', error) | ... | ... |
src/views/contract/addContractList.vue
| ... | ... | @@ -235,6 +235,7 @@ import { saveContract, queryContractType, queryContractPartya, queryContractType |
| 235 | 235 | import PurchaseApprovers from '@/components/contract/purchaseApprovers' |
| 236 | 236 | import SearchRoom from '@/components/room/searchRoom' |
| 237 | 237 | import SearchOwner from '@/components/owner/SearchOwner' |
| 238 | +import { uploadFile } from '@/api/system/paymentPoolApi' | |
| 238 | 239 | |
| 239 | 240 | export default { |
| 240 | 241 | name: 'AddContractList', |
| ... | ... | @@ -385,7 +386,7 @@ export default { |
| 385 | 386 | this.addContractInfo.contractFilePo[index].fileRealName = this.addContractInfo.tempfile.name |
| 386 | 387 | this._importData(index) |
| 387 | 388 | }, |
| 388 | - _importData(index) { | |
| 389 | + async _importData(index) { | |
| 389 | 390 | console.log(index) |
| 390 | 391 | const _fileName = this.addContractInfo.tempfile.name |
| 391 | 392 | const _suffix = _fileName.substring(_fileName.lastIndexOf('.') + 1) |
| ... | ... | @@ -396,7 +397,8 @@ export default { |
| 396 | 397 | |
| 397 | 398 | const formData = new FormData() |
| 398 | 399 | formData.append("uploadFile", this.addContractInfo.tempfile) |
| 399 | - | |
| 400 | + const data = await uploadFile(formData, {}) | |
| 401 | + this.addContractInfo.contractFilePo[index].fileSaveName = data.realFileName | |
| 400 | 402 | // 这里需要实现文件上传逻辑 |
| 401 | 403 | // uploadContactFile(formData).then(response => { |
| 402 | 404 | // this.addContractInfo.contractFilePo[index].fileSaveName = response.data | ... | ... |
src/views/contract/newContractManageList.vue
| ... | ... | @@ -38,7 +38,7 @@ |
| 38 | 38 | <el-card class="table-card"> |
| 39 | 39 | <div slot="header" class="flex justify-between"> |
| 40 | 40 | <span>{{ $t('newContractManage.list.title') }}</span> |
| 41 | - <el-button type="primary" size="small" @click="handleAdd"> | |
| 41 | + <el-button type="primary" size="small" @click="handleAdd"> | |
| 42 | 42 | <i class="el-icon-plus"></i> |
| 43 | 43 | {{ $t('newContractManage.list.draft') }} |
| 44 | 44 | </el-button> | ... | ... |