style(billing-plan-editor): 使用 SectionCard 包裹计费方案编辑区块

- 引入 SectionCard 组件包裹计费方案显示和编辑区域
- 为默认方案信息添加带提示的 Info 图标和 Tooltip
- 优化模板缩进和结构,提升可读性

feat(contract-manage): 优化合同管理搜索和操作栏体验

- 允许签约类型字段作为搜索条件且支持排序和提示
- 将签约类型从快捷搜索区移动到标准搜索表单中
- 废除冗余的 contractSignType 状态,使用表单绑定自动处理
- 调整搜索栏快捷筛选区域顺序,实现与按钮组的视觉统一

fix(contract-manage): 修正底部操作栏文案及按钮显示逻辑

- 底部操作栏将“关闭”文案修改为“取消”,符合统一规范
- 草稿编辑页底部按钮增加[暂存/提交临时/提交正式],一致新增页操作
- 按钮样式调整,采用右侧对齐并使用按键间距12px替代gap

style(contract-manage-change): 统一变更页底部操作栏样式和交互

- 底部操作栏使用固定悬浮布局,避免内容被遮挡
- 调整按钮顺序为[取消][提交],并修改“关闭”为“取消”
- 增加统一的按钮间距与操作栏背景和阴影样式
- 为页面容器添加底部内边距,保障悬浮栏空间

style(contract-manage): 修复“合同文件”标题样式加粗问题

- 补充 scoped 样式,利用 :deep 影响子组件中标题的字体加粗和颜色

fix(customer-archive): 调整文本行高以优化显示效果

- 将内容文本的行高从18px调整为16px,提升视觉紧凑度

style(customer-archive): 调整必填项标签布局

- 删除因padding造成的标签视觉错位,确保label与控件垂直居中对齐
This commit is contained in:
2026-08-28 14:56:37 +08:00
parent 704c3093d7
commit 99d6284a58
6 changed files with 170 additions and 93 deletions
@@ -6,68 +6,72 @@
append-to-body
destroy-on-close
>
<el-descriptions v-if="readonly" :column="3" class="billing-plan-detail">
<el-descriptions-item label="方案名称">{{
displayValue(draft.planName)
}}</el-descriptions-item>
<el-descriptions-item label="运输方式">{{
transportModeLabel(draft.transportMode)
}}</el-descriptions-item>
<el-descriptions-item label="默认方案">{{
isDefaultPlan(draft) ? '是' : '否'
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ displayValue(draft.remark) }}</el-descriptions-item>
</el-descriptions>
<el-form
v-else
ref="formRef"
:model="draft"
:rules="formRules"
label-position="right"
label-width="auto"
>
<el-row :gutter="20">
<el-col :span="8"
<section-card>
<el-descriptions v-if="readonly" :column="3" class="billing-plan-detail">
<el-descriptions-item label="方案名称">{{
displayValue(draft.planName)
}}</el-descriptions-item>
<el-descriptions-item label="运输方式">{{
transportModeLabel(draft.transportMode)
}}</el-descriptions-item>
<el-descriptions-item label="默认方案">{{
isDefaultPlan(draft) ? '是' : '否'
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ displayValue(draft.remark) }}</el-descriptions-item>
</el-descriptions>
<el-form
v-else
ref="formRef"
:model="draft"
:rules="formRules"
label-position="right"
label-width="auto"
>
<el-row :gutter="20">
<el-col :span="8"
><el-form-item label="方案名称" prop="planName"
><el-input
v-model="draft.planName"
maxlength="100"
:disabled="readonly" /></el-form-item
></el-col>
<el-col :span="8"
><el-input
v-model="draft.planName"
maxlength="100"
:disabled="readonly" /></el-form-item
></el-col>
<el-col :span="8"
><el-form-item label="运输方式" prop="transportMode"
><el-select
v-model="draft.transportMode"
clearable
filterable
:loading="transportModeLoading"
placeholder="请选择运输方式"
@visible-change="visible => visible && ensureTransportModes()"
><el-option
v-for="item in transportModeOptions"
:key="item.value"
:label="item.label"
:value="item.value" /></el-select></el-form-item
></el-col>
<el-col :span="8"
><el-select
v-model="draft.transportMode"
clearable
filterable
:loading="transportModeLoading"
placeholder="请选择运输方式"
@visible-change="visible => visible && ensureTransportModes()"
><el-option
v-for="item in transportModeOptions"
:key="item.value"
:label="item.label"
:value="item.value" /></el-select></el-form-item
></el-col>
<el-col :span="8"
><el-form-item label="默认方案"
><el-checkbox v-model="draft.defaultPlan" :disabled="readonly">默认方案</el-checkbox
><el-icon class="billing-plan-editor__default-tip" @click="showDefaultPlanTip"
><InfoFilled
/></el-icon>
></el-form-item
><el-checkbox v-model="draft.defaultPlan" :disabled="readonly">默认方案</el-checkbox
><el-tooltip content="同一运输方式仅支持配置一个默认计费方案" placement="top">
<el-icon class="billing-plan-editor__default-tip"
><InfoFilled
/></el-icon> </el-tooltip
></el-form-item
></el-col
>
<el-col :span="24"
>
<el-col :span="24"
><el-form-item label="备注"
><el-input
v-model="draft.remark"
maxlength="100"
show-word-limit
:disabled="readonly" /></el-form-item
></el-col>
</el-row>
</el-form>
><el-input
v-model="draft.remark"
maxlength="100"
show-word-limit
:disabled="readonly" /></el-form-item
></el-col>
</el-row>
</el-form>
</section-card>
<div class="rule-head">
<el-link v-if="!readonly" type="primary" @click="addRule">+添加规则</el-link>
</div>
@@ -362,6 +366,7 @@ import { getList as getFeeItemList } from '@/api/base/fee-item';
import { getLazyTree as getRegionLazyTree } from '@/api/base/region';
import { InfoFilled } from '@element-plus/icons-vue';
import { getDictionary } from '@/api/system/dictbiz';
import SectionCard from '@/components/section-card/main.vue';
const clone = value => JSON.parse(JSON.stringify(value));
const defaultRule = () => ({
@@ -391,7 +396,7 @@ const defaultRule = () => ({
});
export default {
components: { InfoFilled },
components: { SectionCard, InfoFilled },
props: {
modelValue: Boolean,
value: { type: Object, default: () => ({}) },
@@ -874,9 +879,6 @@ export default {
this.visible = false;
});
},
showDefaultPlanTip() {
this.$message.info('同一运输方式仅支持配置一个默认计费方案');
},
openMatch(row, index) {
this.matchIndex = index;
this.matchForm = { ...defaultRule().matchCondition, ...(row.matchCondition || {}) };