检查项目维护检查方法、部位前端表格数据映射ok

This commit is contained in:
qk123
2025-12-01 13:42:15 +08:00
parent 8beff2ee14
commit 2e341a123e

View File

@@ -205,13 +205,13 @@
</div>
<div class="search-bar">
<div class="search-item">
<label>检查方法</label>
<el-select v-model="searchParams.checkMethod" placeholder="选择检查方" style="width: 150px">
<label>检查类型</label>
<el-select v-model="searchParams.checkMethod" placeholder="选择检查方类型" style="width: 150px">
<el-option
v-for="method in checkMethods"
:key="method.code"
:label="method.name"
:value="method.code"
v-for="type in checkTypes"
:key="type"
:label="type"
:value="type"
>
</el-option>
</el-select>
@@ -221,7 +221,7 @@
<el-input placeholder="名称/编码" v-model="searchParams.name" />
</div>
<div class="search-item">
<label>使用套餐</label>
<label>用套餐</label>
<el-select v-model="searchParams.packageId" placeholder="选择使用套餐" style="width: 150px">
<el-option
v-for="pkg in checkPackages"
@@ -245,11 +245,11 @@
<thead>
<tr>
<th style="width: 50px;"></th>
<th style="width: 100px;">*</th>
<th style="width: 150px;">*方法名称</th>
<th style="width: 150px;">关联检查类型</th>
<th style="width: 150px;">*执行科室</th>
<th style="width: 100px;">收费金额</th>
<th style="width: 100px;"></th>
<th style="width: 150px;">名称</th>
<th style="width: 150px;">检查类型</th>
<th style="width: 150px;">套餐名称</th>
<th style="width: 100px;">曝光次数</th>
<th style="width: 100px;">序号</th>
<th style="width: 150px;">备注</th>
<th style="width: 120px;">操作</th>
@@ -281,60 +281,35 @@
</td>
<td>
<template v-if="item.editing">
<select v-model="item.type" :class="{ 'placeholder-text': !item.type }">
<option value="">选择关联检查类型</option>
<option
v-for="type in checkTypes"
:key="type"
:value="type"
>
{{ type }}
</option>
</select>
<input type="text" placeholder="请输入检查类型" v-model="item.checkType">
</template>
<template v-else>
<span v-if="item.type">{{ item.type }}</span>
<span v-else class="placeholder-text">选择关联检查类型</span>
{{ item.checkType || '' }}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="text" placeholder="请输入套餐名称" v-model="item.packageName">
</template>
<template v-else>
{{ item.packageName || '' }}
</template>
</td>
<td>
<template v-if="item.editing">
<select v-model="item.department" :class="{ 'placeholder-text': !item.department }">
<option value="">选择执行科室</option>
<option
v-if="item.department"
:value="item.department"
>
{{ item.department }}
</option>
<option
v-for="dept in departments"
:key="dept.dictValue"
:value="dept.dictLabel"
>
{{ dept.dictLabel }}
</option>
</select>
<input type="text" v-model="item.exposureNum">
</template>
<template v-else>
<span v-if="item.department">{{ item.department }}</span>
<span v-else class="placeholder-text">选择执行科室</span>
{{ item.exposureNum || 0}}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="number" min="0" step="0.01" placeholder="请输入收费金额" v-model="item.amount">
<input type="text" v-model="item.orderNum">
</template>
<template v-else>
{{ item.amount || '0.00' }}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="text" v-model="item.number">
</template>
<template v-else>
{{ item.number || '999999' }}
{{ item.orderNum || '0' }}
</template>
</td>
<td>
@@ -370,13 +345,13 @@
</div>
<div class="search-bar">
<div class="search-item">
<label>检查方法</label>
<el-select v-model="searchParams.checkMethod" placeholder="选择检查方法" style="width: 150px">
<label>检查类型</label>
<el-select v-model="searchParams.checkType" placeholder="选择检查类型" style="width: 150px">
<el-option
v-for="method in checkMethods"
:key="method.code"
:label="method.name"
:value="method.code"
v-for="type in checkTypes"
:key="type"
:label="type"
:value="type"
>
</el-option>
</el-select>
@@ -387,7 +362,7 @@
</div>
<div class="search-item">
<label>费用套餐</label>
<el-input placeholder="名称" v-model="searchParams.name" />
<el-input placeholder="费用套餐" v-model="searchParams.packageName" />
</div>
<div class="search-actions">
@@ -404,10 +379,14 @@
<tr>
<th style="width: 50px;"></th>
<th style="width: 100px;">*编码</th>
<th style="width: 150px;">*部位名称</th>
<th style="width: 120px;">优先级</th>
<th style="width: 100px;">是否可见</th>
<th style="width: 100px;">序号</th>
<th style="width: 150px;">*名称</th>
<th style="width: 120px;">检查类型</th>
<th style="width: 100px;">曝光次数</th>
<th style="width: 120px;">费用套餐</th>
<th style="width: 100px;">金额</th>
<th style="width: 80px;">序号</th>
<th style="width: 120px;">服务范围</th>
<th style="width: 120px;">下级医技类型</th>
<th style="width: 150px;">备注</th>
<th style="width: 120px;">操作</th>
</tr>
@@ -430,7 +409,7 @@
</td>
<td>
<template v-if="item.editing">
<input type="text" placeholder="请输入部位名称" v-model="item.name">
<input type="text" placeholder="请输入名称" v-model="item.name">
</template>
<template v-else>
{{ item.name }}
@@ -438,31 +417,60 @@
</td>
<td>
<template v-if="item.editing">
<input type="number" min="1" placeholder="请输入优先级" v-model="item.priority">
<input type="text" placeholder="请输入检查类型" v-model="item.checkType">
</template>
<template v-else>
{{ item.priority || '1' }}
{{ item.checkType || '' }}
</template>
</td>
<td>
<template v-if="item.editing">
<select v-model="item.visible">
<option value="1"></option>
<option value="0"></option>
</select>
<input type="number" min="0" placeholder="请输入曝光次数" v-model="item.exposureNum">
</template>
<template v-else>
{{ item.visible === '1' ? '' : '' }}
{{ item.exposureNum || '0' }}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="text" v-model="item.number">
<input type="text" placeholder="请输入费用套餐" v-model="item.packageName">
</template>
<template v-else>
{{ item.packageName || '' }}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="number" step="0.01" min="0" placeholder="请输入金额" v-model="item.price">
</template>
<template v-else>
{{ item.price || '0.00' }}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="number" min="0" placeholder="请输入序号" v-model="item.number">
</template>
<template v-else>
{{ item.number || '999999' }}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="text" placeholder="请输入服务范围" v-model="item.serviceScope">
</template>
<template v-else>
{{ item.serviceScope || '' }}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="text" placeholder="请输入下级医技类型" v-model="item.subType">
</template>
<template v-else>
{{ item.subType || '' }}
</template>
</td>
<td>
<template v-if="item.editing">
<input type="text" placeholder="请输入备注" v-model="item.remark">
@@ -528,6 +536,8 @@ const searchParams = reactive({
checkMethod: '',
name: '',
packageId: '',
packageName: '',
checkType: '',
checkPartCode: '',
checkPartName: '',
visible: ''
@@ -686,10 +696,10 @@ async function loadMenuData(menu) {
row: (index + 1).toString(),
code: item.code,
name: item.name,
type: item.type || '',
department: item.department || '',
amount: item.amount || '0.00',
number: item.number || '999999',
checkType: item.checkType || '',
packageName: item.packageName || '',
exposureNum: item.exposureNum || 0,
orderNum: item.orderNum || 0,
remark: item.remark || '',
actions: true
});
@@ -701,7 +711,9 @@ async function loadMenuData(menu) {
// 构建检查部位的搜索参数
const partSearchParams = {
code: searchParams.checkPartCode,
name: searchParams.checkPartName,
name: searchParams.name,
checkType: searchParams.checkType,
packageName: searchParams.packageName,
visible: searchParams.visible
};
const partResponse = await listCheckPart(partSearchParams);
@@ -712,9 +724,13 @@ async function loadMenuData(menu) {
row: (index + 1).toString(),
code: item.code,
name: item.name,
priority: item.priority || '1',
visible: item.visible !== undefined ? String(item.visible) : '1',
checkType: item.checkType || '',
exposureNum: item.exposureNum || 0,
packageName: item.packageName || '',
price: item.price || 0,
number: item.number || '999999',
serviceScope: item.serviceScope || '',
subType: item.subType || '',
remark: item.remark || '',
actions: true
});
@@ -832,9 +848,13 @@ function handleAddNewRow() {
row: String(maxRowNum + 1),
code: '',
name: '',
priority: '1',
visible: '1',
checkType: '',
exposureNum: 0,
packageName: '',
price: 0,
number: '999999',
serviceScope: '',
subType: '',
remark: '',
editing: true, // 新行默认进入编辑状态
isNew: true, // 标记为新增行
@@ -901,6 +921,8 @@ function handleReset() {
searchParams.checkMethod = '';
searchParams.name = '';
searchParams.packageId = '';
searchParams.packageName = '';
searchParams.checkType = '';
searchParams.checkPartCode = '';
searchParams.checkPartName = '';
searchParams.visible = '';