Commit 1f13500e authored by 刘怀志's avatar 刘怀志

挂号管理药品相关

parent 1a3c2bf8
......@@ -99,3 +99,26 @@ export function drugList(params) {
params
})
}
// 编辑药品
export function updateDrug(data) {
return request({
url: '/finance/stock/outbound',
method: 'put',
data
})
}
// 新增药品
export function addDrug(data) {
return request({
url: '/finance/stock/outbound',
method: 'post',
data
})
}
// 删除药品
export function deleteDrug(id) {
return request({
url: '/finance/stock/outbound/{id}' + id,
method: 'delete'
})
}
......@@ -448,47 +448,102 @@ color: #333333;"
class="fourWordsBtn"
icon="el-icon-circle-plus-outline"
size="mini"
@click="handleAdd('petProtect')"
@click="handleAdd('stockDispenseOutboundList')"
>新增用药
</el-button>
</div>
<!-- 内部信息 -->
<div class="table-content">
<el-form ref="drugForm" :model="drugForm" hide-required-asterisk :rules="drugRules" class="demo-ruleForm" label-width="0">
<el-table :data="petProtect" :header-cell-style="{ background:'#F4F4F4'}" border>
<el-table-column align="center" label="药品名称" prop="protectName">
<el-table :data="stockDispenseOutboundList" :header-cell-style="{ background:'#F4F4F4'}" border>
<el-table-column align="center" label="药品名称" prop="drugName">
<template slot-scope="scope">
<el-form-item
v-if="scope.row.inputShow"
:prop="'tableData.'+scope.$index+'.protectName'"
:rules="drugRules.protectName"
:prop="'tableData.'+scope.$index+'.drugName'"
:rules="drugRules.drugName"
>
<el-select
v-model="scope.row.protectName"
v-model="scope.row.drugId"
clearable
:placeholder="isEdit? '请选择药品名称' : '暂无数据'"
style="width: 100%"
@change="setDrugOthers(scope.row,drugOptions)"
>
<el-option
v-for="(item, index) in drugList"
:key="index"
:label="item.dictLabel"
:value="String(item.dictCode)"
v-for="item in drugOptions"
:key="item.drugId"
:label="item.drugName"
:value="item.drugId"
/>
</el-select>
</el-form-item>
<span
v-else
>{{
scope.row.protectName === '' || scope.row.protectName === null ? '-' : scope.row.protectName
scope.row.drugName === '' || scope.row.drugName === null ? '-' : scope.row.drugName
}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="规格" prop="type" />
<el-table-column align="center" label="数量" prop="date" />
<el-table-column align="center" label="用法" prop="date" />
<el-table-column align="center" label="开药日期" prop="date" />
<el-table-column align="center" label="缴费状态" prop="date" />
<el-table-column align="center" label="开药日期" prop="date" >
<template slot-scope="scope">
<span v-if="scope.row.inputShow">-</span>
<span v-else>
{{ scope.row.checkStartTime ? scope.row.checkStartTime : '-' }}
</span>
</template>
</el-table-column>
<el-table-column align="center" label="处方数量" prop="recipelNum" >
<template slot-scope="scope">
<el-form-item
v-if="scope.row.inputShow"
:prop="'tableData.'+scope.$index+'.recipelNum'"
:rules="drugRules.recipelNum"
>
<el-input
v-model="scope.row.recipelNum"
/>
</el-form-item>
<span v-else>
{{ scope.row.recipelNum ? scope.row.recipelNum : '-' }}
</span>
</template>
</el-table-column>
<el-table-column align="center" label="用法" prop="remark" >
<template slot-scope="scope">
<el-form-item
v-if="scope.row.inputShow"
:prop="'tableData.'+scope.$index+'.remark'"
:rules="drugRules.remark"
>
<el-input
v-model="scope.row.remark"
/>
</el-form-item>
<span v-else>
{{ scope.row.remark ? scope.row.remark : '-' }}
</span>
</template>
</el-table-column>
<el-table-column align="center" label="取药状态" prop="checkSchedule">
<template slot-scope="scope">
<span v-if="scope.row.inputShow">-</span>
<span v-else>
{{ scope.row.checkStatus ? (scope.row.checkStatus === '3' ? '已取药' : '待取药') : '-' }}
</span>
</template>
</el-table-column>
<el-table-column align="center" label="缴费状态" prop="payType">
<template slot-scope="scope">
<span v-if="scope.row.inputShow">-</span>
<dict-tag
v-else
:options="dict.type.payment_status"
:value="scope.row.paymentStatus"
class="content-style"
/>
</template>
</el-table-column>
<el-table-column
v-if="isEdit"
align="center"
......@@ -499,47 +554,43 @@ color: #333333;"
>
<template slot-scope="scope">
<el-button
v-if="!isEdit || (scope.row.payType !== '0' && !scope.row.isAdd)"
v-hasPermi="['business:record:edit']"
v-if="!isEdit || (scope.row.paymentStatus !== '0' && !scope.row.isAdd)"
icon="el-icon-document"
plain
size="mini"
style="width: 50px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(95,181,75);"
type="success"
@click="handleDetail(scope.row)"
@click="handleDetail(scope.row, 'stockDispenseOutboundList')"
>查看
</el-button>
<el-button
v-if="isEdit && scope.row.payType === '0' && !scope.row.inputShow"
v-hasPermi="['business:record:edit']"
v-if="isEdit && scope.row.paymentStatus === '0' && !scope.row.inputShow"
icon="el-icon-edit"
plain
size="mini"
style="width: 50px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(52,144,206);"
type="primary"
@click="handleUpdate(scope.$index,'petProtect')"
@click="handleUpdate(scope.$index,'stockDispenseOutboundList')"
>编辑
</el-button>
<el-button
v-if="isEdit && (scope.row.payType === '0'|| scope.row.isAdd ) && scope.row.inputShow"
v-hasPermi="['business:case:save']"
v-if="isEdit && (scope.row.paymentStatus === '0'|| scope.row.isAdd ) && scope.row.inputShow"
icon="el-icon-edit"
plain
size="mini"
style="width: 50px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(52,144,206);"
type="primary"
@click="handleSave('drugForm','petProtect', scope.$index)"
@click="handleSave('checkForm','stockDispenseOutboundList', scope.$index)"
>保存
</el-button>
<el-button
v-if="isEdit && scope.row.payType === '0' && !scope.row.inputShow"
v-hasPermi="['business:record:edit']"
v-if="isEdit && scope.row.paymentStatus === '0' && !scope.row.inputShow"
icon="el-icon-document"
plain
size="mini"
style="width: 50px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(155,0,65);"
type="danger"
@click="handleDetail(scope.row)"
@click="handleDelRow(scope.row, 'stockDispenseOutboundList')"
>删除
</el-button>
</template>
......@@ -1155,7 +1206,7 @@ import {
getRecord,
getTreatOptions,
listByType,
updateCheck, editRecord, getRecordPayment
updateCheck, editRecord, getRecordPayment, drugList, updateDrug, deleteDrug, addDrug
} from '@/api/business/mdeicalRecord'
import { mapGetters } from 'vuex'
import { addHospital, delHospital, listHospital, updateHospitalRecord } from '@/api/business/inHospital'
......@@ -1170,6 +1221,7 @@ export default {
},
data() {
return {
drugOptions: [], // 药品列表
// 是否显示检查弹窗flag
isShowCheckReport: false,
// 报告链接
......@@ -1235,6 +1287,15 @@ export default {
{ required: true, message: '请选择检查类型', trigger: 'change' }
]
},
// 检查信息表单校验
drugRules: {
drugName: [
{ required: true, message: '请选择药品', trigger: 'change' }
],
recipelNum: [
{ required: true, message: '请输入药品数量', trigger: 'blur' }
]
},
// 进度
scheduleKey: { checkSchedule: '', diagnosisTime: '', registrationTime: '', reportTime: '', recipelTime: '' },
// 宠物出生日期校验
......@@ -1247,16 +1308,17 @@ export default {
treatItemOptions: [], // 治疗项目选项列表
checkManageBos: [], // 检查列表数据
treatManageBo: [], // 治疗列表数据
stockDispenseOutboundList: [], // 药品列表数据
editCunt: {
petProtect: 0,
checkManageBos: 0,
treatManageBo: 0,
inHospitalBos: 0
inHospitalBos: 0,
stockDispenseOutboundList: 0
},
drugList: [], // 药品列表
map: {},
drugForm: {}, // 用药管理table编辑
drugRules: {},
checkForm: {}, // 检查table编辑
treatForm: {}, // 治疗table编辑
treatRules: {},
......@@ -1381,32 +1443,53 @@ export default {
this.getDetail()
this.getTreatItemOptions()
this.getPaymentList()
this.getDrugList()
},
methods: {
getDrugList() {
drugList({ status: '1' }).then(res => {
console.log('drugList', res)
this.drugOptions = res.data.map(item => {
return {
drugName: item.name,
drugId: item.id,
brand: item.brand,
giveWay: item.giveWay,
sallUnit: item.smallSallNormsUnit,
sallNum: item.smallSallNormsNum,
standardAmount: item.sellingPrice,
paymentStatus: '0'
}
})
console.log('drugOptions!!!!!!!!!!!!!', this.drugOptions)
}).catch(err => {
console.log('drugListERR', err)
})
},
/**
* @Description: 关闭报告弹窗
* @Author: 刘
* @Date: 2023-07-06 16:54:22
*/
* @Description: 关闭报告弹窗
* @Author: 刘
* @Date: 2023-07-06 16:54:22
*/
closeReportModle() {
this.isShowCheckReport = false
this.checkReportUrl = ''
},
/**
* @Description: 显示报告弹出框
* @Author: 刘
* @Date: 2023-07-06 16:42:47
*/
* @Description: 显示报告弹出框
* @Author: 刘
* @Date: 2023-07-06 16:42:47
*/
showShadowReport(url) {
console.log(url)
this.isShowCheckReport = true
this.checkReportUrl = process.env.VUE_APP_TEST_API + url
},
/**
* @Description: 查看详情
* @Author: 刘
* @Date: 2023-07-06 14:46:32
*/
* @Description: 查看详情
* @Author: 刘
* @Date: 2023-07-06 14:46:32
*/
handleDetail(row, type) {
if (type === 'checkManageBos') {
this.$router.push({
......@@ -1521,6 +1604,22 @@ export default {
}
})
},
// 设置当前行药品其余属性
setDrugOthers(rowData, options) {
console.log('setDrugOthers', rowData, options)
options.forEach(item => {
if (item.drugId.toString() === rowData.drugId) {
rowData['drugName'] = item.drugName
rowData['brand'] = item.brand
rowData['giveWay'] = item.giveWay
rowData['sallUnit'] = item.sallUnit
rowData['sallNum'] = item.sallNum
rowData['standardAmount'] = item.standardAmount
rowData['paymentStatus'] = item.paymentStatus
}
})
console.log('finishSetDrugOthers', rowData)
},
// 设置当前行治疗名称
setTreatItemsName(rowData, options) {
console.log('setTreatItemsName', rowData, options)
......@@ -1568,7 +1667,7 @@ export default {
getDetail(type = 'usual') {
getRecord(this.$route.params.id).then(response => {
console.log('这是病历管理的详情内容,我要调取!', response)
this.recordDetail = response.data
this.recordDetail = JSON.parse(JSON.stringify(response.data))
// 主键
this.scheduleKey.checkSchedule = response.data.checkSchedule
// 挂号时间
......@@ -1589,10 +1688,19 @@ export default {
item['inputShow'] = false
item['isAdd'] = false
})
if (response.data.stockDispenseOutboundList) {
response.data.stockDispenseOutboundList.forEach(item => {
item['inputShow'] = false
item['isAdd'] = false
})
}
this.checkManageBos = []
this.treatManageBo = []
this.stockDispenseOutboundList = []
this.checkManageBos.push(...response.data.checkManageBos)
this.treatManageBo.push(...response.data.treatManageBo)
this.stockDispenseOutboundList.push(...response.data.stockDispenseOutboundList)
// this.stockDispenseOutboundList = [{ 'inputShow': false, 'isAdd': false, 'drugName': '红霉素3', 'brand': '康恩贝', 'drugId': 11, 'giveWay': '1', 'sallUnit': null, 'sallNum': null, 'standardAmount': 19, 'paymentStatus': '0', 'recipelNum': 1, 'remarks': '2' }, { 'inputShow': false, 'isAdd': false, 'drugName': '红霉素2', 'brand': '康恩贝', 'drugId': 10, 'giveWay': '1', 'sallUnit': null, 'sallNum': null, 'standardAmount': 19, 'paymentStatus': '0', 'recipelNum': 2, 'remarks': '3' }]
if (type !== 'update') {
this.petInfo = { ...response.data }
this.detailInfo = { ...response.data }
......@@ -1648,6 +1756,14 @@ export default {
})
this.getDetail('update')
})
} else if (tableName === 'stockDispenseOutboundList') {
deleteDrug(rowData.id).then(() => {
this.$message({
type: 'success',
message: '删除成功!'
})
this.getDetail('update')
})
}
}).catch(() => {
})
......@@ -1681,6 +1797,21 @@ export default {
inputShow: true,
isAdd: true
})
} else if (tableName === 'stockDispenseOutboundList') {
this[tableName].unshift({
drugName: '',
brand: '',
drugId: '',
giveWay: '',
sallUnit: '',
sallNum: '',
standardAmount: '',
paymentStatus: '',
recipelNum: '',
remark: '',
inputShow: true,
isAdd: true
})
}
this.editCunt[tableName] += 1
} else {
......@@ -1789,6 +1920,38 @@ export default {
this.getDetail('update')
})
}
} else if (listName === 'stockDispenseOutboundList') {
// 治疗信息保存-- 新增保存 编辑保存
if (this[listName][index].isAdd) { // 新增保存
const temp = {
id: rowData.id,
drugId: rowData.drugId,
recipelNum: rowData.recipelNum,
remark: rowData.remark,
registId: this.petInfo.registId,
medicalRecordId: this.petInfo.id
}
addDrug(temp).then(() => {
this.$message.success('保存成功')
// 刷新治疗信息列表
// this.getTreatList()
this.getDetail('update')
})
} else {
const temp = {
id: rowData.id,
drugId: rowData.drugId,
recipelNum: rowData.recipelNum,
remark: rowData.remark
}
// 编辑保存
updateDrug(temp).then(() => {
this.$message.success('保存成功')
// 刷新治疗信息列表
// this.getTreatList()
this.getDetail('update')
})
}
}
this[listName][index].inputShow = false
this.editCunt[listName] -= 1
......@@ -2070,7 +2233,7 @@ export default {
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
}
.el-form-item.petBreed {
......
......@@ -203,6 +203,7 @@
@click="handleDetail(scope.row)"
>详情
</el-button>
<!-- :disabled="checkRole(['pt-admin']) || scope.row.isUpdate === '1'"-->
<el-button
v-hasPermi="['business:record:edit']"
:disabled="checkRole(['pt-admin']) || scope.row.isUpdate === '1'"
......
......@@ -171,9 +171,9 @@
</el-form-item>
</div>
<div>
<el-form-item label="sig" prop="remarks ">
<el-form-item label="sig" prop="remark">
<el-input
v-model="singleItem.remarks "
v-model="singleItem.remark"
placeholder="请输入具体用法"
/>
</el-form-item>
......@@ -402,7 +402,7 @@ export default {
standardAmount: '',
paymentStatus: '',
recipelNum: '',
remarks: ''
remark: ''
}
],
inspect: [
......@@ -695,7 +695,7 @@ export default {
standardAmount: '',
paymentStatus: '',
recipelNum: '',
remarks: ''
remark: ''
}
break
case 'inspect':
......
......@@ -199,6 +199,7 @@
<el-button
icon="el-icon-paperclip"
plain
:disabled="scope.row.isAdd === '1'"
size="mini"
style="width: 70px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(255,157,78);"
type="warning"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment