feat(material): 新增/编辑表单按三块分区;供应商下拉显示全称
- MaterialForm edit 模式按 材料信息/品牌与供应商/案例信息 分段,字段顺序与列表/详情对齐 - 供应商下拉显示 factory_name(全称),fallback short_name;filterable 支持筛选 - 列表页高级筛选中的供应商下拉同步改用全称 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
20268638f1
commit
ddc26c414a
|
|
@ -100,7 +100,7 @@
|
|||
style="width: 180px"
|
||||
@change="triggerSearch"
|
||||
>
|
||||
<el-option v-for="item in factoryFilterOptions" :key="item.id" :label="item.short_name || item.factory_name" :value="item.id" />
|
||||
<el-option v-for="item in factoryFilterOptions" :key="item.id" :label="item.factory_name || item.short_name" :value="item.id" />
|
||||
</el-select>
|
||||
<el-input v-model="filters.landing_project" placeholder="落地项目" clearable style="width: 160px" @keyup.enter="triggerSearch" />
|
||||
<el-input v-model="filters.contact_person" placeholder="对接人" clearable style="width: 120px" @keyup.enter="triggerSearch" />
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
:model="modelValue"
|
||||
label-width="120px"
|
||||
>
|
||||
<div class="form-section-title">材料信息</div>
|
||||
<el-form-item label="材料名称" required>
|
||||
<el-input :model-value="modelValue.name" @update:model-value="set('name', $event)" />
|
||||
</el-form-item>
|
||||
|
|
@ -13,7 +14,7 @@
|
|||
<el-option v-for="item in majorOptions" :key="item[0]" :label="item[1]" :value="item[0]" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="细分种类" required>
|
||||
<el-form-item label="材料种类" required>
|
||||
<el-select
|
||||
:model-value="modelValue.material_category"
|
||||
filterable
|
||||
|
|
@ -42,21 +43,6 @@
|
|||
<el-option v-for="item in importanceLevelOptions" :key="item[0]" :label="item[1]" :value="item[0]" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="落地项目">
|
||||
<el-input :model-value="modelValue.landing_project" @update:model-value="set('landing_project', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="对接人">
|
||||
<el-input :model-value="modelValue.contact_person" @update:model-value="set('contact_person', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="对接人联系方式">
|
||||
<el-input :model-value="modelValue.contact_phone" @update:model-value="set('contact_phone', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="经办人">
|
||||
<el-input :model-value="modelValue.handler" @update:model-value="set('handler', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注">
|
||||
<el-input :model-value="modelValue.remark" @update:model-value="set('remark', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="规格型号">
|
||||
<el-input :model-value="modelValue.spec" @update:model-value="set('spec', $event)" />
|
||||
</el-form-item>
|
||||
|
|
@ -76,6 +62,15 @@
|
|||
<el-option v-for="item in replaceOptions" :key="item[0]" :label="item[1]" :value="item[0]" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="连接方式">
|
||||
<el-input :model-value="modelValue.connection_method" @update:model-value="set('connection_method', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工工艺">
|
||||
<el-input :model-value="modelValue.construction_method" @update:model-value="set('construction_method', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="限制条件">
|
||||
<el-input :model-value="modelValue.limit_condition" type="textarea" @update:model-value="set('limit_condition', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="竞争优势">
|
||||
<el-select :model-value="modelValue.advantage" multiple @update:model-value="set('advantage', $event)">
|
||||
<el-option v-for="item in advantageOptions" :key="item[0]" :label="item[1]" :value="item[0]" />
|
||||
|
|
@ -95,23 +90,6 @@
|
|||
<el-form-item label="成本说明">
|
||||
<el-input :model-value="modelValue.cost_desc" type="textarea" @update:model-value="set('cost_desc', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="案例">
|
||||
<el-input :model-value="modelValue.cases" type="textarea" @update:model-value="set('cases', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="宣传页">
|
||||
<el-upload
|
||||
class="upload"
|
||||
:auto-upload="true"
|
||||
:show-file-list="false"
|
||||
:http-request="handleUpload"
|
||||
accept="image/*"
|
||||
>
|
||||
<el-button :loading="uploading">{{ uploading ? '上传中...' : '选择图片' }}</el-button>
|
||||
</el-upload>
|
||||
<div v-if="modelValue.brochure_url" class="preview">
|
||||
<img :src="modelValue.brochure_url" alt="预览" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="质量等级">
|
||||
<el-select :model-value="modelValue.quality_level" clearable @update:model-value="set('quality_level', $event)">
|
||||
<el-option v-for="item in starOptions" :key="item[0]" :label="item[1]" :value="item[0]" />
|
||||
|
|
@ -137,20 +115,22 @@
|
|||
<el-option v-for="item in starOptions" :key="item[0]" :label="item[1]" :value="item[0]" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="连接方式">
|
||||
<el-input :model-value="modelValue.connection_method" @update:model-value="set('connection_method', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工工艺">
|
||||
<el-input :model-value="modelValue.construction_method" @update:model-value="set('construction_method', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="限制条件">
|
||||
<el-input :model-value="modelValue.limit_condition" type="textarea" @update:model-value="set('limit_condition', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="isAdmin" label="供应商">
|
||||
<el-select :model-value="modelValue.factory" @update:model-value="set('factory', $event)">
|
||||
<el-option v-for="item in factories" :key="item.id" :label="item.short_name" :value="item.id" />
|
||||
</el-select>
|
||||
<el-form-item label="宣传页">
|
||||
<el-upload
|
||||
class="upload"
|
||||
:auto-upload="true"
|
||||
:show-file-list="false"
|
||||
:http-request="handleUpload"
|
||||
accept="image/*"
|
||||
>
|
||||
<el-button :loading="uploading">{{ uploading ? '上传中...' : '选择图片' }}</el-button>
|
||||
</el-upload>
|
||||
<div v-if="modelValue.brochure_url" class="preview">
|
||||
<img :src="modelValue.brochure_url" alt="预览" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<div class="form-section-title">品牌与供应商</div>
|
||||
<el-form-item label="品牌" required>
|
||||
<el-select
|
||||
:model-value="modelValue.brand"
|
||||
|
|
@ -164,6 +144,31 @@
|
|||
<el-option v-for="item in brandFormOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="isAdmin" label="供应商">
|
||||
<el-select :model-value="modelValue.factory" filterable @update:model-value="set('factory', $event)">
|
||||
<el-option v-for="item in factories" :key="item.id" :label="item.factory_name || item.short_name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="对接人">
|
||||
<el-input :model-value="modelValue.contact_person" @update:model-value="set('contact_person', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="对接人联系方式">
|
||||
<el-input :model-value="modelValue.contact_phone" @update:model-value="set('contact_phone', $event)" />
|
||||
</el-form-item>
|
||||
|
||||
<div class="form-section-title">案例信息</div>
|
||||
<el-form-item label="落地项目">
|
||||
<el-input :model-value="modelValue.landing_project" @update:model-value="set('landing_project', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="案例">
|
||||
<el-input :model-value="modelValue.cases" type="textarea" @update:model-value="set('cases', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="经办人">
|
||||
<el-input :model-value="modelValue.handler" @update:model-value="set('handler', $event)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注">
|
||||
<el-input :model-value="modelValue.remark" @update:model-value="set('remark', $event)" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<template v-else>
|
||||
|
|
@ -389,6 +394,20 @@ defineExpose({ validate, clearValidate })
|
|||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.form-section-title {
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: #303133;
|
||||
padding: 8px 0 12px;
|
||||
margin-top: 12px;
|
||||
border-bottom: 1px solid #ebeef5;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.form-section-title:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.upload {
|
||||
display: inline-block;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue