提交 699f4622 编写于 作者: zhaosheng.zhang's avatar zhaosheng.zhang

Merge branch 'feature/task/diagnosis-list' into 'release'

Feature/task/diagnosis list

See merge request !294
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
<span>未选定医生</span> <span>未选定医生</span>
</div> </div>
<div class="work-info-Num"> <div class="work-info-Num">
<div v-if="diagnoseType != 4"> <div v-if="diagnoseType != 4 && formData.diagnoseChannel != 3">
<span <span
class="work-info-Num-span" class="work-info-Num-span"
>可选排班时间(预约已满需要沟通确定时间)</span> >可选排班时间(预约已满需要沟通确定时间)</span>
...@@ -194,6 +194,10 @@ ...@@ -194,6 +194,10 @@
return {}; return {};
}, },
}, },
diagnoseChannel: {
type: Number,
default: 0,
},
}, },
data() { data() {
return { return {
...@@ -218,7 +222,7 @@ ...@@ -218,7 +222,7 @@
receptionBeginTime: '', receptionBeginTime: '',
receptionEndTime: '', receptionEndTime: '',
bizType: '', bizType: '',
diagnoseChannel: 1, diagnoseChannel: null,
doctorDepartmentId: '', doctorDepartmentId: '',
}, },
doctorList: [], doctorList: [],
...@@ -291,6 +295,7 @@ ...@@ -291,6 +295,7 @@
) { ) {
this.refreshData(); this.refreshData();
} }
this.formData.diagnoseChannel = !this.diagnoseChannel ? 1 : this.diagnoseChannel;
}, },
methods: { methods: {
getChooseTimeValue(value, index) { getChooseTimeValue(value, index) {
...@@ -326,7 +331,6 @@ ...@@ -326,7 +331,6 @@
}); });
}, },
confirm() { confirm() {
console.log(this.startTime, 'starrrr');
if (this.formData.receptionName == '') { if (this.formData.receptionName == '') {
this.$message({ this.$message({
message: '请先选择接诊医生', message: '请先选择接诊医生',
...@@ -335,7 +339,7 @@ ...@@ -335,7 +339,7 @@
}); });
return false; return false;
} }
if (this.startTime == '' && this.diagnoseType != 4) { if (this.startTime == '' && this.diagnoseType != 4 && this.formData.diagnoseChannel != 3) {
this.$message({ this.$message({
message: '请选择排班时间', message: '请选择排班时间',
type: 'warning', type: 'warning',
...@@ -409,7 +413,6 @@ ...@@ -409,7 +413,6 @@
doctorChanged(value) { doctorChanged(value) {
const selected = this.doctorList.find((item) => item.doctorId === value); const selected = this.doctorList.find((item) => item.doctorId === value);
if (selected) { if (selected) {
console.log(selected, 'selected');
this.formData.receptionId = value; this.formData.receptionId = value;
this.formData.receptionName = selected.doctorName; this.formData.receptionName = selected.doctorName;
this.formData.doctorTitle = selected.doctorTitle; this.formData.doctorTitle = selected.doctorTitle;
......
...@@ -29,7 +29,8 @@ ...@@ -29,7 +29,8 @@
:label="item.label" :label="item.label"
:show-overflow-tooltip="item.showtooltip" :show-overflow-tooltip="item.showtooltip"
:sortable=" :sortable="
item.prop == 'appointBeginTime' || item.prop == 'assistantBeginTime' item.prop == 'appointBeginTime' || item.prop == 'assistantBeginTime' ||
item.prop == 'assistantTime' || item.prop == 'receptionTime'
? 'custom' ? 'custom'
: false : false
" "
...@@ -50,6 +51,26 @@ ...@@ -50,6 +51,26 @@
<p>{{ scope.row.receptionBeginTime }}</p> <p>{{ scope.row.receptionBeginTime }}</p>
<p>{{ scope.row.receptionEndTime }}</p> <p>{{ scope.row.receptionEndTime }}</p>
</div> </div>
<div v-else-if="scope.column.property == 'assistantTime'">
<div
:style="{
color: scope.row.diagnoseChannel === 3 && scope.row.status === 3 ? 'red' : ''
}"
>
<p v-if="scope.row.diagnoseChannel === 3 && scope.row.status === 3">
距自动结束还剩
</p>
<p>{{ goTime(scope.row.assistantTime) }}</p>
</div>
</div>
<div v-else-if="scope.column.property == 'receptionTime'">
<div :style="{ color: isReceptionTime(scope) ? 'red' : ''}">
<p v-if="isReceptionTime(scope)">
距自动取消还剩
</p>
<p>{{ goTime(scope.row.receptionTime) }}</p>
</div>
</div>
<div v-else> <div v-else>
<p>{{ scope.row[scope.column.property] }}</p> <p>{{ scope.row[scope.column.property] }}</p>
</div> </div>
...@@ -128,8 +149,9 @@ ...@@ -128,8 +149,9 @@
> >
修改科室 修改科室
</el-button> </el-button>
<!-- 问诊方式不能为小程序问诊 scope.row.diagnoseChannel!==3隐藏发送消息 -->
<el-button <el-button
v-if="showBtn(scope.row, 3, 4, 5, 6, 21, 22, 23, 24, 25, 26)" v-if="showBtn(scope.row, 3, 4, 5, 6, 21, 22, 23, 24, 25, 26) && scope.row.diagnoseChannel !== 3"
type="primary" type="primary"
size="small" size="small"
class="btn" class="btn"
...@@ -193,7 +215,7 @@ ...@@ -193,7 +215,7 @@
手动打回 手动打回
</el-button> </el-button>
<el-button <el-button
v-if="scope.row.diagnoseType !== 4 && showBtn(scope.row, 3, 26)" v-if="scope.row.diagnoseType !== 4 && showBtn(scope.row, 3, 26) && scope.row.diagnoseChannel !== 3"
type="primary" type="primary"
size="small" size="small"
class="btn" class="btn"
...@@ -252,6 +274,9 @@ ...@@ -252,6 +274,9 @@
<script> <script>
import { DIAGNOS_LIST_NEW } from '@/utils/GeneralData/diagnosis-list-new'; import { DIAGNOS_LIST_NEW } from '@/utils/GeneralData/diagnosis-list-new';
import TabSet from '@/components/common/tab-set'; import TabSet from '@/components/common/tab-set';
import dayjs from 'dayjs';
import duration from 'dayjs/plugin/duration';
dayjs.extend(duration);
export default { export default {
components: { components: {
TabSet, TabSet,
...@@ -422,7 +447,18 @@ ...@@ -422,7 +447,18 @@
}, },
callAssistant(row) { callAssistant(row) {
this.$emit('callAssistant', row); this.$emit('callAssistant', row);
} },
// 转成时分秒
goTime(time) {
return dayjs.duration(time, 'seconds').format('HH:mm:ss');
},
isReceptionTime(scope) {
if (scope.row.diagnoseChannel === 3
&& (scope.row.status === 2 || scope.row.status === 21 || scope.row.status === 22
|| scope.row.status === 23 || scope.row.status === 24 || scope.row.status === 25
|| scope.row.status === 26)
) return true;
},
}, },
}; };
</script> </script>
......
...@@ -109,6 +109,16 @@ export const DIAGNOS_LIST_NEW = [ ...@@ -109,6 +109,16 @@ export const DIAGNOS_LIST_NEW = [
label: '稍后跟进状态', label: '稍后跟进状态',
showtooltip: false, showtooltip: false,
}, },
{
prop: 'assistantTime',
label: '问诊时长',
showtooltip: false,
},
{
prop: 'receptionTime',
label: '接诊时长',
showtooltip: false,
},
{ {
prop: 'operateUserId', prop: 'operateUserId',
label: '运营人员ID', label: '运营人员ID',
......
...@@ -663,3 +663,18 @@ export const TABLE_COLUMN = [ ...@@ -663,3 +663,18 @@ export const TABLE_COLUMN = [
showtooltip: true, showtooltip: true,
}, },
]; ];
export const DIAGNOSE_CHANNEL = [
{
label: 'app问诊',
value: 1,
},
{
label: '线下问诊',
value: 2,
},
{
label: '小程序问诊',
value: 3,
},
];
...@@ -81,6 +81,18 @@ ...@@ -81,6 +81,18 @@
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
/> />
</el-form-item> </el-form-item>
<el-form-item
label="订单金额"
prop="orderTotalPrice"
>
<el-input
v-model="formData.orderTotalPrice"
placeholder="请输入问诊价格"
disabled
class="set-width"
/>
(单位元)
</el-form-item>
<el-form-item <el-form-item
label="问诊价格" label="问诊价格"
prop="price" prop="price"
...@@ -93,6 +105,33 @@ ...@@ -93,6 +105,33 @@
/> />
(单位元) (单位元)
</el-form-item> </el-form-item>
<el-form-item
label="诊疗费"
prop="additionPrice"
>
<el-input
v-model="formData.additionPrice"
placeholder="请输入诊疗费"
disabled
class="set-width"
/>
(单位元)
</el-form-item>
<el-form-item label="问诊方式">
<el-select
v-model="formData.diagnoseChannel"
placeholder="请选择问诊方式"
class="set-width"
disabled
>
<el-option
v-for="item of diagnoseChannelList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="支付方式"> <el-form-item label="支付方式">
<el-select <el-select
v-model="formData.payType" v-model="formData.payType"
...@@ -686,7 +725,7 @@ ...@@ -686,7 +725,7 @@
:img-list="formData.illnessImageUrls" :img-list="formData.illnessImageUrls"
/> />
</el-form-item> </el-form-item>
<el-form-item label="检测报告"> <el-form-item label="病情文件">
<div <div
v-for="item in formData.illnessPdfUrls" v-for="item in formData.illnessPdfUrls"
:key="item.name" :key="item.name"
...@@ -719,7 +758,71 @@ ...@@ -719,7 +758,71 @@
<el-input <el-input
v-model="formData.diagnoseAdvice" v-model="formData.diagnoseAdvice"
type="textarea" type="textarea"
placeholder="请输入更新建议(更新后原建议将被删除)" placeholder="请填写您对患者病情的诊断描述和建议"
:disabled="editorType == 2"
maxlength="1000"
show-word-limit
/>
</el-form-item>
<el-form-item
label="中药建议"
prop="tcmAdvice"
>
<p class="old-diagnoseAdvice">
{{ oldTcmAdvice }}
</p>
<el-input
v-model="formData.tcmAdvice"
type="textarea"
placeholder="请输入建议使用的中药名称及用量、频次等"
:disabled="editorType == 2"
maxlength="1000"
show-word-limit
/>
</el-form-item>
<el-form-item
label="西药建议"
prop="westernAdvice"
>
<p class="old-diagnoseAdvice">
{{ oldWesternAdvice }}
</p>
<el-input
v-model="formData.westernAdvice"
type="textarea"
placeholder="请输入建议使用的西药名称及用量、频次等"
:disabled="editorType == 2"
maxlength="1000"
show-word-limit
/>
</el-form-item>
<el-form-item
label="检查建议"
prop="inspectionAdvice"
>
<p class="old-diagnoseAdvice">
{{ oldInspectionAdvice }}
</p>
<el-input
v-model="formData.inspectionAdvice"
type="textarea"
placeholder="建议患者进一步作何检查"
:disabled="editorType == 2"
maxlength="1000"
show-word-limit
/>
</el-form-item>
<el-form-item
label="生活建议"
prop="lifeAdvice"
>
<p class="old-diagnoseAdvice">
{{ oldLifeAdvice }}
</p>
<el-input
v-model="formData.lifeAdvice"
type="textarea"
placeholder="生活作息、饮食、日常运动等方面的建议"
:disabled="editorType == 2" :disabled="editorType == 2"
maxlength="1000" maxlength="1000"
show-word-limit show-word-limit
...@@ -1006,6 +1109,7 @@ import { ...@@ -1006,6 +1109,7 @@ import {
SOURCE_LIST, SOURCE_LIST,
STATUS_LIST, STATUS_LIST,
TYPE_LIST, TYPE_LIST,
DIAGNOSE_CHANNEL
} from '@/utils/constants'; } from '@/utils/constants';
import { getBirth } from '@/utils/index'; import { getBirth } from '@/utils/index';
...@@ -1029,6 +1133,10 @@ export default { ...@@ -1029,6 +1133,10 @@ export default {
loading: true, loading: true,
btnDisable: false, btnDisable: false,
oldDiagnoseAdvice: '', // 旧的诊断建议 oldDiagnoseAdvice: '', // 旧的诊断建议
oldTcmAdvice: '', // 旧的中药建议
oldWesternAdvice: '',
oldInspectionAdvice: '',
oldLifeAdvice: '',
formData: { formData: {
// 预约单信息 // 预约单信息
diagnoseType: '', diagnoseType: '',
...@@ -1115,9 +1223,13 @@ export default { ...@@ -1115,9 +1223,13 @@ export default {
name: '', name: '',
url: '', url: '',
}, },
additionPrice: null, // 诊疗费
orderTotalPrice: null,
diagnoseChannel: null
}, },
tyleList: TYPE_LIST, tyleList: TYPE_LIST,
payList: PAY_LIST, payList: PAY_LIST,
diagnoseChannelList: DIAGNOSE_CHANNEL,
sourceList: SOURCE_LIST, sourceList: SOURCE_LIST,
statusList: STATUS_LIST, statusList: STATUS_LIST,
carList: CAR_LIST, carList: CAR_LIST,
...@@ -1281,6 +1393,11 @@ export default { ...@@ -1281,6 +1393,11 @@ export default {
if (res.code == '000000') { if (res.code == '000000') {
this.formData = res.data; this.formData = res.data;
this.formData.price = this.priceFilter(this.formData.price); this.formData.price = this.priceFilter(this.formData.price);
this.formData.additionPrice = this.priceFilter(this.formData.additionPrice);
console.log('问诊价格=====', this.formData.price);
console.log('诊疗费价格=====', this.formData.additionPrice);
this.formData.orderTotalPrice = this.formData.price + this.formData.additionPrice;
console.log('订单总金额=====', this.formData.additionPrice);
this.formData.serviceFee = this.priceFilter( this.formData.serviceFee = this.priceFilter(
this.formData.serviceFee this.formData.serviceFee
); );
...@@ -1306,6 +1423,22 @@ export default { ...@@ -1306,6 +1423,22 @@ export default {
this.oldDiagnoseAdvice = this.formData.diagnoseAdvice; this.oldDiagnoseAdvice = this.formData.diagnoseAdvice;
this.formData.diagnoseAdvice = ''; this.formData.diagnoseAdvice = '';
} }
if (this.formData.tcmAdvice) {
this.oldTcmAdvice = this.formData.tcmAdvice;
this.formData.tcmAdvice = '';
}
if (this.formData.westernAdvice) {
this.oldWesternAdvice = this.formData.westernAdvice;
this.formData.westernAdvice = '';
}
if (this.formData.inspectionAdvice) {
this.oldInspectionAdvice = this.formData.inspectionAdvice;
this.formData.inspectionAdvice = '';
}
if (this.formData.lifeAdvice) {
this.oldLifeAdvice = this.formData.lifeAdvice;
this.formData.lifeAdvice = '';
}
if (!this.formData.sex) { if (!this.formData.sex) {
this.formData.sex = 1; this.formData.sex = 1;
} }
...@@ -1440,6 +1573,18 @@ export default { ...@@ -1440,6 +1573,18 @@ export default {
if (!params.diagnoseAdvice) { if (!params.diagnoseAdvice) {
params.diagnoseAdvice = this.oldDiagnoseAdvice; params.diagnoseAdvice = this.oldDiagnoseAdvice;
} }
if (!params.tcmAdvice) {
params.tcmAdvice = this.oldTcmAdvice;
}
if (!params.westernAdvice) {
params.westernAdvice = this.oldWesternAdvice;
}
if (!params.inspectionAdvice) {
params.inspectionAdvice = this.oldInspectionAdvice;
}
if (!params.lifeAdvice) {
params.lifeAdvice = this.oldLifeAdvice;
}
this.loading = true; this.loading = true;
this.btnDisable = true; this.btnDisable = true;
diagnoseUpdate(params) diagnoseUpdate(params)
......
...@@ -364,6 +364,27 @@ ...@@ -364,6 +364,27 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<div>
<el-form-item
label="问诊方式"
class="t-b"
>
<el-select
v-model="searchParam.diagnoseChannelList"
placeholder="请选择问诊方式"
clearable
multiple
style="width: 220px"
>
<el-option
v-for="item of newDiagnoseChannelList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</div>
</div> </div>
<div class="form-btn"> <div class="form-btn">
<div class="form-btn-li"> <div class="form-btn-li">
...@@ -519,6 +540,7 @@ ...@@ -519,6 +540,7 @@
:diagnosis-doctor-visible.sync="diagnosisDoctorVisible" :diagnosis-doctor-visible.sync="diagnosisDoctorVisible"
:diagnose-log-id="diagnoseLogId" :diagnose-log-id="diagnoseLogId"
:diagnose-type="diagnoseType" :diagnose-type="diagnoseType"
:diagnose-channel="diagnoseChannel"
:only-change-time="onlyChangeTime" :only-change-time="onlyChangeTime"
:doctor-id="doctorId" :doctor-id="doctorId"
:range-time-data="rangeTimeData" :range-time-data="rangeTimeData"
...@@ -603,6 +625,7 @@ import { ...@@ -603,6 +625,7 @@ import {
SOURCE_LIST, SOURCE_LIST,
TRIAGE_TAB_LIST, TRIAGE_TAB_LIST,
TYPE_LIST, TYPE_LIST,
DIAGNOSE_CHANNEL
} from '@/utils/constants'; } from '@/utils/constants';
import { outbounNote } from '../../../api/diagnosis'; import { outbounNote } from '../../../api/diagnosis';
import { callAssistantDoctor, updateDiagnosis } from '../../../utils/diagnosis'; import { callAssistantDoctor, updateDiagnosis } from '../../../utils/diagnosis';
...@@ -681,6 +704,7 @@ export default { ...@@ -681,6 +704,7 @@ export default {
orderPlacer: '', orderPlacer: '',
matchingWay: null, matchingWay: null,
consultRoadList: [], consultRoadList: [],
diagnoseChannelList: [],
patientName: null, patientName: null,
}, },
noteList: [], noteList: [],
...@@ -704,6 +728,7 @@ export default { ...@@ -704,6 +728,7 @@ export default {
value: 2, value: 2,
}, },
], ],
newDiagnoseChannelList: DIAGNOSE_CHANNEL,
nextPersonList: [ nextPersonList: [
{ {
label: '基层医生', label: '基层医生',
...@@ -741,6 +766,7 @@ export default { ...@@ -741,6 +766,7 @@ export default {
dialogFormVisible: false, dialogFormVisible: false,
bizType: 0, bizType: 0,
diagnoseType: 0, diagnoseType: 0,
diagnoseChannel: 0,
consultRoad: '', consultRoad: '',
doctorId: 0, doctorId: 0,
operateUserID: '', operateUserID: '',
...@@ -1105,6 +1131,18 @@ export default { ...@@ -1105,6 +1131,18 @@ export default {
data.order == 'descending' data.order == 'descending'
) { ) {
this.searchParam.sort = 4; this.searchParam.sort = 4;
} else if(data.prop == 'assistantTime') {
if (data.order == 'ascending') {
this.searchParam.sort = 5;
} else {
this.searchParam.sort = 6;
}
} else if (data.prop == 'receptionTime') {
if (data.order == 'ascending') {
this.searchParam.sort = 7;
} else {
this.searchParam.sort = 8;
}
} else { } else {
this.searchParam.sort = null; this.searchParam.sort = null;
} }
...@@ -1177,7 +1215,9 @@ export default { ...@@ -1177,7 +1215,9 @@ export default {
inNewTimeObj: {}, inNewTimeObj: {},
consultRoadList: [], consultRoadList: [],
patientName: null, patientName: null,
diagnoseChannelList: []
}); });
this.getsearch();
}, },
// 导出 // 导出
download() { download() {
...@@ -1380,6 +1420,7 @@ export default { ...@@ -1380,6 +1420,7 @@ export default {
this.diagnoseLogId = row.diagnoseLogId; this.diagnoseLogId = row.diagnoseLogId;
this.diagnoseType = row.diagnoseType; this.diagnoseType = row.diagnoseType;
this.consultRoad = row.consultRoad; this.consultRoad = row.consultRoad;
this.diagnoseChannel = row.diagnoseChannel;
if (row.doctorId == 0) { if (row.doctorId == 0) {
this.doctorId = ''; this.doctorId = '';
} else { } else {
...@@ -1392,12 +1433,21 @@ export default { ...@@ -1392,12 +1433,21 @@ export default {
}, },
// 重新匹配医生 // 重新匹配医生
reMatchDot(row, type) { reMatchDot(row, type) {
this.rematchingOptions = [ if (row.diagnoseChannel === 3) {
'接诊医生爽约', this.rematchingOptions = [
'上级医生日程改变,提前取消', '接诊医生爽约',
'操作失误,重新匹配医生', '上级医生日程改变,提前取消',
'助诊医生爽约', '操作失误,重新匹配医生',
]; ];
} else {
this.rematchingOptions = [
'接诊医生爽约',
'上级医生日程改变,提前取消',
'操作失误,重新匹配医生',
'助诊医生爽约',
'科室不对'
];
}
// this.rematchingOptions= // this.rematchingOptions=
// this.options= // this.options=
this.rematchingVisible = true; this.rematchingVisible = true;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册