Compare commits

..

4 Commits

11 changed files with 187 additions and 46 deletions

View File

@ -17,15 +17,22 @@ export enum apiConfig{
*
*/
"OrganizationMemberSave"="organization/member/save",//添加 编辑成员信息
"organizationMemberSearch"="organization/member/search",//搜索成员
"OrganizationMemberSearch"="organization/member/search",//搜索成员
"OrganizationSectionAllList"="organization/section/allList",//获取所有科室列表
"OrganizationSectionListByMemberId"="organization/section/listByMemberId",//获取当前成员所属科室列表
"OrganizationMemberListBySectionId"="organization/member/listBySectionId",//获取当前科室的所有医生列表
/**
*
*/
"GoodsDisableSale"="goods/goods/disableSale",
"GoodsEnableSale"="goods/goods/enableSale",
/**
*
*/
"ChargeListChargeLog"="charge/listChargeLog",//查询收费记录
"recordGetChargeQueue"="medical/record/getChargeQueue"//查询收费记录
"RecordGetChargeQueue"="medical/record/getChargeQueue"//查询收费记录
}

View File

@ -108,7 +108,7 @@ const init = async () => {
query.value.endTime = getEndOfDay(selectedDate.value)
loading.value = true
try {
let data: any = await post(apiConfig.recordGetChargeQueue, {query: query.value}, {catch_error: true})
let data: any = await post(apiConfig.RecordGetChargeQueue, {query: query.value}, {catch_error: true})
ChargeQueueList.value = data.list
}
catch {

View File

@ -216,7 +216,6 @@ const getUserInfo = () => {
const detail = (id: any) => {
isShow.value = true
post("inventory/apply/getApplyDetail", {id}).then((res: any) => {
formData.value = res.useInfo;
tableList.value = JSON.parse(res);
})
}

View File

@ -123,6 +123,11 @@ const saveDo = async () => {
}
const init = () => {
isShow.value = true
getCateList()
}
defineExpose({init})
const save = () => {
saveDo()
close()

View File

@ -21,6 +21,11 @@
<el-input v-model="edit_data.name"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="通用名">
<el-form-item label="" prop="commonName" class="form-item">
<el-input v-model="edit_data.commonName"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="类型" style="display: flex">
<el-form-item label="" prop="cateId" class="form-item">
<el-select v-model="edit_data.cateId" placeholder="请选择" style="width: 70%">
@ -31,7 +36,7 @@
:value="item.id">
</el-option>
</el-select>
<el-button @click="showCateEdit(true)">
<el-button @click="showCateEdit">
<el-icon>
<Setting/>
</el-icon>
@ -54,6 +59,25 @@
/>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="效期预警(天)">
<el-form-item lable="" prop="expiryWarnDays" class="form-item">
<el-input-number v-model="edit_data.expiryWarnDays" class="input" style="width: 100%;" :min="0">
</el-input-number>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="库存预警">
<el-form-item lable="" prop="inventoryWarnNumber" class="form-item">
<el-input-number v-model="edit_data.inventoryWarnNumber" class="input" style="width: 100%;"
:min="0">
</el-input-number>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="批准文号" v-if="_type==1301">
<el-form-item lable="" prop="approvalCode" class="form-item">
<el-input v-model="edit_data.approvalCode" class="input">
</el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="批准文号" v-if="_type==1301">
<el-form-item lable="" prop="approvalCode" class="form-item">
<el-input v-model="edit_data.approvalCode" class="input">
@ -275,8 +299,20 @@
/>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="精麻毒放" v-if="_type==1301">
<el-input v-model="edit_data.extra.JMDF"></el-input>
<el-descriptions-item label="精麻毒放|麻黄碱" v-if="_type==1301">
<el-select
v-model="edit_data.extra.JMDF"
placeholder="选择精麻毒放|麻黄碱"
clearable
style="width: 240px"
>
<el-option
v-for="item in JMDFList"
:key="item.label"
:label="item.label"
:value="item.label"
/>
</el-select>
</el-descriptions-item>
<el-descriptions-item label="抗菌药物" v-if="_type==1301">
<el-input v-model="edit_data.extra.isAntibacterialAgents"></el-input>
@ -354,6 +390,8 @@
<template #footer>
<div class="footer">
<el-button @click="returnInit" type="primary" v-if="edit_data.id != null">医保库存重新初始化</el-button>
<el-button v-if="edit_data.saleStatus" type="danger" @click="disableSale">停售</el-button>
<el-button v-else type="danger" @click="enableSale">起售</el-button>
<el-button @click="save" type="primary">保存</el-button>
<el-button @click="exit" plain>关闭</el-button>
</div>
@ -362,12 +400,13 @@
<!-- 新增关闭按钮 -->
<Search ref="createSearchRef" @confirm="createConfirm"/>
<Search ref="contrastCodeSearch" @confirm="contrastCodeConfirm"/>
<Cate :type="_type" @close="cateCloseCallBack"/>
<Cate :type="_type" @close="cateCloseCallBack" ref="cateRef" />
</template>
<script setup lang="ts">
import {nextTick, ref, watch} from "vue";
import {dosageUnitList, packagingUnit} from "@/utils/unitList.ts"
import {Setting,Close} from "@element-plus/icons-vue";
import Mask from "@/components/common/Mask.vue";
import Search from "@/components/inventory/goods/Search.vue";
import {post} from "@/utils/request.ts";
@ -376,11 +415,11 @@ import {ElMessage, ElMessageBox} from "element-plus";
import Divider from "@/components/Divider.vue";
import UnitSelector from "@/components/inventory/UnitSelector.vue";
import SocialInfo from "@/components/inventory/goods/SocialInfo.vue";
import {apiConfig} from "@/assets/config/apiConfig.ts";
let _type = ref(0);
let type = ref(0);
let show_cate = ref(false)
const isShow = ref<any>(false)
const imported = [{
label: '进口',
@ -394,6 +433,26 @@ const pricingModelOptions = [
value: 0,
}
]
const JMDFList = [
{
label: '精I',
},
{
label: '精II',
},
{
label: '麻',
},
{
label: '毒',
},
{
label: '放',
},
{
label: '麻黄碱',
}
]
const maintainOptions = [
{
label: '一般养护',
@ -432,7 +491,14 @@ const storageConditionsOptions =
}
]
const emit = defineEmits(['close'])
let edit_data: any = ref({trdnFlag: false, extra: {}, minPackagingUnit: "只", packagingUnit: "盒", pricingModel: 0});
let edit_data: any = ref({
trdnFlag: false,
extra: {},
minPackagingUnit: "只",
packagingUnit: "盒",
pricingModel: 0,
expiryWarnDays: 0,
});
const idCode = ref("");
const showPopover = ref(false);
const idCodeList = ref<string[]>([]);
@ -533,11 +599,11 @@ const getCateList = () => {
cate_list.value = res
})
}
const showCateEdit = (is_show: boolean) => {
show_cate.value = is_show
const cateRef = ref()
const showCateEdit = () => {
cateRef.value.init(cate_list.value)
}
const cateCloseCallBack = () => {
show_cate.value = false
getCateList()
}
let exit = () => {
@ -629,6 +695,37 @@ const drugCategoryOptions = [
value: 1304
}
]
const disableSale = () => {
ElMessageBox.confirm(
`确定要下架该商品吗?`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
post(apiConfig.GoodsDisableSale, {id: edit_data.value.id}).then((res: any) => {
ElMessage.success("下架成功")
exit()
})
})
}
const enableSale = () => {
ElMessageBox.confirm(
`确定要起售该商品吗?`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
post(apiConfig.GoodsEnableSale, {id: edit_data.value.id}).then((res: any) => {
ElMessage.success("启用成功")
exit()
})
})
}
</script>
<style scoped lang="scss">
.header {

View File

@ -18,8 +18,8 @@
highlight-current-row @current-change="change_current_search_data_index"
:row-class-name="tableRowClassName">
<el-table-column prop="name" label="名称" fixed width="180" show-overflow-tooltip/>
<el-table-column prop="json.approval_number" fixed label="国药准字" width="180" show-overflow-tooltip/>
<el-table-column prop="producer" label="生产企业" 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="producer" 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="80"
show-overflow-tooltip/>
<el-table-column v-if="type==1301" prop="json.min_packaging_unit" label="包装单位" width="80"
@ -88,6 +88,10 @@ const init = (_type: number, _name: string) => {
type.value = _type;
keyword.value = _name;
show.value = true;
if (keyword.value && keyword.value != ""){
search_social()
}
};
defineExpose({init});

View File

@ -277,7 +277,14 @@ let confirm = async () => {
ElMessage.error('请至少添加一个采购药品')
return
}
//
for (let i = 0; i < table_list.value.length; i++) {
debugger
if (!table_list.value[i].productionBatchCode) {
ElMessage.error('生产批号不能为空')
return
}
}
//
for (let i = 0; i < table_list.value.length; i++) {
if (!checkProductionDate(table_list.value[i])) {

View File

@ -199,7 +199,7 @@ const cardTypeList = ref<any>(Object.entries(psnCertTypes).map(([id, name]) => (
const doctorList = ref<any>([])
const sectionDoctorOption = ref<any>('')
const list = () => {
post(apiConfig.organizationMemberSearch, {query: {role: 1}}).then((res: any) => {
post(apiConfig.OrganizationMemberSearch, {query: {role: 1}}).then((res: any) => {
doctorList.value = res
})
}

View File

@ -75,34 +75,62 @@
</div>
<div class="content_goods" ref="content">
<el-table :data="tableData" style="width: 100%;height: 100%;padding: 0 24px" @row-click="openMack">
<el-table-column fixed prop="name" label="名称" width="200" show-overflow-tooltip/>
<el-table-column fixed label="类型" width="200">
<el-table-column fixed prop="name" label="名称" width="200" show-overflow-tooltip>
<template #default="scope">
{{ getTypeName(scope.row.type) }}<span v-if="scope.row.cateName">/{{ scope.row.cateName }}</span>
{{scope.row.name}}{{scope.row.commonName?"("+scope.row.commonName+")":""}}
</template>
</el-table-column>
<el-table-column fixed label="规格" show-overflow-tooltip>
<el-table-column fixed label="规格" show-overflow-tooltip width="100">
<template #default="scope">
{{ scope.row.minPackagingNumber }}*{{ scope.row.minPackagingUnit }}/{{ scope.row.packagingUnit }}
</template>
</el-table-column>
<el-table-column fixed label="厂家" prop="producer" width="230" show-overflow-tooltip/>
<el-table-column fixed label="进价" width="120">
<el-table-column fixed label="批准文号" width="200">
<template #default="scope">
{{ scope.row.purchaseUnitPrice.toFixed(2) }}
{{ scope.row.approvalCode }}
</template>
</el-table-column>
<el-table-column fixed label="售价" width="120">
<el-table-column fixed label="厂家" prop="producer" width="230" show-overflow-tooltip/>
<el-table-column fixed label="售价" width="120" >
<template #default="scope">
{{ scope.row.unitPrice.toFixed(2) }}
</template>
</el-table-column>
<el-table-column label="标签" prop="producer" width="200">
<el-table-column label="类型" width="200">
<template #default="scope">
<el-tag class="tags" type="success" v-for="item in getTagsArray(scope.row.tags)">{{ item }}</el-tag>
{{ getTypeName(scope.row.type) }}<span v-if="scope.row.cateName">/{{ scope.row.cateName }}</span>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="150"/>
<el-table-column label="库存数量" width="150">
<template #default="scope">
{{ scope.row.inventoryWholeNumber }}{{ scope.row.packagingUnit }}
<template v-if="scope.row.inventoryFragmentNumber > 0">
{{ scope.row.inventoryFragmentNumber }}{{ scope.row.minPackagingUnit }}
</template>
</template>
</el-table-column>
<el-table-column label="可售库存" width="150">
<template #default="scope">
{{ scope.row.inventoryWholeNumber }}{{ scope.row.packagingUnit }}
<template v-if="scope.row.inventoryFragmentNumber > 0">
{{ scope.row.inventoryFragmentNumber }}{{ scope.row.minPackagingUnit }}
</template>
</template>
</el-table-column>
<el-table-column label="最近效期" prop="recentlyExpiryDate" width="100"></el-table-column>
<el-table-column label="进价" width="120">
<template #default="scope">
{{ scope.row.purchaseUnitPrice.toFixed(2) }}
</template>
</el-table-column>
<el-table-column label="医保类别" width="80">
<template #default="scope">
{{ scope.row.chrgitmLv}}
</template>
</el-table-column>
<el-table-column label="利润分类" width="100">
<template #default="scope">
{{ getProfitCategory(scope.row.interestRate) }}
@ -114,31 +142,23 @@
</template>
</el-table-column>
<el-table-column label="库存" width="120">
<template #default="scope">
{{ scope.row.inventoryWholeNumber }}{{ scope.row.packagingUnit }}
<template v-if="scope.row.inventoryFragmentNumber > 0">
{{ scope.row.inventoryFragmentNumber }}{{ scope.row.minPackagingUnit }}
</template>
</template>
</el-table-column>
<el-table-column label="最近效期" prop="recentlyExpiryDate" show-overflow-tooltip></el-table-column>
<el-table-column label="可售库存">
<el-table-column label="标签" prop="producer" width="200">
<template #default="scope">
{{ scope.row.inventoryWholeNumber }}{{ scope.row.packagingUnit }}
<template v-if="scope.row.inventoryFragmentNumber > 0">
{{ scope.row.inventoryFragmentNumber }}{{ scope.row.minPackagingUnit }}
</template>
<el-tag class="tags" type="success" v-for="item in getTagsArray(scope.row.tags)">{{ item }}</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="150"/>
<el-table-column label="药品成本" prop="costPrice" show-overflow-tooltip>
<template #default="scope">
{{ scope.row.costPrice.toFixed(2) }}
</template>
</el-table-column>
<el-table-column label="医保码" prop="hilistCode" show-overflow-tooltip></el-table-column>
<el-table-column fixed label="医保类别">
<el-table-column label="医保类别">
<template #default="scope">
{{ getTypeName(scope.row.type) }}
</template>

View File

@ -92,7 +92,7 @@ const initDoctor = () => {
keyword: keyword.value,
role: 1
}
post(apiConfig.organizationMemberSearch, {query: query}).then((res: any) => {
post(apiConfig.OrganizationMemberSearch, {query: query}).then((res: any) => {
roleList.value = res
})
}

View File

@ -68,10 +68,12 @@ const detailsDo = (row: any) => {
let data = {...row};
data.beginTime = selectDate.value[0];
data.endTime = selectDate.value[1];
// post("social/reconciliation/detailDo", {data: data})
post("social/reconciliation/testDetailDo", {data: data}).then((res: any) => {
post("social/reconciliation/detailDo", {data: data}).then((res: any) => {
openDetailList(res)
})
// post("social/reconciliation/testDetailDo", {data: data}).then((res: any) => {
// openDetailList(res)
// })
}
const detailListRef = ref();