From f9f82218709a406c47876dfff942a28c63431d70 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Tue, 4 Aug 2026 12:17:49 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=AE=8C=E5=96=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=202=E3=80=81=E5=AE=8C=E5=96=84=E5=90=88=E5=90=8C=203=E3=80=81?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=B4=B9=E7=94=A8=E9=A1=B9=204=E3=80=81?= =?UTF-8?q?=E5=8F=B8=E6=9C=BA=E7=AE=A1=E7=90=86=E5=AF=B9=E6=8E=A5OCR=205?= =?UTF-8?q?=E3=80=81=E5=AE=8C=E5=96=84=E8=BF=90=E8=BE=93=E8=AE=A1=E5=88=92?= =?UTF-8?q?=206=E3=80=81=E5=AE=8C=E5=96=84=E4=B8=B4=E6=97=B6=E9=A2=9D?= =?UTF-8?q?=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 2 +- src/api/business/project-apply.js | 14 + src/api/business/waybill-manage.js | 12 +- src/api/transportCapacity/driver.js | 20 + .../transportCapacity/transport-vehicle.js | 9 + src/components/image-upload-field/main.vue | 58 +- .../vehicle-attachment-upload/main.vue | 13 +- src/option/business/common.js | 4 +- src/option/business/contract-manage.js | 411 +- src/option/business/process-config.js | 5 +- src/option/business/project-apply.js | 103 +- src/option/business/shipping-template.js | 2 +- src/option/business/temporary-credit-limit.js | 371 +- src/option/business/transport-plan.js | 629 +- src/option/business/waybill-manage.js | 761 ++- src/styles/element-ui.scss | 23 +- src/utils/table-menu.js | 16 + src/utils/upload.js | 12 + src/views/base/cargo-type.vue | 6 +- src/views/base/fee-item.vue | 355 +- .../components/business-crud-page.vue | 5056 ++++++++++++++++- src/views/business/project-apply.vue | 528 +- src/views/desk/notice-composition.vue | 2 + src/views/desk/notice.vue | 2 + src/views/resource/attach.vue | 9 +- src/views/resource/oss.vue | 2 + src/views/system/menu.vue | 8 +- src/views/system/tenant.vue | 2 + src/views/system/userinfo.vue | 11 +- src/views/transportCapacity/driver.vue | 259 +- src/views/transportCapacity/ship.vue | 6 +- src/views/transportCapacity/vehicle.vue | 145 +- src/views/vehicle/customer-archive.vue | 9 +- src/views/vehicle/insurance-record.vue | 5 +- 34 files changed, 7887 insertions(+), 983 deletions(-) create mode 100644 src/utils/table-menu.js create mode 100644 src/utils/upload.js diff --git a/AGENTS.md b/AGENTS.md index a200e7f..3b6157b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -167,7 +167,7 @@ Avue 表格/表单配置独立存放于 `src/option/` 目录,与 `views` 和 ` - 搜索组件需展示轻量阴影,统一使用 `0 2px 8px rgba(0, 0, 0, 0.06)`,不得被局部卡片去样式规则覆盖。 - 表格线条颜色需统一使用 `#EFF1F7`,包括表格外边框、单元格分割线和固定列边线。 - 表格偶数行需统一使用 `#FAFAFA` 背景色,固定列单元格必须与对应行背景保持一致。 -- 表格操作列同时展示“查看、编辑、删除”等三个按钮时,操作列宽度统一不小于 `220px`,禁止出现按钮裁切或显示不全。 +- 表格操作列同时展示“查看、编辑、删除”等三个按钮时,操作列宽度统一不小于 `220px`;操作列最大按钮数量超过 3 个时,操作列宽度统一加宽到不小于 `320px`;最大按钮数量超过 4 个时,仍按 `320px` 保持列宽,并从第 5 个按钮开始换行展示,禁止出现按钮裁切或显示不全。 - 表格操作列按钮统一仅展示文字,禁止配置 `icon` / `:icon` 或在操作按钮、操作下拉项中嵌入图标;顶部工具栏按钮不受此条限制。 - `.avue-crud__header` 顶部间距统一为 `12px`。 - 分页组件整体靠右展示,必须展示接口返回的数据总条数,`X条/页` 的页容量选择器必须放在总条数右侧。 diff --git a/src/api/business/project-apply.js b/src/api/business/project-apply.js index 6d8224c..a08c3ea 100644 --- a/src/api/business/project-apply.js +++ b/src/api/business/project-apply.js @@ -51,6 +51,20 @@ export const voidProject = (id, reason) => params: { id, reason }, }); +export const saveChange = row => + request({ + url: `${baseUrl}/save-change`, + method: 'post', + data: row, + }); + +export const submitChange = row => + request({ + url: `${baseUrl}/submit-change`, + method: 'post', + data: row, + }); + export const startChange = (id, reason) => request({ url: `${baseUrl}/start-change`, diff --git a/src/api/business/waybill-manage.js b/src/api/business/waybill-manage.js index 64ed50e..f762bae 100644 --- a/src/api/business/waybill-manage.js +++ b/src/api/business/waybill-manage.js @@ -1,6 +1,8 @@ +import request from '@/axios'; import { createCrudApi } from './common'; -const api = createCrudApi('/blade-transport/waybill-manage'); +const baseUrl = '/blade-transport/waybill-manage'; +const api = createCrudApi(baseUrl); export const getList = api.getList; export const getDetail = api.getDetail; @@ -11,3 +13,11 @@ export const cancel = api.cancel; export const reassign = api.reassign; export const complete = api.complete; export const batchComplete = api.batchComplete; +export const roadLoading = ids => + request({ + url: `${baseUrl}/road-loading`, + method: 'post', + params: { + ids, + }, + }); diff --git a/src/api/transportCapacity/driver.js b/src/api/transportCapacity/driver.js index 16597ae..f3962af 100644 --- a/src/api/transportCapacity/driver.js +++ b/src/api/transportCapacity/driver.js @@ -58,3 +58,23 @@ export const getExpiryStat = params => { params, }); }; + +export const recognitionIDCard = url => { + return request({ + url: '/blade-file/file/recognitionIDCard', + method: 'get', + timeout: 60000, + params: { + url, + }, + }); +}; + +export const recognitionTransportCertificates = objectKeys => { + return request({ + url: '/blade-file/file/recognitionTransportCertificates', + method: 'post', + timeout: 60000, + data: objectKeys, + }); +}; diff --git a/src/api/transportCapacity/transport-vehicle.js b/src/api/transportCapacity/transport-vehicle.js index 573d67d..8c8b741 100644 --- a/src/api/transportCapacity/transport-vehicle.js +++ b/src/api/transportCapacity/transport-vehicle.js @@ -58,3 +58,12 @@ export const getExpiryStat = params => { params, }); }; + +export const recognitionTransportCertificates = objectKeys => { + return request({ + url: '/blade-file/file/recognitionTransportCertificates', + method: 'post', + timeout: 60000, + data: objectKeys, + }); +}; diff --git a/src/components/image-upload-field/main.vue b/src/components/image-upload-field/main.vue index 608fb83..802c128 100644 --- a/src/components/image-upload-field/main.vue +++ b/src/components/image-upload-field/main.vue @@ -4,11 +4,13 @@ :class="[`${classPrefix}-uploader`, { [`${classPrefix}-uploader--large`]: large }]" action="/api/blade-resource/oss/endpoint/put-file" name="file" - :headers="headers" + :headers="uploadHeaders" :show-file-list="false" :disabled="readonly" :before-upload="beforeUpload" + :on-progress="handleProgress" :on-success="handleSuccess" + :on-error="handleError" >
{{ emptyText }}
@@ -24,11 +26,13 @@ :class="`${classPrefix}-upload-card__uploader`" action="/api/blade-resource/oss/endpoint/put-file" name="file" - :headers="headers" + :headers="uploadHeaders" :show-file-list="false" :disabled="readonly" :before-upload="beforeUpload" + :on-progress="handleProgress" :on-success="handleSuccess" + :on-error="handleError" >
{{ emptyText }}
@@ -38,6 +42,9 @@ + + diff --git a/src/views/business/components/business-crud-page.vue b/src/views/business/components/business-crud-page.vue index 625b886..985dac2 100644 --- a/src/views/business/components/business-crud-page.vue +++ b/src/views/business/components/business-crud-page.vue @@ -27,7 +27,7 @@ plain v-if="canCreate" @click="$refs.crud.rowAdd()" - >新增 + >{{ config.createText || '新增' }} 批量导入 + >{{ config.importText || '批量导入' }} 批量完成 + {{ config.roadLoadingText || '公路配载' }} + 批量删除 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -162,6 +932,841 @@ @load="onLoad(page, query)" /> + + +