门诊挂号项目画面 up by dh

This commit is contained in:
duhe
2025-03-07 17:52:35 +08:00
parent 6547415f8a
commit ac63ce64c6
14 changed files with 1582 additions and 165 deletions

View File

@@ -207,7 +207,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入名称" placeholder="请输入名称"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -217,7 +216,6 @@
<el-input <el-input
v-model="form.busNo" v-model="form.busNo"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>

View File

@@ -228,7 +228,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入服务名称" placeholder="请输入服务名称"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>

View File

@@ -15,18 +15,13 @@
<el-input <el-input
v-model="form.busNo" v-model="form.busNo"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="器材名称" prop="name"> <el-form-item label="器材名称" prop="name">
<el-input <el-input v-model="form.name" placeholder="请输入器材名称" />
v-model="form.name"
placeholder="请输入器材名称"
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@@ -35,69 +30,53 @@
prop="pyStr" prop="pyStr"
class="custom-label-spacing" class="custom-label-spacing"
> >
<el-input v-model="form.pyStr" placeholder="" maxlength="30" /> <el-input v-model="form.pyStr" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="器材五笔拼音" prop="wbStr"> <el-form-item label="器材五笔拼音" prop="wbStr">
<el-input v-model="form.wbStr" placeholder="" maxlength="30" /> <el-input v-model="form.wbStr" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="器材分类" prop="categoryEnum"> <el-form-item label="器材分类" prop="categoryEnum">
<el-input <el-input v-model="form.categoryEnum" placeholder="" />
v-model="form.categoryEnum"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="器材种类" prop="typeCode"> <el-form-item label="器材种类" prop="typeCode">
<el-input v-model="form.typeCode" placeholder="" maxlength="30" /> <el-input v-model="form.typeCode" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="包装单位" prop="unitCode"> <el-form-item label="包装单位" prop="unitCode">
<el-input v-model="form.unitCode" placeholder="" maxlength="30" /> <el-input v-model="form.unitCode" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="包装规格" prop="size"> <el-form-item label="包装规格" prop="size">
<el-input v-model="form.size" placeholder="" maxlength="30" /> <el-input v-model="form.size" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="最小单位" prop="minUnitCode"> <el-form-item label="最小单位" prop="minUnitCode">
<el-input <el-input v-model="form.minUnitCode" placeholder="" />
v-model="form.minUnitCode"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="拆零比" prop="partPercent"> <el-form-item label="拆零比" prop="partPercent">
<el-input <el-input v-model="form.partPercent" placeholder="" />
v-model="form.partPercent"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产品型号" prop="modelNumber"> <el-form-item label="产品型号" prop="modelNumber">
<el-input <el-input v-model="form.modelNumber" placeholder="" />
v-model="form.modelNumber"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@@ -105,7 +84,6 @@
<!-- <el-input <!-- <el-input
v-model="form.hvcmFlag" v-model="form.hvcmFlag"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> --> /> -->
<el-checkbox v-model="form.hvcmFlag"></el-checkbox> <el-checkbox v-model="form.hvcmFlag"></el-checkbox>
@@ -115,25 +93,17 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="销售单位" prop="salesUnitCode"> <el-form-item label="销售单位" prop="salesUnitCode">
<el-input <el-input v-model="form.salesUnitCode" placeholder="" />
v-model="form.salesUnitCode"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="批准文号" prop="approvalNumber"> <el-form-item label="批准文号" prop="approvalNumber">
<el-input <el-input v-model="form.approvalNumber" placeholder="" />
v-model="form.approvalNumber"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="医保标记" prop="ybFlag"> <el-form-item label="医保标记" prop="ybFlag">
<!-- <el-input v-model="form.ybFlag" placeholder="" maxlength="30" /> --> <!-- <el-input v-model="form.ybFlag" placeholder="" /> -->
<el-checkbox v-model="form.ybFlag"></el-checkbox> <el-checkbox v-model="form.ybFlag"></el-checkbox>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -141,7 +111,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="医保编码" prop="ybNo"> <el-form-item label="医保编码" prop="ybNo">
<el-input v-model="form.ybNo" placeholder="" maxlength="30" /> <el-input v-model="form.ybNo" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@@ -151,57 +121,41 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="状态" prop="statusEnum"> <el-form-item label="状态" prop="statusEnum">
<el-input <el-input v-model="form.statusEnum" placeholder="" />
v-model="form.statusEnum"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="生产厂家" prop="manufacturerId"> <el-form-item label="生产厂家" prop="manufacturerId">
<el-input <el-input v-model="form.manufacturerId" placeholder="" />
v-model="form.manufacturerId"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="供应商" prop="supplyId"> <el-form-item label="供应商" prop="supplyId">
<el-input v-model="form.supplyId" placeholder="" maxlength="30" /> <el-input v-model="form.supplyId" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="适用范围" prop="jurisdiction"> <el-form-item label="适用范围" prop="jurisdiction">
<el-input <el-input v-model="form.jurisdiction" placeholder="" />
v-model="form.jurisdiction"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="执行科室" prop="ruleId"> <el-form-item label="执行科室" prop="ruleId">
<el-input v-model="form.ruleId" placeholder="" maxlength="30" /> <el-input v-model="form.ruleId" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="器材版本" prop="version"> <el-form-item label="器材版本" prop="version">
<el-input v-model="form.version" placeholder="" maxlength="30" /> <el-input v-model="form.version" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="主要成分" prop="substanceText"> <el-form-item label="主要成分" prop="substanceText">
<el-input <el-input v-model="form.substanceText" placeholder="" />
v-model="form.substanceText"
placeholder=""
maxlength="30"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -384,8 +338,12 @@ function reset() {
function submitForm() { function submitForm() {
form.value.hvcmFlag ? (form.value.hvcmFlag = 1) : (form.value.hvcmFlag = 0); form.value.hvcmFlag ? (form.value.hvcmFlag = 1) : (form.value.hvcmFlag = 0);
form.value.ybFlag ? (form.value.ybFlag = 1) : (form.value.ybFlag = 0); form.value.ybFlag ? (form.value.ybFlag = 1) : (form.value.ybFlag = 0);
form.value.ybMatchFlag ? (form.value.ybMatchFlag = 1) : (form.value.ybMatchFlag = 0); form.value.ybMatchFlag
form.value.allergenFlag ? (form.value.allergenFlag = 1) : (form.value.allergenFlag = 0); ? (form.value.ybMatchFlag = 1)
: (form.value.ybMatchFlag = 0);
form.value.allergenFlag
? (form.value.allergenFlag = 1)
: (form.value.allergenFlag = 0);
console.log(form.value, "form.value"); console.log(form.value, "form.value");
if (form.value.id != undefined) { if (form.value.id != undefined) {
editDevice(form.value).then((response) => { editDevice(form.value).then((response) => {

View File

@@ -15,7 +15,6 @@
<el-input <el-input
v-model="form.busNo" v-model="form.busNo"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -25,19 +24,13 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入药品名" placeholder="请输入药品名"
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="拼音码(品名)" prop="name"> <el-form-item label="拼音码(品名)" prop="name">
<el-input <el-input v-model="form.name" placeholder="" :disabled="true" />
v-model="form.name"
placeholder=""
maxlength="30"
:disabled="true"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -56,17 +49,12 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="批准文号" prop="name"> <el-form-item label="批准文号" prop="name">
<el-input <el-input v-model="form.name" placeholder="" :disabled="true" />
v-model="form.name"
placeholder=""
maxlength="30"
:disabled="true"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="条形码" prop="name"> <el-form-item label="条形码" prop="name">
<el-input v-model="form.name" placeholder="" maxlength="30" /> <el-input v-model="form.name" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -92,7 +80,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -102,7 +89,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -110,11 +96,12 @@
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item <el-form-item label="最小单位" prop="conditionCode">
label="最小单位" <el-select
prop="conditionCode" v-model="queryParams.status"
> clearable
<el-select v-model="queryParams.status" clearable :disabled="true"> :disabled="true"
>
<el-option <el-option
v-for="dict in sys_normal_disable" v-for="dict in sys_normal_disable"
:key="dict.value" :key="dict.value"
@@ -129,7 +116,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -139,7 +125,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -147,11 +132,14 @@
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="处方限量(最小单位)" prop="conditionCode" class="custom-label-spacing"> <el-form-item
label="处方限量(最小单位)"
prop="conditionCode"
class="custom-label-spacing"
>
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -186,7 +174,11 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="用药频次" prop="name" :disabled="true"> <el-form-item label="用药频次" prop="name" :disabled="true">
<el-select v-model="queryParams.status" clearable :disabled="true"> <el-select
v-model="queryParams.status"
clearable
:disabled="true"
>
<el-option <el-option
v-for="dict in sys_normal_disable" v-for="dict in sys_normal_disable"
:key="dict.value" :key="dict.value"
@@ -201,7 +193,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
style="width: 49%" style="width: 49%"
/> />
@@ -224,7 +215,11 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="剂型" prop="conditionCode"> <el-form-item label="剂型" prop="conditionCode">
<el-select v-model="queryParams.status" clearable :disabled="true"> <el-select
v-model="queryParams.status"
clearable
:disabled="true"
>
<el-option <el-option
v-for="dict in sys_normal_disable" v-for="dict in sys_normal_disable"
:key="dict.value" :key="dict.value"

View File

@@ -15,7 +15,6 @@
<el-input <el-input
v-model="form.busNo" v-model="form.busNo"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -25,7 +24,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入器材名称" placeholder="请输入器材名称"
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -35,14 +33,14 @@
prop="pyStr" prop="pyStr"
class="custom-label-spacing" class="custom-label-spacing"
> >
<el-input v-model="form.pyStr" placeholder="" maxlength="30" /> <el-input v-model="form.pyStr" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="五笔拼音" prop="wbStr"> <el-form-item label="五笔拼音" prop="wbStr">
<el-input v-model="form.wbStr" placeholder="" maxlength="30" /> <el-input v-model="form.wbStr" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@@ -50,13 +48,12 @@
<el-input <el-input
v-model="form.categoryEnum" v-model="form.categoryEnum"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="类型" prop="typeCode"> <el-form-item label="类型" prop="typeCode">
<el-input v-model="form.typeCode" placeholder="" maxlength="30" /> <el-input v-model="form.typeCode" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -66,20 +63,19 @@
<el-input <el-input
v-model="form.permittedUnitCode" v-model="form.permittedUnitCode"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="医保标记" prop="ybFlag"> <el-form-item label="医保标记" prop="ybFlag">
<!-- <el-input v-model="form.ybFlag" placeholder="" maxlength="30" /> --> <!-- <el-input v-model="form.ybFlag" placeholder=""/> -->
<el-checkbox v-model="form.ybFlag"></el-checkbox> <el-checkbox v-model="form.ybFlag"></el-checkbox>
<!-- <el-input v-model="form.ybFlag" placeholder="" maxlength="30" /> --> <!-- <el-input v-model="form.ybFlag" placeholder=""/> -->
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="医保编码" prop="conditionCode"> <el-form-item label="医保编码" prop="conditionCode">
<el-input v-model="form.ybNo" placeholder="" maxlength="30" /> <el-input v-model="form.ybNo" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -95,17 +91,15 @@
<el-input <el-input
v-model="form.statusEnum" v-model="form.statusEnum"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="身体部位" prop="bodySiteCode"> <el-form-item label="身体部位" prop="bodySiteCode">
<!-- <el-input v-model="form.ybFlag" placeholder="" maxlength="30" /> --> <!-- <el-input v-model="form.ybFlag" placeholder=""/> -->
<el-input <el-input
v-model="form.bodySiteCode" v-model="form.bodySiteCode"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -116,7 +110,6 @@
<el-input <el-input
v-model="form.specimenCode" v-model="form.specimenCode"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>

View File

@@ -15,7 +15,6 @@
<el-input <el-input
v-model="form.busNo" v-model="form.busNo"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -25,7 +24,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入药品名" placeholder="请输入药品名"
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -35,7 +33,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -59,14 +56,13 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="条形码" prop="name"> <el-form-item label="条形码" prop="name">
<el-input v-model="form.name" placeholder="" maxlength="30" /> <el-input v-model="form.name" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -92,7 +88,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -102,7 +97,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -129,7 +123,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -139,7 +132,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -151,7 +143,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -201,7 +192,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
style="width: 49%" style="width: 49%"
/> />

View File

@@ -254,7 +254,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入名称" placeholder="请输入名称"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -264,7 +263,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>

View File

@@ -17,7 +17,6 @@
<el-input <el-input
v-model="form.busNo" v-model="form.busNo"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -27,7 +26,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入药品名" placeholder="请输入药品名"
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -36,7 +34,6 @@
<el-input <el-input
v-model="form.pyStr" v-model="form.pyStr"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -47,13 +44,12 @@
<el-input <el-input
v-model="form.totalVolume" v-model="form.totalVolume"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="小规格含量" prop="name"> <el-form-item label="小规格含量" prop="name">
<el-input v-model="form.name" placeholder="" maxlength="30" /> <el-input v-model="form.name" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@@ -61,7 +57,6 @@
<el-input <el-input
v-model="form.merchandiseName" v-model="form.merchandiseName"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -72,7 +67,6 @@
<el-input <el-input
v-model="form.manufacturerId" v-model="form.manufacturerId"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -81,7 +75,6 @@
<el-input <el-input
v-model="form.unitCode" v-model="form.unitCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -91,7 +84,6 @@
<el-input <el-input
v-model="form.minUnitCode" v-model="form.minUnitCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -103,7 +95,6 @@
<el-input <el-input
v-model="form.partPercent" v-model="form.partPercent"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -113,7 +104,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -123,7 +113,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -135,18 +124,17 @@
<el-input <el-input
v-model="form.approvalNumber" v-model="form.approvalNumber"
placeholder="" placeholder=""
maxlength="30"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="采购单价" prop="name"> <el-form-item label="采购单价" prop="name">
<el-input v-model="form.name" placeholder="" maxlength="30" /> <el-input v-model="form.name" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="采购拆零价" prop="name"> <el-form-item label="采购拆零价" prop="name">
<el-input v-model="form.name" placeholder="" maxlength="30" /> <el-input v-model="form.name" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -222,7 +210,6 @@
<el-input <el-input
v-model="form.dose" v-model="form.dose"
placeholder="" placeholder=""
maxlength="30"
style="width: 49%" style="width: 49%"
/> />
<el-select <el-select
@@ -276,7 +263,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="剂量单位换算比" prop="name"> <el-form-item label="剂量单位换算比" prop="name">
<el-input v-model="form.name" placeholder="" maxlength="30" /> <el-input v-model="form.name" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -345,7 +332,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -388,7 +374,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -400,7 +385,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -410,7 +394,6 @@
<el-input <el-input
v-model="form.restrictedScope" v-model="form.restrictedScope"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -420,7 +403,6 @@
<el-input <el-input
v-model="form.restrictedFlag" v-model="form.restrictedFlag"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -464,7 +446,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -476,7 +457,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>

View File

@@ -15,7 +15,6 @@
<el-input <el-input
v-model="form.busNo" v-model="form.busNo"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -25,7 +24,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入药品名" placeholder="请输入药品名"
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -35,7 +33,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -59,14 +56,13 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="条形码" prop="name"> <el-form-item label="条形码" prop="name">
<el-input v-model="form.name" placeholder="" maxlength="30" /> <el-input v-model="form.name" placeholder=""/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -92,7 +88,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -102,7 +97,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -129,7 +123,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -139,7 +132,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="true" :disabled="true"
/> />
</el-form-item> </el-form-item>
@@ -151,7 +143,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -201,7 +192,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="" placeholder=""
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
style="width: 49%" style="width: 49%"
/> />

View File

@@ -442,7 +442,6 @@
<el-input <el-input
v-model="form.name" v-model="form.name"
placeholder="请输入名称" placeholder="请输入名称"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>
@@ -452,7 +451,6 @@
<el-input <el-input
v-model="form.conditionCode" v-model="form.conditionCode"
placeholder="请输入编码" placeholder="请输入编码"
maxlength="30"
:disabled="form.id != undefined" :disabled="form.id != undefined"
/> />
</el-form-item> </el-form-item>

View File

@@ -0,0 +1,125 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询初期所需数据
export function getInit() {
return request({
url: '/outpatient-service/register/init',
method: 'get'
})
}
// 查询患者信息
export function getOutpatientRegistrationList(query) {
return request({
url: '/outpatient-service/register/patient-metadata',
method: 'get',
params: query
})
}
// 查询费用性质
export function getContractList() {
return request({
url: '/outpatient-service/register/contract-list',
method: 'get'
})
}
// 查询诊断信息
export function getConditionDefinitionMetadata(query) {
return request({
url: '/outpatient-service/register/condition-definition-metadata',
method: 'get',
params: query
})
}
// 查询就诊位置
export function getLocationTree(query) {
return request({
url: '/outpatient-service/register/location-tree',
method: 'get',
params: query
})
}
// 根据位置id筛选医生
export function getPractitionerMetadata(query) {
return request({
url: '/outpatient-service/register/practitioner-metadata',
method: 'get',
params: query
})
}
// 根据机构id筛选服务项目
export function getHealthcareMetadata(query) {
return request({
url: '/outpatient-service/register/healthcare-metadata',
method: 'get',
params: query
})
}
// // 门诊挂号目录分类查询
// export function getOutpatientRegistrationCategory() {
// return request({
// url: '/outpatient-service/registerinformation-init',
// method: 'get'
// })
// }
// 新增病人信息
export function addPatient(data) {
return request({
url: '/patientmanage/information/patient-information',
method: 'post',
data: data
})
}
export function listmaritalstatus() {
return request({
url: '/patientmanage/information/list-maritalstatus',
method: 'get',
})
}
export function listoccupationtype() {
return request({
url: '/patientmanage/information/list-occupationtype',
method: 'get',
})
}
export function lisadministrativegender() {
return request({
url: '/patientmanage/information/list-administrativegender',
method: 'get',
})
}
export function listbloodtypeabo() {
return request({
url: '/patientmanage/information/list-bloodtypeabo',
method: 'get',
})
}
export function listbloodtypearh() {
return request({
url: '/patientmanage/information/list-bloodtypearh',
method: 'get',
})
}
export function listfamilyrelationshiptype() {
return request({
url: '/patientmanage/information/list-familyrelationshiptype',
method: 'get',
})
}

View File

@@ -0,0 +1,507 @@
<template>
<div class="app-container">
<!-- 添加或修改对话框 -->
<el-dialog :title="title" v-model="visible" width="980px" append-to-body>
<el-form
ref="patientRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="6">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" clearable :disabled="isViewMode" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="其他姓名" prop="nameJson">
<el-input
v-model="form.nameJson"
clearable
:disabled="isViewMode"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="民族" prop="nationalityCode">
<el-input
v-model="form.nationalityCode"
clearable
:disabled="isViewMode"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- <el-col :span="6">
<el-form-item label="年龄" prop="age">
<el-input v-model="form.age" clearable :disabled="isViewMode"/>
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="性别" prop="genderEnum">
<el-radio-group v-model="form.genderEnum" :disabled="isViewMode">
<el-radio
v-for="item in administrativegenderList"
:key="item.value"
:label="item.value"
>
{{ item.info }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="活动标识" prop="tempFlag">
<el-radio-group v-model="form.tempFlag" :disabled="isViewMode">
<el-radio
v-for="dict in patient_temp_flag"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="证件类别" prop="idType">
<el-select
v-model="form.idType"
placeholder="证件类别"
clearable
:disabled="isViewMode"
>
<el-option
v-for="dict in sys_idtype"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="证件号码" prop="idCard">
<el-input
v-model="form.idCard"
clearable
:disabled="isViewMode"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="国家编码" prop="countryCode">
<el-input
v-model="form.countryCode"
clearable
:disabled="isViewMode"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="联系方式" prop="phone">
<el-input v-model="form.phone" clearable :disabled="isViewMode" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职业" prop="prfsEnum">
<el-select
v-model="form.prfsEnum"
placeholder="职业"
clearable
:disabled="isViewMode"
>
<el-option
v-for="item in occupationtypeList"
:key="item.value"
:label="item.info"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工作单位" prop="workCompany">
<el-input
v-model="form.workCompany"
clearable
:disabled="isViewMode"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<el-form-item label="联系人" prop="linkName">
<el-input
v-model="form.linkName"
clearable
:disabled="isViewMode"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系人关系" prop="linkRelationCode">
<el-select
v-model="form.linkRelationCode"
placeholder="联系人关系"
clearable
:disabled="isViewMode"
>
<el-option
v-for="item in familyrelationshiptypeList"
:key="item.value"
:label="item.info"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系人电话" prop="linkRelationCode">
<el-input
v-model="form.linkTelcom"
clearable
:disabled="isViewMode"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="地址选择" prop="addressSelect">
<el-cascader
:options="options"
:props="{ checkStrictly: true, value: 'code', label: 'name' }"
v-model="selectedOptions"
@change="handleChange"
:disabled="isViewMode"
>
<template #default="{ node, data }">
<span>{{ data.name }}</span>
<span v-if="!node.isLeaf">
({{ data.children.length }})
</span>
</template>
</el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="详细地址" prop="address">
<el-input
v-model="form.address"
clearable
:disabled="isViewMode"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="血型ABO" prop="bloodAbo">
<el-select
v-model="form.bloodAbo"
placeholder="血型ABO"
clearable
:disabled="isViewMode"
>
<el-option
v-for="item in bloodtypeaboList"
:key="item.value"
:label="item.info"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="血型RH" prop="bloodRh">
<el-select
v-model="form.bloodRh"
placeholder="血型RH"
clearable
:disabled="isViewMode"
>
<el-option
v-for="item in bloodtypearhList"
:key="item.value"
:label="item.info"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="婚姻状态" prop="maritalStatusEnum">
<el-select
v-model="form.maritalStatusEnum"
placeholder="婚姻状态"
clearable
:disabled="isViewMode"
>
<el-option
v-for="item in maritalstatusList"
:key="item.value"
:label="item.info"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="死亡时间" prop="deceasedDate">
<el-date-picker
v-model="form.deceasedDate"
type="datetime"
placeholder="请选择时间"
format="YYYY/MM/DD HH:mm:ss"
:disabled="isViewMode"
value-format="YYYY/MM/DD HH:mm:ss"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="PatientAddDialog">
import pcas from "china-division/dist/pcas-code.json";
import {
addPatient,
listmaritalstatus,
listoccupationtype,
lisadministrativegender,
listbloodtypeabo,
listbloodtypearh,
listfamilyrelationshiptype,
getOutpatientRegistrationList,
} from "./outpatientregistration";
const router = useRouter();
const { proxy } = getCurrentInstance();
const {
patient_gender_enum,
sys_idtype,
prfs_enum,
blood_rh,
blood_abo,
marital_status_enum,
patient_temp_flag,
link_relation_code,
} = proxy.useDict(
"patient_gender_enum",
"sys_idtype",
"prfs_enum",
"blood_rh",
"blood_abo",
"marital_status_enum",
"patient_temp_flag",
"link_relation_code"
);
const selectedOptions = ref([]); // v-model 绑定的选中值
const maritalstatusList = ref([]); //婚姻
const occupationtypeList = ref([]); //职业
const administrativegenderList = ref([]); //性别
const bloodtypeaboList = ref([]); //血型abo
const bloodtypearhList = ref([]); //血型RH
const familyrelationshiptypeList = ref([]); //家庭关系
// 使用 ref 定义查询所得用户信息数据
const patientInfo = ref(undefined);
const addressCom = ref(""); //地址
const options = ref(pcas); // 地区数据
const title = ref("添加病人");
const visible = ref(false);
const emits = defineEmits(["submit"]); // 声明自定义事件
const data = reactive({
isViewMode: false,
form: {},
rules: {
name: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
idCard: [
{ required: true, message: "证件号码不能为空", trigger: "blur" },
{ min: 18, message: "证件号码不能少于18位", trigger: "blur" },
],
phone: [{ required: true, message: "联系方式不能为空", trigger: "blur" }],
},
});
const { queryParams, form, rules, isViewMode } = toRefs(data);
const props = defineProps({
item: {
type: Object,
required: false,
},
});
/** 查询菜单列表 */
function getList() {
listmaritalstatus().then((response) => {
maritalstatusList.value = response.data;
});
listoccupationtype().then((response) => {
occupationtypeList.value = response.data;
});
lisadministrativegender().then((response) => {
administrativegenderList.value = response.data;
});
listbloodtypeabo().then((response) => {
bloodtypeaboList.value = response.data;
});
listbloodtypearh().then((response) => {
bloodtypearhList.value = response.data;
});
listfamilyrelationshiptype().then((response) => {
familyrelationshiptypeList.value = response.data;
});
}
/** 打开用户信息弹窗 */
function getPatientInfo() {
const param = {
searchKey: form.value.idCard,
};
getOutpatientRegistrationList(param).then((res) => {
console.log(param, "param");
if (res.data.records.length > 0) {
patientInfo.value = res.data.records[0];
console.log(patientInfo.value, "patientInfo.value");
// 将表单数据发送给父组件
emits("submit", patientInfo.value);
}
});
}
//地址选择
const handleChange = () => {
const checkedNodes = selectedOptions.value.map((code) => {
const node = findNodeByCode(options.value, code);
return node ? node.name : null;
});
form.value.addressProvince = checkedNodes[0] || "";
form.value.addressCity = checkedNodes[1] || "";
form.value.addressDistrict = checkedNodes[2] || "";
form.value.addressStreet = checkedNodes[3] || "";
form.value.address = "";
};
// 递归查找节点
const findNodeByCode = (data, code) => {
for (const item of data) {
if (item.code === code) return item;
if (item.children) {
const result = findNodeByCode(item.children, code);
if (result) return result;
}
}
return null;
};
// 显示弹框
function show() {
// queryParams.roleId = props.roleId;
getList();
visible.value = true;
}
/** 表单重置 */
function reset() {
form.value = {
name: undefined,
nameJson: undefined,
menuName: undefined,
age: undefined,
genderEnum: undefined,
idType: undefined,
idCard: undefined,
phone: undefined,
prfsEnum: undefined,
address: undefined,
tempFlag: undefined,
countryCode: undefined,
bloodRh: undefined,
bloodAbo: undefined,
nationalityCode: undefined,
deceasedDate: undefined,
linkName: undefined,
linkRelationCode: undefined,
linkTelcom: undefined,
workCompany: undefined,
addressCity: undefined,
addressDistrict: undefined,
addressStreet: undefined,
addressProvince: undefined,
maritalStatusEnum: undefined,
busNo: undefined,
organizationId: undefined,
};
proxy.resetForm("patientRef");
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["patientRef"].validate((valid) => {
if (valid) {
// 使用
form.value.address = getAddress(form);
addPatient(form.value).then((response) => {
proxy.$modal.msgSuccess("新增成功");
visible.value = false;
getPatientInfo();
});
}
});
}
// 获取完整地址字符串
function getAddress(form) {
const addressParts = [
form.value.addressProvince,
form.value.addressCity,
form.value.addressDistrict,
form.value.addressStreet,
form.value.address,
];
// 使用 reduce 方法拼接地址
return addressParts.reduce((acc, part) => {
return part ? acc + part : acc;
}, "");
}
/** 取消按钮 */
function cancel() {
visible.value = false;
reset();
}
defineExpose({
show,
});
</script>
<style scoped>
.el-form--inline .el-form-item {
display: inline-flex;
vertical-align: middle;
margin-right: 10px !important;
}
/* 使用深度选择器 */
.custom-label-spacing :deep(.el-form-item__label) {
line-height: 1.2; /* 调整行间距 */
margin-bottom: 4px; /* 调整 label 和输入框之间的间距 */
}
</style>

View File

@@ -0,0 +1,174 @@
<template>
<div class="app-container">
<el-dialog :title="title" v-model="visible" width="800px" append-to-body>
<el-table
:data="patientInfoList"
@selection-change="handleSelectionChange"
width="90%"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column
label="患者姓名"
align="center"
key="name"
prop="name"
:show-overflow-tooltip="true"
/>
<el-table-column
label="性别"
align="center"
key="genderEnum_enumText"
prop="genderEnum_enumText"
:show-overflow-tooltip="true"
/>
<el-table-column
label="身份证号"
align="center"
key="idCard"
prop="idCard"
:show-overflow-tooltip="true"
/>
<el-table-column
label="电话"
align="center"
key="phone"
prop="phone"
:show-overflow-tooltip="true"
width="100"
/>
<el-table-column
label="生日"
align="center"
key="birthDate"
prop="birthDate"
:show-overflow-tooltip="true"
width="50"
/>
<el-table-column
label="年龄"
align="center"
key="age"
prop="age"
:show-overflow-tooltip="true"
/>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="PatientInfoDialog">
import {
getOutpatientRegistrationList,
} from "./outpatientregistration";
const { proxy } = getCurrentInstance();
const patientInfoList = ref([]);
const selectedData = ref([]); // 存储选择的行数据
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("病人信息");
const visible = ref(false);
const emits = defineEmits(['submit']); // 声明自定义事件
const data = reactive({
form: {},
queryParams: {
pageNo: 1,
pageSize: 50,
searchKey: undefined, // 品名/商品名/英文品名/编码/拼音
},
rules: {},
});
const { queryParams, form, rules } = toRefs(data);
const props = defineProps({
patientInfoData: {
type: Object,
required: false,
default: () => ({}), // 提供默认值
},
searchInfo: {
type: String,
required: true,
default: "",
},
});
// 显示弹框
function show() {
patientInfoList.value = props.patientInfoData.records;
total.value = props.patientInfoData.total;
console.log(props.patientInfoData, "props.patientInfoData");
visible.value = true;
}
/** 查询病种目录列表 */
function getList() {
const query = {
searchKey: props.searchInfo,
pageNo: queryParams.value.pageNo,
pageSize: queryParams.value.pageSize,
};
getOutpatientRegistrationList(query).then((res) => {
if (res.data.records.length > 0) {
patientInfoList.value = res.data.records;
total.value = res.data.total;
console.log(patientInfoList.value, "patientInfoList.value");
}
});
}
/** 选择条数 */
function handleSelectionChange(selection) {
console.log(selection, "selection");
selectedData.value = selection.map((item) => ({ ...item })); // 存储选择的行数据
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 取消按钮 */
function cancel() {
visible.value = false;
patientInfoList.value = [];
}
/** 提交按钮 */
function submitForm() {
if (selectedData.value.length > 1) {
proxy.$modal.msgSuccess("只能选中一条数据操作!");
} else if (selectedData.value.length === 1) {
console.log(selectedData.value[0], "selectedData.value");
const data = selectedData.value[0];
// 将表单数据发送给父组件
emits("submit", data);
}
visible.value = false;
}
defineExpose({
show,
});
</script>
<style scoped>
.el-form--inline .el-form-item {
display: inline-flex;
vertical-align: middle;
margin-right: 10px !important;
}
</style>

View File

@@ -0,0 +1,712 @@
<template>
<div class="app-container">
<el-row>
<el-col :span="24" class="card-box">
<el-card>
<template #header>
<span style="vertical-align: middle">门诊挂号</span></template
>
<el-form
:model="form"
:rules="rules"
ref="medicationRef"
label-width="110px"
>
<el-row :gutter="24">
<el-col :span="5">
<el-form-item label="病历号/姓名:" prop="searchKey">
<el-input
v-model="form.searchKey"
placeholder="请输入姓名/拼音/身份证"
/>
</el-form-item>
</el-col>
<el-col :span="3">
<el-button
type="primary"
icon="Plus"
@click="handleAddPatient"
style="width: 65px"
v-hasPermi="['system:user:add']"
>新建</el-button
>
<el-button
type="primary"
plain
icon="Search"
@click="handleSearch"
v-hasPermi="['system:user:query']"
>查询</el-button
>
</el-col>
<el-col :span="2" class="icon-select-container">
<el-icon><Postcard /></el-icon>
<el-form-item prop="" label-width="0px">
<el-select
v-model="form.type"
placeholder="医保卡"
clearable
:disabled="true"
width="240px"
>
<el-option
v-for="item in contractList"
:key="item.busNo"
:label="item.contractName"
:value="item.busNo"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="1">
<el-form-item prop="name" label-width="0px">
<el-checkbox
v-model="form.allergenFlag"
label="(终端)扫码"
:style="{ color: 'orange' }"
></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="姓名:" prop="name">
<el-input
v-model="form.name"
placeholder="姓名"
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
label="性别:"
prop="genderEnum_enumText"
class="custom-label-spacing"
>
<el-input
v-model="form.genderEnum_enumText"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
label="年龄:"
prop="age"
class="custom-label-spacing"
>
<el-input
v-model="form.age"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="5">
<el-form-item label="卡号:" prop="searchKey">
<el-input
v-model="form.searchKey"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="证件号:" prop="idCard">
<el-input
v-model="form.idCard"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item
label="初复诊:"
prop="firstEnum_enumText"
class="custom-label-spacing"
>
<el-input
v-model="form.firstEnum_enumText"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
label="医保余额:"
prop="pyStr"
class="custom-label-spacing"
>
<el-input
v-model="form.pyStr"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
label="参保类型:"
prop="locationId"
class="custom-label-spacing"
>
<el-input
v-model="form.pyStr"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="5">
<el-form-item
label="费用性质:"
prop="busNo"
class="custom-label-spacing"
>
<el-select
v-model="form.busNo"
placeholder="费用性质"
clearable
style="width: 240px"
>
<el-option
v-for="item in contractList"
:key="item.busNo"
:label="item.contractName"
:value="item.busNo"
/>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="6">
<el-form-item
label="就诊位置:"
prop="locationId"
class="custom-label-spacing"
>
<el-tree-select
v-model="form.locationId"
:data="locationOptions"
:props="{
value: 'id',
label: 'name',
children: 'children',
}"
value-key="id"
placeholder="请选择就诊位置"
check-strictly
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="locationTreeRef"
node-key="value"
highlight-current
default-expand-all
@node-click="handleNodeClick"
/>
</el-form-item>
</el-col> -->
<el-col :span="6">
<el-form-item label="就诊原因:" prop="name">
<el-select
v-model="form.ybType"
placeholder="就诊原因"
clearable
style="width: 240px"
>
<el-option
v-for="dict in med_chrgitm_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item
label="电话:"
prop="phone"
class="custom-label-spacing"
>
<el-input v-model="form.phone" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
label="优先级:"
prop="priorityLevel"
class="custom-label-spacing"
>
<el-select
v-model="form.priorityLevel"
placeholder="优先级"
clearable
style="width: 240px"
>
<el-option
v-for="item in priorityLevelOptionOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
label=""
prop="pyStr"
class="custom-label-spacing"
>
<el-checkbox
v-model="form.allergenFlag"
label="减免"
></el-checkbox>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<!-- <el-col :span="5">
<el-form-item label="科室:" prop="name">
<el-select
v-model="form.ybType"
placeholder="就诊原因"
clearable
style="width: 240px"
>
<el-option
v-for="dict in med_chrgitm_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="5">
<el-form-item
label="就诊位置:"
prop="locationId"
class="custom-label-spacing"
>
<el-tree-select
v-model="form.locationId"
:data="locationOptions"
:props="{
value: 'id',
label: 'name',
children: 'children',
}"
value-key="id"
placeholder="请选择就诊位置"
check-strictly
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="locationTreeRef"
node-key="value"
highlight-current
default-expand-all
@node-click="handleNodeClick"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
label="挂号类型"
prop="healthcareType"
class="custom-label-spacing"
>
<el-select
v-model="form.healthcareType"
placeholder="挂号类型"
clearable
style="width: 240px"
>
<el-option
v-for="healthcare in healthcareList"
:key="healthcare.id"
:label="healthcare.name"
:value="healthcare.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="医生:" prop="doctorId">
<el-select
v-model="form.doctorId"
placeholder="医生"
clearable
style="width: 240px"
@change="setInfo"
>
<el-option
v-for="doctor in doctorList"
:key="doctor.id"
:label="doctor.name"
:value="doctor.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item
label="特病病种:"
prop="pyStr"
class="custom-label-spacing"
>
<el-select
v-model="form.ybType"
placeholder="特病病种"
clearable
style="width: 240px"
>
<el-option
v-for="dict in med_chrgitm_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="5">
<el-form-item label="挂号科室:" prop="locationId_dictText">
<el-input
v-model="form.locationId_dictText"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="医生:" prop="doctorName">
<el-input
v-model="form.doctorName"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item
label="挂号费:"
prop="price"
class="custom-label-spacing"
>
<el-input
v-model="form.price"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item
label="诊疗费:"
prop="pyStr"
class="custom-label-spacing"
>
<el-input
v-model="form.pyStr"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item
label="总金额:"
prop="pyStr"
class="custom-label-spacing"
>
<el-input
v-model="form.pyStr"
placeholder=""
:disabled="true"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
</el-col>
</el-row>
<patient-info-dialog
ref="patientInfoRef"
:patientInfoData="patientInfoList"
:searchInfo="form.searchKey"
@submit="setForm"
/>
<patient-add-dialog ref="patientAddRef" @submit="setForm" />
</div>
</template>
<script setup name="OutpatientRegistration">
import {
getOutpatientRegistrationList,
getInit,
getContractList,
getConditionDefinitionMetadata,
getLocationTree,
getPractitionerMetadata,
getHealthcareMetadata,
} from "./components/outpatientregistration";
import patientInfoDialog from "./components/patientInfoDialog";
import PatientAddDialog from "./components/patientAddDialog";
import { nextTick } from "vue";
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_normal_disable, sys_user_sex, med_chrgitm_type } = proxy.useDict(
"sys_normal_disable",
"sys_user_sex",
"med_chrgitm_type"
);
const outpatientRegistrationList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const selectedData = ref([]); // 存储选择的行数据
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const priorityLevelOptionOptions = ref(undefined); // 优先级
// 使用 ref 定义查询所得用户信息数据
const patientInfoList = ref(undefined);
// 费用性质
const contractList = ref(undefined);
const locationOptions = ref(undefined); // 地点树选项
const doctorList = ref(undefined); // 医生选项
const healthcareList = ref(undefined); // 挂号项目选项
// const locationOptions = ref(undefined); // 诊断信息
// const initPassword = ref(undefined);
// const postOptions = ref([]);
// const roleOptions = ref([]);
const data = reactive({
form: {},
queryParams: {
pageNo: 1,
pageSize: 50,
searchKey: undefined, // 品名/商品名/英文品名/编码/拼音
statusEnum: undefined, // 状态(包括 1预置2启用3停用
ybMatchFlag: undefined, // 是否医保匹配(包括 10
status: undefined, // 状态(包括 1预置2启用3停用
},
rules: {
// name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
// conditionCode: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
},
});
const { queryParams, form, rules } = toRefs(data);
/** 初期所用数据查询 */
function getInitData() {
getInit().then((response) => {
console.log(response, "response");
priorityLevelOptionOptions.value = response.data.priorityLevelOptionOptions; // 优先级
});
}
/** 打开用户信息弹窗 */
function handleSearch() {
console.log(form.value.searchKey, "form.value.searchKey");
if (!form.value.searchKey) {
proxy.$modal.msgError("请输入查询内容");
return;
}
const param = {
searchKey: form.value.searchKey,
};
getOutpatientRegistrationList(param).then((res) => {
loading.value = false;
console.log(param, "param");
if (res.data.records.length > 0) {
patientInfoList.value = res.data;
console.log(patientInfoList.value, "patientInfoList.value");
nextTick(() => {
proxy.$refs["patientInfoRef"].show(); // 确保子组件更新后再调用 show 方法
});
}
});
}
/** 新增用户信息弹窗 */
function handleAddPatient() {
proxy.$refs["patientAddRef"].show(); // 确保子组件更新后再调用 show 方法
}
// 设定表单
function setForm(formData) {
console.log(formData, "formData");
form.value = { ...form.value, ...formData };
}
// 设定表单
function setInfo() {
const doctorData = doctorList.value.filter(
(doctor) => doctor.id === form.value.doctorId
);
form.value.doctorName = doctorData.length > 0 ? doctorData[0].name : "";
console.log(doctorData, "datayisheng");
const healthcareData = healthcareList.value.filter(
(healthcare) => healthcare.id === form.value.healthcareType
);
form.value.locationId_dictText =
healthcareData.length > 0 ? healthcareData[0].name : "";
form.value.price = healthcareData.length > 0 ? healthcareData[0].price : "";
}
/** 查询病种目录列表 */
function getList() {
loading.value = true;
getOutpatientRegistrationList(queryParams.value).then((res) => {
loading.value = false;
outpatientRegistrationList.value = res.data.records;
total.value = res.data.total;
});
}
/** 查询费用性质 */
function getContract() {
getContractList().then((response) => {
contractList.value = response.data;
});
}
/** 查询诊断信息 */
function getConditionDefinition() {
getConditionDefinitionMetadata().then((response) => {
console.log("getConditionDefinitionMetadata", "response", response.data);
});
}
/** 查询就诊位置 */
function getLocationInfo() {
getLocationTree().then((response) => {
locationOptions.value = response.data.records;
});
}
/** 通过条件过滤节点 */
const filterNode = (value, data) => {
if (!value) return true;
return data.label.indexOf(value) !== -1;
};
/** 节点单击事件 */
function handleNodeClick(data) {
// queryParams.value.sourceEnum = data.value;
// handleQuery();
console.log("handleNodeClick", "data", data);
getPractitioner(data);
getHealthcare(data);
}
/** 根据位置id筛选医生 */
function getPractitioner(data) {
const param = {
locationId: data.id,
};
console.log("getPractitioner", "param", param);
getPractitionerMetadata(param).then((response) => {
console.log("getPractitioner", "response", response.data);
doctorList.value = response.data.records;
});
}
/** 根据机构id筛选服务项目 */
function getHealthcare(data) {
const param = {
organizationId: data.organizationId,
};
getHealthcareMetadata(param).then((response) => {
healthcareList.value = response.data.records;
console.log("getHealthcareMetadata", "response", response.data);
});
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNo = 1;
getList();
}
/** 重置操作表单 */
function reset() {
form.value = {
id: undefined,
searchKey: undefined,
type: undefined,
allergenFlag: undefined,
name: undefined,
genderEnum_enumText: undefined,
age: undefined,
idCard: undefined,
pyStr: undefined,
busNo: undefined,
ybType: undefined,
phone: undefined,
allergenFlag: undefined,
locationId: undefined,
healthcareType: undefined,
doctorId: undefined,
locationId_dictText: undefined,
doctorName: undefined,
price: undefined,
priorityLevel: undefined,
};
proxy.resetForm("outpatientRegistrationRef");
}
/** 取消按钮 */
function cancel() {
open.value = false;
reset();
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "新增";
}
getInitData();
getList();
getContract();
getConditionDefinition();
getLocationInfo();
// getPractitioner();
// getHealthcare();
</script>
<style scoped>
.el-form--inline .el-form-item {
display: inline-flex;
vertical-align: middle;
margin-right: 10px !important;
}
/* 让图标和下拉选在同一行显示 */
.icon-select-container {
display: flex; /* 使用 Flexbox 布局 */
align-items: center; /* 垂直居中 */
padding-left: 0px;
}
/* 调整 el-form-item 的样式 */
.icon-select-container .el-form-item {
margin-bottom: 0; /* 去掉默认的 margin-bottom */
margin-left: 8px; /* 图标和下拉选之间的间距 */
}
</style>