style(transportCapacity): 调整到期筛选标签位置和样式,统一标签展示逻辑

- transportCapacity/driver、vehicle、ship 页的「全部/30天内到期/已到期」筛选标签改为靠右对齐
- 统一使用 #search-menu 插槽替代 #expireStatus-search,标签移至搜索按钮前
- 标签容器删除宽度限制,增加 order:-1 和 margin-right:12px,保证标签和按钮为一体
- transportCapacity/vehicle 和 ship 的 expireStatus 列 search 改为 false,避免多余输入框出现
- transportCapacity/vehicle、ship 的 searchIndex 提升至6,避免搜索条件折叠,标签默认展开
- 暂用样式更改保证标签与搜索按钮间距和垂直对齐
- temporary-credit-limit 弹窗新增 dialogCustomClass,实现弹窗label固定六字宽度并自动换行
- element-ui.scss 新增临时额度弹窗 label 样式,修改label宽度、换行、对齐,提升可读性
- 调整多处搜索表单内 label 宽度由160px变为88px,优化表单紧凑度
- 多处文本域的最小行数 minRows 统一由较高数值改为2,改善表单布局和输入体验
- 更新 vite.config.mjs 开发服务器端口及代理配置,切换至本地测试环境
- waybill-import-dialog.vue 中修正文本域 autosize 最小行数为2,更符合表单设计规范
- 修改业务页 contract-manage.vue 菜单宽度由245px调整至252px,优化界面布局
This commit is contained in:
2026-08-14 00:33:32 +08:00
parent 27672dfaff
commit 3bb0fddcca
44 changed files with 141 additions and 76 deletions
+1 -1
View File
@@ -163,7 +163,7 @@ export default {
viewBtn: true,
selection: true,
labelWidth: 'auto',
searchLabelWidth: 160,
searchLabelWidth: 88,
menuWidth: 180,
dialogWidth: 900,
dialogClickModal: false,
+3 -3
View File
@@ -164,7 +164,7 @@ export default {
viewBtn: true,
selection: true,
labelWidth: 'auto',
searchLabelWidth: 160,
searchLabelWidth: 88,
menuWidth: 180,
dialogWidth: 900,
dialogClickModal: false,
@@ -277,7 +277,7 @@ export default {
label: '规则值',
prop: 'scopeValue',
span: 24,
minRows: 5,
minRows: 2,
type: 'textarea',
display: false,
hide: true,
@@ -488,7 +488,7 @@ export default {
label: '规则值',
prop: 'scopeValue',
span: 24,
minRows: 5,
minRows: 2,
type: 'textarea',
display: true,
hide: true,
+3 -3
View File
@@ -206,7 +206,7 @@ export default {
searchIndex: 8,
searchMenuPosition: 'right',
labelWidth: 'auto',
searchLabelWidth: 160,
searchLabelWidth: 88,
border: true,
index: true,
viewBtn: true,
@@ -270,7 +270,7 @@ export default {
label: '请求阈值',
prop: 'limitCount',
type: 'number',
minRows: 1,
minRows: 2,
value: 100,
hide: true,
labelTip: '单个时间窗口内允许通过的最大请求数,超出后触发限流并返回 429',
@@ -280,7 +280,7 @@ export default {
label: '时间窗口',
prop: 'limitPeriod',
type: 'number',
minRows: 1,
minRows: 2,
value: 1,
hide: true,
labelTip: '限流统计周期的数值,与时间单位组合使用,如时间窗口 1 + 时间单位分钟表示每分钟一个周期',
+1 -1
View File
@@ -249,7 +249,7 @@ export default {
selection: true,
viewBtn: true,
labelWidth: 'auto',
searchLabelWidth: 160,
searchLabelWidth: 88,
menuWidth: 240,
dialogWidth: 600,
dialogClickModal: false,
+1 -1
View File
@@ -239,7 +239,7 @@ export default {
tip: false,
searchShow: true,
labelWidth: 'auto',
searchLabelWidth: 160,
searchLabelWidth: 88,
searchMenuSpan: 24,
searchIcon: true,
searchIndex: 4,
+1 -1
View File
@@ -397,7 +397,7 @@ export default {
labelWidth: '108px',
tip: false,
searchShow: true,
searchLabelWidth: 160,
searchLabelWidth: 88,
searchIcon: true,
searchIndex: 4,
searchMenuSpan: 24,
+1 -1
View File
@@ -291,7 +291,7 @@ export default {
label: '区划备注',
prop: 'remark',
type: 'textarea',
minRows: 6,
minRows: 2,
span: 24,
},
],
@@ -39,7 +39,7 @@
</el-form>
<div class="waybill-import-create__form-actions"><el-button @click="createVisible = false">关闭</el-button><el-button @click="saveDraft">保存草稿</el-button><el-button type="primary" @click="confirmImport">确认导入</el-button></div>
</section>
<section class="waybill-import-create__detail-panel" v-if="rows.length"><div class="waybill-import-create__detail-head"><div class="dialog-section-title">导入数据明细</div><el-button type="danger" plain :disabled="!rowSelection.length" @click="removeSelectedRows">批量删除</el-button></div><el-tabs v-model="previewTab"><el-tab-pane :label="`运单数(${rows.length}`" name="all" /><el-tab-pane :label="`疑似重复(${duplicateRows.length}`" name="duplicate" /></el-tabs><el-table :data="previewRows" border max-height="440" @selection-change="rowSelection = $event"><el-table-column type="selection" width="55" /><el-table-column type="index" label="序号" width="65" /><el-table-column v-for="column in detailColumns" :key="column.prop" :prop="column.prop" :label="column.label" :min-width="column.minWidth || 150" show-overflow-tooltip><template #default="{ row }"><template v-if="row._editing"><el-select v-if="column.editor === 'transportType'" v-model="row.transportType" clearable filterable placeholder="请选择"><el-option v-for="item in transportTypeOptions" :key="item.value" :label="item.label" :value="item.value" /></el-select><el-select v-else-if="column.editor === 'driver'" v-model="row.driverName" clearable filterable placeholder="请选择" @change="value => handleEditorChange(column, row, value)"><el-option v-for="item in driverOptions" :key="item.id || item.driverName || item.name" :label="item.driverName || item.name" :value="item.driverName || item.name" /></el-select><el-cascader v-else-if="column.editor === 'cargoType'" :model-value="resolveCargoTypePath(row)" :options="cargoTypeOptions" :props="{ label: 'cargoName', value: 'id', children: 'children', emitPath: true }" clearable filterable placeholder="请选择" @change="value => handleEditorChange(column, row, value)" /><el-select v-else-if="column.editor === 'cargoName'" v-model="row.cargoName" clearable filterable placeholder="请选择" @visible-change="visible => visible && loadCommonCargoOptions(row)" @change="value => handleEditorChange(column, row, value)"><el-option v-for="item in getCommonCargoOptions(row)" :key="item.id || item.cargoName || item.name" :label="formatCargoTypeLabel(item)" :value="formatCargoTypeLabel(item)" /></el-select><el-date-picker v-else-if="column.editor === 'datetime'" v-model="row[column.prop]" type="datetime" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择" /><el-input v-else-if="column.editor === 'textarea'" v-model="row[column.prop]" type="textarea" :autosize="{ minRows: 1, maxRows: 3 }" :placeholder="`请输入${column.label}`" /><el-input v-else-if="column.editor === 'number'" :model-value="row[column.prop]" inputmode="decimal" :placeholder="`请输入${column.label}`" @input="value => updateEditorValue(column, row, value)" /><el-input v-else v-model="row[column.prop]" :placeholder="`请输入${column.label}`" /></template><span v-else>{{ formatCell(row, column) }}</span></template></el-table-column><el-table-column label="操作" width="180" fixed="right"><template #default="{ row }"><template v-if="row._editing"><el-link type="primary" @click="saveRow(row)">保存</el-link><el-link type="primary" @click="cancelRow(row)">取消</el-link></template><template v-else><el-link type="primary" @click="editRow(row)">编辑</el-link><el-link type="danger" @click="deleteRow(row)">删除</el-link></template></template></el-table-column></el-table></section>
<section class="waybill-import-create__detail-panel" v-if="rows.length"><div class="waybill-import-create__detail-head"><div class="dialog-section-title">导入数据明细</div><el-button type="danger" plain :disabled="!rowSelection.length" @click="removeSelectedRows">批量删除</el-button></div><el-tabs v-model="previewTab"><el-tab-pane :label="`运单数(${rows.length}`" name="all" /><el-tab-pane :label="`疑似重复(${duplicateRows.length}`" name="duplicate" /></el-tabs><el-table :data="previewRows" border max-height="440" @selection-change="rowSelection = $event"><el-table-column type="selection" width="55" /><el-table-column type="index" label="序号" width="65" /><el-table-column v-for="column in detailColumns" :key="column.prop" :prop="column.prop" :label="column.label" :min-width="column.minWidth || 150" show-overflow-tooltip><template #default="{ row }"><template v-if="row._editing"><el-select v-if="column.editor === 'transportType'" v-model="row.transportType" clearable filterable placeholder="请选择"><el-option v-for="item in transportTypeOptions" :key="item.value" :label="item.label" :value="item.value" /></el-select><el-select v-else-if="column.editor === 'driver'" v-model="row.driverName" clearable filterable placeholder="请选择" @change="value => handleEditorChange(column, row, value)"><el-option v-for="item in driverOptions" :key="item.id || item.driverName || item.name" :label="item.driverName || item.name" :value="item.driverName || item.name" /></el-select><el-cascader v-else-if="column.editor === 'cargoType'" :model-value="resolveCargoTypePath(row)" :options="cargoTypeOptions" :props="{ label: 'cargoName', value: 'id', children: 'children', emitPath: true }" clearable filterable placeholder="请选择" @change="value => handleEditorChange(column, row, value)" /><el-select v-else-if="column.editor === 'cargoName'" v-model="row.cargoName" clearable filterable placeholder="请选择" @visible-change="visible => visible && loadCommonCargoOptions(row)" @change="value => handleEditorChange(column, row, value)"><el-option v-for="item in getCommonCargoOptions(row)" :key="item.id || item.cargoName || item.name" :label="formatCargoTypeLabel(item)" :value="formatCargoTypeLabel(item)" /></el-select><el-date-picker v-else-if="column.editor === 'datetime'" v-model="row[column.prop]" type="datetime" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择" /><el-input v-else-if="column.editor === 'textarea'" v-model="row[column.prop]" type="textarea" :autosize="{ minRows: 2, maxRows: 3 }" :placeholder="`请输入${column.label}`" /><el-input v-else-if="column.editor === 'number'" :model-value="row[column.prop]" inputmode="decimal" :placeholder="`请输入${column.label}`" @input="value => updateEditorValue(column, row, value)" /><el-input v-else v-model="row[column.prop]" :placeholder="`请输入${column.label}`" /></template><span v-else>{{ formatCell(row, column) }}</span></template></el-table-column><el-table-column label="操作" width="180" fixed="right"><template #default="{ row }"><template v-if="row._editing"><el-link type="primary" @click="saveRow(row)">保存</el-link><el-link type="primary" @click="cancelRow(row)">取消</el-link></template><template v-else><el-link type="primary" @click="editRow(row)">编辑</el-link><el-link type="danger" @click="deleteRow(row)">删除</el-link></template></template></el-table-column></el-table></section>
</el-dialog>
</template>
+1 -1
View File
@@ -1,5 +1,5 @@
<template>
<business-crud-page :api="api" :config="config" :crud-option="option" :menu-width="245" />
<business-crud-page :api="api" :config="config" :crud-option="option" :menu-width="252" />
</template>
<script>
+1 -1
View File
@@ -103,7 +103,7 @@ export default {
value: 1,
span: 24,
width: 120,
searchLabelWidth: 160,
searchLabelWidth: 88,
row: true,
dicUrl: '/blade-system/dict/dictionary?code=oss',
props: {
+1 -1
View File
@@ -102,7 +102,7 @@ export default {
value: 1,
span: 24,
width: 100,
searchLabelWidth: 160,
searchLabelWidth: 88,
row: true,
dicUrl: '/blade-system/dict/dictionary?code=sms',
props: {
+1 -1
View File
@@ -152,7 +152,7 @@ export default {
prop: 'remark',
type: 'textarea',
span: 24,
minRows: 6,
minRows: 2,
hide: true,
},
],
+2 -2
View File
@@ -87,7 +87,7 @@ export default {
value: 1,
span: 24,
width: 120,
searchLabelWidth: 160,
searchLabelWidth: 88,
row: true,
gridRow: true,
dicUrl: '/blade-system/dict/dictionary?code=datasource_category',
@@ -110,7 +110,7 @@ export default {
label: 'YAML',
prop: 'shardingConfig',
span: 24,
minRows: 5,
minRows: 2,
hide: true,
display: false,
gridRow: true,
+2 -2
View File
@@ -89,7 +89,7 @@ export default {
value: 1,
span: 24,
width: 120,
searchLabelWidth: 160,
searchLabelWidth: 88,
row: true,
gridRow: true,
display: false,
@@ -113,7 +113,7 @@ export default {
label: 'YAML',
prop: 'shardingConfig',
span: 24,
minRows: 5,
minRows: 2,
hide: true,
display: false,
gridRow: true,
+1 -1
View File
@@ -1350,7 +1350,7 @@ export default {
align-items: center;
gap: 8px;
order: -1;
margin-right: auto;
margin-right: 12px;
min-width: 0;
:deep(.el-check-tag) {
+4 -2
View File
@@ -44,7 +44,7 @@
批量删除
</el-button>
</template>
<template #expireStatus-search>
<template #search-menu>
<div class="transport-ship-page__expiry-tags">
<el-check-tag
v-for="item in expiryTagOptions"
@@ -1051,7 +1051,9 @@ export default {
flex-wrap: wrap;
align-items: center;
gap: 8px;
width: 100%;
order: -1;
margin-right: 12px;
min-width: 0;
:deep(.el-check-tag) {
margin: 0;
+4 -2
View File
@@ -41,7 +41,7 @@
>批量删除
</el-button>
</template>
<template #expireStatus-search>
<template #search-menu>
<div class="transport-vehicle-page__expiry-tags">
<el-check-tag
v-for="item in expiryTagOptions"
@@ -1195,7 +1195,9 @@ export default {
flex-wrap: wrap;
align-items: center;
gap: 8px;
width: 100%;
order: -1;
margin-right: 12px;
min-width: 0;
:deep(.el-check-tag) {
margin: 0;
+1 -1
View File
@@ -41,7 +41,7 @@ export default {
label: '个性签名',
prop: 'textarea',
type: 'textarea',
minRows: 8,
minRows: 2,
row: true,
},
],
+1 -1
View File
@@ -112,7 +112,7 @@ export default {
label: '个性签名',
prop: 'textarea',
type: 'textarea',
minRows: 8,
minRows: 2,
span: 24,
overHidden: true,
row: true,
+2 -2
View File
@@ -193,7 +193,7 @@ export default {
dialogWidth: 960,
labelPosition: 'right',
labelWidth: 'auto',
searchLabelWidth: 160,
searchLabelWidth: 88,
tip: false,
searchShow: true,
searchMenuSpan: 24,
@@ -346,7 +346,7 @@ export default {
label: '备注',
prop: 'remark',
type: 'textarea',
minRows: 5,
minRows: 2,
span: 24,
hide: true,
placeholder: '请输入',
+2 -2
View File
@@ -180,7 +180,7 @@ export default {
dialogWidth: 960,
labelPosition: 'right',
labelWidth: 'auto',
searchLabelWidth: 160,
searchLabelWidth: 88,
tip: false,
searchShow: true,
searchMenuSpan: 24,
@@ -333,7 +333,7 @@ export default {
label: '备注',
prop: 'remark',
type: 'textarea',
minRows: 5,
minRows: 2,
span: 24,
hide: true,
placeholder: '请输入',