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