前端最新版本同步

This commit is contained in:
Zhang.WH
2025-09-25 10:36:07 +08:00
parent a3a06d6f3c
commit 1276dc4adb
117 changed files with 11964 additions and 2466 deletions

View File

@@ -0,0 +1,59 @@
import request from '@/utils/request'
export function listPatient(query) {
return request({
url: '/pharmacy-manage/western-medicine-dispense/encounter-list',
method: 'get',
params: query
})
}
export function listInit(query) {
return request({
url: '/pharmacy-manage/western-medicine-dispense/init',
method: 'get',
params: query
})
}
export function listWesternmedicine(query) {
return request({
url: '/pharmacy-manage/western-medicine-dispense/prescription-list',
method: 'get',
params: query
})
}
export function updateMedicion(prescriptionList) {
return request({
url: '/pharmacy-manage/western-medicine-dispense/medicine-dispense',
method: 'put',
data: prescriptionList
})
}
export function prepareMedicion(data) {
return request({
url: '/pharmacy-manage/western-medicine-dispense/prepare',
method: 'put',
data: data
})
}
export function backMedicion(prescriptionNo,notPerformedReasonEnum) {
return request({
url: '/pharmacy-manage/western-medicine-dispense/medicine-cancel',
method: 'put',
params: {
prescriptionNo: prescriptionNo,
notPerformedReasonEnum:notPerformedReasonEnum
}
})
}
//扫码枪返回追溯码筛选
export function itemTraceNo(params) {
return request({
url: '/app-common/item-trace-no?traceNoList=' + params,
method: 'get',
})
}

View File

