Merge branch 'main' of ssh://git.jizhiweb.cn:2222/clinic-v2/web

This commit is contained in:
ChenQiuYu 2025-05-14 13:55:57 +08:00
commit ce0e355981
3 changed files with 99 additions and 38 deletions

View File

@ -72,7 +72,7 @@
</el-input-number>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="批准文号" v-if="_type==1301">
<el-descriptions-item label="批准文号" v-if="_type==1301 || _type==1306 || _type == 0">
<el-form-item lable="" prop="approvalCode" class="form-item">
<el-input v-model="edit_data.approvalCode" class="input">
</el-input>
@ -93,14 +93,14 @@
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="条形码">
<el-descriptions-item label="条形码" v-if="_type == 1301 || _type == 1302 || _type==0">
<el-form-item>
<el-input v-model="edit_data.barcode"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="规格" v-if="_type==1302||_type==1306||_type==0">
<el-form-item>
<el-input v-model="edit_data.medicineDosageNum" class="input">
<el-input v-model="edit_data.specification" class="input">
</el-input>
</el-form-item>
</el-descriptions-item>
@ -174,7 +174,7 @@
</el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="药品标识码">
<el-descriptions-item label="药品标识码" v-if="_type==1301">
<el-form-item>
<el-popover
:visible="showPopover"
@ -227,7 +227,7 @@
</el-descriptions-item>
</el-descriptions>
<el-descriptions title="扩展" border style="margin-top: 20px" direction="vertical">
<el-descriptions-item label="养护分类">
<el-descriptions-item label="养护分类" v-if="_type != 0">
<el-select
v-model="edit_data.extra.maintainCate"
placeholder="选择养护分类"
@ -242,10 +242,26 @@
/>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="储存条件">
<el-descriptions-item label="医疗器械分类" v-if="_type==1306">
<el-select
v-model="edit_data.extra.instrumentCategroy"
placeholder="选择医疗器械分类"
clearable
style="width: 240px"
>
<el-option
v-for="item in instrumentCategroyOptions"
:key="item.label"
:label="item.label"
:value="item.label"
/>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="储存条件" v-if="_type != 0">
<el-select
v-model="edit_data.extra.storageConditions"
placeholder="选择养护分类"
placeholder="选择储存条件"
clearable
style="width: 240px;"
>
@ -257,7 +273,7 @@
/>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="保质期">
<el-descriptions-item label="保质期" v-if="_type != 0">
<el-input v-model="edit_data.expiryTime" type="number">
<template #append></template>
</el-input>
@ -346,15 +362,10 @@
/>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="医疗器械分类" v-if="_type==1306">
<el-input v-model="edit_data.extra.instrumentCategroy"></el-input>
</el-descriptions-item>
<el-descriptions-item label="上市许可持有人">
<el-descriptions-item label="上市许可持有人" v-if="_type != 0">
<el-input v-model="edit_data.extra.authorizationMaster"></el-input>
</el-descriptions-item>
<el-descriptions-item label="批准文号有效期" v-if="_type==1306">
<el-input v-model="edit_data.extra.approvalNumberExpirDate"></el-input>
</el-descriptions-item>
</el-descriptions>
</el-form>
@ -401,9 +412,9 @@
</el-input>
</el-descriptions-item>
</el-descriptions>
<el-descriptions title="医保" border direction="vertical" :column="1" style="margin-left: 5px">
<el-descriptions title="医保" border direction="vertical" :column="1" style="margin-left: 5px" v-if="_type !=0">
<el-descriptions-item label="医保对码">
<SocialInfo v-model="edit_data.hilistCode" v-if="edit_data.hilistCode"
<SocialInfo v-model="edit_data.hilistCode"
@openSearch="openContrastCodeSearch"></SocialInfo>
</el-descriptions-item>
</el-descriptions>
@ -538,6 +549,18 @@ const storageConditionsOptions =
label: '密封',
}
]
const instrumentCategroyOptions = [
{
label: '一类',
},
{
label: '二类',
},
{
label: '三类',
}
]
const emit = defineEmits(['close'])
let edit_data: any = ref({
trdnFlag: false,
@ -546,6 +569,7 @@ let edit_data: any = ref({
packagingUnit: "盒",
pricingModel: 0,
expiryWarnDays: 0,
inventoryWarnNumber:0,
purchaseUnitPrice:1
});
const initEditData = () => {
@ -556,6 +580,7 @@ const initEditData = () => {
packagingUnit: "盒",
pricingModel: 0,
expiryWarnDays: 0,
inventoryWarnNumber:0,
purchaseUnitPrice:1
}
}
@ -622,15 +647,40 @@ const openCreateSearch = () => {
});
}
const createConfirm = (data: any) => {
edit_data.value.name = data.name
edit_data.value.approvalCode = data.approvalCode
edit_data.value.producer = data.producer
edit_data.value.packagingUnit = data.packagingUnit
edit_data.value.minPackagingNumber = data.minPackagingNumber
edit_data.value.minPackagingUnit = data.minPackagingUnit
edit_data.value.medicineDosageUnit = data.medicineDosageUnit
edit_data.value.medicineDosageNumber = data.medicineDosageNumber
edit_data.value.extra = data.extra
if (_type.value == 1301){
edit_data.value.name = data.name
edit_data.value.hilistCode = data.hilistCode
edit_data.value.approvalCode = data.approvalCode
edit_data.value.producer = data.producer
edit_data.value.packagingUnit = data.packagingUnit
edit_data.value.minPackagingNumber = data.minPackagingNumber
edit_data.value.minPackagingUnit = data.minPackagingUnit
edit_data.value.medicineDosageUnit = data.medicineDosageUnit
edit_data.value.medicineDosageNumber = data.medicineDosageNumber
edit_data.value.extra = data.extra
}
else if (_type.value == 1302){
edit_data.value.name = data.name
edit_data.value.hilistCode = data.hilistCode
edit_data.value.commonName = data.commonName
edit_data.value.packagingUnit = "g"
edit_data.value.minPackagingNumber = 1
edit_data.value.minPackagingUnit = "g"
}
else if (_type.value == 1306){
edit_data.value.name = data.name
edit_data.value.hilistCode = data.hilistCode
edit_data.value.commonName = data.commonName
edit_data.value.approvalCode = data.approvalCode
edit_data.value.producer = data.producer
edit_data.value.specification = data.specification
edit_data.value.packagingUnit = data.packagingUnit
edit_data.value.minPackagingUnit = data.minPackagingUnit
edit_data.value.medicineDosageUnit = data.medicineDosageUnit
edit_data.value.medicineDosageNumber = data.medicineDosageNumber
}
}
const contrastCodeSearch = ref()
const openContrastCodeSearch = () => {

View File

@ -1,5 +1,5 @@
<template>
<Mask :width="800" :height="720" :is-show="show" @close="show=false" title="药品" :show-footer="true">
<Mask :width="800" :height="720" :is-show="show" @close="show=false" title="药品" :show-footer="true">
<div class="search_content_wrapper">
<div class="search_wrapper">
<span>药品名称:</span>
@ -17,13 +17,17 @@
<el-table v-loading="isloading" :data="search_result.list" style="width: 100%"
highlight-current-row
@current-change="change_current_search_data_index"
@row-dblclick = confirm
@row-dblclick=confirm
:row-class-name="tableRowClassName">
<el-table-column prop="name" label="名称" fixed width="180" show-overflow-tooltip/>
<el-table-column :prop="type==1306?'json.reg_number' : 'json.approval_number'" fixed label="国药准字" width="180" v-if="type==1301 || type==1306" show-overflow-tooltip/>
<el-table-column :prop="type==1306?'json.reg_number' : 'json.approval_number'" fixed label="国药准字"
width="180" v-if="type==1301 || type==1306" show-overflow-tooltip/>
<el-table-column v-if="type==1301" prop="json.reg_specifications" label="注册规格" width="120"
show-overflow-tooltip/>
<el-table-column prop="producer" label="生产企业" width="200" v-if="type==1301 || type==1306" show-overflow-tooltip/>
<el-table-column v-if="type==1306" prop="json.specification" label="规格" width="120"
show-overflow-tooltip/>
<el-table-column prop="producer" label="生产企业" width="200" v-if="type==1301 || type==1306"
show-overflow-tooltip/>
<el-table-column v-if="type==1301" prop="json.min_packaging_unit" label="包装单位" width="80"
show-overflow-tooltip/>
@ -66,7 +70,7 @@ const show = ref(false);
const emit = defineEmits(["confirm"])
let search_result = ref({
let search_result = ref<any>({
total_page: 0,
list: [],
page: 1,
@ -91,7 +95,8 @@ const init = (_type: number, _name: string) => {
type.value = _type;
keyword.value = _name;
show.value = true;
if (keyword.value && keyword.value != ""){
search_result.value = {}
if (keyword.value && keyword.value != "") {
search_social()
}
@ -115,12 +120,13 @@ let confirm = () => {
id: null,
type: null,
name: jsondata?.name,
commonName: jsondata?.common_name,
commonName: jsondata?.common_name || jsondata?.herbal_name,
hilistCode: jsondata.code,
unitPrice: null,
purchaseUnitPrice: null,
producer: jsondata.producer,
barcode: null,
specification: jsondata.reg_specifications || jsondata.specification,
minPackagingNumber: jsondata.min_packaging_number,
packagingUnit: jsondata.min_packaging_unit,
minPackagingUnit: jsondata.min_preparation_unit,
@ -174,7 +180,7 @@ let search_social = () => {
}
const close = () => {
show.value = false;
keyword.value=''
keyword.value = ''
}
</script>
<style scoped lang="scss">

View File

@ -13,22 +13,25 @@
<div>
{{ hilistInfo.code }}
</div>
<div>
<div v-if="hilistInfo.type ==1301">
{{ hilistInfo.producer }}
</div>
<div>
<div v-if="hilistInfo.type ==1301">
{{ hilistInfo.json?.approval_number }}
</div>
<div>
<div v-if="hilistInfo.type ==1301">
规格{{ hilistInfo.json?.dosage_specifications }}
</div>
<div v-if="hilistInfo.type ==1306">
规格{{ hilistInfo.json?.specifications }}
</div>
<div>
限价{{ hilistInfo.hilistPricUplmtAmt ? hilistInfo.hilistPricUplmtAmt : '无' }}
</div>
<div>
限价类型{{ hilistInfo.hilistLmtpricType ? hilistInfo.hilistLmtpricType : '无' }}
</div>
<div>
<div v-if="hilistInfo.type ==1301">
本位码{{ hilistInfo.json?.standard_code }}
</div>
</div>
@ -39,6 +42,7 @@ import {onMounted, ref, watch} from "vue";
import {post} from "@/utils/request.ts";
interface HilistInfo {
type?: number;
name?: string;
producer?: string;
code?: string;
@ -47,6 +51,7 @@ interface HilistInfo {
approval_number?: string;
dosage_specifications?: string;
standard_code?: string;
specifications?:string;
};
hilistPricUplmtAmt?: string | number;
hilistLmtpricType?: string;