调整 合同、运力、基础配置、客商

This commit is contained in:
2026-09-14 23:43:20 +08:00
parent f1e2313e4c
commit 79aa4f9fae
33 changed files with 1490 additions and 395 deletions
+30 -5
View File
@@ -20,6 +20,16 @@
批量删除
</el-button>
<div class="insurance-ocr-template-page__search">
<el-select
v-model="query.vehicleType"
clearable
placeholder="车船类型"
style="width: 140px"
@change="search"
>
<el-option label="车辆" value="车辆" />
<el-option label="船舶" value="船舶" />
</el-select>
<el-input
v-model="query.name"
clearable
@@ -42,6 +52,7 @@
<el-table-column type="selection" width="48" />
<el-table-column type="index" label="序号" width="70" align="center" />
<el-table-column prop="name" label="模板名称" min-width="220" show-overflow-tooltip />
<el-table-column prop="vehicleType" label="车船类型" min-width="110" />
<el-table-column label="已配置字段" min-width="150">
<template #default="{ row }">{{ getMappingCount(row.mappingConfig) }}</template>
</el-table-column>
@@ -94,6 +105,12 @@
<el-form-item label="模板名称" prop="name">
<el-input v-model="form.name" maxlength="100" show-word-limit />
</el-form-item>
<el-form-item label="车船类型" prop="vehicleType">
<el-radio-group v-model="form.vehicleType">
<el-radio label="车辆">车辆</el-radio>
<el-radio label="船舶">船舶</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="字段映射" required>
<el-table :data="mappingRows" border class="insurance-ocr-template-page__mapping-table">
<el-table-column prop="key" label="键名" width="180" align="center" />
@@ -165,8 +182,8 @@ export default {
readonly: false,
data: [],
selectionList: [],
query: { name: '' },
form: { id: '', name: '' },
query: { name: '', vehicleType: '' },
form: { id: '', name: '', vehicleType: '车辆' },
mappingRows: createMappingRows(),
page: {
pageSize: 10,
@@ -176,6 +193,7 @@ export default {
},
rules: {
name: [{ required: true, message: '请输入模板名称', trigger: 'blur' }],
vehicleType: [{ required: true, message: '请选择车船类型', trigger: 'change' }],
},
};
},
@@ -218,6 +236,7 @@ export default {
},
resetSearch() {
this.query.name = '';
this.query.vehicleType = '';
this.search();
},
currentChange(currentPage) {
@@ -235,18 +254,23 @@ export default {
openDialog(row, readonly = false) {
this.readonly = readonly;
if (!row?.id) {
this.form = { id: '', name: '', vehicleType: '车辆' };
this.dialogVisible = true;
return;
}
getDetail(row.id).then(res => {
const detail = res.data.data || {};
this.form = { id: detail.id, name: detail.name || '' };
this.form = {
id: detail.id,
name: detail.name || '',
vehicleType: detail.vehicleType || '车辆',
};
this.mappingRows = createMappingRows(detail.mappingConfig);
this.dialogVisible = true;
});
},
resetForm() {
this.form = { id: '', name: '' };
this.form = { id: '', name: '', vehicleType: '车辆' };
this.mappingRows = createMappingRows();
this.readonly = false;
this.submitLoading = false;
@@ -264,6 +288,7 @@ export default {
submit({
id: this.form.id || undefined,
name: String(this.form.name || '').trim(),
vehicleType: this.form.vehicleType || '车辆',
mappingConfig: JSON.stringify(
this.mappingRows.map(item => ({ key: item.key, value: String(item.value || '').trim() }))
),
@@ -311,7 +336,7 @@ export default {
align-items: center;
gap: 8px;
margin-left: auto;
width: 380px;
width: 520px;
}
&__mapping-table {