@@ -0,0 +1,617 @@
{
"panels": [
{
"index": 1,
"name": 2,
"paperType": "A5",
"height": 210,
"width": 148,
"paperHeader": 6,
"paperFooter": 595.2755905511812,
"printElements": [
{
"options": {
"left": 150,
"top": 16.5,
"height": 22.5,
"width": 120,
"title": "医院",
"coordinateSync": false,
"widthHeightSync": false,
"fontFamily": "Microsoft YaHei",
"fontSize": 18,
"textAlign": "center",
"textContentVerticalAlign": "middle",
"qrCodeLevel": 0
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 187.5,
"top": 54,
"height": 10.5,
"width": 43.5,
"title": "处方签",
"coordinateSync": false,
"widthHeightSync": false,
"fontSize": 13.5,
"textAlign": "justify",
"qrCodeLevel": 0
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 34.5,
"top": 76.5,
"height": 12,
"width": 171,
"title": "医保编号:",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 252,
"top": 76.5,
"height": 10.5,
"width": 163.5,
"title": "就诊类型:",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 252,
"top": 93,
"height": 12,
"width": 163.5,
"title": "费用性质",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "contractName"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 34.5,
"top": 94.5,
"height": 12,
"width": 171,
"title": "处方编号",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "prescriptionNo"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 28.5,
"top": 112.5,
"height": 9,
"width": 387,
"borderWidth": "1.5",
"coordinateSync": false,
"widthHeightSync": false
},
"printElementType": {
"title": "横线",
"type": "hline"
}
},
{
"options": {
"left": 195,
"top": 121.5,
"height": 12,
"width": 63,
"title": "性别",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "genderEnum_enumText"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 294,
"top": 121.5,
"height": 12,
"width": 79.5,
"title": "年龄",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "age"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 36,
"top": 123,
"height": 12,
"width": 133.5,
"title": "姓名",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "patientName"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 36,
"top": 141,
"height": 12,
"width": 192,
"title": "门诊号",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "encounterId"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 295.5,
"top": 142.5,
"height": 12,
"width": 124.5,
"title": "科室",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "organizationName"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 36,
"top": 160.5,
"height": 12,
"width": 384,
"title": "临床诊断",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "conditionName"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 36,
"top": 178.5,
"height": 12,
"width": 124.5,
"title": "电话",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "phone"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 228,
"top": 178.5,
"height": 12,
"width": 189,
"title": "开具日期",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "reqAuthoredTime"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 30,
"top": 195,
"height": 9,
"width": 387,
"borderWidth": "1.5",
"coordinateSync": false,
"widthHeightSync": false
},
"printElementType": {
"title": "横线",
"type": "hline"
}
},
{
"options": {
"left": 30,
"top": 201,
"height": 13.5,
"width": 19.5,
"title": "Rp",
"coordinateSync": false,
"widthHeightSync": false,
"fontSize": 9,
"fontWeight": "500",
"qrCodeLevel": 0
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 25.5,
"top": 225,
"height": 229.5,
"width": 381,
"field": "prescriptionList",
"coordinateSync": false,
"widthHeightSync": false,
"tableBorder": "noBorder",
"tableHeaderBorder": "noBorder",
"tableHeaderCellBorder": "noBorder",
"tableHeaderBackground": "#ffffff",
"tableBodyRowBorder": "noBorder",
"tableBodyCellBorder": "noBorder",
"tableFooterBorder": "noBorder",
"tableFooterCellBorder": "noBorder",
"lHeight": 180,
"groupFieldsFormatter": "function(type,options,data){ return ['medicineName'] }",
"tableBodyRowHeight": 15,
"columns": [
[
{
"title": "名称",
"titleSync": false,
"vAlign": "top",
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"renderFormatter": "function(value,row,colIndex,options,rowIndex){ return value + '<br/>' + '用法用量'; }",
"styler2": "function(value,row,index,options){ return {padding: '5px 5px' }; }",
"width": 86.5148548770295,
"field": "medicineName",
"checked": true,
"columnId": "medicineName",
"fixed": false,
"rowspan": 1,
"colspan": 1
},
{
"title": "规格",
"titleSync": false,
"vAlign": "top",
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"renderFormatter": "function(value,row,colIndex,options,rowIndex){ return value + '<br/>'+ '每次:' + row.dose + row.doseUnitCode_dictText + ' ' + row.methodCode_dictText; }",
"styler2": "function(value,row,index,options){ return {padding: '5px 5px' }; }",
"width": 87.49337048145199,
"field": "totalVolume",
"checked": true,
"columnId": "totalVolume",
"fixed": false,
"rowspan": 1,
"colspan": 1
},
{
"title": "单价",
"titleSync": false,
"vAlign": "top",
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"renderFormatter": "function(value,row,colIndex,options,rowIndex){ return value + '<br/>' + '' }",
"styler2": "function(value,row,index,options){ return {padding: '5px 5px' }; }",
"width": 42.00221340893656,
"field": "unitPrice",
"checked": true,
"columnId": "unitPrice",
"fixed": false,
"rowspan": 1,
"colspan": 1
},
{
"title": "数量",
"titleSync": false,
"vAlign": "top",
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"renderFormatter": "function(value,row,colIndex,options,rowIndex){ return value + ' ' + row.unitCode_dictText + '<br/>' + '' }",
"styler2": "function(value,row,index,options){ return {padding: '5px 5px' }; }",
"width": 56.015045170547694,
"field": "quantity",
"checked": true,
"columnId": "quantity",
"fixed": false,
"rowspan": 1,
"colspan": 1
},
{
"title": "金额",
"titleSync": false,
"vAlign": "top",
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"renderFormatter": "function(value,row,colIndex,options,rowIndex){ return value + '<br/>' + '' }",
"styler2": "function(value,row,index,options){ return {padding: '5px 5px' }; }",
"width": 52.006536852055035,
"field": "totalPrice",
"checked": true,
"columnId": "totalPrice",
"fixed": false,
"rowspan": 1,
"colspan": 1
},
{
"title": "等级",
"titleSync": false,
"vAlign": "top",
"tableQRCodeLevel": 0,
"tableSummaryTitle": true,
"tableSummary": "",
"renderFormatter": "function(value,row,colIndex,options,rowIndex){ return value + '<br/>' + row.rateCode_dictText }",
"styler2": "function(value,row,index,options){ return {padding: '5px 5px' }; }",
"width": 56.96797920997919,
"field": "contractName",
"checked": true,
"columnId": "contractName",
"fixed": false,
"rowspan": 1,
"colspan": 1
},
{
"title": "等级",
"width": 79.2099792099792,
"checked": false,
"fixed": false,
"rowspan": 1,
"colspan": 1
}
]
]
},
"printElementType": {
"title": "表格",
"type": "table",
"editable": true,
"columnDisplayEditable": true,
"columnDisplayIndexEditable": true,
"columnTitleEditable": true,
"columnResizable": true,
"columnAlignEditable": true,
"isEnableEditField": true,
"isEnableContextMenu": true,
"isEnableInsertRow": true,
"isEnableDeleteRow": true,
"isEnableInsertColumn": true,
"isEnableDeleteColumn": true,
"isEnableMergeCell": true
}
},
{
"options": {
"left": 30,
"top": 520.5,
"height": 12,
"width": 79.5,
"title": "医师",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9,
"field": "doctor"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 126,
"top": 520.5,
"height": 12,
"width": 79.5,
"title": "发药:高艳敏",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 228,
"top": 520.5,
"height": 12,
"width": 79.5,
"title": "划价:张思怡",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 324,
"top": 520.5,
"height": 12,
"width": 79.5,
"title": "调配:宋丹丹",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0,
"fontSize": 9
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 30,
"top": 540,
"height": 9,
"width": 387,
"borderWidth": "1.5",
"coordinateSync": false,
"widthHeightSync": false
},
"printElementType": {
"title": "横线",
"type": "hline"
}
},
{
"options": {
"left": 30,
"top": 547.5,
"height": 9.75,
"width": 120,
"title": "注1.本处方当日作废"
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 300,
"top": 553.5,
"height": 9.75,
"width": 120,
"title": "总金额",
"field": "medTotalAmount",
"coordinateSync": false,
"widthHeightSync": false,
"qrCodeLevel": 0
},
"printElementType": {
"title": "文本",
"type": "text"
}
},
{
"options": {
"left": 48,
"top": 567,
"height": 9.75,
"width": 120,
"title": "2.延长处方用量时间原因"
},
"printElementType": {
"title": "文本",
"type": "text"
}
}
],
"paperNumberDisabled": true,
"paperNumberContinue": true,
"overPrintOptions": {
"content": "",
"opacity": 0.7,
"type": 1
},
"watermarkOptions": {
"content": "",
"fillStyle": "rgba(184, 184, 184, 0.3)",
"fontSize": "14px",
"rotate": 25,
"width": 200,
"height": 200,
"timestamp": false,
"format": "YYYY-MM-DD HH:mm"
},
"panelLayoutOptions": {
"layoutType": "column",
"layoutRowGap": 0,
"layoutColumnGap": 0
}
}
]
}

