From 0a5b3b2cab9cb02c7d6082fe9457a1ca6b657013 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Tue, 11 Aug 2026 09:31:42 +0800 Subject: [PATCH] fix bug --- AGENTS.md | 1 + src/api/vehicle/customer-archive.js | 12 + .../vehicle-attachment-upload/main.vue | 36 ++- src/option/business/process-config.js | 7 +- src/option/business/temporary-credit-limit.js | 2 +- src/styles/element-ui.scss | 3 + src/views/base/cargo-type.vue | 2 +- src/views/base/common-address.vue | 2 +- src/views/base/region.vue | 2 +- src/views/business/common-cargo.vue | 2 +- src/views/business/common-route.vue | 2 +- .../components/business-crud-page.vue | 100 +++++-- src/views/business/loading-manage.vue | 2 +- src/views/business/process-config.vue | 36 ++- src/views/business/project-apply.vue | 26 +- src/views/flow/manager.vue | 2 +- src/views/flow/model.vue | 2 +- src/views/system/dept.vue | 6 +- src/views/system/param.vue | 2 +- .../vehicle/credit-score-quantification.vue | 2 +- src/views/vehicle/customer-archive.vue | 268 ++++++++++++++---- 21 files changed, 409 insertions(+), 108 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 97ba538..f5050fc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -170,6 +170,7 @@ Avue 表格/表单配置独立存放于 `src/option/` 目录,与 `views` 和 ` - 表格操作列同时展示“查看、编辑、删除”等三个按钮时,操作列宽度统一不小于 `220px`;操作列最大按钮数量超过 3 个时,操作列宽度统一加宽到不小于 `320px`;最大按钮数量超过 4 个时,仍按 `320px` 保持列宽,并从第 5 个按钮开始换行展示,禁止出现按钮裁切或显示不全。 - 表格操作列按钮统一仅展示文字,禁止配置 `icon` / `:icon` 或在操作按钮、操作下拉项中嵌入图标;顶部工具栏按钮不受此条限制。 - 纯文字操作入口统一使用 ``,禁止使用带 `text` 属性的 ``;提交、确认、上传等具有明确命令语义或需要加载状态的按钮可继续使用 ``。 +- 所有“删除”“作废”操作入口必须使用危险色红色文字:表格操作链接统一配置 `type="danger"`,配置化操作必须设置 `type: 'danger'`;顶部批量删除按钮统一使用 `type="danger"`。 - 所有表格操作列中的文字链接统一保持 `8px` 间距;操作按钮超过操作列可用宽度时必须自动换行,禁止链接连续粘连或被裁切。Avue 自定义 `#menu` 插槽和手写 `el-table-column` 操作列均适用。 - `.avue-crud__header` 顶部间距统一为 `12px`。 - 分页组件整体靠右展示,必须展示接口返回的数据总条数,`X条/页` 的页容量选择器必须放在总条数右侧。 diff --git a/src/api/vehicle/customer-archive.js b/src/api/vehicle/customer-archive.js index 8762746..19d7204 100644 --- a/src/api/vehicle/customer-archive.js +++ b/src/api/vehicle/customer-archive.js @@ -22,6 +22,18 @@ export const getDetail = id => { }); }; +export const getChangeRecordList = (customerId, current, size) => { + return request({ + url: '/blade-transport/customer-archive/change-record/list', + method: 'get', + params: { + customerId, + current, + size, + }, + }); +}; + export const submit = row => { return request({ url: '/blade-transport/customer-archive/submit', diff --git a/src/components/vehicle-attachment-upload/main.vue b/src/components/vehicle-attachment-upload/main.vue index 206ede6..c4988ec 100644 --- a/src/components/vehicle-attachment-upload/main.vue +++ b/src/components/vehicle-attachment-upload/main.vue @@ -12,6 +12,7 @@ :show-file-list="showFileList" :on-success="handleSuccess" :on-error="handleError" + :on-change="handleChange" :on-remove="handleRemove" :on-preview="handlePreview" :before-upload="beforeUpload" @@ -25,6 +26,9 @@ + + 上传中({{ uploadingCount }}) + - @@ -165,6 +169,10 @@ export default { type: Boolean, default: true, }, + showUploading: { + type: Boolean, + default: false, + }, }, emits: ['update:modelValue', 'change', 'success'], data() { @@ -209,10 +217,15 @@ export default { const sizeText = this.maxSize > 0 ? `,单文件不超过 ${this.maxSize}MB` : ''; return `支持上传 ${typeText}${sizeText}`; }, + uploadingCount() { + return this.fileList.filter(file => ['ready', 'uploading'].includes(file.status)).length; + }, }, watch: { modelValue: { handler(value) { + // Keep pending uploads in Element Plus' internal list until every selected file settles. + if (this.fileList.some(file => ['ready', 'uploading'].includes(file.status))) return; this.fileList = this.toUploadList(value); }, immediate: true, @@ -224,10 +237,12 @@ export default { const list = this.parseValue(value); return list.map((item, index) => { const url = this.getFileUrl(item); + const originalName = item.originalName || item.name || this.getFileName(url) || '附件'; return { ...item, - uid: item.uid || `${url || item.name || 'file'}-${index}`, - name: item.name || this.getFileName(url) || '附件', + uid: item.uid || `${url || originalName || 'file'}-${index}`, + originalName, + name: originalName, url, status: 'success', }; @@ -297,6 +312,9 @@ export default { this.$emit('success', this.normalizeUploadFile(file)); this.$message.success('上传成功'); }, + handleChange(file, files) { + this.fileList = files || []; + }, handleError() { this.$message.error('上传失败'); }, @@ -316,12 +334,14 @@ export default { normalizeUploadFile(file) { const data = (file.response && file.response.data) || file.data || file; const url = data.link || data.url || data.domain || file.url || ''; - const name = data.name || data.originalName || file.name || this.getFileName(url) || '附件'; - const extension = this.getExtension({ name, url }); + const originalName = + data.originalName || file.originalName || data.name || file.name || this.getFileName(url) || '附件'; + const extension = this.getExtension({ name: originalName, url }); return { ...data, uid: file.uid || data.uid, - name, + originalName, + name: originalName, url, link: data.link || url, size: data.size || data.attachSize || file.size || '', @@ -360,6 +380,12 @@ export default { &__empty { color: #909399; } + + &__uploading { + margin-left: 8px; + color: #409eff; + font-size: 13px; + } } :global(.vehicle-attachment-upload__viewer-dialog .el-dialog__body) { diff --git a/src/option/business/process-config.js b/src/option/business/process-config.js index 7e18816..912a57d 100644 --- a/src/option/business/process-config.js +++ b/src/option/business/process-config.js @@ -145,7 +145,8 @@ export const option = { dicData: processStatusOptions, slot: true, hide: true, - fixed: false, + fixed: 'right', + minWidth: 100, addDisplay: false, editDisplay: false, }, @@ -174,8 +175,8 @@ export const option = { hide: true, }, ]), - saveBtnText: '保存', - updateBtnText: '保存', + saveBtn: false, + updateBtn: false, dialogTop: '10px', dialogWidth: '96%', menuWidth: 220, diff --git a/src/option/business/temporary-credit-limit.js b/src/option/business/temporary-credit-limit.js index 1a2175e..553dad0 100644 --- a/src/option/business/temporary-credit-limit.js +++ b/src/option/business/temporary-credit-limit.js @@ -271,6 +271,6 @@ export const option = { }, ...auditColumns.map(column => ({ ...column, hide: true })), ]), - dialogWidth: 1010, + dialogWidth: 1280, index: false, }; diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss index 4c79cf3..9aba441 100644 --- a/src/styles/element-ui.scss +++ b/src/styles/element-ui.scss @@ -194,9 +194,12 @@ } .avue-crud__dialog .avue-dialog__footer { + position: relative; + z-index: 2; display: flex; align-items: center; justify-content: flex-end; + background: #fff; } .avue-crud__dialog .avue-dialog__footer--left { diff --git a/src/views/base/cargo-type.vue b/src/views/base/cargo-type.vue index 3ab47f6..d4c927e 100644 --- a/src/views/base/cargo-type.vue +++ b/src/views/base/cargo-type.vue @@ -95,7 +95,7 @@ > 编辑 - + 删除 diff --git a/src/views/base/common-address.vue b/src/views/base/common-address.vue index 2fae585..2331bb6 100644 --- a/src/views/base/common-address.vue +++ b/src/views/base/common-address.vue @@ -68,7 +68,7 @@ 编辑 diff --git a/src/views/base/region.vue b/src/views/base/region.vue index 394bf84..f1530f6 100644 --- a/src/views/base/region.vue +++ b/src/views/base/region.vue @@ -59,7 +59,7 @@ 删除 diff --git a/src/views/business/common-cargo.vue b/src/views/business/common-cargo.vue index a564991..abe435d 100644 --- a/src/views/business/common-cargo.vue +++ b/src/views/business/common-cargo.vue @@ -163,7 +163,7 @@ 编辑 diff --git a/src/views/business/common-route.vue b/src/views/business/common-route.vue index 4f7d88e..f178f76 100644 --- a/src/views/business/common-route.vue +++ b/src/views/business/common-route.vue @@ -132,7 +132,7 @@ 编辑 diff --git a/src/views/business/components/business-crud-page.vue b/src/views/business/components/business-crud-page.vue index d31cfd8..e1fb1f0 100644 --- a/src/views/business/components/business-crud-page.vue +++ b/src/views/business/components/business-crud-page.vue @@ -564,7 +564,7 @@ 删除 @@ -1378,7 +1378,7 @@ 删除 @@ -1627,8 +1627,21 @@ button-text="上传附件" @change="handleContractFileChange" /> + + 批量下载 + - + + @@ -1638,11 +1651,11 @@ - + +
+ + + 支持pdf、bmp、jpeg、png、jpg、doc、docx、ppt、pptx、xlsx、xls、eml、msg、zip,单个文件不超过500M + +
- - + + - + + + + + @@ -1089,8 +1127,8 @@ @@ -1113,12 +1151,17 @@ button-text="上传附件" button-icon="el-icon-upload" :show-tip="false" + :show-uploading="true" @success="handleScoreAttachmentUploadSuccess" /> - + + +