Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2026-06-18 06:21:17 +08:00
21 changed files with 325 additions and 129 deletions

View File

@@ -1,7 +1,7 @@
# HealthLink-HIS 代码模块索引
> 供 LLM 快速定位代码。每个模块列出 Controller → Service → Mapper 关键文件。
> 最后更新: 2026-06-17 12:00 (301 个 Controller)
> 最后更新: 2026-06-18 06:00 (309 个 Controller)
## 关键词 → 模块速查

View File

@@ -37,7 +37,7 @@ public class OrdersGroupPackageDto {
/**
* 名称
*/
private String Name;
private String name;
/**
* 明细集合

View File

@@ -0,0 +1,10 @@
-- V66: 修复 Bug#723 — 删除 sys_menu 中重复的"住院医生增强"菜单条目
-- 根因sys_menu 表中存在两条 menu_name = '住院医生增强' 且 parent_id 相同的记录
-- 修复:保留 menu_id 最小的一条20171删除其余重复记录
DELETE FROM sys_menu
WHERE menu_name = '住院医生增强'
AND menu_id NOT IN (
SELECT MIN(menu_id)
FROM sys_menu
WHERE menu_name = '住院医生增强'
);

View File

@@ -68,6 +68,7 @@
"vue-plugin-hiprint": "^0.0.60",
"vue-router": "^4.6.4",
"vxe-table": "^4.19.6",
"vxe-pc-ui": "^4.14.26",
"xe-utils": "^4.0.8"
},
"devDependencies": {

View File

@@ -9,3 +9,6 @@ export function listHqmsReports(homepageId) { return request({ url: "/api/v1/mr-
export function trackStatus(homepageId) { return request({ url: "/api/v1/mr-homepage/tracking/" + homepageId, method: "get" }) }
export function borrowRecord(data) { return request({ url: "/api/v1/mr-homepage/tracking/borrow", method: "post", data }) }
export function returnRecord(borrowingId) { return request({ url: "/api/v1/mr-homepage/tracking/return", method: "post", params: { borrowingId } }) }
export function saveDeathDiscussion(data) { return request({ url: "/api/v1/mr-homepage/death-discussion/save", method: "post", data }) }
export function listDeathDiscussions(homepageId) { return request({ url: "/api/v1/mr-homepage/death-discussion/list/" + homepageId, method: "get" }) }
export function getPendingDeadline() { return request({ url: "/api/v1/mr-homepage/death-discussion/pending-deadline", method: "get" }) }

View File

@@ -243,11 +243,20 @@ export function tansParams(params) {
var part = encodeURIComponent(propName) + '=';
if (value !== null && value !== '' && typeof value !== 'undefined') {
if (typeof value === 'object') {
for (const key of Object.keys(value)) {
if (value[key] !== null && value[key] !== '' && typeof value[key] !== 'undefined') {
let params = propName + '[' + key + ']';
var subPart = encodeURIComponent(params) + '=';
result += subPart + encodeURIComponent(value[key]) + '&';
if (Array.isArray(value)) {
// 数组:序列化为重复同名参数,兼容 Spring @RequestParam List 绑定
for (const item of value) {
if (item !== null && item !== '' && typeof item !== 'undefined') {
result += part + encodeURIComponent(item) + '&';
}
}
} else {
for (const key of Object.keys(value)) {
if (value[key] !== null && value[key] !== '' && typeof value[key] !== 'undefined') {
let params = propName + '[' + key + ']';
var subPart = encodeURIComponent(params) + '=';
result += subPart + encodeURIComponent(value[key]) + '&';
}
}
}
} else {

View File

@@ -239,8 +239,8 @@
align="center"
field="totalVolume"
show-overflow="title"
min-width="200px"
width="200px"
min-width="200"
width="200"
/>
<vxe-column
key="statusEnum_enumText"

View File

@@ -127,7 +127,7 @@
<vxe-column
title="检验项目"
field="itemName"
min-width="170px"
min-width="170"
align="center"
header-align="center"
>

View File

@@ -14,17 +14,17 @@
<vxe-column
title="姓名"
field="name"
min-width="90px"
min-width="90"
/>
<vxe-column
title="年龄"
field="age"
width="60px"
width="60"
/>
<vxe-column
title="费别"
field="feeType"
width="60px"
width="60"
/>
<vxe-column
title="病区"

View File

@@ -59,7 +59,7 @@
<vxe-table
ref="tableRef"
:data="treatHospitalizedData"
min-width="1600px"
min-width="1600"
show-overflow="title"
@radio-change="handleRadioChange"
>

View File

@@ -50,7 +50,7 @@
<div class="table-container">
<vxe-table
:data="treatHospitalizedData"
min-width="900px"
min-width="900"
show-overflow="title"
>
<vxe-column

View File

@@ -83,6 +83,7 @@
<el-button
type="primary"
plain
:disabled="hasUnsavedDiagnosis"
@click="handleAddDiagnosis()"
>
新增诊断
@@ -98,12 +99,19 @@
<el-button
type="primary"
plain
:disabled="hasUnsavedDiagnosis"
@click="handleImport()"
>
导入慢性病诊断
</el-button>
</div>
<div
v-if="hasUnsavedDiagnosis"
class="unsaved-diagnosis-tip"
>
<el-icon><WarningFilled /></el-icon> 当前有未保存的诊断,请先保存后再新增
</div>
<el-form
ref="formRef"
:model="form"
@@ -377,7 +385,7 @@
</template>
<script setup>
import {getCurrentInstance, ref, watch} from 'vue'; // 添加 nextTick 导入
import {getCurrentInstance, ref, computed, watch} from 'vue'; // 添加 nextTick 导入
import useUserStore from '@/store/modules/user';
import {
delEncounterDiagnosis,
@@ -397,7 +405,7 @@ import {deleteTcmDiagnosis} from '@/views/doctorstation/components/api.js';
import diagnosisdialog from '../diagnosis/diagnosisdialog.vue';
import AddDiagnosisDialog from './addDiagnosisDialog.vue';
import diagnosislist from '../diagnosis/diagnosislist.vue';
import {patientInfo} from '../../store/patient.js';
import {ElMessage} from 'element-plus';
// const diagnosisList = ref([]);
const allowAdd = ref(false);
@@ -414,6 +422,13 @@ const syndromeOptions = ref([]);
const form = ref({
diagnosisList: [],
});
// 计算属性:是否有未保存的新诊断
const hasUnsavedDiagnosis = computed(() => {
return (form.value.diagnosisList || []).some(
(item) => !item.conditionId && !item.encounterDiagnosisId
);
});
const props = defineProps({
patientInfo: {
type: Object,
@@ -555,6 +570,7 @@ function getList() {
conditionId: item.conditionId || '',
encounterDiagnosisId: item.encounterDiagnosisId || '',
syndromeGroupNo: item.syndromeGroupNo || res.data.symptom[index]?.syndromeGroupNo || '',
illnessName: item.name, // 保存原始疾病名称,避免保存时发送合并名称
name: item.name + '-' + (res.data.symptom[index]?.name || ''),
ybNo: item.ybNo,
definitionId: item.definitionId || '',
@@ -611,7 +627,22 @@ function handleImport() {
if (!props.patientInfo || !props.patientInfo.encounterId) {
return;
}
// 检查是否已填写病历
if (!allowAdd.value) {
proxy.$modal.msgWarning('请先填写病历');
return;
}
// 检查当前列表是否有未保存的诊断,阻止重复新增
const hasUnsaved = (form.value.diagnosisList || []).some(
(item) => !item.conditionId && !item.encounterDiagnosisId
);
if (hasUnsaved) {
proxy.$modal.msgWarning('请保存当前诊断');
return;
}
if (props.patientInfo.contractName != '自费') {
// 获取患者慢性病信息
getChronicDisease({ encounterId: props.patientInfo.encounterId }).then((res) => {
@@ -710,7 +741,22 @@ function getTree() {
*/
function handleAddDiagnosis() {
console.log('点击新增诊断按钮allowAdd:', allowAdd.value);
// 检查是否已填写病历(必须先于其他检查)
if (!allowAdd.value) {
proxy.$modal.msgWarning('请先填写病历');
return;
}
// 检查当前列表是否已有未保存的诊断,阻止重复新增
const hasUnsaved = (form.value.diagnosisList || []).some(
(item) => !item.conditionId && !item.encounterDiagnosisId
);
if (hasUnsaved) {
proxy.$modal.msgWarning('请保存当前诊断');
return;
}
// 检查表单ref是否存在
if (!proxy.$refs.formRef) {
console.error('表单ref不存在');
@@ -718,23 +764,20 @@ function handleAddDiagnosis() {
addDiagnosisItem();
return;
}
proxy.$refs.formRef.validate((valid, fields) => {
console.log('表单验证结果:', valid, '错误字段:', fields);
if (valid) {
if (!allowAdd.value) {
proxy.$modal.msgWarning('请先填写病历');
return;
}
addDiagnosisItem();
} else {
console.warn('表单验证失败:', fields);
// 验证失败时也允许添加(因为是新增空行)
if (allowAdd.value) {
console.log('验证失败但允许添加,强制添加诊断');
addDiagnosisItem();
// 再次检查是否有未保存的诊断(防止 validate 异步回调的竞态条件)
const hasUnsavedNow = (form.value.diagnosisList || []).some(
(item) => !item.conditionId && !item.encounterDiagnosisId
);
if (!valid || hasUnsavedNow) {
if (hasUnsavedNow) {
proxy.$modal.msgWarning('请保存当前诊断');
}
return;
}
addDiagnosisItem();
});
}
@@ -982,9 +1025,14 @@ function handleSaveDiagnosis() {
// 再逐个保存中医诊断(只追加,不清空)
for (const item of tcmList) {
const syndromeGroupNo = item.conditionId
? `${item.conditionId}-${item.tcmSyndromeCode || Date.now()}`
: `${Date.now()}-${item.tcmSyndromeCode || '0'}`;
// 优先使用已有的 syndromeGroupNo,避免每次保存生成新值导致重复创建
const syndromeGroupNo = item.syndromeGroupNo || (
item.conditionId
? `${item.conditionId}-${item.tcmSyndromeCode || Date.now()}`
: `${Date.now()}-${item.tcmSyndromeCode || '0'}`
);
// 使用原始疾病名称illnessName而非合并后的名称如"感冒-风寒证"
const illnessName = item.illnessName || item.name;
await saveTcmDiagnosis({
patientId: props.patientInfo.patientId,
encounterId: props.patientInfo.encounterId,
@@ -992,7 +1040,8 @@ function handleSaveDiagnosis() {
// 病illness
{
conditionId: item.conditionId || null,
name: item.name,
encounterDiagnosisId: item.encounterDiagnosisId || null,
name: illnessName,
ybNo: item.ybNo,
definitionId: item.definitionId || null,
diagSrtNo: item.diagSrtNo,
@@ -1085,10 +1134,22 @@ function handleNodeClick(data) {
// 如果是根节点,不执行任何操作
return;
}
// if (!allowAdd.value) {
// proxy.$modal.msgWarning('请先填写病历');
// return;
// }
// 检查是否已填写病历
if (!allowAdd.value) {
proxy.$modal.msgWarning('请先填写病历');
return;
}
// 检查当前列表是否有未保存的诊断,阻止重复新增
const hasUnsaved = (form.value.diagnosisList || []).some(
(item) => !item.conditionId && !item.encounterDiagnosisId
);
if (hasUnsaved) {
proxy.$modal.msgWarning('请保存当前诊断');
return;
}
const isDuplicate = form.value.diagnosisList.some(
(diagnosis) => diagnosis.ybNo === data.ybNo || diagnosis.name === data.name
);
@@ -1099,13 +1160,20 @@ function handleNodeClick(data) {
form.value.diagnosisList.push({
ybNo: data.ybNo,
name: data.name,
showPopover: false,
diagnosisSystem: '西医',
tcmSyndromeCode: '',
tcmSyndromeName: '',
syndromeDefinitionId: '',
syndromeGroupNo: '',
verificationStatusEnum: 4,
medTypeCode: undefined,
diagSrtNo: form.value.diagnosisList.length + 1,
definitionId: data.definitionId,
iptDiseTypeCode: 2,
diagnosisDesc: '',
diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name,
diagnosisTime: new Date().toLocaleString('zh-CN'),
// 添加 patientId
patientId: props.patientInfo.patientId
});
if (form.value.diagnosisList.length == 1) {
@@ -1132,4 +1200,13 @@ defineExpose({ getList, getDetail, handleSaveDiagnosis });
display: flex;
align-items: center;
}
</style>
.unsaved-diagnosis-tip {
margin-bottom: 10px;
color: #E6A23C;
font-size: 13px;
display: flex;
align-items: center;
gap: 4px;
}
</style>

View File

@@ -348,6 +348,12 @@ function getCurrentDate() {
}
function addNewDiagnosis() {
// Bug #783: 存在未保存的新诊断时,不允许继续新增
const hasUnsavedRow = diagnoseData.value.some(item => item.isNew && !item.conditionId)
if (hasUnsavedRow) {
ElMessage.warning('请先保存已新增的诊断,再添加新诊断')
return
}
const maxSortNo = diagnoseData.value.length > 0
? Math.max(...diagnoseData.value.map(item => item.sortNo || 0))
: 0
@@ -374,6 +380,12 @@ function addNewDiagnosis() {
}
function addNewChinese() {
// Bug #783: 存在未保存的新诊断时,不允许继续新增
const hasUnsavedRow = diagnoseData.value.some(item => item.isNew && !item.conditionId)
if (hasUnsavedRow) {
ElMessage.warning('请先保存已新增的诊断,再添加新诊断')
return
}
chineseMedicineDialogVisible.value = true
}

View File

@@ -121,7 +121,7 @@
<vxe-column
title="类型"
field="name"
min-width=" 60px"
min-width="60"
>
<template #default="{ row }">
<span v-if="!row.children">长期</span>
@@ -134,7 +134,7 @@
<vxe-column
title="医嘱内容"
field="content"
min-width="220px"
min-width="220"
>
<template #default="{ row }">
<span v-if="row.children">{{ row.content }}</span>
@@ -144,9 +144,9 @@
v-if="searchForm.drugType == '1' || searchForm.drugType == '3'"
title="用法/频次"
field="gender"
min-width="120px"
min-width="120"
>
<template #default="{ row }">
<template #default>
<span>注射/qd</span>
</template>
</vxe-column>
@@ -154,7 +154,7 @@
v-if="searchForm.drugType == '3'"
title="领药数量"
field="gender"
min-width="120px"
min-width="120"
>
<template #default="{ row }">
<el-input-number
@@ -169,27 +169,27 @@
v-if="searchForm.drugType == '1' || searchForm.drugType == '2'"
title="领药总量"
field="gender"
min-width="100px"
min-width="100"
>
<template #default="{ row }">
<template #default>
<span>2 </span>
</template>
</vxe-column>
<vxe-column
title="参考金额"
field="gender"
min-width="100px"
min-width="100"
>
<template #default="{ row }">
<template #default>
<span>20.00</span>
</template>
</vxe-column>
<vxe-column
title="取药科室"
field="gender"
min-width="140px"
min-width="140"
>
<template #default="{ row }">
<template #default>
<span>儿科</span>
</template>
</vxe-column>
@@ -198,7 +198,7 @@
title="领药次数"
field="gender"
fixed="right"
min-width="340px"
min-width="340"
>
<template #default="{ row }">
<template v-if="!row.children">
@@ -235,7 +235,7 @@
<vxe-column
title="医嘱内容"
field="content"
min-width="220px"
min-width="220"
>
<template #default="{ row }">
<span v-if="!row.children">{{ row.content }}</span>
@@ -247,27 +247,27 @@
<vxe-column
title="领药数量"
field="gender"
min-width="120px"
min-width="120"
>
<template #default="{ row }">
<template #default>
<span>2 </span>
</template>
</vxe-column>
<vxe-column
title="单价"
field="gender"
min-width="100px"
min-width="100"
>
<template #default="{ row }">
<template #default>
<span>20.00</span>
</template>
</vxe-column>
<vxe-column
title="参考金额"
field="gender"
min-width="140px"
min-width="140"
>
<template #default="{ row }">
<template #default>
<span>40.00</span>
</template>
</vxe-column>

View File

@@ -124,7 +124,7 @@
<vxe-column
title="执行时间"
field="gender"
min-width="200px"
min-width="200"
>
<template #default="{ row }">
<template v-if="!row.children">

View File

@@ -35,7 +35,6 @@
style="width: 200px"
/>
<el-button
type="primary"
plain
@click="handleGetPrescription"
>
@@ -52,19 +51,37 @@
v-model="chooseAll"
@change="handelSwitchChange"
/>
<el-button
type="primary"
@click="handleCheck"
>
核对通过
</el-button>
<el-button
type="danger"
:disabled="hasDispensedSelected"
@click="handleCancel"
>
退回
</el-button>
<!-- 未校对tab显示核对通过/退回 -->
<template v-if="activeTab === 'unverified'">
<el-button
type="primary"
@click="handleCheck"
>
核对通过
</el-button>
<el-button
type="danger"
:disabled="hasDispensedSelected"
@click="handleCancel"
>
退回
</el-button>
</template>
<!-- 已校对tab显示执行/不执行 -->
<template v-else-if="activeTab === 'verified'">
<el-button
type="success"
@click="handleExecute"
>
执行
</el-button>
<el-button
type="warning"
@click="handleVoid"
>
不执行
</el-button>
</template>
</div>
</div>
<div
@@ -680,6 +697,11 @@ function getSelectRows() {
requestId: item.requestId,
requestTable: item.adviceTable,
dispenseStatus: item.dispenseStatus,
encounterId: item.encounterId,
patientId: item.patientId,
accountId: item.accountId,
therapyEnum: item.therapyEnum,
exePerformRecordList: item.exePerformRecordList,
};
});
}
@@ -723,6 +745,90 @@ function getDateRange(startDate, endDate) {
// 处理后端返回的时间集合
function handleTime() {}
/**
* 执行医嘱
*/
function handleExecute() {
let list = getSelectRows();
if (list.length === 0) {
proxy.$message.warning('请先选择医嘱信息');
return;
}
// 检查是否已有执行记录(已执行的不需要再执行)
let executedItems = list.filter(item => item.exePerformRecordList && item.exePerformRecordList.length > 0);
if (executedItems.length > 0) {
proxy.$message.warning('选中医嘱中包含已执行的医嘱请取消勾选后重试');
return;
}
const now = new Date();
const exeDate = now.getFullYear() + '-' +
String(now.getMonth() + 1).padStart(2, '0') + '-' +
String(now.getDate()).padStart(2, '0') + ' ' +
String(now.getHours()).padStart(2, '0') + ':' +
String(now.getMinutes()).padStart(2, '0') + ':' +
String(now.getSeconds()).padStart(2, '0');
const adviceExecuteDetailList = list.map(item => ({
requestId: item.requestId,
encounterId: item.encounterId,
patientId: item.patientId,
accountId: item.accountId,
therapyEnum: item.therapyEnum,
adviceTable: item.requestTable,
executeTimes: [exeDate],
}));
adviceExecute({
exeDate: exeDate,
adviceExecuteDetailList: adviceExecuteDetailList,
}).then((res) => {
if (res.code == 200) {
proxy.$modal.msgSuccess(res.msg);
handleGetPrescription();
}
});
}
/**
* 不执行医嘱
*/
function handleVoid() {
let list = getSelectRows();
if (list.length === 0) {
proxy.$message.warning('请先选择医嘱信息');
return;
}
// 检查是否已有执行记录(已执行的不能标记为不执行)
let executedItems = list.filter(item => item.exePerformRecordList && item.exePerformRecordList.length > 0);
if (executedItems.length > 0) {
proxy.$message.warning('选中医嘱中包含已执行的医嘱请取消勾选后重试');
return;
}
const now = new Date();
const exeDate = now.getFullYear() + '-' +
String(now.getMonth() + 1).padStart(2, '0') + '-' +
String(now.getDate()).padStart(2, '0') + ' ' +
String(now.getHours()).padStart(2, '0') + ':' +
String(now.getMinutes()).padStart(2, '0') + ':' +
String(now.getSeconds()).padStart(2, '0');
const adviceExecuteDetailList = list.map(item => ({
requestId: item.requestId,
encounterId: item.encounterId,
patientId: item.patientId,
accountId: item.accountId,
therapyEnum: item.therapyEnum,
adviceTable: item.requestTable,
executeTimes: [exeDate],
}));
adviceNoExecute({
exeDate: exeDate,
adviceExecuteDetailList: adviceExecuteDetailList,
}).then((res) => {
if (res.code == 200) {
proxy.$modal.msgSuccess(res.msg);
handleGetPrescription();
}
});
}
defineExpose({
handleGetPrescription,
});

View File

@@ -133,7 +133,7 @@
<vxe-column
title="医嘱内容"
field="content"
min-width="300px"
min-width="300"
>
<template #default="{ row }">
<span v-if="row.children">{{ row.content }}</span>

View File

@@ -1,31 +1,10 @@
<!--
* @Author: sjjh
* @Date: 2025-09-09 13:49:40
* @Description:
* @Description: 护士工作站 - 退药管理复用住院退药组件
-->
<template>
<div class="container" />
<ReturnDrug />
</template>
<script setup>
import {getCurrentInstance, onBeforeMount, onMounted, reactive} from 'vue'
const { proxy } = getCurrentInstance();
const emits = defineEmits([])
const props = defineProps({
})
const state = reactive({
})
onBeforeMount(() => {
})
onMounted(() => {
})
defineExpose({ state })
</script>
<style lang="scss" scoped>
</style>
<script setup>
import ReturnDrug from '@/views/drug/inpatientMedicationDispensing/components/ReturnDrug.vue';
</script>

View File

@@ -32,7 +32,6 @@
placeholder="请选择"
clearable
filterable
@change=""
>
<el-option
v-for="item in temOptions"
@@ -220,7 +219,7 @@
</el-form-item>
</template>
</vxe-column>
<!-- <vxe-column width="200px" title="血氧">
<!-- <vxe-column width="200" title="血氧">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.rowIndex}.bloodOxygen`">
<div style="margin-left: -80px">
@@ -232,7 +231,7 @@
</el-form-item>
</template>
</vxe-column>
<vxe-column width="200px" title="血糖">
<vxe-column width="200" title="血糖">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.rowIndex}.bloodGlucose`">
<div style="margin-left: -80px">
@@ -241,7 +240,7 @@
</el-form-item>
</template>
</vxe-column>
<vxe-column width="200px" title="物理降温">
<vxe-column width="200" title="物理降温">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.rowIndex}.physicalCooling`">
<div style="margin-left: -80px">
@@ -250,7 +249,7 @@
</el-form-item>
</template>
</vxe-column>
<vxe-column width="200px" title="CCU心率">
<vxe-column width="200" title="CCU心率">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.rowIndex}.ccuHeartRate`">
<div style="margin-left: -80px">
@@ -259,7 +258,7 @@
</el-form-item>
</template>
</vxe-column>
<vxe-column width="200px" title="新生儿箱温">
<vxe-column width="200" title="新生儿箱温">
<template #default="scoped">
<el-form-item
size="normal"
@@ -271,7 +270,7 @@
</el-form-item>
</template>
</vxe-column>
<vxe-column width="200px" title="血酮">
<vxe-column width="200" title="血酮">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.rowIndex}.bloodKetone`">
<div style="margin-left: -80px">

View File

@@ -171,14 +171,14 @@
>
<vxe-column
type="checkbox"
width="50px"
width="50"
align="center"
/>
<vxe-column
key="busNo"
title="门诊号"
align="center"
min-width="150px"
min-width="150"
show-overflow="title"
resizable
>
@@ -204,7 +204,7 @@
title="姓名"
align="center"
field="name"
width="90px"
width="90"
show-overflow="title"
resizable
/>
@@ -213,7 +213,7 @@
title="医保号"
align="center"
field="ybCode"
min-width="200px"
min-width="200"
show-overflow="title"
resizable
/>
@@ -230,7 +230,7 @@
title="医保码"
align="center"
field="ybNo"
min-width="250px"
min-width="250"
show-overflow="title"
resizable
/>

View File

@@ -23,17 +23,17 @@
<vxe-column
title="序号"
type="seq"
min-width="5%"
width="5%"
/>
<vxe-column
title="字段列名"
field="columnName"
min-width="10%"
width="10%"
show-overflow="title"
/>
<vxe-column
title="字段描述"
min-width="10%"
width="10%"
>
<template #default="scope">
<el-input v-model="scope.row.columnComment" />
@@ -42,12 +42,12 @@
<vxe-column
title="物理类型"
field="columnType"
min-width="10%"
width="10%"
show-overflow="title"
/>
<vxe-column
title="Java类型"
min-width="11%"
width="11%"
>
<template #default="scope">
<el-select v-model="scope.row.javaType">
@@ -84,7 +84,7 @@
</vxe-column>
<vxe-column
title="java属性"
min-width="10%"
width="10%"
>
<template #default="scope">
<el-input v-model="scope.row.javaField" />
@@ -93,7 +93,7 @@
<vxe-column
title="插入"
min-width="5%"
width="5%"
>
<template #default="scope">
<el-checkbox
@@ -105,7 +105,7 @@
</vxe-column>
<vxe-column
title="编辑"
min-width="5%"
width="5%"
>
<template #default="scope">
<el-checkbox
@@ -117,7 +117,7 @@
</vxe-column>
<vxe-column
title="列表"
min-width="5%"
width="5%"
>
<template #default="scope">
<el-checkbox
@@ -129,7 +129,7 @@
</vxe-column>
<vxe-column
title="查询"
min-width="5%"
width="5%"
>
<template #default="scope">
<el-checkbox
@@ -141,7 +141,7 @@
</vxe-column>
<vxe-column
title="查询方式"
min-width="10%"
width="10%"
>
<template #default="scope">
<el-select v-model="scope.row.queryType">
@@ -182,7 +182,7 @@
</vxe-column>
<vxe-column
title="必填"
min-width="5%"
width="5%"
>
<template #default="scope">
<el-checkbox
@@ -194,7 +194,7 @@
</vxe-column>
<vxe-column
title="显示类型"
min-width="12%"
width="12%"
>
<template #default="scope">
<el-select v-model="scope.row.htmlType">
@@ -239,7 +239,7 @@
</vxe-column>
<vxe-column
title="字典类型"
min-width="12%"
width="12%"
>
<template #default="scope">
<el-select