View File

@@ -0,0 +1,275 @@
<template>
<div class="inHospitalDispensing-container">
<div class="inHospitalDispensing-container-top">
<el-space>
<el-radio-group v-model="searchForm.status" @change="search">
<el-radio-button label="待发药" value="1" />
<el-radio-button label="待退药" value="2" />
</el-radio-group>
<el-select v-model="searchForm.window" placeholder="窗口" style="width: 240px">
<el-option key="0" label="住院西药房" value="0"/>
<el-option key="1" label="住院东药房" value="1"/>
<el-option key="2" label="住院北药房" value="2"/>
<el-option key="3" label="住院南药房" value="3"/>
</el-select>
<el-select v-model="searchForm.type" placeholder="医嘱类型" style="width: 240px">
<el-option key="0" label="全部" value="0"/>
<el-option key="1" label="长期" value="1"/>
<el-option key="2" label="临时" value="2"/>
</el-select>
<el-date-picker
v-model="searchForm.dateRange"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
<el-button type="primary" @click="handleSearch">查询</el-button>
</el-space>
</div>
<div class="inHospitalDispensing-container-bottom">
<div class="inHospitalDispensing-container-bottom-left">
<el-tree
ref="treeRef"
style="max-width: 600px"
default-expand-all
:data="treedata"
show-checkbox
node-key="id"
@node-click="handleNodeClick"
/>
</div>
<div class="inHospitalDispensing-container-bottom-right">
<div class="inHospitalDispensing-container-bottom-right-top">
<el-radio-group v-model="isAll">
<el-radio-button label="汇总" value="1" />
<el-radio-button label="明细" value="2" />
</el-radio-group>
<el-button type="primary" @click="handleSearch">发药</el-button>
</div>
<div class="inHospitalDispensing-container-bottom-right-bottom">
<el-table :data="tableData" style="width: 100% " height="100%" v-if="isAll==1">
<el-table-column prop="drugGoodsName" label="名称" width="180" />
<el-table-column prop="drugSpec" label="规格" width="180" />
<el-table-column prop="drugSpec" label="总量" width="180" />
<el-table-column prop="stockPlaceName" label="位置" width="180" />
<el-table-column prop="manufactureName" label="厂家" width="180" />
<el-table-column prop="drugGoodsCode" label="编码" width="180" />
<el-table-column prop="drugFormName" label="剂型" width="180" />
<el-table-column prop="packageNum" label="包装数量" width="180" />
<el-table-column prop="maxUnit" label="包装单位" width="180" />
</el-table>
<el-table :data="tableDataDetails" style="width: 100%" height="100%" v-if="isAll==2">
<el-table-column prop="receiveOrgName" label="科室" width="180" />
<el-table-column prop="patBed" label="床号" width="180" />
<el-table-column prop="patName" label="姓名" width="180" />
<el-table-column prop="drugGoodsName" label="名称" width="180" />
<el-table-column prop="drugSpec" label="规格" width="180" />
<el-table-column prop="applyNumStr" label="数量" width="180" />
<el-table-column prop="manufactureName" label="厂家" width="180" />
<el-table-column prop="dosageAndUnit" label="每次剂量" width="180" />
<el-table-column prop="usageName" label="用法" width="180" />
<el-table-column prop="salePrice" label="单价" width="180" />
<el-table-column prop="salePriceAmount" label="金额" width="180" />
<el-table-column prop="stockPlaceName" label="位置" width="180" />
<el-table-column prop="drugGoodsCode" label="编码" width="180" />
<el-table-column prop="drugFormName" label="剂型" width="180" />
<el-table-column prop="packageNum" label="包装数量" width="180" />
<el-table-column prop="maxUnit" label="包装单位" width="180" />
<el-table-column prop="purchasePrice" label="购入价" width="180" />
</el-table>
</div>
</div>
</div>
</div>
</template>
<script setup lang='ts'>
import { is } from 'core-js/core/object'
import { getCurrentInstance, onBeforeMount, onMounted, reactive,ref } from 'vue'
// const { proxy } = getCurrentInstance();
const emits = defineEmits([])
const props = defineProps({
})
const state = reactive({
})
// 1111
const searchForm=reactive({
status:'1',
type: '0',
dateRange: [new Date(), new Date()],
window: '0',
})
const handleSearch = () => {
console.log(searchForm)
treedata.value = [{
label: '内科',
id: 1,
children: [
{
label: '唐僧',
id: 11
},
],
}]
tableDataDetails.value=[ {
patName: '唐僧',
patBed: '1-3',
receiveOrgName: '心内科',
drugGoodsName: '维生素E软胶囊',
drugSpec: '50mg*60粒/瓶',
applyNumStr: '1瓶',
manufactureName: '浙江医药股份有限公司新昌制药厂',
dosage: '50',
dosageUnitName: 'mg',
usageName: '口服',
salePrice: 19,
salePriceAmount: 19.0000,
stockPlaceName: null,
drugGoodsCode: '331408',
drugFormName: '软胶囊',
packageNum: 60,
maxUnit: '瓶',
purchasePrice: 19,
}
]
tableData.value=[ {
patName: '唐僧',
patBed: '1-3',
receiveOrgName: '心内科',
drugGoodsName: '维生素E软胶囊',
drugSpec: '50mg*60粒/瓶',
applyNumStr: '1瓶',
manufactureName: '浙江医药股份有限公司新昌制药厂',
dosage: '50',
dosageUnitName: 'mg',
usageName: '口服',
salePrice: 19,
salePriceAmount: 19.0000,
stockPlaceName: null,
drugGoodsCode: '331408',
drugFormName: '软胶囊',
packageNum: 60,
maxUnit: '瓶',
purchasePrice: 19,
}, {
patName: '唐僧',
patBed: '1-3',
receiveOrgName: '心内科',
drugGoodsName: '5%葡萄糖注射液(直立式聚丙烯)',
drugSpec: '5%*50ml/瓶',
applyNumStr: '2瓶',
manufactureName: '湖南科伦制药有限公司',
dosage: '50',
dosageUnitName: 'ml',
usageName: '静脉注射',
salePrice: 2,
salePriceAmount: 2.0000,
stockPlaceName: null,
drugGoodsCode: '331243',
drugFormName: '注射液',
packageNum: 1,
maxUnit: '瓶',
purchasePrice: 2,
}
]
}
// 2222
const treedata = ref([
{
label: '内科',
id:1,
children: [
{
label: '唐僧',
id: 11
},
],
},
])
const treeRef = ref()
const handleNodeClick=(data)=>{
console.log(data)
treeRef.value.setCheckedKeys([data.id])
}
// 3333
const isAll = ref('1')
const tableData = ref([
{
date: '2023-05-01',
name: '药品1',
age: 10,
gender: '男',
content: '维生素B12注射液【1ml0.5mg*1】 ',
},
])
const tableDataDetails = ref([
{
date: '2023-05-01',
name: '药品1',
age: 10,
gender: '男',
content: '维生素B12注射液【1ml0.5mg*1】 ',
},
])
onBeforeMount(() => {
})
onMounted(() => {
})
defineExpose({ state })
</script>
<style lang="scss" scoped>
.inHospitalDispensing-container{
height: 100%;
width: 100%;
padding: 20px;
display: flex;
flex-direction: column;
.inHospitalDispensing-container-top{
height: 44px;
width: 100%;
padding: 0px 16px;
flex:none;
align-items: center;
display: flex;
}
.inHospitalDispensing-container-bottom{
width: 100%;
height: 300px;
flex:auto;
display: flex;
.inHospitalDispensing-container-bottom-left{
width: 300px;
flex:none
}
.inHospitalDispensing-container-bottom-right{
flex:auto;
width: calc(100% - 300px);
padding: 0px 16px;
.inHospitalDispensing-container-bottom-right-top{
height: 44px;
width: calc(100% - 32px);
padding: 0px 16px;
align-items: center;
flex:none;
display: flex;
justify-content: space-between;
}
.inHospitalDispensing-container-bottom-right-bottom{
flex:auto;
height: 100%;
width: 100%;
background-color: #fff;
}
}
}
}
</style>