Commit e8b011a4 authored by 王飞龙's avatar 王飞龙

Merge remote-tracking branch 'origin/master'

parents be54ef70 9fc28028
...@@ -119,7 +119,8 @@ export default { ...@@ -119,7 +119,8 @@ export default {
rules: { rules: {
// 文章标题判空校验 // 文章标题判空校验
articleTitle: [ articleTitle: [
{ required: true, message: '请输入文章标题', trigger: 'change' } { required: true, message: '请输入文章标题', trigger: 'change' },
{ min: 2, message: '仅支持2~60位字符', trigger: 'blur' }
], ],
// 文章权重判空校验 // 文章权重判空校验
articleWeight: [ articleWeight: [
......
...@@ -129,7 +129,8 @@ export default { ...@@ -129,7 +129,8 @@ export default {
rules: { rules: {
// 文章标题判空校验 // 文章标题判空校验
articleTitle: [ articleTitle: [
{ required: true, message: '请输入文章标题', trigger: 'change' } { required: true, message: '请输入文章标题', trigger: 'change' },
{ min: 2, message: '仅支持2~60位字符', trigger: 'blur' }
], ],
// 文章权重判空校验 // 文章权重判空校验
articleWeight: [ articleWeight: [
......
...@@ -77,16 +77,16 @@ ...@@ -77,16 +77,16 @@
>反向选择 >反向选择
</el-button> </el-button>
<!--批量导入--> <!--批量导入-->
<!-- <el-button--> <!-- <el-button-->
<!-- v-hasPermi="['system:pets:export']"--> <!-- v-hasPermi="['system:pets:export']"-->
<!-- class="fourWordsBtn"--> <!-- class="fourWordsBtn"-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- @click="handleExport"--> <!-- @click="handleExport"-->
<!-- >--> <!-- >-->
<!-- &lt;!&ndash; 导入svg文件&ndash;&gt;--> <!-- &lt;!&ndash; 导入svg文件&ndash;&gt;-->
<!-- <svg-icon icon-class="shaixuan_icon_daoru" />--> <!-- <svg-icon icon-class="shaixuan_icon_daoru" />-->
<!-- 批量导入--> <!-- 批量导入-->
<!-- </el-button>--> <!-- </el-button>-->
<!--批量导出--> <!--批量导出-->
<el-button <el-button
v-hasPermi="['system:pets:export']" v-hasPermi="['system:pets:export']"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</div> </div>
<el-row :gutter="14"> <el-row :gutter="14">
<el-col :span="6"> <el-col :span="6">
<div class="hospital_info_statistics hospital_info_statistics_ruzhu"> <div class="hospital_info_statistics hospital_info_statistics_ruzhu" style="">
<div style="display: flex;"> <div style="display: flex;">
<div class="numberColor">{{ formatNum(hospitalInfoStatistics.enteredHospitalCount || 0) }}</div> <div class="numberColor">{{ formatNum(hospitalInfoStatistics.enteredHospitalCount || 0) }}</div>
<div class="fontColor"></div> <div class="fontColor"></div>
......
...@@ -114,13 +114,13 @@ ...@@ -114,13 +114,13 @@
@click="handleExport" @click="handleExport"
>批量导出 >批量导出
</el-button> </el-button>
<!-- <el-button--> <!-- <el-button-->
<!-- v-if="userType==='00'"--> <!-- v-if="userType==='00'"-->
<!-- class="fourWordsBtn"--> <!-- class="fourWordsBtn"-->
<!-- icon="el-icon-download"--> <!-- icon="el-icon-download"-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- @click="handlecheck"--> <!-- @click="handlecheck"-->
<!-- >检查项目</el-button>--> <!-- >检查项目</el-button>-->
</el-col> </el-col>
<el-col :span="12" style="padding-bottom: 20px;text-align: end;"> <el-col :span="12" style="padding-bottom: 20px;text-align: end;">
<el-button class="queryBtn" icon="el-icon-search" @click="handleQuery">查询</el-button> <el-button class="queryBtn" icon="el-icon-search" @click="handleQuery">查询</el-button>
......
...@@ -718,7 +718,7 @@ color: #333333;" ...@@ -718,7 +718,7 @@ color: #333333;"
</el-table-column> </el-table-column>
<el-table-column align="center" label="检查报告" prop="shadowReport" show-overflow-tooltip> <el-table-column align="center" label="检查报告" prop="shadowReport" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.inputShow">-</span> <span v-if="scope.row.inputShow || !scope.row.shadowReport">-</span>
<span v-else> <span v-else>
<el-link type="primary" @click="showShadowReport(scope.row.shadowReport)">{{ scope.row.shadowReport ? scope.row.shadowReport.split('/')[scope.row.shadowReport.split('/').length - 1] : '-' }}</el-link> <el-link type="primary" @click="showShadowReport(scope.row.shadowReport)">{{ scope.row.shadowReport ? scope.row.shadowReport.split('/')[scope.row.shadowReport.split('/').length - 1] : '-' }}</el-link>
</span> </span>
...@@ -860,7 +860,7 @@ color: #333333;" ...@@ -860,7 +860,7 @@ color: #333333;"
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.inputShow">-</span> <span v-if="scope.row.inputShow">-</span>
<span v-else> <span v-else>
{{ scope.row.treatStatus ? (scope.row.treatStatus === 3 ? '已检查' : '待检查') : '-' }} {{ scope.row.treatStatus ? (scope.row.treatStatus === 3 ? '已治疗' : '待治疗') : '-' }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -1482,8 +1482,10 @@ export default { ...@@ -1482,8 +1482,10 @@ export default {
*/ */
showShadowReport(url) { showShadowReport(url) {
console.log(url) console.log(url)
this.isShowCheckReport = true if (url) {
this.checkReportUrl = process.env.VUE_APP_TEST_API + url this.isShowCheckReport = true
this.checkReportUrl = process.env.VUE_APP_TEST_API + url
}
}, },
/** /**
* @Description: 查看详情 * @Description: 查看详情
...@@ -1633,21 +1635,24 @@ export default { ...@@ -1633,21 +1635,24 @@ export default {
}, },
/** 根据检查类型获取检查项目列表*/ /** 根据检查类型获取检查项目列表*/
getCheckItemOptions(checkType, row) { getCheckItemOptions(checkType, row) {
console.log('getCheckItemOptions', checkType, row) return new Promise(resolve => {
listByType({ itemType: checkType }).then(res => { console.log('getCheckItemOptions', checkType, row)
this.checkItemOptions = res.rows.map(item => { listByType({ itemType: checkType }).then(res => {
return { this.checkItemOptions = res.rows.map(item => {
label: item.name, return {
value: item.id, label: item.name,
payAmount: item.price value: item.id.toString(),
} payAmount: item.price
}
})
console.log('checkItemOptions!!!!!!!!!!!!!', this.checkItemOptions)
resolve()
}) })
console.log('checkItemOptions!!!!!!!!!!!!!', this.checkItemOptions) if (row) {
row.checkItemsId = ''
row.checkItemsName = ''
}
}) })
if (row) {
row.checkItemsId = ''
row.checkItemsName = ''
}
}, },
/** 获取治疗项目列表*/ /** 获取治疗项目列表*/
getTreatItemOptions(checkType) { getTreatItemOptions(checkType) {
...@@ -1681,6 +1686,7 @@ export default { ...@@ -1681,6 +1686,7 @@ export default {
console.log('这是我要传的checkSchedule的值:值 挂号时间 录入时间 病历时间 开具处方时间', response.data.registrationTime, response.data.diagnosisTime, response.data.reportTime, response.data.recipelTime) console.log('这是我要传的checkSchedule的值:值 挂号时间 录入时间 病历时间 开具处方时间', response.data.registrationTime, response.data.diagnosisTime, response.data.reportTime, response.data.recipelTime)
// 修改时间格式 // 修改时间格式
response.data.checkManageBos.forEach(item => { response.data.checkManageBos.forEach(item => {
item['checkItemsId'] = item.checkItemsId.toString()
item['inputShow'] = false item['inputShow'] = false
item['isAdd'] = false item['isAdd'] = false
}) })
...@@ -1713,12 +1719,16 @@ export default { ...@@ -1713,12 +1719,16 @@ export default {
handleUpdate(index, tableData) { handleUpdate(index, tableData) {
// 每个表格只有一行可编辑 // 每个表格只有一行可编辑
if (this.editCunt[tableData] === 0) { if (this.editCunt[tableData] === 0) {
this[tableData][index]['inputShow'] = true
console.log('UUUUUUUUUUUUUU', tableData, index, this[tableData][index]) console.log('UUUUUUUUUUUUUU', tableData, index, this[tableData][index])
this.editCunt[tableData] += 1 this.editCunt[tableData] += 1
// 如果是检查表格需要根据检查类型查询检查项目 // 如果是检查表格需要根据检查类型查询检查项目
if (tableData === 'checkManageBos') { if (tableData === 'checkManageBos') {
this.getCheckItemOptions(this.checkManageBos[index].checkType) this.getCheckItemOptions(this.checkManageBos[index].checkType).then(() => {
console.log('KKKKKKKKKKKKKKKKKKKKKKKK')
this[tableData][index]['inputShow'] = true
})
} else {
this[tableData][index]['inputShow'] = true
} }
} else { } else {
this.$message({ this.$message({
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
label-width="68px" label-width="68px"
size="small" size="small"
> >
<el-form-item class="nick-style" style="padding-right: 15px;" prop="petNickname"> <el-form-item class="med-petNickname" prop="petNickname">
<el-input <el-input
v-model.trim="queryParams.medicalRecordNo" v-model.trim="queryParams.medicalRecordNo"
clearable clearable
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
/> />
</el-form-item> </el-form-item>
<el-form-item v-if="!checkRole(['pt-admin'])" style=" margin-left: 3.25rem !important;" prop="hospitalName"> <el-form-item v-if="!checkRole(['pt-admin'])" prop="hospitalName">
<el-select v-model="queryParams.hospitalName" clearable placeholder="所属医院"> <el-select v-model="queryParams.hospitalName" :disabled="deptLevel === '2'" clearable placeholder="所属医院">
<el-option <el-option
v-for="item in HospitalList" v-for="item in HospitalList"
:key="item.hospitalId" :key="item.hospitalId"
...@@ -30,10 +30,10 @@ ...@@ -30,10 +30,10 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="doctorName"> <el-form-item prop="doctorIdList">
<el-select <el-select
v-if="!checkRole(['pt-admin'])" v-if="!checkRole(['pt-admin'])"
v-model="queryParams.doctorIdList" v-model="doctorIdList"
collapse-tags collapse-tags
multiple multiple
clearable clearable
...@@ -234,13 +234,19 @@ ...@@ -234,13 +234,19 @@
import { listRecord } from '@/api/business/record' import { listRecord } from '@/api/business/record'
import { getDepartment, getDoctorment, getHospital } from '@/api/business/register' import { getDepartment, getDoctorment, getHospital } from '@/api/business/register'
import { checkRole } from '@/utils/permission' import { checkRole } from '@/utils/permission'
import { mapGetters } from 'vuex'
export default { export default {
name: 'MedicalRecordManagement', name: 'MedicalRecordManagement',
// 数据字典 // 数据字典
dicts: ['pet_insure'], dicts: ['pet_insure'],
computed: {
...mapGetters(['deptLevel', 'deptId'])
},
data() { data() {
return { return {
showHospitalName: '',
doctorIdList: [],
// 所属科室下拉框字典写死 // 所属科室下拉框字典写死
departmentList: [], departmentList: [],
// 所属科室下拉框字典写死 // 所属科室下拉框字典写死
...@@ -287,7 +293,6 @@ export default { ...@@ -287,7 +293,6 @@ export default {
nickname: null, nickname: null,
petOwnerNumber: null, petOwnerNumber: null,
doctorIdList: [], doctorIdList: [],
deptId: null,
departmentId: null, departmentId: null,
diagnosticResults: null, diagnosticResults: null,
visitNumber: null, visitNumber: null,
...@@ -332,7 +337,6 @@ export default { ...@@ -332,7 +337,6 @@ export default {
// 设置查询查询参数 // 设置查询查询参数
// this.queryParams.createBy = user.userName // this.queryParams.createBy = user.userName
// 这三个一块走 // 这三个一块走
this.getList()
this.getDoctorList() this.getDoctorList()
this.getDeptList() this.getDeptList()
this.getHospitalList() this.getHospitalList()
...@@ -365,9 +369,21 @@ export default { ...@@ -365,9 +369,21 @@ export default {
/** 查询医生名字下拉*/ /** 查询医生名字下拉*/
getHospitalList() { getHospitalList() {
getHospital().then(({ data }) => { getHospital().then(({ data }) => {
data = data.filter(({ deptId: hospitalDept }) => hospitalDept === this.user.deptId) data = data.filter(({ deptId: hospitalDept, hospitalName: hosName }) => {
if (this.deptLevel === '2') {
if (hospitalDept === this.deptId) {
this.showHospitalName = hosName
return hospitalDept === this.deptId
} else {
return false
}
} else {
return true
}
})
this.HospitalList = data this.HospitalList = data
console.log('这是我要的医院下拉框:', this.HospitalList) console.log('这是我要的医院下拉框:', this.HospitalList)
this.getList()
}) })
}, },
...@@ -487,6 +503,10 @@ export default { ...@@ -487,6 +503,10 @@ export default {
/** 查询病例管理列表 */ /** 查询病例管理列表 */
getList() { getList() {
this.loading = true this.loading = true
this.queryParams.doctorIdList = this.doctorIdList.join(',')
if (this.deptLevel === '2') {
this.queryParams.hospitalName = this.showHospitalName
}
listRecord(this.queryParams).then(response => { listRecord(this.queryParams).then(response => {
console.log('这是我传的查询数据:', this.queryParams) console.log('这是我传的查询数据:', this.queryParams)
console.log('病历列表的数据:', response) console.log('病历列表的数据:', response)
...@@ -556,7 +576,37 @@ export default { ...@@ -556,7 +576,37 @@ export default {
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm('queryForm') this.queryParams = {
orderByColumn: null,
isAsc: null,
// 排序方式声明
params: {
sort: null
},
pageNum: 1,
pageSize: 20,
petNickname: null,
nickname: null,
petOwnerNumber: null,
doctorIdList: [],
deptId: null,
departmentId: null,
diagnosticResults: null,
visitNumber: null,
visitTime: null,
visitOffice: null,
visitInformation: null,
orders: null,
medicationInformation: null,
petId: null,
petOwnerId: null,
doctorId: null,
petJson: null,
doctorJson: null,
ownerJson: null,
createBy: ''
}
this.doctorIdList = []
this.queryParams.isAsc = null this.queryParams.isAsc = null
this.queryParams.isAsc = 'desc' this.queryParams.isAsc = 'desc'
this.handleQuery() this.handleQuery()
...@@ -589,13 +639,12 @@ export default { ...@@ -589,13 +639,12 @@ export default {
.form-style { .form-style {
margin-bottom: 20px; margin-bottom: 20px;
} }
//搜索框病历框/昵称..宽度 </style>
.nick-style{ <style lang="scss">
::v-deep .el-form-item nick-style el-form-item--small{ .med-petNickname{
width: 18.625rem; width: 270px;
} .el-form-item__content, .el-input--small{
::v-deep .el-input__inner{ width: 100% !important;
width: 18.625rem;
} }
} }
</style> </style>
...@@ -201,7 +201,7 @@ ...@@ -201,7 +201,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="手机号"> <el-form-item label="手机号">
<el-input v-model="detailInfo.phoneNumber" placeholder="-" disabled /> <el-input v-model="detailInfo.doctorPhone" placeholder="-" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -346,7 +346,7 @@ ...@@ -346,7 +346,7 @@
</el-table-column> </el-table-column>
<el-table-column label="天数" align="center" prop="actualDays"> <el-table-column label="天数" align="center" prop="actualDays">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.actualDays + '天' || '-' }}</span> <span>{{ scope.row.actualDays + '天' || '-' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center" prop="status"> <el-table-column label="状态" align="center" prop="status">
...@@ -391,23 +391,23 @@ ...@@ -391,23 +391,23 @@
</el-table-column> </el-table-column>
<el-table-column label="当前余额" align="center" prop="moneyFormat"> <el-table-column label="当前余额" align="center" prop="moneyFormat">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ moneyFormat(scope.row.amountAfterTrade)+'元' || '-'}}</span> <span>{{ moneyFormat(scope.row.amountAfterTrade)+'元' || '-' }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div v-if="detailInfo.status<4" style="padding: 20px;"> <div v-if="detailInfo.status<4" style="padding: 20px;">
<el-button v-hasPermi="['business:hospital:edit']" v-show="detailInfo.status==='2'||detailInfo.status==='0'" class="fourWordsBtn" icon="el-icon-check" @click="handAdmission">办理入院</el-button> <el-button v-show="detailInfo.status==='2'||detailInfo.status==='0'" v-hasPermi="['business:hospital:edit']" class="fourWordsBtn" icon="el-icon-check" @click="handAdmission">办理入院</el-button>
<el-button v-hasPermi="['business:hospital:edit']" v-show="detailInfo.status==='3'" class="fourWordsBtn" icon="el-icon-check" @click="handDisCharge">办理出院</el-button> <el-button v-show="detailInfo.status==='3'" v-hasPermi="['business:hospital:edit']" class="fourWordsBtn" icon="el-icon-check" @click="handDisCharge">办理出院</el-button>
<el-button v-hasPermi="['business:hospital:edit']" v-show="detailInfo.status==='3'" class="fourWordsBtn" icon="el-icon-check" @click="changeWard">变更病房</el-button> <el-button v-show="detailInfo.status==='3'" v-hasPermi="['business:hospital:edit']" class="fourWordsBtn" icon="el-icon-check" @click="changeWard">变更病房</el-button>
<el-button class="backBth" icon="el-icon-back" @click="goBack"> </el-button> <el-button class="backBth" icon="el-icon-back" @click="goBack"> </el-button>
</div> </div>
<div v-else style="padding: 20px;"> <div v-else style="padding: 20px;">
<el-button class="backBthFive" icon="el-icon-document-remove">查看入院单</el-button> <el-button class="fourWordswhiteBtn" icon="el-icon-document-remove">查看入院单</el-button>
<el-button class="backBthFive" icon="el-icon-document-remove">查看出院单</el-button> <el-button class="fourWordswhiteBtn" icon="el-icon-document-remove">查看出院单</el-button>
<el-button class="backBth" icon="el-icon-back" @click="goBack"> </el-button> <el-button class="fourWordswhiteBtn" icon="el-icon-back" @click="goBack"> </el-button>
</div> </div>
</el-form> </el-form>
</div> </div>
......
...@@ -206,7 +206,7 @@ ...@@ -206,7 +206,7 @@
>详情</el-button> >详情</el-button>
<el-button <el-button
v-hasPermi="['business:hospital:edit']" v-hasPermi="['business:hospital:edit']"
v-if="scope.row.status==='2'" v-if="scope.row.status==='2' || scope.row.status==='0'"
icon="el-icon-paperclip" icon="el-icon-paperclip"
plain plain
size="mini" size="mini"
...@@ -215,7 +215,7 @@ ...@@ -215,7 +215,7 @@
@click="handleadmission(scope.row)" @click="handleadmission(scope.row)"
>办理入院</el-button> >办理入院</el-button>
<el-button <el-button
v-else-if="scope.row.status==='1' || scope.row.status==='0'" v-else-if="scope.row.status==='1'"
icon="el-icon-paperclip" icon="el-icon-paperclip"
plain plain
size="mini" size="mini"
...@@ -475,7 +475,7 @@ export default { ...@@ -475,7 +475,7 @@ export default {
if (this.ids.length !== 0) { if (this.ids.length !== 0) {
const exportTable = {} const exportTable = {}
exportTable.inHospitalIds = this.ids exportTable.inHospitalIds = this.ids
this.download('business/hospital/export', exportTable, `住院-${this.exportFormatTime(new Date())}.xlsx`).then(res => { this.download('business/hospital/export', exportTable, `住院管理-${this.exportFormatTime(new Date())}.xlsx`).then(res => {
this.$refs.table.clearSelection() this.$refs.table.clearSelection()
}) })
} else { } else {
......
...@@ -186,14 +186,16 @@ ...@@ -186,14 +186,16 @@
<span class="title-text" style="font-size: 16px;font-weight: bold;">检查进度</span> <span class="title-text" style="font-size: 16px;font-weight: bold;">检查进度</span>
</div> </div>
<!-- 步骤条 --> <!-- 步骤条 -->
<div> <!-- <div>-->
<el-steps :active="schedule" align-center> <!-- <el-steps :active="schedule" align-center>-->
<el-step title="开具处方单" :description="parseTime(checkDetail.createTime, '{y}-{m}-{d} {h}:{i}')" /> <!-- <el-step title="开具处方单" :description="parseTime(checkDetail.createTime, '{y}-{m}-{d} {h}:{i}')" />-->
<el-step title="缴费开票" :description="parseTime(checkDetail.payTime, '{y}-{m}-{d} {h}:{i}') || '暂未缴费'" /> <!-- <el-step title="缴费开票" :description="parseTime(checkDetail.payTime, '{y}-{m}-{d} {h}:{i}') || '暂未缴费'" />-->
<el-step title="预约检查" :description="parseTime(checkDetail.checkStartTime, '{y}-{m}-{d} {h}:{i}') || '暂未预约'" /> <!-- <el-step title="预约检查" :description="parseTime(checkDetail.checkStartTime, '{y}-{m}-{d} {h}:{i}') || '暂未预约'" />-->
<el-step title="检查获取报告" :description="parseTime(checkDetail.reportTime, '{y}-{m}-{d} {h}:{i}') || '暂未检查'" /> <!-- <el-step title="检查获取报告" :description="parseTime(checkDetail.reportTime, '{y}-{m}-{d} {h}:{i}') || '暂未检查'" />-->
</el-steps> <!-- </el-steps>-->
</div> <!-- </div>-->
<CheckSchedule :scheduleKey="scheduleKey" />
<!-- 缴费信息 -->
<div class="title-paragraph"> <div class="title-paragraph">
<span class="title-text" style="font-size: 16px;font-weight: bold;">缴费信息</span> <span class="title-text" style="font-size: 16px;font-weight: bold;">缴费信息</span>
</div> </div>
...@@ -230,8 +232,8 @@ ...@@ -230,8 +232,8 @@
<div style="padding-left: 10px;font-size: 16px;font-weight: bold;">预约信息</div> <div style="padding-left: 10px;font-size: 16px;font-weight: bold;">预约信息</div>
<div style="margin-left: auto;padding-right: 50px;"> <div style="margin-left: auto;padding-right: 50px;">
<el-button <el-button
v-hasPermi="['business:check:subscribe']"
v-show="checkDetail.deviceId === null && !isPlatRole" v-show="checkDetail.deviceId === null && !isPlatRole"
v-hasPermi="['business:check:subscribe']"
class="fourWordsBtn" class="fourWordsBtn"
@click="bookNow" @click="bookNow"
>立即预约</el-button> >立即预约</el-button>
...@@ -344,9 +346,16 @@ ...@@ -344,9 +346,16 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="影像报告" label-width="84px"> <el-form-item label="影像报告" label-width="84px">
<!-- <span>{{ checkDetail.shadowReport || '暂未上传' }}</span>--> <!-- <el-button v-show="checkDetail.shadowReport !== null && checkDetail.shadowReport !== ''" class="fourWordsBtn" @click="viewTheReport">查看报告</el-button>-->
<el-button v-show="checkDetail.shadowReport !== null && checkDetail.shadowReport !== ''" class="fourWordsBtn" @click="viewTheReport">查看报告</el-button> <span v-if="checkDetail.shadowReport === null || checkDetail.shadowReport === ''">{{ '暂未上传' }}</span>
<span v-show="checkDetail.shadowReport === null || checkDetail.shadowReport === ''">{{ '暂未上传' }}</span> <el-link
v-else
:href="`${baseUrl}${checkDetail.shadowReport}`"
:underline="false"
target="_blank"
>
<span class="el-icon-document">{{ getFileName(checkDetail.shadowReport) }}</span>
</el-link>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -383,9 +392,11 @@ ...@@ -383,9 +392,11 @@
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
import { updateCheck } from '@/api/business/mdeicalRecord' import { updateCheck } from '@/api/business/mdeicalRecord'
import { getManage } from '@/api/business/manage' import { getManage } from '@/api/business/manage'
import CheckSchedule from '@/views/service-management/medical-record-management/check-schedule.vue'
export default { export default {
name: 'CheckDetail', name: 'CheckDetail',
components: { CheckSchedule },
dicts: ['pet_sex', 'sterilization_status', 'vaccine_situation', 'check_type'], dicts: ['pet_sex', 'sterilization_status', 'vaccine_situation', 'check_type'],
data() { data() {
return { return {
...@@ -426,7 +437,15 @@ export default { ...@@ -426,7 +437,15 @@ export default {
value: '3', value: '3',
label: '已检查' label: '已检查'
} }
] ],
// 进度条所需
scheduleKey: {
checkSchedule: '', // 查询进度
createTime: '', // 开具处方单
payTime: '', // 缴费开票
checkStartTime: '', // 预约检查
reportTime: '' // 检查报告获取
}
} }
}, },
created() { created() {
...@@ -439,15 +458,21 @@ export default { ...@@ -439,15 +458,21 @@ export default {
methods: { methods: {
parseTime, parseTime,
getCheckDetail() { getCheckDetail() {
// const id = localStorage.getItem('checkId')
const id = this.$route.query.checkId const id = this.$route.query.checkId
console.log('xddx', id)
getManage(id).then(response => { getManage(id).then(response => {
console.log('od', response.data) console.log('od', response.data)
this.checkDetail = response.data this.checkDetail = response.data
this.checkDetail.payAmount = this.keepTwoDecimals(this.checkDetail.payAmount) this.checkDetail.payAmount = this.keepTwoDecimals(this.checkDetail.payAmount)
this.checkDetail.devicePrice = this.keepTwoDecimals(this.checkDetail.devicePrice) this.checkDetail.devicePrice = this.keepTwoDecimals(this.checkDetail.devicePrice)
this.schedule = parseInt(this.checkDetail.checkSchedule) + 1 this.schedule = parseInt(this.checkDetail.checkSchedule) + 1
this.scheduleKey = {
checkSchedule: this.checkDetail.checkSchedule,
createTime: this.checkDetail.createTime,
payTime: this.checkDetail.payTime,
checkStartTime: this.checkDetail.checkStartTime,
reportTime: this.checkDetail.reportTime
}
console.log('scheduleKey', this.scheduleKey)
}) })
}, },
// 金额保留两位小数 // 金额保留两位小数
...@@ -458,6 +483,14 @@ export default { ...@@ -458,6 +483,14 @@ export default {
return price.toFixed(2) return price.toFixed(2)
} }
}, },
// 获取文件名称
getFileName(name) {
if (name.lastIndexOf('/') > -1) {
return name.slice(name.lastIndexOf('/') + 1)
} else {
return ''
}
},
// 点击 预约信息-立即预约 // 点击 预约信息-立即预约
bookNow() { bookNow() {
this.$router.push({ this.$router.push({
...@@ -528,7 +561,7 @@ export default { ...@@ -528,7 +561,7 @@ export default {
border-left: 5px solid #5FB54B; border-left: 5px solid #5FB54B;
.title-text { .title-text {
margin-left: 0px; margin-left: 10px;
} }
} }
.dialog-footer{ .dialog-footer{
...@@ -547,4 +580,13 @@ export default { ...@@ -547,4 +580,13 @@ export default {
.input-detail { .input-detail {
width: 392px; width: 392px;
} }
.el-icon-document {
border: 1px solid #e4e7ed;
padding: 10px;
background-color: white;
transition: background-color 0.3s ease;
}
.el-icon-document:hover {
background-color: #f6f8fa;
}
</style> </style>
<template>
<!--进度信息模块封装-->
<div class="schedule-info">
<!-- 1--tip样式-->
<!-- <div class="progress-tip">-->
<!-- <div class="tip-green" />-->
<!-- <div-->
<!-- class="tip-content"-->
<!-- >进度信息-->
<!-- </div>-->
<!-- </div>-->
<!-- 2--内容样式-->
<div class="progress-base">
<div class="display-base">
<!-- 1--单个的背景,,后面按状态位切换样式-->
<div :class="[scheduleKey.checkSchedule === '0'? 'bkg-on' : 'bkg-off']">
<!--1.预约/现场挂号-->
<div
class="content-inner"
>
<div
class="avatar"
>
<el-image :src="require('@/assets/register/xinzengguahao_yuyue@2x.png')" />
</div>
<div
class="title"
>1.开具处方单
</div>
<div v-if="scheduleKey.createTime !== null" class="status-on">
{{ parseTime(scheduleKey.createTime, '{y}/{m}/{d} {h}:{i}') }}
</div>
<div v-else class="status-off">暂未开具处方单</div>
</div>
</div>
<!-- 箭头指示-->
<div class="arrow">
<el-image :src="require('@/assets/register/xinzengguahao_jaintou@2x.png')" />
</div>
<!-- 2--单个的背景,,后面按状态位切换样式-->
<div
:class="[scheduleKey.checkSchedule === '1'? 'bkg-on' : 'bkg-off']"
>
<!--2.录入诊断信息-->
<div
class="content-inner"
>
<div
class="avatar"
>
<el-image :src="require('@/assets/register/xinzengguahao_luru@2x.png')" />
</div>
<div
class="title"
>2.缴费开票
</div>
<div v-if="scheduleKey.payTime !== null" class="status-on">
{{ parseTime(scheduleKey.payTime, '{y}/{m}/{d} {h}:{i}') }}
</div>
<div v-else class="status-off">暂未缴费</div>
</div>
</div>
<!-- 箭头指示-->
<div class="arrow">
<el-image :src="require('@/assets/register/xinzengguahao_jaintou@2x.png')" />
</div>
<!-- 3--单个的背景,,后面按状态位切换样式-->
<div
:class="[scheduleKey.checkSchedule === '2'? 'bkg-on' : 'bkg-off']"
>
<!--3.生成病历报告-->
<div
class="content-inner"
>
<div
class="avatar"
>
<el-image :src="require('@/assets/register/xinzengguahao_shengchengbaogao@2x.png')" />
</div>
<div
class="title"
>3.预约检查
</div>
<div v-if="scheduleKey.checkStartTime !== null" class="status-on">
{{ parseTime(scheduleKey.checkStartTime, '{y}/{m}/{d} {h}:{i}') }}
</div>
<div v-else class="status-off">暂未预约</div>
</div>
</div>
<!-- 箭头指示-->
<div class="arrow">
<el-image :src="require('@/assets/register/xinzengguahao_jaintou@2x.png')" />
</div>
<!-- 4--单个的背景,,后面按状态位切换样式-->
<div
:class="[scheduleKey.checkSchedule === '3'? 'bkg-on' : 'bkg-off']"
>
<!--4.开具处方单-->
<div
class="content-inner"
>
<div
class="avatar"
>
<el-image :src="require('@/assets/register/xinzengguahao_kaichuangfdan@2x.png')" />
</div>
<div
class="title"
>4.检查获取报告
</div>
<div v-if="scheduleKey.reportTime !== null" class="status-on">
{{ parseTime(scheduleKey.reportTime, '{y}/{m}/{d} {h}:{i}') }}
</div>
<div v-else class="status-off">暂未检查</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'CheckSchedule',
props: {
scheduleKey: {
type: Object
},
data() {
return {}
}
}
}
</script>
<style lang="scss" scoped>
.schedule-info {
/*模块tip布局*/
.progress-tip {
display: flex;
/*模块tip图形样式--左绿色*/
.tip-green {
width: 3px;
height: 24px;
background: #5FB54B;
border-radius: 10px 10px 10px 10px;
}
/*模块tip内容样式*/
.tip-content {
padding-left: 13px;
font-size: 16px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei, serif;
font-weight: bold;
color: #333333;
}
}
//进度条整体框架边距
.progress-base {
padding-top: 50px;
padding-bottom: 50px;
//进度条排列方向及顺序布局
.display-base {
display: flex;
//当前触发的背景样式
.bkg-on {
width: 260px;
height: 143px;
background: #F1F9EF;
border-radius: 4px 4px 4px 4px;
opacity: 1;
}
//当前未触发的背景样式
.bkg-off {
width: 260px;
height: 143px;
background: #FFFFFF;
border-radius: 4px 4px 4px 4px;
opacity: 1;
border: 1px solid #5FB54B;
}
//箭头样式
.arrow {
height: 13px;
width: 104px;
margin: 65px 22px 65px 22px;
}
//状态触发状态
.status-on {
font-size: 12px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #5FB54B;
}
//状态未触发状态
.status-off {
font-size: 12px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #AFAFAF;
}
//头像
.avatar {
width: 44px;
height: 44px;
margin-bottom: 14px;
}
//标题
.title {
font-size: 14px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
font-weight: bold;
color: #333333;
margin-bottom: 14px;
}
//预约/挂号
.content-inner {
display: flex;
align-items: center;
flex-direction: column;
padding-top: 18px;
}
}
}
}
</style>
...@@ -200,8 +200,8 @@ ...@@ -200,8 +200,8 @@
placeholder="请选择检查日期" placeholder="请选择检查日期"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@change="changeDate"
:picker-options="pickerOptions" :picker-options="pickerOptions"
@change="changeDate"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -273,7 +273,7 @@ export default { ...@@ -273,7 +273,7 @@ export default {
const today = new Date() const today = new Date()
const maxDate = new Date() const maxDate = new Date()
maxDate.setDate(today.getDate() + 14) maxDate.setDate(today.getDate() + 14)
return time.getTime() < (today.getTime() - 1000 * 3600 * 24) || time.getTime() > maxDate.getTime() return time.getTime() < (today.getTime() - 1000 * 3600 * 24) || time.getTime() > (maxDate.getTime() - 1000 * 3600 * 24)
} }
}, },
checkDetail: {}, checkDetail: {},
......
...@@ -235,8 +235,8 @@ ...@@ -235,8 +235,8 @@
>详情 >详情
</el-button> </el-button>
<el-button <el-button
v-hasPermi="['business:check:subscribe']"
v-if="!isPlatRole" v-if="!isPlatRole"
v-hasPermi="['business:check:subscribe']"
style="width: 80px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(255, 157, 78);color: #FF9D4E;background: rgba(255,157,78,0.08);" style="width: 80px; border-radius: 6px 6px 6px 6px;border: 1px solid rgb(255, 157, 78);color: #FF9D4E;background: rgba(255,157,78,0.08);"
size="mini" size="mini"
type="success" type="success"
...@@ -298,8 +298,8 @@ ...@@ -298,8 +298,8 @@
placeholder="请选择检查日期" placeholder="请选择检查日期"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@change="changeDate"
:picker-options="pickerOptions" :picker-options="pickerOptions"
@change="changeDate"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -380,7 +380,7 @@ export default { ...@@ -380,7 +380,7 @@ export default {
const today = new Date() const today = new Date()
const maxDate = new Date() const maxDate = new Date()
maxDate.setDate(today.getDate() + 14) maxDate.setDate(today.getDate() + 14)
return time.getTime() < (today.getTime() - 1000 * 3600 * 24) || time.getTime() > maxDate.getTime() return time.getTime() < (today.getTime() - 1000 * 3600 * 24) || time.getTime() > (maxDate.getTime() - 1000 * 3600 * 24)
} }
}, },
isPlatRole: false, isPlatRole: false,
......
...@@ -68,12 +68,12 @@ ...@@ -68,12 +68,12 @@
</el-table-column> </el-table-column>
<el-table-column label="会员等级" min-width="80" prop="membershipLevel" show-overflow-tooltip> <el-table-column label="会员等级" min-width="80" prop="membershipLevel" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.membershipLevel || '-' }}</span> <span>{{ membershipLeveMap[scope.row.membershipLevel] || '-' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="会员卡余额" min-width="80" prop="balance" show-overflow-tooltip> <el-table-column label="会员卡余额" min-width="80" prop="balance" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.balance || '0.00' }}</span> <span>{{ moneyFormat(scope.row.balance) || '0.00' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="宠物昵称" min-width="80" prop="petNickname" show-overflow-tooltip> <el-table-column align="center" label="宠物昵称" min-width="80" prop="petNickname" show-overflow-tooltip>
...@@ -120,7 +120,7 @@ ...@@ -120,7 +120,7 @@
<script> <script>
import { getPetInfo } from '@/api/business/registration' import { getPetInfo } from '@/api/business/registration'
import { deepClone } from '@/utils' import { deepClone, moneyFormat } from '@/utils'
export default { export default {
// 数据字典 // 数据字典
...@@ -134,6 +134,14 @@ export default { ...@@ -134,6 +134,14 @@ export default {
}, },
data() { data() {
return { return {
// 会员等级下拉框
membershipLeveMap: {
'1': '一级会员',
'2': '二级会员',
'3': '三级会员',
'4': '四级会员',
'5': '五级会员'
},
chooseForm: { chooseForm: {
petStatus: '' petStatus: ''
}, },
...@@ -185,6 +193,7 @@ export default { ...@@ -185,6 +193,7 @@ export default {
// this.getList() // this.getList()
}, },
methods: { methods: {
moneyFormat,
handleInput(value) { handleInput(value) {
const newValue = value.replace(/\s/g, '') const newValue = value.replace(/\s/g, '')
this.queryParams.phone = newValue this.queryParams.phone = newValue
......
...@@ -44,17 +44,21 @@ ...@@ -44,17 +44,21 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="name" label="证书"> <el-form-item prop="name" label="证书">
<el-image <span v-if="doctorForm.certificateUrl===null || doctorForm.certificateUrl===''">-</span>
style="width: 100px; height: 100px" <div v-else>
:src="baseURL+doctorForm.certificateUrl" <el-image
/> style="width: 100px; height: 100px"
:src="baseURL+doctorForm.certificateUrl"
/>
</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="name" label="门诊诊查费"> <el-form-item prop="name" label="门诊诊查费">
<div style="display: flex;"> <div style="display: flex;">
<el-input v-model="doctorForm.examinationFee" :disabled="true" maxlength="20" /> <el-input v-model="doctorForm.examinationFee" :disabled="true" maxlength="20" />
<div style="margin-left: 10px;"></div></div> <div style="margin-left: 10px;"></div>
</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
......
...@@ -588,7 +588,6 @@ export default { ...@@ -588,7 +588,6 @@ export default {
}, },
// 选择已有宠物, 表单不可编辑 // 选择已有宠物, 表单不可编辑
handleChoose() { handleChoose() {
this.reSetPetForm()
this.isEdit = false this.isEdit = false
this.showPetModle = true this.showPetModle = true
this.form.petStatus = '2' this.form.petStatus = '2'
...@@ -599,6 +598,7 @@ export default { ...@@ -599,6 +598,7 @@ export default {
this.showPetModle = false this.showPetModle = false
}, },
petChoose(chooseData) { petChoose(chooseData) {
this.reSetPetForm()
console.log('chooseData', chooseData) console.log('chooseData', chooseData)
const petData = chooseData.petBo // 宠物信息 const petData = chooseData.petBo // 宠物信息
const petOwnerBo = chooseData.petOwnerBo // 宠主信息 const petOwnerBo = chooseData.petOwnerBo // 宠主信息
......
...@@ -129,6 +129,7 @@ ...@@ -129,6 +129,7 @@
:header-cell-style="{background:'#F4F4F4'}" :header-cell-style="{background:'#F4F4F4'}"
:data="registerList" :data="registerList"
@select="selectChange" @select="selectChange"
@select-all="selectChange"
> >
<el-table-column align="center" type="selection" width="55" /> <el-table-column align="center" type="selection" width="55" />
<el-table-column align="left" label="序号" min-width="55" prop="index" show-overflow-tooltip type="index" /> <el-table-column align="left" label="序号" min-width="55" prop="index" show-overflow-tooltip type="index" />
...@@ -205,7 +206,7 @@ ...@@ -205,7 +206,7 @@
v-hasPermi="['business:registration:edit']" v-hasPermi="['business:registration:edit']"
icon="el-icon-paperclip" icon="el-icon-paperclip"
plain plain
:disabled="scope.row.isAdd === '1'"
size="mini" size="mini"
class="el-button--warning--solid--four" class="el-button--warning--solid--four"
type="warning" type="warning"
...@@ -296,6 +297,8 @@ export default { ...@@ -296,6 +297,8 @@ export default {
loading: true, loading: true,
// 选中数组 // 选中数组
ids: [], ids: [],
// 所有挂号信息ID(用于辅助, 里面的数据永远不变, 除了 新增/删除 数据时)
idsForever: [],
// 非单个禁用 // 非单个禁用
single: true, single: true,
// 非多个禁用 // 非多个禁用
...@@ -388,6 +391,7 @@ export default { ...@@ -388,6 +391,7 @@ export default {
// 获取全部挂号的id // 获取全部挂号的id
this.registerIds = response.rows.idList this.registerIds = response.rows.idList
this.registerIdsForever = response.rows.idList this.registerIdsForever = response.rows.idList
this.idsForever = response.rows.idList
console.log('这是我要调的挂号列表内容:', this.registerList) console.log('这是我要调的挂号列表内容:', this.registerList)
this.total = response.total this.total = response.total
this.loading = false this.loading = false
...@@ -473,12 +477,9 @@ export default { ...@@ -473,12 +477,9 @@ export default {
// 选择全部 // 选择全部
checkAll() { checkAll() {
this.registerIds = this.registerIdsForever this.ids = this.idsForever
// 标志位, 使得@select回调函数判断往哪个临时集合里添加
this.isCheckAll = true
// 调用手动勾选 // 调用手动勾选
this.manualCheck() this.manualCheck()
console.log('全部选择', this.isCheckAll)
}, },
// 手动勾选 // 手动勾选
manualCheck() { manualCheck() {
...@@ -486,54 +487,36 @@ export default { ...@@ -486,54 +487,36 @@ export default {
this.$nextTick().then(() => { this.$nextTick().then(() => {
// 当前页结合数据的id只要在临时集合里,就使得复选框勾选 // 当前页结合数据的id只要在临时集合里,就使得复选框勾选
this.registerList.forEach(item => { this.registerList.forEach(item => {
if (this.isCheckAll) { if (this.ids.includes(item.id)) {
if (this.registerIds.includes(item.id)) { this.$refs.table.toggleRowSelection(item, true)
this.$refs.table.toggleRowSelection(item, true)
}
} else { } else {
if (this.registerEmptyIds.includes(item.id)) { this.$refs.table.toggleRowSelection(item, false)
this.$refs.table.toggleRowSelection(item, true)
}
} }
}) })
}) })
}, },
// 反向选择(把永久临时集合和变化的临时集合做减法重新赋给变化的临时集合赋给) // 反向选择(把永久临时集合和变化的临时集合做减法重新赋给变化的临时集合赋给)
reverseSelection() { reverseSelection() {
console.log('永久的集合', this.registerIdsForever) const temp = []
console.log('临时集合', this.registerEmptyIds) this.registerList.forEach(item => {
if (this.isCheckAll) { console.log(this.ids.includes(item.id))
this.registerEmptyIds = this.registerIdsForever.filter(id => !this.registerIds.includes(id)) if (!this.ids.includes(item.id)) {
} else { temp.push(item.id)
this.registerEmptyIds = this.registerIdsForever.filter(id => !this.registerEmptyIds.includes(id)) }
} })
this.isCheckAll = false this.ids = temp
this.getList() this.manualCheck()
}, },
// 表格当前手动勾选的 // 表格当前手动勾选的
// 表格当前手动勾选的
selectChange(selection, row) { selectChange(selection, row) {
console.log('selectChange', selection, '----', row) console.log('selectChange', selection, '----', row)
if (this.isCheckAll) { const temp = []
// 判断当前选中的存不存在,存在删除;不存在添加 selection.forEach(item => {
if (this.registerIds.includes(row.id)) { temp.push(item.id)
this.registerIds = this.registerIds.filter(id => id !== row.id) })
console.log('filter', this.registerIds.filter(id => id !== row.id)) this.ids = temp
} else {
this.registerIds.push(row.id)
}
} else {
if (this.registerEmptyIds.includes(row.id)) {
this.registerEmptyIds = this.registerEmptyIds.filter(id => id !== row.id)
} else {
this.registerEmptyIds.push(row.id)
}
}
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
console.log('this.ids', this.ids)
}, },
/** 功能按钮--导出按钮操作 */ /** 功能按钮--导出按钮操作 */
handleExport() { handleExport() {
if (this.ids.length !== 0) { if (this.ids.length !== 0) {
......
...@@ -57,16 +57,16 @@ ...@@ -57,16 +57,16 @@
>选择全部 >选择全部
</el-button> </el-button>
<el-button <el-button
class="fourWordswhiteBtn"
v-hasPermi="['business:manage:export']" v-hasPermi="['business:manage:export']"
class="fourWordswhiteBtn"
icon="el-icon-back" icon="el-icon-back"
size="mini" size="mini"
@click="reverseSelect(treatmentList)" @click="reverseSelect(treatmentList)"
>反向选择 >反向选择
</el-button> </el-button>
<el-button <el-button
class="fourWordswhiteBtn"
v-hasPermi="['business:manage:export']" v-hasPermi="['business:manage:export']"
class="fourWordswhiteBtn"
icon="el-icon-upload2" icon="el-icon-upload2"
size="mini" size="mini"
@click="handleExport" @click="handleExport"
...@@ -192,15 +192,14 @@ ...@@ -192,15 +192,14 @@
@click="handleDetails(scope.row)" @click="handleDetails(scope.row)"
>详情</el-button> >详情</el-button>
<el-button <el-button
v-if="scope.row.treatSchedule === '1' && (scope.row.payType === '1' || scope.row.payType === '2')"
v-hasPermi="['business:treat:distribution']" v-hasPermi="['business:treat:distribution']"
v-if="scope.row.treatSchedule === '1' && scope.row.payType === '1' && scope.row.payType === '2'"
class="bookNow" class="bookNow"
size="mini" size="mini"
icon="el-icon-orange" icon="el-icon-orange"
@click="handleSubscribe(scope.row)" @click="handleSubscribe(scope.row)"
>分配诊室</el-button> >分配诊室</el-button>
<el-button <el-button
v-hasPermi="['business:treat:distribution']"
v-else v-else
class="bookNowNo" class="bookNowNo"
size="mini" size="mini"
...@@ -274,7 +273,11 @@ ...@@ -274,7 +273,11 @@
style="width: 100%" style="width: 100%"
:header-cell-style="{background:'#F4F4F4'}" :header-cell-style="{background:'#F4F4F4'}"
> >
<el-table-column prop="consultRoomName" align="left" label="诊室名称" /> <el-table-column prop="consulting_name" align="left" label="诊室名称">
<template slot-scope="scope">
<span>{{ scope.row.consulting_name || '-' }}</span>
</template>
</el-table-column>
<el-table-column prop="treatStartTime" align="left" label="治疗日期"> <el-table-column prop="treatStartTime" align="left" label="治疗日期">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.useDate, '{y}/{m}/{d}') || '-' }}</span> <span>{{ parseTime(scope.row.useDate, '{y}/{m}/{d}') || '-' }}</span>
...@@ -290,7 +293,11 @@ ...@@ -290,7 +293,11 @@
<span>{{ scope.row.useTimeRange || '-' }}</span> <span>{{ scope.row.useTimeRange || '-' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userName" align="left" label="治疗负责人" /> <el-table-column prop="userName" align="left" label="治疗负责人">
<template slot-scope="scope">
<span>{{ scope.row.duration + 'h'|| '-' }}</span>
</template>
</el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="useTotal>0" v-show="useTotal>0"
...@@ -360,39 +367,30 @@ ...@@ -360,39 +367,30 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="开始时间" prop="sTime"> <el-form-item label="开始时间" prop="startTime">
<el-time-select <el-cascader
v-model="reservationForm.sTime" v-model="reservationForm.startTime"
style="width: 150px" :options="timeOptions"
is-range placeholder="请选择开始时间"
placeholder="请选择治疗开始时间" @change="calculateEndTime"
format="HH:mm"
value-format="HH:mm"
:picker-options="{
start: '00:00',
step: '01:00',
end: '12:00',
maxTime:reservationForm.eTime
}"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="结束时间" prop="eTime"> <el-form-item label="治疗时长" prop="duration">
<el-time-select <el-select v-model="reservationForm.duration" placeholder="请选择治疗时长" @change="calculateEndTime">
v-model="reservationForm.eTime" <el-option
style="width: 150px" v-for="option in durationOptions"
is-range :key="option"
placeholder="请选择治疗结束时间" :label="option + 'h'"
format="HH:mm" :value="option"
value-format="HH:mm" />
:picker-options="{ </el-select>
start: '00:00', </el-form-item>
step: '01:00', </el-col>
end: '12:00', <el-col :span="8">
minTime:reservationForm.sTime <el-form-item label="结束时间">
}" <span>{{ reservationForm.eTime }}</span>
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -425,6 +423,24 @@ export default { ...@@ -425,6 +423,24 @@ export default {
dicts: ['check_type', 'pet_insure', 'payment_status', 'payment_status', 'treat_type'], dicts: ['check_type', 'pet_insure', 'payment_status', 'payment_status', 'treat_type'],
data() { data() {
return { return {
timeOptions: Array.from({ length: 24 }, (_, i) => {
const hour = i.toString().padStart(2, '0')
return {
value: hour,
label: hour,
children: [
{
value: '00',
label: '00'
},
{
value: '30',
label: '30'
}
]
}
}),
durationOptions: [0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6],
// 使用人下拉框 // 使用人下拉框
userNameList: [], userNameList: [],
// 使用记录分页 // 使用记录分页
...@@ -476,10 +492,10 @@ export default { ...@@ -476,10 +492,10 @@ export default {
userName: [ userName: [
{ required: true, message: '请选择治疗负责人', trigger: 'change' } { required: true, message: '请选择治疗负责人', trigger: 'change' }
], ],
sTime: [ startTime: [
{ required: true, message: '请选择开始时间', trigger: 'change' } { required: true, message: '请选择治疗开始时间', trigger: 'change' }
], ],
eTime: [ duration: [
{ required: true, message: '请选择结束时间', trigger: 'change' } { required: true, message: '请选择结束时间', trigger: 'change' }
] ]
}, },
...@@ -505,8 +521,10 @@ export default { ...@@ -505,8 +521,10 @@ export default {
treatType: '0', treatType: '0',
userId: '', userId: '',
userName: '', userName: '',
startTime: [],
sTime: '', sTime: '',
eTime: '' eTime: '-',
duration: ''
}, },
// 分配诊室搜索预约记录 // 分配诊室搜索预约记录
allocationForm: { allocationForm: {
...@@ -557,6 +575,35 @@ export default { ...@@ -557,6 +575,35 @@ export default {
// this.getTreatmentDropdown() // this.getTreatmentDropdown()
}, },
methods: { methods: {
sTimeValid(rule, value, callback) {
if (this.startTime.length === 0) {
callback(new Error('请选择开始时间'))
}
},
// 计算结束时间
calculateEndTime() {
if (this.reservationForm.startTime.length === 2 && this.reservationForm.duration) {
const startHour = Number(this.reservationForm.startTime[0])
const startMinute = Number(this.reservationForm.startTime[1])
const duration = Number(this.reservationForm.duration)
this.reservationForm.sTime = startHour + ':' + startMinute
let endHour = startHour + Math.floor(duration)
let endMinute = startMinute + (duration % 1) * 60
if (endMinute >= 60) {
endHour += 1
endMinute -= 60
}
if (endHour >= 24) {
this.reservationForm.eTime = `${endHour % 24}:${endMinute.toString().padStart(2, '0')} (+1)`
} else {
this.reservationForm.eTime = `${endHour}:${endMinute.toString().padStart(2, '0')}`
}
} else {
this.reservationForm.eTime = '-'
}
},
// 表单选择框对齐 // 表单选择框对齐
cellClass(row) { cellClass(row) {
if (row.columnIndex === 0) { if (row.columnIndex === 0) {
......
<template>
<!--进度信息模块封装-->
<div class="schedule-info">
<!-- 1--tip样式-->
<!-- <div class="progress-tip">-->
<!-- <div class="tip-green" />-->
<!-- <div-->
<!-- class="tip-content"-->
<!-- >进度信息-->
<!-- </div>-->
<!-- </div>-->
<!-- 2--内容样式-->
<div class="progress-base">
<div class="display-base">
<!-- 1--单个的背景,,后面按状态位切换样式-->
<div :class="[scheduleKey.checkSchedule === '0'? 'bkg-on' : 'bkg-off']">
<!--1.预约/现场挂号-->
<div
class="content-inner"
>
<div
class="avatar"
>
<el-image :src="require('@/assets/register/xinzengguahao_yuyue@2x.png')" />
</div>
<div
class="title"
>1.开具处方单
</div>
<div v-if="scheduleKey.createTime !== null" class="status-on">
{{ parseTime(scheduleKey.createTime, '{y}/{m}/{d} {h}:{i}') }}
</div>
<div v-else class="status-off">暂未开具处方单</div>
</div>
</div>
<!-- 箭头指示-->
<div class="arrow">
<el-image :src="require('@/assets/register/xinzengguahao_jaintou@2x.png')" />
</div>
<!-- 2--单个的背景,,后面按状态位切换样式-->
<div
:class="[scheduleKey.checkSchedule === '1'? 'bkg-on' : 'bkg-off']"
>
<!--2.录入诊断信息-->
<div
class="content-inner"
>
<div
class="avatar"
>
<el-image :src="require('@/assets/register/xinzengguahao_luru@2x.png')" />
</div>
<div
class="title"
>2.缴费开票
</div>
<div v-if="scheduleKey.payTime !== null" class="status-on">
{{ parseTime(scheduleKey.payTime, '{y}/{m}/{d} {h}:{i}') }}
</div>
<div v-else class="status-off">暂未缴费</div>
</div>
</div>
<!-- 箭头指示-->
<div class="arrow">
<el-image :src="require('@/assets/register/xinzengguahao_jaintou@2x.png')" />
</div>
<!-- 3--单个的背景,,后面按状态位切换样式-->
<div
:class="[scheduleKey.checkSchedule === '2'? 'bkg-on' : 'bkg-off']"
>
<!--3.生成病历报告-->
<div
class="content-inner"
>
<div
class="avatar"
>
<el-image :src="require('@/assets/register/xinzengguahao_shengchengbaogao@2x.png')" />
</div>
<div
class="title"
>3.分配诊室
</div>
<div v-if="scheduleKey.consultRoomTime !== null" class="status-on">
{{ parseTime(scheduleKey.consultRoomTime, '{y}/{m}/{d} {h}:{i}') }}
</div>
<div v-else class="status-off">暂未预约</div>
</div>
</div>
<!-- 箭头指示-->
<div class="arrow">
<el-image :src="require('@/assets/register/xinzengguahao_jaintou@2x.png')" />
</div>
<!-- 4--单个的背景,,后面按状态位切换样式-->
<div
:class="[scheduleKey.checkSchedule === '3'? 'bkg-on' : 'bkg-off']"
>
<!--4.开具处方单-->
<div
class="content-inner"
>
<div
class="avatar"
>
<el-image :src="require('@/assets/register/xinzengguahao_kaichuangfdan@2x.png')" />
</div>
<div
class="title"
>4.治疗
</div>
<div v-if="scheduleKey.reportTime !== null" class="status-on">
{{ parseTime(scheduleKey.reportTime, '{y}/{m}/{d} {h}:{i}') }}
</div>
<div v-else class="status-off">暂未治疗</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'TreatmentSchedule',
props: {
scheduleKey: {
type: Object
},
data() {
return {}
}
}
}
</script>
<style lang="scss" scoped>
.schedule-info {
/*模块tip布局*/
.progress-tip {
display: flex;
/*模块tip图形样式--左绿色*/
.tip-green {
width: 3px;
height: 24px;
background: #5FB54B;
border-radius: 10px 10px 10px 10px;
}
/*模块tip内容样式*/
.tip-content {
padding-left: 13px;
font-size: 16px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei, serif;
font-weight: bold;
color: #333333;
}
}
//进度条整体框架边距
.progress-base {
padding-top: 50px;
padding-bottom: 50px;
//进度条排列方向及顺序布局
.display-base {
display: flex;
//当前触发的背景样式
.bkg-on {
width: 260px;
height: 143px;
background: #F1F9EF;
border-radius: 4px 4px 4px 4px;
opacity: 1;
}
//当前未触发的背景样式
.bkg-off {
width: 260px;
height: 143px;
background: #FFFFFF;
border-radius: 4px 4px 4px 4px;
opacity: 1;
border: 1px solid #5FB54B;
}
//箭头样式
.arrow {
height: 13px;
width: 104px;
margin: 65px 22px 65px 22px;
}
//状态触发状态
.status-on {
font-size: 12px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #5FB54B;
}
//状态未触发状态
.status-off {
font-size: 12px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #AFAFAF;
}
//头像
.avatar {
width: 44px;
height: 44px;
margin-bottom: 14px;
}
//标题
.title {
font-size: 14px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
font-weight: bold;
color: #333333;
margin-bottom: 14px;
}
//预约/挂号
.content-inner {
display: flex;
align-items: center;
flex-direction: column;
padding-top: 18px;
}
}
}
}
</style>
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