This commit is contained in:
徐靖博
2025-03-28 17:27:48 +08:00
92 changed files with 3983 additions and 1739 deletions

View File

@@ -30,7 +30,9 @@
"moment": "^2.30.1",
"nprogress": "0.2.0",
"pinia": "2.1.7",
"pinyin": "^4.0.0-alpha.2",
"province-city-china": "^8.5.8",
"segmentit": "^2.0.3",
"v-region": "^3.3.0",
"vue": "3.3.9",
"vue-area-linkage": "^5.1.0",

View File

@@ -278,6 +278,7 @@
value-key="id"
placeholder="请选择提供部门"
check-strictly
clearable
/>
<!-- </el-form-item> -->
</el-form-item>
@@ -449,14 +450,6 @@ function handleSelectionChange(selection) {
multiple.value = !selection.length;
}
/** 下载模板操作 */
function importTemplate() {
proxy.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
}
/** 重置操作表单 */
function reset() {
form.value = {

View File

@@ -234,7 +234,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="服务分类" prop="categoryCode">
<el-select v-model="form.categoryCode" placeholder="请选择">
<el-select v-model="form.categoryCode" placeholder="请选择" clearable>
<el-option
v-for="dict in category_code"
:key="dict.value"
@@ -248,7 +248,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="服务类型" prop="fwTypeCode">
<el-select v-model="form.fwTypeCode" placeholder="请选择">
<el-select v-model="form.fwTypeCode" placeholder="请选择" clearable>
<el-option
v-for="dict in service_type_code"
:key="dict.value"
@@ -260,7 +260,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="服务专业" prop="specialtyCode">
<el-select v-model="form.specialtyCode" placeholder="请选择">
<el-select v-model="form.specialtyCode" placeholder="请选择" clearable>
<el-option
v-for="dict in specialty_code"
:key="dict.value"
@@ -281,6 +281,7 @@
value-key="id"
placeholder="请选择地点"
check-strictly
clearable
/>
</el-form-item>
</el-col>
@@ -293,6 +294,7 @@
value-key="id"
placeholder="请选择提供部门"
check-strictly
clearable
/>
</el-form-item>
</el-col>
@@ -300,7 +302,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="活动标记" prop="activeFlag">
<el-select v-model="form.activeFlag" placeholder="请选择">
<el-select v-model="form.activeFlag" placeholder="请选择" clearable>
<el-option
v-for="item in activeFlagOptions"
:key="item.value"
@@ -327,6 +329,7 @@
<el-select
v-model="form.appointmentRequiredFlag"
placeholder="请选择"
clearable
>
<el-option
v-for="item in appointmentRequiredFlagOptions"
@@ -393,7 +396,7 @@
<el-row v-if="form.id == undefined">
<el-col :span="12">
<el-form-item label="财务类型" prop="cwTypeCode">
<el-select v-model="form.cwTypeCode" placeholder="请选择">
<el-select v-model="form.cwTypeCode" placeholder="请选择" clearable>
<el-option
v-for="dict in financial_type_code"
:key="dict.value"

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询器材目录列表
export function getDeviceList(query) {
@@ -14,8 +13,9 @@ export function getDeviceList(query) {
// 查询器材目录详细
export function getDeviceOne(id) {
return request({
url: '/data-dictionary/device/information-one/' + parseStrEmpty(id),
method: 'get'
url: '/data-dictionary/device/information-one',
method: 'get',
params: { id } // 确保参数正确传递
})
}

View File

@@ -5,17 +5,17 @@
<el-form
:model="form"
:rules="rules"
ref="medicationRef"
ref="deviceDialogRef"
label-width="110px"
label-position="left"
>
<el-row :gutter="24">
<el-col :span="8">
<el-col :span="8" v-if="form.id != undefined">
<el-form-item label="编号" prop="busNo">
<el-input
v-model="form.busNo"
placeholder="请输入编码"
:disabled="form.id != undefined"
disabled
/>
</el-form-item>
</el-col>
@@ -24,49 +24,25 @@
<el-input v-model="form.name" placeholder="请输入器材名称" />
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item
label="拼音码(器材名称)"
prop="pyStr"
class="custom-label-spacing"
>
<el-input v-model="form.pyStr" placeholder="" />
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="地点" prop="locationId">
<el-form-item label="器材分类" prop="categoryCode">
<el-tree-select
v-model="form.locationId"
:data="locationOptions"
:props="{ value: 'id', label: 'name', children: 'children' }"
value-key="id"
placeholder="请选择地点"
check-strictly
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<!-- <el-col :span="8">
<el-form-item label="器材五笔拼音" prop="wbStr">
<el-input v-model="form.wbStr" placeholder="" />
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="器材分类" prop="categoryEnum">
<el-tree-select
v-model="form.categoryEnum"
v-model="form.categoryCode"
:data="deviceCategories"
:props="{ value: 'value', label: 'info', children: 'children' }"
value-key="value"
placeholder=""
check-strictly
disabled
clearable
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="器材种类" prop="typeCode">
<el-select v-model="form.typeCode" placeholder="请选择">
<el-select v-model="form.typeCode" placeholder="请选择" clearable>
<el-option
v-for="dict in device_type_code"
:key="dict.value"
@@ -85,6 +61,20 @@
value-key="id"
placeholder="请选择提供部门"
check-strictly
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="地点" prop="locationId">
<el-tree-select
v-model="form.locationId"
:data="locationOptions"
:props="{ value: 'id', label: 'name', children: 'children' }"
value-key="id"
placeholder="请选择地点"
check-strictly
clearable
/>
</el-form-item>
</el-col>
@@ -92,7 +82,7 @@
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="包装单位" prop="unitCode">
<el-select v-model="form.unitCode" placeholder="请选择">
<el-select v-model="form.unitCode" placeholder="请选择" clearable>
<el-option
v-for="dict in unit_code"
:key="dict.value"
@@ -103,13 +93,20 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="包装规格" prop="size">
<el-input v-model="form.size" placeholder="" />
<el-form-item label="销售单位" prop="salesUnitCode">
<el-select v-model="form.salesUnitCode" placeholder="请选择" clearable>
<el-option
v-for="dict in unit_code"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最小单位" prop="minUnitCode">
<el-select v-model="form.minUnitCode" placeholder="请选择">
<el-select v-model="form.minUnitCode" placeholder="请选择" clearable>
<el-option
v-for="dict in unit_code"
:key="dict.value"
@@ -121,6 +118,11 @@
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="包装规格" prop="size">
<el-input v-model="form.size" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="拆零比" prop="partPercent">
<el-input v-model="form.partPercent" placeholder="" />
@@ -131,56 +133,38 @@
<el-input v-model="form.modelNumber" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="高值器材标志" prop="hvcmFlag">
<!-- <el-input
v-model="form.hvcmFlag"
placeholder=""
:disabled="form.id != undefined"
/> -->
<el-checkbox v-model="form.hvcmFlag"></el-checkbox>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="销售单位" prop="salesUnitCode">
<el-select v-model="form.salesUnitCode" placeholder="请选择">
<el-option
v-for="dict in unit_code"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="批准文号" prop="approvalNumber">
<el-input v-model="form.approvalNumber" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医保标记" prop="ybFlag">
<!-- <el-input v-model="form.ybFlag" placeholder="" /> -->
<el-checkbox v-model="form.ybFlag"></el-checkbox>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="医保编码" prop="ybNo">
<el-input v-model="form.ybNo" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医保对码标记" prop="ybMatchFlag">
<el-checkbox v-model="form.ybMatchFlag"></el-checkbox>
<el-form-item label="器材版本" prop="version">
<el-input v-model="form.version" placeholder="" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="主要成分" prop="substanceText">
<el-input v-model="form.substanceText" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="适用范围" prop="jurisdiction">
<el-input v-model="form.jurisdiction" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="状态" prop="statusEnum">
<el-select v-model="form.statusEnum" placeholder="请选择">
<el-select v-model="form.statusEnum" placeholder="请选择" clearable>
<el-option
v-for="dict in statusFlagOptions"
:key="dict.value"
@@ -199,9 +183,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="供应商" prop="supplyId">
<!-- <el-input v-model="form.supplyId" placeholder="" /> -->
<el-select
v-model="form.supplierId"
v-model="form.supplyId"
placeholder=""
clearable
style="width: 150px"
@@ -215,36 +198,80 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="适用范围" prop="jurisdiction">
<el-input v-model="form.jurisdiction" placeholder="" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<!-- <el-col :span="8">
<el-form-item label="执行科室" prop="ruleId">
<el-input v-model="form.ruleId" placeholder="" />
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="器材版本" prop="version">
<el-input v-model="form.version" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="主要成分" prop="substanceText">
<el-input v-model="form.substanceText" placeholder="" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="过敏标记" prop="allergenFlag">
<el-checkbox v-model="form.allergenFlag"></el-checkbox>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="医保标记" prop="ybFlag">
<el-checkbox v-model="form.ybFlag"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医保对码标记" prop="ybMatchFlag">
<el-checkbox v-model="form.ybMatchFlag"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="高值器材标志" prop="hvcmFlag">
<el-checkbox v-model="form.hvcmFlag"></el-checkbox>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="财务类型" prop="itemTypeCode">
<el-select
v-model="form.itemTypeCode"
clearable
>
<el-option
v-for="category in fin_type_code"
:key="category.value"
:label="category.label"
:value="category.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医保类别" prop="ybType">
<el-select
v-model="form.ybType"
placeholder="医保类别"
clearable
style="width: 240px"
>
<el-option
v-for="dict in yb_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="8">
<el-form-item label="购入价" prop="purchasePrice">
<el-input v-model="form.purchasePrice" placeholder="" :disabled="form.id != undefined"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="零售价" prop="retailPrice">
<el-input v-model="form.retailPrice" placeholder="" :disabled="form.id != undefined"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最高零售价" prop="maximumRetailPrice">
<el-input v-model="form.maximumRetailPrice" placeholder="" :disabled="form.id != undefined"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="16">
<el-form-item label="说明" prop="description">
@@ -270,20 +297,18 @@
<script setup name="MedicineDialog">
import {
getDeviceList,
editDevice,
addDevice,
getDiseaseTreatmentInit,
getDeviceOne,
deptTreeSelect,
locationTreeSelect,
} from "./device";
const router = useRouter();
const { proxy } = getCurrentInstance();
const { device_type_code, unit_code } = proxy.useDict(
const { device_type_code, unit_code,fin_type_code,yb_type } = proxy.useDict(
"device_type_code",
"unit_code"
"unit_code",
"fin_type_code",
"yb_type"
);
const title = ref("");
@@ -302,7 +327,7 @@ const data = reactive({
name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
pyStr: [{ required: true, message: "拼音不能为空", trigger: "blur" }],
wbStr: [{ required: true, message: "五笔拼音不能为空", trigger: "blur" }],
categoryEnum: [
categoryCode: [
{ required: true, message: "器材分类不能为空", trigger: "blur" },
],
typeCode: [
@@ -352,6 +377,11 @@ const data = reactive({
],
orgId: [{ required: true, message: "提供部门不能为空", trigger: "blur" }],
locationId: [{ required: true, message: "地点不能为空", trigger: "blur" }],
purchasePrice:[{ required: true, message: "购入价不能为空", trigger: "blur" }],
retailPrice:[{ required: true, message: "零售价不能为空", trigger: "blur" }],
maximumRetailPrice:[{ required: true, message: "最高零售价不能为空", trigger: "blur" }],
ybType:[{ required: true, message: "医保类型不能为空", trigger: "blur" }],
itemTypeCode:[{ required: true, message: "财务类型不能为空", trigger: "blur" }],
},
});
@@ -374,17 +404,25 @@ const props = defineProps({
type: Object,
required: false,
},
currentCategoryEnum: {
type: String,
required: true,
},
supplierListOptions: {
type: Object,
required: false,
},
});
// 显示弹框
function show() {
reset();
// queryParams.roleId = props.roleId;
// getList();
title.value = "";
title.value = props.title;
deviceCategories.value = props.deviceCategories;
statusFlagOptions.value = props.statusFlagOptions;
form.value.categoryCode = props.currentCategoryEnum;
supplierListOptions.value = props.supplierListOptions;
console.log(props, "22222", title.value, props.deviceCategories);
getDeptTree();
getLocationTree();
@@ -395,7 +433,6 @@ function getDeptTree() {
deptTreeSelect().then((response) => {
console.log(response, "response查询部门下拉树结构");
deptOptions.value = response.data.records;
console.log(deptOptions.value, "部门下拉树结构");
});
}
@@ -404,19 +441,17 @@ function getLocationTree() {
locationTreeSelect().then((response) => {
console.log(response, "response查询部门下拉树结构");
locationOptions.value = response.data.records;
console.log(locationOptions.value, "部门下拉树结构");
});
}
// 显示弹框
function edit() {
// queryParams.roleId = props.roleId;
// getList();
reset();
title.value = "";
title.value = props.title;
form.value = props.item;
deviceCategories.value = props.deviceCategories;
statusFlagOptions.value = props.statusFlagOptions;
supplierListOptions.value = props.supplierListOptions;
getDeptTree();
getLocationTree();
visible.value = true;
@@ -429,7 +464,7 @@ function reset() {
name: undefined, // 名称
pyStr: undefined, // 拼音码
wbStr: undefined, // 五笔码
categoryEnum: undefined, // 类别
categoryCode: undefined, // 类别
typeCode: undefined, // 类型编码
unitCode: undefined, // 单位编码
size: undefined, // 规格
@@ -453,8 +488,13 @@ function reset() {
allergenFlag: undefined, // 过敏标记
orgId: undefined, // 科室ID
locationId: undefined, // 地点ID
ybType: undefined, // 医保类型
itemTypeCode: undefined, // 最小收费
purchasePrice: undefined, // 购入价
retailPrice: undefined, // 零售价
maximumRetailPrice: undefined, // 最高零售价
};
proxy.resetForm("medicationRef");
proxy.resetForm("deviceDialogRef");
}
/** 提交按钮 */

View File

@@ -27,7 +27,7 @@
label-width="68px"
>
<el-row :gutter="24">
<el-col :span="5">
<el-col :span="6">
<el-form-item label="项目名" prop="searchKey" label-width="55">
<el-input
v-model="queryParams.searchKey"
@@ -50,33 +50,21 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item
label="医保是否对码"
prop="ybMatchFlag"
label-width="100"
>
<el-select v-model="queryParams.ybMatchFlag" placeholder="">
<el-option
v-for="item in exeOrganizations"
: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="ruleId" label-width="100">
<el-select
v-model="queryParams.ruleId"
v-model="queryParams.ybMatchFlag"
placeholder=""
clearable
>
<el-option
v-for="item in exeOrganizations"
v-for="item in statusYBWeatherOptions"
:key="item.value"
:label="item.label"
:label="item.info"
:value="item.value"
/>
</el-select>
@@ -96,15 +84,6 @@
>添加新项目</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>添加为本机构项目</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button
type="danger"
@@ -137,7 +116,7 @@
>查询</el-button
>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
@@ -146,7 +125,7 @@
v-hasPermi="['system:user:export']"
>导出Excel</el-button
>
</el-col>
</el-col> -->
</el-row>
<el-table
@@ -180,24 +159,24 @@
<el-table-column
label="器材分类"
align="center"
key="categoryEnum"
prop="categoryEnum"
key="categoryCode_dictText"
prop="categoryCode_dictText"
:show-overflow-tooltip="true"
width="100"
/>
<el-table-column
label="器材种类"
align="center"
key="typeCode"
prop="typeCode"
key="typeCode_dictText"
prop="typeCode_dictText"
:show-overflow-tooltip="true"
width="50"
/>
<el-table-column
label="包装单位"
align="center"
key="unitCode"
prop="unitCode"
key="unitCode_dictText"
prop="unitCode_dictText"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -217,8 +196,22 @@
<el-table-column
label="最小使用单位"
align="center"
key="minUnitCode"
prop="minUnitCode"
key="minUnitCode_dictText"
prop="minUnitCode_dictText"
:show-overflow-tooltip="true"
/>
<el-table-column
label="所属科室"
align="center"
key="orgId_dictText"
prop="orgId_dictText"
:show-overflow-tooltip="true"
/>
<el-table-column
label="所在位置"
align="center"
key="locationId_dictText"
prop="locationId_dictText"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -239,8 +232,8 @@
<el-table-column
label="销售单位"
align="center"
key="salesUnitCode"
prop="salesUnitCode"
key="salesUnitCode_dictText"
prop="salesUnitCode_dictText"
:show-overflow-tooltip="true"
width="100"
/>
@@ -277,24 +270,32 @@
<el-table-column
label="状态"
align="center"
key="statusEnum"
prop="statusEnum"
key="statusEnum_enumText"
prop="statusEnum_enumText"
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
<!-- <el-table-column
label="生产厂家"
align="center"
key="manufacturerId"
prop="manufacturerId"
:show-overflow-tooltip="true"
width="90"
/> -->
<el-table-column
label="生产厂家"
align="center"
key="manufacturerText"
prop="manufacturerText"
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="供应商"
align="center"
key="supplyId"
prop="supplyId"
key="supplyId_dictText"
prop="supplyId_dictText"
:show-overflow-tooltip="true"
width="110"
/>
@@ -313,13 +314,6 @@
:show-overflow-tooltip="true"
width="120"
/>
<el-table-column
label="执行科室"
align="center"
key="ruleId"
prop="ruleId"
:show-overflow-tooltip="true"
/>
<el-table-column
label="器材版本"
align="center"
@@ -343,6 +337,30 @@
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="售价"
align="center"
key="retailPrice"
prop="retailPrice"
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="财务类别"
align="center"
key="itemTypeCode_dictText"
prop="itemTypeCode_dictText"
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="医保类别"
align="center"
key="ybType_dictText"
prop="ybType_dictText"
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="操作"
align="center"
@@ -359,14 +377,14 @@
v-hasPermi="['system:user:edit']"
>编辑</el-button
>
<el-button
<!-- <el-button
link
type="primary"
icon="View"
@click="openViewDevice(scope.row)"
v-hasPermi="['system:user:remove']"
>查看</el-button
>
> -->
</template>
</el-table-column>
</el-table>
@@ -383,8 +401,10 @@
ref="deviceRef"
:title="title"
:item="currentData"
:currentCategoryEnum="currentCategoryEnum"
:deviceCategories="deviceCategories"
:statusFlagOptions="statusFlagOptions"
:supplierListOptions="supplierListOptions"
@submit="getList()"
/>
<!-- <device-view-dialog
@@ -407,15 +427,9 @@ import deviceDialog from "./components/deviceDialog";
import deviceViewDialog from "./components/deviceViewDialog";
import { nextTick } from "vue";
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_normal_disable, sys_user_sex } = proxy.useDict(
"sys_normal_disable",
"sys_user_sex"
);
const deviceList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]); // 存储选择的行数据
@@ -425,11 +439,13 @@ const total = ref(0);
const title = ref("");
const deviceCategories = ref(undefined);
const statusFlagOptions = ref(undefined);
const exeOrganizations = ref(undefined);
const statusYBWeatherOptions = ref(undefined);
const supplierListOptions = ref(undefined);
// 使用 ref 定义当前器材数据
const currentData = ref({});
// 使用 ref 定义当前查看器材数据
const viewData = ref({});
const currentCategoryEnum = ref("");
const data = reactive({
form: {},
@@ -441,14 +457,9 @@ const data = reactive({
statusEnum: undefined, // 状态(包括 1预置2启用3停用
ybMatchFlag: undefined, // 是否医保匹配(包括 10
ruleId: undefined, // 执行科室
categoryEnum: undefined, // 目录分类
},
rules: {
// name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
// conditionCode: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
categoryCode: undefined, // 目录分类
},
rules: {},
});
const { queryParams, form, rules } = toRefs(data);
@@ -463,24 +474,28 @@ const filterNode = (value, data) => {
function getDiseaseTreatmentList() {
getDiseaseTreatmentInit().then((response) => {
console.log(response, "response器材目录分类查询下拉树结构");
deviceCategories.value = response.data.deviceCategories;
deviceCategories.value = response.data.deviceCategories.sort((a, b) => {
return parseInt(a.value) - parseInt(b.value);
});
statusFlagOptions.value = response.data.statusFlagOptions;
exeOrganizations.value = response.data.exeOrganizations;
statusYBWeatherOptions.value = response.data.statusYBWeatherOptions;
supplierListOptions.value = response.data.supplierListOptions;
});
}
/** 查询器材目录列表 */
function getList() {
console.log(getList, "getList");
loading.value = true;
getDeviceList(queryParams.value).then((res) => {
loading.value = false;
deviceList.value = res.data.records;
total.value = res.data.total;
console.log(deviceList.value, "getList", total.value);
});
}
/** 节点单击事件 */
function handleNodeClick(data) {
queryParams.value.categoryEnum = data.value;
queryParams.value.categoryCode = data.value;
currentCategoryEnum.value = data.value;
handleQuery();
}
/** 搜索按钮操作 */
@@ -538,17 +553,11 @@ function handleSelectionChange(selection) {
multiple.value = !selection.length;
}
/** 下载模板操作 */
function importTemplate() {
proxy.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
}
/** 打开新增弹窗 */
function openAddDevice() {
if (!currentCategoryEnum.value) {
return proxy.$modal.msgError("请选择器材目录分类");
}
console.log("打开新增弹窗");
title.value = "新增";
nextTick(() => {
@@ -559,27 +568,50 @@ function openAddDevice() {
function openEditDevice(row) {
currentData.value = {};
console.log("打开编辑弹窗");
currentData.value = JSON.parse(JSON.stringify(row));
console.log(currentData.value, "currentData");
currentData.value.hvcmFlag == 1
? (currentData.value.hvcmFlag = true)
: (currentData.value.hvcmFlag = false);
currentData.value.ybFlag == 1
? (currentData.value.ybFlag = true)
: (currentData.value.ybFlag = false);
currentData.value.ybMatchFlag == 1
? (currentData.value.ybMatchFlag = true)
: (currentData.value.ybMatchFlag = false);
currentData.value.allergenFlag == 1
? (currentData.value.allergenFlag = true)
: (currentData.value.allergenFlag = false);
console.log(currentData.value, "currentDataform");
title.value = "编辑";
// 确保子组件已经接收到最新的 props
nextTick(() => {
proxy.$refs["deviceRef"].edit();
getDeviceOne(row.id).then((response) => {
console.log(response, "currentDataform");
currentData.value = response.data;
if (currentData.value) {
currentData.value.hvcmFlag == 1
? (currentData.value.hvcmFlag = true)
: (currentData.value.hvcmFlag = false);
currentData.value.ybFlag == 1
? (currentData.value.ybFlag = true)
: (currentData.value.ybFlag = false);
currentData.value.ybMatchFlag == 1
? (currentData.value.ybMatchFlag = true)
: (currentData.value.ybMatchFlag = false);
currentData.value.allergenFlag == 1
? (currentData.value.allergenFlag = true)
: (currentData.value.allergenFlag = false);
}
title.value = "编辑";
nextTick(() => {
proxy.$refs["deviceRef"].edit();
});
getList();
});
// currentData.value = JSON.parse(JSON.stringify(row));
// console.log(currentData.value, "currentData");
// currentData.value.hvcmFlag == 1
// ? (currentData.value.hvcmFlag = true)
// : (currentData.value.hvcmFlag = false);
// currentData.value.ybFlag == 1
// ? (currentData.value.ybFlag = true)
// : (currentData.value.ybFlag = false);
// currentData.value.ybMatchFlag == 1
// ? (currentData.value.ybMatchFlag = true)
// : (currentData.value.ybMatchFlag = false);
// currentData.value.allergenFlag == 1
// ? (currentData.value.allergenFlag = true)
// : (currentData.value.allergenFlag = false);
// console.log(currentData.value, "currentDataform");
// title.value = "编辑";
// // 确保子组件已经接收到最新的 props
// nextTick(() => {
// proxy.$refs["deviceRef"].edit();
// });
// proxy.$refs["deviceRef"].edit();
}
/** 打开查看弹窗 */

View File

@@ -5,7 +5,7 @@
<el-form
:model="form"
:rules="rules"
ref="medicationRef"
ref="diagnosisTreatmentRef"
label-width="110px"
label-position="left"
>
@@ -21,101 +21,216 @@
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="name">
<el-input
v-model="form.name"
placeholder="请输入器材名称"
/>
<el-input v-model="form.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="拼音码(项目名称)"
prop="pyStr"
class="custom-label-spacing"
>
<el-input v-model="form.pyStr" placeholder=""/>
<el-form-item label="所属科室" prop="orgId">
<el-tree-select
v-model="form.orgId"
:data="deptOptions"
:props="{
value: 'id',
label: 'name',
children: 'children',
}"
value-key="id"
placeholder="请选择提供部门"
check-strictly
clearable
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="五笔拼音" prop="wbStr">
<el-input v-model="form.wbStr" placeholder=""/>
<el-form-item label="地点" prop="locationId">
<el-tree-select
v-model="form.locationId"
:data="locationOptions"
:props="{
value: 'id',
label: 'name',
children: 'children',
}"
value-key="id"
placeholder="请选择地点"
check-strictly
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="目录分类" prop="categoryEnum">
<el-input
<el-tree-select
v-model="form.categoryEnum"
placeholder=""
:data="diseaseTreatmentCategoryList"
:props="{
value: 'id',
label: 'info',
children: 'children',
}"
value-key="id"
placeholder="请选择地点"
check-strictly
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="类型" prop="typeCode">
<el-input v-model="form.typeCode" placeholder=""/>
<el-select v-model="form.typeCode" placeholder="" clearable>
<el-option
v-for="item in typeEnumOptions"
:key="item.value"
:label="item.info"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="状态" prop="statusEnum">
<el-select v-model="form.statusEnum" clearable>
<el-option
v-for="status in statusFlagOptions"
:key="status.value"
:label="status.info"
:value="status.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="使用单位" prop="permittedUnitCode">
<el-input
v-model="form.permittedUnitCode"
placeholder=""
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医保标记" prop="ybFlag">
<!-- <el-input v-model="form.ybFlag" placeholder=""/> -->
<el-checkbox v-model="form.ybFlag"></el-checkbox>
<!-- <el-input v-model="form.ybFlag" placeholder=""/> -->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="医保编码" prop="conditionCode">
<el-input v-model="form.ybNo" placeholder=""/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="医保对码标记" prop="ybMatchFlag">
<el-checkbox v-model="form.ybMatchFlag"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="状态" prop="statusEnum">
<el-input
v-model="form.statusEnum"
placeholder=""
/>
<el-form-item label="医保编码" prop="conditionCode">
<el-input v-model="form.ybNo" placeholder="" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="医保类别" prop="ybType">
<el-select
v-model="form.ybType"
placeholder="医保类别"
clearable
style="width: 240px"
>
<el-option
v-for="dict in yb_type"
: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="bodySiteCode">
<!-- <el-input v-model="form.ybFlag" placeholder=""/> -->
<el-input
<el-select
v-model="form.bodySiteCode"
placeholder=""
/>
clearable
:disabled="form.id != undefined"
>
<el-option
v-for="category in body_site_code"
:key="category.value"
:label="category.label"
:value="category.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所需标本" prop="specimenCode">
<el-select
v-model="form.specimenCode"
clearable
:disabled="form.id != undefined"
>
<el-option
v-for="category in specimen_code"
:key="category.value"
:label="category.label"
:value="category.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="所需标本" prop="specimenCode">
<el-input
v-model="form.specimenCode"
placeholder=""
/>
<el-form-item label="执行科室" prop="ruleId">
<el-select v-model="form.ruleId" placeholder="" clearable>
<el-option
v-for="item in exeOrganizations"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="规则id" prop="ruleId">
<el-checkbox v-model="form.ruleId"></el-checkbox>
<el-form-item label="使用单位" prop="permittedUnitCode">
<el-select
v-model="form.permittedUnitCode"
clearable
:disabled="form.id != undefined"
>
<el-option
v-for="category in unit_code"
:key="category.value"
:label="category.label"
:value="category.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="财务类型" prop="minimalFee">
<el-select
v-model="form.minimalFee"
clearable
:disabled="form.id != undefined"
>
<el-option
v-for="category in fin_type_code"
:key="category.value"
:label="category.label"
:value="category.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="购入价" prop="purchasePrice">
<el-input v-model="form.purchasePrice" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="零售价" prop="retailPrice">
<el-input v-model="form.retailPrice" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最高零售价" prop="maximumRetailPrice">
<el-input v-model="form.maximumRetailPrice" placeholder="" />
</el-form-item>
</el-col>
</el-row>
@@ -142,42 +257,52 @@
</div>
</template>
<script setup name="MedicineDialog">
<script setup name="DiagnosisTreatmentDialog">
import {
getDiagnosisTreatmentList,
editDiagnosisTreatment,
addDiagnosisTreatment,
getDiseaseTreatmentInit,
getDiagnosisTreatmentOne,
deptTreeSelect,
locationTreeSelect,
} from "./diagnosistreatment";
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_normal_disable, sys_user_sex } = proxy.useDict(
"sys_normal_disable",
"sys_user_sex"
const { unit_code, yb_type, fin_type_code } = proxy.useDict(
"unit_code",
"yb_type",
"fin_type_code"
);
const title = ref("");
const visible = ref(false);
const emits = defineEmits(["submit"]); // 声明自定义事件
const categoryEnum = ref("");
const deptOptions = ref(undefined); // 部门树选项
const locationOptions = ref(undefined); // 地点树选项
const diseaseTreatmentCategoryList = ref(undefined);
const statusFlagOptions = ref(undefined);
const exeOrganizations = ref(undefined);
const typeEnumOptions = ref(undefined);
const data = reactive({
form: {},
rules: {
// busNo: [{ required: true, message: "编码不能为空", trigger: "blur" }],
// name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
// pyStr: [{ required: true, message: "拼音不能为空", trigger: "blur" }],
// wbStr: [{ required: true, message: "五笔拼音不能为空", trigger: "blur" }],
// categoryEnum: [{ required: true, message: "器材分类不能为空", trigger: "blur" }],
// typeCode: [{ required: true, message: "器材种类不能为空", trigger: "blur" }],
// unitCode: [{ required: true, message: "包装单位不能为空", trigger: "blur" }],
// size: [{ required: true, message: "包装规格不能为空", trigger: "blur" }],
// partPercent: [{ required: true, message: "拆零比不能为空", trigger: "blur" }],
// minUnitCode: [{ required: true, message: "最小使用单位不能为空", trigger: "blur" }],
// modelNumber: [{ required: true, message: "产品型号不能为空", trigger: "blur" }],
// hvcmFlag: [{ required: true, message: "高值器材标志不能为空", trigger: "blur" }],
// salesUnitCode: [{ required: true, message: "销售单位不能为空", trigger: "blur" }],
busNo: [{ required: true, message: "编码不能为空", trigger: "blur" }],
name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
statusEnum: [{ required: true, message: "状态不能为空", trigger: "blur" }],
categoryEnum: [
{ required: true, message: "诊疗目录不能为空", trigger: "blur" },
],
typeCode: [
{ required: true, message: "器材种类不能为空", trigger: "blur" },
],
permittedUnitCode: [
{ required: true, message: "使用单位不能为空", trigger: "blur" },
],
ybFlag: [{ required: true, message: "医保标记不能为空", trigger: "blur" }],
ybMatchFlag: [
{ required: true, message: "医保对码标记不能为空", trigger: "blur" },
],
},
});
@@ -192,26 +317,56 @@ const props = defineProps({
type: String,
required: false,
},
currentCategoryEnum: {
type: String,
required: true,
},
diseaseTreatmentCategoryList: {
type: Object,
required: false,
},
statusFlagOptions: {
type: Object,
required: false,
},
exeOrganizations: {
type: Object,
required: false,
},
typeEnumOptions: {
type: Object,
required: false,
},
});
// 显示弹框
function show() {
reset();
// queryParams.roleId = props.roleId;
// getList();
getLocationTree();
getDeptTree();
title.value = "";
title.value = props.title;
diseaseTreatmentCategoryList.value = props.diseaseTreatmentCategoryList;
statusFlagOptions.value = props.statusFlagOptions;
exeOrganizations.value = props.exeOrganizations;
typeEnumOptions.value = props.typeEnumOptions;
form.value.categoryEnum = props.currentCategoryEnum;
console.log(props.currentCategoryEnum, "11111");
console.log(props, "22222", title.value);
visible.value = true;
}
// 显示弹框
function edit() {
reset();
// queryParams.roleId = props.roleId;
// getList();
getLocationTree();
getDeptTree();
title.value = "";
title.value = props.title;
form.value = props.item;
diseaseTreatmentCategoryList.value = props.diseaseTreatmentCategoryList;
statusFlagOptions.value = props.statusFlagOptions;
exeOrganizations.value = props.exeOrganizations;
typeEnumOptions.value = props.typeEnumOptions;
visible.value = true;
}
/** 重置操作表单 */
@@ -220,46 +375,74 @@ function reset() {
id: undefined,
busNo: undefined, // 编码
name: undefined, // 名称
locationId: undefined, // 地点
orgId: undefined, // 执行科室
pyStr: undefined, // 拼音码
wbStr: undefined, // 五笔码
categoryEnum: undefined, // 类别
typeCode: undefined, // 类型编码
permittedUnitCode: undefined, // 使用单位
ybFlag: undefined, // 医保标记
ybNo: undefined, // 医保编码
ybMatchFlag: undefined, // 医保对码标记
statusEnum: undefined, // 状态(包括 1预置2启用3停用
ybFlag: undefined, // 医保标记
ybMatchFlag: undefined, // 医保对码标记
ybNo: undefined, // 医保编码
ybType: undefined, // 医保类型
bodySiteCode: undefined, // 身体部位
specimenCode: undefined, // 所需标本
description: undefined, // 说明
ruleId: undefined, // 执行科室
permittedUnitCode: undefined, // 使用单位
minimalFee: undefined, // 最小收费
purchasePrice: undefined, // 购入价
retailPrice: undefined, // 零售价
maximumRetailPrice: undefined, // 最高零售价
description: undefined, // 说明
};
proxy.resetForm("medicationRef");
proxy.resetForm("diagnosisTreatmentRef");
}
/** 提交按钮 */
function submitForm() {
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.ybMatchFlag = 1)
: (form.value.ybMatchFlag = 0);
form.value.ruleId ? (form.value.ruleId = 1) : (form.value.ruleId = 0);
if (form.value.id != undefined) {
editDiagnosisTreatment(form.value).then((response) => {
// 触发自定义事件,并传递数据给父组件
emits("submit");
proxy.$modal.msgSuccess("修改成功");
visible.value = false;
reset(); // 重置表单数据
});
} else {
addDiagnosisTreatment(form.value).then((response) => {
// 触发自定义事件,并传递数据给父组件
emits("submit");
proxy.$modal.msgSuccess("新增成功");
visible.value = false;
reset(); // 重置表单数据
});
}
proxy.$refs["diagnosisTreatmentRef"].validate((valid) => {
if (valid) {
if (form.value.id != undefined) {
editDiagnosisTreatment(form.value).then((response) => {
// 触发自定义事件,并传递数据给父组件
emits("submit");
proxy.$modal.msgSuccess("修改成功");
visible.value = false;
reset(); // 重置表单数据
});
} else {
addDiagnosisTreatment(form.value).then((response) => {
// 触发自定义事件,并传递数据给父组件
emits("submit");
proxy.$modal.msgSuccess("新增成功");
visible.value = false;
reset(); // 重置表单数据
});
}
}
});
}
/** 查询部门下拉树结构 */
function getDeptTree() {
deptTreeSelect().then((response) => {
console.log(response, "response查询部门下拉树结构");
deptOptions.value = response.data.records;
});
}
/** 查询地点下拉树结构 */
function getLocationTree() {
locationTreeSelect().then((response) => {
console.log(response, "response查询部门下拉树结构");
locationOptions.value = response.data.records;
});
}
/** 取消按钮 */
function cancel() {
visible.value = false;

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询诊疗目录列表
export function getDiagnosisTreatmentList(query) {
@@ -13,8 +12,9 @@ export function getDiagnosisTreatmentList(query) {
// 查询诊疗目录详细
export function getDiagnosisTreatmentOne(id) {
return request({
url: '/data-dictionary/diagnosis-treatment/information-one/' + parseStrEmpty(id),
method: 'get'
url: '/data-dictionary/diagnosis-treatment/information-one/',
method: 'get',
params: { id } // 确保参数正确传递
})
}
@@ -36,14 +36,6 @@ export function editDiagnosisTreatment(data) {
})
}
// // 删除诊疗目录
// export function delUser(userId) {
// return request({
// url: '/system/user/' + userId,
// method: 'delete'
// })
// }
// 诊疗目录分类查询
export function getDiseaseTreatmentInit() {
return request({
@@ -71,3 +63,21 @@ export function startDiseaseTreatment(ids) {
data: ids
})
}
// 查询部门树形数据
export function deptTreeSelect(queryParams) {
return request({
url: '/base-data-manage/organization/organization',
method: 'get',
param: queryParams
})
}
// 查询地点树形数据
export function locationTreeSelect(queryParams) {
return request({
url: '/base-data-manage/cabinet-location/cabinet-location',
method: 'get',
param: queryParams
})
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询病种目录列表
export function getDiseaseList(query) {
@@ -13,8 +12,9 @@ export function getDiseaseList(query) {
// 查询病种目录详细
export function getDiseaseOne(id) {
return request({
url: '/data-dictionary/disease/information-one/' + parseStrEmpty(id),
method: 'get'
url: '/data-dictionary/disease/information-one',
method: 'get',
params: { id } // 确保参数正确传递
})
}

View File

@@ -3,15 +3,6 @@
<el-row :gutter="20">
<!--疾病目录数据-->
<el-col :span="4" :xs="24">
<!-- <div class="head-container">
<el-input
v-model="deptName"
placeholder="请输入部门名称"
clearable
prefix-icon="Search"
style="margin-bottom: 20px"
/>
</div> -->
<div class="head-container">
<el-tree
:data="conditionDefinitionOptions"
@@ -59,7 +50,11 @@
/>
</el-form-item>
<el-form-item label="是否停用" prop="statusEnum">
<el-select v-model="queryParams.statusEnum" style="width: 240px">
<el-select
v-model="queryParams.statusEnum"
style="width: 240px"
clearable
>
<el-option
v-for="status in statusFlagOptions"
:key="status.value"
@@ -68,21 +63,6 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="是否系统预置:" prop="status" label-width="120">
<el-select
v-model="queryParams.status"
placeholder="用户状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
@@ -100,15 +80,6 @@
>添加新项目</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>添加为本机构项目</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button
type="danger"
@@ -141,7 +112,7 @@
>查询</el-button
>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
@@ -150,7 +121,7 @@
v-hasPermi="['system:user:export']"
>导出Excel</el-button
>
</el-col>
</el-col> -->
</el-row>
<el-table
@@ -197,13 +168,13 @@
label="医保对码标志"
align="center"
key="ybMatchFlag"
prop="ybMatchFlag"
prop="ybMatchFlag_enumText"
/>
<el-table-column
label="停用"
label="状态"
align="center"
key="statusEnum"
prop="statusEnum"
prop="statusEnum_enumText"
width="160"
/>
<el-table-column
@@ -221,14 +192,14 @@
v-hasPermi="['system:user:edit']"
>编辑</el-button
>
<el-button
<!-- <el-button
link
type="primary"
icon="View"
@click="handleView(scope.row)"
v-hasPermi="['system:user:remove']"
>查看</el-button
>
> -->
</template>
</el-table-column>
</el-table>
@@ -273,7 +244,6 @@
</el-col>
<el-col :span="12">
<el-form-item label="医保标记" prop="ybFlag">
<!-- <el-input v-model="form.ybFlag" placeholder="" /> -->
<el-checkbox v-model="form.ybFlag"></el-checkbox>
</el-form-item>
</el-col>
@@ -281,7 +251,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="类型" prop="ybNo">
<el-select v-model="form.statusEnum" placeholder="请选择">
<el-select
v-model="form.statusEnum"
placeholder="请选择"
clearable
>
<el-option
v-for="dict in statusFlagOptions"
:key="dict.value"
@@ -293,7 +267,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="医保标记" prop="ybFlag">
<el-select v-model="form.statusEnum" placeholder="请选择">
<el-select
v-model="form.statusEnum"
placeholder="请选择"
clearable
>
<el-option
v-for="dict in statusFlagOptions"
:key="dict.value"
@@ -314,11 +292,6 @@
<el-checkbox v-model="form.ybMatchFlag"></el-checkbox>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="拼音" prop="pyStr">
<el-input v-model="form.pyStr" maxlength="11" />
</el-form-item>
</el-col> -->
<!-- <el-col :span="12">
<el-form-item label="停用" prop="status">
<el-checkbox v-model="form.status"></el-checkbox>
@@ -359,12 +332,7 @@ import {
startDisease,
} from "./components/disease";
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_normal_disable, sys_user_sex } = proxy.useDict(
"sys_normal_disable",
"sys_user_sex"
);
const diseaseList = ref([]);
const open = ref(false);
@@ -379,9 +347,6 @@ const conditionDefinitionOptions = ref(undefined);
const conditionDefinition = ref(undefined);
// 是否停用
const statusFlagOptions = ref(undefined);
// const initPassword = ref(undefined);
// const postOptions = ref([]);
// const roleOptions = ref([]);
const data = reactive({
form: {},
@@ -397,15 +362,6 @@ const data = reactive({
conditionCode: [
{ required: true, message: "编码不能为空", trigger: "blur" },
],
// typeCode: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
// description: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
// conditionCode: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
},
});
@@ -416,29 +372,23 @@ const filterNode = (value, data) => {
if (!value) return true;
return data.label.indexOf(value) !== -1;
};
// /** 根据名称筛选部门树 */
// watch(deptName, val => {
// proxy.$refs["deptTreeRef"].filter(val);
// });
/** 病种目录分类查询下拉树结构 */
function getDiseaseCategoryList() {
getDiseaseCategory().then((response) => {
console.log(response, "response病种目录分类查询下拉树结构");
conditionDefinitionOptions.value = response.data.diseaseCategoryList;
conditionDefinitionOptions.value = response.data.diseaseCategoryList.sort((a, b) => { return parseInt(a.value) - parseInt(b.value) });
statusFlagOptions.value = response.data.statusFlagOptions;
});
}
/** 查询病种目录列表 */
function getList() {
loading.value = true;
// queryParams.value.statusEnum = +queryParams.value.statusEnum
console.log(queryParams.value, "queryParams.value");
getDiseaseList(queryParams.value).then((res) => {
loading.value = false;
console.log(res, "res");
diseaseList.value = res.data.records;
total.value = res.data.total;
console.log(total.value, "total.value");
console.log(total.value, "total.value", res, "res");
});
}
/** 节点单击事件 */
@@ -452,14 +402,7 @@ function handleQuery() {
queryParams.value.pageNo = 1;
getList();
}
// /** 重置按钮操作 */
// function resetQuery() {
// dateRange.value = [];
// proxy.resetForm("queryRef");
// queryParams.value.deptId = undefined;
// proxy.$refs.deptTreeRef.setCurrentKey(null);
// handleQuery();
// };
/** 启用按钮操作 */
function handleStart(row) {
const stardIds = row.id || ids.value;
@@ -498,35 +441,14 @@ function handleExport() {
`user_${new Date().getTime()}.xlsx`
);
}
// /** 用户状态修改 */
// function handleStatusChange(row) {
// let text = row.status === "0" ? "启用" : "停用";
// proxy.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function () {
// return changeUserStatus(row.userId, row.status);
// }).then(() => {
// proxy.$modal.msgSuccess(text + "成功");
// }).catch(function () {
// row.status = row.status === "0" ? "1" : "0";
// });
// };
/** 选择条数 */
function handleSelectionChange(selection) {
console.log(selection, "selection");
// selectedData.value = selection.map((item) => ({ ...item })); // 存储选择的行数据
ids.value = selection.map((item) => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 下载模板操作 */
function importTemplate() {
proxy.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
}
/** 重置操作表单 */
function reset() {
form.value = {
@@ -561,14 +483,19 @@ function handleAdd() {
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
console.log(row, "row");
form.value = JSON.parse(JSON.stringify(row));
form.value.ybFlag == 1
? (form.value.ybFlag = true)
: (form.value.ybFlag = false);
form.value.ybMatchFlag == 1
? (form.value.ybMatchFlag = true)
: (form.value.ybMatchFlag = false);
getDiseaseOne(row.id).then((response) => {
console.log(response, "responsebbbb", row.id);
form.value = response.data;
form.value.ybFlag == 1
? (form.value.ybFlag = true)
: (form.value.ybFlag = false);
form.value.ybMatchFlag == 1
? (form.value.ybMatchFlag = true)
: (form.value.ybMatchFlag = false);
// getList();
});
// console.log(row, "row");
// form.value = JSON.parse(JSON.stringify(row));
open.value = true;
title.value = "病种编辑";
}
@@ -582,9 +509,6 @@ function submitForm() {
? (form.value.ybMatchFlag = 1)
: (form.value.ybMatchFlag = 0);
if (form.value.id != undefined) {
// form.value.status
// ? (form.value.statusEnum = "3")
// : (form.value.statusEnum = "2");
console.log(form.value, "editDisease", form.value.statusEnum);
editDisease(form.value).then((response) => {
proxy.$modal.msgSuccess("修改成功");

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询药品目录列表
export function getMedicationList(query) {

View File

@@ -1,7 +1,7 @@
<template>
<div class="app-container">
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" v-model="visible" width="1000px" append-to-body>
<el-dialog :title="title" v-model="visible" width="1150px" append-to-body>
<el-tabs type="border-card">
<el-tab-pane label="基本信息">
<el-form
@@ -61,11 +61,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="药品状态" prop="statusEnum">
<el-select
v-model="form.statusEnum"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.statusEnum" clearable>
<el-option
v-for="status in statusFlagOptions"
:key="status.value"
@@ -77,11 +73,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="药品分类" prop="categoryCode">
<el-select
v-model="form.categoryCode"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.categoryCode" clearable disabled>
<el-option
v-for="category in med_category_code"
:key="category.value"
@@ -122,6 +114,7 @@
value-key="id"
placeholder="请选择提供部门"
check-strictly
clearable
/>
</el-form-item>
</el-col>
@@ -138,16 +131,13 @@
value-key="id"
placeholder="请选择地点"
check-strictly
clearable
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="财务统计类型" prop="minimalFee">
<el-select
v-model="form.minimalFee"
clearable
:disabled="form.id != undefined"
>
<el-form-item label="财务类型" prop="typeCode">
<el-select v-model="form.typeCode" clearable>
<el-option
v-for="category in fin_type_code"
:key="category.value"
@@ -159,11 +149,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="药品性质" prop="pharmacologyCategoryCode">
<el-select
v-model="form.pharmacologyCategoryCode"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.pharmacologyCategoryCode" clearable>
<el-option
v-for="category in medicine_properties"
:key="category.value"
@@ -182,11 +168,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="包装单位" prop="unitCode">
<el-select
v-model="form.unitCode"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.unitCode" clearable>
<el-option
v-for="category in unit_code"
:key="category.value"
@@ -198,11 +180,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="贯标国家编码" prop="nationalDrugCode">
<el-input
v-model="form.nationalDrugCode"
placeholder=""
:disabled="form.id != undefined"
/>
<el-input v-model="form.nationalDrugCode" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="6">
@@ -223,11 +201,7 @@
</el-col> -->
<el-col :span="6">
<el-form-item label="剂量单位" prop="doseUnitCode">
<el-select
v-model="form.doseUnitCode"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.doseUnitCode" clearable>
<el-option
v-for="category in unit_code"
:key="category.value"
@@ -239,11 +213,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="剂型" prop="doseFormCode">
<el-select
v-model="form.doseFormCode"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.doseFormCode" clearable>
<el-option
v-for="category in dose_form_code"
:key="category.value"
@@ -255,11 +225,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="最小单位" prop="minUnitCode">
<el-select
v-model="form.minUnitCode"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.minUnitCode" clearable>
<el-option
v-for="category in unit_code"
:key="category.value"
@@ -278,11 +244,7 @@
<el-row :gutter="24">
<el-col :span="6">
<el-form-item label="用法" prop="methodCode">
<el-select
v-model="form.methodCode"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.methodCode" clearable>
<el-option
v-for="category in method_code"
:key="category.value"
@@ -294,11 +256,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="用药频次" prop="rateCode">
<el-select
v-model="form.rateCode"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.rateCode" clearable>
<el-option
v-for="category in rate_code"
:key="category.value"
@@ -310,7 +268,15 @@
</el-col>
<el-col :span="6">
<el-form-item label="剂量形式" prop="doseFrom">
<el-input v-model="form.doseFrom" placeholder="" />
<!-- <el-input v-model="form.doseFrom" placeholder="" /> -->
<el-select v-model="form.doseFrom" clearable>
<el-option
v-for="category in dose_from_code"
:key="category.value"
:label="category.label"
:value="category.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -325,9 +291,9 @@
<el-input v-model="form.version" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="6" v-if="form.id != undefined">
<el-form-item label="药品编号" prop="busNo">
<el-input v-model="form.busNo" placeholder="" />
<el-input v-model="form.busNo" placeholder="" disabled/>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -366,11 +332,7 @@
<el-row :gutter="24">
<el-col :span="6">
<el-form-item label="适用范围" prop="domainEnum">
<el-select
v-model="form.domainEnum"
clearable
:disabled="form.id != undefined"
>
<el-select v-model="form.domainEnum" clearable>
<el-option
v-for="domainEnum in domainEnumOptions"
:key="domainEnum.value"
@@ -398,28 +360,40 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="拆分属性" prop="partAttributeEnum">
<el-select
v-model="form.partAttributeEnum"
clearable
:disabled="form.id != undefined"
>
<el-form-item label="门诊拆分属性" prop="partAttributeEnum">
<el-select v-model="form.partAttributeEnum" clearable>
<el-option
v-for="category in unit_code"
v-for="category in partAttributeEnumOptions"
:key="category.value"
:label="category.label"
:label="category.info"
:value="category.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="拆零比" prop="partPercent">
<el-input v-model="form.partPercent" placeholder="" />
<el-form-item
label="住院临时医嘱拆分属性"
prop="thoPartAttributeEnum"
class="custom-label-height"
>
<el-select v-model="form.thoPartAttributeEnum" clearable>
<el-option
v-for="category in tempOrderSplitPropertyOptions"
:key="category.value"
:label="category.info"
:value="category.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="6">
<el-form-item label="拆零比" prop="partPercent">
<el-input v-model="form.partPercent" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品特性 " prop="characteristic">
<el-input v-model="form.characteristic" placeholder="" />
@@ -451,17 +425,29 @@
<el-row :gutter="24">
<el-col :span="6">
<el-form-item label="购入价" prop="purchasePrice">
<el-input v-model="form.purchasePrice" placeholder="" />
<el-input
v-model="form.purchasePrice"
placeholder=""
:disabled="form.id != undefined"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="零售价" prop="retailPrice">
<el-input v-model="form.retailPrice" placeholder="" />
<el-input
v-model="form.retailPrice"
placeholder=""
:disabled="form.id != undefined"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="最高零售价" prop="maximumRetailPrice">
<el-input v-model="form.maximumRetailPrice" placeholder="" />
<el-input
v-model="form.maximumRetailPrice"
placeholder=""
:disabled="form.id != undefined"
/>
</el-form-item>
</el-col>
<el-col :span="6">
@@ -515,6 +501,11 @@
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="基药标识" prop="basicFlag">
<el-checkbox v-model="form.basicFlag"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="生效日期" prop="effectiveDate">
<el-date-picker
@@ -585,7 +576,6 @@
<el-input
v-model="antibioticForm.dose"
placeholder="输入剂量"
:disabled="form.id != undefined"
/>
</el-form-item>
</el-col>
@@ -595,7 +585,6 @@
<el-input
v-model="antibioticForm.maxUnit"
placeholder="输入剂量"
:disabled="form.id != undefined"
/>
</el-form-item>
</el-col>
@@ -606,7 +595,6 @@
<el-input
v-model="antibioticForm.minRateCode"
placeholder=""
:disabled="form.id != undefined"
/>
</el-form-item>
</el-col>
@@ -616,7 +604,6 @@
<el-input
v-model="antibioticForm.maxRateCode"
placeholder=""
:disabled="form.id != undefined"
/>
</el-form-item>
</el-col>
@@ -663,6 +650,7 @@
<script setup name="MedicineDialog">
import { deptTreeSelect, locationTreeSelect } from "./medicine";
import moment from "moment";
const router = useRouter();
const { proxy } = getCurrentInstance();
@@ -673,15 +661,12 @@ const {
unit_code,
dose_form_code,
yb_type,
medicine_default_usage,
medicine_default_frequency,
medicine_basic_flag,
sys_normal_disable,
rate_code,
method_code,
fin_type_code,
antibiotic_type_code,
ddd_code,
dose_from_code,
} = proxy.useDict(
"med_category_code",
"system_categories",
@@ -689,15 +674,12 @@ const {
"unit_code",
"dose_form_code",
"yb_type",
"medicine_default_usage",
"medicine_default_frequency",
"medicine_basic_flag",
"sys_normal_disable",
"rate_code",
"method_code",
"fin_type_code",
"antibiotic_type_code",
"ddd_code"
"ddd_code",
"dose_from_code"
);
const title = ref("");
@@ -709,19 +691,62 @@ const deptOptions = ref(undefined); // 部门树选项
const locationOptions = ref(undefined); // 地点树选项
const supplierListOptions = ref(undefined); // 供应商列表选项
const statusRestrictedOptions = ref(undefined); // 权限级别选项
const partAttributeEnumOptions = ref(undefined); // 部位属性选项
const tempOrderSplitPropertyOptions = ref(undefined); // 临时订单拆分属性选项
const data = reactive({
form: {},
antibioticForm: {},
rules: {
// busNo: [{ required: true, message: "编码不能为空", trigger: "blur" }],
// name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
// conditionCode: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
statusEnum: [{ required: true, message: "药品状态不能为空", trigger: "blur" }],
orgId: [{ required: true, message: "所属科室不能为空", trigger: "blur" }],
locationId: [ { required: true, message: "所在位置不能为空", trigger: "blur" }],
doseFormCode: [{ required: true, message: "剂型不能为空", trigger: "blur" }],
totalVolume: [{ required: true, message: "规格不能为空", trigger: "blur" }],
ingredientItem: [{ required: true, message: "成分不能为空", trigger: "blur" }],
activeFlag: [{ required: true, message: "活性不能为空", trigger: "blur" }],
lotNumber: [{ required: true, message: "批次号不能为空", trigger: "blur" }],
methodCode:[{ required: true, message: "用法不能为空", trigger: "blur" }],
rateCode:[{ required: true, message: "用药频次不能为空", trigger: "blur" }],
dose:[{ required: true, message: "单次剂量不能为空", trigger: "blur" }],
doseUnitCode:[{ required: true, message: "剂量单位不能为空", trigger: "blur" }],
maxUnit:[{ required: true, message: "单次最大剂量不能为空", trigger: "blur" }],
definition: [{ required: true, message: "药品定义不能为空", trigger: "blur" }],
busNo: [{ required: true, message: "药品编号不能为空", trigger: "blur" }],
name: [{ required: true, message: "药品名称不能为空", trigger: "blur" }],
domainEnum: [{ required: true, message: "适用范围不能为空", trigger: "blur" }],
nameEn: [{ required: true, message: "英文药名不能为空", trigger: "blur" }],
categoryCode:[{ required: true, message: "药品分类不能为空", trigger: "blur" }],
merchandiseName:[{ required: true, message: "商品名称不能为空", trigger: "blur" }],
unitCode:[{ required: true, message: "药品单位不能为空", trigger: "blur" }],
minUnitCode:[{ required: true, message: "最小单位不能为空", trigger: "blur" }],
ingredient:[{ required: true, message: "成分不能为空", trigger: "blur" }],
partPercent: [{ required: true, message: "拆零比不能为空", trigger: "blur" }],
doseFrom: [{ required: true, message: "剂量形式不能为空", trigger: "blur" }],
approvalNumber:[{ required: true, message: "批准文号不能为空", trigger: "blur" }],
ybMatchFlag:[{ required: true, message: "医保对码不能为空", trigger: "blur" }],
ybNo:[{ required: true, message: "医保编码不能为空", trigger: "blur" }],
pharmacologyCategoryCode:[{ required: true, message: "药品性质不能为空", trigger: "blur" }],
skinTestFlag:[{ required: true, message: "皮试不能为空", trigger: "blur" }],
injectFlag: [{ required: true, message: "注射不能为空", trigger: "blur" }],
supplyId: [{ required: true, message: "供应商不能为空", trigger: "blur" }],
restrictedFlag: [{ required: true, message: "限制使用不能为空", trigger: "blur" }],
childrenFlag: [{ required: true, message: "儿童用药不能为空", trigger: "blur" }],
restrictedScope: [{ required: true, message: "限制使用范围不能为空", trigger: "blur" }],
nationalDrugCode:[{ required: true, message: "贯标国家编码不能为空", trigger: "blur" }],
partAttributeEnum:[{ required: true, message: "拆分属性不能为空", trigger: "blur" }],
thoPartAttributeEnum:[{ required: true, message: "住院临时医嘱拆分属性不能为空", trigger: "blur" }],
basicFlag:[{ required: true, message: "基药标识不能为空", trigger: "blur" }],
antibioticFlag:[{ required: true, message: "抗生素不能为空", trigger: "blur" }],
selfFlag:[{ required: true, message: "自制不能为空", trigger: "blur" }],
purchasePrice:[{ required: true, message: "购入价不能为空", trigger: "blur" }],
retailPrice:[{ required: true, message: "零售价不能为空", trigger: "blur" }],
maximumRetailPrice:[{ required: true, message: "最高零售价不能为空", trigger: "blur" }],
ybType:[{ required: true, message: "医保类型不能为空", trigger: "blur" }],
typeCode:[{ required: true, message: "财务类型不能为空", trigger: "blur" }],
},
});
const { queryParams, form, antibioticForm, rules } = toRefs(data);
const { form, antibioticForm, rules } = toRefs(data);
const props = defineProps({
item: {
@@ -744,11 +769,22 @@ const props = defineProps({
type: Object,
required: false,
},
currentCategoryEnum: {
type: String,
required: true,
},
partAttributeEnumOptions: {
type: Object,
required: false,
},
tempOrderSplitPropertyOptions: {
type: Object,
required: false,
},
});
/** 查询部门下拉树结构 */
function getDeptTree() {
console.log("查询部门下拉树结构");
deptTreeSelect().then((response) => {
console.log(response, "response查询部门下拉树结构");
deptOptions.value = response.data.records;
@@ -760,7 +796,6 @@ function getLocationTree() {
locationTreeSelect().then((response) => {
console.log(response, "response查询部门下拉树结构");
locationOptions.value = response.data.records;
console.log(locationOptions.value, "部门下拉树结构");
});
}
// 显示弹框
@@ -772,25 +807,37 @@ function show() {
domainEnumOptions.value = props.domainEnum;
supplierListOptions.value = props.supplierListOptions;
statusRestrictedOptions.value = props.statusRestrictedOptions;
// console.log(currentData.value, "currentData");
form.value.categoryCode = props.currentCategoryEnum;
partAttributeEnumOptions.value = props.partAttributeEnumOptions;
tempOrderSplitPropertyOptions.value = props.tempOrderSplitPropertyOptions;
console.log(form.value.categoryCode, "form.value.categoryCode");
visible.value = true;
}
// 显示弹框
function edit() {
// queryParams.roleId = props.roleId;
// getList();
console.log(props, "22222");
console.log(props.item);
console.log("props.item");
reset();
getLocationTree();
getDeptTree();
form.value = props.item;
setFlag(form.value);
if (form.value) {
setFlag(form.value);
}
statusFlagOptions.value = props.status;
domainEnumOptions.value = props.domainEnum;
supplierListOptions.value = props.supplierListOptions;
statusRestrictedOptions.value = props.statusRestrictedOptions;
partAttributeEnumOptions.value = props.partAttributeEnumOptions;
tempOrderSplitPropertyOptions.value = props.tempOrderSplitPropertyOptions;
antibioticForm.value.antibioticCode = form.value.antibioticCode;
antibioticForm.value.restrictedEnum = form.value.restrictedEnum;
antibioticForm.value.dose = form.value.dose;
antibioticForm.value.maxUnit = form.value.maxUnit;
antibioticForm.value.minRateCode = form.value.maxRateCode;
antibioticForm.value.maxRateCode = form.value.maxRateCode;
antibioticForm.value.dddUnitCode = form.value.dddUnitCode;
antibioticForm.value.dddCode = form.value.dddCode;
visible.value = true;
}
// checkbox值转换
@@ -813,6 +860,7 @@ function setFlag(data) {
? (data.antibioticFlag = true)
: (data.antibioticFlag = false); //抗生素
data.selfFlag == 1 ? (data.selfFlag = true) : (data.selfFlag = false); //自制
data.basicFlag == 1 ? (data.basicFlag = true) : (data.basicFlag = false); //自制
}
/** 重置操作表单 */
function reset() {
@@ -867,14 +915,16 @@ function reset() {
retailPrice: undefined,
maximumRetailPrice: undefined,
ybType: undefined,
minimalFee: undefined,
typeCode: undefined,
nationalDrugCode: undefined,
antibioticFlag: undefined,
selfFlag: undefined,
// minRateCode: undefined,
// maxRateCode: undefined,
partAttributeEnum: undefined,
thoPartAttributeEnum: undefined,
usageLimit: undefined,
basicFlag: undefined,
};
proxy.resetForm("medicationRef");
antibioticForm.value = {
@@ -891,6 +941,32 @@ function reset() {
}
/** 提交按钮 */
function submitForm() {
form.value.activeFlag == true
? (form.value.activeFlag = 1)
: (form.value.activeFlag = 0); //是否为活性
form.value.ybMatchFlag == true
? (form.value.ybMatchFlag = 1)
: (form.value.ybMatchFlag = 0); //医保是否对码
form.value.skinTestFlag == true
? (form.value.skinTestFlag = 1)
: (form.value.skinTestFlag = 0); //是否皮试
form.value.injectFlag == true
? (form.value.injectFlag = 1)
: (form.value.injectFlag = 0); //是否为注射药物
form.value.restrictedFlag == true
? (form.value.restrictedFlag = 1)
: (form.value.restrictedFlag = 0); //是否限制使用
form.value.childrenFlag == true
? (form.value.childrenFlag = 1)
: (form.value.childrenFlag = 0); //儿童用药标志
form.value.antibioticFlag == true
? (form.value.antibioticFlag = 1)
: (form.value.antibioticFlag = 0); //抗生素标志v
form.value.basicFlag == true
? (form.value.basicFlag = 1)
: (form.value.basicFlag = 0); //抗生素标志
form.value.selfFlag == true ? (form.value.selfFlag = 1) : (form.value.selfFlag = 0); //自制标志
form.value.status == true ? (form.value.status = 1) : (form.value.status = 0); //启用状态
proxy.$refs["medicationRef"].validate((valid) => {
if (valid) {
if (form.value.activeFlag == true) {
@@ -903,6 +979,15 @@ function submitForm() {
form.value.dddUnitCode = antibioticForm.value.dddUnitCode;
form.value.dddCode = antibioticForm.value.dddCode;
}
const effectiveDate = form.value.effectiveDate
? moment(form.value.effectiveDate).format("YYYY-MM-DD HH:mm:ss")
: "";
const expirationDate = form.value.expirationDate
? moment(form.value.expirationDate).format("YYYY-MM-DD HH:mm:ss")
: "";
form.value.effectiveDate = effectiveDate;
form.value.expirationDate = expirationDate;
console.log(form.value.effectiveDate, form.value.expirationDate, "====================");
// 将表单数据发送给父组件
emits("submit", form.value);
visible.value = false;
@@ -933,6 +1018,9 @@ defineExpose({
margin-bottom: 4px; /* 调整 label 和输入框之间的间距 */
}
.el-form-item {
margin-bottom: 7px;
margin-bottom: 13px;
}
::v-deep .custom-label-height .el-form-item__label {
line-height: 20px; /* 设置 label 的行高为 15px */
}
</style>

View File

@@ -3,15 +3,6 @@
<el-row :gutter="20">
<!--药品目录-->
<el-col :span="4" :xs="24">
<!-- <div class="head-container">
<el-input
v-model="deptName"
placeholder="请输入部门名称"
clearable
prefix-icon="Search"
style="margin-bottom: 20px"
/>
</div> -->
<div class="head-container">
<el-tree
:data="medicationOptions"
@@ -97,15 +88,6 @@
>添加新项目</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>添加为本机构项目</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button
type="danger"
@@ -268,13 +250,6 @@
prop="lotNumber"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="拆零价"
align="center"
key="statusEnum"
prop="statusEnum"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="生效日期"
align="center"
@@ -411,17 +386,17 @@
width="90"
/>
<el-table-column
label="药品单位"
label="包装单位"
align="center"
key="unitCode"
prop="unitCode"
key="unitCode_dictText"
prop="unitCode_dictText"
:show-overflow-tooltip="true"
/>
<el-table-column
label="财务统计类型"
label="财务类型"
align="center"
key="minUnitCode_dictText"
prop="minUnitCode_dictText"
key="typeCode_dictText"
prop="typeCode_dictText"
:show-overflow-tooltip="true"
width="90"
/>
@@ -433,13 +408,6 @@
:show-overflow-tooltip="true"
width="110"
/>
<el-table-column
label="成分"
align="center"
key="ingredient"
prop="ingredient"
:show-overflow-tooltip="true"
/>
<el-table-column
label="拆零比"
align="center"
@@ -451,8 +419,8 @@
<el-table-column
label="剂量形式"
align="center"
key="doseFrom"
prop="doseFrom"
key="doseFrom_dictText"
prop="doseFrom_dictText"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -501,18 +469,18 @@
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
<!-- <el-table-column
label="生产厂家"
align="center"
key="manufacturerId"
prop="manufacturerId"
:show-overflow-tooltip="true"
/>
/> -->
<el-table-column
label="生产厂家名称"
align="center"
key="manufacturerName"
prop="manufacturerName"
key="manufacturerText"
prop="manufacturerText"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -570,6 +538,14 @@
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="住院临时医嘱拆分属性"
align="center"
key="thoPartAttributeEnum_enumText"
prop="thoPartAttributeEnum_enumText"
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="抗生素分类"
align="center"
@@ -589,8 +565,8 @@
<el-table-column
label="是否自制"
align="center"
key=" selfFlag_enumText"
prop=" selfFlag_enumText"
key="selfFlag_enumText"
prop="selfFlag_enumText"
:show-overflow-tooltip="true"
width="90"
/>
@@ -610,14 +586,6 @@
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="常规单位"
align="center"
key="baseUnitCode"
prop="baseUnitCode"
:show-overflow-tooltip="true"
width="90"
/>
<el-table-column
label="当前库存数量(常规单位)"
align="center"
@@ -637,8 +605,8 @@
<el-table-column
label="售价"
align="center"
key="price"
prop="price"
key="retailPrice"
prop="retailPrice"
:show-overflow-tooltip="true"
width="90"
/>
@@ -685,13 +653,16 @@
:status="statusFlagOptions"
:supplierListOptions="supplierListOptions"
:statusRestrictedOptions="statusRestrictedOptions"
:currentCategoryEnum="currentCategoryEnum"
:partAttributeEnumOptions="partAttributeEnumOptions"
:tempOrderSplitPropertyOptions="tempOrderSplitPropertyOptions"
@submit="submitForm"
/>
<medicine-view-dialog
<!-- <medicine-view-dialog
ref="medicineViewRef"
:item="viewData"
:viewFlg="viewFlg"
/>
/> -->
</div>
</template>
@@ -709,12 +680,7 @@ import medicineDialog from "./components/medicineDialog";
import medicineViewDialog from "./components/medicineViewDialog";
import { nextTick } from "vue";
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_normal_disable, sys_user_sex } = proxy.useDict(
"sys_normal_disable",
"sys_user_sex"
);
const medicationList = ref([]);
const open = ref(false);
@@ -724,13 +690,15 @@ const ids = ref([]); // 存储选择的行数据
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const medicationOptions = ref(undefined);
const statusFlagOptions = ref(undefined);
const domainEnumOptions = ref(undefined);
const supplierListOptions = ref(undefined);
const statusWeatherOption = ref(undefined);
const statusRestrictedOptions = ref(undefined);
const currentCategoryEnum = ref("");
const partAttributeEnumOptions = ref(undefined);
const tempOrderSplitPropertyOptions = ref(undefined);
// 使用 ref 定义当前药品数据
const currentData = ref({});
// 使用 ref 定义当前查看药品数据
@@ -749,12 +717,7 @@ const data = reactive({
ybMatchFlag: undefined, // 是否医保匹配(包括 10
categoryCode: undefined, // 目录
},
rules: {
// name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
// conditionCode: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
},
rules: {},
});
const { queryParams, form, rules } = toRefs(data);
@@ -764,20 +727,20 @@ const filterNode = (value, data) => {
if (!value) return true;
return data.label.indexOf(value) !== -1;
};
// /** 根据名称筛选部门树 */
// watch(deptName, val => {
// proxy.$refs["deptTreeRef"].filter(val);
// });
/** 病种目录分类查询下拉树结构 */
function getMedicationCategoryList() {
getMedicationCategory().then((response) => {
console.log(response, "response药品目录分类查询下拉树结构");
medicationOptions.value = response.data.medicationCategoryCodeOptions;
medicationOptions.value = response.data.medicationCategoryCodeOptions.sort((a, b) => { return parseInt(a.value) - parseInt(b.value) });
statusFlagOptions.value = response.data.statusFlagOptions;
domainEnumOptions.value = response.data.domainFlagOptions;
supplierListOptions.value = response.data.supplierListOptions;
statusWeatherOption.value = response.data.statusWeatherOptions;
statusRestrictedOptions.value = response.data.statusRestrictedOptions;
partAttributeEnumOptions.value = response.data.partAttributeEnumOptions;
tempOrderSplitPropertyOptions.value =
response.data.tempOrderSplitPropertyEnumOptions;
});
}
/** 查询病种目录列表 */
@@ -794,6 +757,7 @@ function getList() {
/** 节点单击事件 */
function handleNodeClick(data) {
queryParams.value.categoryCode = data.value;
currentCategoryEnum.value = data.value;
handleQuery();
}
/** 搜索按钮操作 */
@@ -850,32 +814,11 @@ function handleSelectionChange(selection) {
multiple.value = !selection.length;
}
/** 下载模板操作 */
function importTemplate() {
proxy.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
}
/** 重置操作表单 */
function reset() {
form.value = {
id: undefined,
conditionCode: undefined,
pyStr: undefined,
status: undefined,
statusEnum: undefined,
};
proxy.resetForm("medicationRef");
}
/** 取消按钮 */
function cancel() {
open.value = false;
reset();
}
/** 打开新增弹窗 */
function openAddMedicine() {
if (!currentCategoryEnum.value) {
return proxy.$modal.msgError("请选择药品目录分类");
}
proxy.$refs["medicineRef"].show();
}
/** 打开编辑弹窗 */
@@ -883,19 +826,13 @@ function openEditMedicine(row) {
getMedicationOne(row.id).then((response) => {
console.log(response, "responsebbbb", row.id);
currentData.value = response.data;
// getList();
nextTick(() => {
proxy.$refs["medicineRef"].edit();
});
});
console.log(currentData.value, "currentData");
// 确保子组件已经接收到最新的 props
nextTick(() => {
proxy.$refs["medicineRef"].edit();
});
// proxy.$refs["medicineRef"].edit();
}
/** 打开查看弹窗 */
function openViewMedicine(row) {
// viewData.value = row;
reset();
getMedicationOne(row.id).then((response) => {
viewData.value = response.data;
nextTick(() => {
@@ -907,32 +844,7 @@ function openViewMedicine(row) {
/** 提交按钮 */
function submitForm(formData) {
formData.activeFlag == true
? (formData.activeFlag = 1)
: (formData.activeFlag = 0); //是否为活性
formData.ybMatchFlag == true
? (formData.ybMatchFlag = 1)
: (formData.ybMatchFlag = 0); //医保是否对码
formData.skinTestFlag == true
? (formData.skinTestFlag = 1)
: (formData.skinTestFlag = 0); //是否皮试
formData.injectFlag == true
? (formData.injectFlag = 1)
: (formData.injectFlag = 0); //是否为注射药物
formData.restrictedFlag == true
? (formData.restrictedFlag = 1)
: (formData.restrictedFlag = 0); //是否限制使用
formData.childrenFlag == true
? (formData.childrenFlag = 1)
: (formData.childrenFlag = 0); //儿童用药标志
formData.antibioticFlag == true
? (formData.antibioticFlag = 1)
: (formData.antibioticFlag = 0); //抗生素标志
formData.selfFlag == true
? (formData.selfFlag = 1)
: (formData.selfFlag = 0); //自制标志
formData.status == true ? (formData.status = 1) : (formData.status = 0); //启用状态
console.log(formData, "submitForm");
console.log(formData, "submitForm");
if (formData.id != undefined) {
editMedication(formData).then((response) => {
proxy.$modal.msgSuccess("修改成功");
@@ -948,16 +860,6 @@ console.log(formData, "submitForm");
}
}
/** 详细按钮操作 */
function handleView(row) {
reset();
open.value = true;
getMedicationOne(row.id).then((response) => {
console.log(response, "responsebbbb", row.id);
form.value = response.data;
// getList();
});
}
getMedicationCategoryList();
getList();
</script>

View File

@@ -339,6 +339,7 @@
highlight-current
default-expand-all
@node-click="handleNodeClick"
clearable
/>
</el-form-item>
</el-col>

View File

@@ -222,6 +222,7 @@
v-model="scope.row.itemId"
placeholder="请选择"
:class="{ 'error-border': scope.row.error }"
clearable
>
<el-option label="项目1" value="1" />
<el-option label="项目2" value="2" />
@@ -271,6 +272,7 @@
v-model="scope.row.unitCode"
placeholder="请选择计量单位"
:class="{ 'error-border': scope.row.error }"
clearable
>
<el-option label="单位1" value="1" />
<el-option label="单位2" value="2" />
@@ -297,6 +299,7 @@
v-model="scope.row.purposeLocationId"
placeholder="请选择仓库"
:class="{ 'error-border': scope.row.error }"
clearable
>
<el-option label="仓库1" value="1" />
<el-option label="仓库2" value="2" />
@@ -322,6 +325,7 @@
v-model="scope.row.purposeLocationStoreId"
placeholder="请选择货位"
:class="{ 'error-border': scope.row.error }"
clearable
>
<el-option label="货位1" value="1" />
<el-option label="货位2" value="2" />