diff --git a/.workbuddy/memory/2026-08-12.md b/.workbuddy/memory/2026-08-12.md new file mode 100644 index 0000000..4862be7 --- /dev/null +++ b/.workbuddy/memory/2026-08-12.md @@ -0,0 +1,31 @@ +# 2026-08-12 + +## 全站自定义表单弹窗样式统一为客商档案风格 + +- 新增全局弹窗表单标准类 `.dialog-form--carded`(`src/styles/element-ui.scss`),统一实现: + - `section-card` 白底卡片分组 + - label 固定宽度 `calc(6em + 24px)`、右对齐、上下居中 + - input/select/cascader/tree-select/date-editor/textarea 等控件固定宽度 250px + - radio/checkbox 组宽度自适应 +- 改造文件清单: + - `src/views/flow/manager.vue`:流程变更弹窗 + - `src/views/flow/follow.vue`:流程删除弹窗 + - `src/views/system/param.vue`:参数编辑弹窗 + - `src/views/system/authlock.vue`:锁定用户、解锁确认弹窗 + - `src/views/system/user.vue`:用户编辑、修改密码弹窗 + - `src/views/business/components/waybill-import-dialog.vue`:新建导入弹窗表单区 +- 已跳过(非编辑表单弹窗):`system/dept.vue` 承运商选择搜索弹窗、`business/master-order-editor.vue` 页面级组件。 +- `npm run build` 构建通过。 + +## 港口码头(port-terminal)编辑弹窗 input 宽度统一 250px + +- 文件:`src/views/base/port-terminal.vue` +- 做法:option 加 `dialogCustomClass: 'port-terminal-edit-dialog'`,并在文件末尾新增非 scoped ` + + diff --git a/src/views/base/railway-station.vue b/src/views/base/railway-station.vue index fb24d5e..4dc8249 100644 --- a/src/views/base/railway-station.vue +++ b/src/views/base/railway-station.vue @@ -202,8 +202,9 @@ export default { height: 'auto', calcHeight: 32, dialogWidth: 980, + dialogCustomClass: 'railway-station-edit-dialog', labelPosition: 'right', - labelWidth: 'auto', + labelWidth: '140px', tip: false, searchShow: true, searchMenuSpan: 24, @@ -339,7 +340,7 @@ export default { label: '详细地址', prop: 'detailAddress', type: 'textarea', - minRows: 3, + minRows: 2, span: 24, minWidth: 220, overHidden: false, @@ -393,7 +394,7 @@ export default { label: '备注', prop: 'remark', type: 'textarea', - minRows: 4, + minRows: 2, span: 24, hide: true, maxlength: 200, @@ -892,5 +893,16 @@ export default { :deep(.el-table td .cell) { white-space: nowrap; } + +} + + + + diff --git a/src/views/business/components/business-crud-page.vue b/src/views/business/components/business-crud-page.vue index 7521056..aea1fae 100644 --- a/src/views/business/components/business-crud-page.vue +++ b/src/views/business/components/business-crud-page.vue @@ -27,7 +27,7 @@ :icon="actionButtonLikeSearch ? undefined : 'el-icon-plus'" v-if="canCreate" @click="$refs.crud.rowAdd()" - >{{ config.createText || '新增' }} + >{{ config.createText || '新增' }} {{ config.importText || '批量导入' }} + >{{ config.importText || '批量导入' }} 下载模板 + >下载模板 批量导出 + >批量导出 批量完成 + >批量完成 {{ config.roadLoadingText || '公路配载' }} + >{{ config.roadLoadingText || '公路配载' }} 批量删除 + >批量删除 @@ -1130,20 +1130,20 @@ - - visible && loadTaskCarrierOptions()" - @change="handleTaskCarrierChange" - > - + visible && loadTaskCarrierOptions()" + @change="handleTaskCarrierChange" + > + + + + + visible && loadTaskDriverOptions()" + @change="handleTaskDriverChange" + > + + + + + - - - - visible && loadTaskDriverOptions()" - @change="handleTaskDriverChange" - > - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - visible && ensureBillingCargoTypeOptions()" - @change="handleTaskCargoTypeChange" - /> - - - visible && loadTaskCargoOptionsForForm()" - @change="handleTaskCargoChange" - > - + + - - - - - - - - - - handleTaskNumberInput('quantity', value)" - > - - visible && loadTaskQuantityUnitOptions()" - > - - - - - - - - - - - - - - - - handleTaskNumberInput('unitPrice', value)" - > - - visible && loadTaskFeeUnitOptions()" - > - - - - - - - handleTaskNumberInput('otherFeeTotal', value)" - /> - - - - + + + + + + + + + + + + + + + + + + + + + visible && ensureBillingCargoTypeOptions()" + @change="handleTaskCargoTypeChange" + /> + + + visible && loadTaskCargoOptionsForForm()" + @change="handleTaskCargoChange" + > + + + + + + + + + + + handleTaskNumberInput('quantity', value)" + > + + visible && loadTaskQuantityUnitOptions()" + > + + + + + + + + + + + + + + + + handleTaskNumberInput('unitPrice', value)" + > + + visible && loadTaskFeeUnitOptions()" + > + + + + + + + handleTaskNumberInput('otherFeeTotal', value)" + /> + + + + @@ -2285,7 +2285,7 @@ 详情详情 {{ detailRow.departureName || detailRow.departureAddress || '-' }}终{{ detailRow.arrivalName || detailRow.arrivalAddress || '-' }} + >终{{ detailRow.arrivalName || detailRow.arrivalAddress || '-' }} {{ detailRow.departureAddress || '-' }} → {{ detailRow.arrivalAddress || '-' }} @@ -2417,7 +2417,7 @@ {{ + >{{ [row.specification, row.model].filter(Boolean).join('/') || '-' }} @@ -2439,13 +2439,13 @@ > 司机{{ detailRow.driverName || '-' }} {{ detailRow.driverPhone || '' }} + >{{ detailRow.driverName || '-' }} {{ detailRow.driverPhone || '' }} {{ - waybillIsRoadTransport(detailRow) ? '车牌号' : '航班号/船次号/班列号' - }}{{ detailRow.vehicleNo || '-' }} 押运人{{ detailRow.escortName || '-' }} {{ detailRow.escortPhone || '' }} + >{{ detailRow.escortName || '-' }} {{ detailRow.escortPhone || '' }} {{ node.name || node.nodeName || node.label }}{{ node.name || node.nodeName || node.label }} @@ -2550,7 +2550,7 @@ 轨迹回放轨迹回放 实时定位 @@ -2924,7 +2924,7 @@ 添加附件 请上传计划明细表,仅支持 Excel 格式请上传计划明细表,仅支持 Excel 格式 下载模板 @@ -3030,7 +3030,7 @@ type="primary" :loading="transportPlanImportLoading" @click="submitTransportPlanImport" - >提交提交 返回 @@ -3835,7 +3835,7 @@ 删除删除 @@ -4505,7 +4505,7 @@ {{ transportMapStatus }} 行政区划:{{ transportMapSelected.regionName }}行政区划:{{ transportMapSelected.regionName }} @@ -5422,9 +5422,9 @@ export default { this.getDispatchQuantityUnit(row), 'total', row.quantity || - row.cargoQuantity || - row.goodsQuantity || - row.totalQuantity || + row.cargoQuantity || + row.goodsQuantity || + row.totalQuantity || row.totalCargoQuantity ); }); @@ -6206,8 +6206,8 @@ export default { const taskInfo = this.parseJsonObject(this.detailRow.taskInfoJson); this.waybillRouteChangeRecords = Array.isArray(taskInfo.routeChangeRecords) ? [...taskInfo.routeChangeRecords].sort((a, b) => - String(b.changeTime).localeCompare(String(a.changeTime)) - ) + String(b.changeTime).localeCompare(String(a.changeTime)) + ) : []; }, openWaybillRouteChangeDialog() { @@ -6302,8 +6302,8 @@ export default { const content = changed ? `${row.waybillNo || '运单'}:发货地 ${row.originalDepartureAddress || '-'} → ${ - row.departureAddress || '-' - };到货地 ${row.originalArrivalAddress || '-'} → ${row.arrivalAddress || '-'}` + row.departureAddress || '-' + };到货地 ${row.originalArrivalAddress || '-'} → ${row.arrivalAddress || '-'}` : '调整运输路线顺序'; const records = [ { @@ -8031,21 +8031,21 @@ export default { const goodsRows = this.isTaskFullMode ? this.transportCargoRows.map(item => this.normalizeTransportCargoRow(item)) : [ - { - cargoType: row.cargoType, - cargoTypeCode: row.cargoTypeCode, - cargoTypePath: row.cargoTypePath, - cargoName: row.cargoName, - specification: row.specification, - model: row.model, - quantity: row.quantity, - quantityUnit: row.quantityUnit, - mileage: row.mileage, - unitPrice: row.unitPrice, - priceUnit: row.priceUnit, - remark: row.taskRemark, - }, - ]; + { + cargoType: row.cargoType, + cargoTypeCode: row.cargoTypeCode, + cargoTypePath: row.cargoTypePath, + cargoName: row.cargoName, + specification: row.specification, + model: row.model, + quantity: row.quantity, + quantityUnit: row.quantityUnit, + mileage: row.mileage, + unitPrice: row.unitPrice, + priceUnit: row.priceUnit, + remark: row.taskRemark, + }, + ]; if (this.isTaskFullMode) { const firstCargo = goodsRows[0] || {}; taskInfo.unitPrice = firstCargo.unitPrice || ''; @@ -9398,8 +9398,8 @@ export default { const children = level === 1 ? (cargoType.children || []) - .map(item => this.normalizeBillingCargoTypeNode(item, level + 1, path)) - .filter(Boolean) + .map(item => this.normalizeBillingCargoTypeNode(item, level + 1, path)) + .filter(Boolean) : []; return { ...cargoType, @@ -9466,8 +9466,8 @@ export default { const children = level === 1 ? (region.children || []) - .map(item => this.normalizeBillingMatchRegionNode(item, level + 1)) - .filter(Boolean) + .map(item => this.normalizeBillingMatchRegionNode(item, level + 1)) + .filter(Boolean) : []; return { ...region, @@ -11008,8 +11008,8 @@ export default { mode === 'draft' ? '生成草稿成功' : shouldCompletePlan - ? '确认生成成功,运输计划已完成' - : '确认生成成功'; + ? '确认生成成功,运输计划已完成' + : '确认生成成功'; this.$message.success(message); this.dispatchBox = false; this.onLoad(this.page, this.query); diff --git a/src/views/business/loading-manage.vue b/src/views/business/loading-manage.vue index c08f5c1..6fa95ca 100644 --- a/src/views/business/loading-manage.vue +++ b/src/views/business/loading-manage.vue @@ -2348,7 +2348,7 @@ export default { .loading-detail { display: flex; flex-direction: column; - gap: 8px; + //gap: 8px; color: #303133; .loading-detail__summary { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; padding: 4px 0 16px; } .loading-detail__heading { font-size: 20px; font-weight: 600; margin-right: 8px; } diff --git a/src/views/business/master-order.vue b/src/views/business/master-order.vue index ca58c48..f6bd45d 100644 --- a/src/views/business/master-order.vue +++ b/src/views/business/master-order.vue @@ -416,7 +416,7 @@ export default { .master-list-panel { background: #fff; .toolbar { - padding: 12px 12px 0; + padding: 8px; } } .master-card { diff --git a/src/views/business/process-config.vue b/src/views/business/process-config.vue index d7e7f32..c5825d2 100644 --- a/src/views/business/process-config.vue +++ b/src/views/business/process-config.vue @@ -80,106 +80,100 @@ - - 基本信息 - - - - - 配置名称 - - - - - - - - 项目 - - - - - - - - - 运输完成时限 - - 默认 + + + + + - 天后完成运输 - - - - - - 备注 - - - - - + + + + + + + + + + + + + 默认 + + 天后完成运输 + + + + + + + + + + + - 现行过程节点 - - - - - {{ node.name }} - - {{ text }} + + + + + + {{ node.name }} + + {{ text }} + - - + + - 节点设置 + + @@ -1106,32 +1101,6 @@ export default {