This commit is contained in:
ChenQiuYu 2025-05-20 16:50:55 +08:00
parent f20ce14e31
commit 447299faf6
2 changed files with 170 additions and 127 deletions

View File

@ -3,24 +3,24 @@
<template #default> <template #default>
<el-scrollbar> <el-scrollbar>
<div style="padding: 24px"> <div style="padding: 24px">
<el-form :model="form" label-width="auto"> <el-form :model="form" label-width="auto" :rules="formRules" ref="formRef">
<el-descriptions <el-descriptions
:column="4" :column="4"
direction="vertical" direction="vertical"
border border
> >
<el-descriptions-item label="科室名称"> <el-descriptions-item label="科室名称">
<el-form-item> <el-form-item prop="name">
<el-input v-model="form.name"/> <el-input v-model="form.name"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="科室类别"> <el-descriptions-item label="科室类别">
<el-form-item> <el-form-item prop="caty">
<el-cascader :props="{ checkStrictly: true }" v-model="form.caty" :options="options"/> <el-cascader :props="{ checkStrictly: true }" v-model="form.caty" :options="options"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="开始日期"> <el-descriptions-item label="开始日期">
<el-form-item> <el-form-item prop="beginDate">
<div class="demo-date-picker"> <div class="demo-date-picker">
<el-date-picker <el-date-picker
v-model="form.beginDate" v-model="form.beginDate"
@ -59,12 +59,12 @@
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="负责人姓名"> <el-descriptions-item label="负责人姓名">
<el-form-item> <el-form-item prop="resperName">
<el-input v-model="form.resperName"/> <el-input v-model="form.resperName"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="负责人电话"> <el-descriptions-item label="负责人电话">
<el-form-item> <el-form-item prop="resperTel">
<el-input v-model="form.resperTel"/> <el-input v-model="form.resperTel"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@ -74,7 +74,7 @@
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="批准床位数"> <el-descriptions-item label="批准床位数">
<el-form-item> <el-form-item prop="bedCnt">
<el-input v-model="form.bedCnt" type="number"/> <el-input v-model="form.bedCnt" type="number"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@ -84,22 +84,22 @@
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="医师人数"> <el-descriptions-item label="医师人数">
<el-form-item> <el-form-item prop="drPsncnt">
<el-input v-model.number="form.drPsncnt" type="number"/> <el-input v-model.number="form.drPsncnt" type="number"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="药师人数"> <el-descriptions-item label="药师人数">
<el-form-item> <el-form-item prop="pharPsncnt">
<el-input v-model.number="form.pharPsncnt" type="number"/> <el-input v-model.number="form.pharPsncnt" type="number"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="护士人数"> <el-descriptions-item label="护士人数">
<el-form-item> <el-form-item prop="nursPsncnt">
<el-input v-model.number="form.nursPsncnt" type="number"/> <el-input v-model.number="form.nursPsncnt" type="number"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="技术人员人数"> <el-descriptions-item label="技术人员人数">
<el-form-item> <el-form-item prop="tecnPsncnt">
<el-input v-model.number="form.tecnPsncnt" type="number"/> <el-input v-model.number="form.tecnPsncnt" type="number"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
@ -155,6 +155,41 @@ const form = ref<any>({
tecnPsncnt: '', tecnPsncnt: '',
memo: '', memo: '',
}) })
const formRules = ref<any>({
name: [
{required: true, message: '请输入名称', trigger: 'blur'},
],
caty: [
{required: true, message: '请选择科室类别', trigger: 'blur'},
],
beginDate: [
{required: true, message: '请选择开始日期', trigger: 'blur'},
],
resperName: [
{required: true, message: '请输入负责人姓名', trigger: 'blur'},
],
resperTel: [
{required: true, message: '请输入负责人电话', trigger: 'blur'},
],
creationDate: [
{required: true, message: '请选择成立时间', trigger: 'change'},
],
bedCnt: [
{required: true, message: '请输入批准床位数', trigger: 'blur'},
],
drPsncnt: [
{required: true, message: '请输入医师人数', trigger: 'blur'},
],
pharPsncnt: [
{required: true, message: '请输入药师人数', trigger: 'blur'},
],
nursPsncnt: [
{required: true, message: '请输入护士人数', trigger: 'blur'},
],
tecnPsncnt: [
{required: true, message: '请输入技师人数', trigger: 'blur'},
],
})
const isShow = ref<any>(false) const isShow = ref<any>(false)
const emit = defineEmits(['onSubmit']) const emit = defineEmits(['onSubmit'])
const exit = () => { const exit = () => {
@ -168,7 +203,10 @@ const openDialog= () => {
init(props.id) init(props.id)
} }
} }
const formRef = ref()
const save = () => { const save = () => {
formRef.value.validate((valid: any) => {
if (valid) {
if (props.id) { if (props.id) {
post("organization/section/edit", {data: form.value}).then((res) => { post("organization/section/edit", {data: form.value}).then((res) => {
exit() exit()
@ -181,6 +219,8 @@ const save = () => {
}) })
} }
} }
})
}
const options = Object.entries(depts).map(([key, value]) => { const options = Object.entries(depts).map(([key, value]) => {
if (typeof value === 'string') { if (typeof value === 'string') {
return {value: key, label: value}; return {value: key, label: value};

View File

@ -9,7 +9,6 @@
clearable clearable
v-model="searchModel.keyword" v-model="searchModel.keyword"
@input="searchGoods" @input="searchGoods"
style="width: 300px"
> >
<template #prefix> <template #prefix>
<el-icon> <el-icon>
@ -19,14 +18,13 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-cascader :collapse-tags="true" :props="props" style="width: 100px" :options="allCateList" <el-cascader :collapse-tags="true" :props="props" :options="allCateList"
:show-all-levels="false" :show-all-levels="false"
v-model="searchModel.cateId" clearable/> v-model="searchModel.cateId" clearable/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select
placeholder="利润分类" placeholder="利润分类"
style="width: 100px"
multiple multiple
collapse-tags collapse-tags
collapse-tags-tooltip collapse-tags-tooltip
@ -52,8 +50,7 @@
</el-icon> </el-icon>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input placeholder="最高毛利率" v-model="searchModel.maxInterestRate" <el-input placeholder="最高毛利率" style="width: 100px" v-model="searchModel.maxInterestRate">
style="width: 100px">
<template #suffix> <template #suffix>
<el-icon class="el-input__icon">%</el-icon> <el-icon class="el-input__icon">%</el-icon>
</template> </template>
@ -497,16 +494,22 @@ const props = {multiple: true}
margin-left: 5px; margin-left: 5px;
} }
:deep(.el-input__inner) { :deep(.el-input__wrapper) {
height: 42px; height: 42px;
width: 100px;
&:nth-child(1) {
width: 280px;
}
} }
:deep(.el-cascader .el-input) { :deep(.el-cascader .el-input) {
height: 42px; height: 42px;
width: 100px;
} }
:deep(.el-select__wrapper) { :deep(.el-select__wrapper) {
height: 42px; height: 42px;
width: 100px;
} }
.btn-group { .btn-group {